网联网嵌入式之联网LwIP

举报
o0龙龙0o 发表于 2021/06/15 22:59:18 2021/06/15
【摘要】 LwIP是LiteOS的TCP/IP精简协议栈,是网络通讯的基础协议。

嵌入式因为内存和运算都比较有限,无法使用通过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精简协议栈,是网络通讯的基础协议。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。