一种网络校时方法及装置与流程

文档序号:15624360发布日期:2018-10-09 22:36阅读:134来源:国知局

本发明涉及网络校时技术领域,特别是涉及一种网络校时方法及装置。



背景技术:

随着计算机网络技术及视频技术的发展,网络中的电脑或者网络摄像机的时间同步起着越来越重要的作用。

一般情况下,在网络设备中,例如电脑或者网络摄像机,设备时间的计算是通过设备中的硬件晶振芯片进行的,但是受限于制作工艺、设备成本、硬件设计等因素,硬件晶振芯片在设备中运行会存在一定的误差,该误差对于设备的运行有着重要的影响。例如,针对多网络摄像机的联动系统,多个网络摄像机监控同一区域的不同地点,在需要同步调用同一时刻的所有网络摄像机的视频时,如果这些网络摄像机的拍摄时间存在着较大的误差,则会导致对视频的错误分析。例如,如果两个摄像机的拍摄时间的误差在5秒以上,则获取到的两路视频之间会有5秒以上的延时,两路视频中的内容不是同一时刻对应的视频信息,从而会引起错误的理解和分析;如果这些网络摄像机的拍摄时间的同步性很高,则可以较为轻易地分析视频中某个事件的发生过程。因此,每当设备运行一段时间后需要对设备进行校时,以确保设备当前的时间的准确性和同步性。

相关的校时方式中,通常需要用户配置校时服务器的地址和校时周期,在校时的时候需要周期性地向网络中的校时服务器发送校时请求,根据校时协议、经过和校时服务器的校时信息交互后重新配置设备的时间。

传统的校时协议为ntp(networktimeprotocol,网络校时协议),该协议主要用来测量校时请求数据包在网络上往返传输的延迟和估算设备时钟偏差,按照估算的设备时钟偏差对设备进行校时。具体的流程如图1所示,待校时设备101发送校时请求,校时服务器102在接收到校时请求后发送校时数据至待校时设备101,待校时设备101在接收到校时数据后完成校时,然后发送校时完成状态至校时服务器102,达到在网络上实现高精度设备校时的目的。

相关技术中,为了保证设备时间的准确性,校时周期的校时间隔通常设置得都比较短,例如:将校时间隔设置为30秒,每间隔30秒进行一次校时,这样不但能够保证设备时间的准确性,而且保证了设备间的同步性。但是,由于校时间隔比较短,在网络中会引入非常多的短时校时数据包,导致网络中的冗余数据量增加。



技术实现要素:

本发明实施例的目的在于提供一种网络校时方法及装置,以实现在保证设备时间的准确性的基础上,降低网络中的冗余数据量。具体技术方案如下:

第一方面,本发明实施例提供了一种网络校时方法,所述方法包括:

当接收到自适应校时指令时,获得当前时刻之前的历史校时数据,其中,所述历史校时数据包括:每次历史校时时间点、及每次历史校时时间点对应的校时差值;

计算得到每次历史校时时间点对应的历史校时总差值;

根据每次历史校时时间点对应的历史校时总差值,通过预设算法得到当前时刻的当前校时总差值;

将所述当前校时总差值与最近一次历史校时时间点的历史校时总差值之间的差值,确定为当前时刻的校时差值;

根据所述当前时刻的校时差值,调整当前时刻的时间,完成本次自适应校时。

可选的,所述自适应校时指令为根据用户输入产生的;或,按预设自适应校时周期生成的。

可选的,所述方法还包括:

在接收到第一个自适应校时指令之前,按预设第一网络校时周期,通过校时服务器进行服务器网络校时,并将每次服务器网络校时的校时时间点、及每次服务器网络校时的校时时间点对应的校时差值,作为历史校时数据保存;

在接收到第一个自适应校时指令之后,将所述预设第一网络校时周期延长至预设时长,并按所述预设时长通过校时服务器进行服务器网络校时,得到该次服务器校时对应的第一校时时间点及所述第一校时时间点对应的校时差值;

若所述历史校时数据的次数小于预设次数,则将所述第一校时时间点及所述第一校时时间点对应的校时差值作为历史校时数据保存;

若所述历史校时数据的次数等于所述预设次数,则删除所述历史校时数据中最早一次的历史校时时间点及对应的校时差值,并将所述第一校时时间点及所述第一校时时间点对应的校时差值作为历史校时数据保存。

可选的,所述按预设第一网络校时周期,通过校时服务器进行服务器网络校时,并将每次服务器网络校时的校时时间点、及每次服务器校时的校时时间点对应的校时差值,作为历史校时数据保存,包括:

