时间同步方法、计算设备及计算机存储介质与流程

    专利2022-07-08  76


    本发明涉及网络通信技术领域,具体涉及一种时间同步方法、计算设备及计算机存储介质。



    背景技术:

    目前,许多业务服务要求应用终端间,及应用终端与应用服务器之间具有时间一致性,尤其在限时业务、秒杀业务等场景中,对时间一致性提出了更高的要求。

    为实现应用终端间,和/或应用终端与应用服务器间的时间一致性,目前通常采用的是应用服务器动态下发命令的时间同步方式,即由一个应用服务器统一下发应用服务器时间至各个应用终端,以使各个应用终端采用该应用服务器时间。

    然而,发明人在实施过程中发现,现有技术中存在如下缺陷:由于应用服务器与各个应用终端之间的距离、网络状态等存在差异,从而服务器时间到达各个应用终端的时间也存在差异,若采用现有技术中的时间同步方式,则会使得各个应用终端之间,应用终端与应用服务器之间的时间同步精度差。



    技术实现要素:

    鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的时间同步方法、计算设备及计算机存储介质。

    根据本发明的一个方面,提供了一种时间同步方法,所述方法应用于任一终端,所述方法包括:

    分别向多个授时服务器发送预授时请求,并分别获取各个预授时请求对应的预授时请求响应参数;

    根据任一预授时请求对应的预授时请求响应参数,计算该预授时请求对应的授时服务器的授时质量指标值;

    根据授时服务器的授时质量指标值,从所述多个授时服务器中选取一个授时服务器作为目标授时服务器;

    向所述目标授时服务器发送正式授时请求,并获取所述正式授时请求对应的正式授时请求响应参数;

    根据所述正式授时请求响应参数,进行时间校准。

    根据本发明的另一方面,提供了一种计算设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;

    所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如下操作:

    分别向多个授时服务器发送预授时请求,并分别获取各个预授时请求对应的预授时请求响应参数;

    根据任一预授时请求对应的预授时请求响应参数,计算该预授时请求对应的授时服务器的授时质量指标值;

    根据授时服务器的授时质量指标值,从所述多个授时服务器中选取一个授时服务器作为目标授时服务器;

    向所述目标授时服务器发送正式授时请求,并获取所述正式授时请求对应的正式授时请求响应参数;

    根据所述正式授时请求响应参数,进行时间校准。

    根据本发明的再一方面,提供了一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如上述时间同步方法对应的操作。

    根据本发明提供的时间同步方法、计算设备及计算机存储介质,首先向多个授时服务器发送预授时请求,获取预授时请求对应的预授时请求响应参数;根据任一预授时请求对应的预授时请求响应参数,计算预授时请求对应的授时服务器的授时质量指标值;根据授时服务器的授时质量指标值,从多个授时服务器中选取一个授时服务器作为目标授时服务器;向目标授时服务器发送正式授时请求,获取正式授时请求对应的正式授时请求响应参数;根据正式授时请求响应参数,进行时间校准。本方案各个终端从多个授时服务器中选取一个授时质量好的授时服务器,最终各个终端均利用其授时质量最优的授时服务器进行时间同步,从而能够大幅提升终端间时间同步的精确度。

    上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

    附图说明

    通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

    图1示出了本发明实施例一提供的一种时间同步方法的流程示意图;

    图2示出了本发明实施例二提供的一种时间同步方法的流程示意图;

    图3示出了应用于本发明实施例二中的一种终端与目标授时服务器之间的时间差的计算方法的流程示意图;

    图4示出了本发明实施例四提供的一种计算设备的结构示意图。

    具体实施方式

    下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。

    实施例一

    图1示出了本发明实施例一提供的一种时间同步方法的流程示意图。其中,本方法具体可以由任意一个终端执行。本实施例所述的终端具体为通过授时服务器进行时间同步的设备,其可以为应用终端,也可以为应用服务器等。

    在实际的实施过程中,若需实现多个应用终端间的时间同步,则可将该多个应用终端分别作为本实施例中所述的终端,并执行步骤s110-步骤s140,从而该多个应用终端实现高精度的时间同步;若需实现应用终端与应用服务器间的时间同步,可将应用终端与应用服务器分别作为本实施例中所述的终端,并执行步骤s110-步骤s140,从而实现应用终端与应用服务器间的高精度时间同步。

    如图1所示,该方法包括:

    步骤s110:分别向多个授时服务器发送预授时请求,并分别获取各个预授时请求对应的预授时请求响应参数。

    本实施例首先部署有多个授时服务器,该多个授时服务器之间通过授时服务实现时间同步。例如,可通过jsonp协议部署用于授时的多个授时服务器。可选的,在部署多个授时服务器过程中,可基于待同步的终端的数量及终端的位置分布等,确定授时服务器部署的个数及位置等等。

    进一步地,每个终端可以分别向各个授时服务器发送预授时请求。例如,本实施例中部署有3个授时服务器s1,s2及s3,则终端c1可通过jsonp协议依次向服务器s1,s2及s3发起授时请求,其中,该授时请求为预授时请求。

    终端分别向各个授时服务器发送预授时请求后,各个授时服务器会可根据接收到的预授时请求进行响应,该响应即为预授时响应,从而终端可接收到各个授时服务器反馈的预授时响应消息。其中,一个预授时请求对应于一个授时服务器以及一个预授时响应。继而针对于任一预授时请求,获得该预授时请求对应的预授时请求响应参数。

    可选的,预授时请求响应参数包括以下参数中的至少一种:预授时响应时长、预授时响应消息的有效性、以及预授时响应消息中包含的授时服务器参数。其中,预授时响应时长具体为:终端发起预授时请求的时间,与终端接收到对应预授时响应消息的时间之间的时长。预授时响应消息的有效性具体为:预授时响应消息是否合法,和/或,预授时响应消息是否可解析,和/或,预授时响应消息是否能够提取到授时时间等等。授时服务器参数可以包括以下参数中的至少一种:授时服务器的时间源类别,授时服务器覆盖的终端数量,以及授时服务器的区域标识。其中,授时服务器的时间源类别可以包括gps类别、北斗类别以及cdma类别等,不同的时间源类别其授时精度不同;授时服务器覆盖的终端数量具体为,利用该授时服务器进行正式授时的终端的数量;授时服务器的区域标识具体为,授时服务器所处的位置,或者,授时服务器已覆盖的终端所集中的位置。

    步骤s120:根据任一预授时请求对应的预授时请求响应参数,计算该预授时请求对应的授时服务器的授时质量指标值。

    本实施例中,一个预授时请求对应于一个授时服务器,根据一个预授时请求对应的预授时请求响应参数,能够计算出该预授时请求对应的授时服务器的授时质量指标值。其中,授时服务器的授时质量指标值表征了该授时服务器向该终端提供授时服务的质量状态,授时质量指标值越高,表明该终端利用该授时服务器进行时间同步的误差越小。

    在一种可选的实施方式中,可根据预授时请求响应参数中一个维度来计算该预授时请求对应的授时服务器的授时质量指标值。例如,可根据任一预授时请求对应的预授时响应时长,计算该预授时请求对应的授时服务器的授时质量指标值;其中,预授时响应时长负相关于授时服务器的授时质量指标值。具体地,响应时长能够反映终端与授时服务器之间网络链路状态及位置远近,网络链路状态越好,位置越近,则预授时响应时长越短,终端与授时服务器的同步误差小,授时服务器的授时质量指标值高。

    在又一种可选的实施方式中,可根据预授时请求响应参数中多个维度综合地计算该预授时请求对应的授时服务器的授时质量指标值。

    具体地,可首先针对于任一预授时请求,判断该预授时请求对应的预授时响应消息是否有效。在实际的实施过程中,虽然授时服务器能够快速地进行响应,然而若其反馈的预授时响应消息不合法(如格式不合法),和/或该预授时响应消息无法被终端解析,和/或,终端无法从预授时响应消息中提取到服务器的授时时间,则表明后续该终端仍无法依据该授时服务器进行时间同步,从而本实施例在确定出预授时请求对应的预授时响应消息无效时,则直接确定该预授时请求对应的授时服务器的授时质量指标值为最小值,如该最小值可以为0。

    若预授时请求对应的预授时响应消息有效,则根据预授时响应时长和/或预授时响应消息中包含的授时服务器参数来进一步计算授时服务器的授时质量指标值。具体地,根据该预授时请求对应的预授时响应时长计算该预授时请求对应的授时服务器的第一子指标值,其中,预授时响应时长负相关于第一子指标值,即预授时响应时长越短,则第一子指标值越高;和/或,根据该预授时请求对应的预授时响应消息中包含的授时服务器参数计算该预授时请求对应的授时服务器的第二子指标值,例如,授时服务器的时间源类别对应的精度越高,则第二子指标值越高;授时服务器覆盖的终端数量越少,表明其授时任务负荷较小,则第二子指标值越高;授时服务器的区域标识与终端位置匹配度越高,则第二子指标值越高。最终根据第一子指标值和/或第二子指标值,计算该预授时请求对应的授时服务器的授时质量指标值。其中,在根据第一子指标值以及第二子指标值,计算该预授时请求对应的授时服务器的授时质量指标值过程中,可根据第一指标值与第二指标值的加权结果计算该预授时请求对应的授时服务器的授时质量指标值,可选的,第一指标值的权重大于第二指标值的权重。采用该种方式,能够从终端与授时服务器间的网络链路状态、位置关系、授时服务器稳定性等多方面综合计算授时服务器的授时质量指标值。

    步骤s130:根据授时服务器的授时质量指标值,从多个授时服务器中选取一个授时服务器作为目标授时服务器。

    根据授时服务器的授时质量指标值,能够从多个授时服务器中选取一个授时质量最优的授时服务器作为该终端的目标授时服务器。具体地,将授时质量指标值最高的授时服务器作为目标授时服务器。当授时质量指标值最高的授时服务器为多个时,可从质量指标值最高的多个授时服务器中随机选取一个作为目标授时服务器。总之,本实施例中,任意一个终端具有与其对应的唯一一个目标授时服务器。

    步骤s140:向目标授时服务器发送正式授时请求,并获取正式授时请求对应的正式授时请求响应参数,根据正式授时请求响应参数,进行时间校准。

    在通过步骤s110-步骤s130确定出各个终端的目标授时服务器之后,各个终端可依据各自的目标授时服务器进行时间同步。由于各个终端均利用其授时质量最优的授时服务器进行时间同步,从而各个终端与其对应的目标授时服务器之间的时间同步精度高,进而能够使得各个终端之间具有较高的时间同步精度。

    在一种可选的实施方式中,终端在限时业务,秒杀业务开始之前,执行上述步骤s110-步骤s140,从而在限时业务,秒杀业务等开始时,能够保障各个终端之间时间同步的精准度;又或者,终端可以按照相应的周期,执行上述步骤s110-步骤s140。

    由此可见,本实施例部署有多个授时服务器,各个终端在进行正式的时间同步之前,先分别向多个授时服务器发送预授时请求,继而根据预授时请求对应的预授时请求响应参数,计算各个授时服务器的授时质量指标值,并基于授时质量指标值,从多个授时服务器中选取一个授时质量好的授时服务器作为该终端的目标授时服务器,最终各个终端均利用其授时质量最优的授时服务器进行时间同步,从而能够大幅提升终端间时间同步的精确度。

    实施例二

    图2示出了本发明实施例二提供的一种时间同步方法的流程示意图。其中,本实施例所提供的时间同步方法是对实施例一中时间同步方法的进一步优化。

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

    步骤s210:分别向多个授时服务器发送预授时请求,并分别获取各个预授时请求对应的预授时请求响应参数;根据任一预授时请求对应的预授时请求响应参数,计算该预授时请求对应的授时服务器的授时质量指标值;根据授时服务器的授时质量指标值,从多个授时服务器中选取一个授时服务器作为目标授时服务器。

    其中,本步骤的具体实施过程可参照实施例一中相应部分的描述,本实施例在此不做赘述。

    步骤s220:向目标授时服务器发送正式授时请求,并获取正式授时请求对应的正式授时请求响应参数。

    在通过步骤s210确定出终端的目标授时服务器之后,该终端可向该目标授时服务器发送正式授时请求,目标授时服务器根据接收到的正式授时请求进行响应,并向终端反馈正式授时响应消息。从而,本实施例在终端与目标授时服务器进行信息交互过程中,获取正式授时请求对应的正式授时请求响应参数。

    其中,正式授时请求响应参数包括以下参数中至少一种:终端发起正式授时请求的第一时间,正式授时响应消息中包含的目标授时服务器接收正式授时请求的第二时间,以及终端接收到正式授时响应消息的第三时间。具体地,终端向目标授时服务器发送一条正式授时请求时,记录当前的终端时间,该时间即为第一时间;目标服务器在接收到该正式授时请求后,记录接收到该正式授时请求的目标服务器时间,该时间即为第二时间,目标服务器进一步地将包含有该第二时间的正式授时响应消息反馈给终端;终端在接收到该正式授时响应消息时,记录当前的终端时间,并将该终端时间作为第三时间。

    步骤s230:根据正式授时请求响应参数,计算终端与目标授时服务器之间的时间差。

    其中,终端与目标授时服务器之间的时间差的具体计算方式可采用以下方式中的一种:

    时间差计算方式一:终端向目标授时服务器发送一个正式授时请求,则本步骤可根据该单个正式授时请求对应的正式授时请求响应参数,快速地计算出终端与目标授时服务器之间的时间差。

    具体地,首先根据该单个正式授时请求对应的正式授时请求响应参数中的第一时间以及第三时间,计算单程网络耗时。单程网络耗时具体计算过程为:计算第三时间与第一时间的差值,将该差值的一半确定为单程网络耗时。即若第一时间为t1,第三时间为t3,则单程网络耗时rtt=(t3-t1)/2。

    进一步地,根据第一时间、第二时间以及单程网络耗时,计算终端与目标授时服务器之间的时间差。具体地,计算第一时间与单程网络耗时的第一总和;将第二时间与第一总和之间的差值,确定为终端与目标授时服务器之间的时间差。其中,若第二时间为t2,则终端与目标授时服务器之间的时间差d=t2-(t1 rtt)。

    和/或,根据第二时间、第三时间以及单程网络耗时,计算终端与目标授时服务器之间的时间差。具体地,计算第二时间与单程网络耗时的第二总和;将第二总和与第三时间的差值,确定为终端与目标授时服务器之间的时间差。即终端与目标授时服务器之间的时间差d=t2 rtt–t3。

    时间差计算方式二,终端可以依次向目标授时服务器发送多个正式授时请求,如每隔预设时长向目标授时服务器发送一个正式授时请求。则在本实施方式中,根据多个正式授时请求对应的正式授时请求响应参数,准确地计算出终端与目标授时服务器之间的时间差。

    可选的,由于首次向目标授时服务器发送正式授时请求时,需进行tcp/ip握手协议、建立路由链接、进行dns识别等操作,从而使得请求-响应过程较长,故此,为避免该首次请求对后续终端与目标授时服务器之间时间差计算精度的影响,可从多个正式授时请求中剔除首个正式授时请求,并根据不包括该首个正式授时请求的其他多个正式授时请求对应的正式授时请求响应参数,计算出终端与目标授时服务器之间的时间差。

    具体地,首先针对于该多个正式授时请求中的任一正式授时请求,根据该正式授时请求对应的正式授时请求响应参数,计算该正式授时请求对应的终端与目标授时服务器之间的候选时间差。其中,每个正式授时请求对应的候选时间差的计算方式可参照上述方式一中根据单个正式授时请求对应的正式授时请求响应参数,计算终端与目标授时服务器之间的时间差的计算方式,本实施方式在此不做赘述。

    进一步地根据多个候选时间差的平均值,计算终端与目标授时服务器之间的时间差。在一种可选的实施方式中,可直接将计算出的所有候选时间差的平均值,作为终端与目标授时服务器之间的时间差。在另一种可选的实施方式中,为了进一步提升计算出的时间差的准确度,可剔除计算出的候选时间差中的偏离点,将剔除偏离点后的候选时间差的平均值作为终端与目标授时服务器之间的时间差,其具体实施过程如图3所示:

    s1:计算当前候选时间差集合对应的平均值及偏离阈值。

    在初始状态下,候选时间差集合中包含所有计算出的候选时间差。其中,当前候选时间差集合对应的偏离阈值负相关于本步骤s1的执行次数,即本步骤s1的执行次数越多,偏离阈值越小,从而便于候选时间差集合的快速收敛,进而进一步提升计算出的终端与目标授时服务器之间时间差的准确度。具体地,在计算当前候选时间差集合对应的偏离阈值过程中,可预先设置不同的s1执行次数与偏离阈值的映射关系,从而根据该映射关系确定每次当前候选时间差集合对应的偏离阈值;又或者,根据当前候选时间差集合对应的标准差与预设倍数计算当前候选时间差集合对应的偏离阈值,其中,预设倍数为固定值,由于后续步骤s2中剔除了偏离候选时间差,所以剔除后生成的新的候选时间差集合的标准差小于上一候选时间差集合的标准差,故此新的候选时间差集合的偏离阈值也小于上一候选时间差集合的偏离阈值。

    s2:从当前候选时间差集合中剔除偏离候选时间差,从而生成新的候选时间差集合。其中,偏离候选时间差与当前候选时间差集合对应的平均值的差值的绝对值大于当前候选时间差集合对应的偏离阈值。

    s3:判断当前剔除操作次数是否大于或等于预设次数;若否,则进一步执行步骤s1;若是,则将新的候选时间差集合对应的平均值作为终端与目标授时服务器之间的时间差。

    以下以一具体示例来阐明s1-s3的具体实施过程:

    正式授时请求qi(i=1…n)对应的终端与目标授时服务器之间的候选时间差为di(i=1…n);则在初始状态下执行s1时,当前候选时间差集合为a1,其包含候选时间差d1~dn,共n个候选时间差,候选时间差集合a1的平均值为avg1,标准差为σ1,偏离阈值为k*σ1;在执行s2时,|d2-avg1|>k*σ1,|d7-avg1|>k*σ1,则d2及d7为偏离候选时间差,从而将d2及d7从候选时间差集合a1中剔除,并生成新的候选时间差集合a2;进一步执行s3,当前剔除操作次数为1,其小于预设次数2,则进一步执行s1;此时当前候选时间差集合为a2,其包含候选时间差d1,d3~d6,d8~dn,共n-2个候选时间差,候选时间差集合a2的平均值为avg2,标准差为σ2(由于候选时间差集合s2相较于候选时间差集合s1更为收敛,故此σ2<σ1),偏离阈值为k*σ2;进一步执行s2,其中,|d6-avg2|>k*σ2,则将d6从候选时间差集合a2中剔除,并生成新的候选时间差集合a3;进一步执行s3,当前剔除操作次数为2,其等于预设次数,则将候选时间差集合a3对应的平均值作为终端与目标授时服务器之间的时间差,即将d1,d3~d5,d8~dn共n-3个候选时间差的平均值作为终端与目标授时服务器之间的时间差。

    在此,本领域技术人员应当理解的是,本领域技术人员可根据实际需求不断优化初始候选时间差集合中的元素个数、预设倍数及预设次数;通过s1-s3的多次循环执行使得当前候选时间差集合中的元素不断收敛,最终趋于一毫秒级的时间差。

    步骤s240:根据终端与目标授时服务器之间的时间差,进行时间校准。

    具体地,将终端与目标授时服务器之间的时间差,与终端当前时间的和作为终端当前的校准时间。

    在另一种可选的实施方式中,可根据正式授时请求响应参数,计算终端与目标授时服务器之间的单程网络耗时,继而将第二时间与该单程网络耗时的时间和作为终端当前的校准时间。

    由此可见,本实施例首先从多个授时服务器中选取一个授时质量好的授时服务器作为终端的目标授时服务器,最终各个终端均利用其授时质量最优的授时服务器进行时间同步,从而能够大幅提升终端间时间同步的精确度;并且,终端在利用其授时质量最优的授时服务器进行时间同步过程中,具体是根据正式授时请求响应参数,准确地计算出终端与目标授时服务器之间的时间差,最终根据该时间差及终端当前时间能够快速地生成终端的校准时间。

    实施例三

    根据本发明实施例三提供了一种非易失性计算机存储介质,所述计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的时间同步方法。

    可执行指令具体可以用于使得处理器执行以下操作:

    分别向多个授时服务器发送预授时请求,并分别获取各个预授时请求对应的预授时请求响应参数;

    根据任一预授时请求对应的预授时请求响应参数,计算该预授时请求对应的授时服务器的授时质量指标值;

    根据授时服务器的授时质量指标值,从所述多个授时服务器中选取一个授时服务器作为目标授时服务器;

    向所述目标授时服务器发送正式授时请求,并获取所述正式授时请求对应的正式授时请求响应参数;

    根据所述正式授时请求响应参数,进行时间校准。

    在一种可选的实施方式中,所述预授时请求响应参数包括以下参数中的至少一种:

    预授时响应时长、预授时响应消息的有效性、以及预授时响应消息中包含的授时服务器参数。

    在一种可选的实施方式中,所述授时服务器参数包括以下参数中的至少一种:

    授时服务器的时间源类别,授时服务器覆盖的终端数量,以及授时服务器的区域标识。

    在一种可选的实施方式中,所述可执行指令使所述处理器执行如下操作:

    根据任一预授时请求对应的预授时响应时长,计算该预授时请求对应的授时服务器的授时质量指标值;其中,预授时响应时长负相关于授时服务器的授时质量指标值。

    在一种可选的实施方式中,所述可执行指令使所述处理器执行如下操作:

    针对于任一预授时请求,判断该预授时请求对应的预授时响应消息是否有效;

    若否,则确定该预授时请求对应的授时服务器的授时质量指标值为最小值;

    若是,则根据该预授时请求对应的预授时响应时长计算该预授时请求对应的授时服务器的第一子指标值;和/或,根据该预授时请求对应的预授时响应消息中包含的授时服务器参数计算该预授时请求对应的授时服务器的第二子指标值;并根据第一子指标值和/或第二子指标值,计算该预授时请求对应的授时服务器的授时质量指标值。

    在一种可选的实施方式中,所述可执行指令使所述处理器执行如下操作:

    将授时质量指标值最高的授时服务器作为目标授时服务器。

    在一种可选的实施方式中,所述正式授时请求响应参数包括以下参数中至少一种:

    终端发起正式授时请求的第一时间,正式授时响应消息中包含的目标授时服务器接收正式授时请求的第二时间,以及终端接收到正式授时响应消息的第三时间。

    在一种可选的实施方式中,所述可执行指令使所述处理器执行如下操作:

    根据所述正式授时请求响应参数,计算终端与目标授时服务器之间的时间差;

    根据终端与目标授时服务器之间的时间差,进行时间校准。

    在一种可选的实施方式中,所述可执行指令使所述处理器执行如下操作:

    根据所述第一时间以及所述第三时间,计算单程网络耗时;

    根据所述第一时间、所述第二时间以及所述单程网络耗时,计算终端与目标授时服务器之间的时间差;和/或,根据所述第二时间、所述第三时间以及所述单程网络耗时,计算终端与目标授时服务器之间的时间差。

    在一种可选的实施方式中,所述可执行指令使所述处理器执行如下操作:

    计算所述第三时间与所述第一时间的差值;

    将所述差值的一半确定为所述单程网络耗时。

    在一种可选的实施方式中,所述可执行指令使所述处理器执行如下操作:

    计算所述第一时间与所述单程网络耗时的第一总和;

    将所述第二时间与所述第一总和之间的差值,确定为终端与目标授时服务器之间的时间差。

    在一种可选的实施方式中,所述可执行指令使所述处理器执行如下操作:

    计算所述第二时间与所述单程网络耗时的第二总和;

    将所述第二总和与所述第三时间的差值,确定为终端与目标授时服务器之间的时间差。

    在一种可选的实施方式中,所述可执行指令使所述处理器执行如下操作:

    所述正式授时请求为多个;

    根据多个正式授时请求对应的正式授时请求响应参数,计算终端与目标授时服务器之间的时间差。

    在一种可选的实施方式中,所述可执行指令使所述处理器执行如下操作:

    针对于任一正式授时请求,根据该正式授时请求对应的正式授时请求响应参数,计算该正式授时请求对应的终端与目标授时服务器之间的候选时间差;

    根据多个候选时间差的平均值,计算终端与目标授时服务器之间的时间差。

    在一种可选的实施方式中,所述可执行指令使所述处理器执行如下操作:

    s1:计算当前候选时间差集合对应的平均值及偏离阈值;其中,所述候选时间差集合在初始状态下包含所有计算出的候选时间差;

    s2:从当前候选时间差集合中剔除偏离候选时间差,从而生成新的候选时间差集合;其中,偏离候选时间差与当前候选时间差集合对应的平均值的差值的绝对值大于当前候选时间差集合对应的偏离阈值;

    s3:判断当前剔除操作次数是否大于或等于预设次数;若否,则进一步执行步骤s1;若是,则将所述新的候选时间差集合对应的平均值作为终端与目标授时服务器之间的时间差。

    在一种可选的实施方式中,所述当前候选时间差集合对应的偏离阈值由所述当前候选时间差集合对应的标准差与预设倍数计算获得。

    在一种可选的实施方式中,所述可执行指令使所述处理器执行如下操作:

    在所述针对于任一正式授时请求,根据该正式授时请求对应的正式授时请求响应参数,计算该正式授时请求对应的终端与目标授时服务器之间的候选时间差之前,从所述多个正式授时请求中剔除首个正式授时请求。

    在一种可选的实施方式中,所述可执行指令使所述处理器执行如下操作:

    将终端与目标授时服务器之间的时间差,与终端当前时间的和作为终端当前的校准时间。

    由此可见,本实施例首先从多个授时服务器中选取一个授时质量好的授时服务器作为终端的目标授时服务器,最终各个终端均利用其授时质量最优的授时服务器进行时间同步,从而能够大幅提升终端间时间同步的精确度。

    实施例四

    图4示出了根据本发明实施例四提供的一种计算设备的结构示意图,本发明具体实施例并不对该计算设备的具体实现做限定。

    如图4所示,该计算设备可以包括:处理器(processor)402、通信接口(communicationsinterface)404、存储器(memory)406、以及通信总线408。

    其中:处理器402、通信接口404、以及存储器406通过通信总线408完成相互间的通信。通信接口404,用于与其它设备比如客户端或其它服务器等的网元通信。处理器402,用于执行程序410,具体可以执行上述用于上述任一方法实施例中的相关步骤。

    具体地,程序410可以包括程序代码,该程序代码包括计算机操作指令。

    处理器402可能是中央处理器cpu,或者是特定集成电路asic(applicationspecificintegratedcircuit),或者是被配置成实施本发明实施例的一个或多个集成电路。计算设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个cpu;也可以是不同类型的处理器,如一个或多个cpu以及一个或多个asic。

    存储器406,用于存放程序410。存储器406可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。

    程序410具体可以用于使得处理器402执行以下操作:

    分别向多个授时服务器发送预授时请求,并分别获取各个预授时请求对应的预授时请求响应参数;根据任一预授时请求对应的预授时请求响应参数,计算该预授时请求对应的授时服务器的授时质量指标值;根据授时服务器的授时质量指标值,从所述多个授时服务器中选取一个授时服务器作为目标授时服务器;向所述目标授时服务器发送正式授时请求,并获取所述正式授时请求对应的正式授时请求响应参数;根据所述正式授时请求响应参数,进行时间校准。

    在一种可选的实施方式中,所述预授时请求响应参数包括以下参数中的至少一种:预授时响应时长、预授时响应消息的有效性、以及预授时响应消息中包含的授时服务器参数。

    在一种可选的实施方式中,所述授时服务器参数包括以下参数中的至少一种:授时服务器的时间源类别,授时服务器覆盖的终端数量,以及授时服务器的区域标识。

    在一种可选的实施方式中,程序410具体可以用于使得处理器402执行以下操作:根据任一预授时请求对应的预授时响应时长,计算该预授时请求对应的授时服务器的授时质量指标值;其中,预授时响应时长负相关于授时服务器的授时质量指标值。

    在一种可选的实施方式中,程序410具体可以用于使得处理器402执行以下操作:针对于任一预授时请求,判断该预授时请求对应的预授时响应消息是否有效;若否,则确定该预授时请求对应的授时服务器的授时质量指标值为最小值;若是,则根据该预授时请求对应的预授时响应时长计算该预授时请求对应的授时服务器的第一子指标值;和/或,根据该预授时请求对应的预授时响应消息中包含的授时服务器参数计算该预授时请求对应的授时服务器的第二子指标值;并根据第一子指标值和/或第二子指标值,计算该预授时请求对应的授时服务器的授时质量指标值。

    在一种可选的实施方式中,程序410具体可以用于使得处理器402执行以下操作:将授时质量指标值最高的授时服务器作为目标授时服务器。

    在一种可选的实施方式中,所述正式授时请求响应参数包括以下参数中至少一种:终端发起正式授时请求的第一时间,正式授时响应消息中包含的目标授时服务器接收正式授时请求的第二时间,以及终端接收到正式授时响应消息的第三时间。

    在一种可选的实施方式中,程序410具体可以用于使得处理器402执行以下操作:根据所述正式授时请求响应参数,计算终端与目标授时服务器之间的时间差;根据终端与目标授时服务器之间的时间差,进行时间校准。

    在一种可选的实施方式中,程序410具体可以用于使得处理器402执行以下操作:根据所述第一时间以及所述第三时间,计算单程网络耗时;根据所述第一时间、所述第二时间以及所述单程网络耗时,计算终端与目标授时服务器之间的时间差;和/或,根据所述第二时间、所述第三时间以及所述单程网络耗时,计算终端与目标授时服务器之间的时间差。

    在一种可选的实施方式中,程序410具体可以用于使得处理器402执行以下操作:计算所述第三时间与所述第一时间的差值;将所述差值的一半确定为所述单程网络耗时。

    在一种可选的实施方式中,程序410具体可以用于使得处理器402执行以下操作:计算所述第一时间与所述单程网络耗时的第一总和;将所述第二时间与所述第一总和之间的差值,确定为终端与目标授时服务器之间的时间差。

    在一种可选的实施方式中,程序410具体可以用于使得处理器402执行以下操作:计算所述第二时间与所述单程网络耗时的第二总和;将所述第二总和与所述第三时间的差值,确定为终端与目标授时服务器之间的时间差。

    在一种可选的实施方式中,程序410具体可以用于使得处理器402执行以下操作:所述正式授时请求为多个;根据多个正式授时请求对应的正式授时请求响应参数,计算终端与目标授时服务器之间的时间差。

    在一种可选的实施方式中,程序410具体可以用于使得处理器402执行以下操作:针对于任一正式授时请求,根据该正式授时请求对应的正式授时请求响应参数,计算该正式授时请求对应的终端与目标授时服务器之间的候选时间差;根据多个候选时间差的平均值,计算终端与目标授时服务器之间的时间差。

    在一种可选的实施方式中,程序410具体可以用于使得处理器402执行以下操作:

    s1:计算当前候选时间差集合对应的平均值及偏离阈值;其中,所述候选时间差集合在初始状态下包含所有计算出的候选时间差;

    s2:从当前候选时间差集合中剔除偏离候选时间差,从而生成新的候选时间差集合;其中,偏离候选时间差与当前候选时间差集合对应的平均值的差值的绝对值大于当前候选时间差集合对应的偏离阈值;

    s3:判断当前剔除操作次数是否大于或等于预设次数;若否,则进一步执行步骤s1;若是,则将所述新的候选时间差集合对应的平均值作为终端与目标授时服务器之间的时间差。

    在一种可选的实施方式中,所述当前候选时间差集合对应的偏离阈值由所述当前候选时间差集合对应的标准差与预设倍数计算获得。

    在一种可选的实施方式中,程序410具体可以用于使得处理器402执行以下操作:在所述针对于任一正式授时请求,根据该正式授时请求对应的正式授时请求响应参数,计算该正式授时请求对应的终端与目标授时服务器之间的候选时间差之前,从所述多个正式授时请求中剔除首个正式授时请求。

    在一种可选的实施方式中,程序410具体可以用于使得处理器402执行以下操作:将终端与目标授时服务器之间的时间差,与终端当前时间的和作为终端当前的校准时间。

    由此可见,本实施例首先从多个授时服务器中选取一个授时质量好的授时服务器作为终端的目标授时服务器,最终各个终端均利用其授时质量最优的授时服务器进行时间同步,从而能够大幅提升终端间时间同步的精确度。

    在此提供的算法或显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明实施例也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。

    在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

    类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明实施例的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

    本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

    此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

    本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(dsp)来实现根据本发明实施例的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。

    应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。上述实施例中的步骤,除有特殊说明外,不应理解为对执行顺序的限定。

    本发明公开了:a1.一种时间同步方法,所述方法应用于任一终端,所述方法包括:

    分别向多个授时服务器发送预授时请求,并分别获取各个预授时请求对应的预授时请求响应参数;

    根据任一预授时请求对应的预授时请求响应参数,计算该预授时请求对应的授时服务器的授时质量指标值;

    根据授时服务器的授时质量指标值,从所述多个授时服务器中选取一个授时服务器作为目标授时服务器;

    向所述目标授时服务器发送正式授时请求,并获取所述正式授时请求对应的正式授时请求响应参数;

    根据所述正式授时请求响应参数,进行时间校准。

    a2.根据a1所述的方法,其中,所述预授时请求响应参数包括以下参数中的至少一种:

    预授时响应时长、预授时响应消息的有效性、以及预授时响应消息中包含的授时服务器参数。

    a3.根据a2所述的方法,其中,所述授时服务器参数包括以下参数中的至少一种:

    授时服务器的时间源类别,授时服务器覆盖的终端数量,以及授时服务器的区域标识。

    a4.根据a2所述的方法,其中,所述根据任一预授时请求对应的预授时请求响应参数,计算该预授时请求对应的授时服务器的授时质量指标值进一步包括:

    根据任一预授时请求对应的预授时响应时长,计算该预授时请求对应的授时服务器的授时质量指标值;其中,预授时响应时长负相关于授时服务器的授时质量指标值。

    a5.根据a2所述的方法,其中,所述根据任一预授时请求对应的预授时请求响应参数,计算该预授时请求对应的授时服务器的授时质量指标值进一步包括:

    针对于任一预授时请求,判断该预授时请求对应的预授时响应消息是否有效;

    若否,则确定该预授时请求对应的授时服务器的授时质量指标值为最小值;

    若是,则根据该预授时请求对应的预授时响应时长计算该预授时请求对应的授时服务器的第一子指标值;和/或,根据该预授时请求对应的预授时响应消息中包含的授时服务器参数计算该预授时请求对应的授时服务器的第二子指标值;并根据第一子指标值和/或第二子指标值,计算该预授时请求对应的授时服务器的授时质量指标值。

    a6.根据a1-a5中任一项所述的方法,其中,所述根据授时服务器的授时质量指标值,从所述多个授时服务器中选取一个授时服务器作为目标授时服务器进一步包括:

    将授时质量指标值最高的授时服务器作为目标授时服务器。

    a7.根据a1-a6中任一项所述的方法,其中,所述正式授时请求响应参数包括以下参数中至少一种:

    终端发起正式授时请求的第一时间,正式授时响应消息中包含的目标授时服务器接收正式授时请求的第二时间,以及终端接收到正式授时响应消息的第三时间。

    a8.根据a7所述的方法,其中,所述根据所述正式授时请求响应参数,进行时间校准进一步包括:

    根据所述正式授时请求响应参数,计算终端与目标授时服务器之间的时间差;

    根据终端与目标授时服务器之间的时间差,进行时间校准。

    a9.根据a8所述的方法,其中,所述根据所述正式授时请求响应参数,计算终端与目标授时服务器之间的时间差进一步包括:

    根据所述第一时间以及所述第三时间,计算单程网络耗时;

    根据所述第一时间、所述第二时间以及所述单程网络耗时,计算终端与目标授时服务器之间的时间差;和/或,根据所述第二时间、所述第三时间以及所述单程网络耗时,计算终端与目标授时服务器之间的时间差。

    a10.根据a9所述的方法,其中,所述根据所述第一时间以及所述第三时间,计算单程网络耗时进一步包括:

    计算所述第三时间与所述第一时间的差值;

    将所述差值的一半确定为所述单程网络耗时。

    a11.根据a9或a10所述的方法,其中,所述根据所述第一时间、所述第二时间以及所述单程网络耗时,计算终端与目标授时服务器之间的时间差进一步包括:

    计算所述第一时间与所述单程网络耗时的第一总和;

    将所述第二时间与所述第一总和之间的差值,确定为终端与目标授时服务器之间的时间差。

    a12.根据a9或a10所述的方法,其中,所述根据所述第二时间、所述第三时间以及所述单程网络耗时,计算终端与目标授时服务器之间的时间差进一步包括:

    计算所述第二时间与所述单程网络耗时的第二总和;

    将所述第二总和与所述第三时间的差值,确定为终端与目标授时服务器之间的时间差。

    a13.根据a8-a12中任一项所述的方法,其中,所述正式授时请求为多个;

    则所述根据所述正式授时请求响应参数,计算终端与目标授时服务器之间的时间差进一步包括:根据多个正式授时请求对应的正式授时请求响应参数,计算终端与目标授时服务器之间的时间差。

    a14.根据a13所述的方法,其中,所述根据多个正式授时请求对应的正式授时请求响应参数,计算终端与目标授时服务器之间的时间差进一步包括:

    针对于任一正式授时请求,根据该正式授时请求对应的正式授时请求响应参数,计算该正式授时请求对应的终端与目标授时服务器之间的候选时间差;

    根据多个候选时间差的平均值,计算终端与目标授时服务器之间的时间差。

    a15.根据a14所述的方法,其中,所述根据多个候选时间差的平均值,计算终端与目标授时服务器之间的时间差进一步包括:

    s1:计算当前候选时间差集合对应的平均值及偏离阈值;其中,所述候选时间差集合在初始状态下包含所有计算出的候选时间差;

    s2:从当前候选时间差集合中剔除偏离候选时间差,从而生成新的候选时间差集合;其中,偏离候选时间差与当前候选时间差集合对应的平均值的差值的绝对值大于当前候选时间差集合对应的偏离阈值;

    s3:判断当前剔除操作次数是否大于或等于预设次数;若否,则进一步执行步骤s1;若是,则将所述新的候选时间差集合对应的平均值作为终端与目标授时服务器之间的时间差。

    a16.根据a15所述的方法,其中,所述当前候选时间差集合对应的偏离阈值由所述当前候选时间差集合对应的标准差与预设倍数计算获得。

    a17.根据a14所述的方法,其中,在所述针对于任一正式授时请求,根据该正式授时请求对应的正式授时请求响应参数,计算该正式授时请求对应的终端与目标授时服务器之间的候选时间差之前,所述方法还包括:

    从所述多个正式授时请求中剔除首个正式授时请求。

    a18.根据a8-a17中任一项所述的方法,其中,所述根据终端与目标授时服务器之间的时间差,进行时间校准进一步包括:

    将终端与目标授时服务器之间的时间差,与终端当前时间的和作为终端当前的校准时间。

    本发明还公开了:b19.一种计算设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;

    所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如下操作:

    分别向多个授时服务器发送预授时请求,并分别获取各个预授时请求对应的预授时请求响应参数;

    根据任一预授时请求对应的预授时请求响应参数,计算该预授时请求对应的授时服务器的授时质量指标值;

    根据授时服务器的授时质量指标值,从所述多个授时服务器中选取一个授时服务器作为目标授时服务器;

    向所述目标授时服务器发送正式授时请求,并获取所述正式授时请求对应的正式授时请求响应参数;

    根据所述正式授时请求响应参数,进行时间校准。

    b20.根据b19所述的计算设备,其中,所述预授时请求响应参数包括以下参数中的至少一种:

    预授时响应时长、预授时响应消息的有效性、以及预授时响应消息中包含的授时服务器参数。

    b21.根据b20所述的计算设备,其中,所述授时服务器参数包括以下参数中的至少一种:

    授时服务器的时间源类别,授时服务器覆盖的终端数量,以及授时服务器的区域标识。

    b22.根据b20所述的计算设备,其中,所述可执行指令使所述处理器执行如下操作:

    根据任一预授时请求对应的预授时响应时长,计算该预授时请求对应的授时服务器的授时质量指标值;其中,预授时响应时长负相关于授时服务器的授时质量指标值。

    b23.根据b20所述的计算设备,其中,所述可执行指令使所述处理器执行如下操作:

    针对于任一预授时请求,判断该预授时请求对应的预授时响应消息是否有效;

    若否,则确定该预授时请求对应的授时服务器的授时质量指标值为最小值;

    若是,则根据该预授时请求对应的预授时响应时长计算该预授时请求对应的授时服务器的第一子指标值;和/或,根据该预授时请求对应的预授时响应消息中包含的授时服务器参数计算该预授时请求对应的授时服务器的第二子指标值;并根据第一子指标值和/或第二子指标值,计算该预授时请求对应的授时服务器的授时质量指标值。

    b24.根据b19-b23中任一项所述的计算设备,其中,所述可执行指令使所述处理器执行如下操作:

    将授时质量指标值最高的授时服务器作为目标授时服务器。

    b25.根据b19-b24中任一项所述的计算设备,其中,所述正式授时请求响应参数包括以下参数中至少一种:

    终端发起正式授时请求的第一时间,正式授时响应消息中包含的目标授时服务器接收正式授时请求的第二时间,以及终端接收到正式授时响应消息的第三时间。

    b26.根据b25所述的计算设备,其中,所述可执行指令使所述处理器执行如下操作:

    根据所述正式授时请求响应参数,计算终端与目标授时服务器之间的时间差;

    根据终端与目标授时服务器之间的时间差,进行时间校准。

    b27.根据b26所述的计算设备,其中,所述可执行指令使所述处理器执行如下操作:

    根据所述第一时间以及所述第三时间,计算单程网络耗时;

    根据所述第一时间、所述第二时间以及所述单程网络耗时,计算终端与目标授时服务器之间的时间差;和/或,根据所述第二时间、所述第三时间以及所述单程网络耗时,计算终端与目标授时服务器之间的时间差。

    b28.根据b27所述的计算设备,其中,所述可执行指令使所述处理器执行如下操作:

    计算所述第三时间与所述第一时间的差值;

    将所述差值的一半确定为所述单程网络耗时。

    b29.根据b27或b28所述的计算设备,其中,所述可执行指令使所述处理器执行如下操作:

    计算所述第一时间与所述单程网络耗时的第一总和;

    将所述第二时间与所述第一总和之间的差值,确定为终端与目标授时服务器之间的时间差。

    b30.根据b27或b28所述的计算设备,其中,所述可执行指令使所述处理器执行如下操作:

    计算所述第二时间与所述单程网络耗时的第二总和;

    将所述第二总和与所述第三时间的差值,确定为终端与目标授时服务器之间的时间差。

    b31.根据b26-b30中任一项所述的计算设备,其中,所述可执行指令使所述处理器执行如下操作:

    所述正式授时请求为多个;

    根据多个正式授时请求对应的正式授时请求响应参数,计算终端与目标授时服务器之间的时间差。

    b32.根据b31所述的计算设备,其中,所述可执行指令使所述处理器执行如下操作:

    针对于任一正式授时请求,根据该正式授时请求对应的正式授时请求响应参数,计算该正式授时请求对应的终端与目标授时服务器之间的候选时间差;

    根据多个候选时间差的平均值,计算终端与目标授时服务器之间的时间差。

    b33.根据b32所述的计算设备,其中,所述可执行指令使所述处理器执行如下操作:

    s1:计算当前候选时间差集合对应的平均值及偏离阈值;其中,所述候选时间差集合在初始状态下包含所有计算出的候选时间差;

    s2:从当前候选时间差集合中剔除偏离候选时间差,从而生成新的候选时间差集合;其中,偏离候选时间差与当前候选时间差集合对应的平均值的差值的绝对值大于当前候选时间差集合对应的偏离阈值;

    s3:判断当前剔除操作次数是否大于或等于预设次数;若否,则进一步执行步骤s1;若是,则将所述新的候选时间差集合对应的平均值作为终端与目标授时服务器之间的时间差。

    b34.根据b33所述的计算设备,其中,所述当前候选时间差集合对应的偏离阈值由所述当前候选时间差集合对应的标准差与预设倍数计算获得。

    b35.根据b32所述的计算设备,其中,所述可执行指令使所述处理器执行如下操作:

    在所述针对于任一正式授时请求,根据该正式授时请求对应的正式授时请求响应参数,计算该正式授时请求对应的终端与目标授时服务器之间的候选时间差之前,从所述多个正式授时请求中剔除首个正式授时请求。

    b36.根据b26-b35中任一项所述的计算设备,其中,所述可执行指令使所述处理器执行如下操作:

    将终端与目标授时服务器之间的时间差,与终端当前时间的和作为终端当前的校准时间。

    本发明还公开了:c37.一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如a1-a18中任一项所述的时间同步方法对应的操作。


    技术特征:

    1.一种时间同步方法,所述方法应用于任一终端,所述方法包括:

    分别向多个授时服务器发送预授时请求,并分别获取各个预授时请求对应的预授时请求响应参数;

    根据任一预授时请求对应的预授时请求响应参数,计算该预授时请求对应的授时服务器的授时质量指标值;

    根据授时服务器的授时质量指标值,从所述多个授时服务器中选取一个授时服务器作为目标授时服务器;

    向所述目标授时服务器发送正式授时请求,并获取所述正式授时请求对应的正式授时请求响应参数;

    根据所述正式授时请求响应参数,进行时间校准。

    2.根据权利要求1所述的方法,其中,所述预授时请求响应参数包括以下参数中的至少一种:

    预授时响应时长、预授时响应消息的有效性、以及预授时响应消息中包含的授时服务器参数。

    3.根据权利要求2所述的方法,其中,所述授时服务器参数包括以下参数中的至少一种:

    授时服务器的时间源类别,授时服务器覆盖的终端数量,以及授时服务器的区域标识。

    4.根据权利要求2所述的方法,其中,所述根据任一预授时请求对应的预授时请求响应参数,计算该预授时请求对应的授时服务器的授时质量指标值进一步包括:

    根据任一预授时请求对应的预授时响应时长,计算该预授时请求对应的授时服务器的授时质量指标值;其中,预授时响应时长负相关于授时服务器的授时质量指标值。

    5.根据权利要求2所述的方法,其中,所述根据任一预授时请求对应的预授时请求响应参数,计算该预授时请求对应的授时服务器的授时质量指标值进一步包括:

    针对于任一预授时请求,判断该预授时请求对应的预授时响应消息是否有效;

    若否,则确定该预授时请求对应的授时服务器的授时质量指标值为最小值;

    若是,则根据该预授时请求对应的预授时响应时长计算该预授时请求对应的授时服务器的第一子指标值;和/或,根据该预授时请求对应的预授时响应消息中包含的授时服务器参数计算该预授时请求对应的授时服务器的第二子指标值;并根据第一子指标值和/或第二子指标值,计算该预授时请求对应的授时服务器的授时质量指标值。

    6.根据权利要求1-5中任一项所述的方法,其中,所述根据授时服务器的授时质量指标值,从所述多个授时服务器中选取一个授时服务器作为目标授时服务器进一步包括:

    将授时质量指标值最高的授时服务器作为目标授时服务器。

    7.根据权利要求1-6中任一项所述的方法,其中,所述正式授时请求响应参数包括以下参数中至少一种:

    终端发起正式授时请求的第一时间,正式授时响应消息中包含的目标授时服务器接收正式授时请求的第二时间,以及终端接收到正式授时响应消息的第三时间。

    8.根据权利要求7所述的方法,其中,所述根据所述正式授时请求响应参数,进行时间校准进一步包括:

    根据所述正式授时请求响应参数,计算终端与目标授时服务器之间的时间差;

    根据终端与目标授时服务器之间的时间差,进行时间校准。

    9.一种计算设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;

    所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如下操作:

    分别向多个授时服务器发送预授时请求,并分别获取各个预授时请求对应的预授时请求响应参数;

    根据任一预授时请求对应的预授时请求响应参数,计算该预授时请求对应的授时服务器的授时质量指标值;

    根据授时服务器的授时质量指标值,从所述多个授时服务器中选取一个授时服务器作为目标授时服务器;

    向所述目标授时服务器发送正式授时请求,并获取所述正式授时请求对应的正式授时请求响应参数;

    根据所述正式授时请求响应参数,进行时间校准。

    10.一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如权利要求1-8中任一项所述的时间同步方法对应的操作。

    技术总结
    本发明公开了一种时间同步方法、计算设备及计算机存储介质。方法包括:向多个授时服务器发送预授时请求,获取预授时请求对应的预授时请求响应参数;根据任一预授时请求对应的预授时请求响应参数,计算预授时请求对应的授时服务器的授时质量指标值;根据授时服务器的授时质量指标值,从多个授时服务器中选取一个授时服务器作为目标授时服务器;向目标授时服务器发送正式授时请求,获取正式授时请求对应的正式授时请求响应参数;根据正式授时请求响应参数,进行时间校准。本方案各个终端从多个授时服务器中选取一个授时质量好的授时服务器,最终各个终端均利用其授时质量最优的授时服务器进行时间同步,从而能够大幅提升终端间时间同步的精确度。

    技术研发人员:方茗
    受保护的技术使用者:掌阅科技股份有限公司
    技术研发日:2020.11.30
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-24023.html

    最新回复(0)