【发布时间】:2012-07-26 11:20:32
【问题描述】:
我想用下面的语句计算 IP-header 的长度:
Header Length 是一个四位字段,顾名思义, IP 报头的长度(32 位字)
现在我在用四位字段计算 IP 标头长度(最小和最大)时遇到了困难。
【问题讨论】:
标签: networking ip ipv4
我想用下面的语句计算 IP-header 的长度:
Header Length 是一个四位字段,顾名思义, IP 报头的长度(32 位字)
现在我在用四位字段计算 IP 标头长度(最小和最大)时遇到了困难。
【问题讨论】:
标签: networking ip ipv4
Internet Header Length 是 Internet 标头的长度,以 32 为单位 位字,因此指向数据的开头。注意 正确标题的最小值是 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 位字段。因此可以在该字段中容纳的最大 vale 是 15(1111) 或者您可以使用公式 2^4-1=15 进行计算。所以最大数量:4 个字节可以是15.因此最大标头长度=15*4=60bytes。
希望现在一切都清楚了。
【讨论】:
Internet Header Length (IHL) 字段是 32 位字的数量(=4 字节) 在 IPv4 标头中,包括任何选项。因为这也是一个 4 位字段,IPv4 标头限制为最多 15 个 32 位 字数(=60 字节)
所以如果 IHL 的值为 0101(5),那么 IP-header 的长度是 5*4(bytes) = 20(bytes)
【讨论】: