MTU 与 MSS?何时更改 MTU,何时更改 MSS?

网络工程 以太网 网络核心
2021-07-06 21:52:27

这是问题。

我们何时以及为何降低 MSS 而不是 MTU。

在我们可以配置的路由器中,可以分别配置它们。

假设我将 MSS 保留为 1260。我没有对 MTU 进行任何更改。现在,如果 TCP 和 IP 标头没有任何选项,那么它们将使用 40 字节(20 TCP + 20 IP)。

这是否意味着在这种情况下 MTU 是 1300。

现在是第二种情况。

我将 MTU 降低到 1300。我没有对 MSS 进行任何更改。同样在 TCP 和 IP 选项中没有选项。

这是否意味着这种情况下的 MSS 是 1260。

如果两种情况都有相同的结果,那么请帮助我理解以下内容。

  1. 在哪种情况下,我们应该减少 MTU 并保持 MSS 不变?
  2. 在哪种情况下,我们应该降低 MSS 并保持 MTU 不变?

谢谢

3个回答

MTU通常是对直接连接接口的物理介质的引用作为一般规则,您希望将此作为介质可以处理的最大值。由于覆盖网络或花哨的封装方案,偶尔会出现需要启用巨型帧或调整 MTU 的情况。

MSS主要是对端到端路径的引用这通常不是手动设置的,而是留给诸如路径 MTU发现之类的功能来在逐个连接的基础上动态设置。最常见的情况是 TCP,它可以更好地“调整”连接以获得最佳的端到端带宽使用,如果它完全控制正在发送的段,而不是让段在不知不觉中沿着路径被分段。

另一种看待它的方式......

MTU应仅根据物理介质和/或边缘封装或巨型帧需求进行设置。MTU 影响从接口发出的每个帧。

MSS是基于集合路径 MTU 动态设置的,通常是逐个连接地设置。 MSS 的动态调整针对每个连接进行调整,但不会影响其他连接或其他“非面向连接”的通信。

补充一下前面的评论,网络本身有两个MTU设置需要设置。您在交换机上设置了以太网 MTU。再次将其设置为最大允许值。

然后是您在路由器上设置的 IP MTU。通常,如果没有设置选项(如 DF 位),则这仅意味着当数据包超过此大小时路由器将分段。如果您设置了 DF 位(不分段),则路由器将丢弃高于其允许的 IP MTU 的数据包。

谈到您的问题 - IP MTU 无关紧要,因为您没有使用任何选项位,它只会按照设置的大小分段。但是以太网 MTU 必须大于您的 MSS。另一种说法是 MSS 应该小于以太网 MTU 大小。通常,您不会手动设置此 MSS,而是使用 path-mtu 发现,它会找到两个端点之间的最小 MTU,并将 MSS 调整为低于该值。

您可能希望在不减少 MTU 的情况下减少 MSS,因为您可能希望限制 TCP 段的大小。您必须记住,并非所有传输的内容都是 TCP。您可能,也可能确实有其他与 IP 一起使用的第 4 层协议,并且您可能不想减小它们的大小。