加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

物联网高手必备:网络协议栈LwIP

发布时间:2019-06-16 00:39:46 所属栏目:教程 来源:物联网电子世界
导读:需求: 在物联网装备中,TCP/IP收集协议栈是一个很是重要的软件构成部门,没有TCP/IP收集协议栈,物联网装备就无法毗连到互联网中。TCP/IP收集协议协议自己较量伟大。物联网呈现之前的TCP/IP实当代码量都很是的复杂。但对付物联网装备来说,内存很是有限,

需求:

在物联网装备中,TCP/IP收集协议栈是一个很是重要的软件构成部门,没有TCP/IP收集协议栈,物联网装备就无法毗连到互联网中。TCP/IP收集协议协议自己较量伟大。物联网呈现之前的TCP/IP实当代码量都很是的复杂。但对付物联网装备来说,内存很是有限,处理赏罚器的机能也很是有限,这就必要一个轻量级的TCP/IP收集协议栈来运行,行使很是小的内存,把一些不须要的成果舍弃掉,保存首要的成果。因为这些需求,发生了几种嵌入式的TCP/IP的协议栈,常见的有以下几种:μC/ TCP-IP,LwIP,UIP。

物联网好手必备:收集协议栈LwIP

常见的嵌入式TCP/IP协议栈

1. μC/ TCP-IP:

μC/ TCP-IP是Micrium公司本身的操纵体系UC/OS的一个组件,同时支持IPv4和IPv6,支持BSD套接字API,具有最风行的套接字选项。这个协议栈是紧凑,靠得住,高机能的TCP / IP协议栈,针对嵌入式体系举办了优化。μC/ TCP-IP完全自主编码,具有高质量,可扩展性和靠得住性,可快速设置所需的收集选项,从而最大限度地收缩产物上市时刻,MicriumμC/ TCP-IP嵌入式协议栈应承按照计划要求调解内存占用。μC/ TCP-IP可以设置为仅包罗体系所需的那些收集组件。未行使组件时,它可以不包括在协议栈中,从而节减名贵的内存空间。

2. LwIp收集协议栈:

LwIP是由瑞典科学研究院的Adam Dunkels开拓的一套小型的TCP / IP协议组件,实现的首要方针是镌汰资源行使,同时如故具有全面的TCP成果。这使得lwIP合用于具有10Kb字节空闲RAM的嵌入式体系,而且可以容纳约莫40Kb的代码ROM。从开始成长到此刻LwIP被移植到多个嵌入式操纵体系,包罗风行的FreeRTOS,尚有阿里云的物联网操纵体系AliOS Things,华为的物联网操纵体系LiteOS等等。

3. uIP收集协议栈:

uIP首要用于8位和16位微节制器的小型嵌入式收集协议栈。最初,uIP 收集协议栈由瑞典计较机科学院的Adam Dunkels 开拓,其源代码由C 说话编写,并完全开源。uIP协议栈最大的上风就是短小精壮,Flash和RAM需求小,去掉了完备的TCP/IP 中不常用的成果,简化了通信流程,但保存了收集通讯必需行使的协议,重点放在了IP/TCP/ICMP/UDP/ARP 这些收集层和传输层协议上,担保了其代码的通用性和布局的不变性。

LwIP协议栈成果

  • IP协议(Internet协议,支持IPv4和IPv6),而且支持多个收集接口的数据包转发。
  • 支持ICMP(Internet节制动静协议),用于收集维护和调试。
  • 支持IGMP(因特网组打点协议),用于多播流量打点的。
  • 支持 MLD(IPv6的多播侦听器发明)。参考RFC 2710尺度,但不支持MLDv2。
  • 支持IPv6的邻人发明协议(ND)和无状态地点自动设置。参考尺度RFC4861(邻人发明)和RFC 4862(地点自动设置)。
  • 支持 DHCP,AutoIP / APIPA(Zeroconf)和(无状态)DHCPv6。
  • 支持UDP(用户数据报协议),包罗最新的UDP-lite扩展协议(过错不敏感UDP)
  • 支持包罗拥塞节制,RTT估算和快速规复和快速转发的TCP协议。
  • 提供机能较高的原始API,当用户必要较高机能时辰行使这个接口。
  • 可选Berkeley-socket API,最通用收集编程接口。
  • 支持 TLS。
  • PPPoS和PPPoE(串口/以太网上的点对点协议)。
  • 支持DNS(域名理会器),包罗mDNS(组播DNS)。
  • 6LoWPAN,基于IPv6的IEEE 802.15.4,物理层是低功耗蓝牙(BLE)可能ZigBee。

从这部门看,LwIP支持的成果长短常多的,除了传统的TCPIP,还支持了许多最新的协议(如mDNS,UDP-lite,6LoWPAN等)

整体架构

物联网好手必备---收集协议栈LwIP(二)

LwIP架构

从上图看到,IwIP凭证TCP/IP的分层分为4层,别离是链路层,收集层,传输层和应用层。

协议栈的数据处理赏罚流程首要有以下三种:

  • 每个层是一个独立的历程,链路层是一个历程,IP层也是一个历程,传输层是一个历程,这样计划的甜头是每一层都很是清晰,代码轻易领略,调试也较利便。但这种处理赏罚的要领的弱点是当层和层之间转达数据的时辰,必要举办上下文的切换和内存拷贝。对付操纵体系来说,历程之间的切换和内存拷贝都必要淹灭时刻,当呈现大量的报文举办传输的时辰,会导致频仍的切换和内存拷贝,从而转发的服从较低。
  • TCP IP协议栈在操纵体系的内核傍边,应用措施通过体系挪用来和协议栈举办通信,这种方法必需实现各个成果的体系挪用,相对也较量伟大。
  • 全部的TCP/IP协议的处理赏罚都在一个历程之中,每一层之间没有明明的边界,各层都可以会见共享的内存空间,由于各层都可以会见共享内存,就停止了每层之间的内存拷贝带来的机能丧失,lwIP协议就是这种实现,为的就是进步传输速率和资源操作率。

数据包的收发必要基于邮箱和信号量的支持,假如基于操纵体系,这些机制操纵体系都可以提供,移植起来只必要把基于邮箱和信号的函数加以封装即可,假如是没有操纵体系的裸机移植则必要行使间断可能轮询方法实现收发数据,事变量相对要比没有操纵体系要大。

源码架构

物联网好手必备---收集协议栈LwIP(二)

LwIP协议栈主目次

我们用最新的2.1 版本为例,LwIP的文件夹首要有三个,doc,src和test三个目次。

Doc是存储的辅佐文档,和之前的1.4版本的辅佐文档的文本文件差异,它行使了doxygen器材按照源代码的注释天生HTML名目标辅佐文档。src是LwIP的首要源代码目次,test目次是测试剧本和一些测试协议栈的措施。

物联网好手必备---收集协议栈LwIP(二)

LwIP协议栈的src目次

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读