1 puntos por GN⁺ 2024-09-08 | Aún no hay comentarios. | Compartir por WhatsApp
  • Para poder usar TCP/IP incluso en dispositivos embebidos, lwIP 2.1.0 ofrece la familia de protocolos TCP/IP como una pequeña implementación independiente
  • Se enfoca en ofrecer TCP completo aun apuntando a entornos con decenas de KB de RAM y alrededor de 40 KB de ROM de código
  • Su alcance de soporte es amplio: IPv4/IPv6, ICMP, IGMP, MLD, IPv6 Neighbor Discovery, DHCP, UDP, TCP, API raw/native, API de sockets estilo Berkeley, altcp, PPP, DNS y 6LoWPAN
  • Incluye aplicaciones integradas como servidor HTTP, agente SNMPv2c, SNTP, respondedor de servicio de nombres NetBIOS, respondedor mDNS, servidor iPerf y cliente MQTT
  • Se distribuye bajo licencia BSD, y una red global de desarrolladores lo desarrolla y mantiene mediante el repositorio Git y las listas de correo de Savannah

Diseño de un stack TCP/IP para embebidos

  • lwIP es una pequeña implementación independiente de la familia de protocolos TCP/IP
  • El objetivo de diseño es lograr a la vez reducir el uso de RAM y ofrecer TCP completo
    • Es adecuado para sistemas embebidos con decenas de KB de RAM libre
    • La ROM de código presupone alrededor de 40 KB de espacio
  • Fue desarrollado originalmente por Adam Dunkels en el Computer and Networks Architectures lab del Swedish Institute of Computer Science, y actualmente lo mantiene una red global de desarrolladores
  • Protocolos de red y API

    • La capa IP soporta IPv4 e IPv6, y también puede reenviar paquetes entre varias interfaces de red
    • Ofrece ICMP para mantenimiento y depuración de red, e IGMP para gestionar tráfico multicast
    • Entre las funciones relacionadas con IPv6 incluye MLD y ND
      • MLD apunta a cumplir con RFC 2710, pero no soporta MLDv2
      • ND apunta a cumplir con RFC 4861 Neighbor Discovery y RFC 4862 de autoconfiguración de direcciones
    • Para configuración de direcciones y resolución de nombres ofrece DHCP, AutoIP/APIPA, DHCPv6 sin estado, DNS y mDNS
    • La capa de transporte incluye UDP y TCP
      • UDP incluye la extensión experimental UDP-lite
      • TCP soporta control de congestión, estimación de RTT, fast recovery, fast retransmit y transmisión SACK
    • Como API y extensiones soporta raw/native API, API opcional de sockets estilo Berkeley, TCP en capas opcional altcp, PPPoS, PPPoE y 6LoWPAN
      • altcp ofrece TLS casi transparente para protocolos basados en TCP
  • Aplicaciones incluidas

    • El servidor HTTP soporta SSI y CGI, y HTTPS se ofrece mediante altcp
    • El agente SNMPv2c incluye un compilador MIB, y v3 se ofrece mediante altcp
    • Incluye SNTP, respondedor de servicio de nombres NetBIOS y respondedor mDNS
    • Incluye una implementación de servidor iPerf y un cliente MQTT; el soporte TLS de MQTT se ofrece mediante altcp

Participación en el desarrollo y documentación

  • lwIP se ofrece libremente bajo licencia BSD
  • El desarrollo está alojado en Savannah, y se puede participar en mejoras mediante la interfaz de Savannah, Git y listas de correo
  • El equipo central de desarrollo hace commit de los cambios en el árbol de código fuente Git
    • El stack TCP/IP se mantiene en el módulo Git lwip
    • Las contribuciones, como ports de plataforma, están en el módulo Git contrib
  • El árbol Git actual se puede consultar en la web
  • Los parches y bugs se envían mediante la lwIP project page
  • Las compilaciones de integración continua para GCC y clang se ofrecen en Travis CI
  • La documentación propia del código fuente se extrae periódicamente del código fuente Git actual y se ofrece en la página web de lwIP
  • La documentación y los materiales de aprendizaje se pueden consultar en la wiki, las listas de correo, los archivos buscables, los archivos de docs/ y la documentación del código fuente

Aún no hay comentarios.

Aún no hay comentarios.