原文 https://datatracker.ietf.org/doc/html/rfc6691 TCP Options and Maximum Segment Size (MSS) TCP 选项和最大段大小 (MSS)
概述
本文讨论了与 TCP 最大段大小 (MSS) 选项一起使用的值,并更新了 RFC 879 和 RFC 2385。
1. 简介
在使用 IP 和 TCP 选项时,对于 TCP MSS 选项使用什么值存在一些混淆。 RFC 879 [RFC879] 指出:
MSS 只计算数据段中的数据八位字节,它不计算 TCP 报头或 IP 报头。
此声明不清楚如何处理 IP 和 TCP 选项,因为它们是头部的一部分。 RFC 1122 [RFC1122] 阐明了 MSS 选项,这在附录 A 中进行了讨论,但似乎仍然存在一些混淆。
2. 简短声明
在计算放入 TCP MSS 选项的值时,MTU 值应该仅减少固定 IP 和 TCP 头部的大小,并且不应减少以考虑任何可能的 IP 或 TCP 选项;相反,发送方必须减少 TCP 数据长度以说明它在发送的数据包中包含的任何 IP 或 TCP 选项。本文档的其余部分仅阐述了该声明,其目标是避免 TCP 数据包的 IP 级的分片。
TCP固定头大小为20字节[RFC793],IPv4固定头大小为20字节[RFC791],IPv6固定头大小为40字节[RFC2460]。
确定应该使用什么 MTU 值,尤其是在多宿主主机的情况下,超出了本文档的范围。