Skip to content

以太网帧、交换机转发与 VLAN ​

内容摘要:本章讲清「一根网线/一个二层网络之内」数据如何流动:以太网帧的字段与边界、MAC 地址的作用、交换机如何学习并转发、广播域与冲突域的区别、以及 VLAN(802.1Q)如何在同一物理网络上切出多个逻辑二层。最后简述无线局域网(802.11)与有线以太网的关键差异。这是理解 ARP/NDP(06)与 IP 转发(07)的基础。

难度:中级 | 前置知识:02 分层与封装、03 报文剖析 | 所属层次:数据链路层(L2)

一、以太网帧结构 ​

以太网(Ethernet,IEEE 802.3) 是当今有线局域网的事实标准。链路层的数据单元是帧(frame)。理解字段边界,才能读懂抓包(20 抓包与实验)。

字段位宽/长度取值示例语义生成方接收方处理抓包显示常见异常
前导码 + SFD8 字节0xAA…AB物理层时钟同步,不算帧内容网卡硬件剥离通常不显示—
目的 MAC(DA)6 字节ff:ff:ff:ff:ff:ff(广播)目标网卡地址发送方匹配则收,否则(非混杂)丢Dst单播被当广播泛洪
源 MAC(SA)6 字节86:b5:4e:0a:4a:ac发送方网卡地址发送方交换机据此学习Src源地址伪造(网络安全)
EtherType/长度2 字节0x0800=IPv4、0x86DD=IPv6、0x0806=ARP、0x8100=802.1Q指明上层协议(解复用键,02)发送方交给对应上层Type类型错投递
载荷46–1500 字节IP 包上层数据上层上交展开为 IP/ARP不足 46B 需填充(padding)
帧校验序列(FCS)4 字节CRC-32检错(03)发送方网卡校验失败即丢,不纠错常被卸载隐藏CRC error 计数

要点:

  • 最小帧 64 字节、最大帧 1518 字节(含 14B 头 + 46–1500B 载荷 + 4B FCS,不含前导码)。MTU=1500 指的是载荷(IP 包)上限(03、09)。
  • 巨帧(Jumbo Frame):部分环境支持 MTU 9000,提升大流量效率,但全路径必须一致,否则触发分片或 PMTUD 黑洞(09)。
  • EtherType ≥ 0x0600 表示类型,< 0x0600 表示长度(历史遗留的 802.3 长度字段)。

二、MAC 地址 ​

MAC 地址(Media Access Control Address) 是 48 位(6 字节)链路层硬件地址,通常写作 xx:xx:xx:xx:xx:xx。

  • 单播 / 组播 / 广播:目的 MAC 第 1 字节的最低位(I/G 位)为 0=单播、1=组播;全 ff:ff:ff:ff:ff:ff=广播。
  • 本地管理位(U/L 位):第 1 字节第 2 低位为 1 表示「本地管理地址(locally administered)」,即软件随机生成而非厂商烧录——现代手机/笔记本的「MAC 地址随机化」隐私功能正是设置此位(见第九节安全)。
  • 作用域:MAC 地址只在同一二层网络(广播域)内有意义。跨路由器转发时,源/目的 MAC 会在每一跳被改写,而源/目的 IP 不变(详见 06、07)。

关键认知:MAC 不路由,只在本地链路寻址。 「IP 是端到端的门牌号,MAC 是每一跳的临时接力棒」——这个心智对理解 ARP 与逐跳转发至关重要。

三、交换机:学习与转发 ​

交换机(switch) 工作在二层,核心是MAC 地址表(转发表/CAM 表):把「MAC 地址 ↔ 端口」映射起来,实现帧的定向转发,而非像集线器(hub)那样无脑泛洪。

1、学习与转发算法 ​

  1. 学习(learning):看帧的源 MAC,把「源 MAC → 入端口」写入表,并刷新老化时间。
  2. 转发(forwarding):看目的 MAC 查表——命中则从对应端口发出;未命中(未知单播)或广播/组播则**泛洪(flooding)**到除入端口外的所有端口。
  3. 老化(aging):一段时间(常见 300 秒)未再见到某 MAC,则从表中删除。

未知单播泛洪(unknown unicast flooding):目的 MAC 不在表中时,交换机会像广播一样泛洪。这解释了为什么「MAC 表溢出攻击(MAC flooding)」能把交换机逼成集线器、从而嗅探全网流量(网络安全)。

2、交换机 vs 集线器 vs 路由器 ​

设备工作层次转发依据冲突域广播域
集线器(hub)L1 物理无(电信号复制)全部共享一个一个
交换机(switch)L2 链路目的 MAC每端口一个一个(除非 VLAN)
路由器(router)L3 网络目的 IP(最长前缀,07)每接口一个每接口一个(隔离广播)

四、广播域与冲突域 ​

这是二层最容易混淆的一对概念:

  • 冲突域(collision domain):可能发生信号冲突的范围。交换机每个端口是独立冲突域(全双工下基本无冲突),集线器所有口共享一个。
  • 广播域(broadcast domain):广播帧能到达的范围。一台交换机默认是一个广播域;路由器/VLAN 隔离广播域。
  • 为什么要隔离广播域:广播帧(ARP、DHCP 发现等)会被泛洪到整个广播域,域越大,广播风暴风险越高、性能越差。这正是 VLAN 与三层网关存在的动机。

