我读到 68 字节是 IPv4 数据报的最小大小,每个设备必须能够转发而无需进一步分片。
576 字节是每个设备必须能够接收的 IPv4 数据报的最小大小(它可以是完整的或分段的)。
(根据 RFC 791,第 24 页)
我读到 68 字节是 IPv4 数据报的最小大小,每个设备必须能够转发而无需进一步分片。
576 字节是每个设备必须能够接收的 IPv4 数据报的最小大小(它可以是完整的或分段的)。
(根据 RFC 791,第 24 页)
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。)