掌桥专利:专业的专利平台
掌桥专利
首页

一种时钟同步方法、装置、设备及存储介质

文献发布时间:2023-06-19 10:32:14


一种时钟同步方法、装置、设备及存储介质

技术领域

本发明实施例涉及通信技术领域,尤其涉及一种时钟同步方法、装置、设备及存储介质。

背景技术

在传统的同步网中,当同步GPS时,一种方式是所有的设备节点均连接GPS,这种方式成本高,维护难度大;另一种方式是使用1588协议,当网络中的主节点连接GPS,其他节点则逐跳应用1588协议同步。

利用1588协议同步时间,当主节点和从节点的接口速率相同时,主节点和从节点之间的双向路径对称,且打戳时间对称,此时计算的传输延时较为准确;当主节点和从节点的接口速率不同时,主节点和从节点之间的双向路径依然对称,但是由于主节点和从节点以不同速率收发报文,造成打戳时间不对称,从而影响了计算传输延时的准确性,使主从节点的时间不能精确同步。

发明内容

本发明提供一种时钟同步方法、装置、设备及存储介质,以实现时钟同步网络中各节点的时间得以精确同步。

第一方面,本发明实施例提供了一种时钟同步方法,包括:

确定链路中的主节点和从节点,控制所述主节点和所述从节点之间进行报文传输,并记录所述报文传输的报文收发时间;

根据所述报文传输时间,结合所述主节点和所述从节点的接口速率,确定目标传输延时值;

基于所述目标传输延时值,对所述从节点进行时钟同步操作。

可选的,所述控制所述主节点和所述从节点之间进行报文传输,并记录所述报文传输的报文收发时间,包括:

控制所述主节点向所述从节点发送同步报文,并记录发送所述同步报文的开始时间为第一时间戳;

所述从节点接收所述同步报文的报文头后,记录第二时间戳;

控制所述从节点向所述主节点发送延时请求报文,并记录发送所述延时请求报文的开始时间为第三时间戳;

所述主节点接收所述延时请求报文的报文头后,记录第四时间戳。

可选的,所述根据所述报文传输时间,结合所述主节点和所述从节点的接口速率,确定目标传输延时值,包括:

根据所述第一时间戳、所述第二时间戳、所述第三时间戳和所述第四时间戳,确定所述主节点和所述从节点的备选传输延时值;

根据所述主节点的主节点接口速率和所述从节点的从节点接口速率,确定延时修正值;

基于所述延时修正值对所述备选传输延时值进行修正,得到目标传输延时值。

可选的,所述根据所述第一时间戳、所述第二时间戳、所述第三时间戳和所述第四时间戳,确定所述主节点和所述从节点的备选传输延时值,包括:

将所述第二时间戳减去所述第一时间戳,得到第一时间差;

将所述第四时间戳减去所述第二时间戳,得到第二时间差;

将所述第一时间差和所述第二时间的平均值确定为备选传输延时值。

可选的,所述根据所述主节点的主节点接口速率和所述从节点的从节点接口速率,确定延时修正值,包括:

根据所述同步报文的同步报文总长度和同步报文头长度,结合所述主节点接口速率和所述从节点接口速率,确定第一打戳收发时间;

根据所述延时请求报文的延时请求报文总长度和延时请求报文头长度,结合所述主节点接口速率和所述从节点接口速率,确定第二打戳收发时间;

将所述第二打戳收发时间和所述第一打戳收发时间的差值,确定为打戳偏差值;

将所述打戳偏差值的一半确定为延时修正值。

可选的,所述根据所述同步报文的同步报文总长度和同步报文头长度,结合所述主节点接口速率和所述从节点接口速率,确定第一打戳收发时间,包括:

将同步报文总长度和所述主节点接口速率之比,与同步报文头长度和所述从节点接口速率之比相加,得到第一打戳收发时间;

相应的,所述根据所述延时请求报文的延时请求报文总长度和延时请求报文头长度,结合所述主节点接口速率和所述从节点接口速率,确定第二打戳收发时间,包括:

将延时请求报文总长度和所述从节点接口速率之比,与延时请求报文头长度和所述主节点接口速率之比相加,得到第二打戳收发时间。

可选的,所述主节点接口速率由所述主节点通过声明报文发送至所述从节点。

第二方面,本发明实施例还提供了一种时钟同步装置,该装置包括:

报文收发时间确定模块,用于确定链路中的主节点和从节点,控制所述主节点和所述从节点之间进行报文传输,并记录所述报文传输的报文收发时间;