获得多组校时信息,其中,所述校时信息包括:待校时设备向校时服务器发送校时请求时的第一时间t1、所述校时服务器接收到所述校时请求的第二时间t2、所述校时服务器向所述待校时设备发送校时数据时的第三时间t3、及所述待校时设备接收到所述校时数据的第四时间t4,所述校时数据包括:所述校时服务器对所述校时请求进行分析后得到的校时后时间;

获得每组校时信息中所述第二时间t2或所述第三时间t3对应的服务器网络校时的校时时间点;

根据每组校时信息,确定每次服务器网络校时的校时时间点对应的校时差值;

将每次服务器网络校时的校时时间点及每次服务器网络校时的校时时间点对应的校时差值,作为历史校时数据保存。

可选的,所述根据每组校时信息,确定每次服务器网络校时的校时时间点对应的校时差值,包括:

计算每组校时信息中所述第二时间t2与所述第一时间t1的第一差值,及每组校时信息中所述第四时间t4与所述第三时间t3的第二差值;

将所述第一差值与所述第二差值作差后除以2,得到每次服务器网络校时的校时时间点对应的校时差值。

可选的,所述计算得到每次历史校时时间点对应的历史校时总差值,包括:

获取并根据自适应校时标志,判断是否已进行过自适应校时;

如果未进行过自适应校时,则将每次历史校时时间点的校时差值与该历史校时时间点之前的所有历史校时时间点的校时差值进行累加,得到每次历史校时时间点对应的历史校时总差值;

如果已进行过自适应校时,则将每次历史校时时间点的校时差值与该历史校时时间点之前的所有历史校时时间点的校时差值进行累加后的到的数据、与已进行过自适应校时的校时差值相加,得到每次历史校时时间点对应的历史校时总差值。

可选的,所述根据每次历史校时时间点对应的历史校时总差值,通过预设算法得到当前时刻的当前校时总差值,包括:

根据每次历史校时时间点,确定所有历史校时时间点的平均校时时间点;

根据每次历史校时时间点对应的历史校时总差值,确定所有历史校时时间点的平均校时总差值;

根据每次历史校时时间点、每次历史校时时间点对应的历史校时总差值、所述平均校时时间点及所述平均校时总差值,通过第一计算公式,得到第一参数,其中,第一计算公式为:

所述b为所述第一参数,所述xi为第i次历史校时时间点,所述yi为所述第i次历史校时时间点的校时差值,所述n为历史校时时间点的总次数,所述为所述平均校时时间点,所述为所述平均校时总差值;

根据所述平均校时时间点、所述平均校时总差值及所述第一参数,通过第二计算公式,得到第二参数,其中,第二计算公式为:

所述a为所述第二参数,所述为所述平均校时总差值,所述b为所述第一参数,所述为所述平均校时时间点;

将所述第一参数及所述第二参数代入线性拟合方程,得到所述当前时刻的当前校时总差值y,其中,所述线性拟合方程为:

y=bx+a,

其中,所述y为所述当前时刻的当前校时总差值,所述b为所述第一参数,所述x为所述当前时刻的校时时间点,所述a为所述第二参数。

可选的,所述根据所述当前时刻的校时差值,调整当前时刻的时间,完成本次自适应校时,包括:

将所述当前时刻与所述当前时刻的校时差值相加,得到所述当前时刻的目标校时时间;

调整所述当前时刻的时间至所述目标校时时间,完成本次自适应校时。

第二方面,本发明实施例提供了一种网络校时装置,所述装置包括:

获得模块,用于当接收到自适应校时指令时,获得当前时刻之前的历史校时数据,其中,所述历史校时数据包括:每次历史校时时间点、及每次历史校时时间点对应的校时差值;

计算模块,用于计算得到每次历史校时时间点对应的历史校时总差值;

第一确定模块,用于根据每次历史校时时间点对应的历史校时总差值,通过预设算法得到当前时刻的当前校时总差值;

第二确定模块,用于将所述当前校时总差值与最近一次历史校时时间点的历史校时总差值之间的差值,确定为当前时刻的校时差值;

调整模块,用于根据所述当前时刻的校时差值,调整当前时刻的时间,完成本次自适应校时。

可选的,所述自适应校时指令为根据用户输入产生的;或,按预设自适应校时周期生成的。

可选的,所述装置还包括:

第一存储模块,用于在接收到第一个自适应校时指令之前,按预设第一网络校时周期,通过校时服务器进行服务器网络校时,并将每次服务器网络校时的校时时间点、及每次服务器网络校时的校时时间点对应的校时差值,作为历史校时数据保存;

第三确定模块,用于在接收到第一个自适应校时指令之后,将所述预设第一网络校时周期延长至预设时长,并按所述预设时长通过校时服务器进行服务器网络校时,得到该次服务器校时对应的第一校时时间点及所述第一校时时间点对应的校时差值;

