我理解关于数字的 Endianess 的概念,因为位的意义是明确定义的。但是当应用于以太网帧或 Mac 地址之类的东西时,我就很清楚了,因为这里我们只有一个位序列,而不是一个数字。然而,诸如第一个字节、最重要字节或网络字节排序之类的术语在没有澄清的情况下被抛出。
我的问题实际上由几个但相关的问题组成,因为我想不出更好的方法来表述它:
如何为以太网帧定义字节重要性?我们是否将从 MAC 目的地开始的字节算作最重要的字节?我认为应该是这种情况,因为我读到网络字节顺序是大字节序,所以最重要的字节首先被传输,它应该是 MAC 目标地址。
MAC地址的字节意义如何定义?给定一个写为 00-14-22-01-23-45 的 MAC 地址,那么我假设从最高有效字节到最低有效字节是从左到右?什么算作第一个字节?如果我们说某事的第一个,这是否意味着我们说某事中最重要的?
如果我的电脑使用的是Little Endian,并且上面的Mac地址存储在内存中,那么如果我的假设是正确的,那么内存偏移量0x00应该存储45,因为这就是Little Endian的意思,对吗?
现在如果上面的地址通过线路传输,由于 Big-Endian,内存偏移量 0x05 首先被传输,因为它存储了地址的最重要字节?这对我来说似乎有点奇怪,因为我最初认为我们只是从最低内存偏移量顺序传输到最高内存偏移量。
当谈到在一个字节内传输一个位时,我们应该有两个选择:我们先传输最低有效位,或者先传输最高有效位。那么位字节序不应该在这里起作用吗?
标题在接收端看起来如何?接收计算机是否只是将它接收到的第一个字节存储在最低内存地址等等,还是它知道字节重要性会自动翻转字节?例如在这种情况下,如果它收到的第一个字节是 0x45,那么它是否将值存储在 0x00,或者知道 0x45 应该是最重要的字节,自动将值存储在 0x05?(假设接收端也使用小端)