TCP/IP協議的數據傳輸過程詳解——IP與以太網的包收發操作


MTU:一個網絡包的最大長度,以太網中一般是1500字節;(含有頭部長度,包括IP頭部,TCP頭部,不包括MAC頭部)

MSS:除去頭部后,一個網絡包所能容納的TCP的數據的最大長度

 

下圖為TCP/IP軟件的分層結構:

 

其中,IP中ICMP協議用於告知網絡包傳送過程中產生的錯誤及各種控制信息,ARP協議用於根據IP地址查詢相應的以太網的MAC地址。

 

 

 TCP模塊在執行連接、收發、斷開等各階段的操作中,都需要委托IP模塊將數據封裝成包發送給通訊對象。

下面介紹一下網絡包的一些基本知識:

包是由頭部和數據兩部分組成。

 

頭部包含目的地等控制信息,頭部后面就是委托方要發給對方的數據。

 

下面是TCP/IP包的結構:

 

 

 

 

簡單區分一下路由器和集線器的區別:

它們在傳輸網絡包的時候有各自的分工:

1、路由器是根據IP規則傳輸包的設備,根據目標地址判斷下一個路由器的位置

2、集線器是按照以太網規則傳輸包的,在子網中將網絡包傳到下一個路由。

 

 

 

下圖是包收發操作的整體過程:

 

包收發操作的起點就是TCP模塊委托IP模塊發送包的操作,這個委托的過程就是在TCP模塊在數據塊的前面加上TCP頭部,然后整個傳遞給IP 模塊,這部分就是網路包中的內容。

與此同時,TCP模塊還需要指定通信對象的IP地址,收到委托后,IP模塊會將包的內容當做一個整塊數據,在前面加上包含控制信息的頭部。

IP模塊會添加IP頭部和MAC頭部這兩個,其中,IP頭部中包含IP協議規定、根據IP地址將包傳送到目的地的控制信息;MAC頭部包含通過以太的局域網將包傳輸至最近路由器所含的控制信息。

 

IP頭部包含很多控制信息,其中重要的是包將發送到哪里的IP地址,這是應用程序提供的;IP頭部中還需要填寫發送方的IP地址,需要IP模塊利用路由表進行判斷,即判斷發送使用的網卡。

 

MAC地址是在網卡生產時寫在ROM里面的,是全世界唯一的一串地址,是生成網卡時寫入的,根據IP地址查詢MAC地址。

我們通過ARP協議查詢目標路由器的MAC地址,發送廣播來查詢即可:問:**IP地址是誰的? 答:**IP地址是我的,我的MAC地址是**。為了防止網絡中增加很多ARP包,我們會有一個ARP緩存空間中保存查詢到的MAC地址。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM