【问题标题】:How do I calculate IP-header length?如何计算 IP 标头长度?
【发布时间】:2012-07-26 11:20:32
【问题描述】:

我想用下面的语句计算 IP-header 的长度:

Header Length 是一个四位字段,顾名思义, IP 报头的长度(32 位字)

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

【问题讨论】:

    标签: networking ip ipv4


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

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

    这意味着无论在 IHL 中存储什么值,都应乘以 32 得到总位数,或乘以 4 得到总字节数。

    【讨论】:

    • 我无法理解从值 15 到 60 字节的转换。你能再请它一点吗?
    • @AmitSinghTomar 大小为“32 位字”。
    【解决方案2】:

    标头长度的最小值是 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 字节

    【讨论】:

      【解决方案3】:

      @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 位字段。因此可以在该字段中容纳的最大 vale 是 15(1111) 或者您可以使用公式 2^4-1=15 进行计算。所以最大数量:4 个字节可以是15.因此最大标头长度=15*4=60bytes。

      希望现在一切都清楚了。

      【讨论】:

        【解决方案4】:

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-04-29
          • 1970-01-01
          • 2023-01-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多