一談到TCP/IP協(xié)議棧,相信不少小白都處于暴躁的邊緣,只懂其一不知其二。沒(méi)關(guān)系,看完這篇你就知道啦!
我們先簡(jiǎn)單了解下TCP/IP協(xié)議,該協(xié)議最早得名于上世紀(jì)80年代,由于其優(yōu)異性,很快便成為主流網(wǎng)絡(luò)通信協(xié)議。后面出現(xiàn)的各類(lèi)協(xié)議(http、ip、dns、tcp、arp等)都被整體納入這一協(xié)議體系中去,被統(tǒng)稱為“TCP/IP協(xié)議?!保癟CP/IP協(xié)議?!泵Q就是這么由此而來(lái)的。
對(duì)應(yīng)這一協(xié)議棧,同時(shí)發(fā)展出了TCP/IP 參考模型,該模型是一個(gè)抽象的分層模型,TCP/IP 協(xié)議棧中的所有協(xié)議被歸類(lèi)到這一模型的4個(gè)層次中(四個(gè)層分別是:鏈路層、網(wǎng)絡(luò)層、傳輸層、應(yīng)用層),每一層都呼叫它的下一層所提供的協(xié)議來(lái)完成其需求,各個(gè)層次間互相協(xié)作,由此完成了互聯(lián)網(wǎng)通信的主要工作。

*由于OSI協(xié)議棧比較復(fù)雜,且TCP和IP兩大協(xié)議在業(yè)界被廣泛使用,所以TCP/IP參考模型成為了互聯(lián)網(wǎng)的主流參考模型*
為了讓你對(duì)通信過(guò)程有一個(gè)更好的理解,我將以http請(qǐng)求通信的過(guò)程為例子,從TCP/IP四個(gè)層次出發(fā),對(duì)應(yīng)各個(gè)層次的通信實(shí)體,看各個(gè)協(xié)議是如何在這些通信實(shí)體中發(fā)生作用。
在這之前我們先了解下網(wǎng)絡(luò)通信中的三個(gè)地址:IP地址、Mac地址以及端口號(hào),三者分別代表:
IP地址:網(wǎng)絡(luò)中互聯(lián)的主機(jī)和路由器的標(biāo)識(shí)
Mac地址:每個(gè)網(wǎng)卡硬件的物理地址
端口號(hào):識(shí)別同一個(gè)主機(jī)上不同的應(yīng)用程序,也可以理解為程序地址
當(dāng)你輸入一個(gè)網(wǎng)址并按下回車(chē)鍵的時(shí)候:應(yīng)用層協(xié)議會(huì)先對(duì)該請(qǐng)求包做格式定義;緊接著傳輸層協(xié)議加上雙方的端口號(hào),確認(rèn)雙方通信的應(yīng)用程序;然后網(wǎng)絡(luò)層協(xié)議加上雙方的IP地址,確認(rèn)雙方的網(wǎng)絡(luò)位置;最后鏈路層協(xié)議加上雙方的MAC地址,確認(rèn)雙方的物理位置,以太網(wǎng)協(xié)議會(huì)通過(guò)對(duì)電信號(hào)數(shù)據(jù)進(jìn)行分組,形成數(shù)據(jù)幀,再采用廣播方式,通過(guò)傳輸介質(zhì)發(fā)送給對(duì)方主機(jī)。而對(duì)于不同網(wǎng)段,該數(shù)據(jù)包先會(huì)轉(zhuǎn)發(fā)給網(wǎng)關(guān)路由器,經(jīng)過(guò)多次轉(zhuǎn)發(fā)后,最終被發(fā)送到目標(biāo)主機(jī)。目標(biāo)機(jī)接收到數(shù)據(jù)包后,采用對(duì)應(yīng)的協(xié)議,對(duì)幀數(shù)據(jù)進(jìn)行組裝,然后再通過(guò)一層一層的協(xié)議進(jìn)行解析,最終被應(yīng)用層的協(xié)議解析并交給服務(wù)器處理。在這個(gè)過(guò)程中,各項(xiàng)協(xié)議確保了傳輸過(guò)程的實(shí)現(xiàn)以及數(shù)據(jù)的安全。
IP地址相當(dāng)于是人所在的區(qū)域,MAC地址相當(dāng)于是人的身份證號(hào)碼,對(duì)于網(wǎng)絡(luò)傳輸最終都是以MAC地址來(lái)實(shí)現(xiàn)的。
我們來(lái)梳理一下每層模型的職責(zé):
- 應(yīng)用層:定義數(shù)據(jù)格式,并按照對(duì)應(yīng)的格式解讀數(shù)據(jù)
- 傳輸層:定義端口,確認(rèn)主機(jī)上應(yīng)用程序的身份,并將數(shù)據(jù)包交給對(duì)應(yīng)的應(yīng)用程序
- 網(wǎng)絡(luò)層:定義IP地址,確認(rèn)主機(jī)所在的網(wǎng)絡(luò)位置,并通過(guò)IP進(jìn)行MAC尋址,對(duì)外網(wǎng)數(shù)據(jù)包進(jìn)行路由轉(zhuǎn)發(fā)
- 鏈路層:以字節(jié)為單位對(duì)0和1進(jìn)行分組,定義數(shù)據(jù)幀,確認(rèn)主機(jī)的物理地址,傳輸數(shù)據(jù)
以上內(nèi)容是對(duì)TCP/IP四層模型做了簡(jiǎn)單的介紹,而實(shí)際上每一層模型都有很多協(xié)議,每個(gè)協(xié)議要做的事情也很多,但我們首先得有一個(gè)清晰的脈絡(luò)結(jié)構(gòu),把基本的作用都掌握了,然后再去豐富細(xì)節(jié),就比較好理解了。
關(guān)注我,用最通俗的文字帶你了解物聯(lián)網(wǎng)~
-
協(xié)議棧
+關(guān)注
關(guān)注
2文章
145瀏覽量
34106
發(fā)布評(píng)論請(qǐng)先 登錄
51+單片機(jī)TCP-IP+協(xié)議棧ZLIP源碼
以太網(wǎng)和TCP/IP的關(guān)系解析
什么是socket編程 socket與tcp/ip協(xié)議的關(guān)系
芯驛電子 ALINX 推出全新 IP 核產(chǎn)品線,覆蓋 TCP/UDP/NVMe AXI IP 核

Modbus RTU協(xié)議與Modbus TCP/IP協(xié)議的區(qū)別
TCP協(xié)議是什么
EtherNet/IP主站轉(zhuǎn)Modbus-TCP協(xié)議網(wǎng)關(guān)

Linux網(wǎng)絡(luò)協(xié)議棧的實(shí)現(xiàn)

EtherNet/IP轉(zhuǎn)Modbus-TCP協(xié)議轉(zhuǎn)換網(wǎng)關(guān)

EtherNet/IP轉(zhuǎn)Modbus-TCP協(xié)議網(wǎng)關(guān)(EtherNet/IP轉(zhuǎn)Modbus-TCP)

EtherNet/IP轉(zhuǎn)Modbus-TCP協(xié)議網(wǎng)關(guān)(JM-EIP-TCP)

串口服務(wù)器和TCP/IP協(xié)議棧是什么關(guān)系
一文了解TCP/IP協(xié)議

評(píng)論