以太网帧结构
基于 HTTP 现代标准 · 核于 2026-06
速查
- 以太网(Ethernet)= 最普及的有线 LAN 技术,对应 IEEE 802.3 标准族;1980 年商用、1983 年首次标准化,提供到数据链路层为止的服务。
- 一帧的核心字段(按序):前导码 Preamble(7B) + 帧起始定界符 SFD(1B) → 目的 MAC(6B) → 源 MAC(6B) → 类型/长度(2B) → 数据载荷(46–1500B) → 帧校验序列 FCS(4B);帧后还有 12B 帧间隙 IPG。
- Preamble + SFD 不算「帧」本体,属物理层同步用的比特模式(
10101010…),收方用它对齐时钟;FCS 之后的 IPG 同理是空闲间隔。 - 类型/长度字段一字两用:值 ≥ 1536(0x0600) 解释为 EtherType(上层协议类型)——这是 Ethernet II;值 ≤ 1500 解释为载荷长度——这是 IEEE 802.3(+ 802.2 LLC)。1501–1535 未定义。
- 常见 EtherType:IPv4=
0x0800、ARP=0x0806、IPv6=0x86DD、VLAN 标签(802.1Q)=0x8100。今天互联网上几乎全是 Ethernet II 帧。 - 最小帧 64 字节:由 CSMA/CD 的 **512 比特时隙(slot time)决定;载荷不足 46B 会补零填充(padding)**凑满,确保冲突能被检出。
- 最大帧 1518 字节:含 14B 头 + 1500B 载荷 + 4B FCS;带 802.1Q VLAN 标签时为 1522 字节。载荷 MTU = 1500 字节。
- FCS 用 CRC-32 做差错检测:覆盖目的/源 MAC、类型/长度、载荷与填充(不含 FCS 自身);只检错、不纠错,校验失败的坏帧直接丢弃,交由上层(如 TCP)重传。
- 巨型帧 Jumbo Frame:非标准扩展,载荷可达约 9000 字节,用于数据中心/存储网降低分片与中断开销;需链路两端及中间设备全程支持才生效。
- 速率演进:10M(10BASE-T)→ 100M(快速以太网)→ 1G(千兆)→ 10G → 25G/40G/100G/200G/400G → 800G(1.6T 研发中)。
- 介质与拓扑:双绞线(Cat5e/Cat6,8P8C 接口)或光纤;现代以太网已从「共享介质 + CSMA/CD」演进为交换式全双工,正常已无冲突域。
一、什么是以太网
以太网(Ethernet)是当今最普及的有线局域网(LAN)技术,对应 IEEE 802.3 标准族。它定义了物理层(线缆、信号、速率)与数据链路层中 MAC 子层的帧格式与介质访问规则——换言之,以太网管的是「一段链路上,一帧比特怎么打包、怎么发、怎么校验」。
Ethernet is a family of wired computer networking standards designed for (but not limited to) local area networks (LAN)... commercially introduced in 1980 and first standardized in 1983 as IEEE 802.3. —— Wikipedia, Ethernet
以太网 vs MAC 地址:分工
本页聚焦帧的整体结构与字段;其中目的/源 MAC 字段的地址格式、单播/组播/广播、OUI 厂商前缀等细节,属于上一页 数据链路层与 MAC 寻址 的主题,这里只把它当作帧里的两个 6 字节字段看待。
二、以太网帧的整体结构
一个完整的以太网传输单元,从线缆上的比特流看是这样排布的(以最常见的 Ethernet II 为例):
┌──────────┬─────┬───────────┬───────────┬────────┬─────────────────┬──────┐
│ Preamble │ SFD │ 目的 MAC │ 源 MAC │ 类型/长 │ 数据载荷 Data │ FCS │
│ 7 B │ 1 B │ 6 B │ 6 B │ 2 B │ 46 ~ 1500 B │ 4 B │
└──────────┴─────┴───────────┴───────────┴────────┴─────────────────┴──────┘
└──── 物理层前导(不计入帧)───┘└────────────── 帧(FCS 含)────────────────┘
│ 12 B 帧间隙 IPG │注意一个常见误区:Preamble 与 SFD 不属于「帧」本身,它们是物理层为了让收方对齐时钟而附加的同步比特;真正的「帧」从目的 MAC 开始、到 FCS 结束。因此当我们说「最小帧 64 字节」时,不包含这 8 字节前导,也不包含帧后的 12 字节帧间隙。
三、逐字段拆解
| 字段 | 长度 | 作用 |
|---|---|---|
| 前导码 Preamble | 7 字节 | 10101010 重复 7 次,让收方 PLL 锁定比特时钟、完成同步 |
| 帧起始定界符 SFD | 1 字节 | 10101011,末位 1 打破前导模式,宣告帧正式开始 |
| 目的 MAC | 6 字节 | 接收方物理地址(单播/组播/广播) |
| 源 MAC | 6 字节 | 发送方物理地址 |
| 类型/长度 | 2 字节 | EtherType(上层协议)或载荷长度,二选一(见下节) |
| 数据载荷 Data | 46 ~ 1500 字节 | 承载的上层报文(如 IP 包);不足 46B 补零填充 |
| 帧校验序列 FCS | 4 字节 | CRC-32 校验值,差错检测用 |
| (帧间隙 IPG) | 12 字节 | 两帧之间的空闲间隔,让设备「喘口气」,不算帧内容 |
为什么载荷最小 46、最大 1500?
- 下限 46B:是为了凑足最小帧 64 字节(6+6+2+46+4=64)。若上层数据不足 46B,链路层会自动补零填充(padding),收方再依据上层协议的长度信息丢弃填充字节。
- 上限 1500B:即以太网的 MTU(最大传输单元)。这是 IEEE 标准规定的最大载荷,IP 层据此决定是否对数据报分片。
四、Ethernet II 与 IEEE 802.3
帧里那 2 字节的「类型/长度」字段,是区分两种帧格式的关键——它一个字段、两种解释:
| 该字段取值 | 解释为 | 帧格式 | 说明 |
|---|---|---|---|
| ≥ 1536(0x0600) | EtherType(协议类型) | Ethernet II(DIX) | 直接标明载荷是 IP/ARP 等,最常用 |
| ≤ 1500(0x05DC) | Length(载荷长度) | IEEE 802.3 | 协议类型改由其后的 802.2 LLC/SNAP 头标识 |
| 1501 ~ 1535 | —— | 未定义 | 标准保留,不使用 |
为什么阈值是 1536?
因为载荷最大就是 1500。把「长度」的合法上限(1500)与「类型」的合法下限(1536,即 0x0600)错开,收方仅凭这 2 字节的数值就能无歧义地判断该帧到底是 Ethernet II 还是 802.3——小到能当长度的就是长度,大到不可能是长度的就是 EtherType。
实务中你遇到的几乎全是 Ethernet II:抓包看到 Type: IPv4 (0x0800)、Type: ARP (0x0806) 就是它。纯 802.3 + LLC 帧如今多见于个别二层协议(如 STP)。常见 EtherType 速记:
0x0800 IPv4 0x86DD IPv6
0x0806 ARP 0x8100 802.1Q VLAN 标签五、FCS 与差错检测
帧尾的 **FCS(Frame Check Sequence)**是 4 字节的 CRC-32 校验值,由发送方对「目的 MAC + 源 MAC + 类型/长度 + 载荷 + 填充」(除 FCS 自身外的全部字段)计算得出并填入。收方用相同算法重算并比对:
- 一致:帧完好,交给上层处理;
- 不一致:帧在传输中被比特翻转损坏,直接丢弃——以太网只检错、不纠错,也不会通知发送方。
丢弃后由谁负责重传?
链路层丢掉坏帧后不重传。可靠性交给上层:若上层是 TCP,会因收不到 ACK 而超时重传;若是 UDP,则该数据直接丢失。CRC-32 能极高概率检出随机比特错,但它不是加密校验,无法防篡改。
六、巨型帧 Jumbo Frame
标准以太网载荷封顶 1500B,但在数据中心、存储(iSCSI/NFS)等场景,每帧只搬 1500B 会带来过多的帧头开销与 CPU 中断。巨型帧(Jumbo Frame)是一种非标准扩展,把载荷放大到约 9000 字节:
- 收益:相同数据所需帧数大减,降低分片、表头与中断开销,提升吞吐。
- 代价/前提:链路两端网卡 + 中间所有交换机/路由都要开启并支持同样的 MTU,否则中途设备会因帧过大而丢弃;属端到端配置,不可半路开启。
七、以太网速率演进
以太网的生命力在于帧格式数十年保持稳定,而速率持续翻倍,向下兼容:
| 代际 | 速率 | 典型标准 |
|---|---|---|
| 标准以太网 | 10 Mbit/s | 10BASE-T |
| 快速以太网 | 100 Mbit/s | 100BASE-TX |
| 千兆以太网 | 1 Gbit/s | 1000BASE-T |
| 万兆及以上 | 10 / 25 / 40 / 100 / 200 / 400 Gbit/s | 10GBASE-T 等 |
| 当前最高 | 800 Gbit/s | 800GbE(1.6 Tbit/s 研发中) |
早期以太网是共享介质,多台设备争用同一线缆,靠 CSMA/CD(载波侦听多路访问 / 冲突检测)避让——这正是最小帧 64B 的由来。如今交换式网络让每台设备独占一条全双工链路,收发互不冲突,CSMA/CD 已基本退场,但 64B 下限作为历史包袱保留至今。
小结
- 以太网是 IEEE 802.3 定义的有线 LAN 技术,帧由前导/SFD(物理同步)+ 目的/源 MAC + 类型/长度 + 载荷 + FCS 构成。
- 类型/长度字段以 1536 为界区分 Ethernet II(EtherType) 与 802.3(Length),今天以 Ethernet II 为主。
- 记牢三个数字:最小帧 64B、最大帧 1518B(VLAN 1522B)、载荷 MTU 1500B;FCS=CRC-32,只检错不纠错,坏帧丢弃。
- **巨型帧(~9000B)与速率阶梯(10M→…→800G)**体现了以太网「格式不变、性能狂飙」的演进路线。
承接上一页 数据链路层与 MAC 寻址 对地址的讨论,本页讲清了「一帧长什么样」;这些帧如何在局域网里被学习、转发、泛洪,请看下一页 交换机工作原理。