最大 IPv4 标头大小

网络工程 ipv4 协议理论
2021-07-24 20:05:50

IPv4 标头


我知道 IP 标头长度最少为 20 个字节,最多为 60 个字节。但为什么?为什么 IP 头长度限制为 60 字节?这里有没有人可以向我解释一下?谢谢你。

3个回答

Internet协议(IP)定义在RFC 791RFC 指定了 IP 报头的格式。在报头中有IHL互联网报头长度)字段,它是4位长并以32 位字指定报头长度IHL 字段可以保存从 0(二进制 0000)到 15(二进制 1111)的值。

所以最长的Internet Header(IP header)大小可以是 15*32 Bits = 480 Bits = 60 Bytes这就是标头的最大大小为 60 字节的原因。

最短的报头大小为 20 字节,其中 IHL 字段的值为 5 (0101)。这是因为标题中的所有必需字段都需要 20 字节的空间。因此,虽然理论上您可以将 IHL 设置为 < 5 的值,但这始终是一个不正确的值,因此是一个无效的数据包头。

根据定义它的RFC 791,请参阅第 12 页,其中讨论了数据报:

Total Length 是数据报的长度,以八位字节为单位,包括互联网报头和数据。该字段允许数据报的长度最多为 65,535 个八位字节。对于大多数主机和网络来说,如此长的数据报是不切实际的。所有主机都必须准备好接受最多 576 个八位字节的数据报(无论它们是完整的还是分段的)。建议主机仅发送大于 576 个八位字节的数据报,前提是它们确信目的地已准备好接受更大的数据报。

选择数字 576 以允许传输合理大小的数据块以及所需的报头信息。例如,此大小允许 512 个八位字节加 64 个报头八位字节的数据块适合数据报。最大的 Internet 标头是 60 个八位字节,典型的 Internet 标头是 20 个八位字节,这为更高级别协议的标头留出了余量。”

基本上长度定义在 20 到 60 之间,以允许不同的协议使用并适合推荐的数据报大小。

始终使用 IP 报头的前 5 行。因此,IP 报头的最小长度 = 5 x 4 字节 = 20 字节。代表选项字段的第 6 行的大小各不相同。选项字段的大小最多可达 40 个字节。因此,IP 报头的最大长度 = 20 字节 + 40 字节 = 60 字节。