时钟同步方法、系统、电子设备及计算机可读存储介质转让专利

申请号 : CN202210964845.7

文献号 : CN115047938B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 崔广章华炜鲍虎军

申请人 : 浙江大学

摘要 :

本申请公开了一种时钟同步方法、系统、电子设备及计算机可读存储介质,涉及时钟同步领域,该时钟同步方法包括在当前时钟同步周期,对接入的多种外部时钟进行外部安全校验;当多种外部时钟中存在外部安全校验成功的待选外部时钟,从待选外部时钟中选择一个目标外部时钟;通过目标外部时钟更新本地时钟,将本地时钟作为授时时钟对目标设备进行授时。本申请能够提高时钟同步的安全性和可靠性。

权利要求 :

1.一种时钟同步方法,其特征在于,包括:在当前时钟同步周期,对接入的多种外部时钟进行外部安全校验;

当多种所述外部时钟中存在所述外部安全校验成功的待选外部时钟,从所述待选外部时钟中选择一个目标外部时钟;

通过所述目标外部时钟更新本地时钟,将所述本地时钟作为授时时钟对目标设备进行授时;

所述对接入的多种外部时钟进行外部安全校验的过程包括:计算每一所述外部时钟与每一其他外部时钟的时钟偏差,所述其他外部时钟为所有所述外部时钟中的除所述外部时钟外的任一外部时钟;

若所述时钟偏差未处于预设容许误差范围内,将所述外部时钟对应的计数器的计数值加1;

确定所述外部时钟对应的计数器的总计数值;

若所述总计数值大于预设值,判定该外部时钟的外部校验失败;

若所述总计数值小于或等于所述预设值,判定所述外部时钟的外部安全校验成功。

2.根据权利要求1所述的时钟同步方法,其特征在于,从所述待选外部时钟中选择一个目标外部时钟之前,该时钟同步方法还包括:计算每一所述待选外部时钟与所述本地时钟的偏差;

从所述待选外部时钟中选择一个目标外部时钟的过程包括:从所述偏差处于预设容许误差范围内的所述待选外部时钟中选择一个目标外部时钟。

3.根据权利要求1所述的时钟同步方法,其特征在于,所述本地时钟包括主本地时钟和多个备用本地时钟,该时钟同步方法还包括:对当前主本地时钟进行本地安全校验,若所述本地安全校验失败,将当前主本地时钟剔除,并对每个所述备用本地时钟进行本地安全校验,选择一个所述本地安全校验成功的所述备用本地时钟作为当前主本地时钟;

相应的,通过所述目标外部时钟更新本地时钟,将所述本地时钟作为授时时钟对目标设备进行授时的过程包括:通过所述目标外部时钟更新所述本地安全校验成功的当前主本地时钟,将当前主本地时钟作为授时时钟对目标设备进行授时。

4.根据权利要求1所述的时钟同步方法,其特征在于,所述对接入的多种外部时钟进行外部安全校验之后,该时钟同步方法还包括:判断多种所述外部时钟中是否存在所述外部安全校验成功的待选外部时钟;

若否,判断所述本地时钟是否满足授时条件;

若是,将所述本地时钟作为授时时钟对目标设备进行授时。

5.根据权利要求4所述的时钟同步方法,其特征在于,该时钟同步方法还包括:当所述本地时钟不满足所述授时条件,执行告警操作。

6.根据权利要求4所述的时钟同步方法,其特征在于,所述本地时钟包括主本地时钟和多个备用本地时钟,判断所述本地时钟是否满足授时条件的过程包括:判断所述主本地时钟及多个所述备用本地时钟中是否存在任意一个本地安全校验成功的本地时钟;

若是,判定所述本地时钟满足授时条件。

7.根据权利要求1‑6任意一项所述的时钟同步方法,其特征在于,从所述待选外部时钟中选择一个目标外部时钟的过程包括:通过BMCA算法从所述待选外部时钟中选择一个目标外部时钟。

