Answers:
MTU是给定链接的最大IP数据包大小。大于MTU的数据包在找到较低MTU的位置被分段,并在链的更下方进行重组。
如果不需要分段,则必须在每个跃点上检查MTU或为此使用辅助协议(Path MTU Discovery)。
需要注意的是IPv6的确实不是由路由器支持数据包碎片,因此PMTUD与ICMPv6的是强制性的,如果你不想失去,因为小MTU的数据包的地方。端点可以分段,但不能分段,而且,IPv6的MINIMUM MTU更高。
MSS是最大TCP段大小。与MTU不同,超出MSS的数据包不会被分段,它们只会被丢弃。MSS通常是在TCP三向握手中决定的,但是某些设置可能会产生路径,其中所决定的MSS仍然太大,从而导致数据包丢失。MSS不是针对每个数据包协商的数据包,而是针对完整的TCP会话,也不考虑TCP / IP标头
使用PPPoE时,所有开销意味着您通常需要减少MSS,通常是在找到阻塞点的路由器上指定它,然后使用较高的正确较低值替换通过三向握手的MSS。PPPoE只是在所有内容(IP + TCP)之上添加了8个字节(6个字节的PPPoE + 2个字节的PPP),并且旨在通过以太网以1500字节的MTU运行,因此通常配置1492 MSS使其通过。
您的IP堆栈将截取要发送到MSS的数据,将其放入TCP段中,然后将其放入一个或多个IP数据包中(具体取决于它是否大于本地MTU设置),然后再发送。如果中间路由器的MTU较低,则可以将其进一步削减,但它们只会影响IP数据包本身,而不会影响TCP段/报头。
MTU是给定链路的最大IP数据包大小。MSS是最大TCP段大小。
MTU用于分段,即将大于MTU的数据包分段。但是,对于MSS,将丢弃大于MSS的数据包。
MSS是在TCP握手期间基本在SYN中指定的,建立连接后无法更改其值。
MSS = MTU-40(IP标头(20字节)+ TCP标头(20字节))