這裡是正式開始寫lwip入門章節的第一篇,因為自己學習的總結,那麼中間涉及到的很多嵌入式方面的,如mcu、rtos、計算機基礎相關的東西,我在這裡就不會記錄的。這裡說明,所有的內容都是按照個人的理解,由於剛剛學習,所以難免有些錯誤的理解和概念,因此,如果以後隨著學習的深入,我會再次更正錯誤的內容。
lwip是light weight (輕型)ip協議,有無作業系統的支援都可以執行。lwip實現的重點是在保持tcp協議主要功能的基礎上減少對ram 的占用,它只需十幾kb的ram和40k左右的rom就可以執行,這使lwip協議棧適合在低端的嵌入式系統中使用。
關於網路分層的概念:
在lwip中,網路分層主要是按照tcp/ip 4層協議分層的。由於iwip主要使用在物聯網的系統的,那麼我們主要分析下列部分:
應用層:http mqtt
傳輸層:tcp udp
網路層:ip
開啟壓縮包中,所有核心原始碼都在src中,主要分為一下幾個部分:
api:使用者呼叫的網路傳輸介面,如socket等
core: 傳輸層tcp/udp和網路層ipv4/ipv6的協議原始碼
include: 標頭檔案相關
這裡我分析**有個習慣,那就是習慣吧所有的源**都大概注釋一遍,雖然很多時候自己當時看不懂,但是到後面莫名其妙的就懂了,因為分析的閱讀,了解的就越多。因為我們現在大多都會使用socket來編寫網路協議,那麼,我們就重api/socket.c檔案開始分析吧。
LWIP架構及LWIP協議棧
1 不管是裸機還是os 都分為三個模組 上層協議棧 包括發資料 收資料下面只考慮收資料在中斷中.os 這三者之間是 通過 mbox 通訊 sem 同步的.這三者分別屬於三個執行緒 其中乙個是中斷 裸機三者之間是通過函式呼叫實現的,這三者在同乙個執行緒內.其中乙個是中斷 2 上層 協議棧 收資料之間的...
LwIP協議棧介面
協議棧api函式 1 netconn new udp tcp struct netconn netconn new enum netconn type t 為新連線申請乙個連線結構netconn空間 2 netconn delete udp tcp err t netconn delete stru...
LwIP協議棧介面
協議棧api函式 1 netconn new udp tcp struct netconn netconn new enum netconn type t 為新連線申請乙個連線結構netconn空間 2 netconn delete udp tcp err t netconn delete stru...