想快速上手TCP/IP通信卻不知從何開始?LuatOS為開發者提供了簡潔高效的開發路徑。通過本指南的實操步驟,你將發現,實現網絡連接其實比想象中更簡單。
提到網絡應用,就繞不開TCP/IP——它不僅是互聯網的通信基石,更像是一套精妙絕倫的“世界語”,讓形態各異、遍布全球的設備能夠跨越硬件和軟件的差異,使用統一的規則進行對話。
相比傳統開發方式,LuatOS通過高效易用的API:將復雜的協議細節封裝在簡潔的接口之下,開發者無需從零開始構建整個協議棧,而是可以像搭積木一樣快速上手,只需專注于應用邏輯本身。
你可以在幾分鐘內讓一塊4G-Cat.1模塊真正連接到云端服務器,并立刻觀察到數據交互的全過程。每一個理論概念,都能通過具體的代碼和硬件行為得到最直觀的驗證和理解。
一、TCP/IP網絡模型簡介
有網絡應用開發經驗的人,應該都聽說過OSI七層模型、TCP/IP協議四層模型和TCP/IP協議五層模型。
這三種網絡協議模型的說明,參考下表:

看了這張表之后,我們應該有以下幾點認識:
都采用了分層的思想,將復雜的通信過程分解為更小、更易于管理的部分;
每一層都為其上層提供服務,并使用其下層提供的服務;
這三種網絡模型,只是分層的顆粒度不一樣;實際上,這三種網絡模型的本質內容都是一樣的。
既然本質內容是一樣的,為什么還要存在三種網絡模型呢?
我們簡單地看一下這三種網絡模型的歷史:
TCP/IP
20世紀70年代(1970s)
美國國防部某個計劃局,提出了建立一種通信網絡的需求;美國的幾個工程師大佬開發了一套通信協議,TCP和IP協議是其中的核心;當時并沒有抽象出四層或者五層模型。
OSI和TCP/IP
20世紀80年代(1980s)
網絡技術蓬勃發展,但各家廠商(如IBM、DEC)都有自己的私有網絡協議標準,導致不同廠商的設備之間無法通信。
網絡世界,需要一個“通用語言”。
國際標準化組織ISO于1984年,提出了開放系統互聯OSI參考模型;
與此同時,TCP/IP的支持者也抽象出了一套自己的“術語”和“框架”來與OSI模型競爭。他們從現有的TCP/IP協議族中反向歸納、提煉出了一個更簡單的分層模型。
TCP/IP
20世紀90年代(1990s)
OSI和TCP/IP經過一段時間協議競爭,最終TCP/IP勝出,得到廣泛應用,主要有以下幾點原因:
TCP/IP來自實踐,簡單高效,易于實現;而OSI模型過于復雜和理想化,標準制定緩慢;
TCP/IP規范(RFC文檔)對所有人免費開放,鼓勵了廣泛的應用和創新;
美國政府規定其所有聯邦機構使用的網絡必須支持TCP/IP;
萬維網(World WideWeb)在1991年出現,它運行在TCP/IP協議之上,Web的爆炸式普及使得TCP/IP協議成為了所有上網設備的必然選擇。
最終,TCP/IP模型在實踐中得到廣泛應用。
至于TCP/IP四層模型和TCP/IP五層模型,二者的差別不大,主要體現在對最底層的劃分不同:
四層模型隱藏了底層細節,將網絡接入視為一個黑盒,更關注對軟件層面的設計,不關心具體的硬件;
五層模型明確包含了物理硬件層。
四層模型和五層模型本質上是同一個東西的兩種不同表述方式,所以我們接下來不糾結四層還是五層模型,而是統稱為TCP/IP模型。
二、LuatOS對TCP/IP協議棧的支持
在了解TCP/IP網絡模型之后,接下來我們看一下TCP/IP協議這個概念。
TCP/IP網絡模型是理論上的框架和藍圖,而TCP/IP協議是這個框架的具體實現。我們來看下面這張表格:

可以看到,每一層都有多個協議去實現,在所有的這些協議中,TCP和IP兩種協議是其中的核心協議,所以用TCP/IP協議代指網絡模型中的所有協議。
所以說,TCP/IP協議并不是兩個單一的協議,而是一個協議家族,包含TCP/IP網絡模型中的所有協議;所有協議協同工作,從軟件上完成了互聯網上的數據傳輸任務。
TCP/IP協議的核心工作原理,功能分層、數據封裝/解封裝等已整理詳細介紹,感興趣的朋友可查看文檔:
https://docs.openluat.com/luatos_lesson/002_luatos_socket/
那么,LuatOS對TCP/IP協議棧的支持情況是怎樣的,提供了哪些編程接口給LuatOS項目應用腳本來使用呢?
2.1 應用層
1)LuatOS協議支持:
HTTP,MQTT,FTP,WebSocket,DNS,NTP,DHCP,SSL/TLS(從OSI七層模型來看,和表示層最接近,所以此處把SSL/TLS放到TCP/IP模型中應用層)。
2)LuatOS編程接口:
socket核心庫/libnet擴展庫
http核心庫/httpplus擴展庫/httpsrv核心庫
mqtt核心庫
ftp核心庫
websocket核心庫
httpdns擴展庫
dhcpsrv擴展庫
udpsrv擴展庫
用層提供的這些編程接口和LuatOS項目應用開發關系最為密切,這些核心庫和擴展庫的API文檔可參考下方鏈接。
LuatOS最新API手冊:https://docs.openluat.com/osapi/
2.2 傳輸層
1)LuatOS協議支持:TCP,UDP;
2)LuatOS編程接口:socket核心庫/libnet擴展庫。
2.3 應用層
1)LuatOS協議支持:IP,ICMP;
2)LuatOS編程接口:
socket核心庫
在這里重點說一下exnetif擴展庫,exnetif擴展庫有兩項核心功能。

2.4 數據鏈路層
LuatOS協議支持:
以太網的IEEE 802.3系列;
Wi-Fi網絡的IEEE 802.11系列;
4G網絡的PDCP、RLC、MAC等協議。
2.5 物理層
光纖、雙絞線、無線電波等傳輸介質。
今天的內容就分享到這里了!
審核編輯 黃宇
-
IP
+關注
關注
5文章
1862瀏覽量
155810 -
TCP
+關注
關注
8文章
1424瀏覽量
83496 -
LuatOS
+關注
關注
0文章
156瀏覽量
2692
發布評論請先 登錄
基于LuatOS的MQTT物聯網通信全解
掌握LuatOS系統消息:新手也能看懂的列表詳解
從零開始:一份詳細的灌封膠新手入門指南,告別常見操作誤區 | 鉻銳特實業
Linux新手通關!5分鐘掌握文件/目錄管理,告別“找不到北”
LuatOS MCU核心庫全接觸:新手操作與功能測試攻略!
新手必備:LuatOS MCU核心庫功能測試與實踐指南
新手如何快速掌握電磁閥氣密性檢測設備的操作?
從入門到精通:exchg充電庫助新手攻克續航與管理雙痛點
零基礎學習LuatOS編程:快速上手開發實戰教程!
快速掌握TCP/IP?LuatOS新手入門指南
評論