如何在 IPv4 标头中添加选项

网络工程 IPv4 协议论
2022-02-26 23:03:05

我正在开发一个项目,我需要在 IPv4 标头字段中添加一些选项。我正在关注此草案以进行实施。我有个疑问!

正如上面提到的草案所说,我需要在 IP 数据包的标头中添加至少 32*5 = 160 位,但据我所知,IP 标头中的选项字段仅限于 32 位。如何添加长度超过 32 位的选项?如果标题中已经存在一些选项,那么添加选项的正确方法应该是什么!

谢谢!

1个回答

您的两个问题都可以通过阅读Internet 协议上的RFC 791来回答。

首先,您从哪里获得选项字段大小?IPv4 标头最多可包含 40 个字节(320 位)的选项。

IP 标头的长度在Internet 标头长度(IHL) 字段中指示。它使用 32 位字作为长度单位,因此标头的总大小是 IHL 乘以 32 位的值。

由于 IHL 是一个 4 位字段,因此最大值为 15。这导致最大报头大小为 15 x 32 或 480 位。

没有选项的最小 IP 报头是 160 位 (IHL = 5)。这留下了 480-160 或 320 位用于选项。

至于您的第二个问题,选项字段的结构不是免费的,它应该包含RFC 791, page 15中定义的选项列表。如果存在选项,您应该在列表末尾添加您的选项。