8.一种时钟同步系统,其特征在于,包括:第一校验模块,用于在当前时钟同步周期,对接入的多种外部时钟进行外部安全校验;

选择模块,用于当多种所述外部时钟中存在所述外部安全校验成功的待选外部时钟,从所述待选外部时钟中选择一个目标外部时钟;

同步模块,用于通过所述目标外部时钟更新本地时钟;

授时模块,用于将所述本地时钟作为授时时钟对目标设备进行授时;

所述对接入的多种外部时钟进行外部安全校验的过程包括:计算每一所述外部时钟与每一其他外部时钟的时钟偏差,所述其他外部时钟为所有所述外部时钟中的除所述外部时钟外的任一外部时钟;

若所述时钟偏差未处于预设容许误差范围内,将所述外部时钟对应的计数器的计数值加1;

确定所述外部时钟对应的计数器的总计数值;

若所述总计数值大于预设值,判定该外部时钟的外部校验失败;

若所述总计数值小于或等于所述预设值,判定所述外部时钟的外部安全校验成功。

9.一种电子设备,其特征在于,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如权利要求1‑7任意一项所述的时钟同步方法的步骤。

10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1‑7任意一项所述的时钟同步方法的步骤。

说明书 :

时钟同步方法、系统、电子设备及计算机可读存储介质

技术领域

[0001] 本申请涉及时钟同步领域,特别涉及时钟同步方法、系统、电子设备及计算机可读存储介质。

背景技术

[0002] 目前,传统的授时设备或授时方法完全依赖于外部时钟源(互联网或GPS(Global Positioning System,全球定位系统)),单独选用互联网作为外部时钟源进行时钟同步时,存在网络安全攻击、运营商网络线路故障等风险,单独接入GPS卫星作为外部时钟源进行时钟同步时存在信号欺骗等风险,因此,传统的时钟同步方案并不适用于对于信息安全要求较高的场景。
[0003] 因此,如何提供一种解决上述技术问题的方案是本领域技术人员目前需要解决的问题。

发明内容

