MAC 帧的格式

以太网 V2 的 MAC 帧由五个字段组成:

  • 前两个字段分别为 6 字节长的目的地址源地址字段。

  • 第三个字段是 2 字节的类型字段,用来标志上一层使用的是什么协议,以便把收到的 MAC 帧的数据上交给上一层的这个协议。例如,当类型字段的值是 0x0800 时,就表示上层使用的是 IP 数据报。

  • 第四个字段是数据字段 ,其长度在 46 到 1500 字节之间。

  • 最后一个字段是 4 字节的帧检验序列 FCS(使用 CRC 检验)。

注意

在以太网 V2 的 MAC 帧格式中,其首部并没有一个帧长度(或数据长度)字段。

因为以太网采用了曼彻斯特编码,曼彻斯特编码的一个重要特点就是:在曼彻斯特编码的每一个码元(不管码元是 1 或 0)的正中间一定有一次电压的转换(从高到低或从低到高)。当发送方把一个以太网帧发送完毕后,就不再发送其他码元了(既不发送 1,也不发送 0)。因此,发送方网络适配器的接口上的电压也就不再变化了。这样,接收方就可以很容易地找到以太网帧的结束位置。在这个位置往前数 4 字节 (FCS 字段长度是 4 字节),就能确定数据字段的结束位置。

当数据字段的长度小于 46 字节时,MAC 子层就会在数据字段的后面加入一个整数字节的填充字段,以保证以太网的 MAC 帧长不小于 64 字节。为此,上层协议必须具有识别有效的数据字段长度的功能。

当上层使用 IP 协议时,其首部就有一个“总长度”字段。因此,“总长度”加上填充字段的长度,应当等于 MAC 帧数据字段的长度。例如,当 IP 数据报的总长度为 42 字节时,填充字段共有 4 字节。当 MAC 帧把 46 字节的数据上交给 IP 层后,IP 层就把其中最后 4 字节的填充字段丢弃。

IEEE 802.3 标准规定凡出现下列情况之一的即为无效的 MAC 帧:

  1. 帧的长度不是整数个字节;

  2. 用收到的帧检验序列 FCS 查出有差错;

  3. 收到的帧的 MAC 数据字段的长度不在 46~1500 字节之间。

对于检查出的无效 MAC 帧就简单地丢弃。以太网不负责重传丢弃的帧。

Last updated