第二存储模块,用于若所述历史校时数据的次数小于预设次数,则将所述第一校时时间点及所述第一校时时间点对应的校时差值作为历史校时数据保存;

第三存储模块,用于若所述历史校时数据的次数等于所述预设次数,则删除所述历史校时数据中最早一次的历史校时时间点及对应的校时差值,并将所述第一校时时间点及所述第一校时时间点对应的校时差值作为历史校时数据保存。

可选的,所述第一存储模块,包括:

第一获得子模块,用于获得多组校时信息,其中,所述校时信息包括:待校时设备向校时服务器发送校时请求时的第一时间t1、所述校时服务器接收到所述校时请求的第二时间t2、所述校时服务器向所述待校时设备发送校时数据时的第三时间t3、及所述待校时设备接收到所述校时数据的第四时间t4,所述校时数据包括:所述校时服务器对所述校时请求进行分析后得到的校时后时间;

第二获得子模块,用于获得每组校时信息中所述第二时间t2或所述第三时间t3对应的服务器网络校时的校时时间点;

第一确定子模块,用于根据每组校时信息,确定每次服务器网络校时的校时时间点对应的校时差值;

存储子模块,用于将每次服务器网络校时的校时时间点及每次服务器网络校时的校时时间点对应的校时差值,作为历史校时数据保存。

可选的,所述第一确定子模块,包括:

计算单元,用于计算每组校时信息中所述第二时间t2与所述第一时间t1的第一差值,及每组校时信息中所述第四时间t4与所述第三时间t3的第二差值;

确定单元,用于将所述第一差值与所述第二差值作差后除以2,得到每次服务器网络校时的校时时间点对应的校时差值。

可选的,所述计算模块,包括:

判断子模块,用于获取并根据自适应校时标志,判断是否已进行过自适应校时;

第二确定子模块,用于如果未进行过自适应校时,则将每次历史校时时间点的校时差值与该历史校时时间点之前的所有历史校时时间点的校时差值进行累加,得到每次历史校时时间点对应的历史校时总差值;

第三确定子模块,用于如果已进行过自适应校时,则将每次历史校时时间点的校时差值与该历史校时时间点之前的所有历史校时时间点的校时差值进行累加后的到的数据、与已进行过自适应校时的校时差值相加,得到每次历史校时时间点对应的历史校时总差值。

可选的,所述第一确定模块,包括:

平均校时时间点确定子模块,用于根据每次历史校时时间点,确定所有历史校时时间点的平均校时时间点;

平均校时总差值确定子模块,用于根据每次历史校时时间点对应的历史校时总差值,确定所有历史校时时间点的平均校时总差值;

第一参数确定子模块,用于根据每次历史校时时间点、每次历史校时时间点对应的历史校时总差值、所述平均校时时间点及所述平均校时总差值,通过第一计算公式,得到第一参数,其中,第一计算公式为:

所述b为所述第一参数,所述xi为第i次历史校时时间点,所述yi为所述第i次历史校时时间点的校时差值,所述n为历史校时时间点的总次数,所述为所述平均校时时间点,所述为所述平均校时总差值;

第二参数确定子模块,用于根据所述平均校时时间点、所述平均校时总差值及所述第一参数,通过第二计算公式,得到第二参数,其中,第二计算公式为:

所述a为所述第二参数,所述为所述平均校时总差值,所述b为所述第一参数,所述为所述平均校时时间点;

当前校时总差值确定子模块,用于将所述第一参数及所述第二参数代入线性拟合方程,得到所述当前时刻的当前校时总差值y,其中,所述线性拟合方程为:

y=bx+a,

其中,所述y为所述当前时刻的当前校时总差值,所述b为所述第一参数,所述x为所述当前时刻的校时时间点,所述a为所述第二参数。

可选的,所述调整模块,包括:

目标校时时间确定子模块,用于将所述当前时刻与所述当前时刻的校时差值相加,得到所述当前时刻的目标校时时间;

调整子模块,用于调整所述当前时刻的时间至所述目标校时时间,完成本次自适应校时。

本发明实施例提供的一种网络校时方法及装置,通过积累历史校时数据,对历史校时数据中的校时差值进行累加得到每个历史校时时间点的校时总差值,通过预设算法得到当前时刻的校时差值,根据该校时差值对当前时刻的时间进行调整,具有较高的实时性,保证了设备时间的准确性,并且由于只需要积累少量的历史数据,即校时设备与服务器之间只传输较少的校时数据包,从而降低了网络中的冗余数据量。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为现有技术的ntp协议的具体流程示意图;

图2为本发明实施例的网络校时方法的流程示意图;

图3为本发明实施例的每次历史校时数据的记录过程示意图;

