1介绍

lwIP 是 TCP/IP 协议套件的小型独立实现。

lwIP TCP/IP 实现的重点是减少 RAM 使用同时仍然有一个完整的 TCP。这使得 lwIP 适合使用

在具有数十 KB 可用 RAM 和空间的嵌入式系统中大约 40 KB 的代码 ROM。

lwIP 最初由计算机和网络的 Adam Dunkels 开发瑞典计算机科学研究所 (SICS) 的架构 (CNA) 实验室

现在由全球开发人员网络开发和维护。

LWIP简介_java

2 特征


  • IP(互联网协议,IPv4 和 IPv6),包括数据包转发多个网络接口

  • 用于网络维护和调试的ICMP(Internet Control Message Protocol)

  • IGMP(互联网组管理协议)用于组播流量管理

  • MLD(IPv6 多播侦听器发现)。旨在符合RFC 2710。不支持 MLDv2

  • ND(IPv6 的邻居发现和无状态地址自动配置)。旨在符合 RFC 4861(邻居发现)和 RFC 4862
    (地址自动配置)

  • DHCP、AutoIP/APIPA(零配置)和(无状态)DHCPv6

  • UDP(用户数据报协议)包括实验性的 UDP-lite 扩展

  • TCP(传输控制协议)具有拥塞控制,RTT估计快速恢复/快速重传和发送 SACK

  • 用于增强性能的原始/本机 API

  • 可选的类似伯克利的套接字 API

  • TLS:可选分层 TCP(“altcp”),用于任何近乎透明的 TLS基于 TCP 的协议(移植到 mbedTLS)(有关更多信息,请参阅变更日志)

  • PPPoS 和 PPPoE(串行/以太网上的点对点协议)

  • DNS(域名解析器包括mDNS)

  • 6LoWPAN(通过 IEEE 802.15.4、BLE 或 ZEP)


3应用


  • 带有 SSI 和 CGI 的 HTTP 服务器(通过 altcp 的 HTTPS)
  • 带有 MIB 编译器(简单网络管理协议)的 SNMPv2c 代理,通过 altcp v3
  • SNTP(简单网络时间协议)
  • NetBIOS 名称服务响应程序
  • MDNS(多播DNS)响应器
  • iPerf 服务器实现
  • MQTT 客户端(通过 altcp 支持 TLS)

4发展

lwIP 已经成长为一个优秀的嵌入式设备 TCP/IP 协议栈,使用堆栈的开发人员经常提交错误修复、改进、并添加到堆栈中以进一步增加其实用性。

lwIP 的开发托管在 Savannah 上,Savannah 是软件开发、维护和分发。每个人都可以通过使用 Savannah 的界面、Git 和邮件列表。一个核心开发团队将提交更改Git 源代码树。

lwIP TCP/IP 堆栈在“lwip”Git 模块中维护,并且贡献(例如平台端口)位于“contrib”Git 模块中。

有关用户的 Git 服务器访问权限的详细信息,请参阅 doc/savannah.txt开发商。

当前的 Git 树可以通过网络浏览:

http://git.savannah.gnu.org/cgit/lwip.git
http://git.savannah.gnu.org/cgit/lwip/lwip-contrib.git

通过 lwIP 项目页面提交补丁和错误:

http://savannah.nongnu.org/projects/lwip/

持续集成构建(GCC、clang):

https://travis-ci.org/yarrick/lwip-merged

5 文件

源代码的自我文档定期从当前提取

Git 源代码,可从此网页获得:

http://www.nongnu.org/lwip/

现在有一个不断增长的关于 lwIP 的 wiki 位于

http://lwip.wikia.com/wiki/LwIP_Wiki