[0004] 本申请的目的是提供一种时钟同步方法、系统、电子设备及计算机可读存储介质,能够提高时钟同步的安全性和可靠性。
[0005] 为解决上述技术问题,本申请提供了一种时钟同步方法,包括:
[0006] 在当前时钟同步周期,对接入的多种外部时钟进行外部安全校验;
[0007] 当多种所述外部时钟中存在所述外部安全校验成功的待选外部时钟,从所述待选外部时钟中选择一个目标外部时钟;
[0008] 通过所述目标外部时钟更新本地时钟,将所述本地时钟作为授时时钟对目标设备进行授时。
[0009] 可选的,从所述待选外部时钟中选择一个目标外部时钟之前,该时钟同步方法还包括:
[0010] 计算每一所述待选外部时钟与所述本地时钟的偏差;
[0011] 从所述待选外部时钟中选择一个目标外部时钟的过程包括:
[0012] 从所述偏差处于预设容许误差范围内的所述待选外部时钟中选择一个目标外部时钟。
[0013] 可选的,所述本地时钟包括主本地时钟和多个备用本地时钟,该时钟同步方法还包括:
[0014] 对当前主本地时钟进行本地安全校验,若所述本地安全校验失败,将当前主本地时钟剔除,并对每个所述备用本地时钟进行本地安全校验,选择一个所述本地安全校验成功的所述备用本地时钟作为当前主本地时钟;
[0015] 相应的,通过所述目标外部时钟更新本地时钟,将所述本地时钟作为授时时钟对目标设备进行授时的过程包括:
[0016] 通过所述目标外部时钟更新所述本地安全校验成功的当前主本地时钟,将当前主本地时钟作为授时时钟对目标设备进行授时。
[0017] 可选的,所述对接入的多种外部时钟进行外部安全校验之后,该时钟同步方法还包括:
[0018] 判断多种所述外部时钟中是否存在所述外部安全校验成功的待选外部时钟;
[0019] 若否,判断所述本地时钟是否满足授时条件;
[0020] 若是,将所述本地时钟作为授时时钟对目标设备进行授时。
[0021] 可选的,该时钟同步方法还包括:
[0022] 当所述本地时钟不满足所述授时条件,执行告警操作。
[0023] 可选的,所述本地时钟包括主本地时钟和多个备用本地时钟,判断所述本地时钟是否满足授时条件的过程包括:
[0024] 判断所述主本地时钟及多个所述备用本地时钟中是否存在任意一个本地安全校验成功的本地时钟;
[0025] 若是,判定所述本地时钟满足授时条件。
[0026] 可选的,从所述待选外部时钟中选择一个目标外部时钟的过程包括:
[0027] 通过BMCA算法从所述待选外部时钟中选择一个目标外部时钟。
[0028] 为解决上述技术问题,本申请还提供了一种时钟同步系统,包括:
[0029] 第一校验模块,用于在当前时钟同步周期,对接入的多种外部时钟进行外部安全校验;
[0030] 选择模块,用于当多种所述外部时钟中存在所述外部安全校验成功的待选外部时钟,从所述待选外部时钟中选择一个目标外部时钟;
[0031] 同步模块,用于通过所述目标外部时钟更新本地时钟;
[0032] 授时模块,用于将所述本地时钟作为授时时钟对目标设备进行授时。
[0033] 为解决上述技术问题,本申请还提供了一种电子设备,包括:
[0034] 存储器,用于存储计算机程序;
[0035] 处理器,用于执行所述计算机程序时实现如上文任意一项所述的时钟同步方法的步骤。
[0036] 为解决上述技术问题,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上文任意一项所述的时钟同步方法的步骤。
[0037] 本申请提供了一种时钟同步方法,首先接入多种外部时钟,然后对接入的多种外部时钟进行安全校验,选择安全校验成功的外部时钟对本地时钟进行更新,再通过本地时钟作为授时时钟对目标设备进行授时,提高了时钟同步的安全性和可靠性。本申请还提供了一种时钟同步系统、电子设备及计算机可读存储介质,具有和上述时钟同步方法相同的有益效果。

附图说明

[0038] 为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0039] 图1为本申请所提供的一种时钟同步装置的结构示意图;
[0040] 图2a为本申请所提供的一种外部时钟校验模块的结构示意图;
[0041] 图2b为本申请所提供的一种授时时钟选择模块的结构示意图;
[0042] 图2c为本申请所提供的一种本地时钟模块的结构示意图;
[0043] 图3为本申请所提供的一种时钟同步方法的步骤流程图;
[0044] 图4为本申请所提供的另一种时钟同步方法的步骤流程图;
[0045] 图5为本申请所提供的一种时钟同步系统的结构示意图;
[0046] 图6为本申请所提供的一种授时系统的结构示意图;
[0047] 图7‑图9为本申请所提供的一种实施例的实验结果图。

具体实施方式

