不断改变 MTU

网络工程 linux
2021-07-18 20:44:22

我正在构建自定义第 1 层(使用 rf 无线电)。我正在构建一个在 Linux 上运行在无线电链接两侧的 tap/tun 解决方案,以便我可以通过我的链接访问互联网。由于无线电链路的性质(数据包长度等),我的 MTU 相当小(有时 500 或更少)。但它也随着时间和信号条件而变化。如果接口的 MTU 不断变化,这是否很糟糕/程序会抱怨吗?这是不好的做法吗?

如果是这样,我应该自己在内部处理吗?例如,如果 Linux 认为 MTU 是 1000 字节,但我的链接仅支持 500 字节,我是否应该自己将 2 个数据包粘合在一起以确保 MTU 不经常更改?谢谢

1个回答

IP 不能很好地处理不同的 MTU。通常,每次 MTU 减少时,都会有另一轮路径 MTU 发现,当 MTU 再次增加时,发送主机将无法发现该事实。

另外,如果您想支持 IPv6,您将需要至少 1280 字节的 MTU。理论上,IPv4 应该支持低至 68 字节的 MTU,但使用如此小的 MTU 操作将非常低效,并且不太可能经过良好测试。

所以是的,如果您的底层链接具有短且可变的最大数据包大小,您应该在 IP 层下执行自己的分段和重组。完成此操作后,您也可以将 IP MTU 设为 1500 字节。