數據幀、MTU、MSS、IP分片

1.以太網幀網絡

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

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

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

  [3]鏈路頭+4字節的FCS是幀頭,MTU是幀的負載,因此MTU是不包括鏈路頭的。協議

  

2.MSSdb

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

  MSS的做用:dba

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

    [2]提升網絡帶寬的利用率,減小IP分片和重組,由於發送到IP的數據包過大時會進行IP分片和重組,而經過MSS限制數據大小,上送到IP層時數據長度有限制,所以能夠減小分片。ps

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

3.IP分片

  IP層收到數據時,若是數據加上IP頭的長度超過MTU,則須要分片。

相關文章
相關標籤/搜索