【網路協議】TCP分段與IP分片
我們在學習TCP/IP協議時都知道,TCP報文段如果很長的話,會在傳送時發生分段,在接受時進行重組,同樣IP資料包在長度超過一定值時也會發生分片,在接收端再將分片重組。
我們先來看兩個與TCP報文段分段和IP資料包分片密切相關的概念。
MYU(最大傳輸單元)
MTU前面已經說過了,是鏈路層中的網路對資料幀的一個限制,依然以乙太網為例,MTU為1500個位元組。一個IP資料包在乙太網中 傳輸,如果它的長度大於該MTU值,就要進行分片傳輸,使得每片資料包的長度小於MTU。分片傳輸的IP資料包不一定按序到達,但IP首部中的資訊能讓這些資料包片按序組裝。IP資料包的分片與重組是在網路層進完成的。
MSS(最大分段大小)
MSS是TCP裡的一個概念(首部的選項欄位中)。MSS是TCP資料包每次能夠傳輸的最大資料分段,TCP報文段的長度大於MSS時,要進行分段傳輸。TCP協議在建立連線的時候通常要協商雙方的MSS值,每一方都有用於通告它期望接收的MSS選項(MSS選項只出現在SYN報文段中,即TCP三次握手的前兩次)。MSS的值一般為MTU值減去兩個首部大小(需要減去IP資料包包頭的大小20Bytes和TCP資料段的包頭20Bytes)所以如果用鏈路層乙太網,MSS的值往往為1460。而Internet上標準的MTU(最小的MTU,鏈路層網路為x2.5時)為576,那麼如果不設定,則MSS的預設值就為536個位元組。很多時候,MSS的值最好取512的倍數。TCP報文段的分段與重組是在運輸層完成的。
到了這裡有一個問題自然就明瞭了,TCP分段的原因是MSS,IP分片的原因是MTU,由於一直有MSS<=MTU,很明顯,分段後的每一段TCP報文段再加上IP首部後的長度不可能超過MTU,因此也就不需要在網路層進行IP分片了。因此TCP報文段很少會發生IP分片的情況。
再來看UDP資料包,由於UDP資料包不會自己進行分段,因此當長度超過了MTU時,會在網路層進行IP分片。同樣,ICMP(在網路層中)同樣會出現IP分片情況。
總結:UDP不會分段,就由IP來分。TCP會分段,當然就不用IP來分了!
另外,IP資料包分片後,只有第一片帶有UDP首部或ICMP首部,其餘的分片只有IP頭部,到了端點後根據IP頭部中的資訊再網路層進行重組。而TCP報文段的每個分段中都有TCP首部,到了端點後根據TCP首部的資訊在傳輸層進行重組。IP資料包分片後,只有到達目的地後才進行重組,而不是向其他網路協議,在下一站就要進行重組。
最後一點,對IP分片的資料包來說,即使只丟失一片資料也要重新傳整個資料包(既然有重傳,說明運輸層使用的是具有重傳功能的協議,如TCP協議)。這是因為IP層本身沒有超時重傳機制------由更高層(比如TCP)來負責超時和重傳。當來自TCP報文段的某一段(在IP資料包的某一片中)丟失後,TCP在超時後會重發整個TCP報文段,該報文段對應於一份IP資料包(可能有多個IP分片),沒有辦法只重傳資料包中的一個資料分片。
相關文章
- TCP/IP協議 - 網路層TCP協議
- TCP/IP 協議及網路分層模型TCP協議模型
- 網路協議 - TCP/IP、HTTP、HTTPS、HTTP2.0協議TCPHTTP
- tcp/ip協議TCP協議
- 系列TCP/IP協議-TCP協議概述(011)TCP協議
- TCP/IP、UDP/IP協議TCPUDP協議
- 傳輸控制協議/網際網路協議(TCP / IP)是什麼意思?-VeCloud協議TCPCloud
- 系列TCP/IP協議-ARP與RARPTCP協議
- 計算機網路之TCP/IP協議簡介計算機網路TCP協議
- 網路基礎和 TCP、IP 協議TCP協議
- 系列TCP/IP協議-靜態IP選路(007)TCP協議
- TCP/IP協議族TCP協議
- TCP/IP 協議族TCP協議
- 《TCP/IP詳解 卷1:協議》第3章 IP:網際協議TCP協議
- 網路通訊協議-TCP協議詳解!協議TCP
- TCP/IP五層協議TCP協議
- 如何理解TCP/IP協議?TCP協議
- 計算機網路學習筆記(10) TCP/IP協議棧 之TELNET協議計算機網路筆記TCP協議
- 系列TCP/IP協議-TCP建立與終止連線(012)TCP協議
- TCP協議之網路延時TCP協議
- 系列TCP/IP協議-UDP(009)TCP協議UDP
- 重識TCP/IP協議族與HTTP基礎TCP協議HTTP
- 與HTTP關係密切的協議:IP、TCP、DNSHTTP協議TCPDNS
- 系列TCP/IP協議-廣播與多播(010)TCP協議
- TCP/IP網路協議棧:乙太網資料包結構、802.3、MTUTCP協議
- 漫談計算機網路:網路層 ------ 重點:IP協議與網際網路路由選擇協議計算機網路協議路由
- 通過故事引申網路協議TCP協議TCP
- 網路協議 - TCP/IP 三次握手和四次揮手協議TCP
- tcp/ip協議和opc協議對比詳解TCP協議
- Java中的TCP/IP協議和IP地址JavaTCP協議
- 網路分層TCP/IP 與HTTPTCPHTTP
- 系列之TCP/IP協議-概述(001)TCP協議
- TCP/IP協議的SYN攻擊TCP協議
- TCP/IP協議族基本概念TCP協議
- TCP/IP協議與OSI體系結構總結TCP協議
- 網路:IP地址分類和分段
- TCP/IP五層模型-傳輸層-TCP協議TCP模型協議
- 「真香警告」重學TCP/IP 協議 與三次握手TCP協議
- Linux TCP/IP協議棧全過程LinuxTCP協議