【问题标题】:Why the version" field of IPv4 protocol is set to the higher 4-bits of the first byte?为什么 IPv4 协议的“版本”字段设置为第一个字节的高 4 位?
【发布时间】:2021-09-28 15:42:47
【问题描述】:

我不是以英语为母语的人,如果此说明中存在一些语法问题(或单词误用),请致歉。

最近在研究 TCP、UDP、IP 等网络协议,并使用 Wireshark 来捕获传输的数据包。我看到了一个我无法理解的“奇怪的东西”。

在 IPv4 协议设计中,“版本”字段是第一个字段,“标头长度”是第二个字段。两者都是 4 位字段。因此,当操作系统要传输 IPv4 数据包时,我认为“版本”和“标头长度”将组成第一个字节,“版本”将设置为低 4 位,“标头长度”字段设置为较高4 位。

但 Wireshark 向我展示了相反的情况。 “版本”字段始终设置为较高的 4 位,而“标头长度”设置为较低的 4 位。比如 0x45(版本 4,20 字节头长度)。

因为软件工作得很好,我知道我一定是误解了一些东西,但我不知道为什么。

【问题讨论】:

    标签: networking protocols ipv4


    【解决方案1】:

    维基百科文章解释它:“标头中的字段以最高有效字节在前(big endian)打包,并且对于图表和讨论,最高有效位被认为是最先出现的(MSB 0 位编号) . 最高有效位编号为 0,因此版本字段实际上是在第一个字节的四个最高有效位中找到的,例如。 https://en.wikipedia.org/wiki/IPv4

    【讨论】:

      猜你喜欢
      • 2015-09-29
      • 1970-01-01
      • 2012-05-23
      • 1970-01-01
      • 2016-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-13
      相关资源
      最近更新 更多