来源学习笔记:IEEE 802.1CB 可靠性帧复制与消除

来源信息

这篇资料解决什么问题

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 的主流程可以理解为五步:

  1. 识别流:先判断某个帧属于哪个 Stream,并为后续处理生成 stream_handle 之类的内部标识。
  2. 生成序列号:发送侧为同一 Compound Stream 中的帧分配递增序列号。
  3. 复制与拆分:把同一个帧复制为多个 Member Streams,让它们走不同路径。
  4. 合并与恢复:接收侧或中间节点把多个 Member Streams 合到一起,根据序列号识别重复。
  5. 交付单一副本:重复帧被丢弃,非重复帧继续向上层或下一段网络转发。

这个机制的关键不是“复制越多越好”,而是“复制路径要足够独立,并且恢复点知道怎样识别同一份数据”。如果两条 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 都有冗余路径。

与已有知识的连接

易混点

  • 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 场景下,哪些边界最容易出现封装不一致或标签未移除的问题。

已拆出的概念页

关联页面