以太网帧格式--IEEE802.3

时间:2024-04-03 14:29:19

以太网帧格式--IEEE802.3

IEEE802.3协议以太网帧格式

字段   

字段长度(字节)

 说明

前导码(Preamble)

7

同步

帧开始符(SFD)

1

表明下一个字节为目的MAC字段

目的地址(DA)  

6

目的设备的MAC物理地址

源地址(SA)

6

发送设备的MAC物理地址

长度/类型(Length/Type)

2

帧数据字段长度/帧协议类型

数据及填充(data and pad)

46~1500

帧数据字段,来自高层数据

帧校验序列(FCS)

4

数据校验字段,若发生错误,则丢弃此帧

前导码(preamble)

交替的 0 和 1,让接收设备能够跟踪到来的比特流。IEEE802.3由7个8‘b10101010+1个字节SFD

10101010 10101010 10101010 10101010 10101010 10101010 10101010

LSB                                                                                                        MSB

由于数据是从低比特开始传送,因此在代码中为方便阅读的前导码数值为56’h55555555555555

帧起始位置分隔符(Start frame delimiter ,SFD)/同步

前导码为 7Byte,而 SFD(同步)为 1Byte。SFD 的值为 10101011,其中最后两个1让接收方能够识别中间的 0 和 1 交替模式,进而同步并检查到数据开头。SFD表示帧数据的开始。由于数据是从低比特开始传送,因此在代码中SFD的数值为8’hD5。

目标地址 (Destination Address, DA)

包含一个 48 位的值,且 LSB(Least Significant Bit,最低有效位)优先。接收方根据 DA 判断到来的分组是否是发送给特定节点的。目标地址可以是单播地址、广播地址或组播 MAC 地址。广播地址全为 1(48’HFFFFFFFFFFFF),广播发送给所有设备,而组播只发送给网络中一组类似的节点。

源地址(Source Address, SA)

SA 是一个 48 位的 MAC 地址,用于标识传输设备,也使用 LSB 优先格式。在 SA 字段中,不能包含广播地址或组播地址。

长度/类型(Length/Type)

若字段值小于或等于16’D1500,则指示帧的有效数据长度。16’D46则表示有效数据为46字节。Length表示的是有效数据长度,并不包含填充(Pading)长度。

如果此字段的值大于或等于16’D1536,则表示MAC客户端协议的以太网类型。

数据以及填充(DATA and Pading)

这是网络层传递给数据链路层的帧,其长度为 46-1500 Bytes。协议规定最小报文64字节(DA(6)+SD(6)+LENTH/TYPE(2)+FCS(4)+DATA and PAD(46)=64),因此当有效数据量(Length)小于46字节时需要用0对数据进行填充,保证数据和填充字段总和不低于46字节,注意,填充0并不会改变Length字段值。

如下图所示,每层数据向下传输时都会进行封装,帧有效数据来源于上级网络层。

以太网帧格式--IEEE802.3

帧校验序列(FCS)

FCS 字段位于,用于存储 CRC(Cyclic Redundancy Check,循环冗余校验)结果的帧的帧尾。CRC 是一种数学算法,MAC发送侧(MAC_TX)创建每个帧时都将运行它。MAC接收侧(MAC_RX)接收到帧时以preamble,SFD,DA,SA,Length/Type,DATA and Pading,作为输入数据进行 CRC 计算,计算结果与接收帧的FCS字段比较,结果相同表示帧有效,结果不同接收方认为发生了错误,进而将帧丢弃。

参考资料:

IEEE Std 802.3-2015 IEEE Standard for Ethernet

http://www.cnblogs.com/qishui/p/5437301.html 以太网数据格式与封装解封

百度百科:以太网帧格式

NOTE: 原创文章,禁止转载