五、VLAN 与 802.1Q ​

虚拟局域网(Virtual LAN,VLAN,IEEE 802.1Q) 在同一物理交换网络上划分多个逻辑广播域,实现隔离(不同部门/租户互不广播可见),无需为每个网络单独布线。

1、802.1Q 标签 ​

VLAN 通过在以太网帧中插入 4 字节 802.1Q 标签实现:

子字段位宽语义
TPID(Tag Protocol ID)16 位固定 0x8100,标识这是 802.1Q 帧
PCP(Priority Code Point)3 位802.1p 优先级(QoS,QoS 与高可用)
DEI(Drop Eligible Indicator)1 位拥塞时可优先丢弃标记
VID(VLAN ID)12 位VLAN 编号,0–4095(0 与 4095 保留,可用 1–4094)

12 位 VID → 最多 4094 个可用 VLAN,这是大规模多租户数据中心转向 VXLAN(24 位 VNI,约 1600 万)的直接原因(VPN 与隧道、云网络)。

2、Access 口、Trunk 口与 Native VLAN ​

端口类型是否带标签用途
Access(接入口)不带标签(untagged)连终端设备,端口固定属于某个 VLAN
Trunk(干道口)带 802.1Q 标签交换机互联,承载多个 VLAN
Native VLANTrunk 上不打标签的那个 VLAN兼容不识别标签的设备;是 VLAN 跳跃攻击的高危点(网络安全)
  • VLAN 间通信必须经过三层设备(路由器或三层交换机的 SVI/网关),这叫 VLAN 间路由(inter-VLAN routing)。同 VLAN 内二层直达,跨 VLAN 需路由——这是「二层隔离、三层互通」的经典结构。

六、无线局域网(802.11)关键差异 ​

无线局域网(Wireless LAN,WLAN,IEEE 802.11 / Wi-Fi) 与有线以太网在链路层语义上有本质差异,理解它们能解释很多「Wi-Fi 特有」的性能与排障问题:

维度有线以太网(802.3)无线(802.11)
介质独占(全双工交换)共享半双工(同频不能同时收发)
冲突处理CSMA/CD(现代交换基本无冲突)CSMA/CA(避免冲突,先侦听再退避)
确认交给上层每帧链路层 ACK(无线误码率高)
帧头目的+源 2 个 MAC最多 4 个 MAC 地址(含 AP/BSSID)
加入网络插线即通扫描→认证→关联(association)
移动无漫游(roaming) 在 AP 间切换
安全物理接触门槛空口开放,需 WPA2/WPA3 加密
  • 信道与干扰:2.4GHz 频段可用非重叠信道少(常用 1/6/11),易受微波炉/蓝牙干扰;5GHz/6GHz 信道多、干扰小但穿墙差。
  • 关联 ≠ 有网:设备关联到 AP(二层通)不代表能上网——还需 DHCP 拿到 IP(19)、网关与 DNS 正常(这正是「连上 Wi-Fi 但打不开网页」的分层排障起点,分层故障排查)。
  • 安全:WPA3 用 SAE(Simultaneous Authentication of Equals)取代 WPA2 的 PSK 四次握手,抵御离线字典与 KRACK 类攻击;WEP、WPA(TKIP) 已弃用,不得推荐(本库红线)。

[待验证/时效]:802.11 具体标准代际(如 Wi-Fi 6/6E/7 对应 802.11ax/be)的速率、信道宽度与频段随版本演进,使用时以 IEEE 802.11 当前标准与设备文档为准。

七、最小可复现实验 ​

1、实验目标 ​

  • 查看本机 MAC 地址、接口标志与 MTU。
  • 在 Linux 隔离环境创建 VLAN 子接口并验证隔离(本环境未执行,给出可复现命令)。

2、平台与工具 ​

  • 本机验证环境:macOS 26.6.2,ifconfig。VLAN/bridge 操作为 Linux iproute2(本环境无)。

3、执行命令与本机实测 ​

查看接口 MAC、标志与 MTU(本机可跑):

bash
# macOS(本机可跑)
ifconfig en0 | grep -E 'flags|ether|mtu'
# Linux 等价
ip -br link show
ip link show dev eth0

本机实测(2026-09-07,MAC 已按本库规范脱敏为文档示例值):

text
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        ether 02:00:5e:10:00:01   # 实际为本机烧录 MAC,此处脱敏展示

解读:BROADCAST 与 MULTICAST 标志表明该接口支持广播/组播(ARP、邻居发现依赖广播/组播,06);mtu 1500 是标准以太网载荷上限。

4、VLAN 隔离实验(需 Linux,本环境未执行) ​

在两个网络命名空间(20)上创建同物理链路、不同 VLAN 的子接口,验证「不同 VLAN 二层不通」:

