lwIP – stack IP ligero
(nongnu.org)- 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 stack TCP/IP se mantiene en el módulo Git
- 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.