IPv4 68 字节或 576 字节的最小 MTU 是多少?

网络工程 IPv4 第 3 层 传输协议
2022-03-02 08:00:56

我读到 68 字节是 IPv4 数据报的最小大小,每个设备必须能够转发而无需进一步分片。

576 字节是每个设备必须能够接收的 IPv4 数据报的最小大小(它可以是完整的或分段的)。

(根据 RFC 791,第 24 页)

2个回答

IPv4 68 字节或 576 字节的最小 MTU 是多少?

这确实是一个无效的问题,它混合了来自两个不同网络层的术语。网络(第 3 层)协议,例如 IPv4,没有 MTU。MTU 是特定物理(第 1 层)介质上的数据链路(第 2 层)协议可以在其有效载荷(第 3 层数据包)中传输(因此在 MTU 中传输)的最大传输单元。

IPv4 将具有最小和最大数据包大小。最小数据包大小将是标头(20 到 60 个八位字节,其中 20 是真正的现代标头大小)加上有效负载(UDP 的最小数据报大小为 8)。最大 IPv4 数据包大小基于 16 位长度字段,即 65,536,比任何实际数据链路协议 MTU 都大。

在现代世界中,没有 MTU 低至 576 的数据链路协议。可以在接口上配置它,但为什么呢?隧道内部的隧道,隧道内部的隧道也有可能达到如此低的水平,但这将是一个不应该容忍的糟糕设置。实际上,IPv6 要求其路径中的最小 MTU 为 1280,因此这可能是您在现实世界中会遇到的最小 MTU。


确实,576 这个数字现在是历史琐事(这里是题外话),但是一个节点,比如路由器,必须能够接受至少那么大的数据包,所以实际上不允许设置比这个小的 MTU。

576 字节是任何节点必须能够处理的最小 IPv4 数据包(数据报)大小。(RFC 791:每个 Internet 目的地都必须能够接收一个 576 个八位字节的数据报,无论是单片还是要重新组装的片段。

68 字节是 IPv4每个节点必须能够处理的最小片段大小。(RFC 791:每个互联网模块都必须能够转发 68 个八位字节的数据报,而无需进一步分片。

RFC 791:可以通过下一个网络传输的最大大小的数据报称为最大传输单元(MTU)。

因此,您也可以将最小片段大小(68 字节)称为 IPv4 的最小可能MTU。“最小MTU”=“最小最大传输单元”没有太大意义......

为了完整起见,绝对最小的 IPv4 数据包大小为 20 字节 - 具有最小标头且没有有效负载的数据包。(RFC 791:Internet Header Length 是 Internet 标头的 32 位字的长度,因此指向数据的开头。请注意,正确标头的最小值是 5。