我想用下面的语句来计算IP头的长度。
Header Length是一个四位的字段,顾名思义,它以32位的字来表示IP头的长度。
现在,我在计算IP头长度(最小和最大)时遇到了困难,有4位字段。
互联网报头长度为 互联网头的长度,以32位字为单位。因此指向数据的开头。 请注意,一个正确的头的最小值是5,这意味着无论在IHL中存储的是什么值,都应该与32相乘得到总的位数,或者与4相乘得到总的字节数。
这意味着无论在IHL中存储的是什么值,都应该与32相乘得到总的位数,或者与4相乘得到总的字节数。
头部长度的最小值是20字节,但我们没有足够的位数来表示20,所以我们使用缩放技术,即0101(5)将表示4 X 5 = 20字节,这里的缩放因子是4。
4位的最大可能值是15。
所以最大的头长度可能是4 X 15 = 60 Bytes。
Header Length | Header Length Field
20 -----> 5
24 -----> 6
28 -----> 7
.
.
.
60 -----> 15
如果头部长度是22字节,那么我们使用填充使其成为4的倍数,即24字节。
@Amit>HL文件中的值是=总的IP头长度中的4个字节数,也就是说,如果头长度字段是40,那么计算40中有多少个4字节?其404=10,所以HL字段的值是10。
最小的HL是20字节.即20中的4字节数=204=5.所以HL字段的最小值是5。
HL是一个4位的字段.所以该字段可以容纳的最大容量是15(1111),或者你可以用公式2^4-1=15来计算.所以最大的4个字节数可以是15.因此最大的头长度=15*4=60bytes。
希望现在事情已经清楚了。