第297篇:确定性网络(802.1Qbv/TSN)入门

关键词

TSN、时间敏感网络、IEEE 802.1 标准族、802.1Qbv、门控调度、802.1Qbu 帧抢占、802.1CB 冗余、802.1Qci 流过滤、确定性时延


一、什么是确定性网络

1.1 确定性网络的定义

确定性网络(Deterministic Networking)提供有界时延、低抖动、零丢包的通信保障:

传统以太网 vs 确定性网络:

  传统以太网:
  ┌──────────────────────────────────────────┐
  │  数据包到达 ──► 队列 ──► 按优先级发送      │
  │  ┌─ 时延不确定(取决于其他流量)          │
  │  ├─ 抖动大(排队时间不同)               │
  │  ├─ 可能丢包(队列满溢出)               │
  │  └─ 无法预测最坏情况时延                 │
  │                                            │
  │  示例:端口 1Gbps,10 个流,每个 100Mbps │
  │  瞬时 5 个流同时发送 → 队列拥塞          │
  │  时延从 100μs 到 10ms 不等               │
  └──────────────────────────────────────────┘

  确定性网络(TSN):
  ┌──────────────────────────────────────────┐
  │  数据包到达 ──► 门控调度 ──► 精确时间发送 │
  │  ┌─ 时延有上界(最大时延可知)           │
  │  ├─ 抖动极小(门控精确控制)             │
  │  ├─ 零丢包(带宽预留)                   │
  │  └─ 最坏情况时延可计算                   │
  │                                            │
  │  示例:端口 1Gbps,10 个流,每个 100Mbps │
  │  为每个流预留带宽和时隙                   │
  │  时延:固定 200μs(无论其他流如何)      │
  └──────────────────────────────────────────┘

1.2 应用场景

确定性网络典型场景:

  工业控制:
  ┌─ 生产线的运动控制周期:< 100μs
  ├─ 机器人关节控制:< 1ms
  └─ PLC 之间的同步:< 10μs 抖动

  汽车自动驾驶:
  ┌─ 激光雷达数据传输:< 1ms
  ├─ 刹车/转向控制:< 100μs
  └─ 传感器融合:同步精度 < 1μs

  车载网络:
  ┌─ 信息娱乐(尽力而为)+ 控制(确定性)
  └─ 同一条物理线缆承载

  专业音视频(AoE):
  ┌─ 专业音频:< 1ms 同步
  ├─ 直播视频:帧级精确
  └─ 演播室制作

  TSN 解决的共性需求:
  同一条网络同时承载 确定性流量 + 尽力而为流量
  且它们互不干扰

二、TSN 标准体系

2.1 IEEE 802.1 TSN 标准族

TSN(Time-Sensitive Networking)是 IEEE 802.1 的工作组标准族:

时间同步 802.1AS-2020: gPTP(通用精确时间协议) ┌─ 全网纳秒级同步 └─ 基于 1588v2,增强 TSN 场景 调度与转发 802.1Qbv: 时间感知整形(TAS) ┌─ 门控调度:精确时隙发送 └─ 确保确定性时延 802.1Qbu: 帧抢占(Frame Preemption) ┌─ 低时延帧可中断长帧 └─ 减少低优先级帧的阻塞 802.1Qch: 循环排队转发(CQF) ┌─ 交替收发缓冲区 └─ 简化确定性保证 流管理 802.1Qci: 流过滤与监管 ┌─ 基于流的速率限制和整形 └─ 防止非确定性流量冲击 冗余 802.1CB: 帧复制与消除(FRER) ┌─ 多路径发送相同帧 └─ 消除重复,零丢包 配置管理 802.1Qcc: TSN 配置管理协议 ┌─ 集中式/分布式配置模型 └─ YANG 模型统一管理

2.2 802.1Qbv 时间感知整形

802.1Qbv(Time-Aware Shaper, TAS)——TSN 的核心调度机制:

