一种时间同步的方法和时钟设备的制作方法

文档序号:7742767阅读:220来源:国知局
专利名称:一种时间同步的方法和时钟设备的制作方法
技术领域
本发明涉及网络通信技术领域,特别涉及一种时间同步的方法和时钟设备。
背景技术
IEEE1588协议是以太网中一种较为精确的时钟同步解决方案,其基本功能是使分布式网络内的其它时钟与最精确时钟保持同步。IEEE1588协议中定义了一种精确时间协议(PTP,Precision Time ftOtocol),用于对标准以太网或其它采用多播技术的分布式总线系统中的网络节点的时钟进行精确同步,其精度可以达到纳秒级。在网络中通常会为各时钟设备设置时钟优先级,各时钟设备通过在网络中发送携带自身时钟优先级的通告(Armoimce)报文来选举出时钟优先级最高的时钟设备,该时钟优先级最高的时钟设备通常称为源时钟(GM),并进行端口角色的计算从而形成同步生成树。然后GM设备沿同步生成树周期性地发送携带时钟信息的PTP同步报文,非GM设备按照接收到的PTP同步报文中携带的时钟信息对本地的时钟进行修正,将并继续转发携带修正后时钟信息的PTP同步报文,以便后续非GM设备能够按照修正后时钟信息进行本地时钟修正。时钟同步有时是与避免网络成环的协议并存的,例如快速生成树协议(RSTP)、快速环网保护协议(RRPP)、灵活链路技术(SMLK)等。在这些协议的运行中,会将网络节点的某些端口进行阻塞。这些阻塞的端口不仅对数据报文进行丢弃,在PTP协议中对PTP同步报文也会进行丢弃,这常常会造成非GM节点接收到的PTP同步报文并不是从最优链路接收到的。如图1所示,网络节点C1、C2、C3和C4构成的组网中,由于运行了 RSTP协议,阻塞了 C3上的端口 Pl、C4上的端口 P2,RSTP的根节点为Cl。但是,通常PTP形成的同步生成树与RSTP形成的生成树并不重合,即根节点并不相同,假设PTP形成的同步生成树的根节点即GM为C2,那么其时间同步的路径为图1中箭头所示。对于C3来说,时间同步路径为 C2到Cl,再从Cl到C3,需要经过两次时间修正,对于更优的路径C2到C3由于阻塞端口 Pl 的限制则不能使用。由于随着时间同步路径上节点跳数的增加,误差会进行累积,精度也会随之降低,现有技术中的时钟同步方式显然并不能获得最后的精度。

发明内容
有鉴于此,本发明提供了一种时间同步的方法和装置,以便于提高时间同步的精度。一种时间同步的方法,时钟设备通过slave端口或阻塞端口接收到PTP同步报文后,执行以下步骤A、从所述PTP同步报文中获取距离PTP同步生成树根节点的跳数;B、将步骤A获取的跳数与本地记录的跳数进行比较,如果获取的跳数小于或等于记录的跳数,执行步骤C ;否则执行步骤E ;
C、确定所述slave端口或阻塞端口对应的路径为当前最优路径,利用所述PTP同步报文中携带的时钟信息对本地时钟进行修正,如果所述获取的跳数小于记录的跳数,进一步利用步骤A获取的跳数更新本地记录的跳数;D、如果所述PTP同步报文是通过slave端口接收到的,且所述时钟设备存在 master端口,则利用当前的本地时钟信息对所述PTP同步报文中携带的时钟信息进行修正,并更新PTP同步报文中携带的距离PTP同步生成树节点的跳数后,通过master端口转发该PTP同步报文,结束流程;否则丢弃所述PTP同步报文,结束流程;E、如果所述PTP同步报文是通过slave端口接收到的,且所述时钟设备存在主 master端口,则利用当前的本地时钟信息对所述PTP报文中携带的时钟信息进行修正并更新PTP同步报文中携带的距离PTP同步生成树节点的跳数后,通过master端口转发该PTP 同步报文;否则丢弃所述PTP同步报文。一种时钟设备,该时钟设备包括报文收发单元和跳数获取单元、路径比较单元、 第一修正单元和第二修正单元;所述报文收发单元,用于通过slave端口或阻塞端口接收到PTP同步报文后,将该 PTP同步报文提供给所述跳数获取单元;通过master端口转发所述第一修正单元或者第二修正单元提供的PTP同步报文;所述跳数获取单元,用于从所述PTP同步报文中获取所述时钟设备距离PTP同步生成树根节点的跳数;所述路径比较单元,用于将所述跳数获取单元获取的跳数与本地记录的跳数进行比较,如果获取的跳数小于或等于记录的跳数,则确定所述slave端口或阻塞端口对应的路径为当前最优路径,向所述第一修正单元发送修正通知;否则向所述第二修正单元发送修正通知;所述第一修正单元,用于接收到修正通知后,利用所述PTP同步报文中携带的时钟信息对本地时钟进行修正,如果所述获取的跳数小于记录的跳数,进一步利用所述获取的跳数更新本地记录的跳数;如果所述PTP同步报文是通过slave端口接收到的,且所述时钟设备存在master端口,则利用当前的本地时钟信息对所述PTP报文中携带的时钟信息进行修正,并更新PTP同步报文中携带的距离PTP同步生成树节点的跳数后,将该PTP报文提供给所述报文收发单元;否则丢弃PTP同步报文;所述第二修正单元,用于接收到修正通知后,如果所述PTP同步报文是通过slave 端口接收到的,且所述时钟设备存在master端口,则利用当前的本地时钟信息对所述PTP 报文中携带的时钟信息进行修正,更新PTP同步报文中携带的距离PTP同步生成树节点的跳数后,将该PTP报文提供给所述报文收发单元;否则丢弃PTP同步报文。由以上技术方案可以看出,本发明取消了阻塞端口对于PTP同步报文的限制,根据从最优路径传输来的PTP同步报文对本地时钟进行修正,并在PTP同步报文是通过slave 端口接收到的且该时钟设备存在master端口时,对PTP报文中携带的时钟信息进行修正后,通过master端口转发该PTP同步报文以便后续时钟设备能够进行精确时间同步。本发明中对本地时钟进行的修正是根据跳数信息确定的最优路径传输来的PTP同步报文,由于途径的跳数最小,其所带来的误差累积也最小,从而提高了时间同步的精度。


