【问题标题】:transferring bits in an ip(IPv4) datagram在 ip(IPv4) 数据报中传输位
【发布时间】:2011-04-07 19:01:07
【问题描述】:

以太网中的比特以 LSB 优先方式传输,而 IPv4 数据报则以大端字节序传输。

例如 假设目标地址为 12-34-56-78-9A-BC 的以太网帧在数据字段中携带 IP 数据报。据我了解,以下是传输位的顺序:

preamble-SFD-destination addr----(以太网头的其余部分)----(以太网数据)

preamble-SFD-destination addr----(以太网报头的其余部分)----版本----报头长度----(IP数据报的其余部分)

preamble-SFD-12-34-56-78-9A-BC----(以太网报头的其余部分)----4----15----(IP数据报的其余部分)

问题1:以下哪个传输是正确的?

在线路上传输以太网帧,每个字节在 LSB 之前

preamble-SFD-01001000 00101100 01101010 00011110 01011001 00111101----(以太网报头的其余部分)---- 11110010----(IP数据报的其余部分)

在网络上传输以太网帧时,每个字节首先是 LSB,但 IP 标头在每个字节中作为 MSB 传输

preamble-SFD-01001000 00101100 01101010 00011110 01011001 00111101----(以太网报头的其余部分)---- 01001111----(IP数据报的其余部分)

问题2:由于以太网帧是在每个字节中先传输LSB,那么数据部分(IPv4数据报)中的位是否也会在每个字节中作为LSB先传输?

如果是,为什么我们说 IPv4 数据报是以大端字节序传输的

【问题讨论】:

    标签: networking tcp ethernet


    【解决方案1】:

    IPv4 数据报中的大端字节顺序与线路上位的顺序没有任何关系。

    从逻辑上讲,将以太网帧视为一系列字节,直到一直到物理层。

    某些以太网物理层技术(较旧、较慢的技术)恰好在线路上直接将每个字节转换为 8 位,最低有效位在前。 (一旦达到 1G / 10G 的速度,就没有这么简单了……)

    在您的示例中,版本 = 4 且标头长度 = 15,IP 数据报的第一个字节将为 0x4F,它将作为 11110010 传输。


    “大端字节序”是指多字节字段中字节的排序。

    例如:IPv4 标头中的“总长度”字段是一个 16 位值,占用字节 2 和 3。如果总长度为 1000 字节 - 十六进制的 0x3E8 - 这将作为 0x03(字节 2)发送后跟 0xE8(字节 3)。 (如果是小端序,则字节 2 中为 0xE8,字节 3 中为 0x03。)

    【讨论】:

      猜你喜欢
      • 2018-12-16
      • 2012-05-22
      • 2021-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-04
      • 1970-01-01
      相关资源
      最近更新 更多