写在开篇·蓉儿又挖坑
上回说到,郭靖搞清楚了帧抢占——紧急数据可以打断低优先级数据,不用等周期窗口。
郭靖合上笔记本,若有所思:“蓉儿,TAS和帧抢占能保证准时发,但万一网络断了怎么办?刹车指令准时发出了,但网线断了,还是到不了啊。”
黄蓉咬了口糖葫芦:“问得好!准时发只是第一步,可靠到达才是关键。 今天就把冗余传输讲清楚——IEEE 802.1CB,给关键数据上‘双保险’。”
一、冗余传输是什么?为什么需要它?
黄蓉在白板上写下定义:
冗余传输 = 同一份数据发两份,走两条不同的路径,接收方选先到的那份
IEEE 802.1CB 标准定义
“核心思想:重要数据不发一次,发两次。两条路,一条断了另一条还能到。”
没有冗余传输:
┌─────────┐ ┌─────────┐ ┌─────────┐
│ 刹车ECU │────→│ 交换机 │────→│ 域控制器 │
└─────────┘ └─────────┘ └─────────┘
↑
┌─────┴─────┐
│ 网线断了! │
└───────────┘
结果:刹车指令丢了,车没刹住!
有冗余传输:
┌─────────┐ ┌─────────┐ ┌─────────┐
│ 刹车ECU │──┐ │ 交换机A │──┐ │ 域控制器 │
└─────────┘ │ └─────────┘ │ └─────────┘
│ ▲ │ ↑
│ │ 主路 │ │
└────┼───────────┼──────┘
│ 备路 │
┌────┴────┐ ┌────┴────┐
│ 交换机B │ │ 交换机C │
└─────────┘ └─────────┘
结果:主路断了,备路还能到!
二、冗余传输是怎么工作的
黄蓉画了冗余传输的核心流程:
┌─────────────────────────────────────────────────────────────────────┐
│ 802.1CB 冗余传输原理 │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ 发送端: │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ 原始数据包(刹车指令) │ │
│ │ │ │ │
│ │ ├──→ 复制一份 │ │
│ │ │ │ │
│ │ ▼ ▼ │ │
│ │ [副本1] [副本2] │ │
│ │ 走路径A 走路径B │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ │
│ 网络: │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ 路径A:ECU → 交换机A → 交换机C → 域控 │ │
│ │ 路径B:ECU → 交换机B → 交换机C → 域控 │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ │
│ 接收端: │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ 收到副本1(t1)→ 收下 │ │
│ │ 收到副本2(t2,比t1晚)→ 丢弃(去重) │ │
│ │ │ │
│ │ 如果只收到一份,也收下(另一份可能丢了) │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────┘
三、冗余传输 vs 重传机制
郭靖问:“TCP也有重传,丢了再发不行吗?为什么还要冗余传输?”
黄蓉画了对比表:
| 检测丢包 | 需要超时等待 | 不需要等,另一份可能已经到了 |
| 恢复时间 | 毫秒级(可能几百ms) | 微秒级(几乎无感) |
| 带宽开销 | 只在丢包时多一份 | 始终多一份(双倍带宽) |
| 适用场景 | 普通数据 | 关键数据(刹车、转向) |
| 实现层级 | 软件(TCP栈) | 硬件(交换机) |
TCP重传是“丢了再补”,冗余传输是“压根不怕丢”。刹车指令等不起TCP那几百毫秒。
四、车载典型应用
黄蓉画了一张车载冗余传输拓扑图:
┌─────────────────────────────────────────────────────────────────────┐
│ 车载冗余传输拓扑 │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────┐ │
│ │ T-Box/GPS │ │
│ └──────┬──────┘ │
│ │ │
│ ┌────────────┼────────────┐ │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ 网关主 │ │ 网关备 │ │ 网关备2 │ │
│ │ (路径A) │ │ (路径B) │ │ (路径C) │ │
│ └────┬─────┘ └────┬─────┘ └────┬─────┘ │
│ │ │ │ │
│ └─────────────┼─────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────┐ │
│ │ 域控制器 │ │
│ └─────────────┘ │
│ │
│ 关键数据(刹车、转向)同时走三条路径,一条断了还有两条 │
│ │
└─────────────────────────────────────────────────────────────────────┘
| ASIL D(刹车、转向) | 3条 | 最高安全等级,至少一条能到 |
| ASIL B/C(传感器) | 2条 | 一般冗余 |
| 非安全相关(娱乐) | 1条 | 不冗余 |
五、冗余传输的代价
黄蓉提醒郭靖:“冗余传输不是免费的,有代价。”
| 带宽翻倍 | 发一份数据,占两份带宽 |
| 需要多路径 | 网络拓扑必须支持多条独立路径 |
| 需要去重 | 接收方需要识别重复包 |
| 配置复杂 | 需要规划哪些流需要冗余 |
| 硬件支持 | 交换机需要支持802.1CB |
六、TSN四件套总结
黄蓉在白板上画了TSN的四个核心机制:
┌─────────────────────────────────────────────────────────────────────┐
│ TSN四件套 │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ ① gPTP(时间同步) │
│ └── 全网设备时间对齐,精度<1μs │
│ │ │
│ ▼ │
│ ② TAS(时间感知整形) │
│ └── 定时开关门,关键数据走专用窗口 │
│ │ │
│ ▼ │
│ ③ 帧抢占 │
│ └── 紧急数据可以打断低优先级数据 │
│ │ │
│ ▼ │
│ ④ 冗余传输(802.1CB) │
│ └── 关键数据走多条路径,一条断了另一条上 │
│ │
│ 四件套配合: │
│ └── 时间对齐(gPTP)+ 准时发(TAS)+ 紧急插队(帧抢占)+ 多路备胎 │
│ (冗余传输)= 关键数据准时可靠到达 │
│ │
└─────────────────────────────────────────────────────────────────────┘
七、黄蓉的小本本
郭靖翻开她的笔记本,上面写着:
冗余传输核心要点:
1. 冗余传输是什么:同一份数据发多份,走多条不同路径(IEEE 802.1CB)
2. 核心价值:一条路断了,另一条还能到,无需等待重传
3. 与TCP重传的区别:
-
TCP:丢了才补,要等几百毫秒
-
802.1CB:压根不怕丢,微秒级恢复
4. 车载应用:刹车、转向等高安全等级数据,走2-3条冗余路径
5. 代价:带宽翻倍、需要多路径、配置复杂
6. TSN四件套:
-
gPTP:时间对齐
-
TAS:准时发
-
帧抢占:紧急插队
-
冗余传输:多路备胎
一句话:刹车指令发三份,走三条不同的路。一条断了,还有两条能到。
写在最后
郭靖合上笔记本:“TSN四件套齐了——gPTP时间同步、TAS准时发、帧抢占紧急插队、冗余传输多路备胎。关键数据既准时又可靠。”
黄蓉咬了口糖葫芦:“TSN四件套讲完了。下篇,咱们把TSN从头到尾串一遍。”
郭靖点头。
“下篇预告:TSN总结——一张图看懂时间敏感网络。”
打完收工,886。