门控列表(Gate Control List, GCL) 时间线: ──┬────┬────┬────┬────┬────┬────┬─────── └────┴────┴────┴────┴────┴────┴── 队列 7(高优先级=控制流) T0:开 T1:开 T2:开 T3:开 T4:开 T5:开 ── 控制流量随时可发 队列 5(时间敏感流) T0:开 T1:关 T2:开 T3:关 T4:开 T5:关 ── 只在特定时隙发送 队列 0(尽力而为流) T0:关 T1:开 T2:关 T3:开 T4:关 T5:开 ── 在时间敏感流不发时发送 门控列表示例: ┌─────┬──────┬──────────────────────┐ ├─────┼──────┼──────────────────────┤ └─────┴──────┴──────────────────────┘ 循环周期:30μs 时间敏感流保证:12μs/30μs = 40% 带宽 T0 T T0 T1 T2 T3 T4 T5 T1 Time 0μs 5μs 15μs 17μs 27μs 29μs T2 Gate State (8 队列) 11111111 (全开) 10000000 (仅队列7) 10100000 (队列7+5) 10000000 (仅队列7) 10100000 (队列7+5) 10000001(队列7+0) T3 T4 T5

三、802.1Qbu 帧抢占

3.1 帧抢占原理

帧抢占(Frame Preemption, IEEE 802.1Qbu):

问题:长帧(1518 字节 @1Gbps ≈ 12μs)阻塞高优先级短帧 解决:允许打断正在发送的长帧,优先发短帧

无帧抢占: ┌──────────────────────────┐ ┌────────┐ └──────────────────────────┘ └────────┘ 短帧被延迟 12μs 加上排队时间 有帧抢占: ┌──────────┐ ┌────────┐ ┌────────────┐ └──────────┘ └────────┘ └────────────┘ 短帧几乎无等待 MAC 层要求支持可抢占 MAC(pMAC) 和可被抢占 MAC(eMAC) 长帧(1500 字节) 正在发送... ←── 12μs 发送时间 ──→ 长帧前半 发送中 短帧(64) 等待中 短帧优先 立即发送 长帧后半 继续发送

3.2 802.1CB 帧复制与消除

802.1CB(Frame Replication and Elimination for Reliability, FRER):

发送端:复制帧 原始帧 ├── 路径 1 ──► 交换机 ──► 交换机 ──► └── 路径 2 ──► 交换机 ──► 交换机 ──► 接收端:消除重复 路径1 的帧 ───┐ ├── 序列号检查 ──► 选择 路径2 的帧 ───┘ 第一个到达 第二个到达的 → 丢弃 效果: ┌─ 任一路径故障 → 业务不中断 ├─ 零恢复时间(即时切换) ├─ 零丢包(双发选收) └─ 适用于:工业控制、汽车安全

四、TSN 配置与管理

4.1 流预留

TSN 流预留(802.1Qat / SRP):

  流预留流程:

  1. 流声明(Talker 发送)
     ┌─ Stream ID
     ├─ 带宽需求(帧大小 × 帧间隔)
     ├─ 时延要求(最大时延)
     └─ 优先级

  2. 逐跳注册
     ┌─ 每台 TSN 交换机检查资源是否充足
     ├─ 预留队列和带宽
     └─ 转发声明到下一跳

  3. 流确认(Listener 接收)
     ┌─ 确认路径可用
     ├─ 预留成功 → 流建立
     └─ 预留失败 → 通知 Talker

  4. 流维护
     ┌─ 定期刷新预留
     ├─ 路径变化时重预留
     └─ 释放流时取消预留

4.2 集中式配置(802.1Qcc)

802.1Qcc TSN 配置模型:

