网络MTU和MSS
?
?
1. MTU
MTU: Maximum Transmit Unit,最大傳輸單元,即物理接口(數據鏈路層)提供給其上層(IP層)最大一次傳輸數據的大小;以普遍使用的以太網接口為例,缺省MTU=1500 Byte,這是以太網接口對IP層的約束,如果IP層有<=1500 byte 需要發送,只需要一個IP包就可以完成發送任務;如果IP層有> 1500 byte 數據需要發送,需要分片才能完成發送,這些分片有一個共同點,即IP Header ID相同。
?
?
2. MSS
MSS:Maximum Segment Size ,TCP提交給IP層最大分段大小,不包含TCP Header和 TCP Option,只包含TCP Payload ,MSS是TCP用來限制application層最大的發送字節數。如果底層物理接口MTU= 1500 byte,則 MSS = 1500 - 20(IP Header) -20 (TCP Header) = 1460 byte,如果application 有2000 byte發送,需要兩個segment才可以完成發送,第一個TCP segment = 1460,第二個TCP segment = 540。
在連接建立的時候,即在發送 SYN 段的時候,同時會將 MSS 發送給對方(MSS 選項只能出現在 SYN 段中!),告訴對端它期望接收的 TCP 報文段數據部分最大長度。
?
?
3. 區別
有些同學對 MSS 與 MTU 的概念仍然很模糊,分不清兩者之間的關系。
-
MSS 是軟件層的概念,它是由軟件控制的。
-
MTU 是硬件(比如網卡)的屬性,是指二層鏈路層幀攜帶的數據大小。
?
以ethernet為例:
鏈路上,幀的大小不能超過 1518 個字節(14 字節的幀頭 + 4 字節幀校驗和 + 最多 1500 字節數據)
MTU = IP(20) + UDP(8)/TCP(20) + data = 1500
MSS = MTU(20) - IP(20) - TCP(20) = 1460
?
?
?
?
?
總結
- 上一篇: 苹果 Apple Watch 成世界冲浪
- 下一篇: TCP流量控制与拥塞控制区别