以太网帧结构向第 3 层 PDU 添加帧头和帧尾来封装所发送的报文。

 
以太网帧头和帧尾具有多个信息区域,供以太网协议使用。帧的每个区域都称为一个字段。以太网帧有两种样式:IEEE 802.3(原始)和修订后的 IEEE 802.3 (Ethernet)。
 
帧样式之间的差异很小。IEEE 802.3(原始)与修订后的 IEEE 802.3 之间最大的差异是后者增加了帧首定界符 (SFD),并且“类型”字段略有变动,加入了“长度”,如图所示。
 
以太网帧大小
 
原始以太网标准将最小的帧定义为 64 个字节,最大的帧定义为 1518 个字节。包括从“目的 MAC 地址”字段到“帧校验序列 (FCS)”字段的所有字节。在描述帧的大小时,不包含“前导码”和“帧首定界符”字段。1998 年发布的 IEEE 802.3ac 标准将允许的最大帧扩展到 1522 个字节。帧大小的增加是为了支持一种称为虚拟局域网 (VLAN) 的技术。
 
如果发送的帧小于最小值或者大于最大值,接收设备将会丢弃该帧。帧之所以被丢弃,可能是因为冲突或其它多余信号而被视为无效。
 

帧——封装数据包_第1张图片

“前导码”(7 个字节)和“帧首定界符 (SFD)”(1 个字节)字段用于同步发送设备与接收设备。帧的这前八个字节用于引起接收节点的注意。前几个字节的实质作用是告知接收方准备接收新帧。
 
目的 MAC 地址字段
 
“目的 MAC 地址”字段(6 个字节)是预定接收方的标识符。您应该还记得,此地址被第 2 层用来协助设备确定帧是否发送到目的地。帧中的地址将会与设备中的 MAC 地址进行比对。如果匹配,设备就接受该帧。
 
源 MAC 地址字段
 
“源 MAC 地址”字段(6 个字节)标识帧的源网卡或接口。交换机还使用此地址来加入其查询表。本章后面将具体讨论交换机的角色。
 
长度/类型字段
 
“长度/类型”字段(2 个字节)定义帧的数据字段的准确长度。此字段后来被用作 FCS 的一部分,用来确认是否正确收到报文。在其中可以输入长度或类型。但在指定的实现中只能使用二者之一。如果字段用于指定类型,则“类型”字段将说明执行哪个协议。
 
“长度/类型”字段在早期的 IEEE 版本中名为“长度”,在 DIX 版本中名为“类型”。该字段的这两个用途在后来的 IEEE 版本中正式合并,因为两者的用途是相通的。“以太网 II 类型”字段已并入当前的 802.3 帧定义中。以太网 II 是 TCP/IP 网络中使用的以太网帧格式。当某个节点接收帧时,必须检查“长度/类型”字段以确定存在的高层协议。如果两个二进制八位数值等于或大于 0x0600 十六进制值或 1536 十进制值,则数据字段的内容将根据指定的协议进行解码。
 
数据和填充位字段
 
“数据”和“填充位”字段(46 - 1500 个字节)包含来自较高层次的封装数据(一般是第 3 层 PDU 或更常见的 IPv4 数据包)。所有帧至少必须有 64 个字节。如果封装的是小数据包,则帧使用填充位增大到最小值。 
帧校验序列字段
 
“帧校验序列 (FCS)”字段(4 个字节)用于检测帧中的错误。它使用循环冗余校验 (CRC)。发送设备在帧的 FCS 字段中包含 CRC 的结果。
 
接收设备将接收帧,并生成 CRC 来查找错误。如果计算匹配,就不会发生错误。计算不匹配则表明数据已经改变;因此帧会被丢弃。数据改变可能是由于代表比特的电信号中断所致。