时钟同步方法及装置转让专利

申请号 : CN201811387374.8

文献号 : CN109600186B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 唐永林周光普甘小毛鲍四海

申请人 : UT斯达康通讯有限公司

摘要 :

本公开提出一种时钟同步方法及装置,涉及互联网技术领域。所述方法包括:基于从端口获取与第一时钟源的第一时钟差,基于至少一个备选接口分别获取与至少一个第二时钟源的第二时钟差,得到至少一个所述第二时钟差,基于所述第一时钟差和至少一个所述第二时钟差,确定可信时钟差,基于所述可信时钟差对系统时钟进行同步。本公开能够确保网络设备基于可信时钟差对该网络设备的系统时钟进行同步,提高了时钟同步的稳定性和可靠性。

权利要求 :

1.一种时钟同步方法,其特征在于,所述方法包括:基于从端口获取与第一时钟源的第一时钟差;

基于至少一个备选接口分别获取与至少一个第二时钟源的第二时钟差,得到至少一个所述第二时钟差;

基于所述第一时钟差和至少一个所述第二时钟差,确定可信时钟差;

基于所述可信时钟差对系统时钟进行同步;

所述基于所述第一时钟差和至少一个所述第二时钟差,确定可信时钟差,包括:若基于至少一个所述第二时钟差确定所述第一时钟差可信,则将所述第一时钟差确定为所述可信时钟差;

所述基于至少一个所述第二时钟差确定所述第一时钟差可信,包括:确定至少一个所述第二时钟差的平均时钟差;

获取历史时钟数据,所述历史时钟数据包括多个历史第一时钟差和多个历史平均时钟差;

若所述第一时钟差与多个所述历史第一时钟差的第一数学期望之间的差值处于第一预设差值范围内,所述平均时钟差与多个所述历史平均时钟差的第二数学期望之间的差值处于第二预设差值范围内,则确定所述第一时钟差可信。

2.如权利要求1所述的时钟同步方法,其特征在于,所述确定至少一个所述第二时钟差的平均时钟差,包括:获取至少一个分别对应所述第二时钟源的权重;

基于至少一个所述第二时钟差和至少一个分别对应所述第二时钟源的权重,获取至少一个所述第二时钟差的加权平均值;

将所述加权平均值确定为所述平均时钟差。

3.如权利要求1所述的时钟同步方法,其特征在于,所述第一预设差值范围为(-3σ1,3σ1),所述第二预设差值范围为(-3σ2,3σ2),其中,σ1为多个历史所述第一时钟差的标准差,σ2为多个所述历史平均时钟差的标准差。

4.如权利要求1所述的时钟同步方法,其特征在于,所述基于所述第一时钟差和至少一个所述第二时钟差,确定可信时钟差,包括:获取对应所述第一时钟源的权重和至少一个分别对应所述第二时钟源的权重;

基于对应所述第一时钟源的权重、所述第一时钟差、至少一个分别对应所述第二时钟源的权重、至少一个所述第二时钟差,确定所述第一时钟差和至少一个所述第二时钟差的加权平均值;

将所述加权平均值确定为所述可信时钟差。

5.一种时钟同步装置,其特征在于,所述装置包括:第一获取模块,用于基于从端口获取与第一时钟源的第一时钟差;

第二获取模块,用于基于至少一个备选接口分别获取与至少一个第二时钟源的第二时钟差,得到至少一个所述第二时钟差;

确定模块,用于基于所述第一时钟差和至少一个所述第二时钟差,确定可信时钟差;

同步模块,用于基于所述可信时钟差对系统时钟进行同步;

所述确定模块具体用于:

确定至少一个所述第二时钟差的平均时钟差;

获取历史时钟数据,所述历史时钟数据包括多个历史第一时钟差和多个历史平均时钟差;

若所述第一时钟差与多个所述历史第一时钟差的第一数学期望之间的差值处于第一预设差值范围内,所述平均时钟差与多个所述历史平均时钟差的第二数学期望之间的差值处于第二预设差值范围内,则确定所述第一时钟差可信;

若基于至少一个所述第二时钟差确定所述第一时钟差可信,则将所述第一时钟差确定为所述可信时钟差。

6.如权利要求5所述的时钟同步装置,其特征在于,所述确定模块具体用于:获取至少一个分别对应所述第二时钟源的权重;

基于至少一个所述第二时钟差和至少一个分别对应所述第二时钟源的权重,获取至少一个所述第二时钟差的加权平均值;

将所述加权平均值确定为所述平均时钟差。

7.如权利要求5所述的时钟同步装置,其特征在于,所述第一预设差值范围为(-3σ1,3σ1),所述第二预设差值范围为(-3σ2,3σ2),其中,σ1为多个历史所述第一时钟差的标准差,或σ2为多个所述历史平均时钟差的标准差。