目标传输延时确定模块,用于根据所述报文传输时间,结合所述主节点和所述从节点的接口速率,确定目标传输延时值;

时钟同步模块,用于基于所述目标传输延时值,对所述从节点进行时钟同步操作。

第三方面,本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如本发明任意实施例所述的时钟同步方法。

第四方面,本发明实施例还提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如本发明任意实施例所述的时钟同步方法。

本发明通过确定链路中的主节点和从节点,控制主节点和从节点之间进行报文传输,并记录报文传输的报文收发时间,根据报文传输时间,结合主节点的主节点接口速率和从节点的从节点接口速率,确定目标传输延时值,基于目标传输延时值,对从节点进行时钟同步操作,解决了由主节点和从节点的接口速率不同,导致计算得到的传输延时值不准确,使主从节点的时间不能精确同步的问题,实现了时钟同步网络中各节点的时间都可以精确同步的效果。

附图说明

图1是本发明实施例一提供的一种时钟同步方法的流程图;

图2是本发明实施例二提供的一种时钟同步方法的流程图;

图3是本发明实施例三提供的一种时钟同步装置的结构框图;

图4是本发明实施例四提供的一种计算机设备的结构框图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构,此外,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。

实施例一

图1为本发明实施例一提供的一种时钟同步方法的流程图,本实施例可适用于精确同步时钟同步网络中各节点的时间的情况,该方法可以由时钟同步装置来执行,该装置可以通过软件和/或硬件实现。

本发明实施例提供的技术方案主要基于1588协议进行时钟同步操作。

如图1所示,该方法具体包括如下步骤:

步骤110、确定链路中的主节点和从节点,控制主节点和从节点之间进行报文传输,并记录报文传输的报文收发时间。

在本实施例中,在进行时钟同步操作之前,时钟同步网络中的各个节点的时钟可能存在偏差,在进行时钟同步操作时,可以由两个节点进行时间同步信息的发送与接收,并记载相应的时间戳,从而计算出二者之间收发报文的延时和时间偏移,对其中一个节点的时钟进行校正,实现与另一节点时钟的同步,其中,可以将发送时间同步信息的节点称为主节点,将需要校正时钟的节点称为从节点。时钟同步网络中可以有一个主节点和若干个从节点,一个主节点和一个从节点之间传播信号的路径空间可以称为一个链路。

具体的,在进行时钟同步操作时,可以首先确定同步网中的主节点和从节点,其中,主节点只有一个,从节点可以有多个,本发明实施例主要针对一个主节点和一个从节点之间的时钟同步进行论述,可以理解的是,一个主节点和一个从节点可以实现时钟同步,相应的,其他从节点也可以使用相同的方法与主节点同步。主节点可以向从节点发送一个时钟同步的报文,从节点在接收报文后,可以向主节点返回一个延时请求的报文,两个报文的收发时间可以由相应的节点进行记录。在主节点接收到从节点发送的延时请求的报文后,可以将接收报文的时间写入一个应答报文中返回给从节点。

步骤120、根据报文传输时间,结合主节点和从节点的接口速率,确定目标传输延时值。

本实施例中,主节点和从节点的接口速率可以不同。节点的接口速率可以是10M、100M、1G或10G等。例如,主节点的接口速率是1G,从节点的接口速率是100M。

具体的,当主节点和从节点的接口速率不同时,主节点和从节点发送和接收报文所用的时间也就不同,也就是说,主节点和从节点在打时间戳和读取时间戳时所用的时间也就不同,那么就会造成根据报文传输时间计算得到的传输延时值不准确,从节点的时钟校正不精确。因此,可以分别获取主节点和从节点的接口速率,根据两个接口速率值,对计算得到的传输延时值进行调整,得到准确的目标传输延时值。

步骤130、基于目标传输延时值,对从节点进行时钟同步操作。

具体的,在得到主节点和从节点之间的目标传输延时值后,就可以根据目标传输延时值对从节点进行时钟同步操作,消除从节点和主节点之间存在的时间偏移。

本实施例的技术方案,通过确定链路中的主节点和从节点,控制主节点和从节点之间进行报文传输,并记录报文传输的报文收发时间,根据报文传输时间,结合主节点和从节点的接口速率,确定目标传输延时值,基于目标传输延时值,对从节点进行时钟同步操作,解决了由主节点和从节点的接口速率不同,导致计算得到的传输延时值不准确,使主从节点的时间不能精确同步的问题,实现了时钟同步网络中各节点的时间都可以精确同步的效果。

实施例二

图2为本发明实施例二提供的一种时钟同步方法的流程图。本实施例在上述实施例的基础上,进一步优化了上述时钟同步方法。

