CN113098646A - 一种时间同步方法、装置、电子设备及存储介质 - Google Patents
一种时间同步方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN113098646A CN113098646A CN202010019504.3A CN202010019504A CN113098646A CN 113098646 A CN113098646 A CN 113098646A CN 202010019504 A CN202010019504 A CN 202010019504A CN 113098646 A CN113098646 A CN 113098646A
- Authority
- CN
- China
- Prior art keywords
- current
- time synchronization
- link
- time
- synchronous 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/0635—Clock or time synchronisation in a network
- H04J3/0638—Clock or time synchronisation among nodes; Internode synchronisation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
Abstract
本发明实施例公开了一种时间同步方法、装置、电子设备及存储介质,所述时间同步方法,包括:确定接收的当前同步报文的当前发送周期,以及所述当前同步报文的接收时刻与上一个同步报文的接收时刻的间隔时长;确定所述间隔时长与所述当前发送周期的时长差值的绝对值,是否小于或等于预设最大差值绝对值;若小于或等于所述预设最大差值绝对值,则获取上一次确定的历史时钟偏差,并基于所述历史时钟偏差进行时间同步。采用本发明可以有效减少主从节点的报文处理负荷,有效减少资源浪费。
Description
技术领域
本发明涉及通信技术领域,具体涉及一种时间同步方法、装置、电子设备及存储介质。
背景技术
分布式网络是由部署在不同地点的多台服务器(可称为节点)构成的网状网络,为了为应用层提供良好的网络服务基础,实现各台服务器之间的时间同步也尤为重要。
现阶段,通常基于IEEE Std 1588-2008(精确时间同步协议)实现节点间的时间同步。具体的,可以选择一个节点作为主节点,其他节点为从节点。主节点通过自身安装的主时钟设备按照发送周期向从节点发送Sync报文(同步报文),从节点通过自身安装的从时钟设备接收Sync报文记录Sync报文的接收时刻t2,并解析Sync报文得到Sync报文的发送时刻t1。然后,从时钟设备向主时钟设备发送Delay_Req报文(延迟请求报文),记录Delay_Req报文的发送时刻t3。主时钟设备接收Delay_Req报文记录Delay_Req报文的接收时刻t4,并向从时钟设备发送Delay_Resq报文(管理报文)。然后,从时钟设备接收Delay_Resq报文,解析Delay_Resq报文得到Delay_Req报文的接收时刻t4,并通过公式Offset=(t2-t1)-((t2-t1)+(t4-t3))/2,计算从时钟设备相对于主时钟设备的时钟偏差Offset,以基于该时钟偏差进行时间同步,即基于该时钟偏差校正自身时间实现主从节点的时间同步。
现有技术中,从时钟设备每次接收到Sync报文均要进行报文收发,当主从节点链路稳定时,每次计算的时钟偏差基本不变,进行时间同步则会增加主从节点的报文处理负荷,造成资源浪费。
发明内容
由于现有方法存在上述问题,本发明实施例提出一种时间同步方法、装置、电子设备及存储介质。
第一方面,本发明实施例提出一种时间同步方法,包括:
确定接收的当前同步报文的当前发送周期,以及所述当前同步报文的接收时刻与上一个同步报文的接收时刻的间隔时长;
确定所述间隔时长与所述当前发送周期的时长差值的绝对值,是否小于或等于预设最大差值绝对值;
若小于或等于所述预设最大差值绝对值,则获取上一次确定的历史时钟偏差,并基于所述历史时钟偏差进行时间同步。
可选的,所述获取上一次确定的历史时钟偏差,并基于所述历史时钟偏差进行时间同步之前,还包括:
获取所述当前同步报文的第一顺序号,及所述上一个同步报文的第二顺序号,并确定所述第一顺序号与所述第二顺序号的差值是否为一;
若为一,则获取上一次确定的历史时钟偏差,并基于所述历史时钟偏差进行时间同步。
可选的,所述若小于或等于所述预设最大差值绝对值,则获取上一次确定的历史时钟偏差,并基于所述历史时钟偏差进行时间同步,包括:
若小于或等于所述预设最大差值绝对值,则判断所述当前同步报文对应的链路是否处于稳定状态;
若处于稳定状态,则获取上一次确定的时钟偏差,并基于所述时钟偏差进行时间同步;
若未处于稳定状态,则计算当前时刻的实际时钟偏差,并基于所述实际时钟偏差进行时间同步。
可选的,所述判断当前链路是否处于稳定状态,包括:
获取所述链路对应的链路计数器的当前计数值,对所述当前计数值加一,并确定所述加一后的计数值是否大于或等于预设最小计数值;
若大于或等于所述预设最小计数值,则确定所述链路处于稳定状态,否则,确定所述链路未处于稳定状态。
可选的,若未处于稳定状态之后,还包括:
对所述链路对应的链路计数器的当前计数值加一,并将所述链路的状态设置为欲稳定状态。
可选的,所述确定所述间隔时长与所述当前发送周期的时长差值的绝对值,是否小于或等于预设最大差值绝对值之后,还包括:
若大于所述预设最大差值绝对值,则计算当前时刻的实际时钟偏差,并基于所述实际时钟偏差进行时间同步。
可选的,所述若大于所述预设最大差值绝对值之后,还包括:
确定所述当前同步报文对应的链路,以及所述链路对应的链路计数器,将所述链路计数器的计数值清零,并将所述链路设置为不稳定状态。
可选的,所述确定接收的当前同步报文的当前发送周期之后,还包括:
获取上一个同步报文携带的历史发送周期,并确定所述当前发送周期与所述历史发送周期是否相同;
若相同,则确定所述当前同步报文的接收时刻与上一个同步报文的接收时刻的间隔时长;
若不同,则基于所述当前发送周期更新本地记录的报文发送周期,并将所述当前同步报文对应的链路设置为不稳定状态。
第二方面,本发明实施例还提出一种时间同步装置,包括时长确定模块、差值确定模块和时间同步模块,其中:
所述时长确定模块,用于确定接收的当前同步报文的当前发送周期,以及所述当前同步报文的接收时刻与上一个同步报文的接收时刻的间隔时长;
所述差值确定模块,用于确定所述间隔时长与所述当前发送周期的时长差值的绝对值,是否小于或等于预设最大差值绝对值;
所述时间同步模块,用于若小于或等于所述预设最大差值绝对值,则获取上一次确定的历史时钟偏差,并基于所述历史时钟偏差进行时间同步。
可选的,所述时间同步模块,还用于:
获取所述当前同步报文的第一顺序号,及所述上一个同步报文的第二顺序号,并确定所述第一顺序号与所述第二顺序号的差值是否为一;
若为一,则获取上一次确定的历史时钟偏差,并基于所述历史时钟偏差进行时间同步。
可选的,所述时间同步模块,用于:
若小于或等于所述预设最大差值绝对值,则判断所述当前同步报文对应的链路是否处于稳定状态;
若处于稳定状态,则获取上一次确定的时钟偏差,并基于所述时钟偏差进行时间同步;
若未处于稳定状态,则计算当前时刻的实际时钟偏差,并基于所述实际时钟偏差进行时间同步。
可选的,所述时间同步模块,用于:
获取所述链路对应的链路计数器的当前计数值,对所述当前计数值加一,并确定所述加一后的计数值是否大于或等于预设最小计数值;
若大于或等于所述预设最小计数值,则确定所述链路处于稳定状态,否则,确定所述链路未处于稳定状态。
可选的,还包括状态设置模块,用于:
对所述链路对应的链路计数器的当前计数值加一,并将所述链路的状态设置为欲稳定状态。
可选的,所述时间同步模块,还用于:
若大于所述预设最大差值绝对值,则计算当前时刻的实际时钟偏差,并基于所述实际时钟偏差进行时间同步。
可选的,所述状态设置模块,还用于:
确定所述当前同步报文对应的链路,以及所述链路对应的链路计数器,将所述链路计数器的计数值清零,并将所述链路设置为不稳定状态。
可选的,所述间隔确定模块,还用于:
获取上一个同步报文携带的历史发送周期,并确定所述当前发送周期与所述历史发送周期是否相同;
若相同,则确定所述当前同步报文的接收时刻与上一个同步报文的接收时刻的间隔时长;
所述状态设置模块,还用于:
若不同,则基于所述当前发送周期更新本地记录的报文发送周期,并将所述当前同步报文对应的链路设置为不稳定状态。
第三方面,本发明实施例还提出一种电子设备,包括:
至少一个处理器;以及
与所述处理器通信连接的至少一个存储器,其中:
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行上述方法。
第四方面,本发明实施例还提出一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机程序,所述计算机程序使所述计算机执行上述方法。
由上述技术方案可知,本发明实施例通过确定当前Sync报文的接收时刻与上一个Sync报文的接收时刻的间隔时长,并在该间隔时长小于或等于所述预设最大差值绝对值时,获取基于上一次确定的历史时钟偏差进行时间同步。这样,一方面,在前述间隔时长小于或等于预设最大差值绝对值时,从时钟设备无需向主时钟设备发送Delay_Req报文,主时钟设备也无需向从时钟设备发送Delay_Resq报文,从时钟设备可以基于上一次确定的历史时钟偏差进行时间同步,从而可以有效减少主从时钟设备的报文处理负荷,即可以有效减少主从节点的报文处理负荷,进而可以有效减少资源浪费。另一方面,在前述间隔时长小于或等于预设最大差值绝对值时,从时钟设备无需重新计算时钟偏差,从而可以进一步减少资源浪费。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些图获得其他的附图。
图1为本发明一实施例提供的一种时间同步方法的流程示意图;
图2为本发明一实施例提供的一种设置链路状态的方法的流程示意图;
图3为本发明一实施例提供的一种时间同步装置的结构示意图;
图4为本发明一实施例提供的电子设备的逻辑框图。
具体实施方式
下面结合附图,对本发明的具体实施方式作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
图1示出了本实施例提供的一种时间同步方法的流程示意图,包括:
S101,确定接收的当前同步报文的当前发送周期,以及当前同步报文的接收时刻与上一个同步报文的接收时刻的间隔时长。
其中,所述当前同步报文Sync报文指当前时刻从时钟设备接收到的Sync报文,该Sync报文可以是主时钟设备发送的。
所述当前发送周期指当前Sync报文携带的主时钟设备发送Sync报文的发送周期。
所述上一个Sync报文指与当前时刻的间隔时长最小的接收时刻对应的Sync报文。
在实施中,从时钟设备可以根据接收到的当前Sync报文携带的当前发送周期,以及上一个Sync报文的接收时刻与当前Sync报文的接收时刻的间隔时长,进行主时钟设备与从时钟设备的时间同步,以实现主从节点的时间同步。具体的,从时钟设备接收到当前Sync报文之后,可以对该当前Sync报文进行解析,得到当前Sync报文携带的当前发送周期。然后,还可以获取上一个Sync报文的接收时刻,并确定当前Sync报文的接收时刻。之后,可以计算前述当前Sync报文的接收时刻,与上一个Sync报文的接收时刻的间隔时长。
S102,确定间隔时长与当前发送周期的时长差值的绝对值,是否小于或等于预设最大差值绝对值。
其中,所述预设最大差值绝对值指预先设定的允许的间隔时长与当前发送周期的最大间隔时长的绝对值。
在实施中,从时钟设备在确定出当前Sync报文的接收时刻与上一个Sync报文的接收时刻的间隔时长之后,可以计算该间隔时长与上述当前发送周期的时长差值的绝对值。然后,可以获取上述预设最大差值绝对值,并可以确定前述间隔时长与上述当前发送周期的时长差值的绝对值,是否大于该预设最大差值绝对值,以根据确定结果,执行不同的时间同步过程。
S103,若小于或等于预设最大差值绝对值,则获取上一次确定的历史时钟偏差,并基于历史时钟偏差进行时间同步。
其中,所述上一次确定的历史时钟偏差指从时钟设备计算过的,与当前时刻的间隔时长最小的时钟偏差。
在实施中,若上述间隔时长与当前发送周期的时长差值的绝对值小于或等于上述预设最大差值绝对值,从时钟设备则可以获取上一次确定的历史时钟偏差。然后,可以基于该上一次确定的历史时钟偏差对自身的时间进行校正,实现主时钟设备与从时钟设备的时间同步,进而实现主从节点之间的时间同步。
由上述技术方案可知,本发明实施例通过确定当前Sync报文的接收时刻与上一个Sync报文的接收时刻的间隔时长,并在该间隔时长小于或等于所述预设最大差值绝对值时,获取基于上一次确定的历史时钟偏差进行时间同步。这样,一方面,在前述间隔时长小于或等于预设最大差值绝对值时,从时钟设备无需向主时钟设备发送Delay_Req报文,主时钟设备也无需向从时钟设备发送Delay_Resq报文,从时钟设备可以基于上一次确定的历史时钟偏差进行时间同步,从而可以有效减少主从时钟设备的报文处理负荷,即可以有效减少主从节点的报文处理负荷,进而可以有效减少资源浪费。另一方面,在前述间隔时长小于或等于预设最大差值绝对值时,从时钟设备无需重新计算时钟偏差,从而可以进一步减少资源浪费。
进一步地,在上述方法实施例的基础上,还可以结合当前当前同步报文与上一个同步报文的顺序号是否连续确定是否基于历史时钟偏差进行时间同步,相应的处理可以如下:获取当前同步报文的第一顺序号,及上一个同步报文的第二顺序号,并确定第一顺序号与第二顺序号的差值是否为一;若为一,则获取上一次确定的历史时钟偏差,并基于历史时钟偏差进行时间同步。
其中,所述第一顺序号指当前同步报文携带的顺序号。
所述第二顺序号指当前同步报文的上一个同步报文携带的顺序号。
在实施中,在确定上述间隔时长与所述当前发送周期的时长差值的绝对值小于或等于上述预设最大差值绝对值之后,还可以获取当前同步报文的第一顺序号,以及当前同步报文的上一个同步报文的第二顺序号。然后,可以确定前述第一顺序号与第二顺序号的差值是否为一,即确定第一顺序号和第二顺序号是否连续。若为一,即第一顺序号和第二顺序号连续,则可以确定当前未发生丢包,此时,可以获取上一次确定的历史时钟偏差,并基于所述历史时钟偏差进行时间同步。这样,考虑到同步报文在传输过程中可能会发生丢包,故而,在间隔时长与所述当前发送周期的时长差值的绝对值,小于或等于预设最大差值绝对值的情况下,结合同步报文的顺序号确定是否基于历史时钟偏差进行时间同步,可以进一步提高时间同步的准确性和时间同步效率。
进一步地,在上述方法实施例的基础上,可以在当前Sync报文对应的链路处于稳定状态时,基于上一次确定的时钟偏差进行时间同步,相应的上述步骤S103的处理可以如下:若小于或等于预设最大差值绝对值,则判断当前同步报文对应的链路是否处于稳定状态;若处于稳定状态,则获取上一次确定的时钟偏差,并基于时钟偏差进行时间同步;若未处于稳定状态,则计算当前时刻的实际时钟偏差,并基于实际时钟偏差进行时间同步。
在实施中,若当前Sync报文的接收时刻与上一个Sync报文的接收时刻的间隔时长与当前发送周期的时长差值的绝对值,小于或等于预设最大差值绝对值,从时钟设备则可以认为当前发送周期与上一个同步报文携带的历史发送周期相符,即可以认为前述当前发送周期与上一个Sync报文携带的历史发送周期相比无变化,无需更新本地记录的Sync报文的发送周期。然后,从时钟设备可以判断前述当前Sync报文对应的链路是否处于稳定状态。若当前Sync报文对应的链路处于稳定状态,从时钟设备则可以获取上一次确定的时钟偏差,并基于该时钟偏差进行时间同步。若当前Sync报文对应的链路未处于稳定状态,从时钟设备则可以重新计算当前时刻的实际时钟偏差,并基于该实际时钟偏差进行时间同步。具体的,从时钟设备重新计算实际时钟偏差的具体处理可以是:首先,从时钟设备可以记录Sync报文的接收时刻T2,并可以解析Sync报文,得到Sync报文的发送时刻T1。然后,从时钟设备可以向主时钟设备发送Delay_Req报文,并记录Delay_Req报文的发送时刻T3。主时钟设备接收到Delay_Req报文后,可以记录Delay_Req报文的接收时刻T4,并向从时钟设备发送Delay_Resq报文。然后,从时钟设备接收到Delay_Resq报文后,可以解析Delay_Resq报文得到Delay_Req报文的接收时刻T4,并可以通过公式(1)计算从时钟设备相对于主时钟设备的时钟偏差Offset,以基于该时钟偏差进行时间同步。这样,从时钟设备在链路稳定时,可以基于上一次确定的时钟偏差进行时间同步,在链路未稳定时,可以计算实际时钟偏差进行时间同步,如此,一方面,可以有效减少主从时钟设备的报文处理负荷,即可以有效减少主从节点的报文处理负荷,进而可以有效减少资源浪费;另一方面,根据链路的不同状态,基于不同的时钟偏差进行时间同步,还可以进一步提高时间同步的准确性。
Offset=(T2-T1)-((T2-T1)+(T4-T3))/2 (1)
进一步地,在上述方法实施例的基础上,可以根据链路计数器的计数值确定链路是否处于稳定状态,相应的处理可以如下:获取链路对应的链路计数器的当前计数值,对当前计数值加一,并确定加一后的计数值是否大于或等于预设最小计数值;若大于或等于预设最小计数值,则确定链路处于稳定状态,否则,确定链路未处于稳定状态。
其中,所述预设最小计数值指预先设定的可以将链路设置为稳定状态时,当前Sync报文与上一个Sync报文的接收时刻的间隔时长与当前发送周期相符的最小连续次数,即当前Sync报文与上一个Sync报文的接收时刻的间隔时长与当前发送周期相符的连续次数大于或等于该预设最小计数值时,则可以确定该Sync报文对应的链路处于稳定状态。
在实施中,可以根据相邻Sync报文的接收时刻的间隔时长,是否与当前发送周期相符,为Sync报文对应的链路设置不同的状态,该状态可以包括不稳定状态(UNSTABLE):从时钟设备的初始状态,或当前发送周期与本地记载的最新的发送周期不相符,或当前Sync报文与上一个Sync报文的接收时刻的间隔时长与当前发送周期不相符时,均可以将Sync报文对应的链路状态设置为UNSTABLE;欲稳定状态(PRESTABLE):当前Sync报文与上一个Sync报文的接收时刻的间隔时长与当前发送周期相符,当连续次数未达到预设最小计数值时,可以将该Sync报文对应的链路状态设置为PRESTABLE;以及稳定状态(STABLE):即当前Sync报文与上一个Sync报文的接收时刻的间隔时长与当前发送周期相符的连续次数大于或等于上述预设最小计数值时,即该链路处于PRESTABLE的连续次数大于或等于前述预设最小计数值时,可以将该Sync报文对应的链路状态设置为STABLE。
从时钟设备确定当前Sync报文对应的链路是否处于STABLE时,可以先获取该链路对应的链路计数器的当前计数值,并可以对该当前计数值加一。然后,获取上述预设最小计数值,并将前述加一后的计数值与该预设最小计数值进行比较,确定加一后的计数值是否大于或等于预设最小计数值。若加一后的计数值大于或等于预设最小计数值,则可以确定前述链路处于稳定状态。若加一后的计数值小于预设最小计数值,则可以确定前述链路未处于稳定状态。可以理解,当确定前述链路处于稳定状态时,从时钟设备还可以检测该链路的当前状态是否被设置为STABLE,如果没有,则可以将该链路的状态设置为STABLE。这样,基于链路计数器的计数值确定链路是否处于稳定状态,以根据链路的不同状态选择不同的过程进行时间同步,从而可以更准确的确定链路是否处于稳定状态,进一步提高时间同步的准确性,进一步减少资源浪费。
进一步地,在上述方法实施例的基础上,可以将了链路状态设置为稳定状态,相应的处理可以如下:对链路对应的链路计数器的当前计数值加一,并将链路的状态设置为欲稳定状态。
在实施中,当上述间隔时长与当前发送周期的时长差值的绝对值小于或等于上述预设最大差值绝对值,且从时钟设备确定当前Sync报文对应的链路未处于稳定状态时,从时钟设备可以获取该链路对应的链路计数器的当前计数值。然后,从时钟设备可以对该当前计数值加一,并将前述链路的状态设置为PRESTABLE。可以理解,在设置链路为PRESTABLE之前,可以检测链路的当前状态,若当前状态已经是PRESTABLE,则无需重复设置,只需对该当前计数值加一即可。这样,对链路计数器的计数值进行加一处理,并设置PRESTABLE,可以为之后对该链路状态的判断提供数据基础,从而可以进一步提高时间同步的准确性,减少资源浪费。
进一步地,在上述方法实施例的基础上,还可以计算实际时钟偏差,基于实际时钟偏差进行时间同步,相应的处理可以如下:若大于预设最大差值绝对值,则计算当前时刻的实际时钟偏差,并基于实际时钟偏差进行时间同步。
在实施中,若上述间隔时长与上述当前发送周期的时长差值的绝对值,大于上述预设最大差值绝对值,从时钟设备还可以重新计算当前时刻的实际时钟偏差,并可以基于该实际时钟偏差进行时间同步。这样,从时钟设备可以基于实际时钟偏差进行时间同步,可以进一步提高时间同步的准确性。
进一步地,在上述方法实施例的基础上,还可以设置上述链路为不稳定状态,相应的处理可以如下:确定当前同步报文对应的链路,以及链路对应的链路计数器,将链路计数器的计数值清零,并将链路设置为不稳定状态。
在实施中,若上述间隔时长与上述当前发送周期的时长差值的绝对值,大于上述预设最大差值绝对值,从时钟设备则可以确定上述当前Sync报文对应的链路,以及该链路对应的链路计数器。然后,可以将前述链路计数器的计数值清零,并可以将该链路设置为UNSTABLE。这样,对链路计数器的计数值进行清零,并设置UNSTABLE,可以为之后对该链路状态的判断提供数据基础,从而可以进一步提高时间同步的准确性,减少资源浪费。
进一步地,在上述方法实施例的基础上,还可以基于当前发送周期和历史发送周期,更新本地记录的Sync报文的发送周期,相应的处理可以如下:获取上一个同步报文携带的历史发送周期,并确定当前发送周期与历史发送周期是否相同;若相同,则确定当前同步报文的接收时刻与上一个同步报文的接收时刻的间隔时长;若不同,则基于当前发送周期更新本地记录的报文发送周期,并将当前同步报文对应的链路设置为不稳定状态。
在实施中,从时钟设备接收到当前Sync报文,并确定了当前Sync报文携带的当前发送周期之后,可以获取上一个同步报文携带的历史发送周期。然后,可以将该当前发送周期和该历史发送周期进行比较。以确定当前发送周期与历史发送周期是否相同。若相同,则可以确定当前Sync报文的接收时刻与上一个Sync报文的接收时刻的间隔时长,以在该间隔时长小于或等于上述预设最大差值绝对值时,获取上一次确定的历史时钟偏差,并基于该上一次确定的历史时钟偏差进行时间同步。若不同,则可以将前述当前发送周期更新为本地记录的报文发送周期(即Sync报文的发送周期),并可以将当前Sync报文对应的链路状态设置为UNSTABLE,并可以重新计算实际时钟偏差,以基于实际时钟偏差进行时间同步。
参照图2,图2示出了本发明实施例提供的时间同步方法中设置链路状态的方法流程,具体的,当接收到当前Sync报文时,可以记录当前接收时刻,并确定当前Sync报文中携带的当前发送周期。然后,可以判断该当前Sync报文是否的从时钟设备在本次启动后接收的首个Sync报文,若是首个Sync报文,则可以检测当前Sync报文对应的链路是否处于UNSTABLE,如果处于UNSTABLE,本次状态设置处理结束;如果未处于UNSTABLE,则将该链路设置为UNSTABLE。若不是首个Sync报文,则可以判断当前发送周期与本地记载的最新的历史发送周期是否相同,如果相同,则更新本地记录的Sync报文发送周期,并确定链路是否处于UNSTABLE;如果不相同,则确定当前Sync报文与上一个Sync报文的接收时刻的间隔时长,并可以判断该间隔时长是否与当前发送周期相符。若相符,则可以获取当前Sync报文对应的链路的链路计数器的当前计数值,对该当前计数值加一,并判断加一后的计数值是否小于预设最小计数值。如果大于或等于预设最小计数值,则确定链路是否处于STABLE,并在链路未处于STABLE时,设置链路状态为STABLE。如果小于预设最小计数值,则检测链路是否处于PRESTABLE,并在链路未处于PRESTABLE时,设置链路状态为PRESTABLE。
上述各状态间的转换条件可以如下:UNSTABLE转换为PRESTABLE:当检测到某Sync报文的接收时刻与上一个Sync报文的接收时刻的间隔时长,与该Sync报文携带的发送周期相符时,可以转换为PRESTABLE。PRESTABLE转换为UNSTABLE:当检测到某Sync报文的接收时刻与上一个Sync报文的接收时刻的间隔时长,与该Sync报文携带的发送周期不相符时,可以转换为UNSTABLE,或者,超时没有接收到Sync报文,转换为UNSTABLE。PRESTABLE转换STABLE:当检测到连续预设最小计数值次,Sync报文的接收时刻与上一个Sync报文的接收时刻的间隔时长都与Sync报文携带的发送周期相符时,可以转换为STABLE。STABLE转换为UNSTABLE:当检测到的某Sync报文的接收时刻与上一个Sync报文的接收时刻的间隔时长与该Sync报文携带的发送周期不相符时,可以转换为UNSTABLE,或者超时没有接收到Sync报文,转换为UNSTABLE。
图3示出了本实施例提供的一种时间同步装置,包括时长确定模块301、差值确定模块302和时间同步模块303,其中:
所述时长确定模块301,用于确定接收的当前同步报文的当前发送周期,以及所述当前同步报文的接收时刻与上一个同步报文的接收时刻的间隔时长;
所述差值确定模块302,用于确定所述间隔时长与所述当前发送周期的时长差值的绝对值,是否小于或等于预设最大差值绝对值;
所述时间同步模块303,用于若小于或等于所述预设最大差值绝对值,则获取上一次确定的历史时钟偏差,并基于所述历史时钟偏差进行时间同步。
可选的,所述时间同步模块303,用于:
若小于或等于所述预设最大差值绝对值,则判断所述当前同步报文对应的链路是否处于稳定状态;
若处于稳定状态,则获取上一次确定的时钟偏差,并基于所述时钟偏差进行时间同步;
若未处于稳定状态,则计算当前时刻的实际时钟偏差,并基于所述实际时钟偏差进行时间同步。
可选的,所述时间同步模块303,用于:
获取所述链路对应的链路计数器的当前计数值,对所述当前计数值加一,并确定所述加一后的计数值是否大于或等于预设最小计数值;
若大于或等于所述预设最小计数值,则确定所述链路处于稳定状态,否则,确定所述链路未处于稳定状态。
可选的,还包括状态设置模块,用于:
对所述链路对应的链路计数器的当前计数值加一,并将所述链路的状态设置为欲稳定状态。
可选的,所述时间同步模块303,还用于:
若大于所述预设最大差值绝对值,则计算当前时刻的实际时钟偏差,并基于所述实际时钟偏差进行时间同步。
可选的,所述状态设置模块,还用于:
确定所述当前同步报文对应的链路,以及所述链路对应的链路计数器,将所述链路计数器的计数值清零,并将所述链路设置为不稳定状态。
可选的,所述间隔确定模块301,还用于:
获取上一个同步报文携带的历史发送周期,并确定所述当前发送周期与所述历史发送周期是否相同;
若相同,则确定所述当前同步报文的接收时刻与上一个同步报文的接收时刻的间隔时长;
所述状态设置模块,还用于:
若不同,则基于所述当前发送周期更新本地记录的报文发送周期,并将所述当前同步报文对应的链路设置为不稳定状态。
本实施例所述的时间装置可以用于执行上述方法实施例,其原理和技术效果类似,此处不再赘述。
参照图4,所述电子设备,包括:处理器(processor)401、存储器(memory)402和总线403;
其中,
所述处理器401和存储器402通过所述总线403完成相互间的通信;
所述处理器401用于调用所述存储器402中的程序指令,以执行上述各方法实施例所提供的方法。
本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法。
本实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (18)
1.一种时间同步方法,其特征在于,包括:
确定接收的当前同步报文的当前发送周期,以及所述当前同步报文的接收时刻与上一个同步报文的接收时刻的间隔时长;
确定所述间隔时长与所述当前发送周期的时长差值的绝对值,是否小于或等于预设最大差值绝对值;
若小于或等于所述预设最大差值绝对值,则获取上一次确定的历史时钟偏差,并基于所述历史时钟偏差进行时间同步。
2.根据权利要求1所述的时间同步方法,其特征在于,所述获取上一次确定的历史时钟偏差,并基于所述历史时钟偏差进行时间同步之前,还包括:
获取所述当前同步报文的第一顺序号,及所述上一个同步报文的第二顺序号,并确定所述第一顺序号与所述第二顺序号的差值是否为一;
若为一,则获取上一次确定的历史时钟偏差,并基于所述历史时钟偏差进行时间同步。
3.根据权利要求1所述的时间同步方法,其特征在于,所述若小于或等于所述预设最大差值绝对值,则获取上一次确定的历史时钟偏差,并基于所述历史时钟偏差进行时间同步,包括:
若小于或等于所述预设最大差值绝对值,则判断所述当前同步报文对应的链路是否处于稳定状态;
若处于稳定状态,则获取上一次确定的时钟偏差,并基于所述时钟偏差进行时间同步;
若未处于稳定状态,则计算当前时刻的实际时钟偏差,并基于所述实际时钟偏差进行时间同步。
4.根据权利要求3所述的时间同步方法,其特征在于,所述判断当前链路是否处于稳定状态,包括:
获取所述链路对应的链路计数器的当前计数值,对所述当前计数值加一,并确定所述加一后的计数值是否大于或等于预设最小计数值;
若大于或等于所述预设最小计数值,则确定所述链路处于稳定状态,否则,确定所述链路未处于稳定状态。
5.根据权利要求3所述的时间同步方法,其特征在于,若未处于稳定状态之后,还包括:
对所述链路对应的链路计数器的当前计数值加一,并将所述链路的状态设置为欲稳定状态。
6.根据权利要求1所述的时间同步方法,其特征在于,所述确定所述间隔时长与所述当前发送周期的时长差值的绝对值,是否小于或等于预设最大差值绝对值之后,还包括:
若大于所述预设最大差值绝对值,则计算当前时刻的实际时钟偏差,并基于所述实际时钟偏差进行时间同步。
7.根据权利要求6所述的时间同步方法,其特征在于,所述若大于所述预设最大差值绝对值之后,还包括:
确定所述当前同步报文对应的链路,以及所述链路对应的链路计数器,将所述链路计数器的计数值清零,并将所述链路设置为不稳定状态。
8.根据权利要求1所述的时间同步方法,其特征在于,所述确定接收的当前同步报文的当前发送周期之后,还包括:
获取上一个同步报文携带的历史发送周期,并确定所述当前发送周期与所述历史发送周期是否相同;
若相同,则确定所述当前同步报文的接收时刻与上一个同步报文的接收时刻的间隔时长;
若不同,则基于所述当前发送周期更新本地记录的报文发送周期,并将所述当前同步报文对应的链路设置为不稳定状态。
9.一种时间同步装置,其特征在于,包括时长确定模块、差值确定模块和时间同步模块,其中:
所述时长确定模块,用于确定接收的当前同步报文的当前发送周期,以及所述当前同步报文的接收时刻与上一个同步报文的接收时刻的间隔时长;
所述差值确定模块,用于确定所述间隔时长与所述当前发送周期的时长差值的绝对值,是否小于或等于预设最大差值绝对值;
所述时间同步模块,用于若小于或等于所述预设最大差值绝对值,则获取上一次确定的历史时钟偏差,并基于所述历史时钟偏差进行时间同步。
10.根据权利要求9所述的时间同步装置,其特征在于,所述时间同步模块,还用于:
获取所述当前同步报文的第一顺序号,及所述上一个同步报文的第二顺序号,并确定所述第一顺序号与所述第二顺序号的差值是否为一;
若为一,则获取上一次确定的历史时钟偏差,并基于所述历史时钟偏差进行时间同步。
11.根据权利要求9所述的时间同步装置,其特征在于,所述时间同步模块,用于:
若小于或等于所述预设最大差值绝对值,则判断所述当前同步报文对应的链路是否处于稳定状态;
若处于稳定状态,则获取上一次确定的时钟偏差,并基于所述时钟偏差进行时间同步;
若未处于稳定状态,则计算当前时刻的实际时钟偏差,并基于所述实际时钟偏差进行时间同步。
12.根据权利要求11所述的时间同步装置,其特征在于,所述时间同步模块,用于:
获取所述链路对应的链路计数器的当前计数值,对所述当前计数值加一,并确定所述加一后的计数值是否大于或等于预设最小计数值;
若大于或等于所述预设最小计数值,则确定所述链路处于稳定状态,否则,确定所述链路未处于稳定状态。
13.根据权利要求11所述的时间同步装置,其特征在于,还包括状态设置模块,用于:
对所述链路对应的链路计数器的当前计数值加一,并将所述链路的状态设置为欲稳定状态。
14.根据权利要求9所述的时间同步装置,其特征在于,所述时间同步模块,还用于:
若大于所述预设最大差值绝对值,则计算当前时刻的实际时钟偏差,并基于所述实际时钟偏差进行时间同步。
15.根据权利要求14所述的时间同步装置,其特征在于,所述状态设置模块,还用于:
确定所述当前同步报文对应的链路,以及所述链路对应的链路计数器,将所述链路计数器的计数值清零,并将所述链路设置为不稳定状态。
16.根据权利要求9所述的时间同步装置,其特征在于,所述间隔确定模块,还用于:
获取上一个同步报文携带的历史发送周期,并确定所述当前发送周期与所述历史发送周期是否相同;
若相同,则确定所述当前同步报文的接收时刻与上一个同步报文的接收时刻的间隔时长;
所述状态设置模块,还用于:
若不同,则基于所述当前发送周期更新本地记录的报文发送周期,并将所述当前同步报文对应的链路设置为不稳定状态。
17.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至8任一所述的时间同步方法。
18.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至8任一所述的时间同步方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010019504.3A CN113098646B (zh) | 2020-01-08 | 2020-01-08 | 一种时间同步方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010019504.3A CN113098646B (zh) | 2020-01-08 | 2020-01-08 | 一种时间同步方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113098646A true CN113098646A (zh) | 2021-07-09 |
CN113098646B CN113098646B (zh) | 2022-08-05 |
Family
ID=76663415
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010019504.3A Active CN113098646B (zh) | 2020-01-08 | 2020-01-08 | 一种时间同步方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113098646B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113676414A (zh) * | 2021-09-01 | 2021-11-19 | 中国银行股份有限公司 | 信息合并方法、装置、电子设备、介质及产品 |
CN113691339A (zh) * | 2021-08-18 | 2021-11-23 | 北京车和家信息技术有限公司 | 时钟同步方法、装置、设备及存储介质 |
CN115442244A (zh) * | 2022-09-02 | 2022-12-06 | 南方电网科学研究院有限责任公司 | 电力实时仿真中通信间隔的校准方法、装置及相关设备 |
CN115694704A (zh) * | 2022-10-28 | 2023-02-03 | 重庆长安汽车股份有限公司 | 一种时间同步方法、装置、设备及存储介质 |
CN116483678A (zh) * | 2023-05-16 | 2023-07-25 | 紫光同芯微电子有限公司 | 一种信息处理方法和相关装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101252429A (zh) * | 2008-02-22 | 2008-08-27 | 浙江大学 | 一种提高分布式网络系统中时钟同步精度的方法 |
US20160211969A1 (en) * | 2013-09-30 | 2016-07-21 | Huawei Technologies Co., Ltd. | Frequency offset detection method and apparatus |
CN106569544A (zh) * | 2015-10-10 | 2017-04-19 | 上海东软载波微电子有限公司 | 实时时钟芯片及其时钟校准方法、装置 |
CN110504959A (zh) * | 2019-08-12 | 2019-11-26 | 兆讯恒达微电子技术(北京)有限公司 | 一种片内时钟的校准方法和校准电路 |
-
2020
- 2020-01-08 CN CN202010019504.3A patent/CN113098646B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101252429A (zh) * | 2008-02-22 | 2008-08-27 | 浙江大学 | 一种提高分布式网络系统中时钟同步精度的方法 |
US20160211969A1 (en) * | 2013-09-30 | 2016-07-21 | Huawei Technologies Co., Ltd. | Frequency offset detection method and apparatus |
CN106569544A (zh) * | 2015-10-10 | 2017-04-19 | 上海东软载波微电子有限公司 | 实时时钟芯片及其时钟校准方法、装置 |
CN110504959A (zh) * | 2019-08-12 | 2019-11-26 | 兆讯恒达微电子技术(北京)有限公司 | 一种片内时钟的校准方法和校准电路 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113691339A (zh) * | 2021-08-18 | 2021-11-23 | 北京车和家信息技术有限公司 | 时钟同步方法、装置、设备及存储介质 |
CN113691339B (zh) * | 2021-08-18 | 2023-09-29 | 北京车和家信息技术有限公司 | 时钟同步方法、装置、设备及存储介质 |
CN113676414A (zh) * | 2021-09-01 | 2021-11-19 | 中国银行股份有限公司 | 信息合并方法、装置、电子设备、介质及产品 |
CN115442244A (zh) * | 2022-09-02 | 2022-12-06 | 南方电网科学研究院有限责任公司 | 电力实时仿真中通信间隔的校准方法、装置及相关设备 |
CN115442244B (zh) * | 2022-09-02 | 2024-01-19 | 南方电网科学研究院有限责任公司 | 电力实时仿真中通信间隔的校准方法、装置及相关设备 |
CN115694704A (zh) * | 2022-10-28 | 2023-02-03 | 重庆长安汽车股份有限公司 | 一种时间同步方法、装置、设备及存储介质 |
CN116483678A (zh) * | 2023-05-16 | 2023-07-25 | 紫光同芯微电子有限公司 | 一种信息处理方法和相关装置 |
CN116483678B (zh) * | 2023-05-16 | 2023-10-13 | 紫光同芯微电子有限公司 | 一种信息处理方法和相关装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113098646B (zh) | 2022-08-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113098646B (zh) | 一种时间同步方法、装置、电子设备及存储介质 | |
EP2342850B1 (en) | A method for synchronizing clocks in a communication network | |
EP1427121A1 (en) | Radio access network, radio communication method, synchronous server and node | |
EP2738971A1 (en) | Mehtod and device for clock synchronization | |
CN108155982B (zh) | 一种时间戳处理方法及设备 | |
US20210392065A1 (en) | Receive-side timestamp accuracy | |
EP2573974B1 (en) | Method and apparatus for performing clock synchronization among devices | |
CN110519377B (zh) | 一种通信数据传输方法及装置 | |
CN102780688B (zh) | 在传输控制协议tcp下防止攻击的方法和装置 | |
CN109788027A (zh) | 数据同步方法、装置、服务器及计算机存储介质 | |
CN109756566B (zh) | 基于区块链的数据存储方法、相关设备及存储介质 | |
CN108540402A (zh) | 一种优化队列时延的方法和设备 | |
EP3598247B1 (en) | Network time correction method and apparatus | |
CN112583477B (zh) | 一种延时测量方法、系统和存储介质 | |
CN112713951B (zh) | 同步时钟的切换方法及装置、存储介质及电子设备 | |
CN115865246A (zh) | 时间同步装置、系统及方法 | |
CN116405552A (zh) | 一种低功耗网络中的分段推送方法及系统 | |
US10334539B2 (en) | Metered interface | |
KR101044065B1 (ko) | Iptv 서비스 망에서의 시각 동기 방법 | |
CN102413017B (zh) | 时延性能监测方法及装置 | |
CN115567143A (zh) | 数据采集系统的高精度时间同步方法、设备、系统和介质 | |
CN113946535A (zh) | 一种总线的宏节拍和周期生成方法 | |
CN113162813B (zh) | 一种ptp报文丢失检测分析方法和装置 | |
CN114205867A (zh) | 一种数据包传输方法、装置、终端设备和存储介质 | |
CN110224779B (zh) | 设备收发报文绝对时间的计算方法、装置、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |