📜  IPv4 标头中的选项字段

📅  最后修改于: 2022-05-13 01:56:17.311000             🧑  作者: Mango

IPv4 标头中的选项字段

所有 IP 数据报都必须有标准的 20 字节报头,其中包含关键信息,例如数据报的源地址和目的地址、分片控制参数、长度信息等。除了这些不变的字段之外,IPv4 的创建者还包括添加选项的能力,这些选项为 IP 处理数据报的方式提供了额外的灵活性。

IPv4 标头格式

IPv4 标头格式

IP 数据报可能包含零个、一个或多个选项,这使得 IPv4 标头中选项字段的总长度可变。每个选项可以是单个字节长,也可以是多个字节长,这取决于选项需要传达多少信息。当包含多个选项时,它们只是连接在一起并作为一个整体放入“选项”字段中。所有数据报可能不包含该字段。此字段是可选的。

IPv4 标头中的选项字段

IPv4 标头中的选项字段

IPv4 标头中的选项字段

以下是该字段支持的一些功能:

1.记录路线:

记录路由

记录路由

如果数据包正在传输并且设置了选项记录路由,则在路由器 R1 上,路由器 R1 的 IP 地址(即 R1)将记录在数据包上,在路由器 R2 上,路由器 R2 的 IP 地址表示 R2 将被记录。

因此,当目标 D 收到数据包时,它会看到数据包已经通过路由器 R1 和 R2。

IPv4 标头中选项字段的最大大小为 40 字节,每个 IP 地址为 4 字节。因此,当设置记录路由选项时,可以在任何 IPv4 数据报上记录的 IP 地址的最大数量应该是 10。但是由于在选项字段中,前 8 位为选项类型保留,接下来的 8 位为选项保留长度,我们有 38 个字节留给实际的数据字段。因此,在 38 个字节中,我们最多可以记录 9 个 IP 地址。

由于大多数安全原因,此记录路由选项不允许用户使用。只有网络管理员才能将它用于网络管理和调试等各种目的,但最终用户永远无法控制它。

2. 源路由

如果源不想遵循预先定义的路由协议,它可以设置自己的路由协议和路径。它可以指定数据包在我们发送数据包的路径上必须采用的路由。

严格的源路由

严格的源路由

这里对于一跳,目标 IP 地址将成为路由器 R1 的 IP 地址,例如 R1,而对于下一跳目标,IP 地址将成为路由器 R2 的 IP 地址,例如 R2。同样,对于下一跳目的地,IP 地址将成为路由器 R4 的 IP 地址,例如 R4,对于下一跳目的地,IP 地址将是目的地 D 的 IP 地址,例如 D。这种路由称为严格源路由

下一个源路由选项是松散源路由,我们不必指定整个路由。我们应该只指定数据包应该发送到路由器 R1,我们不关心它是发送到路由器 R2 还是 R3。因此,我们将跳过指定 R2 或 R3 的 IP 地址。然后我们将指定路由器 R4 和目的地 D 的 IP 地址。

松散源路由

松散源路由

Internet 服务提供商的网络管理员将使用松散源路由来检查路径是否正常工作,或者他们是否想要测试特定路径。否则,如果您发送一个数据包,则不能始终保证它采用了指定的路径。因此,最终用户不能使用此选项。在这里,也最多可以在数据报上记录 9 个 IP 地址。

3. 填充

填充用于确保 IP 数据包头的长度是 32 位的倍数。由于 IP 标头中选项字段的长度不同,因此需要它。如果从选项字段中选择了一个或多个选项,并且用于它们的位数不是 32 的倍数,则添加足够的零位以将标头“填充”为 32 位(4 字节)的倍数。