如图2所示,该方法具体包括:

步骤210、确定链路中的主节点和从节点。

步骤220、控制主节点向从节点发送同步报文,并记录发送同步报文的开始时间为第一时间戳。

具体的,可以由主节点打完时间戳后向从节点发送一个同步报文,将主节点打的时间戳记为第一时间戳。

步骤230、从节点接收同步报文的报文头后,记录第二时间戳。

具体的,从节点可以在接收主节点发送的同步报文的报文头后打时间戳,记为第二时间戳。

步骤240、控制从节点向主节点发送延时请求报文,并记录发送延时请求报文的开始时间为第三时间戳。

具体的,从节点接收到主节点发送的同步报文后,可以在打完时间戳后向主节点发送一个延时请求报文,将从节点本次打的时间戳记为第三时间戳。

步骤250、主节点接收延时请求报文的报文头后,记录第四时间戳。

具体的,主节点可以在接收从节点发送的延时请求报文的报文头后打时间戳,记为第四时间戳。

步骤260、根据第一时间戳、第二时间戳、第三时间戳和第四时间戳,确定主节点和从节点的备选传输延时值。

具体的,可以先假设主节点和从节点的接口速率一致,根据第一时间戳、第二时间戳、第三时间戳和第四时间戳,计算出主节点和从节点之间的传输延时,把该传输延时值作为备选传输延时值。

可选的,步骤260可以通过以下步骤实现:将第二时间戳减去第一时间戳,得到第一时间差;将第四时间戳减去第二时间戳,得到第二时间差;将第一时间差和第二时间的平均值确定为备选传输延时值。

具体的,第二时间戳减去第一时间戳可以认为是从节点角度考虑的同步报文传输时间间隔,第四时间戳减去第二时间戳可以认为是主节点角度考虑的延时请求报文的传输时间间隔,取两个时间间隔的平均值记为备选传输延时值。

步骤270、根据主节点的主节点接口速率和从节点的从节点接口速率,确定延时修正值。

具体的,可以根据主节点的主节点接口速率,以及从节点的从节点接口速率,计算由于两个节点接口速率不同导致的两个报文传输时间差值,记为延时修正值。

可选的,步骤270可以通过以下步骤实现:根据同步报文的同步报文总长度和同步报文头长度,结合主节点接口速率和从节点接口速率,确定第一打戳收发时间;根据延时请求报文的延时请求报文总长度和延时请求报文头长度,结合主节点接口速率和从节点接口速率,确定第二打戳收发时间;将第二打戳收发时间和第一打戳收发时间的差值,确定为打戳偏差值;将打戳偏差值的一半确定为延时修正值。

进一步的,可以将同步报文总长度和主节点接口速率之比,与同步报文头长度和从节点接口速率之比相加,得到第一打戳收发时间;可以将延时请求报文总长度和从节点接口速率之比,与延时请求报文头长度和主节点接口速率之比相加,得到第二打戳收发时间。

可选的,主节点接口速率可以由主节点通过声明报文发送至从节点。

步骤280、基于延时修正值对备选传输延时值进行修正,得到目标传输延时值。

具体的,由于备选传输延时值是在假设主节点和从节点的接口速率一致的情况下计算得到的传输延时值,而延时修正值是由于主节点和从节点的实际接口速率不同导致的两个报文传输时间差值,因此,可以根据延时修正值调整备选传输延时值,得到准确的目标传输延时值。

步骤290、基于目标传输延时值,对从节点进行时钟同步操作。

示例性的,可以记主节点为Master,记从节点为slave,Master的接口速率为1G,slave的接口速率为100M,进行Ethernet组网。master使用1G的速率发送同步报文sync,sync报文的长度为62Byte,master打完时间戳T1后将sync报文发送出去,slave使用100M的速率接收sync报文,当接收完sync报文的报文头后,打时间戳T2,sync报文头的长度为8Byte。然后slave在打完时间戳T3后,使用100M的速率发送延时请求报文del-request,del-request报文的长度为62Byte,master使用1G的速率接收报文,当接收完del-request报文的报文头8Byte后,打时间戳T4。此时,可以计算出备选传输延时值为:

ReserveDelay=(T2-T1+T4-T3)/2;

在T1至T2之间,用于Master发送报文和Slave接收报文的第一打戳收发时间是:

MSTxTime=62*8/(1E9)+8*8/(1E8);

在T3至T4之间,用于Slave发送报文和Master接收报文的第二打戳收发时间是:

SMTxTime=62*8/(1E8)+8*8/(1E9);

