5

我想用以下语句计算 IP 标头长度:

Header Length 是一个四位字段,顾名思义,以 32 位字表示 IP 标头的长度

现在我在用四位字段计算 IP 标头长度(最小和最大)时遇到了困难。

4

4 回答 4

12
  • 有效数据报的 IPv4 报头最小长度为 20 字节,当值读取为 5 且没有选项时
  • 由于该字段为 4 位宽,它可以存储的最大值为 15,因此标头的最大长度为 60 字节。

Internet Header Length 是32 位字的Internet 标头长度,因此指向数据的开头。请注意,正确标头的最小值是 5。

这意味着在 IHL 中存储的任何值都应乘以 32 以获得总位数,或乘以 4 以获得总字节数。

于 2012-07-26T11:24:12.090 回答
4

标头长度的最小值是 20 字节,但我们没有足够的位来表示 20,所以我们使用缩放技术,即 0101 (5) 将表示 4 X 5 = 20 字节,这里缩放因子是 4。

4位可能的最大值是15。

所以最大可能的标头长度是 4 X 15 = 60 字节。

Header Length |  Header Length Field

         20 -----> 5
         24 -----> 6
         28 -----> 7
            .
            .
            .
         60 -----> 15

如果标头长度为 22 字节,那么我们使用填充使其成为 4 的倍数,即 24 字节

于 2014-11-16T17:11:08.090 回答
1

@Amit> HL 字段中的值 = IP 头总长度中的 4 字节数。意思是如果头长度字段是 40,那么计算 40 中有多少 4 字节?它的 40/4=10。所以值在 HL 字段中为 10

最低 HL 值

最小 HL 为 20 字节。即 20 中没有 4 字节 = 20/4=5。因此 HL 字段中的最小值为 5。

最大 HL 值

HL 是一个 4 位字段。因此可以在该字段中容纳的最大值是 15(1111),或者您可以使用公式 2^4-1=15 进行计算。所以 4 个字节的最大编号:可以是 15。因此最大标头长度=15*4=60bytes。

希望现在一切都清楚了。

于 2013-07-04T12:03:08.563 回答
0

Internet 标头长度 (IHL) 字段是 IPv4 标头中 32 位字(=4 字节)的数量,包括任何选项。因为这也是一个 4 位字段,所以 IPv4 标头被限制为最多 15 个 32 位字(=60 字节)

所以如果 IHL 的值为 0101(5),那么 IP-header 的长度是 5*4(bytes) = 20(bytes)

于 2022-03-03T03:37:18.493 回答