来源学习笔记:IEEE 802.1CB 可靠性帧复制与消除
来源信息
- 标题:IEEE Standard for Local and metropolitan area networks - Frame Replication and Elimination for Reliability
- 标准号:IEEE Std 802.1CB-2017
- 发布时间:2017-10-27
- 原始文件:
raw/802.1CB.md - 关联概念:概念_FRER与复合流、概念_VLAN感知桥与转发数据库
这篇资料解决什么问题
802.1CB 解决的是“关键数据包如何在网络故障时仍尽量被送达”的问题。普通二层网络通常依赖拓扑协议或路由机制在故障后重新收敛,但某些时间敏感应用不能等网络慢慢恢复。FRER 的思路是提前准备冗余路径,把同一个流复制成多个成员流同时发送,接收侧或中间节点再用序列号识别并丢掉重复帧。
它关注的是可靠性,而不是路径计算本身。标准明确把“多条路径如何创建”放在范围之外,也就是说 FRER 假设冗余路径已经由其它机制提供,自己负责在这些路径上复制、标识、合并和消除重复。
阅读前需要知道什么
- 需要知道 IEEE 802.1Q 的桥接模型,包括 VLAN、Bridge、Forwarding Process、Filtering Database。
- 需要知道 TSN 里的 Stream 不是普通意义上的“任意流量”,而是有 Talker、Listener、最大帧大小、发送间隔和资源预约假设的一类流。
- 需要区分“可靠性”和“确定性时延”:802.1CB 主要提高送达概率;时延和拥塞损失通常还要依赖 802.1Q 的预约、整形或调度机制。
- 需要接受一个重要限制:FRER 可以让重复包消失,但不保证恢复原始发送顺序。
原文结构地图
- Clause 1:Overview。定义范围、动机和整体模型,是理解 802.1CB 的入口。
- Clause 3/4:Definitions 和 Acronyms。定义 Compound Stream、Member Stream、FRER、R-TAG 等术语。
- Clause 5:Conformance。说明哪些设备类型需要支持哪些 FRER 能力。
- Clause 6:Stream identification。说明如何识别属于某个 Stream 的帧。
- Clause 7:FRER 核心机制。包含序列生成、序列恢复、个体恢复、编码/解码、拆分和恢复。
- Clause 8:FRER in Bridges。说明 FRER 如何嵌入 802.1Q 桥接转发过程。
- Clause 9/10:管理对象和计数器。用于配置和监测 FRER 功能。
- Annex C:系统示例。用 end-to-end、relay proxy、ladder redundancy、multicast 等场景解释 FRER 如何部署。
核心概念表
| 概念 | 直觉解释 | 在 802.1CB 中的作用 |
|---|---|---|
| Stream | 一条需要被可靠传送的数据流 | FRER 处理的基本对象 |
| Compound Stream | 被 FRER 组织起来的复合流 | 原始流经复制后形成的整体 |
| Member Stream | 复合流中的一个成员路径流 | 同一数据的不同副本沿不同路径传输 |
| Sequence number | 帧的序列号 | 用于判断哪些帧是新的、哪些是重复的 |
| Sequence generation | 生成序列号 | 通常在 Talker 或代理节点靠近发送侧执行 |
| Sequence recovery | 恢复并去重 | 在 Listener 或中间节点合并成员流时执行 |
| R-TAG | 冗余标签 | 一种把序列号放进帧中的方式 |
| Individual recovery | 单成员流恢复 | 防止某条坏路径不断输出陈旧重复帧 |
机制拆解
FRER 的主流程可以理解为五步:
- 识别流:先判断某个帧属于哪个 Stream,并为后续处理生成
stream_handle之类的内部标识。 - 生成序列号:发送侧为同一 Compound Stream 中的帧分配递增序列号。
- 复制与拆分:把同一个帧复制为多个 Member Streams,让它们走不同路径。
- 合并与恢复:接收侧或中间节点把多个 Member Streams 合到一起,根据序列号识别重复。
- 交付单一副本:重复帧被丢弃,非重复帧继续向上层或下一段网络转发。
这个机制的关键不是“复制越多越好”,而是“复制路径要足够独立,并且恢复点知道怎样识别同一份数据”。如果两条 Member Streams 实际上共享同一个故障点,可靠性收益就会下降。
关键流程 / 数据路径 / 控制路径
数据路径上,帧从 Talker 进入 FRER 功能后,会被加上序列信息,并被送入不同成员路径。中间 relay 可以只转发,也可以进一步复制、合并或转换封装。Listener 侧通常执行最终的 sequence recovery。
控制路径上,FRER 依赖管理对象配置哪些 Stream 要被处理、哪些端口参与、使用哪种编码方式、恢复窗口多大、计数器如何统计。标准的 Clause 9 和 Clause 10 主要服务于这些配置与运维需求。
例子 / 类比 / 场景
可以把 FRER 想成“同一份关键报文同时走两条已经规划好的路”。如果两份都到了,接收侧只收第一份,另一份丢掉;如果其中一条路断了,另一条还能把报文送到。
标准的 Annex C 给了多个部署例子:
- End-to-end FRER:FRER 功能只在两端系统中完成。
- Relay proxy:中间桥替不支持 FRER 的终端执行复制和恢复。
- Ladder redundancy:网络像梯子一样有上下两条主路径和中间连接,用于抵抗单链路故障。
- Multicast FRER:面向多个 Listener,每个 Listener 都有冗余路径。
与已有知识的连接
- 与 概念_VLAN感知桥与转发数据库 的关系:FRER 不替代 802.1Q 桥接,而是嵌入桥接转发模型。
- 与 概念_信用整形与SR类 的关系:Qav 更关注有界时延和队列整形,CB 更关注故障下的可靠交付。
- 与 总览_802.1桥接基础到TSN能力扩展 的关系:802.1CB 可以放在 TSN 能力图里的“可靠性增强”层。
易混点
- FRER 不负责计算或创建冗余路径;它只利用已经存在的多路径。
- FRER 消除重复帧,但不保证把乱序帧重新排序成原始顺序。
- Compound Stream 和 Member Stream 的区别很重要:Compound Stream 是整体,Member Stream 是其中一条副本路径。
- R-TAG 只是序列号编码方式之一,不等于 FRER 的全部。
- 使用 FRER 后仍然需要考虑带宽、缓存和最坏时延;复制会增加网络负载。
我还没完全理解的问题
- Sequence recovery 的不同算法在实际设备里如何选择,哪些场景更适合 Vector,哪些更适合 Match。
- FRER 与 802.1Q 的资源预约机制如何共同配置,尤其是每条 Member Stream 是否都要独立预约带宽。
- Relay proxy 场景下,哪些边界最容易出现封装不一致或标签未移除的问题。