learn
时钟模型:offset、drift 与为什么时间会跑偏
先理解本地时钟不是完美尺子,再理解 gPTP 为什么要持续校正 offset、drift 和路径延迟。
本节学习目标
- 区分 offset、drift、phase error 和 frequency error。
- 理解为什么一次校时不能长期保证共同时间。
- 能把时钟漂移和同步间隔联系到最大偏差风险。
建议先读
核心概念
本章目录
- 01为什么 TSN 需要共同时间从调度窗口、跨设备测量和故障复盘三个场景理解共同时间为什么是 TSN 的坐标系。
- 02时钟模型:offset、drift 与为什么时间会跑偏先理解本地时钟不是完美尺子,再理解 gPTP 为什么要持续校正 offset、drift 和路径延迟。
- 03gPTP 的基本链路:grandmaster、同步与路径延迟用工程直觉理解 802.1AS 如何把一个主时钟传播到网络设备,并校正链路延迟。
- 04同步报文怎么走:Sync、Follow_Up 与 Pdelay 的时间线用一条简化时间线理解 gPTP 报文如何传播时间、记录硬件时间戳并估计相邻链路延迟。
- 05误差从哪里来:timestamp、链路不对称与同步间隔把 gPTP 误差拆成硬件时间戳、路径延迟估计、时钟漂移、同步间隔、设备执行和拓扑变化几类来源。
- 06时钟误差预算:调度窗口为什么要留余量把时钟漂移、同步间隔、路径延迟误差和设备执行误差转换成 Qbv 窗口设计中的安全余量。
- 07验证共同时间:从同步状态到调度证据把 gPTP 状态、抓包时间戳、设备日志和 Qbv 窗口命中放到同一套验证证据里。
解决什么问题
学习 gPTP 之前,必须先接受一个事实:每台设备的本地时钟都不是完美尺子。它可能一开始就和参考时间有差距,也可能走得稍快或稍慢。TSN 调度使用的是微秒甚至更细的时间尺度,这些小偏差会直接影响窗口边界。
如果只说“设备时间不同步”,这个说法太粗。工程上至少要区分两类问题:当前差了多少,以及未来会以什么速度继续差下去。前者通常对应 offset,后者对应 drift 或 frequency error。
四个容易混淆的词
offset 是某个时刻本地时钟和参考时钟之间的差值。比如 grandmaster 认为现在是 1000us,交换机本地时钟认为是 1012us,那么这个时刻的 offset 可以理解为 12us。
phase error 也描述时间位置的偏差,经常和 offset 放在一起理解。你可以把它想成两条周期性刻度线没有对齐:刻度频率可能相同,但当前刻度位置不同。
frequency error 描述本地时钟走得快还是慢。drift 则常用来描述这种频率偏差随时间造成的累计偏离。一个时钟现在 offset 很小,但如果它走得比参考快,过一段时间后 offset 会重新变大。
| 概念 | 直觉 | 对 TSN 的影响 |
|---|---|---|
| offset | 现在差了多少 | 直接让窗口边界错位 |
| phase error | 当前刻度位置没对齐 | 影响某个时刻事件的共同解释 |
| frequency error | 走得快还是慢 | 决定两次同步之间误差增长速度 |
| drift | 随时间累计跑偏 | 同步间隔越长,风险越明显 |
为什么一次校准不够
假设一台交换机刚刚被校正到 offset 接近 0。只要它的本地 oscillator 和参考源存在频率差,两次同步之间 offset 就会重新增长。同步间隔越长,漂移积累越多;时钟硬件越差,单位时间内可能积累的误差越大。
一个粗略估算可以帮助建立量级感。ppm 表示百万分之一的频率偏差。40ppm 大约意味着每秒可能偏 40us。如果同步间隔是 125ms,那么这段间隔内可能积累的漂移量级约为:
40us/s * 0.125s = 5us这不是完整误差预算,只是说明漂移和同步间隔如何进入风险判断。真实系统还要加上路径延迟测量误差、timestamp 精度、设备校正算法和执行 gate 的误差。
怎么解决
gPTP 不只是周期性告诉设备“现在几点”。它要持续传播参考时间,测量相邻链路延迟,并让设备用这些信息修正本地时钟。修正可以理解成两件事:把当前 offset 拉回来,以及让本地时钟的走速更接近参考时间源。
学习阶段不需要掌握伺服算法细节,但要知道同步不是一次性动作,而是持续控制过程。你后面看到 Sync interval、clock quality、time-aware system、timestamping accuracy 时,要把它们放回这个模型里:它们都在影响 offset 如何被估计、drift 如何被控制、误差如何被限制。
带来了什么新问题
时钟模型让你能问更精确的问题,但也暴露了更多工程成本。设备需要足够好的 oscillator,需要硬件 timestamp 支持,需要合适的同步间隔,也需要在 grandmaster 暂时不可用时维持可接受的 holdover 行为。
更重要的是,时钟误差不是孤立存在的。它会和 Qbv 的窗口宽度、guard band、路径延迟、设备执行误差叠加。后面做误差预算时,不要把“同步误差”当成一个凭空填写的数字,而要追问它来自哪种时钟模型、哪种测量和哪种设备能力。
检查点
- 一个设备刚同步完 offset 只有 1us,但 oscillator 漂移很大。为什么短时间后仍可能影响 Qbv 窗口?
- 如果同步间隔从 125ms 拉长到 1s,在相同 ppm 漂移下,漂移风险会如何变化?
掌握检查
读完本节后,先用下面这些问题校准自己,而不是只确认“看过了”。
- 1能解释 offset 大但 drift 小、offset 小但 drift 大分别意味着什么。
- 2给定 40ppm 漂移和 125ms 同步间隔,能估算同步间隔内可能积累几微秒级误差。