Ethernet II 帧头部
以太网帧的头部结构根据以太网标准的不同而有所差异,目前最常见的是Ethernet II(以太网 II 型) 和IEEE 802.3(带 LLC/SNAP 封装) 两种格式。以下是具体结构解析:
一、Ethernet II 帧头部
Ethernet II 是应用最广泛的帧格式(如 IPv4、IPv6、ARP 等均使用此格式),头部固定为14 字节,结构如下:
字段 | 长度(字节) | 作用描述 |
---|---|---|
目的 MAC 地址 | 6 | 接收方的物理地址(如FF:FF:FF:FF:FF:FF 表示广播) |
源 MAC 地址 | 6 | 发送方的物理地址 |
EtherType(类型) | 2 | 标识帧中承载的上层协议类型,值≥0x0600(1536),例如:- 0x0800:IPv4- 0x0806:ARP- 0x86DD:IPv6- 0x8100:802.1Q VLAN 标签 |
二、带 VLAN 标签(802.1Q)的 Ethernet II 帧头部
当帧需要携带 VLAN(虚拟局域网)信息时,会在源 MAC 和 EtherType 之间插入4 字节 VLAN 标签,此时头部总长度变为18 字节:
字段 | 长度(字节) | 作用描述 |
---|---|---|
目的 MAC 地址 | 6 | 同 Ethernet II |
源 MAC 地址 | 6 | 同 Ethernet II |
TPID(标签协议标识) | 2 | 固定为0x8100 ,标识此帧包含 VLAN 标签 |
TCI(标签控制信息) | 2 | 包含 VLAN ID(12 位,范围 0-4095)、优先级(3 位)等信息 |
原始 EtherType | 2 | 同 Ethernet II(此时表示 VLAN 标签后的上层协议类型) |
三、IEEE 802.3 帧头部(带 LLC/SNAP 封装,较少见)
早期 IEEE 802.3 标准中,头部用 “长度字段” 替代 “EtherType”,用于标识数据部分的长度(值≤0x05DC,即 1500)。若需承载 TCP/IP 等协议,需通过LLC(逻辑链路控制)+ SNAP(子网访问协议) 封装扩展,总头部长度为18 字节:
字段 | 长度(字节) | 作用描述 |
---|---|---|
目的 MAC 地址 | 6 | 同 Ethernet II |
源 MAC 地址 | 6 | 同 Ethernet II |
长度(Length) | 2 | 数据部分的长度(≤1500 字节) |
LLC(DSAP/SSAP/Control) | 3 | DSAP 和 SSAP 均为0xFF (表示 SNAP),Control 为0x03 (无连接模式) |
SNAP(OUI+Type) | 5 | OUI 为0x000000 (3 字节),Type 为上层协议类型(同 EtherType,如 0x0800) |
四、通用帧结构补充
无论哪种格式,完整的以太网帧还包括:
- 数据部分(Payload):长度 46-1500 字节(不足 46 字节会填充),承载上层协议数据(如 IP 包、ARP 报文等)。
- FCS(帧校验序列):4 字节,用于校验帧在传输过程中是否损坏(CRC32 算法)。
总结
- 日常网络中Ethernet II(14 字节头部)和带 VLAN 的 Ethernet II(18 字节头部)是最常见的帧格式。
- 解析时需先通过 “EtherType” 判断:若值≥0x0600,为 Ethernet II;若值≤0x05DC,可能是 802.3 格式(需进一步解析 LLC/SNAP)。
- VLAN 标签会导致头部偏移 4 字节,解析时需特别处理(检测到 0x8100 后跳过 4 字节再读取上层协议类型)。