图4为本发明实施例的线性拟合曲线示意图;

图5为本发明实施例的网络校时装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为了在保证设备时间的准确性的基础上,降低网络中的冗余数据量,本发明实施例提供了一种网络校时方法及装置。

下面首先对本发明实施例所提供的一种网络校时方法进行介绍。

需要说明的是,本发明实施例所提供的一种网络校时方法的执行主体可以为校时设备中的芯片,例如dsp(digitalsignalprocessor,数字信号处理器)、arm(advancedreducedinstructionsetcomputermachines,精简指令集计算机微处理器)或者fpga(field-programmablegatearray,现场可编程门阵列)等,这里不作限定。其中,实现本发明实施例所提供的一种网络校时方法的方式可以为设置于校时设备中的芯片的软件、硬件电路和/或逻辑电路。

如图2所示,本发明实施例所提供的一种网络校时方法,可以包括如下步骤:

s201,当接收到自适应校时指令时,获得当前时刻之前的历史校时数据。

其中,历史校时数据包括:每次历史校时时间点、及每次历史校时时间点对应的校时差值。历史校时时间点可以为:按照历史校时的先后顺序确定的历史校时的次序,例如第一次历史校时、第二次历史校时、第三次历史校时等,为了保证校时的准确性,一般情况下,需要记录一定次数校时时间点的校时数据,比如16次或者32次的校时数据。历史校时时间点还可以为:每一次进行历史校时的时刻。历史校时数据可以是周期性记录的,也可以是非周期性记录的,这里不作限定。

需要说明的是,本发明实施例的网络校时方法主要分为两个部分,第一部分为历史校时数据的积累,第二部分为自适应校时。该网络校时方法前期需要积累一部分历史校时数据用于统计分析,然后针对做出自适应的校时。

可选的,自适应校时指令可以为根据用户输入产生的,或者,也可以为按预设自适应校时周期生成的。

需要说明的是,自适应校时是指采用线性回归技术,对历史校时数据进行统计分析,并计算出未来某一时间的校时数据。需要自适应校时指令启动自适应校时,该自适应校时指令可以是用户自己判断需要进行自适应校时时输入启动指示所产生的,也可以是预先就已经设置好了校时周期,按周期生成的,例如,预先设置积累16次历史校时数据开始自适应校时,则积累的历史校时数据达到16次时,自动生成自适应校时指令。

可选的,该网络校时方法还可以包括:

在接收到第一个自适应校时指令之前,按预设第一网络校时周期,通过校时服务器进行服务器网络校时,并将每次服务器网络校时的校时时间点、及每次服务器网络校时的校时时间点对应的校时差值,作为历史校时数据保存。

其中,预设第一网络校时周期为预先设置的记录历史校时数据的周期。需要说明的是,在接收到第一个自适应校时指令之前,需要积累历史校时数据,本实施例是根据预设周期记录历史校时数据,历史校时数据的积累是通过与校时服务器进行交互得到的,具体的交互过程可以为:待校时的设备向网络中的校时服务器发送校时请求,校时服务器在接收到校时请求后,将校时数据发送至待校时的设备,待校时的设备在接收到校时数据后,根据校时数据重新配置设备时间,并向校时服务器发送校时完成指令。需要强调的是,除上述实现待校时的设备与校时服务器交互的实施方式以外,能够实现待校时的设备与校时服务器交互的其他可实现方式均属于本发明实施例的保护范围,在此不一一列举。

具体的,所述按预设第一网络校时周期,通过校时服务器进行服务器网络校时,并将每次服务器网络校时的校时时间点、及每次服务器校时的校时时间点对应的校时差值,作为历史校时数据保存的步骤,可以包括:

第一步,获得多组校时信息。

需要说明的是,校时信息为时间信息,即待校时设备发送校时请求的时间及校时服务器接收到校时请求并发送校时数据的时间。其中,校时信息具体包括:待校时设备向校时服务器发送校时请求时的第一时间t1、校时服务器接收到校时请求的第二时间t2、校时服务器向待校时设备发送校时数据时的第三时间t3、及待校时设备接收到校时数据的第四时间t4,校时数据包括:校时服务器对校时请求进行分析后得到的校时后时间。

第二步,获得每组校时信息中第二时间t2或第三时间t3对应的服务器网络校时的校时时间点。

需要说明的是,为了保证历史校时数据的记录次序,通常将校时服务器接收到校时请求的第二时间t2或者校时服务器发送校时数据的第三时间t3设置为校时时间点,或者将t2或t3对应的校时次序设置为校时时间点。

第三步,根据每组校时信息,确定每次服务器网络校时的校时时间点对应的校时差值。

