网络字节顺序
网络工程
以太网
IPv4
2022-02-16 14:28:30
3个回答
这里有一个混乱。网络字节顺序没有指定比特如何通过网络传输。它指定值如何存储在多字节字段中。
示例:
总长度字段由两个字节组成。它以字节为单位指定数据包的大小。
假设我们有该字段的值 500。使用网络字节顺序,它将像这样通过网络看到,从左到右传输传输:
00000001 11110100
如果我们使用小端格式,那么它会像这样通过网络看到:
11110100 00000001
整个数据包构建完成后,这些位将从标头的最低寻址位(位 0)开始发送,因此传输将从版本字段开始。
这里要说明的最后一点是,正如您所提到的,网络字节顺序是大端顺序。这是任意选择的,以便为所有网络协议和实现提供通用格式。
很容易认为互联网数据包以一种非常简单的“串行端口”方式通过网络传输。实际上,它本身并没有什么连续性。
如果您考虑一些界面细节,可能会更清楚:
- 考虑并行端口 IP,它实际上通过四根线一次发送 4 位数据。https://en.wikipedia.org/wiki/Parallel_Line_Internet_Protocol
- 实际的 100baseTX 加扰 4 位块并将它们作为 5 位串行发送,但原始数据在输出中不可见,因此关于它们进入的顺序的问题没有答案。https://en.wikipedia.org/wiki/4B5B
- 当您通过环回接口发送数据包时,它可能会在计算机总线中一次复制 64 位;或者实际上只是通过内存重新映射,这实际上是并行的整个数据包。
当然,并口 IP 并不常见,但它说明了这一点;其他两个无处不在。
希望有帮助
乔纳森。
其他协议可能不同,但以太网首先传输最重要的八位字节/字节,并在每个字节内首先传输最低有效位。因此,传输 16 位字段 8-9-10-11-12-13-14-15 - 0-1-2-3-4-5-6-7(0=最低有效位,15=最高重要位)。检查 IEEE 802.3 条款 3.1.1、3.2.6 和 3.3。
(这适用于纯串行以太网 - 根据物理层,最多可以同时传输 8 位。此外,位顺序仅适用于未编码的第 1 层。)
IPv4 还首先使用最高有效八位位组,请检查 RFC 791。但是,IETF RFC 中的编号是按照传输顺序进行的,位编号与以太网相反:位 0 = 最高有效位 = 首先传输(未另行定义)。
其它你可能感兴趣的问题