TCP UDP 資料報過大導致分片情況

2022-06-18 11:18:08 字數 783 閱讀 4962

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分片情況。

資料報分片

資料報分片原因 網路層的資料報需要借助於資料鏈路層來真正完成傳輸,但是資料鏈路層的mtu有限制,一般乙太網的mtu是1500b。但是網路層的資料報大小可以不止mtu這麼大,根據ip資料報的格式我們知道,總長度有16位,最大有2 16 1 65535b這麼大,因此,必然牽涉到資料報的分片技術。分片主要...

解讀TCP UDP資料報(二) TCP資料報結構

tcp資料報由首部和資料組成,每行4個位元組 32位 其中首部最少20個位元組 5行 最多60個位元組 15行 選項部分是可選的 tcp首部並沒有字段表明整個資料報的長度,是因為tcp資料報是包含在ip資料報中的,而ip資料報已有長度字段,除去ip首部和tcp首部,剩餘部分就是tcp包的淨荷資料。1...

ip資料報與分片

1.ip資料報 整個ip資料報中,包含了首部和資料。其中,如果選項沒有資料,則ip首部的長度就為20byte。在ip首部中涉及到分片的主要有 總長度,標識,標誌,分片偏移 總長度 整個資料報的長度,包含了首部和資料。所以要得到資料的長度,就用總長度減去首部長度 標識 當資料被分片,每個分片具有相同的...