1. 程式人生 > >數據幀、MTU、MSS、IP分片

數據幀、MTU、MSS、IP分片

img 發送數據 http 以太網幀 info 限制 tcp協議 發送 使用

1.以太網幀

  在以太網鏈路上的數據包稱作以太幀,在802.3標準裏,規定了一個以太幀的數據部分(Payload)的最大長度是1500個字節(MTU),再加上14字節鏈路頭和4字節的FCS,所以以太網幀的最大長度為1518。另外,以太網幀的最小長度為64字節。

  [1]4字節的FCS是網卡處理的,所以抓到的包看不到這個字段(網卡驅動去掉了),組建包時也不用設置這個字段(由網卡驅動計算填充)。

  [2]每個幀的前面有7字節的前導碼和1字節的幀起始定界符,這8個字節是幀之外的數據,由接收器電路使用。

  [3]鏈路頭+4字節的FCS是幀頭,MTU是幀的負載,所以MTU是不包括鏈路頭的。

  技術分享圖片

2.MSS

  MSS是TCP報文負載的最大長度。MSS常常使用1460,是因為MTU最大為1500,減去IP頭(20字節)和TCP頭(20字節)後為1460。

  MSS的作用:

    [1]如果一端的接收緩沖區比較小(例如10字節),則必須兩端協商一個合適的MSS大小。

    [2]提高網絡帶寬的利用率,減少IP分片和重組,因為發送到IP的數據包過大時會進行IP分片和重組,而通過MSS限制數據大小,上送到IP層時數據長度有限制,因此可以減少分片。

  而UDP協議沒有MSS,所以發送給IP層時,由IP協議完成分片。例如發送數據長度為2000字節,使用TCP協議時(例如MSS是1460),TCP分成兩個包上送到IP層,此時IP層不用分片;而使用UDP時,一次上送到IP層,此時IP層需要分片。

3.IP分片

  IP層收到數據時,如果數據加上IP頭的長度超過MTU,則需要分片。

數據幀、MTU、MSS、IP分片