8.如权利要求5所述的时钟同步装置,其特征在于,所述确定模块具体用于:获取对应所述第一时钟源的权重至少一个分别对应所述第二时钟源的权重;

基于对应所述第一时钟源的权重、所述第一时钟差、至少一个分别对应所述第二时钟源的权重、至少一个所述第二时钟差,确定所述第一时钟差和至少一个所述第二时钟差的加权平均值;

将所述加权平均值确定为所述可信时钟差。

说明书 :

时钟同步方法及装置

技术领域

[0001] 本公开涉及互联网技术领域,具体而言,涉及一种时钟同步方法及装置。

背景技术

[0002] 随着科学技术的发展,互联网的应用已经越来越广泛。互联网络中可以包括多个通过网络连接的网络设备,网络设备之间可以通过该网络连接进行通信,其中,为了确保网络设备之间的正常通信,通常需要确保两个或以上的网络设备的系统时钟同步。
[0003] 现有技术中,网络设备可以设置有多个端口,分别通过各端口与作为时钟源的其它网络设备连接,该网络设备可以通过时钟源选择算法,从该多个端口中确定一个从端口,之后,可以基于通过该从端口连接的时钟源的系统时钟,对该网络设备的系统时钟进行同步。
[0004] 但当从端口的网络状况发生波动时,该网络设备所确定的与时钟源之间的时钟差也会受到干扰,进而对将该网络设备的系统时钟进行时钟同步时也会出现较大的偏差,时钟同步的稳定性和可靠性低下。

发明内容

[0005] 本公开实施例的目的在于提供一种时钟同步方法及装置,以确保网络设备基于可信时钟差对该网络设备的系统时钟进行同步,提高了时钟同步的稳定性和可靠性。
[0006] 为了实现上述目的,本公开实施例采用的技术方案如下:
[0007] 第一方面,本公开实施例提出一种时钟同步方法,所述方法包括:
[0008] 基于从端口获取与第一时钟源的第一时钟差;
[0009] 基于至少一个备选接口分别获取与至少一个第二时钟源的第二时钟差,得到至少一个所述第二时钟差;
[0010] 基于所述第一时钟差和至少一个所述第二时钟差,确定可信时钟差;
[0011] 基于所述可信时钟差对系统时钟进行同步。
[0012] 第二方面,本公开实施例还提出一种时钟同步装置,所述装置包括:
[0013] 第一获取模块,用于基于从端口获取与第一时钟源的第一时钟差;
[0014] 第二获取模块,用于基于至少一个备选接口分别获取与至少一个第二时钟源的第二时钟差,得到至少一个所述第二时钟差;
[0015] 确定模块,用于基于所述第一时钟差和至少一个所述第二时钟差,确定可信时钟差;
[0016] 同步模块,用于基于所述可信时钟差对系统时钟进行同步。
[0017] 第三方面,本公开实施例还提出一种电子设备,包括存储有计算机程序的计算机可读存储介质和处理器,所述计算机程序被所述处理器读取并运行时,实现上述第一方面所述的方法。
[0018] 第四方面,本公开实施例还提出一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器读取并运行时,实现上述第一方面所述的方法。
[0019] 相对现有技术,本公开实施例具有以下有益效果:
[0020] 在本公开实施例中,可以从端口获取与第一时钟源的第一时钟差,从至少一个备选接口分别获取与至少一个第二时钟源的第二时钟差,从而能够基于第一时钟差和至少一个第二时钟源,确定得到可信时钟差。由于该可信时钟差是准确地,因此,可以基于该可信时钟差,对系统时钟进行同步,也就避免了依据误差较大的第一时钟差对网络设备的系统时钟进行同步的问题,提高了时钟同步的稳定性和可靠性。
[0021] 本公开的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本公开实施例了解。本公开的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。

附图说明

[0022] 为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0023] 图1示出了本公开实施例所提供的一种应用环境示意图;
[0024] 图2示出了本公开实施例所提供的一种时钟同步方法的流程示意图;
[0025] 图3示出了本公开实施例所提供的另一种时钟同步方法的流程示意图;
[0026] 图4示出了本公开实施例所提供的又一种时钟同步方法的流程示意图;
[0027] 图5示出了本公开实施例所提供的一种时钟同步装置的功能模块示意图;
[0028] 图6示出了本公开实施例所提供的一种电子设备的功能模块示意图。

具体实施方式

