Files
cs-note/hhs/NETWORK/02-链路层/01-Ethernet帧结构.md
T
2026-05-24 11:42:38 +08:00

4.8 KiB
Raw Blame History

tags, create time
tags create time
计算机网络
Ethernet
MAC
帧结构
数据链路层
2026-05-17 22:50

Ethernet 帧结构

概述

Ethernet(以太网)是目前最主流的局域网技术,由 Xerox、DEC 和 Intel 在 1980 年联合制定(IEEE 802.3)。理解 Ethernet 帧结构是掌握网络底层通信的基础——每一帧都包含了足够的信息来让网卡判断"这是给我的吗?内容完整吗?上层协议是什么?"

Ethernet II 帧格式(最常见)

┌──────────┬──────────┬──────────┬─────────────┬──────────┐
│ Dest MAC │ Src MAC  │ EtherType│   Payload   │   FCS    │
│  6 bytes │  6 bytes │ 2 bytes  │  46–1500 B  │ 4 bytes  │
│ aabb.ccdd│ dd.eeff. │  0x0800  │  IP Packet  │ crc32()  │
│  ee.ff.00│          │          │             │          │
└──────────┴──────────┴──────────┴─────────────┴──────────┘
         ←──────── 14 bytes Header ───────→  ← Tail →
                              ←──── Min Frame = 64B ────→
                              ←──── Max Frame = 1518B ────→

字段详解

字段 大小 说明
Dest MAC 6 bytes 目标 MAC 地址,ff:ff:ff:ff:ff:ff 表示广播
Src MAC 6 bytes 源 MAC 地址,发出方的物理地址
EtherType 2 bytes 上一层协议类型:0x0800=IPv4, 0x86DD=IPv6, 0x0806=ARP
Payload 46–1500 bytes 承载的上层数据包。最小 46 字节,不足则填充(Padding)
FCS 4 bytes CRC-32 校验和,网卡硬件自动计算,接收端验证错误则直接丢弃

为什么 Payload 最小 46 字节?

最早的以太网最大电缆长度 2500m,信号传播延迟需要至少 64 字节才能保证碰撞检测(CSMA/CD)生效。所以规定整个帧最小 64 字节,减去 14 字节头部和 4 字节 FCS,Payload 最少 46 字节。短包会补零填满。

现代 Gigabit+ 网卡已不用 CSMA/CD,但为了兼容仍保留此限制。

IEEE 802.3 / 802.3Q(VLAN Tagged)帧

当网络中使用 VLAN 时,帧中会插入一个 4 字节的 802.1Q Tag:

┌──────────┬──────────┬──────┬──────┬──────────┬─────────────┬──────────┐
│ Dest MAC │ Src MAC  │ Type │ TPID │ TCI/VID  │   Payload   │   FCS    │
│  6 bytes │  6 bytes │ 2B   │2B    │ 2B      │ 46–1500 B   │ 4 bytes  │
└──────────┴──────────┴──────┴──────┴──────────┴─────────────┴──────────┘

新增字段:

  • TPID (Tag Protocol Identifier): 0x8100 — 标识这是带 VLAN Tag 的帧
  • TCI (Tag Control Information): 包含 PCP(优先级,3 bit)、CFI(规范格式指示符,1 bit)、VID(VLAN ID,12 bit)

VID 取值范围 1–4094,共 4094 个可用 VLAN。

常见 EtherType 对照表

EtherType 十六进制 协议
IPv4 0x0800 IP 数据包
IPv6 0x86DD IPv6 数据包
ARP 0x0806 地址解析协议
RARP 0x8035 反向 ARP(历史遗留)
PPPoE 0x8864 PPP over Ethernet
802.1Q 0x8100 VLAN 标记
LACP 0x8809 链路聚合控制协议

MAC 地址空间与 OUI

OUI(Organizationally Unique Identifier)

MAC 地址的前三个字节由 IEEE 统一分配给厂商,称为 OUI。查询 OUI 可以知道网卡的制造商:

$ ip link show
link/ether aa:bb:cc:dd:ee:ff brd ff:ff:ff:ff:ff:ff
                    ↑ 前三个字节 aa:bb:cc 就是 OUI

# 在线查询:https://www.wireshark.org/tools/oui-lookup.html
# Linux 也可以用 ethtool -P eth0 查看出厂 MAC

单播/多播位(LSB of First Byte)

第一个字节的最低比特位决定寻址类型:

LSB 类型 示例
0 单播 (Unicast) aa:bb:cc:dd:ee:ff
1 多播 (Multicast) 01:00:5e:xx:xx:xx(IPv4 组播)
1 广播 (Broadcast) ff:ff:ff:ff:ff:ff

[!tip] 如何快速判断?看 MAC 第一个字节的十六进制最后一位

  • a → 1010 → LSB=0 → 单播
  • 3 → 0011 → LSB=1 → 多播/广播

关联笔记