这是问题。

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

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

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

所以这意味着在这种情况下的MTU为1300。 br />
现在是第二种情况。

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

这是否意味着本例中的MSS为1260。

如果两种方案的结果相同,请帮助我理解以下内容。


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

评论

有什么答案对您有帮助吗?如果是这样,您应该接受答案,这样问题就不会永远弹出来寻找答案。或者,您可以发布并接受自己的答案。

#1 楼

MTU通常是对直接连接接口的物理介质的引用。通常,您要将此设置保留为介质可以处理的最大数量。有时由于覆盖网络或奇特的封装方案而需要启用巨型帧或调整MTU。

MSS通常是对端到端路径的引用。这通常不是手动设置的,而是留给诸如Path MTU发现之类的功能来逐个连接地动态设置。最常见的情况是TCP,如果它完全控制正在发送的段,则可以更好地“调整”连接以实现最佳的端到端带宽使用,而不是使段沿路径不知不觉地被分段。 />
另一种看待它的方法...

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

MSS是基于集合路径MTU(通常基于逐个连接)动态设置的。可以为每个连接调整MSS的动态调整,但不会影响其他连接或其他“非面向连接的”通信。

#2 楼

要添加到前面的注释中,需要在网络本身中设置两个MTU设置。在交换机上设置了以太网MTU。同样,将其设置为最大允许值。

然后在路由器上设置了IP MTU。通常,如果未设置任何选项(例如DF位),则这仅表示路由器将在数据包超出此大小时分段。如果设置了DF位(不分段),则路由器将丢弃超出其允许的IP MTU的数据包。

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

评论


为了澄清由于MTU大小造成的碎片:这仅适用于IPv4; IPv6必须由发送方预先分段,因为路径中的路由器不会分段IPv6数据包。

–罗恩·莫潘♦
15年9月29日在18:01

那就对了。 ipV6对它的处理方式有所不同。

–ajaysdesk
2015年9月29日在18:11

@ajaysdesk如果路由器接口上的以太网MTU小于IP MTU,则IP数据包将被分段。对?示例:1000字节的以太网MTU,1514字节的IP MTU和1514字节的数据包。然后,该1514 IP数据包将被破坏。正确?

–艾哈迈德·瓦斯(AhmedWas)
18年11月21日在8:45



#3 楼

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