[0029] 下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
[0030] 应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本公开的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
[0031] 如图1所示,为本公开实施例所提供的一种应用环境示意图。设备 101可以为网络中的任一网络设备,该设备101通过多个端口分别其它设备网络连接,比如图1中示出了设备102、设备103和设备104。上述设备101、设备102、设备103和设备104支持IEEE(Institute of Electrical and Electronics Engineers,电气和电子工程师协会)1588协议,并能够基于该 IEEE1588协议进行时钟同步。
[0032] 其中,IEEE1588协议是一种网络测量和控制系统的精密时钟同步协议标准,通过硬件和软件将网络设备的系统时钟与作为是时钟源的其它网络设备的系统时钟进行同步。
[0033] 需要说明的是,系统时钟为网络设备内部运行的时钟。
[0034] 还需要说明的是,时钟源为网络设备进行时钟同步所依据的其它网络设备,该时钟源的系统时钟可以作为该网络设备进行时钟同步的基准。
[0035] 以设备101为例,设备101可以分别通过各端口接收设备102、设备103和设备104发送的1588报文信息,该1588报文信息中分别携带有设备102、设备103和设备104的时钟属性。设备101基于设备102、设备 103和设备104的时钟属性,运行时钟源选择算法,在各端口中选择一个端口作为从端口,其它的端口作为备选端口,通过从端口所连接的网络设备即为第一时钟源(比如设备102),通过备选端口所连接的网络设备即为第二时钟源(比如设备103和设备104)。设备101可以通过从端口与第一时钟源进行交互,从而获取得到与第一时钟源的第一时钟差,从而基于该第一时钟差,将设备101的系统时钟与第一时钟源的系统时钟进行同步。
[0036] 时钟属性为网络设备作为时钟源所具有的属性,该时钟属性可以包括优先级和时钟精度中的至少一个,当然,在实际应用中,该时钟属性还可以包括更多或更少的信息。
[0037] 第一时钟差为设备101与设备102(即第一时钟源)之间的系统时钟的差值。
[0038] 以设备101获取与设备102的第一时钟差为例。设备102可以向设备 101发送时钟同步信息,该时钟同步信息携带设备102发送该时钟同步信息时的时间戳(记为T1);设备101在接收到该时钟同步信息时,生成当前时刻的时间戳(记为T2);设备101向设备102发送收到该时钟同步信息的确认信息,该确认信息中携带发送该确认信息时的时间戳(记为 T3);设备102在接收到该确认信息时,生成并返回接收到该确认信息时的时间戳(记为T4);
将标记后的该时钟同步信息返回给设备101,设备 101基于T1、T2、T3和T4,确定与设备102之间的第一时钟差为: OFFSET0=[(T2-T1)-(T4-T3)]/2。
[0039] 但由于从端口的网络状况发生波动时,该设备101所确定的与第一时钟源之间的第一时钟差也会受到干扰,从而可能导致第一时钟差不可信,若该设备101的系统时钟基于第一时钟差进行时钟同步,则可能会导致该设备101的系统时钟出现较大的偏差,因此,为了解决这一问题,提高时钟同步的稳定性和可靠性,本公开提供了一种时钟同步方法。
[0040] 请参照图2,为本公开实施例所提供的一种时钟同步方法的流程示意图。该方法可以应用于图1所示的设备101中。需要说明的是,本公开实施例所述的时钟同步方法并不以图2以及以下所述的具体顺序为限制,应当理解,在其它实施例中,本公开实施例所述的时钟同步方法其中部分步骤的顺序可以根据实际需要相互交换,或者其中的部分步骤也可以省略或删除。下面将对图2所示的流程进行详细阐述。
[0041] 步骤201,基于从端口获取与第一时钟源的第一时钟差。
[0042] 网络设备为了确定该网络设备的系统时钟与第一时钟源的系统时钟之间的差异,从而便于后续对该网络设备的系统时钟进行同步,该网络设备可以基于从端口获取与第一时钟源的第一时钟差。
[0043] 其中,网络设备确定与第一时钟源的第一时钟差的方式,可以参见前述中的相关描述,此处不在一一赘述。
[0044] 步骤202,基于至少一个备选接口分别获取与至少一个第二时钟源的第二时钟差,得到至少一个第二时钟差。
[0045] 网络设备为了确定该网络设备的系统时钟与第二时钟源的系统时钟之间的差异,从而便于后续对该网络设备的系统时钟进行同步,该网络设备可以分别获取与至少一个第二时钟源的第二时钟差。
[0046] 需要说明的是,网络设备获取与第二时钟源的第二时钟差的方式,可以与获取与第一时钟源的第一时钟差的方式相同,此处不再一一赘述。
[0047] 步骤203,基于第一时钟差和至少一个第二时钟差,确定可信时钟差。
[0048] 由于网络状况可能并不是稳定的,当网络设备与第一时钟源之间的网络连接发生波动时,会对该网络设备与第一时钟源之间的信息传输造成干扰,进而导致前述获取的第一时钟差,与该网络设备与第一时钟源之间系统时钟的实际差值不符,即第一时钟差可能会不可信。因此,为了避免依据误差较大的第一时钟差对该网络设备的系统时钟进行同步,提高时钟同步的稳定性和可靠性,该网络设备可以基于第一时钟差和至少一个第二时钟差,确定可信时钟差。
[0049] 可信时钟差为网络设备对该网络设备进行系统时钟同步所能够依据的可信的时钟差。
[0050] 其中,网络设备可以按照预设时钟差选择算法,从第一时钟差和至少一个第二时钟差中选择一个作为可信时钟差,当然,也可以第一时钟差和至少一个第二时钟差,重新计算得到该可信时钟差。
[0051] 需要说明的是,预设时钟差选择算法可以由该网络设备事先确定,比如,接收用户提交得到。
[0052] 步骤204,基于可信时钟差对系统时钟进行同步。
[0053] 由于可信时钟差是准确地,因此,可以基于该可信时钟差对系统时钟进行同步,网络设备可以将该网络设备的系统时钟与可信时钟差相加,从而对该网络 设备的系统时钟进行同步。
[0054] 需要说明的是,若通过前述步骤未能确定得到可信时钟差,则可以不对系统时钟进行同步。
[0055] 在本公开实施例中,可以从端口获取与第一时钟源的第一时钟差,从至少一个备选接口分别获取与至少一个第二时钟源的第二时钟差,从而能够基于第一时钟差和至少一个第二时钟源,确定得到可信时钟差。由于该可信时钟差是准确地,因此,可以基于该可信时钟差,对系统时钟进行同步,也就避免了依据误差较大的第一时钟差对网络设备的系统时钟进行同步的问题,提高了时钟同步的稳定性和可靠性。
[0056] 请参照图3,为本公开实施例所提供的一种时钟同步方法的流程示意图。需要说明的是,本公开实施例所述的时钟同步方法并不以图3以及以下所述的具体顺序为限制,应当理解,在其它实施例中,本公开实施例所述的时钟同步方法其中部分步骤的顺序可以根据实际需要相互交换,或者其中的部分步骤也可以省略或删除。下面将对图3所示的流程进行详细阐述。
[0057] 步骤301,在多个端口中确定从端口以及备选端口。
[0058] 为了确定时钟同步所参照的网络设备,可以在多个端口中选择从端口,该多个端口中剩余的至少一个端口可以作为备选端口。
[0059] 其中,网络设备在多个端口中确定从端口以及备选端口的方式,可以参见前述中的相关描述,此处不再一一赘述。
[0060] 需要说明的是,在实际应用中,该从端口和备选端口也可以是事先确定的,或者,仅需要在当前没有从端口或者该从端口所连接的网络设备故障的情况下确定从端口,因此,该网络设备可以不必在每次进行是时钟同步时均执行步骤301来在多个端口中确定从端口以及备选端口,也即是,步骤301为可选的步骤。
[0061] 步骤302,基于从端口获取与第一时钟源的第一时钟差。
[0062] 其中,网络设备确定与第一时钟源的第一时钟差的方式,可以参见前述中的相关描述,此处不在一一赘述。
[0063] 步骤303,基于至少一个备选接口分别获取与至少一个第二时钟源的第二时钟差,得到至少一个第二时钟差。
[0064] 其中,网络设备确定与第二时钟源的第二时钟差的方式,可以参见前述中的相关描述,此处不在一一赘述。
[0065] 步骤304,若基于至少一个第二时钟差确定第一时钟差可信,则将第一时钟差确定为可信时钟差。
[0066] 由于第一时钟差是来自于从端口,而从端口是从多个端口中按照时钟源选择算法选择得到,因此,第一时钟差准确可靠的可能大于第二时钟差准确可靠的可能,所以,为了提高确定可信时钟差的准确性和效率,进而提高对系统时钟进行时钟同步的准确性和效率,可以以该网络设备与其它网络设备之间的时钟差作为参考,判断第一时钟差是否可信,并在确定第一时钟差可信时,将第一时钟差确定为可信时钟差。
[0067] 可选地,可以确定至少一个第二时钟差的平均时钟差,获取历史时钟数据,历史时钟数据包括多个历史第一时钟差和多个历史平均时钟差,若第一时钟差与多个历史第一时钟差的第一数学期望之间的差值处于第一预设差值范围内,平均时钟差与多个历史平均时钟差的第二数学期望之间的差值处于第二预设差值范围内,则确定第一时钟差可信。
[0068] 由于在忽略网络波动的情况下,网络设备与第一时钟源或第二时钟源之间的网络状况应该是稳定不变的,因此,网络设备与第一时钟源之间的第一时钟差以及网络设备与第二时钟源之间的第二时钟差均可以符合高斯分布,而又因为该网络设备、第一时钟源以及第二时钟源最终进行时钟同步所参考的可以是同一个网络设备,比如,前述中的第一时钟源和各第二时钟源可能均与作为第三时钟源的另一个网络设备进行时钟同步,因此,网络设备与第一时钟源之间的第一时钟差以及网络设备与第二时钟源之间的第二时钟差的分布状况也可以是一致的,因此,为了进一步提高判断第一时钟差是否可信的准确性和可靠性,进而提高时钟同步的准确性和可靠性,可以根据第一时钟差与第二时钟差的分布状况,来确定第一时钟差是否可信。
[0069] 可选地,可以获取至少一个分别对应第二时钟源的权重,基于至少一个第二时钟差和至少一个分别对应第二时钟源的权重,获取至少一个第二时钟差的加权平均值,将加权平均值确定为平均时钟差。也即是,至少一个第二时钟差的平均时钟差可以包括至少一个第二时钟差的加权平均值。
[0070] 由于各时钟源可能具有不同的时钟属性,比如时钟精度等,因此,从不同第二时钟源所获取的第二时钟差的参考价值也会不同,所以为了提高所确定第二时钟差的平均时钟差的准确性,进而提高判断第一时钟差是否可信的准确性和可靠性,第二时钟差的平均时钟差可以包括至少一个第二时钟差的加权平均值。
[0071] 例如,第二时钟源包括时钟源1和时钟源2,从时钟源1获取的第二时钟差为OFFSET1,时钟源1对应的权重为0.6,从时钟源2获取的第二时钟差为OFFSET2,时钟源1对应的权重为0.4,则第二时钟差的平均时钟差OFFSETN=OFFSET1*0.6+OFFSET2*0.4,其中,OFFSETN即表示第二时钟差的平均时钟差。
[0072] 需要说明的是,至少一个分别对应第二时钟源的权重可以通过事先设置得到,比如接收用户针对各第二时钟源指定的权重得到,当然,在实际应用中,可以通过其它方式确定,比如,基于各第二时钟源的时钟属性,确定对应该第二时钟源的权重。
[0073] 当然,在实际应用中,至少一个第二时钟差的平均时钟差也可以包括至少一个第二时钟差的算术平均值。
[0074] 还需要说明的是,历史时钟数据可以通过在当前时刻之前得到,包括从端口获取第一时钟差作为历史第一时钟差,以及从至少一个备选端口获取第二时钟差,并确定至少一个第二时钟差的平均值作为历史平均时钟差。
[0075] 还需要说明的是,第一预设差值范围或第二预设差值范围可以通过事先确定,比如可以将接收到用户所提交的数值范围作为第一预设差值范围或第二预设差值范围。
[0076] 可以基于多个历史第一时钟差,确定该多个历史第一时钟差的第一数学期望和方差,从而基于所确定的第一数学期望和方差,确定多个历史第一时钟差的高斯分布。或者,基于多个历史平均时钟差的第二数学期望和方差,从而基于所确定的第二数学期望和方差,确定多个历史第一时钟差的高斯分布。
[0077] 可选地,第一预设差值范围为[-3σ1,3σ1],第二预设差值范围为[-3σ2, 3σ2],其中,σ1为多个历史第一时钟差的标准差,σ2为多个历史平均时钟差的标准差。
[0078] 由于在高斯分布中,数值处于(μ-3σ,μ+3σ)中的概率为0.9973,其中,μ即为数学期望。当数值不处于(μ-3σ,μ+3σ),该数值可能不属于随机误差而属于粗大误差,因此,第一预设差值范围可以为[-3σ1,3σ1],第二可以预设差值范围为[-3σ2,3σ2]。
[0079] 需要说明的是,为了尽可能提高网络设备进行时钟同步的准确性,第一预设差值范围还可以为[-2σ1,2σ1],相应的,第二预设差值范围可以为 [-2σ2,2σ2];或者,第一预设差值范围还可以为[-σ1,σ1],相应的,第二预设差值范围可以为[-σ2,σ2]。当然,在实际应用中,第一预设差值范围还和第二预设差值范围还可以为其它范围。
[0080] 另外,在实际应用中,网络设备也可以通过其它方式,来基于至少一个第二时钟差判断第一时钟差是否可信,比如,可以将第一时钟差以及基于至少一个第二时钟差输入预先训练的机器学习模型,从而通过该机器学习模型确定第一时钟源是否可信,另外,网络设备基于至少一个第二时钟差判断第一时钟差是否可信的方式,还可以参见后续中的相关描述,此处不再一一赘述。
[0081] 需要说明的是,若通过预先训练的机器学习模型来判断第一时钟差是否可信,可以事先获取训练样本,该训练样本包括多组第一时钟差以及至少一个第二时钟差,且各训练样本按照第一时钟差是否可信进行标记,基于该训练样本,对该机器学习模型基于至少一个第二时钟差判断第一时钟差是否可信进行训练。
[0082] 还需要说明的是,第二时钟差的数目越多,相对于第一时钟差的参考范围越广泛,从而能够越能够准确判断第一时钟差是否可信,进而越能够提高时钟同步的稳定性和可靠性。
[0083] 可选地,若第一时钟差与第一数学期望之间的差值未处于第一预设差值范围内,平均时钟差与第二数学期望之间的差值处于第二预设差值范围内,则确定第一时钟差不可信,将第一时钟差丢弃,将平均时钟差存储至历史时钟数据。
[0084] 由于当第一时钟差与第一数学期望之间的差值未处于第一预设差值范围内、且平均时钟差与第二数学期望之间的差值处于第二预设差值范围内时,相对比可知,可能网络设备与第一时钟源之间的网络状况波动较大,而该网络设备与第二时钟源之间的网络状况稳定,因此,第一时钟差不可信,但由于平均时钟差与第二数学期望之间的差值处于第二预设差值范围内,因此,所以可以将第一时钟差丢弃,将该平均时钟差作为存储至历史时钟数据。
[0085] 需要说明的是,当确定第一时钟差不可信时,可以不对网络设备的系统时钟进行同步。
[0086] 可选地,若第一时钟差与第一数学期望之间的差值未处于第一预设差值范围内,平均时钟差与第二数学期望之间的差值未处于第二预设差值范围内,第一时钟差与第一数学期望之间的大小关系和平均时钟差与第二数学期望之间的大小关系相同,则确定第一时钟差不可信,将第一时钟差和平均时钟差存储至历史时钟数据。
[0087] 由于第一时钟差与第一数学期望之间的差值未处于第一预设差值范围内,平均时钟差与第二数学期望之间的差值未处于第二预设差值范围内,且第一时钟差与第一数学期望之间的大小关系和平均时钟差与第二数学期望之间的大小关系相同,即网络设备的系统时钟相对于第一时钟源和第二时钟源发送的时间偏移方向相同,可能网络设备、第一时钟源和第二时钟源进行时钟同步最终所参考的同一网络设备的网络状况发生波动,因此,虽然第一时钟不可信,但可以将第一时钟差和平均时钟差存储至历史时钟数据。
[0088] 其中,若第一时钟差与第一数学期望之间的差值、平均时钟差与第二数学期望之间的差值均为正值或者均为负值,则可以确定第一时钟差与第一数学期望之间的大小关系进和平均时钟差与第二数学期望之间的大小关系相同,否则,可以确定第一时钟差与第一数学期望之间的大小关系进和平均时钟差与第二数学期望之间的大小关系不同。
[0089] 可选地,若第一时钟差与第一数学期望之间的差值未处于第一预设差值范围内,平均时钟差与第二数学期望之间的差值未处于第二预设差值范围内,第一时钟差与第一数学期望之间的大小关系和平均时钟差与第二数学期望之间的大小关系不同,则确定第一时钟差不可信,将第一时钟差和平均时钟差丢弃。
[0090] 由于第一时钟差与第一数学期望之间的差值未处于第一预设差值范围内,平均时钟差与第二数学期望之间的差值未处于第二预设差值范围内,且第一时钟差与第一数学期望之间的大小关系和平均时钟差与第二数学期望之间的大小关系不同,则可以确定网络设备与第一时钟源之间、该网络设备与第二时钟源之间的均发生较大的网络波动,因此,可以将第一时钟差和平均时钟差丢弃。
[0091] 步骤305,基于可信时钟差对系统时钟进行同步。
[0092] 其中,基于可信时钟差对系统时钟进行同步的方式,可以参见前述中的相关描述,此处不再一一赘述。
[0093] 在本公开实施例中,首先,可以从端口获取与第一时钟源的第一时钟差,从至少一个备选接口分别获取与至少一个第二时钟源的第二时钟差,从而能够以与至少一个第二时钟源的第二时钟差作为参考,确定第一时钟差是否可信,进而在确定第一时钟差可信时,将系统时钟与第一时钟源的系统时钟进行同步,避免了依据误差较大的第一时钟差对网络设备的系统时钟进行同步的问题,提高了时钟同步的稳定性和可靠性。
[0094] 其次,能够确定至少一个第二时钟差的平均时钟差,获取历史时钟数据,根据历史时钟数据包括多个历史第一时钟差和多个历史平均时钟差的分布状况,对第一时钟差是否可信进行判断,从而能够在第一时钟差与多个历史第一时钟差的第一数学期望之间的差值处于第一预设差值范围内,且平均时钟差与多个历史平均时钟差的第二数学期望之间的差值处于第二预设差值范围内时,确定第一时钟差可信,进一步提高了判断第一时钟差是否可信的准确性和可靠性,进而提高了时钟同步的准确性和可靠性。
[0095] 请参照图4,为本公开实施例所提供的一种时钟同步方法的流程示意图。需要说明的是,本公开实施例所述的时钟同步方法并不以图4以及以下所述的具体顺序为限制,应当理解,在其它实施例中,本公开实施例所述的时钟同步方法其中部分步骤的顺序可以根据实际需要相互交换,或者其中的部分步骤也可以省略或删除。下面将对图4所示的流程进行详细阐述。
[0096] 步骤401,在多个端口中确定从端口以及备选端口。
[0097] 其中,在多个端口中确定从端口以及备选端口的方式,可以参见前述中的相关描述,此处不再一一赘述。
[0098] 需要说明的是,在本公开实施例中,步骤401为可选的步骤。
[0099] 步骤402,基于从端口获取与第一时钟源的第一时钟差。
[0100] 其中,基于从端口获取与第一时钟源的第一时钟差的方式,可以参见前述中的相关描述,此处不再一一赘述。
[0101] 步骤403,基于至少一个备选接口分别获取与至少一个第二时钟源的第二时钟差,得到至少一个第二时钟差。
[0102] 其中,基于至少一个备选接口分别获取与至少一个第二时钟源的第二时钟差的方式,可以参见前述中的相关描述,此处不再一一赘述。
[0103] 步骤404,获取对应第一时钟源的权重和至少一个分别对应第二时钟源的权重。
[0104] 由于第一时钟源与至少一个第二时钟源同时受到网络波动影响的概率较小,且各第一时钟源和各第二时钟源的时钟属性不同,比如时钟精度等,因此,第一时钟差与各第二时钟差的准确性也会不同,所以为了便于后续充分参考准确性不同的第一时钟差以及第二时钟差,确定得到稳定的可信时钟差,从而提高对系统时钟进行同步的稳定性,可以获取对应第一时钟源的权重和至少一个分别对应第二时钟源的权重。
[0105] 其中,获取对应第一时钟源的权重的方式,可以与获取至少一个分别对应第二时钟源的权重的方式相同,且获取至少一个分别对应第二时钟源的权重的方式可以参见前述中的相关描述,此处不再一一赘述。
[0106] 步骤405,基于对应第一时钟源的权重、第一时钟差、至少一个分别对应第二时钟源的权重、至少一个第二时钟差,确定第一时钟差和至少一个第二时钟差的加权平均值,将加权平均值确定为可信时钟差。
[0107] 其中,可以将第一时钟源的权重与第一时钟差的乘积、各第二时钟差分别与相应的各至少一个分别对应第二时钟源的权重的乘积进行累加,从而得到第一时钟差和至少一个第二时钟差的加权平均值。
[0108] 例如,第一时钟源包括时钟源3,从时钟源3获取的第一时钟差为 OFFSET0,第一时钟源对应的权重为0.6,第二时钟源包括时钟源1和时钟源2,从时钟源1获取的第二时钟差为OFFSET1,时钟源1对应的权重为0.2,从时钟源2获取的第二时钟差为OFFSET2,时钟源1对应的权重为0.2,则可信时钟差OFFSETP=OFFSET0*0.6+OFFSET1*0.2+ OFFSET2*0.2,其中,OFFSETP即表示可信时钟差。
[0109] 步骤406,基于可信时钟差对系统时钟进行同步。
[0110] 其中,基于可信时钟差对系统时钟进行同步的方式,可以参见前述中的相关描述,此处不再一一赘述。
[0111] 在本公开实施例中,可以从端口获取与第一时钟源的第一时钟差,从至少一个备选接口分别获取与至少一个第二时钟源的第二时钟差,获取对应第一时钟源的权重和至少一个分别对应第二时钟源的权重,从而将第一时钟差和至少一个第二时钟差的加权平均值确定为可信时钟差,因此,能够充分根据准确性不同的第一时钟差和各第二时钟差,得到稳定可靠性的可信时钟差,且能够确保每次进行时钟同步时都能够计算得到该可信时钟差,提高了可信时钟差的稳定性,所以,基于该可信时钟差,对系统时钟进行同步,也就避免了依据误差较大的第一时钟差对网络设备的系统时钟进行同步的问题,提高了时钟同步的稳定性和可靠性。
[0112] 请参照图5,为本公开实施例所提供的一种时钟同步装置500的功能模块示意图。需要说明的是,本实施例所提供的时钟同步装置500,其基本原理及产生的技术效果与前述对应的方法实施例相同,为简要描述,本实施例中未提及部分,可参考方法实施例中的相应内容。该时钟同步装置 500包括:
[0113] 第一获取模块501,用于基于从端口获取与第一时钟源的第一时钟差;
[0114] 第二获取模块502,用于基于至少一个备选接口分别获取与至少一个第二时钟源的第二时钟差,得到至少一个第二时钟差;
[0115] 确定模块503,用于基于第一时钟差和至少一个第二时钟差,确定可信时钟差;
[0116] 同步模块504,用于基于可信时钟差对系统时钟进行同步。
[0117] 可选地,确定模块503具体用于:
[0118] 若基于至少一个所述第二时钟差确定所述第一时钟差可信,则将所述第一时钟差确定为所述可信时钟差。
[0119] 可选地,确定模块503具体用于:
[0120] 确定至少一个第二时钟差的平均时钟差;
[0121] 获取历史时钟数据,历史时钟数据包括多个历史第一时钟差和多个历史平均时钟差;
[0122] 若第一时钟差与多个历史第一时钟差的第一数学期望之间的差值处于第一预设差值范围内,平均时钟差与多个历史平均时钟差的第二数学期望之间的差值处于第二预设差值范围内,则确定第一时钟差可信。
[0123] 可选地,确定模块503具体用于:
[0124] 获取至少一个分别对应第二时钟源的权重;
[0125] 基于至少一个第二时钟差和至少一个分别对应所述第二时钟源的权重,获取至少一个第二时钟差的加权平均值;
[0126] 将加权平均值确定为平均时钟差。
[0127] 可选地,第一预设差值范围为(-3σ1,3σ1),第二预设差值范围为 (-3σ2,3σ2),其中,σ1为多个历史第一时钟差的标准差,σ2为多个历史平均时钟差的标准差。
[0128] 可选地,确定模块503具体用于:
[0129] 获取对应所述第一时钟源的权重至少一个分别对应所述第二时钟源的权重;
[0130] 基于对应所述第一时钟源的权重、所述第一时钟差、至少一个分别对应所述第二时钟源的权重、至少一个所述第二时钟差,确定所述第一时钟差和至少一个所述第二时钟差的加权平均值;
[0131] 将所述加权平均值确定为所述可信时钟差。
[0132] 可选地,时钟同步装置500还用于:
[0133] 若第一时钟差与第一数学期望之间的差值未处于第一预设差值范围内,平均时钟差与第二数学期望之间的差值处于第二预设差值范围内,则确定第一时钟差不可信,将第一时钟差丢弃,将平均时钟差存储至历史时钟数据;
[0134] 若第一时钟差与第一数学期望之间的差值未处于第一预设差值范围内,平均时钟差与第二数学期望之间的差值未处于第二预设差值范围内,第一时钟差与第一数学期望之间的大小关系和平均时钟差与第二数学期望之间的大小关系相同,则确定第一时钟差不可信,将第一时钟差和平均时钟差存储至历史时钟数据;
[0135] 若第一时钟差与第一数学期望之间的差值未处于第一预设差值范围内,平均时钟差与第二数学期望之间的差值未处于第二预设差值范围内,第一时钟差与第一数学期望之间的大小关系进和平均时钟差与第二数学期望之间的大小关系不同,则确定第一时钟差不可信,将第一时钟差和平均时钟差丢弃。
[0136] 上述装置用于执行前述实施例提供的方法,其实现原理和技术效果类似,在此不再赘述。
[0137] 以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器(digital singnal processor,简称 DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(Central Processing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。
[0138] 请参照图6,为本公开实施例所提供的一种电子设备的功能模块示意图。该电子设备可以包括存储有计算机程序的计算机可读存储介质601和处理器602,处理器602可以调用计算机可读存储介质601存储的计算机程序。当该计算机程序被处理器602读取并运行,可以实现上述方法实施例。具体实现方式和技术效果类似,这里不再赘述。
[0139] 可选地,本公开还提供一计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器读取并运行时,可以实现上述方法实施例。
[0140] 在本公开所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0141] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0142] 另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
[0143] 上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本公开各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文: Read-Only Memory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
[0144] 需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0145] 以上所述仅为本公开的优选实施例而已,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。