开个新专题:TSN(时间敏感网络)。

这个专题第一批讲 gPTP——TSN 家族里最基础、也最容易被低估的一个协议。后面几批会陆续写整形器(Qbv / Qbu)、冗余(802.1CB)这些"确定性"的另一半。但这一切都有个共同前提:全网先得有同一个时间基准。这个基准,就是 gPTP。

这篇先不碰报文细节,把地图画清楚:TSN 是什么、gPTP 在里面的位置、它和 PTP 是什么关系。

一、以太网本来没有"时间"这个概念

传统以太网是尽力而为(best effort)的:报文排队、转发、拥塞丢帧,谁也不知道一个报文到底什么时候能到。延迟是概率问题,抖动更是无从谈起。

但有一类流量等不了:

  • 控制类流量:电机同步、机器人关节协同,差几十微秒就可能撞车
  • 音视频流:AVB(音频视频桥接)要求各路音频样点对齐,典型预算几百微秒
  • 传感器融合:摄像头和雷达的数据要对到同一个时间轴上,才能谈"融合"

TSN 就是 IEEE 802.1 工作组给出的答案:在标准以太网上,通过一组协议,把"确定性的延迟和抖动"做出来。它不改以太网的物理层,全部增强都在 MAC 层以上——所以 TSN 交换机长得和普通交换机一样,只是芯片和配置变了。

二、TSN 协议族:一大家子人

TSN 不是单个协议,是一族。挑核心的列一张表:

标准干什么用一句话理解
802.1AS时间同步(gPTP)全网对表,本文主角
802.1Qbv时间感知整形器按时刻表开关队列门,确定性调度的核心
802.1Qbu帧抢占高优先级报文可以"打断"正在发的小报文
802.1Qav信用整形(CBS)给音视频流限速,平滑突发
802.1Qci每流过滤与监管防止一个流氓流量拖垮全网
802.1CB帧复制与消除(FRER)报文发两份走两条路,坏一条也不丢
802.1Qcc集中式配置管理由中央控制器统一下发门控时刻表

看出来了吗?这一大家子全都挂在"时间"上:

  • Qbv 的门控时刻表,本质是一张"几点几分开哪个门"的时间表——表上的"几点几分"用什么表示?用 gPTP 同步出来的时间
  • 802.1CB 的复制消除,要判断"哪份报文先到、丢掉重复的",也依赖时间参考
  • Qbu 帧抢占里"正在发的报文最多被打断一次、碎片必须在下一个门开之前发完"——这又是一个时间约束

所以 gPTP 是 TSN 的地基:其他协议负责把流量管得服服帖帖,gPTP 负责让全网对"现在几点"达成一致。表不准,时刻表就是废纸。

三、gPTP = 802.1AS,PTP 的"车载精简版"

如果你听过 PTP(IEEE 1588 精确时间协议),那 gPTP 很好理解:

gPTP 就是 IEEE 802.1AS,全称"Timing and Synchronization for Time-Sensitive Applications",是 PTP(1588v2)在桥接网络场景下的一个 profile(裁剪配置版)。

同宗同源,但有几处关键差异,这些差异不是学术洁癖,全是工程妥协:

维度PTP(1588v2)gPTP(802.1AS)
网络范围各种网络,通用就是给 802 桥接网络设计的
主时钟选择1588 的 BMCA,字段一大把沿用 BMCA,但数据集字段有删减
延迟测量机制E2E(Delay_Req)或 P2P默认走 P2P(链路延迟逐跳测),E2E 可选
报文间隔可配,1 次/秒到上千次/秒固定档位,同步报文典型 125ms 一次
domain 概念多个 domain 隔离概念保留,实际部署通常一个域

为什么要专门裁一个 profile 出来?因为 1588 太自由了——字段可选、机制可选、间隔可调,自由到不同厂商的实现互通不了。而车载/工业场景要求所有节点行为完全一致,于是 802.1AS 把能定的全定死:用什么报文、多久发一次、哪些字段必须是什么值,全规定好。代价是灵活性,换来的是确定性和互操作。

四、gPTP 要"对"到什么精度

这是大家最关心的数字。直接给结论:

  • 设计目标:亚微秒级(< 1 µs),典型车载实现全网同步精度在 几百纳秒 量级
  • 为什么是纳秒:车载场景下,1 µs 的时间误差 ≈ 车速 100km/h 时约 3cm 的位移误差。传感器融合算法要在同一时刻对齐多路数据,厘米级误差足够让融合结果误判
  • 为什么能做到:全靠硬件时间戳 + 链路延迟的显式测量 + 驻留时间逐跳补偿,这三件事后面几篇逐一拆

作为对比,感受一下量级差距:

对时方式典型精度用在哪
NTP毫秒~几十毫秒办公网、日志
PTP(软件)几十~上百微秒通用工业
gPTP(硬件)亚微秒车载 TSN、音视频

差了三四个数量级。这不是优化,是换了一套打法。

五、gPTP 的核心概念速览

后面几篇会逐个展开,这里先混个脸熟:

  • GM(Grandmaster,主时钟):全网唯一的时间源头,通常是域控里带 GPS/原子钟参考的那个节点
  • BMCA:选 GM 的算法,全称"最佳主时钟算法",一套优先级比较规则——可以理解成时钟界的"选王"
  • Sync / Follow_Up:GM 周期性发出的对时报文,把"我这边几点了"告诉全网
  • Delay_Req / Delay_Resp:测往返延迟、算偏移的报文对(E2E 机制)
  • Pdelay_Req / Pdelay_Resp:逐跳测量链路延迟的报文对(P2P 机制,gPTP 默认)
  • correctionField:报文里携带的"时间修正值",交换机每转发一跳,就把自己耽搁的时间(驻留时间)加进去
  • BC(Boundary Clock,边界时钟):交换机作为"中转主时钟",向下游重新发 Sync——大规模网络不级联误差的关键角色

六、这个专题的计划

第一批(gPTP 基本原理):

  1. 本篇——地图:TSN、gPTP、PTP 的关系
  2. BMCA——gPTP 怎么选主时钟
  3. 对时数学——Sync 和 Delay 报文的交互,偏移和延迟是怎么算出来的
  4. correctionField 与驻留时间——交换机为什么会"偷走"时间,又怎么补回来

后面批次预告:Qbv 门控整形(确定性调度)、帧抢占(Qbu)、802.1CB 冗余。

七、结语

一句话总结这篇:TSN 让以太网有了确定性,而确定性建立在时间之上;gPTP 就是给全网发"表"的那个协议。 它不是可选项,是其余所有 TSN 机制的公共依赖。

你们项目里 TSN 落地到哪一步了?是已经在搞 AS2020/802.1AS 的对时,还是刚开始选芯片?评论区聊聊,下一篇讲 BMCA 时可以针对你们的拓扑展开。

TSNgPTP802.1AS车载以太网时间同步