网联网嵌入式之联网LwIP
嵌入式因为内存和运算都比较有限,无法使用通过TCP/IP协议,所以往往使用开源的LwIP协议,完成IP层、物理层、链路层的连接。
1LwIP
LwIP是嵌入式IP栈,LwIP协议栈主要关注的是怎么样减少内存的使用和代码的大小,这样就可以让lwIP适用于资源有限的小型平台例如嵌入式系统。为了简化处理过程和内存要求,lwIP对API进行了裁减,可以不需要复制一些数据。
LwIP的特点如下:
(1)支持多网络接口下的IP转发; |
(2)支持ICMP协议; |
(3)包括实验性扩展的UDP(用户数据报协议); |
(4)包括阻塞控制、RTT 估算、快速恢复和快速转发的TCP(传输控制协议); |
(5)提供专门的内部回调接口(Raw API),用于提高应用程序性能; |
(6)可选择的Berkeley接口API (在多线程情况下使用) 。 |
(7)在最新的版本中支持ppp |
(8) 新版本中增加了的IP fragment的支持. |
(9) 支持DHCP协议,动态分配ip地址. |
2、LwIP消息发送过程:
消息接收流程如下图:
3、LIteOS的应用
LIteOS代码包中的LiteOS/ components / net/ lwip目录下可以找到整个华为调整过更加适应操作系统的LwIP协议。
目录下的文件树如下:
其中LwIP是协议本事,lwip_port是对LwIP的网络服务的API进行本地处理,主要是网络进程的标准化处理;ppp_LwiP是对物理层的连接,通过该文件夹中的文件对物理接口映射到协议中。
剪裁后的协议可以实现:如下协议功能
* HTTP server with SSI and CGI (HTTPS via altcp)
* SNMPv2c agent with MIB compiler (Simple Network Management Protocol), v3 via altcp
* SNTP (Simple network time protocol)
* NetBIOS name service responder
* MDNS (Multicast DNS) responder
* iPerf server implementation
* MQTT client (TLS support via altcp)
我们常用MQTT、tFTP都需要首先打开LwIP的支持,并将协议云心才能对操作相关输入传输。
总结:
LwIP是LiteOS的TCP/IP精简协议栈,是网络通讯的基础协议。
- 点赞
- 收藏
- 关注作者
评论(0)