因此,可以计算得到打戳偏差值为:

AsymmetryDealy=SMTxTime–MSTxTime=3.888us;

延时修正值即为:

AsymmetryOffset=AsymmetryDealy/2=1.944us;

因此当master使用1G接口,slave使用100M接口时,因为打时间戳所产生的非对称延时为3.888us,则slave需补偿的延时值为1.944us。假设用mInterfaceRate变量表示master的接口速率,用sInterfaceRate变量表示slave的接口速率,则延时修正值AsymmetryOffset即可表示为:

AsymmetryOffset=432/sInterfaceRate–432/mInterfaceRate;

也就是说,当sInterfaceRate等于mInterfaceRate时,AsymmetryOffset为0,当sInterfaceRate不等于mInterfaceRate时,则需要将AsymmetryOffset补偿到slave的延时值中,则slave的目标传输延时值可以是:

Delay=ReserveDelay-AsymmetryOffset。

因为1588协议通过网络传输,master和slave设备一般都分布在不用的地域,不同的人员维护,所以如果master能将自己的接口速率通过Announce报文告知slave,则slave就可以通过上述方法自动计算出延时修正值AsymmetryOffset,并自动补偿到slave的延时值中。

Announce报文头格式可以如表1所示,flagField可以如表2所示,可以使用flagField的octet为0的第3个bit来标识携带master接口速率功能,同时设备增加一个master接口速率配置项,允许外部配置,使用Announce报文头中Offset为5的reserved字段来携带master接口速率,如表3和4所示。表5为master接口速率的枚举定义,为了节省报文字段开销,使用枚举值来表示不同的master接口速率。

表1 Announce报文头格式

表2 FlagField格式定义

表3 master接口速率定义

表4 master接口速率标志定义

表5 master接口速率枚举定义

本实施例的技术方案,通过确定链路中的主节点和从节点,控制主节点向从节点发送同步报文,并记录发送同步报文的开始时间为第一时间戳,从节点接收同步报文的报文头后,记录第二时间戳;控制从节点向主节点发送延时请求报文,并记录发送延时请求报文的开始时间为第三时间戳,主节点接收延时请求报文的报文头后,记录第四时间戳;根据第一时间戳、第二时间戳、第三时间戳和第四时间戳,确定主节点和从节点的备选传输延时值,根据主节点的主节点接口速率和从节点的从节点接口速率,确定延时修正值,基于延时修正值对备选传输延时值进行修正,得到目标传输延时值,从而对从节点进行时钟同步操作,解决了由主节点和从节点的接口速率不同,导致计算得到的传输延时值不准确,使主从节点的时间不能精确同步的问题,实现了时钟同步网络中各节点的时间都可以精确同步的效果。

实施例三

本发明实施例所提供的时钟同步装置可执行本发明任意实施例所提供的时钟同步方法,具备执行方法相应的功能模块和有益效果。图3是本发明实施例三提供的一种时钟同步装置的结构框图,如图3所示,该装置包括:报文收发时间确定模块310、目标传输延时确定模块320和时钟同步模块330。

报文收发时间确定模块310,用于确定链路中的主节点和从节点,控制所述主节点和所述从节点之间进行报文传输,并记录所述报文传输的报文收发时间;

目标传输延时确定模块320,用于根据所述报文传输时间,结合所述主节点和所述从节点的接口速率,确定目标传输延时值;

时钟同步模块330,用于基于所述目标传输延时值,对所述从节点进行时钟同步操作。

本实施例的技术方案,通过确定链路中的主节点和从节点,控制主节点和从节点之间进行报文传输,并记录报文传输的报文收发时间,根据报文传输时间,结合主节点和从节点的接口速率,确定目标传输延时值,基于目标传输延时值,对从节点进行时钟同步操作,解决了由主节点和从节点的接口速率不同,导致计算得到的传输延时值不准确,使主从节点的时间不能精确同步的问题,实现了时钟同步网络中各节点的时间都可以精确同步的效果。

可选的,所述报文收发时间确定模块,具体用于包括:

控制所述主节点向所述从节点发送同步报文,并记录发送所述同步报文的开始时间为第一时间戳;

所述从节点接收所述同步报文的报文头后,记录第二时间戳;

控制所述从节点向所述主节点发送延时请求报文,并记录发送所述延时请求报文的开始时间为第三时间戳;

所述主节点接收所述延时请求报文的报文头后,记录第四时间戳。

可选的,所述目标传输延时确定模块320,包括:

