【发布时间】:2016-10-04 22:24:25
【问题描述】:
我正在排查导致 PPPoE 服务出现碎片的 MTU/MSS 问题。下面是来自与我的问题相关的不同服务(按预期工作)的 TCP 3-Way Handshake 的数据包转储。
我理解 PMTUD 的工作方式是这样的:通过将 IP 标头中的不分片 (DF) 位设置为 1,到达目的地的路径上需要对数据包进行分段的路由器将 ICMP 发送回主机相应地调整 MSS 大小。但是,我的理解是,这只会在发生碎片时发生(数据包大于路径 MTU)。这表明 PMTUD 在数据交换阶段起作用,而不是在协商 TCP 3-Way Handshake 时(因为这些是小数据包,在这种情况下为 78 个字节)。
在上述数据包捕获中,SYN 数据包发送 MSS=1460(由于 PPPoE 的 8 字节开销,该数据太大了),并且来自服务器的 SYN/ACK 响应发送回正确的 MSS=1452。在这个交换过程中,TCP 使用什么机制来确定 MSS?
【问题讨论】:
标签: networking tcp