1 pontos por GN⁺ 2024-09-08 | Ainda não há comentários. | Compartilhar no WhatsApp
  • 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
  • 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.

Ainda não há comentários.