本文主要是介绍听说你很小 - - LWIP,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
LWIP U KNOW summary ???
LwIP应用开发实战指南-基于STM32,中文版手册
src源 下载
lwIP是TCP/IP协议套件的一个小型独立实现,最初由Adam Dunkels开发,现在在这里继续。
lwIP TCP/IP实现的重点是减少资源的使用,同时仍然拥有完整的TCP。这使得lwIP适用于具有数十kb空闲RAM和大约40 kb代码ROM空间的嵌入式系统。
主要功能包括
-
协议支持:IP, IPv6, ICMP, ND, MLD, UDP, TCP, IGMP, ARP, PPPoS, PPPoE
-
DHCP客户端,DNS客户端(包括mDNS主机名解析器),AutoIP/APIPA (Zeroconf), SNMP代理(v1, v2c, v3,私有MIB支持和MIB编译器)
-
API支持:专门用于增强性能的API,可选的berkeley类似socket的API
-
扩展功能支持:在多个网络接口上的IP转发,TCP拥塞控制,RTT估计和快速恢复/快速重传
-
插件应用:HTTP(S)服务器,SNTP客户端,SMTP(S)客户端,ping, NetBIOS nameserver, mDNS responder, MQTT客户端,TFTP服务器
以上来自于翻译
协议栈初识
三套API
- RAW API
应用程序直接调用TCP/IP协议栈中的回调函数,应用程序和协议栈代码集成在同一个任务中,这样相对于普通的BSD API来说,速度更快,内存消耗更少。LwIP的后两种API的实现也是基于RAW API。RAWAPI的缺点是编程较为复杂; - LWIP API
这种实现方式是在系统中单独建立了一个TCP/IP任务,由这个任务调用RAW API来处理网络通信,其它的网络任务都是利用消息机制与这个任务通信来收发数据。这也是本文中使用的方法; - BSD API
这种API非常像BSD标准UNIX中的socket API,和普通的socket API一样是基于open-read-write-close模型的,这种API是对正式的API又一层的封装,效率较低,资源消耗较多,但是使用BSD API的应用程序有较好的移植性。
Reference
基于zynq平台裸跑LWIP协议栈的详解示例
这篇关于听说你很小 - - LWIP的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!