Skip to main content

IEEE 802.3 SNAP以太帧

IEEE 802.3 SNAP以太帧,是IEEE为保证在802.3 LLC上支持更多的上层协议同时更好的支持IP协议而发布的标准。

帧格式

IEEE 802.3 SNAP帧格式
+-----------+-----------+-----------+----------+----------+----------+---------+---------+------------------+----------+
|   DMAC    |   SMAC    |   Length  |   DSAP   |   SSAP   |   Ctrl   |   OUI   |   Type  |        Data      |   FCS    |
|  6 Bytes  |  6 Bytes  |  2 Bytes  |  1 Bytes |  1 Bytes |  1 Bytes | 3 Bytes | 2 Bytes |  Variable length | 4 Bytes  |
+-----------+-----------+-----------+----------+----------+----------+---------+---------+------------------+----------+
|                                                                                                                      |
             |                                                                                                 |
                      |                                                                              |
                                     |                                                  |
                                                     |                     |
+--------------------+-----------------+-------------+---------------------+
|        帧间隙       |      前同步码    |  帧开始定界符  |   Ethernet Frame    |
|    至少12Bytes      |    7 Bytes      |   1 Byte    |   Variable length   |
+--------------------+-----------------+-------------+---------------------+
802.3 SNAP以太帧的链路层各字段含义
字段 长度(字节) 含义
DMAC 6B 目的MAC地址,该字段标识帧的接收者。
SMAC 6B 源MAC地址,该字段标识帧的发送者。
Length 2B 指后续数据的字节长度,但不包括FCS字段。
DSAP 1B 目的服务访问点,若后面类型为IP帧值设为0x06。服务访问点的功能类似于Ethernet II帧中的Type字段或TCP/UDP传输协议中的端口号。
SSAP 1B 源服务访问点,若后面类型为IP帧值设为0x06。
Ctrl 1B 该字段值通常设为0x03,表示无连接服务的IEEE 802.2无编号数据格式。
SNAP-ID 5B 由OUI和Type两部分组成。
OUI 3B 3字节的组织唯一标识符(Organizationally Unique Identifier),其值通常等于MAC地址的前3字节,即网络适配器厂商代码。
Type 2B 标识以太网帧所携带的上层数据类型。根据RFC1042标准,OUI使用一个特殊的数值0x00-00-00,当这个字段为0x00-00-00时,Type字段与Ethernet II封装中的Type具有相同的含义。
Data 38~1492B 数据字段,标识帧的负载(可能包含填充位)。数据字段的最小长度必须为38字节以保证帧长至少为64字节,这意味着传输1字节信息也必须使用38字节的数据字段。如果填入该字段的信息少于38字节,该字段的其余部分也必须进行填充。数据字段的最大长度为1492字节。以太帧的长度必须为整数字节,因此帧的负载长度不足整数字节,需插入填充字段以保证数据帧的长度为整数字节。
FCS 4B 帧校验序列FCS(Frame Check Sequence)是为接收网卡提供判断是否传输错误的一种方法,如果发现错误,丢弃此帧。FCS只是通用叫法,具体的FCS还可以细分多种校验方法。在以太帧中,FCS通常采用循环冗余码校验CRC(Cyclical Redundancy Check)。
802.3 SNAP以太帧的物理层各字段含义
字段 长度 含义
帧间隙 至少12B 每个以太帧之间都要有帧间隙(Inter Frame Gap),即每发完一个帧后要等待一段时间才能再发另外一个帧,以便让帧接收者对接收的帧作必要的处理(如调整缓存的指针、更新计数、通知对报文进行处理等等)。在以太网标准中规定最小帧间隙是12个字节,其数据为全1。对于个别的接口,可减少到64(GE)或40比特(10GE),其他的接口都不应该小于12字节。
前同步码 7B 以太网标准中规定前导码为10101010 10101010 10101010 10101010 10101010 10101010 10101010(二进制),共7字节。
帧开始定界符 1B 以太网标准中规定帧开始定界符为10101011(二进制),共1字节。

参考标准

标准 描述
IEEE 802.3 Carrier sense multiple access with collision detection (CSMA/CD) access method and physical layer specifications
IEEE 802.3ae Media Access Control (MAC) Parameters, Physical Layers, and Management parameters for 10Gb/s Operation
RFC 894 A Standard for the Transmission of IP Datagrams over Ethernet Networks
RFC 1042 A Standard for the Transmission of IP Datagrams over IEEE 802 Networks