图1为RSTP与PTP共存的组网示意图;图2为本发明提供的主要方法流程图;图3为PTP同步生成树的形成方法流程图;图4为图1所示组网所形成的PTP同步生成树示意图;图5为端延迟机制的偏差计算过程示意图;图6为请求应答机制的偏差计算过程示意图;图7为本发明提供的时钟设备的结构示意图。
具体实施例方式为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。在现有技术中,时钟设备对于通过阻塞端口接收到的PTP同步报文直接做丢弃处理,本发明的核心思想是使阻塞端口不再对PTP同步报文进行限制,时钟设备对于通过阻塞端口接收到的PTP同步报文也参与本地的时钟修正。本发明提供的主要方法可以如图2 所示,主要包括以下步骤步骤201 时钟设备通过从(slave)端口或阻塞端口接收到PTP同步报文后,从该 PTP同步报文中获取距离PTP同步生成树根节点的跳数。在PTP同步报文中存在一个字段M^sRemoved,该字段记录了从PTP同步生成树根节点到当前时钟设备的跳数,每个时钟设备都对该字段进行维护,在根节点时,该字段指示为0跳,每经过一段通信链路都将该字段指示的跳数加1,其中该通信链路不包括普通时钟(OC)或边界时钟(BC)与透明时钟(TC)之间的链路,也就是说,St印SRemoved字段在PTP 同步报文每经过一个OC或BC时,将指示的跳数加1,经过TC则不改变M^sRemoved字段指示的跳数。在PTP协议中,阻塞端口不能被计算为slave端口,在现有技术中,该阻塞端口限制PTP报文的传输,而在本发明中,取消了阻塞端口对PTP报文的限制。步骤202 将步骤201获取的跳数与本地记录的跳数进行比较,如果获取的跳数小于或等于记录的跳数,执行步骤203 ;如果获取的跳数大于记录的跳数,则执行步骤205。步骤203 利用接收到的PTP同步报文中携带的时钟信息对本地时钟进行修正,如果获取的跳数小于记录的跳数,进一步利用步骤201获取的跳数更新本地记录的跳数。接收到的PTP同步报文的跳数比本地记录的跳数小,说明接收到PTP同步报文的路径较优,作为当前最优路径,利用该PTP同步报文对本地时钟进行修正,具体修正方式将在后续实施例中进行描述。步骤204 如果上述PTP同步报文是通过slave端口接收到的,且时钟设备存在 master端口,则利用当前的本地时钟信息对PTP同步报文中携带的时钟信息进行修正,并更新PTP同步报文中携带的距离PTP同步生成树节点的跳数后,通过master端口转发该 PTP同步报文,否则丢弃该PTP同步报文;结束流程。步骤205 如果上述PTP同步报文是通过slave端口接收到的,且时钟设备存在 master端口,则利用当前的本地时钟信息对PTP同步报文中携带的时钟信息进行修正,并更新PTP同步报文中携带的距离PTP同步生成树节点的跳数后,通过master端口转发该 PTP同步报文,否则丢弃该PTP同步报文。如果接收到的PTP同步报文的跳数比本地记录的跳数大,说明接收到PTP同步报文的路径并不是最优的,则在时钟设备存在master端口的情况下,利用本地记录的跳数和时钟信息对PTP同步报文中携带的跳数和时钟信息进行修正。对于上述步骤203或步骤205,无论接收PTP同步报文的路径是否为最优,对于通过阻塞端口接收到的PTP同步报文不做进一步转发;对于通过slave端口接收到的PTP同步报文在存在master端口的情况下做进一步转发,否则丢弃所述PTP同步报文。另外,在做进一步转发之前,需要步骤204或步骤205对PTP同步报文中携带的时钟信息做修正以便于下一跳时钟设备的精确时间同步,具体修正方法在后续实施例中做具体描述。为了方便对本发明的理解,首先对PTP同步生成树的形成进行简单描述。通常在进行组网时,会为各时钟设备设置时钟优先级,各时钟设备中时钟优先级可以与其它参数一起构成优先级矢量,利用该优先级矢量进行GM的选举。具体为各时钟设备通过在网络中发送携带自身优先级矢量的通告报文来选举出优先级矢量最高的时钟设备,即GM,作为 PTP同步生成树的根节点,并进行端口设置从而形成同步生成树。各时钟设备接收到通告报文所执行的操作如图3所示,主要包括以下步骤步骤301 初始状况下各时钟设备记录自身的优先级矢量,并初始记录本地为GM。步骤302 通过非阻塞端口接收到通告报文后,将该通告报文中携带的优先级矢量与本地记录的优先级矢量进行比较,如果通告报文中携带的优先级矢量高,则执行步骤 303 ;如果本地记录的优先级矢量高,则执行步骤304。如果通过阻塞端口接收到通告报文,则直接做丢弃处理。在时钟设备接收到通告报文后,还可能会对通告报文的合法性进行校验,确定合法后,才进行上述时钟优先级的比较操作;如果不合法,则直接丢弃。步骤303 更新本地的记录为非GM,如果已经存在slave端口,则将已经存在的 slave端口设置为master端口 ;将收到通告报文的端口设置为slave端口,利用通告报文中携带的优先级矢量更新本地记录的优先级矢量,并继续转发该通告报文。待再次接收到通告报文后转至步骤302。步骤304 丢弃该通告报文;待再次接收到通告报文后,转至步骤302。经过上述过程后,如果最终本地记录仍为GM的时钟设备,即为优先级矢量最高的设备,成为最终被选举出的GM,其它时钟设备的本地记录为非GM。图1所示组网中的时钟设备最终形成如图4所示的PTP同步生成树,在该PTP同步生成树中,时钟设备通过slave 端口从其它时钟设备接收PTP同步报文,并通过master端口向其它时钟设备发送PTP同步报文。下面结合具体实施例对本发明所提供的方法进行详细描述。为了使得PTP同步报文不再受到阻塞端口的限制,可以将PTP同步报文的目的MAC地址统一采用IEEE 802. IAS 协议定义的保留地址,即0180-C200-000E。在各时钟设备上配置包含该0180-C200-000E的 ACL表项,该ACL表项指向时钟设备的软件处理模块,使得时钟设备即便通过阻塞端口接收到PTP同步报文,也将该PTP同步报文上送到软件处理模块进行处理,而不再直接丢弃。下面以图1所示架构中的时钟设备C3为例,可以使得C3初始记录的跳数信息为一个预设的最大值,该最大值大于组网中可能的最大跳数。下面分别通过两种情况对上述方法进行说明。第一种情况C3首先从slave端口 P3接收到PTP同步报文。如果C3首先从slave端口 P3接收到PTP同步报文,则从PTP同步报文中获取该 C3距离PTP同步生成树根节点C2的跳数,即2跳,将其与本地记录的跳数进行比较,由于 C3初始记录的是预设的最大跳数,因此,从PTP同步报文中获取的跳数小,则利用接收到的 PTP同步报文中携带的时钟信息对本地时钟进行修正。在此,需要说明的是,在单步时间同步方式下,通过时间同步(Sync)报文携带时钟信息,在双步时间同步方式下,通过紧随(FolloW_Up)报文携带时钟信息,因此,在本发明中涉及的PTP同步报文可以是Sync报文或者R)llow_Up报文。在进行修正时,利用PTP同步报文中携带的时钟信息计算本地时钟与准确时钟之间的偏差(Offset),该偏差是通过slave端口计算的本地时钟与准确时钟之间的偏差值, 即Offsetslave,然后利用该Offsetslave对本地时钟进行修正,即将本地时钟加上计算出的 OffsetslavJt为本地修正后的时钟信息。其中,计算偏差值可以采用请求应答(Req_ReSp) 机制或端延时(Peer_Delay)机制,这两种机制的计算方式为现有技术。下面对上述Req_ReSp机制和Peei^Delay机制中Offset的计算方法进行简单介绍。通常上一跳设备作为主时钟,本时钟设备作为从时钟。Peer_Delay机制中主时钟和从时钟之间的Offset计算过程如图5所示。主时钟在发送Sync报文时,在Sync报文中携带时钟信息tl,当采用双步方式下,该tl也可以通过 Follow_Up报文携带,该tl标识主时钟本地的时间。从设备记录接收到该Sync报文的时间 t2,该t2是从设备本地的时间,并向主设备返回一个Pdelay_Req报文,记录返回该Pdelay_ Req报文的时间t3。主设备记录接收该Pdelay_Req报文的时间t4,向从设备返回Pdelay_ Resp报文,该Pdelay_ReSp报文中可以携带发送该Pdelay_ReSp报文的时间t5与t4之间的差值,也可以仅携带t4,将t5再通过一个Pdelay_ReSp_F0ll0W_UP报文携带。然后,从设备利用公式Offset = (t2-tl) -Tdelay进行计算,其中,Tdelay为主时钟与从时钟之间的传输延迟,该 Tdelay = [(t4-t3) + (t6-t5)]/2,得到公式 Offset = (t2_tl)-[ (t4_t3) + (t6_t5) ]/2。Req_ReSp机制中主时钟和从时钟之间的Offset计算过程如图6所示。主时钟在发送Sync报文时,在Sync报文中携带时钟信息tl,当采用双步方式下,该tl也可以通过 Follow_Up报文携带,该tl标识主时钟本地的时间。从设备记录接收到该Sync报文的时间 t2,该t2是从设备本地的时间,并向主设备返回一个Delay_Req报文,记录返回该Delay_ Req报文的时间t3。主设备记录接收该Delay_Req报文的时间t4,向从设备返回Delay_ Resp报文携带t4。然后从设备利用公式Offset = (t2_tl)-Tdelay进行计算,其中,Tdelay为主时钟与从时钟之间的传输延迟,该Tdelay为[(t2-tl) - (t4-t3) ] /2,因此,得到公式Offset =[(t2-tl)-(t4-t3)]/2。由于接收到的PTP同步报文中携带的跳数较小,该时钟设备还会利用PTP同步报文中获取的跳数信息更新本地记录的跳数,此时本地记录的跳数为2跳。由于上述PTP同步报文是从slave端口接收到的,在存在master端口的情况下, 需要将该PTP同步报文进行转发。在进行转发之前,需要将PTP同步报文中携带的时钟信息进行修正,具体修正方式可以包括以下两种情况
1)如果采用请求应答(Req_ReSp)机制的时间同步方式,PTP同步报文中携带的是上一跳时钟设备的本地时钟信息,则时钟设备可以将本地修正后的时钟信息替换PTP同步报文中的时钟信息。2)如果采用端延时(Peer_Delay)机制,PTP同步报文中携带的是根节点的本地时钟信息(即GM发送该PTP同步报文时的时钟信息)和延迟信息,其中,延迟信息通常在修正字段(CorrectionField)中携带,包括从根节点到该时钟设备的传输延迟以及在该时钟设备的滞留延迟,则时钟设备修正PTP同步报文中携带的延迟信息,即加上上一跳时钟设备与本时钟设备之间的传输延迟和该时钟设备的滞留延迟。其中,上一跳时钟设备与本时钟设备之间的传输延迟在Offset的计算过程中可以获取,即上述的Tdelay ;时钟设备的滞留延迟可以由该时钟设备通过对接收到该PTP同步报文和发送该PTP同步报文之间的计时来获取。如果之后,C3又从阻塞端口 Pl接收到PTP同步报文,从该PTP同步报文中获取的距离PTP同步生成树根节点C2的跳数信息为1跳,比本地记录的跳数2跳小。C3利用通过阻塞端口 Pl接收到的PTP同步报文中携带的时钟信息对本地时钟进行修正。在进行修正时, 利用PTP同步报文中携带的时钟信息计算本地时钟与准确时钟之间的偏差,该偏差是通过阻塞端口计算的本地时钟与准确时钟之间的偏差值,即0ffsetbl。。k,然后利用该Offsetbltjck 对本地时钟进行修正,将本地时钟加上计算出的0ffsetbl。。k作为本地修正后的时钟信息。同时,该时钟设备还会利用PTP同步报文中获取的跳数信息更新本地记录的跳数,此时本地记录的跳数为1跳。由于该PTP同步报文是从阻塞端口接收到的,因此不再对该PTP同步报文进行进一步转发,丢弃该PTP同步报文。从此以后,后续C3还可能会从P3端口接收到PTP同步报文,由于从P3端口接收到的PTP同步报文中获取的跳数为2跳,比当前本地记录的跳数1跳要大,则不进行时钟修正。也就是说,后续过程中仅利用通过阻塞端口 Pl接收到的PTP同步报文对本地时钟进行修正。第二种情况C3首先从阻塞端口 Pl接收到PTP同步报文。C3如果首先从阻塞端口 Pl接收到PTP同步报文,则首先从PTP同步报文中获取该C3距离PTP同步生成树根节点C2的跳数,即1跳,将其与本地记录的跳数进行比较,显然PTP同步报文中获取的跳数小。此时,利用接收到的PTP同步报文中携带的时钟信息对本地时钟进行修正。同时,该C3还会利用PTP同步报文中获取的跳数信息更新本地记录的跳数,此时本地记录的跳数为1跳。由于该PTP同步报文是从阻塞端口 Pl接收到的,不再转发该PTP同步报文。如果之后C3又从slave端口 P3接收到PTP同步报文,从该PTP同步报文中获取的距离PTP同步生成树根节点C2的跳数信息为2跳,比本地记录的跳数1跳大,C3不会利用该PTP同步报文进行时钟修正。但由于该PTP同步报文是从slave端口 P3接收到的,需要在存在master端口时对该PTP同步报文进行转发。在转发之前,对该PTP同步报文中携带的时钟信息进行修正,并对PTP同步报文中携带的跳数信息进行更新。其中,对PTP同步报文携带的时钟信息进行修正的具体方法可以包括以下两种情况1)如果采用Req_ReSp机制的时间同步方式,PTP同步报文中携带的是上一跳时钟设备的本地时钟信息,由于从Cl接收该PTP同步报文的路径不是最优路径,没有对本地时钟进行修正,可以认为当前本地时钟为准确时钟,则时钟设备可以将当前本地时钟信息替换PTP同步报文中的时钟信息。2)如果采用Peer_Delay机制,PTP同步报文中携带的是根节点的本地时钟信息和延迟信息,其中,延迟信息包括从根节点到该时钟设备的传输延迟以及在该时钟设备的滞留延迟。由于从slave端口接收该PTP同步报文的路径不是最优路径,因此需要利用最优路径的时钟对PTP同步报文中携带的时钟信息进行修正。在PTP同步报文中携带的延迟信息基础上,在加上Cl到C3之间的传输延迟以及在C3上的滞留延迟之外,还需要加上一个精度调整值,该精度调整值是该传输路径与最优传输路径之间的时钟差异值(Awfsrt),其中Awfset = Offsetbest-Offsetslave,其中,Offsetbest为通过当前最优路径计算的本地时钟与准确时钟之间的偏差值,在本实施例中当前最优路径为阻塞端口对应的路径;Offsetslave为通过slave端口计算的本地时钟与准确时钟之间的偏差值。从此之后,C3也只会利用本地记录的跳数和时钟信息对从Pl端口接收到的PTP同步报文进行更新。通过上述两种情况可以看出,使用本发明后,C3在进行时钟同步时选择了更优地路径,即C2和C3直连的路径。假如时间设备在继续时钟修正时的精度为士 1纳秒,如果通过路径C2-C1-C3,则需要经过两次士 1纳秒的累积,通过路径C2-C3,仅有一次士 1纳秒的精度,显然,通过本发明的方法能够提高时钟同步的精度。以上是对本发明所提供的方法进行的详细描述,下面对本发明所提供的时钟设备进行详细描述。图7为本发明所提供时钟设备的结构示意图,如图7所示,该时钟设备可以包括报文收发单元701、跳数获取单元702、路径比较单元703、第一修正单元704和第二修正单元705。报文收发单元701,用于通过slave端口或阻塞端口接收到PTP同步报文后,将该 PTP同步报文提供给跳数获取单元702 ;通过master端口转发第一修正单元704或者第二修正单元705提供的PTP同步报文。跳数获取单元702,用于从PTP同步报文中获取时钟设备距离PTP同步生成树根节点的跳数。路径比较单元703,用于将跳数获取单元702获取的跳数与本地记录的跳数进行比较,如果获取的跳数小于或等于记录的跳数,则确定接收到该PTP同步报文的slave端口或阻塞端口对应的路径为当前最优路径向第一修正单元704发送修正通知;否则向第二修正单元705发送修正通知。。第一修正单元704,用于接收到修正通知后,利用所述PTP同步报文中携带的时钟信息对本地时钟进行修正,如果所述获取的跳数小于记录的跳数,进一步利用所述获取的跳数更新本地记录的跳数;如果PTP同步报文是通过slave端口接收到的,且时钟设备存在 master端口,则利用当前的本地时钟信息对PTP同步报文中携带的时钟信息进行修正,并更新PTP同步报文中携带的距离PTP同步生成树节点的跳数后,将该PTP报文提供给所述报文收发单元;否则丢弃PTP同步报文。第二修正单元705,用于接收到修正通知后,如果PTP同步报文是通过slave端口接收到的,且时钟设备存在master端口,则利用当前的本地时钟信息对PTP同步报文中携带的时钟信息进行修正,更新PTP同步报文中携带的距离PTP同步生成树节点的跳数后,将该PTP报文提供给报文收发单元;否则丢弃PTP同步报文。其中,上述PTP同步报文的目的MAC地址可以统一采用预设的保留地址,时钟设备上配置的包含上述保留地址的ACL表项指向该时钟设备的软件处理模块710,该软件处理模块710包含上述跳数获取单元702、路径比较单元703、第一修正单元704和第二修正单元 705。此时,报文收发单元701,接收到PTP同步报文后,根据ACL表项将PTP同步报文提供给软件处理模块710。具体地,第一修正单元对本地时钟进行修正的方式为利用PTP同步报文中携带的时钟信息计算时钟设备的本地时钟与准确时钟之间的偏差值,将本地时钟加上计算出的偏差值得到的值作为修正后的本地时钟。其中,偏差值的计算方法可以采用Req_ReSp机制,也可以采用Peer_Delay机制。第一修正单元704对PTP同步报文中时钟信息的修正方式为如果采用Req_ReSp 机制的时间同步方式,则在接收到修正通知时将当前的本地时钟替换PTP同步报文中的时钟信息。如果采用Peer_Delay机制的时间同步方式,则将PTP同步报文携带的时钟信息中的延迟信息加上slave端口所连接上一跳时钟设备与本时钟设备之间的传输延迟以及PTP 同步报文在本时钟设备的滞留延迟,将所得到的值替换PTP同步报文携带的时钟信息中的延迟信息。第二修正单元705对PTP同步报文中时钟信息的修正方式为如果采用Req_ReSp 机制的时间同步方式,则在接收到修正通知时将当前的本地时钟替换PTP同步报文中的时钟信息;如果采用Peer_Delay机制的时间同步方式,则将PTP同步报文携带的时钟信息中的延迟信息加上slave端口所连接上一跳时钟设备与本时钟设备之间的传输延迟、PTP同步报文在本时钟设备的滞留延迟以及精度调整值Awfset,将所得到的值替换PTP同步报文携带的时钟信息中的延迟信息;其中Awfset = Offsetbest-Offsetslave, Offsetbest为通过当前最优路径计算的本地时钟与准确时钟之间的偏差值,Offsetslave为通过slave端口计算的本地时钟与准确时钟之间的偏差值。上述PTP同步报文可以为时间同步Sync报文或紧随R)llow_Up报文。由以上描述可以看出,本发明取消了阻塞端口对于PTP同步报文的限制,根据从最优路径传输来的PTP同步报文对本地时钟进行修正,并在PTP同步报文是通过slave端口接收到的且该时钟设备存在master端口时,对PTP报文中携带的时钟信息进行修正后, 通过master端口转发该PTP同步报文以便后续时钟设备能够进行精确时间同步。本发明中对本地时钟进行的修正是根据跳数信息确定的最优路径传输来的PTP同步报文,由于途径的跳数最小,其所带来的误差累积也最小,从而提高了时间同步的精度。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
权利要求
1.一种时间同步的方法,其特征在于,时钟设备通过从slave端口或阻塞端口接收到精确时钟协议PTP同步报文后,执行以下步骤A、从所述PTP同步报文中获取距离PTP同步生成树根节点的跳数;B、将步骤A获取的跳数与本地记录的跳数进行比较,如果获取的跳数小于或等于记录的跳数,执行步骤C ;否则执行步骤E ;C、确定所述slave端口或阻塞端口对应的路径为当前最优路径,利用所述PTP同步报文中携带的时钟信息对本地时钟进行修正,如果所述获取的跳数小于记录的跳数,进一步利用步骤A获取的跳数更新本地记录的跳数;D、如果所述PTP同步报文是通过slave端口接收到的,且所述时钟设备存在主master 端口,则利用当前的本地时钟信息对所述PTP同步报文中携带的时钟信息进行修正,并更新PTP同步报文中携带的距离PTP同步生成树节点的跳数后,通过master端口转发该PTP 同步报文,结束流程;否则丢弃所述PTP同步报文,结束流程;E、如果所述PTP同步报文是通过slave端口接收到的,且所述时钟设备存在主master 端口,则利用当前的本地时钟信息对所述PTP报文中携带的时钟信息进行修正并更新PTP 同步报文中携带的距离PTP同步生成树节点的跳数后,通过master端口转发该PTP同步报文;否则丢弃所述PTP同步报文。
2.根据权利要求1所述的方法,其特征在于,所述PTP同步报文的目的MAC地址统一采用预设的保留地址,所述时钟设备上配置的包含所述保留地址的ACL表项指向所述时钟设备的软件处理模块,由所述软件处理模块执行权利要求1中所述的各步骤。
3.根据权利要求1所述的方法,其特征在于,如果所述PTP同步报文是通过slave端口接收到的,则步骤C中利用所述PTP同步报文中携带的时钟信息对本地时钟进行修正具体包括利用所述PTP同步报文中携带的时钟信息计算所述时钟设备的本地时钟与准确时钟之间的偏差值,将所述本地时钟加上计算出的偏差值得到的值作为修正后的本地时钟。
4.根据权利要求1所述的方法,其特征在于,步骤D中利用当前的本地时钟信息对所述 PTP报文中携带的时钟信息进行修正具体包括如果采用请求应答Req_Resp机制的时间同步方式,则将当前的本地时钟替换PTP同步报文中的时钟信息;如果采用端延迟Peer_Delay机制的时间同步方式,则将所述PTP同步报文携带的时钟信息中的延迟信息加上所述slave端口所连接上一跳时钟设备与本时钟设备之间的传输延迟以及所述PTP同步报文在本时钟设备的滞留延迟,将所得到的值替换所述PTP同步报文携带的时钟信息中的延迟信息;步骤E中利用当前的本地时钟信息对所述PTP报文中携带的时钟信息进行修正具体包括如果采用请求应答Req_ReSp机制的时间同步方式,则将当前的本地时钟替换PTP同步报文中的时钟信息;如果采用端延迟Peer_Delay机制的时间同步方式,则将所述PTP 同步报文携带的时钟信息中的延迟信息加上所述slave端口所连接上一跳时钟设备与本时钟设备之间的传输延迟、所述PTP同步报文在本时钟设备的滞留延迟以及精度调整值 △。ffsrt,将所得到的值替换所述PTP同步报文携带的时钟信息中的延迟信息;其中 Offsetbest-Offsetslave, Offsetbest为通过当前最优路径计算的本地时钟与准确时钟之间的偏差值,OfTsetslare为通过所述slave端口计算的本地时钟与准确时钟之间的偏差值。
5.根据权利要求1至4任一权项所述的方法,其特征在于,所述PTP同步报文为时间同步Sync报文或紧随R)llow_Up报文。
6.一种时钟设备,其特征在于,该时钟设备包括报文收发单元和跳数获取单元、路径比较单元、第一修正单元和第二修正单元;所述报文收发单元,用于通过slave端口或阻塞端口接收到PTP同步报文后,将该PTP 同步报文提供给所述跳数获取单元;通过master端口转发所述第一修正单元或者第二修正单元提供的PTP同步报文;所述跳数获取单元,用于从所述PTP同步报文中获取所述时钟设备距离PTP同步生成树根节点的跳数;所述路径比较单元,用于将所述跳数获取单元获取的跳数与本地记录的跳数进行比较,如果获取的跳数小于或等于记录的跳数,则确定所述slave端口或阻塞端口对应的路径为当前最优路径,向所述第一修正单元发送修正通知;否则向所述第二修正单元发送修正通知;所述第一修正单元,用于接收到修正通知后,利用所述PTP同步报文中携带的时钟信息对本地时钟进行修正,如果所述获取的跳数小于记录的跳数,进一步利用所述获取的跳数更新本地记录的跳数;如果所述PTP同步报文是通过slave端口接收到的,且所述时钟设备存在master端口,则利用当前的本地时钟信息对所述PTP同步报文中携带的时钟信息进行修正,并更新PTP同步报文中携带的距离PTP同步生成树节点的跳数后,将该PTP报文提供给所述报文收发单元;否则丢弃PTP同步报文;所述第二修正单元,用于接收到修正通知后,如果所述PTP同步报文是通过slave端口接收到的,且所述时钟设备存在master端口,则利用当前的本地时钟信息对所述PTP同步报文中携带的时钟信息进行修正,更新PTP同步报文中携带的距离PTP同步生成树节点的跳数后,将该PTP报文提供给所述报文收发单元;否则丢弃PTP同步报文。
7.根据权利要求6所述的时钟设备,其特征在于,所述PTP同步报文的目的MAC地址统一采用预设的保留地址,所述时钟设备上配置的包含所述保留地址的ACL表项指向包含所述跳数获取单元、路径比较单元、第一修正单元和第二修正单元的软件处理模块;所述报文收发单元,接收到所述PTP同步报文后,根据所述ACL表项将所述PTP同步报文提供给所述软件处理模块。
8.根据权利要求6所述的时钟设备,其特征在于,所述第一修正单元,具体利用所述 PTP同步报文中携带的时钟信息计算所述时钟设备的本地时钟与准确时钟之间的偏差值, 将所述本地时钟加上计算出的偏差值得到的值作为修正后的本地时钟。
9.根据权利要求6所述的时钟设备,其特征在于,所述第一修正单元,用于如果采用 Req_ReSp机制的时间同步方式,则将当前的本地时钟替换PTP同步报文中的时钟信息;如果采用Peei^Delay机制的时间同步方式,将所述PTP同步报文携带的时钟信息中的延迟信息加上所述slave端口所连接上一跳时钟设备与本时钟设备之间的传输延迟以及所述PTP 同步报文在本时钟设备的滞留延迟,将所得到的值替换所述PTP同步报文携带的时钟信息中的延迟信息。第二修正单元,用于如果采用Req_Resp机制的时间同步方式,则在接收到修正通知时将当前的本地时钟替换PTP同步报文中的时钟信息;如果采用Peer_Delay机制的时间同步方式,将所述PTP同步报文携带的时钟信息中的延迟信息加上所述slave端口所连接上一跳时钟设备与本时钟设备之间的传输延迟、所述PTP同步报文在本时钟设备的滞留延迟以及精度调整值Awfsrt,将所得到的值替换所述PTP同步报文携带的时钟信息中的延迟信息; 其中Awfset = Offsetbest-Offsetslave, Offsetbest为通过当前最优路径计算的本地时钟与准确时钟之间的偏差值,Offsetslave为通过slave端口计算的本地时钟与准确时钟之间的偏差值。
10.根据权利要求6至9任一权项所述的方法,其特征在于,所述PTP同步报文为时间同步Sync报文或紧随R)llow_Up报文。
全文摘要
本发明提供了一种时间同步的方法和时钟设备,本发明取消了阻塞端口对于精确时间协议(PTP)同步报文的限制,根据从最优路径传输来的PTP同步报文对本地时钟进行修正,由于PTP同步报文途径的跳数最少,累积误差也最小,从而提高了时间同步的精度。并且在PTP同步报文是通过从(slave)端口接收到的且该时钟设备存在主(master)端口时,对PTP报文中携带的时钟信息进行修正后,通过master端口转发该PTP同步报文以便后续时钟设备能够进行精确时间同步。
文档编号H04L7/00GK102195766SQ20101011659
公开日2011年9月21日 申请日期2010年3月1日 优先权日2010年3月1日
发明者徐鹏飞 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1