备选传输延时确定单元,用于根据所述第一时间戳、所述第二时间戳、所述第三时间戳和所述第四时间戳,确定所述主节点和所述从节点的备选传输延时值;

延时修正确定单元,用于根据所述主节点的主节点接口速率和所述从节点的从节点接口速率,确定延时修正值;

目标传输延时确定单元,用于基于所述延时修正值对所述备选传输延时值进行修正,得到目标传输延时值。

可选的,所述备选传输延时确定单元,具体用于:

将所述第二时间戳减去所述第一时间戳,得到第一时间差;

将所述第四时间戳减去所述第二时间戳,得到第二时间差;

将所述第一时间差和所述第二时间的平均值确定为备选传输延时值。

可选的,所述延时修正确定单元,具体用于:

根据所述同步报文的同步报文总长度和同步报文头长度,结合所述主节点接口速率和所述从节点接口速率,确定第一打戳收发时间;

根据所述延时请求报文的延时请求报文总长度和延时请求报文头长度,结合所述主节点接口速率和所述从节点接口速率,确定第二打戳收发时间;

将所述第二打戳收发时间和所述第一打戳收发时间的差值,确定为打戳偏差值;

将所述打戳偏差值的一半确定为延时修正值。

可选的,所述根据所述同步报文的同步报文总长度和同步报文头长度,结合所述主节点接口速率和所述从节点接口速率,确定第一打戳收发时间,包括:

将同步报文总长度和所述主节点接口速率之比,与同步报文头长度和所述从节点接口速率之比相加,得到第一打戳收发时间;

相应的,所述根据所述延时请求报文的延时请求报文总长度和延时请求报文头长度,结合所述主节点接口速率和所述从节点接口速率,确定第二打戳收发时间,包括:

将延时请求报文总长度和所述从节点接口速率之比,与延时请求报文头长度和所述主节点接口速率之比相加,得到第二打戳收发时间。

可选的,所述主节点接口速率由所述主节点通过声明报文发送至所述从节点。

本实施例的技术方案,通过确定链路中的主节点和从节点,控制主节点向从节点发送同步报文,并记录发送同步报文的开始时间为第一时间戳,从节点接收同步报文的报文头后,记录第二时间戳;控制从节点向主节点发送延时请求报文,并记录发送延时请求报文的开始时间为第三时间戳,主节点接收延时请求报文的报文头后,记录第四时间戳;根据第一时间戳、第二时间戳、第三时间戳和第四时间戳,确定主节点和从节点的备选传输延时值,根据主节点的主节点接口速率和从节点的从节点接口速率,确定延时修正值,基于延时修正值对备选传输延时值进行修正,得到目标传输延时值,从而对从节点进行时钟同步操作,解决了由主节点和从节点的接口速率不同,导致计算得到的传输延时值不准确,使主从节点的时间不能精确同步的问题,实现了时钟同步网络中各节点的时间都可以精确同步的效果。

实施例四

图4为本发明实施例四提供的一种计算机设备的结构框图,如图4所示,该计算机设备包括处理器410、存储器420、输入装置430和输出装置440;计算机设备中处理器410的数量可以是一个或多个,图4中以一个处理器410为例;计算机设备中的处理器410、存储器420、输入装置430和输出装置440可以通过总线或其他方式连接,图4中以通过总线连接为例。

存储器420作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的时钟同步方法对应的程序指令/模块(例如,时钟同步装置中的报文收发时间确定模块310、目标传输延时确定模块320和时钟同步模块330)。处理器410通过运行存储在存储器420中的软件程序、指令以及模块,从而执行计算机设备的各种功能应用以及数据处理,即实现上述的时钟同步方法。

存储器420可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器420可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器420可进一步包括相对于处理器410远程设置的存储器,这些远程存储器可以通过网络连接至计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

输入装置430可用于接收输入的数字或字符信息,以及产生与计算机设备的用户设置以及功能控制有关的键信号输入。输出装置440可包括显示屏等显示设备。

实施例五

本发明实施例五还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种时钟同步方法,该方法包括:

确定链路中的主节点和从节点,控制所述主节点和所述从节点之间进行报文传输,并记录所述报文传输的报文收发时间;

根据所述报文传输时间,结合所述主节点和所述从节点的接口速率,确定目标传输延时值;

基于所述目标传输延时值,对所述从节点进行时钟同步操作。

当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的时钟同步方法中的相关操作。

通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

值得注意的是,上述时钟同步装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

相关技术
  • 多设备间时钟基准同步方法、装置、设备和存储介质
  • 一种时钟同步方法、装置、设备及存储介质
技术分类

06120112582659