lwip-tcpip/lwip
GitHub: lwip-tcpip/lwip
lwIP 是一个面向嵌入式系统的轻量级 TCP/IP 协议栈,旨在以极低的内存占用提供完整的网络通信能力。
Stars: 1683 | Forks: 602
简介
lwIP 是一个小型且独立的 TCP/IP 协议套件实现。
lwIP 的 TCP/IP 实现重点是减少 RAM 使用量,同时仍具备完整的 TCP 功能。这使得 lwIP 非常适合用于具有几十 KB 空闲 RAM 以及大约 40 KB 代码 ROM 空间的嵌入式系统。
lwIP 最初由 Adam Dunkels 在瑞典计算机科学研究所 (SICS) 的计算机与网络架构 (CNA) 实验室开发,目前由全球范围内的开发者网络进行开发和维护。
功能
* IP(Internet Protocol,包含 IPv4 和 IPv6),包括跨多个网络接口的数据包转发
* ICMP(Internet Control Message Protocol,互联网控制报文协议),用于网络维护和调试
* IGMP(Internet Group Management Protocol,互联网组管理协议),用于多播流量管理
* MLD(IPv6 的多播侦听发现)。旨在兼容 RFC 2710。不支持 MLDv2
* ND(IPv6 的邻居发现和无状态地址自动配置)。旨在兼容 RFC 4861(邻居发现)和 RFC 4862(地址自动配置)
* DHCP、AutoIP/APIPA (Zeroconf)、ACD(地址冲突检测)以及(无状态)DHCPv6
* UDP(User Datagram Protocol,用户数据报协议),包含实验性的 UDP-lite 扩展
* TCP(Transmission Control Protocol,传输控制协议),带有拥塞控制、RTT 估算、快速恢复/快速重传以及发送 SACKs
* 用于提升性能的 raw/native API
* 可选的类 Berkeley socket API
* TLS:可选的分层 TCP ("altcp"),可为任何基于 TCP 的协议提供几乎透明的 TLS(已移植到 mbedTLS)(详情请参阅更新日志)
* PPPoS 和 PPPoE(串行/以太网上的点对点协议)
* DNS(域名解析器,包含 mDNS)
* 6LoWPAN(通过 IEEE 802.15.4、BLE 或 ZEP)
应用
* 带有 SSI 和 CGI 的 HTTP 服务器(通过 altcp 支持 HTTPS)
* 带有 MIB 编译器的 SNMPv2c 代理(Simple Network Management Protocol,简单网络管理协议),通过 altcp 支持 v3
* SNTP(Simple network time protocol,简单网络时间协议)
* NetBIOS 名称服务响应器
* MDNS(Multicast DNS,多播 DNS)响应器
* iPerf 服务器实现
* MQTT 客户端(通过 altcp 支持 TLS)
许可证
lwIP 在 BSD 许可证下免费提供。
开发
lwIP 已经发展成为一款优秀的嵌入式设备 TCP/IP 协议栈,使用该协议栈的开发者经常会提交错误修复、改进和扩展,以进一步提升其实用性。
lwIP 的开发由 Savannah 托管,这是一个用于软件开发、维护和分发的中心平台。每个人都可以通过使用 Savannah 的界面、Git 和邮件列表来帮助改进 lwIP。核心开发者团队会将更改提交到 Git 源码树中。
lwIP TCP/IP 协议栈在 'src' 目录中维护,而贡献内容(如平台移植和应用)位于 'contrib' 目录中。
有关用户和开发者访问 Git 服务器的详细信息,请参阅 doc/savannah.txt。
当前的 Git 源码树支持网页浏览:
https://git.savannah.gnu.org/cgit/lwip.git
请通过 lwIP 项目页面提交补丁和错误报告:
https://savannah.nongnu.org/projects/lwip/
持续集成构建(GCC、clang):
https://github.com/lwip-tcpip/lwip/actions
文档
源代码的自带文档会定期从当前的 Git 源码中提取,并可通过以下网页访问:
https://www.nongnu.org/lwip/
此外,您可以通过以下网址订阅邮件列表:
https://savannah.nongnu.org/mail/?group=lwip
以及可搜索的存档:
https://lists.nongnu.org/archive/html/lwip-users/
https://lists.nongnu.org/archive/html/lwip-devel/
这里有一个关于 lwIP 的 Wiki:
https://lwip.wikia.com/wiki/LwIP_Wiki
您可能会在那里找到问题的解答,但遗憾的是,它的维护状况并没有达到应有的水平。
lwIP 最初由 Adam Dunkels 编写:
http://dunkels.com/adam/
阅读 Adam 的论文、docs/ 目录中的文件、浏览源代码文档以及浏览邮件列表存档,是熟悉 lwIP 设计的绝佳方式。
Adam Dunkels
Leon Woestenberg
标签:Prompt Injection, TCP/IP协议栈, VX技术, 内核驱动, 客户端加密, 嵌入式系统, 并发处理, 底层网络, 物联网, 网络协议, 网络安全平台, 网络通信库