Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Networking 如何计算IP报头长度?_Networking_Ip_Ipv4 - Fatal编程技术网

Networking 如何计算IP报头长度?

Networking 如何计算IP报头长度?,networking,ip,ipv4,Networking,Ip,Ipv4,我想用以下语句计算IP头长度: 标题长度是一个四位字段,顾名思义,它告诉 IP头的长度(32位字) 现在,我很难用四位字段计算IP报头长度(最小值和最大值)。 当值为5且没有选项时,有效数据报的IPv4报头的最小长度为20字节 由于字段的宽度为4位,因此它可以存储的最大值为15,因此报头的最大长度为60字节 Internet标头长度32中Internet标头的长度 位字,因此指向数据的开头。注意 正确标题的最小值为5 这意味着无论IHL中存储了什么值,它都应该与32相乘以获得总位数,或者与4相

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

标题长度是一个四位字段,顾名思义,它告诉 IP头的长度(32位字)

现在,我很难用四位字段计算IP报头长度(最小值和最大值)。

  • 当值为5且没有选项时,有效数据报的IPv4报头的最小长度为20字节
  • 由于字段的宽度为4位,因此它可以存储的最大值为15,因此报头的最大长度为60字节
Internet标头长度32中Internet标头的长度 位字,因此指向数据的开头。注意 正确标题的最小值为5


这意味着无论IHL中存储了什么值,它都应该与32相乘以获得总位数,或者与4相乘以获得总字节数。

@Amit>HL字段中的值是=总IP报头长度中的4字节数。这意味着如果报头长度字段为40,然后计算40中有多少个4字节?它的40/4=10。所以HL字段中的值是10

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

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


希望现在一切都清楚了。

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

4位可能的最大值为15

因此,可能的最大头长度是4x15=60字节

Header Length |  Header Length Field

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

如果报头长度为22字节,则我们使用填充将其设置为4的倍数,即24字节

从值15转换为60字节,我无法理解。您能再多加一点吗?@amitsightomar大小为“32位字”。