CN102195766B - 一种时间同步的方法和时钟设备 - Google Patents
一种时间同步的方法和时钟设备 Download PDFInfo
- Publication number
- CN102195766B CN102195766B CN 201010116596 CN201010116596A CN102195766B CN 102195766 B CN102195766 B CN 102195766B CN 201010116596 CN201010116596 CN 201010116596 CN 201010116596 A CN201010116596 A CN 201010116596A CN 102195766 B CN102195766 B CN 102195766B
- Authority
- CN
- China
- Prior art keywords
- sync message
- ptp sync
- jumping
- clockwork
- message
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Small-Scale Networks (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
Abstract
本发明提供了一种时间同步的方法和时钟设备,本发明取消了阻塞端口对于精确时间协议(PTP)同步报文的限制,根据从最优路径传输来的PTP同步报文对本地时钟进行修正,由于PTP同步报文途径的跳数最少,累积误差也最小,从而提高了时间同步的精度。并且在PTP同步报文是通过从(slave)端口接收到的且该时钟设备存在主(master)端口时,对PTP报文中携带的时钟信息进行修正后,通过master端口转发该PTP同步报文以便后续时钟设备能够进行精确时间同步。
Description
技术领域
本发明涉及网络通信技术领域,特别涉及一种时间同步的方法和时钟设备。
背景技术
IEEE1588协议是以太网中一种较为精确的时钟同步解决方案,其基本功能是使分布式网络内的其它时钟与最精确时钟保持同步。IEEE1588协议中定义了一种精确时间协议(PTP,Precision Time Protocol),用于对标准以太网或其它采用多播技术的分布式总线***中的网络节点的时钟进行精确同步,其精度可以达到纳秒级。
在网络中通常会为各时钟设备设置时钟优先级,各时钟设备通过在网络中发送携带自身时钟优先级的通告(Announce)报文来选举出时钟优先级最高的时钟设备,该时钟优先级最高的时钟设备通常称为源时钟(GM),并进行端口角色的计算从而形成同步生成树。然后GM设备沿同步生成树周期性地发送携带时钟信息的PTP同步报文,非GM设备按照接收到的PTP同步报文中携带的时钟信息对本地的时钟进行修正,将并继续转发携带修正后时钟信息的PTP同步报文,以便后续非GM设备能够按照修正后时钟信息进行本地时钟修正。
时钟同步有时是与避免网络成环的协议并存的,例如快速生成树协议(RSTP)、快速环网保护协议(RRPP)、灵活链路技术(SMLK)等。在这些协议的运行中,会将网络节点的某些端口进行阻塞。这些阻塞的端口不仅对数据报文进行丢弃,在PTP协议中对PTP同步报文也会进行丢弃,这常常会造成非GM节点接收到的PTP同步报文并不是从最优链路接收到的。
如图1所示,网络节点C1、C2、C3和C4构成的组网中,由于运行了RSTP协议,阻塞了C3上的端口P1、C4上的端口P2,RSTP的根节点为C1。但是,通常PTP形成的同步生成树与RSTP形成的生成树并不重合,即根节点并不相同,假设PTP形成的同步生成树的根节点即GM为C2,那么其时间同步的路径为图1中箭头所示。对于C3来说,时间同步路径为C2到C1,再从C1到C3,需要经过两次时间修正,对于更优的路径C2到C3由于阻塞端口P1的限制则不能使用。由于随着时间同步路径上节点跳数的增加,误差会进行累积,精度也会随之降低,现有技术中的时钟同步方式显然并不能获得最后的精度。
发明内容
有鉴于此,本发明提供了一种时间同步的方法和装置,以便于提高时间同步的精度。
一种时间同步的方法,时钟设备通过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同步报文中存在一个字段StepsRemoved,该字段记录了从PTP同步生成树根节点到当前时钟设备的跳数,每个时钟设备都对该字段进行维护,在根节点时,该字段指示为0跳,每经过一段通信链路都将该字段指示的跳数加1,其中该通信链路不包括普通时钟(OC)或边界时钟(BC)与透明时钟(TC)之间的链路,也就是说,StepsRemoved字段在PTP同步报文每经过一个OC或BC时,将指示的跳数加1,经过TC则不改变StepsRemoved字段指示的跳数。
在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.1AS协议定义的保留地址,即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报文或者Follow_Up报文。
在进行修正时,利用PTP同步报文中携带的时钟信息计算本地时钟与准确时钟之间的偏差(Offset),该偏差是通过slave端口计算的本地时钟与准确时钟之间的偏差值,即Offsetslave,然后利用该Offsetslave对本地时钟进行修正,即将本地时钟加上计算出的Offsetslave作为本地修正后的时钟信息。其中,计算偏差值可以采用请求应答(Req_Resp)机制或端延时(Peer_Delay)机制,这两种机制的计算方式为现有技术。
下面对上述Req_Resp机制和Peer_Delay机制中Offset的计算方法进行简单介绍。通常上一跳设备作为主时钟,本时钟设备作为从时钟。
Peer_Delay机制中主时钟和从时钟之间的Offset计算过程如图5所示。主时钟在发送Sync报文时,在Sync报文中携带时钟信息t1,当采用双步方式下,该t1也可以通过Follow_Up报文携带,该t1标识主时钟本地的时间。从设备记录接收到该Sync报文的时间t2,该t2是从设备本地的时间,并向主设备返回一个Pdelay_Req报文,记录返回该Pdelay_Req报文的时间t3。主设备记录接收该Pdelay_Req报文的时间t4,向从设备返回Pdelay_Resp报文,该Pdelay_Resp报文中可以携带发送该Pdelay_Resp报文的时间t5与t4之间的差值,也可以仅携带t4,将t5再通过一个Pdelay_Resp_Follow_UP报文携带。然后,从设备利用公式Offset=(t2-t1)-Tdelay进行计算,其中,Tdelay为主时钟与从时钟之间的传输延迟,该Tdelay=[(t4-t3)+(t6-t5)]/2,得到公式Offset=(t2-t1)-[(t4-t3)+(t6-t5)]/2。
Req_Resp机制中主时钟和从时钟之间的Offset计算过程如图6所示。主时钟在发送Sync报文时,在Sync报文中携带时钟信息t1,当采用双步方式下,该t1也可以通过Follow_Up报文携带,该tl标识主时钟本地的时间。从设备记录接收到该Sync报文的时间t2,该t2是从设备本地的时间,并向主设备返回一个Delay_Req报文,记录返回该Delay_Req报文的时间t3。主设备记录接收该Delay_Req报文的时间t4,向从设备返回Delay_Resp报文携带t4。然后从设备利用公式Offset=(t2-t1)-Tdelay进行计算,其中,Tdelay为主时钟与从时钟之间的传输延迟,该Tdelay为[(t2-t1)-(t4-t3)]/2,因此,得到公式Offset=[(t2-t1)-(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又从阻塞端口P1接收到PTP同步报文,从该PTP同步报文中获取的距离PTP同步生成树根节点C2的跳数信息为1跳,比本地记录的跳数2跳小。C3利用通过阻塞端口P1接收到的PTP同步报文中携带的时钟信息对本地时钟进行修正。在进行修正时,利用PTP同步报文中携带的时钟信息计算本地时钟与准确时钟之间的偏差,该偏差是通过阻塞端口计算的本地时钟与准确时钟之间的偏差值,即Offsetblock,然后利用该Offsetblock对本地时钟进行修正,将本地时钟加上计算出的Offsetblock作为本地修正后的时钟信息。
同时,该时钟设备还会利用PTP同步报文中获取的跳数信息更新本地记录的跳数,此时本地记录的跳数为1跳。
由于该PTP同步报文是从阻塞端口接收到的,因此不再对该PTP同步报文进行进一步转发,丢弃该PTP同步报文。
从此以后,后续C3还可能会从P3端口接收到PTP同步报文,由于从P3端口接收到的PTP同步报文中获取的跳数为2跳,比当前本地记录的跳数1跳要大,则不进行时钟修正。也就是说,后续过程中仅利用通过阻塞端口P1接收到的PTP同步报文对本地时钟进行修正。
第二种情况:C3首先从阻塞端口P1接收到PTP同步报文。
C3如果首先从阻塞端口P1接收到PTP同步报文,则首先从PTP同步报文中获取该C3距离PTP同步生成树根节点C2的跳数,即1跳,将其与本地记录的跳数进行比较,显然PTP同步报文中获取的跳数小。此时,利用接收到的PTP同步报文中携带的时钟信息对本地时钟进行修正。同时,该C3还会利用PTP同步报文中获取的跳数信息更新本地记录的跳数,此时本地记录的跳数为1跳。
由于该PTP同步报文是从阻塞端口P1接收到的,不再转发该PTP同步报文。
如果之后C3又从slave端口P3接收到PTP同步报文,从该PTP同步报文中获取的距离PTP同步生成树根节点C2的跳数信息为2跳,比本地记录的跳数1跳大,C3不会利用该PTP同步报文进行时钟修正。但由于该PTP同步报文是从slave端口P3接收到的,需要在存在master端口时对该PTP同步报文进行转发。在转发之前,对该PTP同步报文中携带的时钟信息进行修正,并对PTP同步报文中携带的跳数信息进行更新。其中,对PTP同步报文携带的时钟信息进行修正的具体方法可以包括以下两种情况:
1)如果采用Req_Resp机制的时间同步方式,PTP同步报文中携带的是上一跳时钟设备的本地时钟信息,由于从C1接收该PTP同步报文的路径不是最优路径,没有对本地时钟进行修正,可以认为当前本地时钟为准确时钟,则时钟设备可以将当前本地时钟信息替换PTP同步报文中的时钟信息。
2)如果采用Peer_Delay机制,PTP同步报文中携带的是根节点的本地时钟信息和延迟信息,其中,延迟信息包括从根节点到该时钟设备的传输延迟以及在该时钟设备的滞留延迟。由于从slave端口接收该PTP同步报文的路径不是最优路径,因此需要利用最优路径的时钟对PTP同步报文中携带的时钟信息进行修正。在PTP同步报文中携带的延迟信息基础上,在加上C1到C3之间的传输延迟以及在C3上的滞留延迟之外,还需要加上一个精度调整值,该精度调整值是该传输路径与最优传输路径之间的时钟差异值(ΔOffset),其中ΔOffset=Offsetbest-Offsetslave,其中,Offsetbest为通过当前最优路径计算的本地时钟与准确时钟之间的偏差值,在本实施例中当前最优路径为阻塞端口对应的路径;Offsetslave为通过slave端口计算的本地时钟与准确时钟之间的偏差值。
从此之后,C3也只会利用本地记录的跳数和时钟信息对从P1端口接收到的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同步报文在本时钟设备的滞留延迟以及精度调整值ΔOffset,将所得到的值替换PTP同步报文携带的时钟信息中的延迟信息;其中ΔOffset=Offsetbest-Offsetslave,Offsetbest为通过当前最优路径计算的本地时钟与准确时钟之间的偏差值,Offsetslave为通过slave端口计算的本地时钟与准确时钟之间的偏差值。
上述PTP同步报文可以为时间同步Sync报文或紧随Follow_Up报文。
由以上描述可以看出,本发明取消了阻塞端口对于PTP同步报文的限制,根据从最优路径传输来的PTP同步报文对本地时钟进行修正,并在PTP同步报文是通过slave端口接收到的且该时钟设备存在master端口时,对PTP报文中携带的时钟信息进行修正后,通过master端口转发该PTP同步报文以便后续时钟设备能够进行精确时间同步。本发明中对本地时钟进行的修正是根据跳数信息确定的最优路径传输来的PTP同步报文,由于途径的跳数最小,其所带来的误差累积也最小,从而提高了时间同步的精度。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (8)
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同步报文;
其中,步骤D中利用当前的本地时钟信息对所述PTP同步报文中携带的时钟信息进行修正具体包括:
如果采用请求应答Req_Resp机制的时间同步方式,则将当前的本地时钟替换PTP同步报文中的时钟信息;如果采用端延迟Peer_Delay机制的时间同步方式,则将所述PTP同步报文携带的时钟信息中的延迟信息加上所述slave端口所连接上一跳时钟设备与本时钟设备之间的传输延迟以及所述PTP同步报文在本时钟设备的滞留延迟,将所得到的值替换所述PTP同步报文携带的时钟信息中的延迟信息;
步骤E中利用当前的本地时钟信息对所述PTP同步报文中携带的时钟信息进行修正具体包括:
如果采用请求应答Req_Resp机制的时间同步方式,则将当前的本地时钟替换PTP同步报文中的时钟信息;如果采用端延迟Peer_Delay机制的时间同步方式,则将所述PTP同步报文携带的时钟信息中的延迟信息加上所述slave端口所连接上一跳时钟设备与本时钟设备之间的传输延迟、所述PTP同步报文在本时钟设备的滞留延迟以及精度调整值ΔOffset,将所得到的值替换所述PTP同步报文携带的时钟信息中的延迟信息;其中ΔOffset=Offsetbest-Offsetslave,Offsetbest为通过当前最优路径计算的本地时钟与准确时钟之间的偏差值,Offsetslave为通过所述slave端口计算的本地时钟与准确时钟之间的偏差值。
2.根据权利要求1所述的方法,其特征在于,所述PTP同步报文的目的MAC地址统一采用预设的保留地址,所述时钟设备上配置的包含所述保留地址的ACL表项指向所述时钟设备的软件处理模块,由所述软件处理模块执行权利要求1中所述的各步骤。
3.根据权利要求1所述的方法,其特征在于,如果所述PTP同步报文是通过slave端口接收到的,则步骤C中利用所述PTP同步报文中携带的时钟信息对本地时钟进行修正具体包括:利用所述PTP同步报文中携带的时钟信息计算所述时钟设备的本地时钟与准确时钟之间的偏差值,将所述本地时钟加上计算出的偏差值得到的值作为修正后的本地时钟。
4.根据权利要求1至3任一权项所述的方法,其特征在于,所述PTP同步报文为时间同步Sync报文或紧随Follow_Up报文。
5.一种时钟设备,其特征在于,该时钟设备包括:报文收发单元和跳数获取单元、路径比较单元、第一修正单元和第二修正单元;
所述报文收发单元,用于通过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同步报文中携带的时钟信息进行修正,具体为如果采用Req_Resp机制的时间同步方式,则将当前的本地时钟替换PTP同步报文中的时钟信息;如果采用Peer_Delay机制的时间同步方式,将所述PTP同步报文携带的时钟信息中的延迟信息加上所述slave端口所连接上一跳时钟设备与本时钟设备之间的传输延迟以及所述PTP同步报文在本时钟设备的滞留延迟,将所得到的值替换所述PTP同步报文携带的时钟信息中的延迟信息;
第二修正单元中利用当前的本地时钟信息对所述PTP同步报文中携带的时钟信息进行修正,具体为如果采用Req_Resp机制的时间同步方式,则在接收到修正通知时将当前的本地时钟替换PTP同步报文中的时钟信息;如果采用Peer_Delay机制的时间同步方式,将所述PTP同步报文携带的时钟信息中的延迟信息加上所述slave端口所连接上一跳时钟设备与本时钟设备之间的传输延迟、所述PTP同步报文在本时钟设备的滞留延迟以及精度调整值ΔOffset,将所得到的值替换所述PTP同步报文携带的时钟信息中的延迟信息;其中ΔOffset=Offsetbest-Offsetslave,Offsetbest为通过当前最优路径计算的本地时钟与准确时钟之间的偏差值,Offsetslave为通过slave端口计算的本地时钟与准确时钟之间的偏差值。
6.根据权利要求5所述的时钟设备,其特征在于,所述PTP同步报文的目的MAC地址统一采用预设的保留地址,所述时钟设备上配置的包含所述保留地址的ACL表项指向包含所述跳数获取单元、路径比较单元、第一修正单元和第二修正单元的软件处理模块;
所述报文收发单元,接收到所述PTP同步报文后,根据所述ACL表项将所述PTP同步报文提供给所述软件处理模块。
7.根据权利要求5所述的时钟设备,其特征在于,所述第一修正单元,具体利用所述PTP同步报文中携带的时钟信息计算所述时钟设备的本地时钟与准确时钟之间的偏差值,将所述本地时钟加上计算出的偏差值得到的值作为修正后的本地时钟。
8.根据权利要求5至7任一权项所述的方法,其特征在于,所述PTP同步报文为时间同步Sync报文或紧随Follow_Up报文。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010116596 CN102195766B (zh) | 2010-03-01 | 2010-03-01 | 一种时间同步的方法和时钟设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010116596 CN102195766B (zh) | 2010-03-01 | 2010-03-01 | 一种时间同步的方法和时钟设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102195766A CN102195766A (zh) | 2011-09-21 |
CN102195766B true CN102195766B (zh) | 2013-12-25 |
Family
ID=44603194
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010116596 Active CN102195766B (zh) | 2010-03-01 | 2010-03-01 | 一种时间同步的方法和时钟设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102195766B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103051439B (zh) * | 2011-10-14 | 2017-10-10 | 中兴通讯股份有限公司 | 一种选择时钟源的方法及装置 |
WO2013075307A1 (zh) * | 2011-11-24 | 2013-05-30 | 华为技术有限公司 | 监测网络节点的输出时间方法、装置和*** |
CN104641589B (zh) * | 2012-09-11 | 2018-10-16 | 三菱电机株式会社 | 校正参数计算装置及时刻同步***、以及校正参数计算方法 |
CN103312429B (zh) * | 2013-06-08 | 2015-11-25 | 杭州华三通信技术有限公司 | 一种时间同步方法及装置 |
CN105027489B (zh) * | 2013-12-20 | 2018-08-21 | 华为技术有限公司 | 精确时钟协议同步方法和节点 |
CN103929294B (zh) * | 2014-05-05 | 2017-09-12 | 浙江大学 | 一种时钟同步***及同步方法 |
CN104092528B (zh) * | 2014-07-14 | 2017-06-06 | 新华三技术有限公司 | 一种时钟同步方法和装置 |
CN105634714A (zh) * | 2014-10-28 | 2016-06-01 | 中兴通讯股份有限公司 | 一种跨域时钟同步方法、装置和*** |
CN105634637A (zh) * | 2015-12-22 | 2016-06-01 | 大唐电信(成都)信息技术有限公司 | 一种ptp和sync-e融合的时频同步方法 |
CN106936610B (zh) * | 2015-12-30 | 2020-01-24 | ***通信集团公司 | 一种网络同步控制方法及装置 |
CN106506260A (zh) * | 2016-10-17 | 2017-03-15 | 国电南瑞科技股份有限公司 | 一种基于hsr双向环网的报文时延测量及修正方法 |
CN108039933A (zh) * | 2017-12-05 | 2018-05-15 | 南京沃旭通讯科技有限公司 | 一种局域物联网时间精确同步方法 |
CN108683472A (zh) * | 2018-05-09 | 2018-10-19 | 西安电子科技大学昆山创新研究院 | 一种基于延时测量的时钟同步方法 |
CN109068384A (zh) * | 2018-08-23 | 2018-12-21 | 平安科技(深圳)有限公司 | 一种时间同步方法及*** |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101022369A (zh) * | 2007-03-23 | 2007-08-22 | 中山大学 | 一种端到端排队时延测量方法 |
CN101110820A (zh) * | 2007-09-04 | 2008-01-23 | 杭州华三通信技术有限公司 | 一种处理生成树协议报文的方法和交换机 |
CN101616163A (zh) * | 2009-07-27 | 2009-12-30 | 中兴通讯股份有限公司 | 精确时间传递协议报文处理方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080069150A1 (en) * | 2006-09-19 | 2008-03-20 | Sig Harold Badt | Precision Time Protocol Emulation for Network Supportive of Circuit Emulation Services |
-
2010
- 2010-03-01 CN CN 201010116596 patent/CN102195766B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101022369A (zh) * | 2007-03-23 | 2007-08-22 | 中山大学 | 一种端到端排队时延测量方法 |
CN101110820A (zh) * | 2007-09-04 | 2008-01-23 | 杭州华三通信技术有限公司 | 一种处理生成树协议报文的方法和交换机 |
CN101616163A (zh) * | 2009-07-27 | 2009-12-30 | 中兴通讯股份有限公司 | 精确时间传递协议报文处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN102195766A (zh) | 2011-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102195766B (zh) | 一种时间同步的方法和时钟设备 | |
US10862601B1 (en) | Bridges including physical layer devices for indicating transmission times of synchronization frames by modifying previously generated corresponding follow up frames | |
US9577774B2 (en) | Time synchronization method and system | |
US8995473B2 (en) | Ring based precise time data network clock phase adjustments | |
EP2541815B1 (en) | Clock synchronization network | |
JP5358813B2 (ja) | ネットワークノード、時刻同期方法及びネットワークシステム | |
KR101488233B1 (ko) | 패킷-스위칭된 네트워크의 마스터 및 슬레이브 클록들을 동기화하기 위한 비-간섭적인 방법, 및 연관된 동기화 디바이스들 | |
US20140010244A1 (en) | Method, apparatus and system for time distribution in a telecommunications network | |
JP5518191B2 (ja) | 光伝送網が時刻同期プロトコルをキャリングする方法及びシステム | |
WO2015170201A1 (en) | A method for robust ptp synchronization with default 1588v2 profile | |
CN103428086B (zh) | 基于ptp协议的透明时钟被动端口选举方法及装置 | |
JP7401656B2 (ja) | クロック・ソースを選択するための方法、装置、及びシステム、並びに記憶媒体 | |
CN113037417B (zh) | 实现精确时间协议报文一步模式的方法、装置及存储介质 | |
CN102457346A (zh) | 时间同步实现方法及时钟节点 | |
WO2013178148A1 (zh) | 通信网络时钟同步方法和装置 | |
CN102195996B (zh) | 一种堆叠***的时间同步方法、堆叠***和成员设备 | |
CN104836654B (zh) | 一种基于Ethernet POWERLINK的时钟同步方法 | |
JP5426695B2 (ja) | 少なくとも1つのタイミング配信プロトコルにより第1のデータおよび第2のデータを別々に伝送することによってクロックを同期するための方法、ならびに関連するシステムおよびモジュール | |
CN107959537B (zh) | 一种状态同步方法及装置 | |
CN101902291B (zh) | 一种精确时间同步方法、设备和*** | |
CN113424466B (zh) | 时钟同步的方法和装置 | |
Diarra et al. | Improved clock synchronization start-up time for Ethernet AVB-based in-vehicle networks | |
CN104185268A (zh) | 一种适用于自组织组网的时隙同步算法 | |
CN108462548B (zh) | 时间同步方法及装置 | |
US20180270005A1 (en) | Wireless communications device, computer readable medium storing program, and method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Patentee after: Xinhua three Technology Co., Ltd. Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base Patentee before: Huasan Communication Technology Co., Ltd. |
|
CP03 | Change of name, title or address |