以太网扫盲——帧结构(Ethernet Frame Structure)介绍
0赞以太网信号帧结构(Ethernet Signal Frame Structure),有被称为以太网帧结构,一般可以分为两类——数据帧和管理帧。按照IEEE 802.3,ISO/IEC8803-3系列标准规范,数据帧还可以分为基本数据帧、虚拟局域网(VLAN,Virtual Local Area Network)采用的扩展帧、Gbit Ethernet中的扩充帧、突发帧(Burst Frame)以及帧标志类型放在客户数据区域中的IEEE 802.3帧等。管理帧可包括用于与PHY层器件之间交换状态信息,实现控制与配置的管理帧,和用于防止网络拥塞的暂停帧(Pause Frame)等。
1.数据帧
1.1 基本帧
基本帧(Base Frame)的结构如下图所示,各区域说明如下:
(1)、帧前序(Preamble):这个区域是:“1”、“0”交替的56bit数据;
(2)、帧起始符SOF(Start of Frame Delimiter):固定值为10101011的8bit数据,用于表示一帧的开始;
(3)、MAC目的地址与源地址(Destination & Source MAC Address):前三个字节是IEEE分配给各产商的地址,后三个字节是个产商自行决定的。源地址总是唯一的,而目的地址可以是单播(Unicast)地址、多播(Multicast)地址或者广播(Broadcast)地址;
【注】关于MAC地址,请参考:http://blog.chinaaet.com/justlxy/p/5100064182
(4)、帧长度/类型(L/T,Length/Type):这个区域占用两个字节,其功能是用于表示MAC帧内不包括任何填充的数据字段长度或MAC帧内数据字段的数据类型。若这个区域的取值小于等于1500字节,则这个区域表示的是MAC帧内数据字段长度(客户数据区域字节数)。若这个区域的取值大于1500字节,则表示客户数据要到达的上册协议类型(客户数据类型区域);
注:当帧长度/类型(L/T)区域只作为帧长度标志区域使用时,称为IEEE802.3帧,则这个区域长度小于或等于1500字节;而此区域作为帧类型区域时,则称其为Ethernet-II帧或者DIX帧,此时L/T的值大于1500字节。
(5)、MAC客户数据(MAC Client Data):即数据段区域,一般在46~1500字节之间;
(6)、填充区(Pad):填充区占用的字节数根据需要而定。这个区域的功能是确保帧尺寸不少于64字节。当从MAC目的地址到帧校验区整个数据帧尺寸少于64字节时,利用该区域将帧尺寸填充到64字节。因为尺寸小于64字节的帧属于违法帧,在接收端会被自动丢弃。如果帧尺寸已经达到64字节,则该区域占用的字节数应为零;
(7)、帧校验序列(FCS,Frame Check Sequence):这个区域占用4个字节,其功能是用于整个帧的差错校验。在帧的源端,从MAC的目的地址到填充区在全帧范围内进行循环冗余校验(CRC-32)计算,将计算结果放入源帧的此区域中,在帧的接收端,重新计算CRC-32的值,并进行对比。若一致则传输过程中无误码产生,否则帧中有误码产生。
这里应明确,MAC客户数据区数据最低不能少于46个字节,而最高不能大于1500字节;网络MAC帧的尺寸最短不能少于64字节,而最长不能大于1518字节,这里不包括帧前序(Preamble)和帧起始符(SOF,Start of Frame Delimiter)两个区域,共占用18字节。
1.2、虚拟网采用的一种扩展帧结构
IEEE 802.3ac标准有规范了在以太网上运行的虚拟局域网(VLAN,Virtual Local Area Network)采用的一种扩展帧结构。VLAN协议允许将标识符或“TAG”插入以太网帧结构中,如下图所示:
在上述VLAN以太网扩展帧结构中,增加的VLAN标记4字节分为两部分。前两个字节由“802.1Q标记类型”组成,被固定为0x8100,为预留长度/类型区域,主要是赋予VLAN标记。其后两字节分为以下三个功能区域:
(1)、前3bit是用户优先权标志区,用于对该帧分配的优先级指示;
(2)、最后1bit是格式符合规定的指示符(CFI,Canonical Format Indicator),在以太网帧结构中用于指示路由选择信息区域(RIF,Routing Information Field);
(3)、剩余12bit是VLAN帧标识符,他是以太网VLAN帧的唯一标志。加入VLAN标记后,使得802.3ac标准帧的最大长度由1518字节扩大到1522字节。
1.3、Gbit以太网的帧结构
在1988年,又制定了针对于Gbit以太网的IEEE 802.3z标准规范,其帧结构图下图所示:
Gbit以太网IEEE 802.3z标准规范的扩充帧结构是在原IEEE 802.3标准规范的以太网信号的基本帧结构基础后面增加一个扩充区域,其目的是使帧长最短不少于512字节(从目的地址到填充区),从而保证发生的碰撞(冲突)可以传播到网上的每个节点。扩充区bit并非是数据,其作用仅仅是扩大了占用载体最短要求时间。
1.4、帧间间隙
以太网设备必须允许在传输帧之间有一个最小空载周期时间,这就是所称的帧间间隙IFG(Inter-Frame Gap)或称为包间间隙IPG(Inter-Packet Gap)。其提供的这段间隙时间,使设备得到恢复,以便设备为接收下一帧做必要的准备。IEEE标准规范帧间的最小间隔为不少于96bit占用的时间,具体如下表所示:
2.管理帧
2.1、基本管理帧
这是用于PHY(物理层器件)与STA(站管理实体)之间通信的管理帧(Management Frame),也称为基本管理帧(Base Management Frame)。ISO/IEC、IEEE标准规范的有线以太网管理数据流的帧结构,其帧长通常为8个字节,即64bit,如下图所示。管理帧前后都可以是空载状态(IDLE)。
(1)、管理帧前序(Preamble):占用4个字节,为连续32个逻辑“1”,对应于管理数据的32个时钟周期。管理帧前序用于连续监视管理接口管理,并从而为管理接口给出接收管理数据做准备的时间;若帧前序出现则标志STA处理的开始。管理接口有抑制管理帧前序的能力,以便缩短管理帧的长度,从而使STA可以尽快访问管理寄存器。
(2)、管理帧起始符(SOF):占用2bit,为固定值“01”;
(3)、管理帧操作码(OP):占用2bit,10b表示读取管理寄存器,01b表示写管理寄存器,00b和11b无效;
(4)、管理帧PHY地址(PHYAD):占用5bit;
(5)、管理帧寄存器地址(REGAD):占用5bit;
(6)、帧换向区TA(Turnaround Field):占用2bit;
(7)、管理帧数据(Data):占用2个字节,即16bit。
2.2、暂停帧
在全双工通信工作模式下,以太网标准规范为了实现对数据流量的控制,规范了一种所谓的暂停帧。这是应用发送暂停帧(Pause Frame)的方法,通告所有发送数据的站点暂停发送帧信息,防止链路发生拥塞。暂停帧仅适用于全双工通信,并不适用于半双工通信。链路两端都可以向对端发送暂停帧,并且在对端暂停发送状态时,仍然可以向其发送暂停帧,以便延长对端停发MAC帧数据时间。
在全双工通信模式下,链路两端也可以只有一方支持暂停帧,而另一方不支持。只是不支持的一方无法解释其收到的暂停帧。可以通过自动协商原理了解对方端是否具备支持暂停帧的能力。
暂停帧的结构图如下图所示:
(1)目的地址(DA):可以使单播地址,也可以使广播地址01-80-C2-00-00-01;
(2)类型区(L/T):固定值88-08,表示此帧为MAC介质介入控制帧;
(3)暂停标志(MAC操作码):固定值00-01,表示此帧为暂停帧;
(4)MAC控制参数:设定延时时间,取值范围为00-00到FF-FF,时间单位为时隙(Slot Time);
(5)备用区域:占用42bit,无意义。用于使暂停帧长度满足最小帧的要求。