TCP分段與IP分片

2021-08-21 21:51:13 字數 1357 閱讀 1701

鏈路層的乙個作用就是資料成幀,幀包括了head和data,而data有大小限制,就是常說的mtu,對乙太網來說是1500位元組。data包括了上層的網路層head和傳輸層head,這兩個head共佔了40位元組,剩下的資料大小不能超過1460位元組,也就是mms

mss是tcp資料報每次能夠傳輸的最大資料分段,tcp報文段的長度大於mss時,要進行分段傳輸。tcp協議在建立連線的時候通常要協商雙方的mss值,這是在三次握手的前兩次實現的,兩端會在首部寫入mss選項,即option部分,最終取二者的提出的mss的較小值,經常是1460。在wireshark中能看到:

也就是說tcp連線根據mss要在傳輸層進行分段(segment)與重組。

再看網路層,這一層涉及到了分片(fragment)問題。乙個ip資料報在乙太網中傳輸,如果它的長度大於mtu,就要進行分片傳輸,使得每片資料報的長度小於mtu。分片傳輸的ip資料報不一定按序到達,但ip首部中的資訊能讓這些資料報片按序組裝。ip資料報的分片與重組是在網路層進完成的。

這樣tcp連線的特點就出現了:因為在傳輸層根據mss進行了分段,使得每個資料報小於mss,那到了鏈路層肯定也是小於mtu的,這樣就不必在網路層進行分片了。ip分片用於udp和icmp等協議,因為它們不會在傳輸層分段。

ip資料報分片後,只有第一片帶有udp首部或icmp首部,其餘的分片只有ip頭部,到了目標主機而不是下一站後根據ip頭部中的資訊在網路層進行重組。tcp報文段的每個分段中都有tcp首部,到了對端後根據tcp首部的資訊在傳輸層進行重組。

tcp的分段傳輸:

udp的分片傳輸:

網路通訊盡可能避免ip分片,原因:

- 負責ip分片的主機、路由器會花費很多cpu資源處理分片,同時負責重組分片的主機、路由器需要更多的cpu資源。

- 分片中,如果某個片丟失,會造成整個ip資料報作廢,需要重新傳整個資料報,而ip層本身沒有超時重傳機制,由更高層(比如tcp)來負責超時和重傳。

tcp避免ip分片的方法乙個是上面說的tcp分段,另乙個是路徑mtu。

TCP分段與IP分片

我們在學習tcp ip協議時都知道,tcp報文段如果很長的話,會在傳送時發生分段,在接受時進行重組,同樣ip資料報在長度超過一定值時也會發生分片,在接收端再將分片重組。我們先來看兩個與tcp報文段分段和ip資料報分片密切相關的概念。myu 最大傳輸單元 mtu前面已經說過了,是鏈路層中的網路對資料幀...

TCP分段與IP分片

我們在學習tcp ip協議時都知道,tcp報文段如果很長的話,會在傳送時發生分段,在接受時進行重組,同樣ip資料報在長度超過一定值時也會發生分片,在接收端再將分片重組。我們先來看兩個與tcp報文段分段和ip資料報分片密切相關的概念。mtu 最大傳輸單元 mtu前面已經說過了,是鏈路層中的網路對資料幀...

TCP分段和IP分片

主要講tcp ip協議中傳輸層的分段和網路層的分片 1 tcp分段是指在經三次握手後,收發雙方建立起連線通過後,雙方已經協商好並確定彼此要採用的mss 最大分段長度b mss一般都是按照接受方確定。然後把使用者資料payload按照mss大小進行分段,各個分段資料被逐一新增tcp報頭後 20b 送給...