[0048] 本申请的核心是提供一种时钟同步方法、系统、电子设备及计算机可读存储介质,能够提高时钟同步的安全性和可靠性。
[0049] 为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0050] 为便于理解本申请所提供的时钟同步方法,下面对该时钟同步方法所适用的一种时钟同步装置进行说明,请参照图1,图1为本申请所提供的一种时钟同步装置的结构示意图,包括主高精度晶振、备高精度晶振、本地时钟模块、参数生成模块、本地时钟接入模块、本地时钟校验模块、外部时钟校验模块、外部时钟统一接入模块,授时时钟选择模块、日志记录模块、自适应同步模块、PTP(Precise Time Protocol,精确时间协议)授时模块、报警指示灯组及通信接口。
[0051] 具体的,外部时钟接入模块支持多种外部时钟接入,外部时钟校验模块可以接入多种时钟源信号并对其进行校验,保障外部时钟可靠性,授时时钟选择模块:采用BMCA(Best Master Clock selection Algorithm,最佳主时钟选择算法)算法从外部钟源中选择目标钟源作为同步时钟,本地时钟接入模块接入多个本地时钟,采用一主多备模式,提高本地时钟可靠性,本地时钟校验模块,用于对本地时钟和外部时钟按照一定策略进行校验,本地时钟选择模块用于选择主本地时钟,自适应同步模块用于根据时钟精度、业务场景确定时钟同步周期,自适应触发外部时钟校准,PTP授时模块,用于采用PTP协议向外部设备进行授时,日志记录模块,用于对日志信息和时钟同步等信息进行存储,报警指示灯组用于发出报警,以便人工介入校准。
[0052] 其中,外部时钟校验模块的结构示意图参照图2a所示,授时时钟选择模块的结构示意图参照图2b所示,本地时钟模块的结构示意图参照图2c所示。
[0053] 请参照图3,图3为本申请所提供的一种时钟同步方法的步骤流程图,该时钟同步方法包括:
[0054] S101:在当前时钟同步周期,对接入的多种外部时钟进行外部安全校验;
[0055] 具体的,多种外部时钟包括但不限于多种不同的GPS信号(如GLONASS信号、北斗信号等)、互联网时钟服务信号等,本地时钟指设备使用的高精度晶振,一个高精度晶振对应一个本地时钟晶振。
[0056] 具体的,在执行本步骤之前,还包括基于本地时钟信号的精度、应用场景容许的最大钟漂设定时钟同步周期的操作,每达到时钟同步周期,本地时钟需要与外部时钟同步一次。举例说明,本地时钟的钟漂为本地时钟经过一段时间后发生的时钟偏移,比如实际情况走过100us,本地时钟走了99us,时钟偏移了1us,假设本地钟漂为每100us发生1us偏移,应用场景时间精度要求偏移不超过2us,那么本地时钟至少需要每200us与外部时钟同步一次。
[0057] 具体的,考虑到接入的外部时钟可能混杂欺诈信号,基于此,本申请通过对接入的多种外部时钟进行外部安全校验,剔除可能存在信号欺诈的外部时钟。
[0058] 具体的,假设接入n种外部时钟,每个外部时钟对应一个计数器cnte,对每个外部时钟进行外部安全校验的操作包括:
[0059] 计算该外部时钟与其他每一个外部时钟的时钟偏差,如果时钟偏差处于预设容许误差范围内则不作处理,如果时钟偏差处于预设容许误差范围外,则令计数器cnte的计数值加1,判断该计数器cnte的总计数值是否大于预设值,如果是,则判定该外部时钟的外部安全校验失败,将其剔除,如果否,则判定该外部时钟的外部安全校验成功,其中,预设值可以设置为n/2。
[0060] 举例说明,假设共有6种外部时钟,分别记为Ce1、Ce2、Ce3、Ce4、Ce5和Ce6,以外部时钟Ce1为例对外部安全校验进行说明,外部时钟Ce1对应的计数器为cnte1,其他外部时钟的外部安全校验,同理。
[0061] 具体的,计算Ce1与Ce2的时钟偏差|Ce1‑Ce2|、Ce1与Ce3的时钟偏差|Ce1‑Ce3|,Ce1与Ce4的时钟偏差|Ce1‑Ce4|、Ce1与Ce5的时钟偏差|Ce1‑Ce5|、以及Ce1与Ce6的时钟偏差|Ce1‑Ce6|,每计算到一个时钟偏差未处于预设容许误差范围,则将cnte1的计数值加1,判断cnte1的最终计数值是否大于3,如果是,判定外部时钟Ce1的外部安全校验不成功,将外部时钟Ce1确定为异常外部时钟并剔除。
[0062] 当然,除了通过上述方案对外部时钟进行外部安全校验,还可以采用其他方式,保证通过外部安全校验的各个外部时钟之间的时钟偏差在预设容许误差范围内即可,预设值和预设容许误差范围根据实际需要设置即可,本申请在此不作具体的限定。
[0063] S102:当多种外部时钟中存在外部安全校验成功的待选外部时钟,从待选外部时钟中选择一个目标外部时钟;
[0064] 具体的,将通过上述外部安全校验的外部时钟确定为待选外部时钟,从所有待选外部时钟中选择一个目标外部时钟,目标外部时钟用于对本地时钟进行时钟同步,提高了授时时钟的可靠性。
[0065] 举例说明,假设Ce1、Ce2、Ce3、Ce4、Ce5和Ce6中,仅有Ce1的外部安全校验失败,其余外部时钟的外部安全校验均成功,则Ce2、Ce3、Ce4、Ce5和Ce6均为待选外部时钟,从Ce2、Ce3、Ce4、Ce5和Ce6中选择一个作为目标外部时钟。
[0066] 作为一种可选的实施例,具体可通过BMCA算法从多个待选外部时钟中选择一个最佳的外部时钟作为目标外部时钟,BMCA算法可根据接入的多个外部时钟的同步传输时延参数作为选择依据,选择最佳外部时钟作为目标外部时钟。
[0067] S103:通过目标外部时钟更新本地时钟,将本地时钟作为授时时钟对目标设备进行授时。
[0068] 具体的,通过目标外部时钟更新本地时钟,完成时钟同步,然后基于本地时钟按PTP协议向目标设备进行授时,其中,目标设备可以为外部边缘设备。
[0069] 可见,本实施例中,首先接入多种外部时钟,然后对接入的多种外部时钟进行安全校验,选择安全校验成功的外部时钟对本地时钟进行更新,再通过本地时钟作为授时时钟对目标设备进行授时,提高了时钟同步的安全性和可靠性。
[0070] 在上述实施例的基础上:
[0071] 作为一种可选的实施例,从待选外部时钟中选择一个目标外部时钟之前,该时钟同步方法还包括:
[0072] 计算每一待选外部时钟与本地时钟的偏差;
[0073] 从待选外部时钟中选择一个目标外部时钟的过程包括:
[0074] 从偏差处于预设容许误差范围内的待选外部时钟中选择一个目标外部时钟。
[0075] 具体的,为了进一步提高授时时钟的可靠性和安全性,本实施例还对待选外部时钟和本地时钟进行相互校验,具体的,计算每一待选外部时钟与本地时钟的偏差,如果偏差超出预设容许误差范围,判定该待选外部时钟与本地时钟的相互校验失败,将该待选外部时钟剔除,如果偏差未超出预设容许误差范围,判定该待选外部时钟与本地时钟的相互校验成功,从时钟偏差未超出预设容许误差范围的待选外部时钟中选择一个目标外部时钟。
[0076] 其中,预设容许误差范围根据实际需要设置即可,本申请在此不做具体的限定。
[0077] 作为一种可选的实施例,本地时钟包括主本地时钟和多个备用本地时钟,该时钟同步方法还包括:
[0078] 对当前主本地时钟进行本地安全校验,若本地安全校验失败,将当前主本地时钟剔除,并对每个备用本地时钟进行本地安全校验,选择一个本地安全校验成功的备用本地时钟作为当前主本地时钟;
[0079] 相应的,通过目标外部时钟更新本地时钟,将本地时钟作为授时时钟对目标设备进行授时的过程包括:
[0080] 通过目标外部时钟更新本地安全校验成功的当前主本地时钟,将当前主本地时钟作为授时时钟对目标设备进行授时。
[0081] 具体的,为了保障本地时钟的可靠性和稳定性,本申请中的本地时钟采用一主多备的方式,即包括一个主本地时钟和多个备用本地时钟,假设接入m个本地时钟,每个本地时钟对应一个计数器cntl,对当前主本地时钟进行本地安全校验的操作包括:
[0082] 计算当前主本地时钟与其他每一个备用本地时钟的时钟偏差,如果时钟偏差处于预设容许误差范围内则不作处理,如果时钟偏差处于预设容许误差范围外,则令当前主本地时钟对应的计数器cntl的计数值加1,判断该计数器cntl的总计数值是否大于预设值,如果否,则判定该当前主本地时钟的本地安全校验成功,如果是,则判定该当前主本地时钟的本地安全校验失败,将其剔除,然后对备用本地时钟进行本地安全验证,选择一个本地安全验证成功的备用本地时钟作为新的主本地时钟,即当前主本地时钟,后续基于该当前主本地时钟进行相关校验和时钟同步,其中,预设值可以设置为n/2。
[0083] 举例说明,假设当前共有6个本地时钟,分别记为Cl1、Cl2、Cl3、Cl4、Cl5和Cl6,假设Cl1为当前主本地时钟,Cl1对应的计数器为cntl1,Cl2、Cl3、Cl4、Cl5和Cl6为备用本地时钟,对Cl1进行本地安全校验的过程包括:计算Cl1和Cl2的时钟偏差|Cl1‑Cl2|、Cl1和Cl3的时钟偏差|Cl1‑Cl3|、Cl1和Cl4的时钟偏差|Cl1‑Cl4|、Cl1和Cl5的时钟偏差|Cl1‑Cl5|、以及Cl1和Cl6的时钟偏差|Cl1‑Cl6|,每当有一个时钟偏差未处于预设容许误差范围,则令cntl1的计数值加1,判断cntl1的总计数值是否大于3,如果否,则判定Cl1本地安全校验成功,不对当前主本地时钟进行调整,后续将待选外部时钟和Cl1进行相互校验,并通过目标外部时钟对Cl1进行时钟同步;如果是,则判定Cl1本地安全校验失败,将Cl1剔除,此时对Cl2、Cl3、Cl4、Cl5和Cl6进行本地安全校验,以Cl2为例进行说明,其他备用本地时钟的本地安全校验,同理,Cl2对应的计数器为cntl2,过程包括:计算Cl2和Cl3的时钟偏差|Cl2‑Cl3|、Cl2和Cl4的时钟偏差|Cl2‑Cl4|、Cl2和Cl5的时钟偏差|Cl1‑Cl5|、以及Cl2和Cl6的时钟偏差|Cl2‑Cl6|,每当有一个时钟偏差未处于预设容许误差范围,则令cntl2的计数值加1,判断cntl2的总计数值是否大于2.5,如果是,则判定cntl2本地安全校验失败,将Cl2剔除,如果否,则判定Cl2本地安全校验成功。
[0084] 从本地安全校验成功的所有备用本地时钟中,选择一个作为当前主本地时钟,比如选择Cl2作为新的主本地时钟,即当前主本地时钟,后续将待选外部时钟和Cl2进行相互校验,并通过目标外部时钟对Cl2进行时钟同步。
[0085] 其中,对主本地时钟进行本地安全校验的触发条件包括但不限于达到预设触发周期,或者在待选外部时钟和本地时钟的交互校验均失败。
[0086] 作为一种可选的实施例,对接入的多种外部时钟进行外部安全校验之后,该时钟同步方法还包括:
[0087] 判断多种外部时钟中是否存在外部安全校验成功的待选外部时钟;
[0088] 若否,判断本地时钟是否满足授时条件;
[0089] 若是,将本地时钟作为授时时钟对目标设备进行授时。
[0090] 作为一种可选的实施例,该时钟同步方法还包括:
[0091] 当本地时钟不满足授时条件,执行告警操作。
[0092] 具体的,假设无外部时钟接入,或者没有通过外部安全校验的外部时钟,此时,判断本地时钟是否满足授时条件,如果本地时钟满足授时条件,则直接通过本地时钟对外部设备进行授时,如果本地时钟不满足授时条件,此时,由于无法获取准确的外部时钟源,且本地时钟校验失败不可信,需要进行人工校准,则执行告警操作,发出告警信息,以便人工介入进行校准。
[0093] 作为一种可选的实施例,本地时钟包括主本地时钟和多个备用本地时钟,判断本地时钟是否满足授时条件的过程包括:
[0094] 判断主本地时钟及多个备用本地时钟中是否存在任意一个本地安全校验成功的本地时钟;
[0095] 若是,判定本地时钟满足授时条件。
[0096] 具体的,对本地时钟进行本地安全校验的过程参照上述实施例的记载,本实施例在此不再赘述。进一步的,如果本地时钟无初始值,也判定本地时钟不满足授时条件。
[0097] 综上所述,请参照图4,图4为本申请所提供的一种较为优选的时钟同步方法的步骤流程图,该时钟同步方法包括:
[0098] S201:本地晶振精度参数初始化:
[0099] S202:主外部时钟源模块使能;
[0100] S203:对接入的多种外部时钟进行外部安全校验,然后执行S205
[0101] S204:对本地时钟进行本地安全校验,然后执行S206;
[0102] S205:判断是否存在外部时钟校验成功的待选外部时钟;判断过程参照上述实施例,在此不再赘述;
[0103] S206:判断是否存在本地安全校验成功的本地时钟;判断过程参照上述实施例,在此不再赘述;
[0104] 若S205和S206均为是,执行S207;若S205为是且S206为否,执行S212;若S205和S206均为否,执行S212;若S205为否且S206为是,执行S214;
[0105] S207:对待选外部时钟和当前本地时钟进行相互校验;
[0106] S208:判断是否存在与当前本地时钟相互校验成功的待选外部时钟,若是执行S209,若否,执行S212;
[0107] S209:基于BMCA算法从相互校验成功的待选外部时钟中选择一个作为目标外部时钟,执行S210和S213;
[0108] S210:通过目标外部时钟更新当前本地时钟,将当前本地时钟作为授时时钟对目标设备授时;
[0109] S211:判断是否满足自适应时钟同步条件,若是,执行S203和S204;
[0110] S212:执行告警操作,然后执行S213;
[0111] S213:记录日志;
[0112] S214:将当前本地时钟作为授时时钟对目标设备进行授时。
[0113] 本申请接入多种外部时钟信号,以自适应周期同步外部时钟信号,并对多种外部时钟进行相互校验,降低了时钟同步频率,缩小了攻击面。
[0114] 请参照图5,图5为本申请所提供的一种时钟同步系统的结构示意图,该时钟同步系统包括:
[0115] 接入模块1,用于接入本地时钟和多种外部时钟;
[0116] 第一校验模块2,用于对接入的多种外部时钟进行外部安全校验;
[0117] 选择模块3,用于当多种外部时钟中存在外部安全校验成功的待选外部时钟,从待选外部时钟中选择一个目标外部时钟;
[0118] 同步模块4,用于通过目标外部时钟更新本地时钟;
[0119] 授时模块5,用于将本地时钟作为授时时钟对目标设备进行授时。
[0120] 可见,本实施例中,首先接入多种外部时钟,然后对接入的多种外部时钟进行安全校验,选择安全校验成功的外部时钟对本地时钟进行更新,再通过本地时钟作为授时时钟对目标设备进行授时,提高了时钟同步的安全性和可靠性。
[0121] 作为一种可选的实施例,该时钟同步系统还包括:
[0122] 第二校验模块,用于计算每一待选外部时钟与本地时钟的偏差;
[0123] 从待选外部时钟中选择一个目标外部时钟的过程包括:
[0124] 从偏差处于预设容许误差范围内的待选外部时钟中选择一个目标外部时钟。
[0125] 作为一种可选的实施例,本地时钟包括主本地时钟和多个备用本地时钟,该时钟同步系统还包括:
[0126] 第三校验模块,用于对当前主本地时钟进行本地安全校验,若本地安全校验失败,将当前主本地时钟剔除,并对每个备用本地时钟进行本地安全校验,选择一个本地安全校验成功的备用本地时钟作为当前主本地时钟;
[0127] 相应的,通过目标外部时钟更新本地时钟,将本地时钟作为授时时钟对目标设备进行授时的过程包括:
[0128] 通过目标外部时钟更新本地安全校验成功的当前主本地时钟,将当前主本地时钟作为授时时钟对目标设备进行授时。
[0129] 作为一种可选的实施例,对接入的多种外部时钟进行外部安全校验之后,该时钟同步系统还包括:
[0130] 第一判断模块,用于判断多种外部时钟中是否存在外部安全校验成功的待选外部时钟,若否,触发第二判断模块;
[0131] 所述第二判断模块,用于判断本地时钟是否满足授时条件,若是,触发授时模块5;
[0132] 所述授时模块5,用于将本地时钟作为授时时钟对目标设备进行授时。
[0133] 作为一种可选的实施例,该时钟同步系统还包括:
[0134] 告警模块,用于当本地时钟不满足授时条件,执行告警操作。
[0135] 作为一种可选的实施例,本地时钟包括主本地时钟和多个备用本地时钟,判断本地时钟是否满足授时条件的过程包括:
[0136] 判断主本地时钟及多个备用本地时钟中是否存在任意一个本地安全校验成功的本地时钟;
[0137] 若是,判定本地时钟满足授时条件。
[0138] 作为一种可选的实施例,从待选外部时钟中选择一个目标外部时钟的过程包括:
[0139] 通过BMCA算法从待选外部时钟中选择一个目标外部时钟。
[0140] 另一方面,本申请还提供了一种电子设备,包括:
[0141] 存储器,用于存储计算机程序;
[0142] 处理器,用于执行计算机程序时实现如上文任意一个实施例所描述的时钟同步方法的步骤。
[0143] 具体的,请参照图6,图6为本申请所提供的一种授时系统的结构示意图,包括外部天线、GPS模组1、GPS模组2、电子设备及交换机,交换机通过光纤与边缘设备连接,GPS模组通过外部天线,获取外部时钟信号,电子设备接入多种GPS模组作为外部时钟,电子设备通过PTP网络接口连接交换机,通过交换机向边缘设备提供时钟同步,校准边缘设备时间。
[0144] 参照图7,图7示出了初始时边缘设备已经关闭互联网时钟同步功能,设备时间不准确,边缘设备需要更新设备网络配置,以使保持电子设备和边缘设备之间网络通畅,网络配置表如表1所示。
[0145] 表1 网络配置表
[0146]
[0147] 配置完成后,按照表2使能设备网络配置。
[0148] 表2 网络配置使能表
[0149]
[0150] 当边缘设备和时钟同步设备网络通畅,如图8所示,启动时钟同步服务,启动命令为sudo ptpd ‑g ‑C ‑i eth3。时钟同步服务启动后,边缘设备进行时钟同步,通过PTP协议从目标设备(192.168.1.111)进行时钟同步。日志输出结果如图9所示,可以看到两条关键日志信息:
[0151] 1. (slv)Received first Sync from Master,设备接收到从目标设备发出的同步信息,此时记录日志的时间为2022‑06‑23 00:00:32.975758,本地时钟仍然不准确。
[0152] 2. Stepped the system clock to:06/23/22 16:41:24.982102885,此时日志信息为2022‑06‑23 16:41:24.985957,本地不准确时钟被校准。
[0153] 对于本申请所提供的一种电子设备的介绍,请参照上述实施例,本申请在此不再赘述。
[0154] 本申请所提供的一种电子设备具有和上述时钟同步方法相同的有益效果。
[0155] 另一方面,本申请还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上文任意一个实施例所描述的时钟同步方法的步骤。
[0156] 对于本申请所提供的一种计算机可读存储介质的介绍,请参照上述实施例,本申请在此不再赘述。
[0157] 本申请所提供的一种计算机可读存储介质具有和上述时钟同步方法相同的有益效果。
[0158] 还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0159] 对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其他实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。