可选的,所述根据每组校时信息,确定每次服务器网络校时的校时时间点对应的校时差值的步骤,可以包括:

计算每组校时信息中第二时间t2与第一时间t1的第一差值,及每组校时信息中第四时间t4与第三时间t3的第二差值;

将第一差值与第二差值作差后除以2,得到每次服务器网络校时的校时时间点对应的校时差值。

具体的,可以通过公式(1)计算每次服务器网络校时的校时时间点对应的校时差值。

其中,θ为每次服务器网络校时的校时时间点对应的校时差值,t2为校时服务器接收到校时请求的第二时间,t1为待校时设备向校时服务器发送校时请求时的第一时间,t4为待校时设备接收到校时数据的第四时间,t3为校时服务器向待校时设备发送校时数据时的第三时间。

第四步,将每次服务器网络校时的校时时间点及每次服务器网络校时的校时时间点对应的校时差值,作为历史校时数据保存。

需要说明的是,历史校时数据包括每次服务器网络校时的校时时间点以及对应的校时差值,也就是将第几次校时时的校时差值,作为历史校时数据保存。

可选的,本发明实施例的网络校时方法,还可以包括:

在接收到第一个自适应校时指令之后,将预设第一网络校时周期延长至预设时长,并按预设时长通过校时服务器进行服务器网络校时,得到该次服务器校时对应的第一校时时间点及第一校时时间点对应的校时差值;

若历史校时数据的次数小于预设次数,则将第一校时时间点及第一校时时间点对应的校时差值作为历史校时数据保存;

若历史校时数据的次数等于所述预设次数,则删除历史校时数据中最早一次的历史校时时间点及对应的校时差值,并将第一校时时间点及第一校时时间点对应的校时差值作为历史校时数据保存。

可以理解的是,在积累历史校时数据的基础上对待校时设备进行自适应校时,这样可以延长待校时设备与校时服务器之间的校时周期,也就是在之后的服务器网络校时时,所产生的数据量小于现有的校时方法产生的数据量,从而减小网络冗余。

可以理解的是,作为历史校时数据的次数一般设定为预设次数,如果是用户输入的自适应校时指令启动自适应校时,则记录的历史校时数据有可能达到不了预设次数。如果记录的历史校时数据没有达到预设次数,则可以将新记录的服务器网络校时数据作为历史校时数据保存;如果记录的历史校时数据已经达到预设次数,则需要删除原历史校时数据中最早一次的历史校时数据,然后将新记录的服务器网络校时数据作为历史校时数据保存。

s202,计算得到每次历史校时时间点对应的历史校时总差值。

可以理解的,每次历史校时时间点都对应有该历史校时时间点的校时差值,为了后续通过自适应计算未来某个时刻的校时差值,需要先计算得到每次历史校时时间点对应的历史校时总差值。

可选的,所述计算得到每次历史校时时间点对应的历史校时总差值的步骤,可以包括:

获取并根据自适应校时标志,判断是否已进行过自适应校时;

如果未进行过自适应校时,则将每次历史校时时间点的校时差值与该历史校时时间点之前的所有历史校时时间点的校时差值进行累加,得到每次历史校时时间点对应的历史校时总差值;

如果已进行过自适应校时,则将每次历史校时时间点的校时差值与该历史校时时间点之前的所有历史校时时间点的校时差值进行累加后的到的数据、与已进行过自适应校时的校时差值相加,得到每次历史校时时间点对应的历史校时总差值。

可以理解的,自适应校时影响着校时时间点的历史校时总差值,因此在计算校时总差值时,需要判断是否已进行过自适应校时,如果没有进行过自适应校时,则根据公式(2)计算每次历史校时时间点对应的历史校时总差值;如果已进行过自适应校时,则根据公式(3)计算每次历史校时时间点对应的历史校时总差值。

其中,tn为第n次历史校时时间点对应的历史校时总差值,ti为第i次历史校时时间点的校时差值,为第n次历史校时时间点之前的所有历史校时时间点的校时差值的总和。

其中,tn为第n次历史校时时间点对应的历史校时总差值,ti为第i次历史校时时间点的校时差值,为第n次历史校时时间点之前的所有历史校时时间点的校时差值的总和,t′为已进行过自适应校时的校时差值。

s203,根据每次历史校时时间点对应的历史校时总差值,通过预设算法得到当前时刻的当前校时总差值。

可以理解的是,本实施例采用线性回归技术对历史校时数据进行统计分析,计算当前时刻的校时数据。由于计算当前时刻的校时差值时,需要根据当前时刻的当前校时总差值tm与上一时刻的历史校时总差值tm-1作差得到,即当前时刻的校时差值tm=tm-tm-1,将该计算的结果在待校时设备中校时即可。因此,在进行待校时设备的重新配置之前,需要得到当前时刻的当前校时总差值。

