lwIP – pilha de IP leve
(nongnu.org)- Mesmo em dispositivos embarcados, o lwIP 2.1.0 oferece uma implementação pequena e independente da família de protocolos TCP/IP, permitindo rodar TCP/IP nesses ambientes
- O foco é fornecer TCP completo visando ambientes com algumas dezenas de KB de RAM e cerca de 40KB de ROM de código
- O suporte é amplo e inclui IPv4/IPv6, ICMP, IGMP, MLD, IPv6 Neighbor Discovery, DHCP, UDP, TCP, API raw/native, API de sockets no estilo Berkeley, altcp, PPP, DNS e 6LoWPAN
- Entre os aplicativos fornecidos por padrão estão servidor HTTP, agente SNMPv2c, SNTP, respondedor de serviço de nomes NetBIOS, respondedor mDNS, servidor iPerf e cliente MQTT
- É distribuído sob a licença BSD, e seu desenvolvimento e manutenção são conduzidos por uma rede global de desenvolvedores por meio do repositório Git e das mailing lists do Savannah
Projeto de uma pilha TCP/IP para embarcados
- lwIP é uma implementação pequena e independente da família de protocolos TCP/IP
- O objetivo do projeto é alcançar ao mesmo tempo redução no uso de RAM e oferta de TCP completo
- É adequado para sistemas embarcados com algumas dezenas de KB de RAM livre
- A ROM de código parte do pressuposto de cerca de 40KB de espaço
- Foi desenvolvido originalmente por Adam Dunkels no laboratório Computer and Networks Architectures do Swedish Institute of Computer Science, e hoje é mantido por uma rede global de desenvolvedores
-
Protocolos de rede e APIs
- A camada IP oferece suporte a IPv4 e IPv6 e também permite encaminhamento de pacotes entre várias interfaces de rede
- Para manutenção e depuração de rede, fornece ICMP; para gerenciamento de tráfego multicast, oferece IGMP
- Entre os recursos relacionados a IPv6 estão MLD e ND
- O MLD busca conformidade com a RFC 2710, mas não oferece suporte a MLDv2
- O ND busca conformidade com o Neighbor Discovery da RFC 4861 e a autoconfiguração de endereços da RFC 4862
- Para configuração de endereços e resolução de nomes, oferece DHCP, AutoIP/APIPA, DHCPv6 stateless, DNS e mDNS
- A camada de transporte inclui UDP e TCP
- O UDP inclui a extensão experimental UDP-lite
- O TCP oferece suporte a controle de congestionamento, estimativa de RTT, fast recovery, fast retransmit e transmissão SACK
- Em APIs e recursos de extensão, oferece API raw/native, API de sockets opcional no estilo Berkeley, TCP em camadas opcional altcp, PPPoS, PPPoE e 6LoWPAN
- O altcp fornece TLS quase transparente para protocolos baseados em TCP
-
Aplicativos incluídos
- O servidor HTTP oferece suporte a SSI e CGI, e HTTPS é fornecido via altcp
- O agente SNMPv2c inclui um compilador MIB, e o v3 é fornecido via altcp
- Inclui SNTP, respondedor de serviço de nomes NetBIOS e respondedor mDNS
- Inclui implementação de servidor iPerf e cliente MQTT, e o suporte a TLS do MQTT é fornecido via altcp
Participação no desenvolvimento e documentação
- O lwIP é disponibilizado livremente sob a licença BSD
- O desenvolvimento é hospedado no Savannah, e é possível participar das melhorias por meio da interface do Savannah, Git e mailing lists
- A equipe principal de desenvolvimento envia mudanças para a árvore de código-fonte Git
- A pilha TCP/IP é mantida no módulo Git
lwip - Contribuições como ports de plataforma ficam no módulo Git
contrib
- A pilha TCP/IP é mantida no módulo Git
- Atualmente, a árvore Git pode ser consultada na web
- Patches e bugs podem ser enviados pela página do projeto lwIP
- Builds de integração contínua para GCC e clang são oferecidos no Travis CI
- A documentação interna do código-fonte é extraída regularmente do código-fonte Git atual e publicada na página web do lwIP
- Documentação e materiais de estudo podem ser encontrados na wiki, nas mailing lists, nos arquivos pesquisáveis, nos arquivos
docs/e na documentação do código-fonte
Ainda não há comentários.