【TCP協議】MTU和MSS詳解


需要注意的是,區別兩種幀封裝格式:802標准幀和以太網幀
1,在802標准定義的幀格式中,長度字段是指它后續數據的字節長度,但不包括C R C檢驗碼。RFC 1042(IEEE 802)
2,RFC 894(以太網)
所以,以太網幀報頭為目的地址6 + 源地址6 + 類型2 + CRC4=18bytes
而802幀沒有CRC,所以為14bytes。Sniffer采用的是802幀為14bytes
 
 
MTU: Maxitum Transmission Unit 最大傳輸單元
MSS: Maxitum Segment Size  最大分段大小
 
由於以太網EthernetII最大的數據幀是1518Bytes這樣,刨去以太網幀的幀頭(DMAC目的地址MAC48bit=6Bytes+SMAC源MAC地址48bit=6Bytes+Type域2bytes)14Bytes和幀尾CRC校驗部分4Bytes(這個部門有時候大家也把它叫做FCS),那么剩下承載上層協議的地方也就是Data域最大就只能有1500Bytes. 這個值我們就把它稱之為MTU。
 
以太網的MTU是1500,再減去PPP的包頭包尾的開銷(8Bytes),就變成1492。
 
MSS就是TCP數據包每次能夠傳輸的最大數據分段。為了達到最佳的傳輸效能
TCP協議在建立連接的時候通常要協商雙方的MSS值,這個值TCP協議在實現的
時候往往用MTU值代替(需要減去IP數據包包頭的大小20Bytes和TCP數據段的
包頭20Bytes)所以往往MSS為1460。通訊雙方會根據雙方提供的MSS值得最小
值確定為這次連接的最大MSS值。
 
參考博客:https://blog.51cto.com/infotech/123859

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM