为了说明PTP时间同步原理,下图显示了将从时钟与主时钟同步所采取的相应运行步骤。在此示例中,从时钟开始时与 主时钟的偏移量(差异)为20秒(IE主时钟为100秒,从时钟为80秒)。请注意,此示例中使用的时间值并不代表实际的网络性能,而是用于简化说明PTP时间同步的具体原理。
PTP时间同步的具体原理
主机在100s处构造一条Sync消息发送给从机。但是,由于内部排队和延迟,消息实际上是在本地主时间101秒时在内部发送和时间戳的。由于网络中的延迟,从机在两秒后的83秒收到同步消息。
在103秒后不久,主设备会发送一条后续消息。此后续消息包含消息中先前的时间戳值101s。两秒后,在本地从属时间85秒收到此后续消息。然后,从站将消息中的101秒时间减去之前的时间戳值83秒,从而计算出 18秒的偏移量。然后将偏移量添加到当前时间,从而产生 103 秒的新时钟时间。但是,主从还没有完全同步,这种新的调整并没有考虑到网络的延迟。
二阶段决定了网络延迟。从机在108s向主机发送延迟请求消息。主机在本地主机时间 112 秒接收并存储此消息。延迟回复消息在收到延迟请求消息的时间(112 秒)内发送回从站。从机在本地从机时间 115 秒收到延迟回复。从机现在可以通过从主机收到延迟请求(112s)的时间减去它发送延迟请求的时间(108s)来确定网络延迟,得到 4 秒的值。但是,因为发送了两条消息,所以结果除以 2,两秒延迟。然后从机将其时钟调整2秒(117 秒),现在与主机完全同步。
各种设备的内部实时时钟不可避免地会随着时间而漂移。为了弥补这一点,主时钟将定期对从属时钟执行轮询序列,以保持它们与主时钟的准确性。
在主时钟和从属时钟之间使用开关时,开关中发生的运行时间变化会导致主时钟和从属时钟之间发送的消息不准确。鉴于交换机完全保存接收到的数据包,而队列效应在某些情况下会大大延迟传输,这里可能会出现很大的波动。在网络负载较低时,这可能影响不大,但在网络负载较大时,这会显着影响同步精度。
这可以通过使用具有IEEE 1588 PTP边界时钟功能的以太网交换机来解决。它们包含它们自己的 PTP 实例,它们在其中作为 PTP 从设备运行,并与连接的主时钟同步。对于下游的 PTP 从站,每个交换机端口都作为 PTP主站运行,并将从站与其内部时间同步。这补偿了交换机中的所有运行时间波动和等待时间,即使通过更大的以太网网络也能实现更大精度。