| 完全集中式模型(CNC + CUC) ┌──────────┐ └────┬─────┘ ▼ ┌──────────┐ └────┬─────┘ ▼ ┌────────────────────────────────────┐ └────────────────────────────────────┘ | CNC 计算门控列表时考虑: | ┌─ 所有已注册流的时隙分配 | ├─ 路径时延(传播 + 转发) | ├─ 门控循环周期对齐 | └─ 计算最坏情况时延并验证 | CUC (中央用户 配置) 用户-网络接口 (UNI) CNC (中央网络 配置) NETCONF/YANG TSN 交换机群 SW1 ── SW2 ── SW3 Talker Listener ... | 应用层需求 流规范 时延/带宽 网络层计算 门控列表 路径 预留 | | | | | --- | --- | --- | --- | --- | --- |


五、TSN 与 DetNet 的关系

TSN(IEEE 802.1)vs DetNet(IETF):

  ┌──────────────────────────────────────────┐
  |  TSN(IEEE 802.1)                        │
  |  ┌─ 二层(L2)确定性网络                  │
  |  ├─ 基于以太网 MAC 层                     │
  |  ├─ 802.1Qbv/Qbu/Qci/QCB 等             │
  |  └─ 适用:工业、车载、音视频             │
  |                                            │
  |  DetNet(IETF Deterministic Networking)  │
  |  ┌─ 三层(L3)确定性网络                  │
  |  ├─ 基于 IP/MPLS 层                       │
  |  ├─ 封装 TSN 到 IP/MPLS 网络              │
  |  ├─ 端到端跨域确定性(WAN 场景)          │
  |  └─ 适用:5G 承载、工业互联网广域        │
  |                                            │
  |  关系:                                    │
  |  ┌─ DetNet 使用 TSN 作为底层技术          │
  |  ├─ DetNet 在 IP/MPLS 头部封装 TSN 信息  │
  |  ├─ DetNet 提供 L3 端到端确定性            │
  |  └─ 两者互补:TSN for LAN, DetNet for WAN  │
  └──────────────────────────────────────────┘

  DetNet 数据面:
  ┌─ 封装 TSN 流到 MPLS/IP 包
  ├─ SR-TE 路径编程
  ├─ 双发选收(冗余)
  └─ 资源预留(RSVP-TE / SR Policy)

六、TSN 部署考虑

TSN 部署关键点:

  1. 时钟同步优先级最高
     ┌─ 所有 TSN 功能依赖精确时间同步
     ├─ 802.1AS gPTP 是基础
     └─ 同步精度 < 1μs

  2. 网络拓扑规划
     ┌─ 尽量减少跳数(每跳增加时延)
     ├─ 避免不对称路径
     └─ 支持冗余路径(802.1CB)

  3. 门控列表计算
     ┌─ CNC 综合所有流计算
     ├─ 每个流必须能按时到达目的地
     └─ 最坏情况时延 ≤ 流要求的最大时延

  4. 混合流量支持
     ┌─ TSN 流(时间敏感):门控保护
     ├─ AVB 流(音频/视频):带宽预留
     └─ BE 流(尽力而为):空闲时隙发送

  5. 规模限制
     ┌─ 单域 TSN:< 100 台交换机
     ├─ 最大跳数:< 20 跳(受时钟同步限制)
     └─ 流数量:交换机硬件资源限制

总结

关键点 说明
确定性网络 有界时延 + 低抖动 + 零丢包
TSN 标准族 IEEE 802.1 多个子标准
802.1Qbv 门控调度(GCL),精确时隙发送
802.1Qbu 帧抢占,低时延帧可打断长帧
802.1CB 帧复制与消除,零恢复时间冗余
802.1Qcc 集中式配置模型(CNC + CUC)
TSN vs DetNet TSN 是 L2 确定性,DetNet 扩展 L3

思考

  1. 确定性网络和传统以太网的本质区别是什么?
  2. 802.1Qbv 的门控调度(GCL)是如何工作的?
  3. 帧抢占(802.1Qbu)解决了什么问题?
  4. 802.1CB 如何实现零丢包冗余?
  5. TSN 配置的集中式模型(CNC/CUC)是什么?
  6. TSN 和 DetNet 有什么区别和联系?

下篇预告:第298篇 - TSN 时钟同步:802.1AS gPTP,深入 TSN 的时间同步机制。