2

以太网中的位以 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 数据报以大端字节序传输

4

1 回答 1

3

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

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

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

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


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

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

于 2010-09-03T20:23:09.863 回答