我想用以下语句计算 IP 标头长度:
Header Length 是一个四位字段,顾名思义,以 32 位字表示 IP 标头的长度
现在我在用四位字段计算 IP 标头长度(最小和最大)时遇到了困难。
我想用以下语句计算 IP 标头长度:
Header Length 是一个四位字段,顾名思义,以 32 位字表示 IP 标头的长度
现在我在用四位字段计算 IP 标头长度(最小和最大)时遇到了困难。
Internet Header Length 是32 位字的Internet 标头长度,因此指向数据的开头。请注意,正确标头的最小值是 5。
这意味着在 IHL 中存储的任何值都应乘以 32 以获得总位数,或乘以 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 字节
@Amit> HL 字段中的值 = IP 头总长度中的 4 字节数。意思是如果头长度字段是 40,那么计算 40 中有多少 4 字节?它的 40/4=10。所以值在 HL 字段中为 10
最小 HL 为 20 字节。即 20 中没有 4 字节 = 20/4=5。因此 HL 字段中的最小值为 5。
HL 是一个 4 位字段。因此可以在该字段中容纳的最大值是 15(1111),或者您可以使用公式 2^4-1=15 进行计算。所以 4 个字节的最大编号:可以是 15。因此最大标头长度=15*4=60bytes。
希望现在一切都清楚了。
Internet 标头长度 (IHL) 字段是 IPv4 标头中 32 位字(=4 字节)的数量,包括任何选项。因为这也是一个 4 位字段,所以 IPv4 标头被限制为最多 15 个 32 位字(=60 字节)
所以如果 IHL 的值为 0101(5),那么 IP-header 的长度是 5*4(bytes) = 20(bytes)