注:本文为 “以太网帧结构” 相关文章合辑。
对原文中图片做了清晰度增强,替换和补充。
帧结构(Ethernet Frame Structure)介绍
Felix 发表于 2019/6/15 更新于 2019/6/17
以太网信号帧结构(Ethernet Signal Frame Structure),亦称作以太网帧结构,可划分为数据帧与管理帧两类。
依据 IEEE 802.3、ISO/IEC 8803-3 系列标准规范,数据帧可进一步细分为基本数据帧、虚拟局域网(VLAN,Virtual Local Area Network)采用的扩展帧、G bit Ethernet 中的扩充帧、突发帧(Burst Frame),以及帧标志类型置于客户数据区域的 IEEE 802.3 帧等。
管理帧包含两类:
- 一类用于与 PHY 层器件交换状态信息,以实现控制与配置功能的管理帧;
- 另一类用于防止网络拥塞的暂停帧(Pause Frame)。
1 数据帧
1.1 基本帧
基本帧(Base Frame)的结构如下图所示,各区域说明如下:

(1)帧前序(Preamble):该区域为“1”“0”交替的 56 bit 56\ \text{bit} 56 bit 数据;
(2)帧起始符 SOF(Start of Frame Delimiter):固定值为 10101011 的 8 bit 8\ \text{bit} 8 bit 数据,用于标识一帧的起始;
(3)MAC 目的地址与源地址(Destination & Source MAC Address):前 3 3 3 个字节为 IEEE 分配给各厂商的地址,后 3 3 3 个字节由各厂商自行确定。其中,源地址具有唯一性;目的地址可分为单播(Unicast)地址、多播(Multicast)地址与广播(Broadcast)地址三类;
(4)帧长度/类型(L/T,Length/Type):该区域占用 2 2 2 个字节,功能是表示 MAC 帧内不包含填充的数据字段长度,或 MAC 帧内数据字段的数据类型。若该区域取值小于或等于 1500 字节 1500\ \text{字节} 1500 字节,则表示 MAC 帧内数据字段长度(客户数据区域字节数);若取值大于 1500 字节 1500\ \text{字节} 1500 字节,则表示客户数据所要到达的上层协议类型(客户数据类型区域);
注:当帧长度/类型(L/T)区域仅作为帧长度标志区域使用时,对应帧称为 IEEE 802.3 帧,此时该区域长度小于或等于 1500 字节 1500\ \text{字节} 1500 字节;当该区域作为帧类型区域使用时,对应帧称为 Ethernet-II 帧或 DIX 帧,此时 L/T 值大于 1500 字节 1500\ \text{字节} 1500 字节。
(5)MAC 客户数据(MAC Client Data):即数据段区域,长度通常在 46 字节 46\ \text{字节} 46 字节 至 1500 字节 1500\ \text{字节} 1500 字节 之间;
(6)填充区(Pad):该区域占用的字节数根据具体需求确定,功能是确保帧尺寸不小于 64 字节 64\ \text{字节} 64 字节。当从 MAC 目的地址到帧校验区的整个数据帧尺寸小于 64 字节 64\ \text{字节} 64 字节 时,通过该区域将帧尺寸填充至 64 字节 64\ \text{字节} 64 字节——因尺寸小于 64 字节 64\ \text{字节} 64 字节 的帧属于非法帧,在接收端会被自动丢弃;若帧尺寸已达到 64 字节 64\ \text{字节} 64 字节,则该区域占用字节数为 0 0 0;
(7)帧校验序列(FCS,Frame Check Sequence):该区域占用 4 4 4 个字节,功能是对整个帧进行差错校验。在帧的源端,对从 MAC 目的地址到填充区的全帧范围进行循环冗余校验( CRC-32 \text{CRC-32} CRC-32)计算,并将结果置于源帧的该区域;在帧的接收端,重新计算 CRC-32 \text{CRC-32} CRC-32 值并与源端结果对比,若结果一致,表明传输过程无协码;若不一致,则说明帧中存在误码。
需明确的是,MAC 客户数据区数据长度下限为 46 字节 46\ \text{字节} 46 字节、上限为 1500 字节 1500\ \text{字节} 1500 字节;网络 MAC 帧尺寸下限为 64 字节 64\ \text{字节} 64 字节、上限为 1518 字节 1518\ \text{字节} 1518 字节,且该尺寸不包含帧前序(Preamble)与帧起始符(SOF)两个区域——此两个区域共占用 18 字节 18\ \text{字节} 18 字节。
1.2 虚拟网采用的扩展帧结构
IEEE 802.3ac 标准对以太网中运行的虚拟局域网(VLAN,Virtual Local Area Network)采用的扩展帧结构进行了规范。VLAN 协议允许在以太网帧结构中插入标识符或“TAG”,如下图所示:

