目前主要有两种格式的以太网帧:Ethernet II(DIX 2.0)和IEEE 802.3。
IP、ARP、EAP和QICQ协议使用Ethernet II帧结构,而STP协议则使用IEEE 802.3帧结构。
Ethernet II是由Xerox与DEC、Intel(DIX)在1982年制定的以太网标准帧格式,后来被定义在RFC894中。
IEEE 802.3是IEEE 802委员会在1985年公布的以太网标准封装结构(可以看出二者时间相差不多,竞争激烈),RFC1042规定了该标准(但终究二者都写进了IAB管理的RFC文档中)。
下图分别给出了Ethernet II和IEEE 802.3的帧格式:
⑴ 前导码(Preamble):由0、1间隔代码组成,用来通知目标站作好接收准备。以太网帧则使用8个字节的0、1间隔代码作为起始符。IEEE 802.3帧的前导码占用前7个字节,第8个字节是两个连续的代码1,名称为帧首定界符(SOF),表示一帧实际开始。
⑵ 目标地址和源地址(Destination Address & Source Address):表示发送和接收帧的工作站的地址,各占据6个字节。其中,目标地址可以是单址,也可以是多点传送或广播地址。
⑶ 类型(Type)或长度(Length):这两个字节在Ethernet II帧中表示类型(Type),指定接收数据的高层协议类型。而在IEEE 802.3帧中表示长度(Length),说明后面数据段的长度。
⑷ 数据(Data):在经过物理层和逻辑链路层的处理之后,包含在帧中的数据将被传递给在类型段中指定的高层协议。该数据段的长度最小应当不低于46个字节,最大应不超过1500字节。如果数据段长度过小,那么将会在数据段后自动填充(Trailer)字符。相反,如果数据段长度过大,那么将会把数据段分段后传输。在IEEE 802.3帧中该部分还包含802.2的头部信息。
⑸ 帧校验序列(FSC):包含长度为4个字节的循环冗余校验值(CRC),由发送设备计算产生,在接收方被重新计算以确定帧在传送过程中是否被损坏。
分析:
1:红色目标地址帧 6 字节;
2:蓝色源地址帧 6 字节;
3:粉色类型 2 字节;
为什么没有“前导码”和“帧校验序列”,参见 。
1:版本号 4 bit
2:头长度 4 bit
3:服务类型 8 bit
4:总长度 16 bit
5:标识 16 bit
6:标志 4 bit
7:片移量 12 bit
8:生存时间 8 bit
9:上层协议标识 8 bit
10:头部校验和 16 bit
11:源地址 bit
12:目标地址 32 bit
共计:20字节