当主机在握手期间未指定 MSS 时,TCP 中的预期行为是什么?

当主机在握手期间未指定 MSS 时,TCP 中的预期行为是什么?

假设有两台主机 A 和 B,它们将通过 TCP 进行通信。我很好奇与 MSS 相关的 TCP 行为。维基百科说 MSS 的默认值是 536。但是,RFC-793状态 - 当未指定 MSS 选项时,允许任何段大小。这两个语句让我感到困惑,我很想知道以下场景:

如果两台主机在 TCP 握手期间均未指定 MSS,则两台主机使用的 MSS 值是否为 536,否则会怎样? 双方的 TCP 堆栈将如何处理有效负载大于 MSS 的传入 TCP 段? 两台主机都会丢弃该数据包吗?

当主机 A 在 TCP 握手期间未指定 MSS 而主机 B 指定时,对等方(主机 B)会假设 MSS 值是什么?536 还是其他值?当主机 A 收到包含有效负载超过 536 字节(默认 MSS 值)的 TCP 段数据包时,主机 A 会做什么行为。主机 A 会丢弃该数据包吗?

当两个主机都指定 MSS 并发送包含大于 MSS 的有效负载的 TCP 段时?

提前谢谢!

相关内容