2. 时间与频率基础

在讨论PTP和NTP之前,必须先厘清一个容易被忽略的事实:“时间同步”和“频率同步”不是同一件事。频率同步只要求两个时钟的“秒长”一致,即走时速率相同;时间同步则进一步要求两个时钟对“此刻是几点几分几秒”的读数也一致。一个时钟可以频率极其准确,却因为初始时刻设错而永远差着几秒;也可以被强行对齐到某个时刻,但速率不准,很快又漂走。理解这一点,是理解后面所有同步机制的基础。

一、几种“时间”不是同一个东西

工程中常被混用的几个时间尺度,其实各有定义:

  • TAI(国际原子时):由全球数百台原子钟加权平均得到的连续时间尺度,秒长严格由铯原子跃迁频率定义,不插入闰秒,连续单调。它是目前最稳定的“秒长”基准。
  • UTC(协调世界时):以TAI的秒长为基准,但通过闰秒调整,使其与地球自转(UT1)的偏差保持在0.9秒以内。UTC = TAI − 整数秒偏移。截至2024年,该偏移为37秒,即 UTC = TAI − 37 s。
  • GPS时间(GPST):由GPS系统内部维持的时间尺度,起点为1980-01-06 00:00:00 UTC。它不插入闰秒,因此与TAI保持固定偏移:GPST = TAI − 19 s。由于UTC不断加闰秒,GPST与UTC的差值会随闰秒累积而变化。
  • 本地时钟:设备上实际运行的晶振或原子钟读数,通常以UTC为参考目标,但存在初始偏差和持续漂移。

下面这张图把四者的关系、固定偏移和闰秒带来的“台阶”直观地画出来,注意UTC那条线上的跳变就是闰秒。

TAI / UTC / GPS时间 / 本地时钟 关系示意 TAI(连续,无闰秒) 秒长最稳定 GPS时间 GPST(连续,无闰秒) GPST = TAI − 19 s UTC(含闰秒,与UT1偏差≤0.9 s) UTC = TAI − 37 s 闰秒 +1 闰秒 +1 闰秒 +1 本地时钟(有初始偏差 + 持续漂移) 需被同步到UTC −19 s −37 s

二、闰秒:为什么UTC会“跳一下”

地球自转并不均匀,长期趋势是逐渐变慢。如果UTC完全按原子秒走,若干年后“正午”就不再是太阳最高的时刻。为兼顾原子时的稳定和地球自转的直观,国际机构会在必要时给UTC插入一个闰秒(正闰秒,23:59:60),使UTC与UT1的差保持在0.9秒内。历史上闰秒大多在6月30日或12月31日的最后一秒插入。

闰秒对同步系统是麻烦制造者:

  • NTP通常通过“跳秒”或“抹除(smear)”方式处理,不同实现策略不一致,跨系统时可能产生1秒误差。
  • PTP的TAI域不理会闰秒,时间连续;而UTC域需要正确处理闰秒标志(leap61/leap59、currentUtcOffset)。
  • 依赖UTC时间戳做差值计算的系统,在闰秒瞬间可能出现负值或重复值。
工程建议:对时间连续性要求高的系统(如金融撮合、日志排序),优先使用TAI或GPS时间做内部计时,仅在对外展示时转换为UTC。

三、频率偏差、相位偏差与漂移率

描述一个本地时钟与参考时钟的差异,有三个核心参数:

参数含义典型量级(示例)
相位偏差(offset)某一时刻两时钟读数之差,单位秒/纳秒未同步时可达数秒;同步后 <1 µs
频率偏差(frequency offset)两时钟走时速率的相对差,无量纲,常用ppm/ppb普通晶振 ±20 ppm;TCXO ±1 ppm;OCXO ±0.01 ppm
漂移率(drift rate)频率偏差随时间的变化速率,反映老化与温度影响晶振约 0.1~1 ppb/天

三者关系可以用一个简单模型表达:设参考时间为 t,本地时钟读数 L(t),则

L(t) = t + offset₀ + (f_offset × t) + ½ × drift × t²

其中:
  offset₀   —— 初始相位偏差(秒)
  f_offset  —— 频率偏差(无量纲,如 20 ppm = 20×10⁻⁶)
  drift     —— 漂移率(1/s²)

举例:某设备晶振频率偏差为 +20 ppm,初始已对齐。运行1小时后,仅频率偏差造成的相位误差为:

误差 = 20×10⁻⁶ × 3600 s = 0.072 s = 72 ms

也就是说,频率偏差会随时间线性累积成相位偏差。这正是为什么同步系统必须周期性校正:NTP靠频繁报文交换不断修正,PTP靠硬件时间戳把校正精度推到亚微秒级。

四、时间同步与频率同步的区别与联系

把两者放在一起看:

  • 频率同步:只锁定“速率”,允许存在固定相位差。典型如SDH/SONET的时钟同步、SyncE。
  • 时间同步:同时锁定“速率”和“相位(时刻)”。典型如PTP、NTP、GPS授时。
  • 联系:时间同步必然包含频率同步;频率同步是时间同步的必要条件。若频率不同步,相位差会持续增大,任何一次校正都只能短暂有效。
判断一个系统是否真正“时间同步”,不能只看它是否收到时间报文,而要看它的相位偏差是否被持续约束在指标内。频率同步只是让偏差不无限增长,时间同步才让偏差趋近于零。

五、工程中的实际判断

在实际运维中,可以用以下方式快速区分问题类型:

  1. 若设备时间与参考的差值基本恒定,说明频率已同步,只是相位没对齐——属于时间同步未完成。
  2. 若差值随时间线性增大,说明频率不同步,相位校正只是治标。
  3. 若差值忽大忽小、无规律,可能是网络抖动、时间戳精度不足或闰秒处理异常。

理解UTC、TAI、GPS时间与本地时钟的层次关系,理解相位偏差、频率偏差、漂移率三者的数学联系,是后续学习PTP报文交互、NTP算法和时钟伺服环路的前提。只有先分清“同步什么”,才能选对“用什么同步”。