最大分段大小

网络传输中一个数据包除去首部后的最大长度

最大分段大小Maximum Segment Size)是传输控制协议的一个参数,以字节数定义一个计算机或通信设备所能接受的分段的最大数据量。 它并不会计算 TCP 或 IP 协议头的大小。[1]。即最大傳輸單元除去信頭後的最大數據量。含有 TCP 分段的 IP 資料包可以在一个数据包内自我包含,也可以从多个IP分片中重建。无论如何,MSS 限制都对最终重建的分段起效。

默认的 TCP 最大分段大小是 536。[2]当一个主机想要把 MSS 设置到一个非默认的值时,MSS 大小会以一个 TCP 可选项的方式在握手时的 SYN 包中定义。由于最大分段大小被一个 TCP 参数控制,主机可以在接下来的任意分段中改变它。

每个数据流的方向都可以使用不同的 MSS。

为了避免IP分片,主机应该将最大分段大小定义为最大 IP 資料包大小减去 IP 和 TCP 协议头的大小。 [3] 于是 IPv4 主机被要求能够承担 536(=576[4]-20-20) 字节的分段大小,IPv6 主机则须能承担 1220(= 1280[5] - 40 - 20) 字节的分段。

较低的最大分段大小能够减少或消除IP分片,然而会造成协议开销增大。 [6]

对于大部分操作系统来说,最大分段大小的值由操作系统指定。

拓展阅读 编辑

  • Comer, Douglas E. Internetworking with TCP/IP Vol. 1 5/E. Upper Saddle River, NJ, USA: Prentice Hall. 2006. 
  • Kozierok, Charles M. The TCP/IP Guide 3.0. 2005-09-20 [2011-09-08]. (原始内容存档于2020-10-20). 

参见 编辑

参考资料 编辑

  1. ^ RFC 879页面存档备份,存于互联网档案馆), page 2, Section 3, "The MSS counts only data octets in the segment, it does not count the TCP header or the IP header."
  2. ^ RFC 879页面存档备份,存于互联网档案馆), page 1, Section 1, "The default TCP Maximum Segment Size is 536."
  3. ^ RFC 2460 Archive.is存檔,存档日期2012-09-15, page 28, Section 8.3
  4. ^ RFC 879页面存档备份,存于互联网档案馆), page 1, Section 1
  5. ^ RFC 2460 Archive.is存檔,存档日期2012-09-15, page 24, Section 5
  6. ^ The TCP/IP Guide页面存档备份,存于互联网档案馆), TCP Maximum Segment Size (MSS) and Relationship to IP Datagram Size