传输ip(IPv4)数据报中的位

时间:2010-09-03 10:48:14

标签: networking tcp ethernet

以太网中的位首先以LSB方式传输,但IPv4数据报将以大端字节顺序传输。

e.g。 假设一个以太网帧,目的地址为12-34-56-78-9A-BC,在数据字段中携带IP数据报。据我所知,以下将是比特传输的顺序:

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

preamble-SFD-destination addr ----(其余的以太网头)---- version ---- header length ----(其余的IP数据报)

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

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

首先在每个字节中用LSB传输以太网帧

前言-SFD-01001000 00101100 01101010 00011110 01011001 00111101 ----(其余以太网头)---- 11110010 ----(其余IP数据报)

首先在每个字节中使用LSB传输以太网帧,但首先在每个字节中将IP头传输为MSB

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

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

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

1 个答案:

答案 0 :(得分:2)

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

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

一些以太网物理层技术(较旧的,较慢的)恰好将每个字节直接转换为线路上的8位,最不重要的位首先。 (一旦达到1G / 10G速度,就不会有这么简单......)

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


“Big-endian字节顺序”指的是多字节字段中 bytes 的排序。

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

相关问题