如果 IP MTU 小于 MSS,会发生什么情况?

网络工程 ip 数据
2021-07-08 13:31:31

假设我配置了 MSS > IP MTU。即使没有意义,这可能吗?

假设我然后尝试发送一个 MSS 或更大大小的文件,网络层将从传输层接收数据(加上 TCP 标头)并附加它自己的标头。数据报的 MTU 现在将大于配置的 MTU。本地网络层会分片数据报还是丢弃它(向上层发送某种错误)?

1个回答

这取决于您实际谈论的是哪个MTU:

如果您在谈论第 2 层 MTU,则 IP 数据包会分段:

假设您想通过以太网发送一个长度为 5000 字节的 UDP 数据包。在这种情况下一个产生的IP包是5068个字节长。然后将该数据包拆分为 1500 字节长度的片段。传输片段。

如果您在谈论最大 IP 数据包长度:

如果所涉及的其中一台主机不支持给定长度的 IP 数据包,则数据传输将失败。如果目的主机不支持 5068 字节长度的 IP 数据包(示例中),则无法接收该数据包。

我读到了一个使用 DS-Lite 的 ISP,如果生成的数据包长于 1500 字节,则该 ISP 不支持 DS-Lite 隧道(IPv4-in-IPv6)。因此,无法路由长度超过 1460 字节的 TCP/IPv4 数据包。

我认为大多数操作系统都会默默地将 MSS 限制为自己主机支持的 ​​IP 数据包的最大大小。但是,许多 TCP/IP 实现不会在第一个数据包中发送 MSS 选项,因此 TCP 数据包可能长于接收器允许的最大 IP 数据包大小。(上面提到的 ISP 似乎就是这种情况。)