需要强调的是,本实施例中统计分析历史校时数据的方法为线性拟合的方法,最常用的线性拟合的方法为最小二乘法,当然,其它线性拟合的方法也属于本发明实施例的保护范围。

可选的,以最小二乘法为例,所述根据每次历史校时时间点对应的历史校时总差值,通过预设算法得到当前时刻的当前校时总差值的步骤,可以包括:

第一步,根据每次历史校时时间点,确定所有历史校时时间点的平均校时时间点。

可以理解的,假设总共有n次历史校时时间点,平均校时时间点可以为所有历史校时的次序的平均值,则平均校时时间点为其中,为所有历史校时时间点的平均校时时间点,为所有历史校时时间点的总和,i为第i次历史校时时间点。

第二步,根据每次历史校时时间点对应的历史校时总差值,确定所有历史校时时间点的平均校时总差值。

可以理解的,需要说明的是,假设总共有n次历史校时时间点,则平均校时总差值为其中,为所有历史校时时间点的平均校时总差值,为所有历史校时时间点的历史校时总差值的总和,i为第i次历史校时时间点。

第三步,根据每次历史校时时间点、每次历史校时时间点对应的历史校时总差值、平均校时时间点及平均校时总差值,通过公式(4),得到第一参数。

其中,公式(4)为:

b为第一参数,xi为第i次历史校时时间点,yi为第i次历史校时时间点的校时差值,n为历史校时时间点的总次数,为平均校时时间点,为平均校时总差值。

第四步,根据平均校时时间点、平均校时总差值及第一参数,通过公式(5),得到第二参数。

其中,公式(5)为:

a为第二参数,为平均校时总差值,b为第一参数,为所述平均校时时间点。

第五步,将第一参数及第二参数代入公式(6),根据当前时刻的校时时间点,通过公式(6),得到当前时刻的当前校时总差值。

具体的,公式(6)为线性拟合方程,具体为:

y=bx+a(6)

其中,y为当前时刻的当前校时总差值,b为第一参数,x为当前时刻的校时时间点,a为第二参数。

s204,将当前校时总差值与最近一次历史校时时间点的历史校时总差值之间的差值,确定为当前时刻的校时差值。

需要说明的是,本实施例采用线性回归技术对历史校时数据进行统计分析,计算为当前时刻的校时数据。由于计算当前时刻的校时差值时,需要根据当前时刻的当前校时总差值tm与上一时刻的历史校时总差值tm-1作差得到,即当前时刻的校时差值tm=tm-tm-1,将该计算的结果在待校时设备中校时即可。

s205,根据当前时刻的校时差值,调整当前时刻的时间,完成本次自适应校时。

需要说明的是,当前时刻的校时差值,也就是当前时刻,待校时设备与校时服务器之间的时间差值,该时间差值可能为正也可能为负,在时间差值为正时,调整当前时刻的时间就是在当前时刻待校时设备的时间的基础上加上该校时差值,在时间差值为负时,调整当前时刻的时间就是在当前时刻待校时设备的时间的基础上减去该校时差值的绝对值。

可选的,所述根据当前时刻的校时差值,调整当前时刻的时间,完成本次自适应校时的步骤,可以包括:

将当前时刻与当前时刻的校时差值相加,得到当前时刻的目标校时时间;

调整当前时刻的时间至所述目标校时时间,完成本次自适应校时。

需要说明的是,不论当前时刻的校时差值为正还是为负,当前时刻的目标校时时间均为当前时刻的时间与当前时刻的校时差值相加,校时差值的符号为正时加的是正数,校时差值的符号为负时加的是负数。调整当前时刻的时间,就是将待校时设备当前时刻的时间调整为目标校时时间,这里不再赘述。

需要强调的是,本发明实施例所提供的网络校时方法的执行主体还可以为校时服务器中的芯片,或者是独立于校时设备和校时服务器的校时控制器,校时服务器中的芯片或者校时控制器也可以在一定程度上减少网络中的冗余数据量。

应用本实施例,通过积累历史校时数据,对历史校时数据中的校时差值进行累加得到每个历史校时时间点的校时总差值,通过预设算法得到当前时刻的校时差值,根据该校时差值对当前时刻的时间进行调整,具有较高的实时性,保证了设备时间的准确性,并且由于只需要积累少量的历史数据,即校时设备与服务器之间只传输较少的校时数据包,从而降低了网络中的冗余数据量。并且,在积累历史校时数据的基础上对待校时设备进行自适应校时,这样可以延长待校时设备与校时服务器之间的校时周期,也就是在下一次服务器网络校时时,可以缩短校时频率,从而减小网络冗余;对于网络中包含有多个待校时设备的情况,减小网络中多个待校时设备之间的时间差距,提升所有待校时设备时间的准确性和同步性。