在上述 VLAN 以太网扩展帧结构中,新增的 VLAN 标记为 4 字节 4\ \text{字节} 4 字节,可划分为两部分:前 2 2 2 个字节由“802.1Q 标记类型”组成,固定值为 0 x 8100 0\text{x}8100 0x8100,属于预留长度/类型区域,主要用于赋予 VLAN 标记;后 2 2 2 个字节进一步细分为以下三个功能区域:
(1)前 3 bit 3\ \text{bit} 3 bit 为用户优先权标志区,用于指示为该帧分配的优先级;
(2)最后 1 bit 1\ \text{bit} 1 bit 为格式符合规定的指示符(CFI,Canonical Format Indicator),在以太网帧结构中用于指示路由选择信息区域(RIF,Routing Information Field);
(3)剩余 12 bit 12\ \text{bit} 12 bit 为 VLAN 帧标识符,是以太网 VLAN 帧的唯一标识。加入 VLAN 标记后,IEEE 802.3ac 标准帧的最大长度由 1518 字节 1518\ \text{字节} 1518 字节 扩展至 1522 字节 1522\ \text{字节} 1522 字节。
1.3 G bit 以太网的帧结构
1998 年,IEEE 802.3z 标准规范制定完成,该标准针对 G bit 以太网,其帧结构图如下图所示:

G bit 以太网 IEEE 802.3z 标准规范的扩充帧结构,是在原 IEEE 802.3 标准规范的以太网信号基本帧结构之后添加一个扩充区域。该扩充区域的设置目的是使帧长(从目的地址到填充区)下限不小于 512 字节 512\ \text{字节} 512 字节,以确保发生的碰撞(冲突)能够传播至网络中的每个节点。扩充区的 bit \text{bit} bit 不承载数据,仅用于满足占用载体最短时间的要求。
1.4 帧间间隙
以太网设备在传输帧之间必须预留一个最小空载周期时间,该最小空载周期时间称为帧间间隙 IFG(Inter-Frame Gap),也称作包间间隙 IPG(Inter-Packet Gap)。
该间隙时间的作用是使设备得以恢复,为接收下一帧做好必要准备。IEEE 标准规范规定,帧间的最小间隔不小于 96 bit 96\ \text{bit} 96 bit 所占用的时间,具体参数如下表所示:g
| 以太网工作速率( Mbit/s \text{Mbit/s} Mbit/s) | 帧间允许最少间隔时间( ns \text{ns} ns) |
|---|---|
| 1 | 96000 |
| 10 | 9600 |
| 100 | 960 |
| 1000 | 96 |
| 10000 | 9.6 |
2 管理帧
2.1 基本管理帧
基本管理帧是用于 PHY(物理层器件)与 STA(站管理实体)之间通信的管理帧(Management Frame),也称为 Base Management Frame。根据 ISO/IEC、IEEE 标准规范的有线以太网管理数据流帧结构,其帧长通常为 8 个字节 8\ \text{个字节} 8 个字节(即 64 bit 64\ \text{bit} 64 bit),如下图所示。管理帧的前后均可处于空载状态(IDLE)。

(1)管理帧前序(Preamble):占用 4 个字节 4\ \text{个字节} 4 个字节,为连续 32 32 32 个逻辑“1”,对应管理数据的 32 32 32 个时钟周期。该区域的功能是持续监视管理接口,并为管理接口接收管理数据预留准备时间;若帧前序出现,则标志着 STA 处理的开始。管理接口具备抑制管理帧前序的能力,以缩短管理帧长度,使 STA 能够尽快访问管理寄存器;
(2)管理帧起始符(SOF):占用 2 bit 2\ \text{bit} 2 bit,固定值为“01”;
(3)管理帧操作码(OP):占用 2 bit 2\ \text{bit} 2 bit,其中 10 b 10\ \text{b} 10 b 表示读取管理寄存器, 01 b 01\ \text{b} 01 b 表示写入管理寄存器, 00 b 00\ \text{b} 00 b 与 11 b 11\ \text{b} 11 b 为无效值;
(4)管理帧 PHY 地址(PHYAD):占用 5 bit 5\ \text{bit} 5 bit;
(5)管理帧寄存器地址(REGAD):占用 5 bit 5\ \text{bit} 5 bit;
(6)帧换向区 TA(Turnaround Field):占用 2 bit 2\ \text{bit} 2 bit;
(7)管理帧数据(Data):占用 2 个字节 2\ \text{个字节} 2 个字节(即 16 bit 16\ \text{bit} 16 bit)。
2.2 暂停帧
在全双工通信模式下,以太网标准规范为实现数据流量控制,规定了暂停帧这一帧类型。
通过发送暂停帧(Pause Frame),可向所有正在发送数据的站点通告暂停发送帧的信息,以防止链路发生拥塞。需注意的是,暂停帧仅适用于全双工通信,不适用于半双工通信。
链路两端均能向对端发送暂停帧,且在对端处于暂停发送状态时,仍可向其发送暂停帧,以延长对端停止发送 MAC 帧数据的时间。
在全双工通信模式下,链路两端可能存在仅一方支持暂停帧、另一方不支持的情况。不支持暂停帧的一方无法解释其接收到的暂停帧,可通过自动协商原理判断对端是否具备支持暂停帧的能力。
暂停帧的结构图如下图所示:

