深度来源笔记:IEEE 802.1Q-2005 虚拟桥接局域网
来源信息
- 标题:IEEE Standard for Local and metropolitan area networks - Virtual Bridged Local Area Networks
- 标准号:IEEE Std 802.1Q-2005
- 发布时间:2006-05-19
- 原始文件:
raw/802.1Q-2005-1.md - 学习定位:VLAN、桥接转发、优先级队列和后续 TSN 机制的基础标准
- 关联概念:概念_VLAN感知桥与转发数据库
这篇资料解决什么问题
802.1Q 解决的是“如何在同一套二层桥接网络里划分多个逻辑局域网,并让桥知道如何分类、学习、过滤和转发帧”的问题。没有 VLAN 时,桥接网络主要根据 MAC 地址学习和转发;引入 VLAN 后,同一物理网络可以承载多个逻辑广播域,帧不仅有目的 MAC,也有 VLAN 归属和优先级语义。
这份标准的价值不只是定义 VLAN tag。它还定义 VLAN-aware Bridge 的工作模型:入口如何给帧分类,桥内如何学习地址,过滤数据库如何保存 VLAN 成员关系,出口如何决定打标签或去标签,以及如何用 GVRP/MSTP 维护拓扑和 VLAN 成员信息。
从后续 TSN 的角度看,802.1Q 是底座。802.1Qav 的信用整形、802.1CB 的可靠性复制、802.1Qbv 的门控调度等机制,都需要依附在 802.1Q 的桥、端口、队列、优先级和 VLAN 模型上。
阅读前需要知道什么
先理解普通二层桥
普通 MAC Bridge 会学习源 MAC,把目的 MAC 映射到输出端口,并在未知目的地时泛洪。802.1Q 在这个模型上增加 VLAN 维度,让同一个 MAC 地址在不同 VLAN 中可以有不同处理结果。
VLAN 是帧分类,不只是标签
很多人会把 VLAN 理解成“帧里多了 4 字节标签”。这只是外在格式。更核心的是:每个进入桥的帧都必须被归入一个 VLAN,后续学习、过滤、转发、出口处理都基于这个 VLAN 分类。
优先级和队列是后续 TSN 的入口
802.1Q 标签中不只带 VID,还带优先级信息。标准中的 Traffic Class 和输出队列抽象,为后续 802.1Qav 这样的排队增强提供了位置。
原文结构地图
Clause 1:Overview
定义标准范围和 VLAN 的目标。这里说明 802.1Q 定义 VLAN-aware Bridge、VLAN frame format、priority signaling、MSTP、GVRP 等机制。
Clause 3/4:Definitions 与 Abbreviations
关键术语集中在这里,包括 VLAN-tagged frame、Priority-tagged frame、Traffic Class、IVL、SVL、MSTI、PVID、VID、GVRP 等。读后续章节时,很多混淆都来自这些术语没有分清。
Clause 5:Conformance
说明一个 VLAN-aware Bridge 至少需要支持哪些能力,包括 PVID、Acceptable Frame Types、Static/Dynamic VLAN Registration Entries、Filtering Database、GVRP、管理配置等。
Clause 6:Support of the MAC Service in VLANs
这一章说明如何在 VLAN 环境中保持 MAC Service 的行为,包括服务可用性、帧丢失、乱序、重复、时延、优先级等。对于 TSN 学习者,priority 和 Traffic Class 的部分尤其重要。
Clause 7:Principles of network operation
解释 VLAN 网络的总体运行原则:VLAN 如何使用、VLAN topology 如何形成、终端位置如何被桥学习。这里开始把“标签格式”提升到“网络行为”。
Clause 8:Principles of bridge operation
核心章之一。这里定义 VLAN-aware Bridge 的端口状态、入口规则、Forwarding Process、Learning Process、Filtering Database、出口规则等。理解 802.1Q 的桥接行为,主要看这一章。
Clause 9:Tagged frame format
定义 VLAN-tagged frame 的格式,尤其是 TPID、TCI、PCP、CFI/DEI、VID 等字段的意义。这里是抓包分析最直接会用到的部分。
Clause 10/11:GMRP in VLANs 与 VLAN topology management
Clause 11 的 GVRP 用于 VLAN membership 信息的动态注册和传播。它让 VLAN 成员关系不完全依赖手工静态配置。
Clause 12:Bridge management
管理相关,包括 Filtering Database、VLAN 注册、端口配置、学习约束等。实际设备配置中的许多概念都能在这里找到标准化背景。
Clause 13/14:MSTP 与 BPDU
MSTP 让不同 VLAN 可以映射到不同的生成树实例,从而在避免环路的同时更好利用拓扑资源。它是 VLAN 网络拓扑管理的重要组成。
Annex B:Shared and Independent VLAN Learning
这个附录非常值得读。它解释 SVL 和 IVL 的差别,以及不同 VLAN 是否共享 MAC 学习结果会带来什么网络行为。
核心概念表
| 概念 | 学习时的直觉 | 在 802.1Q 中的作用 |
|---|---|---|
| VLAN-aware Bridge | 懂 VLAN 的二层桥 | 识别标签、分类、学习、过滤、转发 |
| VID | VLAN 编号 | 表示帧属于哪个逻辑网络 |
| PVID | 端口默认 VLAN | 未打标签帧进入端口时的默认分类 |
| VLAN-tagged frame | 带 VLAN 标签的帧 | 同时携带 VID 与优先级 |
| Priority-tagged frame | 只携带优先级、不携带有效 VID 的 tagged frame | 用于优先级信令而非 VLAN 划分 |
| Traffic Class | 输出队列类别 | 把优先级映射到桥端口上的队列 |
| Filtering Database | 过滤数据库 | 保存 MAC、VLAN、端口成员等转发信息 |
| IVL | 独立 VLAN 学习 | 一个 VLAN 学到的 MAC 不用于另一个 VLAN |
| SVL | 共享 VLAN 学习 | 多个 VLAN 可以共享 MAC 学习信息 |
| GVRP | VLAN 注册协议 | 动态传播 VLAN membership |
| MSTP | 多生成树协议 | 让不同 VLAN 使用不同生成树实例 |
机制拆解
1. 入口分类:每个帧必须属于一个 VLAN
帧进入 VLAN-aware Bridge 时,桥需要判断它属于哪个 VLAN。带标签帧通常直接使用标签中的 VID;未带标签帧或 priority-tagged frame 通常使用接收端口的 PVID;如果启用了 port-and-protocol-based classification,还可能根据上层协议选择 VID。
这里的核心约束是:一个进入桥的帧最终应被归入一个明确 VLAN。后续所有学习、过滤和转发都会依赖这个 VLAN 分类。
2. 学习:源 MAC 与 VLAN 共同影响地址学习
桥会从输入帧的源地址学习终端位置。但在 VLAN 环境中,“某个 MAC 在哪里”不一定是全局问题。IVL 和 SVL 的区别就在这里:IVL 让每个 VLAN 独立学习,SVL 允许多个 VLAN 共享学习结果。
如果网络中存在重复 MAC、非对称 VLAN 或多个逻辑隔离域,IVL/SVL 的选择会影响泛洪、连通性和安全边界。
3. 过滤:Filtering Database 决定哪些端口可达
Filtering Database 不只是 MAC 转发表。它还包含 VLAN 注册、静态过滤、动态注册、端口成员关系等信息。转发过程会查询这些信息,决定某个帧可以从哪些端口出去。
4. 转发:Forwarding Process 结合地址、VLAN 和端口状态
Forwarding Process 会综合目的 MAC、VLAN、端口状态、Filtering Database、生成树状态等信息决定输出端口集合。未知单播、多播、广播的行为也会受 VLAN 成员集合约束。
5. 出口处理:决定 tagged 还是 untagged
帧从某个端口输出时,桥要根据该端口对该 VLAN 的配置决定是否带标签。连接普通终端的 access-like 端口常常输出 untagged,连接其它桥的 trunk-like 端口通常输出 tagged。
6. 拓扑管理:GVRP 和 MSTP 维护动态环境
GVRP 用于传播 VLAN membership,帮助桥动态建立 Dynamic VLAN Registration Entries。MSTP 则把 VLAN 映射到不同生成树实例,控制哪些链路处于 active topology。
关键流程 / 数据路径 / 控制路径
数据路径
flowchart TD A["Frame arrives"] --> B["Ingress classification"] B --> C["Assign VID / priority"] C --> D["Learning Process"] C --> E["Forwarding Process"] E --> F["Filtering Database lookup"] F --> G["Select egress ports"] G --> H["Tagging / untagging"] H --> I["Transmit"]
控制路径
控制路径主要来自管理配置、GVRP 动态注册和 MSTP 拓扑状态。管理员配置 PVID、VID Set、Static VLAN Registration Entries、Acceptable Frame Types 等;GVRP 更新动态 VLAN 成员;MSTP 决定 VLAN 对应拓扑中的 active ports。
章节级拆解
Clause 1.1 Scope
Scope 把 802.1Q 的范围铺开:它不只是 VLAN tag,而是包括 VLAN services、Forwarding Process、Filtering Database、frame formats、priority signaling、GVRP、MSTP 等一整套桥接网络机制。
Clause 1.2 VLAN aims and benefits
这一节说明 VLAN 的目标:逻辑分组、拓扑灵活性、广播域控制、管理分离、优先级处理等。它解释了为什么 VLAN 是网络结构机制,而不是单纯的报文格式机制。
Clause 6.7 Support of the EISS
这里对入口分类很关键。它讨论 Acceptable Frame Types、PVID、VID Set、untagged/priority-tagged/tagged frame 的处理方式。学习抓包和交换机端口模式时,这一节很实用。
Clause 8.6 Forwarding Process
这是桥如何转发的中心。转发不是只看目的 MAC,还要受 VLAN、Filtering Database、端口状态、traffic class 等影响。后续 TSN 机制经常是在这个流程的队列和输出阶段加功能。
Clause 8.8 Filtering Database
Filtering Database 是 VLAN 网络的记忆系统。它记录哪些 MAC/VLAN/Group/Port 信息可用于过滤和转发。理解它,就能理解为什么 VLAN 中的“成员关系”会影响广播、多播和未知单播。
Clause 9 Tagged frame format
这里是实际帧格式。802.1Q tag 的关键字段包括优先级、格式指示位和 VID。对学习者来说,重点是知道 VID 用于 VLAN 分类,PCP 用于优先级映射。
Clause 11 GVRP
GVRP 让设备声明和撤销 VLAN membership,桥据此更新动态注册项。它体现了 VLAN 拓扑可以部分动态维护,而不全靠静态配置。
Clause 13 MSTP
MSTP 让多个 VLAN 可以映射到不同生成树实例,避免所有 VLAN 都被迫共享同一棵树。它解决的是 VLAN 网络里的环路控制和链路利用率之间的平衡。
Annex B SVL/IVL
SVL/IVL 是理解 VLAN 学习边界的重要附录。它说明共享或独立学习会影响重复 MAC、非对称 VLAN、跨 VLAN 通信等配置场景。
关键定义的定位
- VLAN-tagged frame:Definitions 中的 tagged frame 相关条目。
- Priority-tagged frame:Definitions 中的 priority-tagged frame。
- Traffic Class:Definitions 与 Clause 6.3.9。
- PVID:Clause 5.3 与 Clause 6.7。
- Forwarding Process:Clause 8.6。
- Filtering Database:Clause 8.8 与 Clause 12.7。
- GVRP:Clause 11。
- MSTP:Clause 13。
- SVL/IVL:Definitions 与 Annex B。
术语之间的依赖关系
flowchart TD A["Ingress frame"] --> B["Tag / PVID / protocol classification"] B --> C["VID"] B --> D["Priority"] C --> E["Filtering Database"] D --> F["Traffic Class"] E --> G["Forwarding Process"] F --> G G --> H["Egress port set"] H --> I["Tagged or untagged output"]
与其它来源的关系
- 来源_IEEE_802.1Qav_时间敏感流转发与排队增强_deep_dive 使用 802.1Q 的 priority、traffic class 和 queue 抽象来实现时间敏感流的整形。
- 来源_IEEE_802.1CB_可靠性帧复制与消除_deep_dive 把 FRER 功能嵌入 802.1Q 桥接转发模型。
- 总览_802.1桥接基础到TSN能力扩展 把 802.1Q 放在“桥接基础层”。
易混点
VLAN tag 不是 VLAN 的全部
标签只是承载 VID 和优先级的格式。真正的 VLAN 行为还包括入口分类、过滤数据库、端口成员、出口打标签、动态注册和拓扑控制。
PVID 只影响未带标签或特定分类场景
PVID 是端口默认 VLAN。带有效 VID 的 tagged frame 通常直接使用帧中 VID。混淆 PVID 和 VID 会导致 access/trunk 行为理解混乱。
IVL 和 SVL 会改变 MAC 学习语义
同一个 MAC 在不同 VLAN 里是否共享学习结果,是 VLAN 行为的重要差异,不只是实现细节。
Traffic Class 不是 IP 层 QoS
这里的 Traffic Class 是 802.1Q 桥端口输出队列分类,与 IP DSCP 等上层 QoS 不是同一层概念,虽然可以通过映射关联。
MSTP 不是 VLAN 本身
MSTP 解决的是 VLAN 桥接网络中的环路和拓扑问题。VLAN 可以存在,MSTP 是进一步管理多 VLAN 拓扑的机制。
读这篇标准时的推荐顺序
- 先读 Overview 和 VLAN aims,建立 VLAN 的目标。
- 读 Definitions 中的 VID、PVID、VLAN-tagged frame、Traffic Class、IVL/SVL。
- 读 Clause 6.7,理解入口分类。
- 读 Clause 8.6 和 8.8,理解转发过程和过滤数据库。
- 读 Clause 9,掌握标签格式。
- 再读 Clause 11 和 Clause 13,理解 GVRP 与 MSTP。
- 最后读 Annex B,补 SVL/IVL 的复杂场景。
我还没完全理解的问题
- 在现代交换机中,GVRP 与更现代的 VLAN 管理机制如何替代或共存。
- IVL/SVL 在真实芯片转发表里的实现成本和限制。
- MSTP 与后续 TSN 显式路径、门控调度等机制的边界如何划分。
- VLAN tag 中优先级与后续 TSN traffic class 映射的工程默认值如何选择。
已拆出的概念页
- 概念_802.1Q_VLAN标签与PVID
- 概念_802.1Q_Forwarding_Process
- 概念_802.1Q_Filtering_Database
- 概念_802.1Q_IVL与SVL
- 概念_802.1Q_GVRP
- 概念_802.1Q_MSTP