IEEE 1588 时钟类型介绍

如果您不是很熟悉IEEE 1588,你可能会对看到的时钟类型感到困惑,如下:

  • ordinary clock/普通时钟
  • master clock/主时钟
  • slave clock/从时钟
  • slave only clock/仅从时钟
  • grandmaster clock/Grandmaster时钟
  • preferred grandmaster/首选Grandmaster
  • server/服务器
  • client/客户端
  • transparent clock/透明时钟
  • boundary clock/边界时钟

PTP真的那么复杂吗? 当然,这看起来有很多设备类型,但我们可以很快理清这个问题。

让我们从一个普通时钟(ordinary clock)开始。 这是网络上的一个终端设备(相对于交换机或路由器而言)。 它有三种类型:

  1. 仅从时钟(slave only clock)。 这个很好解释,它总是作为一个从属的,从一个主时钟接收时间。
  2. 首选Grandmaster(preferred grandmaster)。 这是一个只作为主钟的设备,从不作为从钟。 通常,这样的设备被简单地称为 “Grandmaster”。 一般来说,Grandmaster有一个很好的振荡器和获得标准时间的能力,例如从GPS/北斗接收器中获得。 这里要注意:因为IEEE 1588标准认为grandmaster是具有grandmaster能力的设备的一种状态,即它在PTP网络中作为时间源时的状态。
  3. 主时钟(Master clock)或从时钟(slave clock)。 这种普通时钟既可以作为主时钟,也可以作为从时钟。 通常情况下,它作为从钟,除非网络中没有更好的主钟,在这种情况下,它就会接管这一功能,成为主钟。

有些人不喜欢使用主(master)和从(slave)这些术语(涉及到的问题就不多说了), 因此,他们更喜欢使用服务器(server)和客户端(client)这些术语。 然而,在传统的信息技术中,客户通过向服务器索取信息来启动信息的传输。比如网络浏览器(客户端)和网络服务器。 相比之下,从机就比较被动,等待主机启动传输。所以主和从的定义上还是有区别与服务器和客户端。

我们仍然有两种时钟需要定义,从某些方面来说,它们是最有趣的。 正如我在之前的文章中提到的,当使用硬件时间戳时,PTP实现了准确性。 这使我们能够规避队列中不可预测的延迟。但通常最糟糕的队列噪声往往是在交换机和路由器中。因此,IEEE 1588-2008定义了两种类型的交换机(或路由器),专门处理自己的队列。一种设备被称为透明时钟(transparent clock)。 每当有同步信息到达或离开透明时钟时,这种类型就会执行硬件时间戳。 如下图所示的透明时钟框图。 一个同步信息进入设备,生成一个硬件时间戳,然后进入核心交换元件,通过不同的网络端口离开。 在核心交换元件中,它可能需要在队列中等待,因为它需要离开的端口可能是繁忙的。 离开和到达的时间戳被用来更新follow_up消息中的修正字段。 这就是两步透明时钟的工作方式。 如果透明时钟是一个单步时钟,它就会实时更新同步消息,其中也有一个校正字段( 更多关于单步时钟的内容将在以后的文章中介绍)。 还要注意的是,在使用对等延迟方案的网络中,入口电缆的延迟也被添加到校正中。 在使用端到端方案的网络中,类似的修正会被加到delay_response消息中,以纠正delay_request消息的排队情况。

透明时钟框图显示了follow_up信息如何纠正同步信息所经历的排队延迟的流程。

边界时钟有另一种方式来消除其自身队列的影响。 边界时钟有一个处于从状态的端口,从主时钟获取时间。 所有其他的端口都处于主状态,向下游的从机传播时间。 因此,它不是跟踪同步信息和更新校正字段,而是在从端口接收同步信息,使用该端口设置其时钟,并从该时钟的所有主端口生成新的同步信息。 请注意,主端口,是主时钟,但不是Grandmaster,因为它们只是从上游的主时钟或边界时钟重新计时。 请看下面的图。

边界时钟框图,显示了如何在从端口接收同步信息并为主端口生成新的信息