【时间同步】单步时钟还是双步时钟?

IEEE 1588的单步或双步时钟? 这个问题经常出现。 如果你正在设计支持PTP的设备,那么这是一个问题,它对你的设备的结构有重要影响。 但是,如果你购买的是支持PTP的设备,并将它们集成到网络中,那就完全不重要了。 此外,对于网络架构师来说,如果你在同一个网络中混合使用单步和双步设备也无关紧要。下面介绍单步和双步设备的区别,以及IEEE 1588标准对设备的要求,这样对上面陈述的理解会更清晰。

单步和双步时钟工作原理的简短版本是这样的:对于任何PTP事件消息,即有时间戳的消息,当它即将离开设备时,要么在消息中得到一个准确的时间戳(单步),要么第二个消息携带准确的时间戳(双步)。 在延迟请求的情况下,无论如何都需要第二个消息,因为时间戳必须从一个设备发送到另一个设备,但同步消息和对等延迟响应消息可以是单步或双步的。 考虑到下面的消息序列图,描述了单步的E2E操作。

在E2E单步操作中,将时间从主站转移到从站的信息序列

请注意,这比前面的文章:为什么1588如此准确?中描述的要简单。其中描述了双步操作。不需要后续消息,同步在离开时加载了准确的时间戳。在对等延迟消息交换中也可以看到类似的制度。

对等延迟测量的信息序列

再次注意,这比双步对等延迟机制更简单。 不需要对等延迟响应的后续信息。

在透明时钟的情况下,单步或双步的PTP之间的差异是很大的。 下图显示了一个通过透明时钟的同步信息。

在同步信息上运行的透明时钟方框图

透明时钟必须在离开交换机核心之后截取同步消息,并基于它在透明时钟中的队列中停留多长时间来更新校正字段。将此与“什么是所有这些IEEE 1588时钟类型?”中所示的双步透明时钟的类似图表进行对比。在双步版本中,透明时钟不需要在运行中更新同步消息,但它需要记住它有多长时间的同步消息,并更新相应的后续消息。因此,如果你正在设计一个透明的时钟,你必须问问自己,我是想在硬件上花很多功夫,还是在软件上下功夫。单步时钟需要能够即时更新校正场的硬件。双步时钟要求软件记住同步消息的驻留时间,并将其与相应的后续消息进行匹配。

前面开篇提到,如果不是制造设备,而只是购买它们,那么这并不重要。 但是,你难道不需要确保从主站到从站的链条上的所有设备都使用相同的步数吗?答案是否定的,因为IEEE 1588-2008要求所有从设备都要使用这两种标准中的任何一种。这是个很容易制定的规则,因为难只难在发送单步信息,而不是接收它们。 那么,有一个双步的主站和一个单步的透明时钟的情况呢? 也没有问题。 透明时钟将更新同步信息中的修正字段,并将后续信息不加改动地传递给它。 从机将把两个消息中的修正字段相加,正如标准所要求的那样。 有一个单步主站和一个双步透明时钟的情况如何呢? 仍然没有问题,但透明时钟的工作要多一点,因为它必须将同步步骤标志设置为双步,并生成后续信息。

单步难道不是因为它使用更少的网络带宽而更受欢迎吗? 我们来做个小算术。 对于UDP/IPv4/Ethernet映射来说,一个后续信息是98字节。 这就是784比特。 在每秒一次的速率下,这使用了不到千兆位链接的0.0001%。 即使一秒钟有100条跟进信息,带宽的使用也是微不足道的。 即使它只是一条10-BaseT的链路! 在实际应用中,假设PTP使用的带宽大约为零,无论它是单步还是双步。