张怀玉 韩建波
【摘 要】随着社会生产力的迅速提高和数字化技术应用的逐渐拓展,越来越多的领域需要使用精确的时间同步技术:如军事、导航、通信、工业过程控制、测量等各个领域。在通信领域,“同步”概念是指频率的同步,即网络各个节点的时钟频率和相位同步,其误差应符合相关标准的规定。鉴于此,本文主要分析基于IEEE1588网络时间同步系统的研究。
【关键词】IEEE1588;網络时间;同步系统
中图分类号:TP39文献标识码:A
1、概述
随着电子信息技术和互联网的迅猛发展,计算机对信息的处理和传送起着至关重要的作用。计算机的时钟精度很低,一天内就有几秒钟甚至几分钟的时间漂移,已经无法满足高准确度时间约束业务的要求,因此,如何在网络系统中实现高准确度时间同步是一个相当重要的问题。
目前传统的时钟同步协议如NTP(Network Time Protocol)和简单网络时间协议所达到的时钟精度一般只能达到毫秒级,同步精度较低,对于现阶段的一些对时钟精度要求高的场合并不适用,而IEEE1588协议提高了时钟同步精度,可以使时钟精度达到微秒级,解决了一些场合时钟精度不够的问题。
IEEE1588的全称是“网络测量和控制系统的精密时钟同步协议标准(IEEE1588 Precision Clock Synchronization Protocol)”,简称PTP(Precision Timing Protocol)。IEEE1588标准是通用的提升网络系统定时同步能力的规范,在起草过程中主要借鉴以太网来编制,使得分布式通信网络能够具有严格的定时同步,并应用在各种系统中。
2、IEEE1588网络时间同步协议的技术
2.1、IEEE1588协议规范
IEEE1588标准为网络测量和控制系统提供了精确时间同步协议即PTP协议,该协议应用于包括一个或多个节点的分布式系统中,这个系统在一系列的通信媒介上进行通信。每个节点包含一个实时时钟模型,该实时时钟可用于节点内不同的应用目的:比如为数据报产生时间戳,通过节点管理的事件进行排序等。PTP协议为分布式网络中实现多个节点之间的高精度同步提供了一种机制。
2.2、最佳主时钟算法
最佳主时钟算法BMC(Best Master Clock Algorithm)指明了一种方法,该方法使得本地时钟能够决定与它相连的所有时钟(包括其自身)中,哪一个时钟是最好的。该算法独立于系统中的每个PTP端口,即不管端口处于主状态还是从状态,只是根据BMC算法计算出自己的状态。在端口选择出比较好的时钟之后,又将这些较好的时钟进行比较,最后确定出一个最好的时钟,指定它作为系统中的最佳主时钟。
2.3、PTP时钟端口状态管理
(1)PTP协议引擎状态机
在PTP系统中,任何时刻,普通时钟的PTP时钟端口或边界时钟的任意一个PTP时钟端口,都必处于描述的9种状态之一。在时钟节点的初始状态下,PTP网络中各个节点的状态保持的是系统默认状态或者上一次系统关闭时的状态,所以,在初始化状态下确立的主时钟是PTP系统默认的主时钟或者系统上一次运行关闭时确立的主时钟。但是,在系统的实际运行过程中,由于网络中时钟节点数目和网络拓扑结构发生改变,以及网络中各PTP时钟自身的状态变化等多种状况,使得网络拓扑结构经常发生变化,必然导致网络中各PTP时钟节点的状态和最佳主时钟发生变化。因此,在PTP时钟节点间进行时钟同步的过程中,PTP时钟的状态也必然随之不断变化。
(2)触发PTP时钟状态转换的事件
由特定的事件触发导致图1中所有状态之间进行转换。所有的触发事件可归纳为以下9种。
图1PTP协议引擎状态机
1)POWERUP:事件必须由设备上电或复位机制触发。2)INITIALIZE:事件必须由接收到的INITIALIZE管理报文触发,也等价于报文的initialization Key域值被设定。3)DESIGNATED_ENABLED:事件必须由接收到的ENABLE_PORT管理报文触发。4)DESIGNATED_DISABLED:事件必须由接收到的DISABLED_PORT管理报文触发。5)FAULTY_CLEARED:事件必须由清除端口故障操作触发,或由组织端口校正操作触发。6)FAULTY_DETECTED:事件必须由内部状态阻止端口校正的操作触发。7)STATE_DECISION_EVEN:用接收到的Announce报文的数据决定哪一个是最佳主时钟的事件,并决定本地时钟的端口状态是否需要改变。每个PTP时钟节点都会按照相应的逻辑关系发生STATE_DECISION_EVEN事件。8)Recommended state:推荐状态是最佳主时钟算法的结果,并由STATE_DECISION_EVEN事件触发。
3、IEEE1588协议的改进方法
3.1、路径不对称性
这个时钟同步机制顺利进行的前提是路径一定要是对称的,即报文在主时钟节点到从时钟节点传输时和从时钟节点到主时钟节点传输的延迟是相同的(上文用Delay代替两个方向的延迟),分别如下式:
sm_Delay=t2-t1-Offset(1)
sm_Delay=t4-t3+Offset(2)
假设在理想的情况下,也就是当ms_Delay=sm_Delay的时候,上节的同步机制才能保证精确,但是在实际系统中,由于一些网络上有较大负载,负载越大,两种传输方向上的延迟Delay可能会越来越大,如果不加以改进,那么时钟精度就会越来越低,严重影响设备的使用。所以要尽可能解决路径不对称的问题,以维持整个网络和时钟同步精度的稳定。
3.2、时间戳
只有获得准确的时间戳信息,IEEE1588协议才能最大程度的发挥其时间同步精度的优势。上文所提到的NTP和PTP实现时间同步的方法是类似的,但是NTP的时间同步精度低于PTP的时间同步精度,这是因为NTP和PTP时间戳的生成位置不同。
3.3、透明时钟的引入
当时钟节点较多时,容易产生时间误差的积累,故引入透明时钟概念,透明时钟分为端对端透明时钟和点对点透明时钟。两种时钟都可以将延时的时间加到时间修正域里,以达到减小时间误差的目的。
总之,随着分布式系统的广泛应用,系统对高精度时间同步的要求越来越高,在测控、通信等领域中已经对时间同步提出了微秒级的要求。而现行的网络时间同步方式NTP/SNTP 等很难满足以上领域的要求。因此,本文的研究也就显得十分的有意义。
(作者单位:国电南瑞科技股份有限公司)