返回学习路径

learn

同步报文怎么走:Sync、Follow_Up 与 Pdelay 的时间线

用一条简化时间线理解 gPTP 报文如何传播时间、记录硬件时间戳并估计相邻链路延迟。

第三章:共同时间核心机制IEEE 802.1ASgPTP18 分钟

本节学习目标

  • 知道 Sync、Follow_Up 和 Pdelay 在时间同步中各自解决什么问题。
  • 理解硬件时间戳为什么比软件收发时间更可信。
  • 能读懂简化的 gPTP 单跳时间线。

本章目录

  1. 01为什么 TSN 需要共同时间从调度窗口、跨设备测量和故障复盘三个场景理解共同时间为什么是 TSN 的坐标系。
  2. 02时钟模型:offset、drift 与为什么时间会跑偏先理解本地时钟不是完美尺子,再理解 gPTP 为什么要持续校正 offset、drift 和路径延迟。
  3. 03gPTP 的基本链路:grandmaster、同步与路径延迟用工程直觉理解 802.1AS 如何把一个主时钟传播到网络设备,并校正链路延迟。
  4. 04同步报文怎么走:Sync、Follow_Up 与 Pdelay 的时间线用一条简化时间线理解 gPTP 报文如何传播时间、记录硬件时间戳并估计相邻链路延迟。
  5. 05误差从哪里来:timestamp、链路不对称与同步间隔把 gPTP 误差拆成硬件时间戳、路径延迟估计、时钟漂移、同步间隔、设备执行和拓扑变化几类来源。
  6. 06时钟误差预算:调度窗口为什么要留余量把时钟漂移、同步间隔、路径延迟误差和设备执行误差转换成 Qbv 窗口设计中的安全余量。
  7. 07验证共同时间:从同步状态到调度证据把 gPTP 状态、抓包时间戳、设备日志和 Qbv 窗口命中放到同一套验证证据里。

解决什么问题

前面已经知道共同时间需要两个信息:参考时间和链路延迟。本节把它们放到报文时间线上。你不需要在这里记住所有字段,但要理解为什么 gPTP 不是一条“现在是几点”的广播消息。

一个同步报文从发送端进入网卡,到接收端离开网卡,中间会经历 PHY、MAC、交换芯片、驱动、操作系统等层次。对微秒级调度来说,软件层看到的时间通常太晚、太抖。gPTP 要尽量在靠近硬件的位置打时间戳,减少软件调度带来的不确定性。

Sync 与 Follow_Up

在两步时钟模式下,发送端先发 Sync。Sync 经过硬件发送点时,设备记录一个精确发送时间戳。由于这个精确时间戳往往只有帧真正发出时才知道,所以随后会用 Follow_Up 把这个精确发送时间告诉接收端。

接收端收到 Sync 时,也在硬件接收点记录接收时间戳。这样一来,它至少有两类时间:发送端说“我在某个参考时刻发出”,接收端说“我在本地某个时刻收到”。两者差值里包含链路延迟和本地时钟偏差。

Pdelay 在测什么

Pdelay 用来估计相邻两个 gPTP 节点之间的链路延迟。它不是测应用报文从 talker 到 listener 的端到端延迟,而是每一跳逐段估计相邻端口之间的传播/链路延迟。

简化理解时,可以把它看成一次问答:设备 A 发出 Pdelay 请求,设备 B 记录收到和回复的时间,设备 A 再记录回复到达时间。通过这些时间戳,A 可以估算 A-B 这条相邻链路的 delay。实际协议还会处理 correction、响应 follow-up 等细节,但学习阶段先抓住“相邻链路、硬件时间戳、用于同步校正”这三个点。

报文主要作用你要记住的直觉
Sync传播一个同步事件这是时间标记,不是完整答案
Follow_Up携带精确发送时间和修正信息让接收端知道 Sync 真正何时出端口
Pdelay_Req/Resp测相邻链路延迟帮助扣掉链路传播时间

时间线怎么读

可以用一个单跳例子建立直觉。上游设备在参考时间 T1 发出 Sync,下游设备在本地时间 T2 收到。随后 Follow_Up 告诉下游 T1 的精确值。与此同时,Pdelay 过程估计这条链路的 delay 约为 D。

下游设备要估计自己的 offset,本质上要回答:如果上游在 T1 发出,链路大约花了 D,那么我收到时对应的参考时间应接近 T1 + D。我的本地接收时间是 T2,所以本地时钟相对参考时间的偏差可以从 T2 与 T1 + D 的差里估算出来。

上游参考时间:   T1 -------- Sync -------->
下游本地时间:                    T2
链路延迟估计:          D
接收时参考时间约为: T1 + D
本地 offset 线索:  T2 - (T1 + D)

这个公式只是帮助理解方向,真实系统会叠加 correction field、bridge residence time、频率校正和滤波。但它足够说明一件事:路径延迟估计错误,会直接污染 offset 估计。

带来了什么新问题

同步报文时间线看似清楚,实际系统里有很多误差来源。硬件时间戳点是否一致,发送和接收路径是否对称,bridge 内部 residence time 是否稳定,Pdelay 响应是否被排队影响,都会进入最终时间误差。

这也是为什么“设备支持 gPTP”不是完整答案。工程上要进一步关心支持到什么精度、timestamp 在哪个层次、同步状态如何暴露、异常时如何告警。

检查点

  • 两步时钟里,为什么 Follow_Up 对精确时间同步很重要?
  • 如果 Pdelay 估计比真实链路延迟小,接收端用它校正本地时钟时会出现什么风险?

掌握检查

读完本节后,先用下面这些问题校准自己,而不是只确认“看过了”。

  1. 1能解释为什么两步时钟需要 Follow_Up 携带精确发送时间戳。
  2. 2能说明 Pdelay 不是测端到端延迟,而是测相邻 gPTP 节点之间的链路延迟。

gptp timeline

Sync 传播时间,Pdelay 解释时间在链路上花了多久。

共同时间不是一条广播消息,而是一组硬件时间戳和延迟估计拼起来的证据。

timequeuebound