bash
# [未在本环境执行] Linux + iproute2;需 root/CAP_NET_ADMIN
# 在 veth 上创建 VLAN10 和 VLAN20 子接口
ip link add link veth-c name veth-c.10 type vlan id 10
ip link add link veth-c name veth-c.20 type vlan id 20
ip addr add 192.0.2.10/24 dev veth-c.10
ip addr add 192.0.2.20/24 dev veth-c.20   # 同网段但不同 VLAN
ip link set veth-c.10 up ; ip link set veth-c.20 up
# 预期:对端若在 VLAN10,则 ping .10 通、ping .20 不通(VLAN 二层隔离)
# 抓包 veth-c.10 应看到 802.1Q 标签 (Wireshark: 802.1Q Virtual LAN, ID=10)
sudo tcpdump -i veth-c -nn -e -c 10 vlan   # -e 显示链路层, vlan 过滤带标签帧
# 清理
ip link del veth-c.10 ; ip link del veth-c.20

[未在本环境执行]:macOS 无 ip link ... type vlan。完整拓扑与清理见 20 统一实验。

5、结论边界与清理 ​

  • MAC/MTU 为本机静态属性;VLAN 实验需在 Linux 隔离环境执行,命令含清理步骤。

八、错误示例与常见误区 ​

误区纠正
「MAC 地址全球唯一且不可变」可本地管理/随机化(U/L 位);隐私功能会随机 MAC。
「交换机隔离广播」默认不隔离;需 VLAN 或路由器隔离广播域。
「同一交换机的设备就是同一网段」未必;VLAN 可在同交换机上切多个广播域。
「MTU 1500 是帧大小」1500 是载荷(IP 包)上限,帧还含 14B 头 + 4B FCS。
「连上 Wi-Fi 就能上网」关联仅二层通;还需 DHCP/网关/DNS(19、分层故障排查)。
「VLAN 之间默认能通」需三层设备做 VLAN 间路由。

九、性能影响 ​

  • 广播域过大:广播/未知单播泛洪消耗带宽与 CPU,域越大越差 → 用 VLAN/三层分割。
  • MTU 不一致:路径 MTU 不匹配触发分片或 PMTUD 黑洞,严重降吞吐(09)。
  • 无线共享介质:半双工 + CSMA/CA + 每帧 ACK,使 Wi-Fi 实际吞吐远低于标称,且随接入设备数下降。
  • VLAN 标签开销:每帧多 4 字节,通常可忽略;但巨量小包时累积。

十、安全风险与加固 ​

风险机制加固详见
MAC 泛洪(MAC flooding)灌满 MAC 表逼交换机泛洪、嗅探端口安全(限制每口 MAC 数)网络安全
VLAN 跳跃(VLAN hopping)利用 Native VLAN 或双标签越权访问其他 VLAN关闭 DTP、显式配 Native VLAN、Trunk 白名单网络安全
ARP 欺骗伪造 MAC↔IP 映射做中间人动态 ARP 检测(DAI)、静态绑定06、网络安全
无线破解弱加密(WEP/WPA-TKIP)用 WPA3;禁用弃用协议本章第六节

十一、版本与平台差异 ​

  • 802.3(以太网)、802.1Q(VLAN)、802.11(Wi-Fi) 由 IEEE 定义。
  • Linux:ip link ... type vlan 建 VLAN 子接口、bridge 建软件交换(Linux 与容器网络);macOS:ifconfig vlan;交换机:厂商 CLI 语法各异(本库区分通用原理与厂商语法)。

十二、常见问题与排查方向 ​

  • 「同网段某些主机互通、某些不通」:查 VLAN 划分、端口 Access/Trunk 配置、MAC 表老化。
  • 「网络偶发变慢、广播多」:查广播风暴/二层环路(06 STP)、广播域是否过大。
  • 「抓包看不到 VLAN 标签」:Access 口 untagged,或抓包点在打标签之前;在 Trunk 口用 tcpdump -e vlan。

十三、清理与恢复 ​

  • 只读查看命令无副作用。
  • VLAN 子接口、bridge 等实验对象须用 ip link del 删除(见第七节与 20)。

十四、关联章节 ​

检索关键词 ​

以太网帧结构 FCS MAC 地址 OUI 单播广播 MAC 随机化 本地管理位 交换机学习转发 MAC 表 未知单播泛洪 广播域 冲突域 VLAN 802.1Q 标签 VID Access Trunk Native VLAN VLAN 间路由 无线 802.11 CSMA/CA WPA3 巨帧 Jumbo Frame

权威来源 ​

  • IEEE 802.3(以太网帧格式、FCS)
  • IEEE 802.1Q(VLAN 标签、Trunk)
  • IEEE 802.11(无线局域网)
  • IANA EtherType 注册表
  • Linux ip-link(8)、bridge(8) man page(以目标内核版本为准)

帧格式、VLAN 标签与无线机制以上述 IEEE 标准为准,verified_at: 2026-09-07;接口 MAC/MTU 为 macOS 26.6.2 本机输出,MAC 已按脱敏规范替换为文档示例值。VLAN 子接口实验未在本环境执行(macOS 无 ip link type vlan)。

ICP 备案号待补充 · Gitee 主页