Múltiplos serviços de internet com o uIP: desenvolvimento de uma aplicação embarcada para redes TCP/IP - Martins, Marco Túlio Gonçalves (Revista da Graduação, 2011)
O atual avanço das tecnologias de comunicação e dos sistemas embarcados resultou no aumento da interação entre estes sistemas usando protocolos de comunicação. O modelo TCP/IP usado atualmente, é pesado demais para ser usado em sistemas embarcados pequenos devido as altas taxas de processamento dos protocolos e uso de memória. Como alternativa a este modelo, foi desenvolvida a pilha uIP (micro Internet Protocol) para sistemas embarcados com limitações de memória e poder de processamento. Contudo, o modelo uIP, possui algumas limitações, como a disponibilidade de apenas um serviço na sua camada de aplicação, a não reportagem de erros de comunicação, a limitação de buffers, entre outros. O principal objetivo deste trabalho é superar uma dessas limitações, desenvolvendo um sistema onde múltiplas aplicações possam interagir em um mesmo ambiente dedicado. A limitação de apenas uma aplicação no uIP pôde ser superada através da criação de uma sub-camada dentro da camada de transporte da sua pilha. Esta sub-camada tem a função de gerenciar os pacotes recebidos e encaminhá-los para a aplicação correta. A porta de destino que o protocolo TCP tem no seu cabeçalho é utilizada para decidir o destino dos pacotes vindos da rede. Duas novas aplicações foram desenvolvidas para a camada de aplicação da pilha uIP-TCP/IP. Uma delas é um servidor para troca de arquivos usando o protocolo SFT (Secure File Transfer) e a outra é um chat de comunicação usando sockets TCP. Ambas as aplicações suportam interações com sistemas que utilizem o modelo TCP/IP padrão. As principais funções do uIP, as APIs (Application Programming Interfaces) para geração de threads e sockets no uIP, bem como as novas aplicações e suas funcionalidades foram documentadas ao longo do projeto.