下面结合具体的应用实例,对本发明实施例所提供的网络校时方法进行介绍。

如图3所示为本发明实施例的每次历史校时数据的记录过程,待校时设备101发送校时请求至校时服务器102,记录发送校时请求的时间t1,校时服务器102接收该校时请求,记录接收到校时请求的时间t2,校时服务器102对校时请求进行分析,发送校时校时数据至待校时设备101,记录发送校时数据的时间t3,待校时设备101接收该校时数据,记录接收到校时数据的时间t4,由于待校时设备101与校时服务器之间的时间数据满足公式(7),即

其中,t2为校时服务器102接收到待校时设备101发送的校时请求的时间,t1为待校时设备101发送校时请求的时间,θ为待校时设备101相对于校时服务器102在t1时间的校时差值,δ1为校时请求在网络中传播所消耗的时间,t4为校时服务器102发送校时数据的时间,t3为待校时设备101接收到校时服务器102发送的校时数据的时间,δ2为校时数据在网络中传播所消耗的时间,δ为待校时设备101与校时服务器102之间的往返传输延迟。需要说明的是,校时数据中包含有待校时设备101相对于校时服务器102在t1时间的校时差值。

假设校时请求和校时数据在网络中传播的时间相同,即δ1=δ2,则解得:

可以看出,待校时设备101相对于校时服务器102在t1时间的校时差值θ及待校时设备101与校时服务器102之间的往返传输延迟δ只与校时服务器102接收到待校时设备101发送的校时请求的时间t2、和待校时设备101发送校时请求的时间t1的差值、以及校时服务器102发送校时数据的时间t4、和待校时设备101接收到校时服务器102发送的校时数据的时间t3的差值相关。

假设,记录的历史校时数据为:总共记录了32次历史校时时间点的校时数据,每次历史校时时间点的校时差值均为2.1秒,设定历史校时时间为按照历史校时的先后顺序确定的历史校时的次序,历史校时时间点的平均校时时间点为所有历史校时的次序的平均值,则所有历史校时时间点的平均校时时间点为:所有历史校时时间点的平均校时总差值为:则通过计算可以得到,第一参数b=2.1,第二参数a=0,则可以得到线性拟合方程为:y=2.1x,得到线性拟合曲线如图4所示。需要说明的是:图4所示曲线的横坐标为历史校时时间点的次序、纵坐标为每次历史校时时间点对应的历史校时总差值。

则通过自适应校时计算当前时刻的当前校时总差值为:y=2.1×11=23.1秒,当前时刻的校时差值即为:23.1-21=2.1秒,因此,当前时刻待校时设备的目标时间为当前时刻的时间加上2.1秒。

与现有技术相比,本方案通过积累历史校时数据,对历史校时数据中的校时差值进行累加得到每个历史校时时间点的校时总差值,通过预设算法得到当前时刻的校时差值,根据该校时差值对当前时刻的时间进行调整,具有较高的实时性,保证了设备时间的准确性,并且由于只需要积累少量的历史数据,即校时设备与服务器之间只传输较少的校时数据包,从而降低了网络中的冗余数据量。

相应于上述实施例,本发明实施例提供了一种网络校时装置,如图5所示,网络校时装置可以包括:

获得模块510,用于当接收到自适应校时指令时,获得当前时刻之前的历史校时数据,其中,所述历史校时数据包括:每次历史校时时间点、及每次历史校时时间点对应的校时差值;

计算模块520,用于计算得到每次历史校时时间点对应的历史校时总差值;

第一确定模块530,用于根据每次历史校时时间点对应的历史校时总差值,通过预设算法得到当前时刻的当前校时总差值;

第二确定模块540,用于将所述当前校时总差值与最近一次历史校时时间点的历史校时总差值之间的差值,确定为当前时刻的校时差值;

调整模块550,用于根据所述当前时刻的校时差值,调整当前时刻的时间,完成本次自适应校时。

应用本实施例,通过积累历史校时数据,对历史校时数据中的校时差值进行累加得到每个历史校时时间点的校时总差值,通过预设算法得到当前时刻的校时差值,根据该校时差值对当前时刻的时间进行调整,具有较高的实时性,保证了设备时间的准确性,并且由于只需要积累少量的历史数据,即校时设备与服务器之间只传输较少的校时数据包,从而降低了网络中的冗余数据量。

可选的,所述自适应校时指令可以为根据用户输入产生的;或,按预设自适应校时周期生成的。

可选的,所述装置还可以包括:

第一存储模块,用于在接收到第一个自适应校时指令之前,按预设第一网络校时周期,通过校时服务器进行服务器网络校时,并将每次服务器网络校时的校时时间点、及每次服务器网络校时的校时时间点对应的校时差值,作为历史校时数据保存;

第三确定模块,用于在接收到第一个自适应校时指令之后,将所述预设第一网络校时周期延长至预设时长,并按所述预设时长通过校时服务器进行服务器网络校时,得到该次服务器校时对应的第一校时时间点及所述第一校时时间点对应的校时差值;

第二存储模块,用于若所述历史校时数据的次数小于预设次数,则将所述第一校时时间点及所述第一校时时间点对应的校时差值作为历史校时数据保存;

第三存储模块,用于若所述历史校时数据的次数等于所述预设次数,则删除所述历史校时数据中最早一次的历史校时时间点及对应的校时差值,并将所述第一校时时间点及所述第一校时时间点对应的校时差值作为历史校时数据保存。

可选的,所述第一存储模块,可以包括:

第一获得子模块,用于获得多组校时信息,其中,所述校时信息包括:待校时设备向校时服务器发送校时请求时的第一时间t1、所述校时服务器接收到所述校时请求的第二时间t2、所述校时服务器向所述待校时设备发送校时数据时的第三时间t3、及所述待校时设备接收到所述校时数据的第四时间t4,所述校时数据包括:所述校时服务器对所述校时请求进行分析后得到的校时后时间;

第二获得子模块,用于获得每组校时信息中所述第二时间t2或所述第三时间t3对应的服务器网络校时的校时时间点;

第一确定子模块,用于根据每组校时信息,确定每次服务器网络校时的校时时间点对应的校时差值;

存储子模块,用于将每次服务器网络校时的校时时间点及每次服务器网络校时的校时时间点对应的校时差值,作为历史校时数据保存。

可选的,所述第一确定子模块,可以包括:

计算单元,用于计算每组校时信息中所述第二时间t2与所述第一时间t1的第一差值,及每组校时信息中所述第四时间t4与所述第三时间t3的第二差值;

确定单元,用于将所述第一差值与所述第二差值作差后除以2,得到每次服务器网络校时的校时时间点对应的校时差值。

可选的,所述计算模块520,可以包括:

判断子模块,用于获得并根据自适应校时标志,判断是否已进行过自适应校时;

第二确定子模块,用于如果未进行过自适应校时,则将每次历史校时时间点的校时差值与该历史校时时间点之前的所有历史校时时间点的校时差值进行累加,得到每次历史校时时间点对应的历史校时总差值;

第三确定子模块,用于如果已进行过自适应校时,则将每次历史校时时间点的校时差值与该历史校时时间点之前的所有历史校时时间点的校时差值进行累加后的到的数据、与已进行过自适应校时的校时差值相加,得到每次历史校时时间点对应的历史校时总差值。

可选的,所述第一确定模块530,可以包括:

平均校时时间点确定子模块,用于根据每次历史校时时间点,确定所有历史校时时间点的平均校时时间点;

平均校时总差值确定子模块,用于根据每次历史校时时间点对应的历史校时总差值,确定所有历史校时时间点的平均校时总差值;

第一参数确定子模块,用于根据每次历史校时时间点、每次历史校时时间点对应的历史校时总差值、所述平均校时时间点及所述平均校时总差值,通过第一计算公式,得到第一参数,其中,第一计算公式为:

所述b为所述第一参数,所述xi为第i次历史校时时间点,所述yi为所述第i次历史校时时间点的校时差值,所述n为历史校时时间点的总次数,所述为所述平均校时时间点,所述为所述平均校时总差值;

第二参数确定子模块,用于根据所述平均校时时间点、所述平均校时总差值及所述第一参数,通过第二计算公式,得到第二参数,其中,第二计算公式为:

所述a为所述第二参数,所述为所述平均校时总差值,所述b为所述第一参数,所述为所述平均校时时间点;

当前校时总差值确定子模块,用于将所述第一参数及所述第二参数代入线性拟合方程,得到所述当前时刻的当前校时总差值y,其中,所述线性拟合方程为:

y=bx+a,

其中,所述y为所述当前时刻的当前校时总差值,所述b为所述第一参数,所述x为所述当前时刻的校时时间点,所述a为所述第二参数。

可选的,所述调整模块550,可以包括:

目标校时时间确定子模块,用于将所述当前时刻与所述当前时刻的校时差值相加,得到所述当前时刻的目标校时时间;

调整子模块,用于调整所述当前时刻的时间至所述目标校时时间,完成本次自适应校时。

需要说明的是,本发明实施例的网络校时装置为应用上述网络校时方法的装置,则上述网络校时方法的所有实施例均适用于该装置,且均能达到相同或相似的有益效果。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1