tcpip協(xié)議棧是什么?
TCP/IP協(xié)議棧是計算機(jī)網(wǎng)絡(luò)中使用的最常見的網(wǎng)絡(luò)協(xié)議棧。它是一個四層協(xié)議棧,每一層使用不同的協(xié)議來實現(xiàn)特定的任務(wù)。下面是TCP/IP協(xié)議棧的四個層級(自下而上): 1. 鏈路層:該層主要是協(xié)議,負(fù)責(zé)在物理網(wǎng)絡(luò)上傳輸數(shù)據(jù)幀,包括數(shù)據(jù)的傳輸和數(shù)據(jù)的錯誤檢測與調(diào)整。該層使用的協(xié)議包括Ethernet和Wi-Fi等。 2. 網(wǎng)絡(luò)層:網(wǎng)絡(luò)層的主要任務(wù)是在計算機(jī)網(wǎng)絡(luò)中建立數(shù)據(jù)包的傳輸路徑。該層使用的協(xié)議包括IP(Internet Protocol)和ICMP(Internet Control Message Protocol)等。其中,IP協(xié)議負(fù)責(zé)將數(shù)據(jù)包從源節(jié)點路由到目標(biāo)節(jié)點,而ICMP協(xié)議則用于網(wǎng)絡(luò)故障的診斷和恢復(fù)。 3. 傳輸層:該層主要負(fù)責(zé)數(shù)據(jù)的傳輸和網(wǎng)絡(luò)連接的管理。該層使用的協(xié)議包括TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)等。其中,TCP協(xié)議用于建立可靠的點對點連接(如HTTP、FTP等應(yīng)用程序),而UDP協(xié)議則用于無連接和低延遲的數(shù)據(jù)傳輸(如視頻聊天等應(yīng)用程序)。 4. 應(yīng)用層:該層體系結(jié)構(gòu)與應(yīng)用程序相關(guān)。該層使用的協(xié)議類型很多,如HTTP(HyperText Transfer Protocol)、FTP(File Transfer Protocol)、SMTP(Simple Mail Transfer Protocol)等。該層的主要任務(wù)是為不同的應(yīng)用程序提供標(biāo)準(zhǔn)化的接口,以便應(yīng)用程序之間可以相互通信和協(xié)作。
tcpip協(xié)議棧有哪些協(xié)議?
TCP/IP協(xié)議棧包含4個協(xié)議層:
網(wǎng)絡(luò)接口層:負(fù)責(zé)與物理網(wǎng)絡(luò)進(jìn)行交互,完成數(shù)據(jù)的發(fā)送和接收。
網(wǎng)絡(luò)層:負(fù)責(zé)數(shù)據(jù)的尋址、路由選擇和數(shù)據(jù)分組。主要協(xié)議是IP協(xié)議。
傳輸層:負(fù)責(zé)進(jìn)程間的數(shù)據(jù)傳輸。主要協(xié)議有TCP和UDP協(xié)議。
應(yīng)用層:提供網(wǎng)絡(luò)應(yīng)用服務(wù)。包含許多常用協(xié)議如HTTP、FTP、SMTP、DNS等。
TCP/IP協(xié)議棧4個協(xié)議層的主要作用:
1、網(wǎng)絡(luò)接口層:隱藏物理網(wǎng)絡(luò)的細(xì)節(jié),為高層提供統(tǒng)一的接口。
2、網(wǎng)絡(luò)層:定義IP地址和路由標(biāo)準(zhǔn),實現(xiàn)不同子網(wǎng)之間的數(shù)據(jù)傳輸。IP協(xié)議工作在此層。
3、傳輸層:定義端到端的通信標(biāo)準(zhǔn),提供進(jìn)程間的數(shù)據(jù)交換。TCP和UDP工作在此層。
4、應(yīng)用層:提供網(wǎng)絡(luò)應(yīng)用服務(wù)和接口。不同的應(yīng)用協(xié)議工作在此層,如HTTP、FTP、DNS等。
tcpip協(xié)議棧中報文封裝和解封裝過程
TCP/IP協(xié)議棧中的報文封裝和解封裝過程如下:
封裝過程: 1. 應(yīng)用層:應(yīng)用程序?qū)?shù)據(jù)封裝成應(yīng)用層協(xié)議的數(shù)據(jù)單元,如HTTP、FTP等。 2. 傳輸層:傳輸層將應(yīng)用層數(shù)據(jù)單元封裝成傳輸層協(xié)議的數(shù)據(jù)單元,如TCP、UDP等。TCP協(xié)議還會分段,每個段包含一個序號,用于在傳輸過程中保證數(shù)據(jù)的可靠傳輸。UDP協(xié)議則直接將數(shù)據(jù)單元封裝成UDP報文。 3. 網(wǎng)絡(luò)層:網(wǎng)絡(luò)層將傳輸層數(shù)據(jù)單元封裝成網(wǎng)絡(luò)層協(xié)議的數(shù)據(jù)單元,如IP報文。IP報文包含源IP地址、目的IP地址等信息,用于在網(wǎng)絡(luò)中路由和轉(zhuǎn)發(fā)。 4. 數(shù)據(jù)鏈路層:數(shù)據(jù)鏈路層將網(wǎng)絡(luò)層數(shù)據(jù)單元封裝成數(shù)據(jù)鏈路層協(xié)議的數(shù)據(jù)單元,如以太網(wǎng)幀。以太網(wǎng)幀包含源MAC地址、目的MAC地址等信息,用于在局域網(wǎng)中傳輸和尋址。 5. 物理層:物理層將數(shù)據(jù)鏈路層數(shù)據(jù)單元轉(zhuǎn)換為比特流,用于在物理媒介上傳輸。
解封裝過程: 1. 物理層:物理層將比特流轉(zhuǎn)換成數(shù)據(jù)鏈路層數(shù)據(jù)單元。 2. 數(shù)據(jù)鏈路層:數(shù)據(jù)鏈路層將數(shù)據(jù)鏈路層數(shù)據(jù)單元解封裝為網(wǎng)絡(luò)層數(shù)據(jù)單元。 3. 網(wǎng)絡(luò)層:網(wǎng)絡(luò)層將網(wǎng)絡(luò)層數(shù)據(jù)單元解封裝為傳輸層數(shù)據(jù)單元。 4. 傳輸層:傳輸層將傳輸層數(shù)據(jù)單元解封裝為應(yīng)用層數(shù)據(jù)單元。 5. 應(yīng)用層:應(yīng)用層將應(yīng)用層數(shù)據(jù)單元解封裝為原始數(shù)據(jù)。
再分享一張圖片來說明一下封裝過程;意思跟上圖一樣,解封就是反向:
tcp在建立連接和斷開連接
tcp在建立連接和斷開連接分別要經(jīng)過三次握手和四次揮手,那么都會有相應(yīng)的服務(wù)器端口狀態(tài),只描述三次握手和四次揮手雙端的狀態(tài),如圖:
數(shù)據(jù)傳輸過程
協(xié)議棧中數(shù)據(jù)傳輸?shù)倪^程:
① 應(yīng)用程序處理
首先應(yīng)用程序會進(jìn)行編碼處理,這些編碼相當(dāng)于 OSI 的表示層功能;編碼轉(zhuǎn)化后,郵件不一定馬上被發(fā)送出去,這種何時建立通信連接何時發(fā)送數(shù)據(jù)的管理功能,相當(dāng)于 OSI 的會話層功能。
② TCP 模塊的處理
TCP 根據(jù)應(yīng)用的指示,負(fù)責(zé)建立連接、發(fā)送數(shù)據(jù)以及斷開連接。TCP 提供將應(yīng)用層發(fā)來的數(shù)據(jù)順利發(fā)送至對端的可靠傳輸。為了實現(xiàn)這一功能,需要在應(yīng)用層數(shù)據(jù)的前端附加一個 TCP 首部。
③ IP 模塊的處理
IP 將 TCP 傳過來的 TCP 首部和 TCP 數(shù)據(jù)合起來當(dāng)做自己的數(shù)據(jù),并在 TCP 首部的前端加上自己的 IP 首部。IP 包生成后,參考路由控制表決定接受此 IP 包的路由或主機(jī)。
④ 網(wǎng)絡(luò)接口(以太網(wǎng)驅(qū)動)的處理
從 IP 傳過來的 IP 包對于以太網(wǎng)來說就是數(shù)據(jù)。給這些數(shù)據(jù)附加上以太網(wǎng)首部并進(jìn)行發(fā)送處理,生成的以太網(wǎng)數(shù)據(jù)包將通過物理層傳輸給接收端。
⑤ 網(wǎng)絡(luò)接口(以太網(wǎng)驅(qū)動)的處理
主機(jī)收到以太網(wǎng)包后,首先從以太網(wǎng)包首部找到 MAC 地址判斷是否為發(fā)送給自己的包,若不是則丟棄數(shù)據(jù)。如果是發(fā)送給自己的包,則從以太網(wǎng)包首部中的類型確定數(shù)據(jù)類型,再傳給相應(yīng)的模塊,如 IP、ARP 等。這里的例子則是 IP 。
⑥ IP 模塊的處理
IP 模塊接收到數(shù)據(jù)后也做類似的處理。從包首部中判斷此 IP 地址是否與自己的 IP 地址匹配,如果匹配則根據(jù)首部的協(xié)議類型將數(shù)據(jù)發(fā)送給對應(yīng)的模塊,如 TCP、UDP。這里的例子則是 TCP。另外,對于有路由器的情況,接收端地址往往不是自己的地址,此時,需要借助路由控制表,在調(diào)查應(yīng)該送往的主機(jī)或路由器之后再進(jìn)行轉(zhuǎn)發(fā)數(shù)據(jù)。
⑦ TCP 模塊的處理
在 TCP 模塊中,首先會計算一下校驗和,判斷數(shù)據(jù)是否被破壞。然后檢查是否在按照序號接收數(shù)據(jù)。最后檢查端口號,確定具體的應(yīng)用程序。數(shù)據(jù)被完整地接收以后,會傳給由端口號識別的應(yīng)用程序。
⑧ 應(yīng)用程序的處理
接收端應(yīng)用程序會直接接收發(fā)送端發(fā)送的數(shù)據(jù)。通過解析數(shù)據(jù),展示相應(yīng)的內(nèi)容。
-
HTTP
+關(guān)注
關(guān)注
0文章
525瀏覽量
33498 -
FTP
+關(guān)注
關(guān)注
0文章
115瀏覽量
41406 -
TCPIP
+關(guān)注
關(guān)注
1文章
56瀏覽量
23182 -
TCPIP協(xié)議棧
+關(guān)注
關(guān)注
0文章
6瀏覽量
6094
發(fā)布評論請先 登錄
ARM開發(fā)教程之基于ARM微處理器TCPIP協(xié)議棧LwlP實現(xiàn)
協(xié)議是什么 協(xié)議棧又是什么
51實現(xiàn)TCPIP協(xié)議原理圖
嵌入式TCPIP協(xié)議棧LWIP的內(nèi)部結(jié)構(gòu)

基于ARM的輕量級TCPIP協(xié)議棧的移植及應(yīng)用

TCPIP協(xié)議棧的實現(xiàn)lwip
AN1921 - Microchip TCPIP精簡協(xié)議棧

教你動手寫UDP協(xié)議棧—DNS報文解析
CAN協(xié)議棧與LIN協(xié)議棧介紹

評論