Resumen de lwIP
Introducción
- lwIP es una implementación independiente de una pila de protocolos TCP/IP pequeña
- Se enfoca en mantener un TCP de tamaño completo mientras reduce el uso de RAM
- Es adecuado para su uso en sistemas embebidos y requiere varias decenas de kilobytes de RAM y alrededor de 40 kilobytes de ROM de código
- Originalmente fue desarrollado por Adam Dunkels y actualmente es mantenido por una red global de desarrolladores
Funciones
- IP (protocolo de Internet, IPv4 e IPv6): incluye el reenvío de paquetes entre múltiples interfaces de red
- ICMP (protocolo de mensajes de control de Internet): mantenimiento y depuración de red
- IGMP (protocolo de administración de grupos de Internet): gestión de tráfico multicast
- MLD (Multicast Listener Discovery): para IPv6, con objetivo de cumplir con RFC 2710
- ND (descubrimiento de vecinos y autoconfiguración de direcciones sin estado): con objetivo de cumplir con RFC 4861 y RFC 4862
- DHCP, AutoIP/APIPA (Zeroconf) y DHCPv6 (sin estado)
- UDP (protocolo de datagramas de usuario): incluye la extensión experimental UDP-lite
- TCP (protocolo de control de transmisión): control de congestión, estimación de RTT, fast recovery/fast retransmit y transmisión SACK
- API raw/nativa: mejora del rendimiento
- API de sockets opcional similar a Berkeley
- TLS: capa TCP opcional ("altcp") para TLS casi transparente (portada a mbedTLS)
- PPPoS y PPPoE (Point-to-Point Protocol sobre serial/Ethernet)
- DNS (resolvedor de nombres de dominio, incluyendo mDNS)
- 6LoWPAN (a través de IEEE 802.15.4, BLE o ZEP)
Aplicaciones
- Servidor HTTP: incluye SSI y CGI (HTTPS mediante altcp)
- Agente SNMPv2c: incluye compilador MIB, v3 compatible mediante altcp
- SNTP (protocolo simple de tiempo de red)
- Respondedor de servicio de nombres NetBIOS
- Respondedor MDNS (DNS multicast)
- Implementación de servidor iPerf
- Cliente MQTT: soporte TLS disponible mediante altcp
Licencia
- lwIP se ofrece gratuitamente bajo licencia BSD
Desarrollo
- lwIP ha crecido hasta convertirse en una excelente pila TCP/IP para dispositivos embebidos
- Los desarrolladores envían correcciones de errores, mejoras y funciones adicionales para aumentar aún más la utilidad de la pila
- El desarrollo se aloja en Savannah y cualquiera puede contribuir a mejorar lwIP mediante Git y listas de correo
- La pila TCP/IP de lwIP se mantiene en el módulo Git
lwip, y las contribuciones están en el módulo Git contrib
- Para más detalles sobre el acceso al servidor Git, consulta
doc/savannah.txt
- El árbol Git actual puede verse en la web: lwip, lwip-contrib
- Envío de parches y bugs: página del proyecto lwIP
- Builds de integración continua: Travis CI
Documentación
Resumen de GN⁺
- lwIP ofrece una pila TCP/IP eficiente para sistemas embebidos y minimiza el uso de memoria
- Soporta diversos protocolos de red y aplicaciones, proporcionando flexibilidad y escalabilidad
- Sigue mejorando de forma continua gracias a la participación activa de la comunidad de desarrolladores
- Proyectos con funciones similares incluyen FreeRTOS+TCP y uIP
1 comentarios
Comentarios en Hacker News
Hace algunos años usé LwIP en un proyecto para realizar pruebas del sistema de manera efectiva
"Pila IP" es una descripción que se queda corta
A quienes buscan opciones como LwIP, les recomendaría considerar NetXDuo y sus equivalentes ThreadX, FileX, LevelX y UsbX
Adam Dunkels escribió la mayor parte de Protothreads
Me pregunto qué es nongnu.org y cómo se relaciona con gnu.org
Probablemente sea la pila TCP/IP más usada en dispositivos con recursos limitados
Lo que me gusta de LWIP es que permite usar el mismo bloque de memoria asignado por Ethernet MAC DMA durante toda la vida útil del paquete
memcpyPara quienes quieran implementar su propia pila TCP/IP ligera, el libro <i>TCP/IP Lean</i> de Jeremy Bentham es un excelente recurso
Extraído del artículo:
Pico W usa esto