MTU 与 MSS?何时更改 MTU 以及何时更改 MSS?

网络工程 以太网 网络核心
2022-02-11 09:42:45

这是问题。

我们何时以及为何降低 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 discovery,找到两个端点之间的最小MTU,然后将MSS调整为低于该值。

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