成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

物聯網高手必備:網絡協議棧LwIP(一)

物聯網 網絡管理
對于物聯網設備來說,內存非常有限,處理器的性能也非常有限,這就需要一個輕量級的TCP/IP網絡協議棧來運行,由于這些需求,產生了幾種嵌入式的TCP/IP的協議棧,常見的有以下幾種:μC/ TCP-IP,LwIP,UIP。

需求:

在物聯網設備中,TCP/IP網絡協議棧是一個非常重要的軟件組成部分,沒有TCP/IP網絡協議棧,物聯網設備就無法連接到互聯網中。TCP/IP網絡協議協議本身比較復雜。物聯網出現之前的TCP/IP實現代碼量都非常的龐大。但對于物聯網設備來說,內存非常有限,處理器的性能也非常有限,這就需要一個輕量級的TCP/IP網絡協議棧來運行,使用非常小的內存,把一些不必要的功能舍棄掉,保留主要的功能。由于這些需求,產生了幾種嵌入式的TCP/IP的協議棧,常見的有以下幾種:μC/ TCP-IP,LwIP,UIP。

[[267982]]

常見的嵌入式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目錄

src目錄是協議棧的源碼目錄,包括api、 core、include、netif四個文件夾,其中core是協議棧的核心,include是頭文件目錄,netif提供了網絡接口層的驅動代碼,api目錄提供了socket、tcp、內存管理的API接口。(未完待續)

 

責任編輯:趙寧寧 來源: 今日頭條
相關推薦

2019-06-25 08:13:55

LwIP網絡協議物聯網

2011-11-09 14:59:37

LwIP協議棧

2020-11-19 09:19:42

物聯網物聯網標準物聯網協議

2018-12-24 06:56:12

物聯網網絡協議MiWi

2011-11-08 15:40:47

LwIP協議棧嵌入式

2020-03-14 13:13:02

物聯網IOT通信協議

2021-04-14 15:37:05

物聯網標準和協議

2023-03-20 16:16:40

MQTT傳輸協議

2024-03-26 11:52:13

2020-12-21 10:07:34

物聯網協議物聯網IOT

2022-06-27 10:41:45

MQTT物聯網協議

2023-04-18 16:12:14

2019-11-26 09:16:09

物聯網通訊協議IOT

2019-11-20 22:52:49

物聯網通訊協議IOT

2019-11-27 11:12:54

物聯網通訊協議IOT

2022-09-19 11:03:27

物聯網物聯網協議

2019-11-20 10:04:21

物聯網通訊協議IOT

2023-09-24 23:18:50

2024-10-12 14:40:03

多協議數采盒工業物聯網

2014-12-08 11:41:45

物聯網網狀網絡大數據
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 福利视频一区二区三区 | 在线看国产 | 国产人免费人成免费视频 | 久久精品国产精品青草 | 日韩人体视频 | 99成人精品| 91精品国产91久久久久久吃药 | 亚洲成人综合在线 | 国产99久久久国产精品下药 | 色综合一区二区三区 | 欧美精品久久久久久久久久 | 成人视屏在线观看 | 欧美日韩视频网站 | av在线播放一区二区 | 久久最新| 求个av网址 | 欧美黄色片 | 99热国产在线播放 | 日韩午夜精品 | 国产精品不卡 | 欧美一区二区三区在线 | 午夜网站视频 | 久久精品国产一区老色匹 | 91精品久久久久久久久 | 天堂久久天堂综合色 | 久久午夜国产精品www忘忧草 | 在线观看成人精品 | 中文字幕男人的天堂 | 久久精品成人 | 在线播放国产一区二区三区 | 亚洲色综合 | 国产剧情一区 | 久久久久亚洲视频 | 成人欧美一区二区三区黑人孕妇 | 久久国产精品精品国产色婷婷 | 午夜日韩精品 | 亚洲综合大片69999 | 狠狠干在线 | 久久www免费人成看片高清 | 国产成人在线观看免费 | 亚洲国产成人精品女人久久久野战 |