(1)目的地址(DA):可为单播地址,也可为广播地址 01 - 80 - C 2 - 00 - 00 - 01 01\text{-}80\text{-}C2\text{-}00\text{-}00\text{-}01 01-80-C2-00-00-01;
(2)类型区(L/T):固定值为 88 - 08 88\text{-}08 88-08,表示该帧为 MAC 介质介入控制帧;
(3)暂停标志(MAC 操作码):固定值为 00 - 01 00\text{-}01 00-01,表示该帧为暂停帧;
(4)MAC 控制参数:用于设定延时时间,取值范围为 00 - 00 00\text{-}00 00-00 至 F F - F F FF\text{-}FF FF-FF,时间单位为时隙(Slot Time);
(5)备用区域:占用 42 bit 42\ \text{bit} 42 bit,无实际功能,仅用于使暂停帧长度满足最小帧的要求。
3 局域网上帧的三种发送方式
3.1 MAC 地址介绍
网络设备的 MAC 地址具有全球唯一性,其长度为 48 比特 48\ \text{比特} 48 比特,通常以十六进制形式表示。MAC 地址由两部分组成:前 24 比特 24\ \text{比特} 24 比特 为组织唯一标识符(OUI,Organizationally Unique Identifier),由 IEEE 统一分配给设备制造商;后 24 比特 24\ \text{比特} 24 比特 为序列号,由各厂商分配给每个产品(如网卡或其他需 MAC 地址的设备),且每个序列号具有唯一性。
注:例如,Lattice 厂商的 OUI 为 00 - D 0 - B D 00\text{-}D0\text{-}BD 00-D0-BD。
详细信息可参考:http://standards.ieee.org/develop/regauth/oui/oui.txt
3.2 广播
广播是指帧从单一源端发送至共享以太网上所有主机的传输方式。
广播帧的目的 MAC 地址为十六进制的 F F F F F F F F F F F F \mathrm{FFFFFFFFFFFF} FFFFFFFFFFFF,所有接收到该广播帧的主机均需接收并处理此帧。
广播方式会产生大量网络流量,导致带宽利用率降低,进而影响整个网络的性能。
当需要网络中所有主机接收并处理相同信息时,通常采用广播方式。
如图所示:

3.3 单播
单播是指帧从单一源端发送至单一目的端的传输方式。
每个主机接口由唯一的 MAC 地址标识,在 MAC 地址的 OUI 中,第一字节的第 8 8 8 个比特用于表示地址类型。对于主机 MAC 地址,该比特固定为 0 0 0,表示目的 MAC 地址为此地址的帧仅发送至唯一目的端。
在冲突域中,所有主机均能接收到源主机发送的单播帧,但其他主机在检测到目的地址与本地 MAC 地址不一致后,会丢弃该帧;仅真正的目的主机才会接收并处理该帧。
如图所示:

3.4 组播
组播是指帧向一组特定主机(多播组)发送数据的传输方式。
组播相较于广播更具效率,其转发过程可理解为“选择性广播”——主机通过侦听特定组播地址,接收并处理目的 MAC 地址为该组播地址的帧。
组播 MAC 地址与单播 MAC 地址通过第一字节的第 8 8 8 个比特区分:组播 MAC 地址的该比特为 1 1 1,单播 MAC 地址的该比特为 0 0 0。
当需要网络中一组主机(非全部主机)接收相同信息,且不影响其他主机时,通常采用组播方式。
如图所示:

此外,还存在部分特殊专用 MAC 地址。
具体可查阅:https://standards.ieee.org/products-services/regauth/grpmac/public.html
via :
-
以太网扫盲 —— 帧结构(Ethernet Frame Structure)介绍 Felix 发表于 2019/6/15 16:15:36
https://blog.chinaaet.com/justlxy/p/5100064174 -
以太网扫盲 ——MAC 地址介绍 Felix 发表于 2019/6/17 15:12:47
https://blog.chinaaet.com/justlxy/p/5100064182
2387

被折叠的 条评论
为什么被折叠?



