双方是否需要就 MSS 值达成一致?

网络工程 通讯协议 协议理论 传输协议 第4层
2021-07-29 08:07:33

根据定义,TCP 最大分段大小 (MSS) 是主机愿意在单个 TCP/IPv4 数据报中接受的最大数据量。 MSS是3次握手时协商的参数之一。

根据定义,他们似乎不需要就一个值达成一致,因为他们可以根据对方要求的最大值发送数据报。另一方面,选择较低的值是有意义的,因为这意味着要求较低 MSS 的一方无法处理更难的段,因此没有必要发送更大的段。

所以我的问题是,从技术上讲,双方是否需要就 MSS 值(较低的值)达成一致,还是每个人都可以使用自己的?

我有点困惑,因为我看到有人说 MSS 值是协商好的,但他们不必就值达成一致,但其他人说他们同意较低的值。

1个回答

MSS是3次握手时协商的参数之一。

不,价值不是协商的,它只是由一方或双方发送。

从技术上讲,双方是否需要就 MSS 值(较低的值)达成一致,还是每个人都可以使用自己的?

不,双方不需要达成一致,每个人都可以拥有自己的 MSS。操作系统中 TCP 的特定实现在这里可能做的是题外话,可能是实现的作者决定要求双方都使用较低的值。

什么RFC 793,传输控制协议说:

最大段大小选项数据:16 位

如果存在此选项,则它会在发送此段的 TCP 处传达最大接收段大小。该字段只能在初始连接请求中发送(即,在设置了 SYN 控制位的段中)。如果未使用此选项,则允许任何段大小。