一种系统时间的同步方法及装置制造方法及图纸

技术编号:15517785 阅读:186 留言:0更新日期:2017-06-04 08:15
本发明专利技术实施例公开了一种系统时间的同步方法及装置,方法包括:客户端的底层驱动模块将NTP请求报文发送时间赋值给NTP请求报文的第一时间戳T1;服务器的底层驱动模块获取服务器接收到NTP请求报文的时间作为第二时间戳T2;服务器的底层驱动模块将NTP响应报文发送时间赋值给NTP响应报文的第三时间戳T3;客户端的底层驱动模块获取客户端接收到NTP响应报文的时间作为第四时间戳T4。由此可见,时间戳中的时间避免了NTP模块与底层驱动模块之间传送报文的时间延迟,提高了客户端的时间和服务器时间的一致性,避免了在流量不稳定的环境里造成的客户端系统时间不停震荡。

【技术实现步骤摘要】
一种系统时间的同步方法及装置
本专利技术涉及网络
,特别涉及一种系统时间的同步方法及装置。
技术介绍
目前,网络通常应用NTP(NetworkTimeProtocol,网络时间协议)来保持网络中各个设备的系统时间一致。比如:需要以时间作为参照依据,对从不同设备采集来的日志信息、调试信息进行分析的网络管理系统;对设备时间一致性有要求的计费系统;多个系统协同处理同一个比较复杂的事件的场合等等,都采用了NTP来保持网络中各个设备的系统时间一致。假设当前客户端A的时间为10:00:00am,服务器B的时间为11:00:00am。需要将客户端A的时间设定为与服务器B相同。现有技术中,应用如下步骤对客户端A的时间进行设定(假设NTP报文从客户端A到服务器B、从服务器B到客户端A单向传输所需要的时间、服务器B处理NTP报文所需的时间均为1秒):1、客户端A的NTP模块获取客户端A的第一当前时间10:00:00am作为NTP请求报文发送时间,将该NTP请求报文发送时间赋值给NTP请求报文的第一时间戳T1(OriginTimestamp),将封装好的NTP请求报文传送给客户端A的底层驱动模块,由客户端A的底层驱动模块向服务器B发送该NTP请求报文。2、服务器B的底层驱动模块接收该NTP请求报文,并传送给服务器B的NTP模块,服务器B的NTP模块获取服务器B的第一当前时间11:00:01am作为NTP请求报文接收时间,将该NTP请求报文接收时间赋值给NTP响应报文的第二时间戳T2(ReceiveTimestamp)。3、服务器B的NTP模块获取服务器B的第二当前时间11:00:02am作为NTP响应报文发送时间,将该NTP响应报文发送时间赋值给NTP响应报文的第三时间戳T3(TransmitTimestamp),将封装好的NTP响应报文传送给服务器B的底层驱动模块,由服务器B的底层驱动模块向客户端A发送该NTP响应报文。4、客户端A的底层驱动模块接收该NTP响应报文,并传送给客户端A的NTP模块,客户端A的NTP模块获取客户端A的第二当前时间10:00:03am作为NTP响应报文接收时间,将该NTP响应报文接收时间赋值给第四时间戳T4(DestinationTimestamp)。客户端A的NTP模块利用上述四个时间戳来计算时间偏差:Offset=((T2-T1)+(T3-T4))/2=1小时,客户端A根据Offset,重新设定自身时间。通常情况下,从NTP模块封装NTP报文到该NTP报文从底层驱动模块发送出去的耗时在1毫秒以下,而从底层驱动模块接收NTP报文并传送给NTP模块进行处理的耗时通常也在1毫秒左右,可以忽略不计。但是现实网络里并非所有的NTP设备的NTP模块与底层驱动模块之间传送报文的耗时都在1毫秒以内。比如,在一些低端设备上从NTP模块封装NTP报文到该NTP报文从底层驱动模块发送出去可能需要10毫秒或者更久,底层驱动模块接收到一个报文并传送给NTP模块进行处理可能需要100毫秒或者更久;即使性能比较高的设备在CPU很忙的情况下,从NTP模块封装NTP报文到该NTP报文从底层驱动模块发送出去耗时也可能会出现10毫秒以上的延迟,底层驱动模块接收到一个报文并传送给NTP模块进行处理则可能会出现100毫秒以上的延迟。低端设备在CPU比较忙的情况下NTP模块与底层驱动模块之间传送报文延迟会更明显,比较极端的情况下甚至可能会出现秒级以上的延迟。假设从客户端A的NTP模块封装NTP请求报文到该NTP请求报文从客户端A的底层驱动模块发送出去耗时0.5秒;服务器B的底层驱动模块接收到NTP请求报文并传送给服务器B的NTP模块进行处理耗时0.2秒;从服务器B的NTP模块封装NTP响应报文到该NTP响应报文从服务器B的底层驱动模块发送出去耗时0.1秒;客户端A的底层驱动模块接收到NTP响应报文并传送给客户端A的NTP模块进行处理耗时0.8秒,则对客户端A的时间进行设定的过程中:客户端A的NTP模块获取客户端A的第一当前时间10:00:00am,并赋值给第一时间戳T1,但实际NTP请求报文发送时间为10:00:00am+0.5s;服务器B的NTP模块接收到该NTP请求报文时的服务器B的第一当前时间11:00:01am+0.5s+0.2s,将该时间赋值给第二时间戳T2;服务器B的NTP模块为第三时间戳T3赋值为11:00:02am+0.5s+0.2s,但实际NTP响应报文发送时间为11:00:02am+0.5s+0.2s+0.1s;客户端A的NTP模块接收到该NTP响应报文时的客户端A的第二当前时间10:00:03am+0.5s+0.2s+0.1s+0.8s,将该时间赋值给第四时间戳T4。此时计算Offset=((T2-T1)+(T3-T4))/2=59分59.9秒,与忽略NTP模块与底层驱动模块之间传送报文延迟的理想情况Offset=1小时,相差0.1秒。因此,应用上述方法对客户端的时间进行设定,并不能保证客户端的时间和服务器时间的一致性,在流量不稳定的环境里很可能会造成客户端系统时间不停震荡。
技术实现思路
本专利技术实施例的目的在于提供一种系统时间的同步方法及装置,提高客户端的时间和服务器时间的一致性。为达到上述目的,本专利技术实施例公开了一种系统时间的同步方法,应用于客户端,所述客户端包括第一NTP模块和第一底层驱动模块,该方法包括:所述第一NTP模块填充NTP请求报文中除第一时间戳T1以外的字段,并将所述NTP请求报文发送给所述第一底层驱动模块;所述第一底层驱动模块接收所述NTP请求报文,获取客户端第一当前时间作为NTP请求报文发送时间;所述第一底层驱动模块将所述NTP请求报文发送时间赋值给所述NTP请求报文的第一时间戳T1,并将填充了第一时间戳T1的NTP请求报文发送给包括第二NTP模块和第二底层驱动模块的服务器;所述第一底层驱动模块接收所述服务器的第二底层驱动模块反馈的NTP响应报文,并获取客户端第二当前时间作为所述NTP响应报文接收时间,将所述NTP响应报文和所述NTP响应报文接收时间发送给第一NTP模块;其中,所述NTP响应报文包含第一时间戳T1、第二时间戳T2和第三时间戳T3;所述第二时间戳T2为所述第二底层驱动模块接收所述NTP请求报文的时间,所述第三时间戳T3为所述第二底层驱动模块发送所述NTP响应报文的时间;所述第一NTP模块将所述NTP响应报文接收时间设置为第四时间戳T4;所述第一NTP模块根据第一时间戳T1、第二时间戳T2、第三时间戳T3、第四时间戳T4,设定客户端的系统时间。可选的,所述第一NTP模块根据第一时间戳T1、第二时间戳T2、第三时间戳T3、第四时间戳T4,设定客户端的系统时间,可以包括:所述第一NTP模块根据下式计算所述客户端与所述服务器的时间差值Offset:Offset=((T2-T1)+(T3-T4))/2;判断所述时间差值Offset是否大于预设阈值,如果是,根据所述时间差值Offset,设定客户端的系统时间。可选的,第一NTP模块将所述NTP请求报文发送给第一底层驱动模块,可以包括:第一NTP模块将所述NTP请求报文及第一时间戳T1在所述NTP请求报文中的位置发送给第本文档来自技高网
...
一种系统时间的同步方法及装置

【技术保护点】
一种系统时间的同步方法,其特征在于,应用于客户端,所述客户端包括第一NTP模块和第一底层驱动模块,该方法包括:所述第一NTP模块填充NTP请求报文中除第一时间戳T1以外的字段,并将所述NTP请求报文发送给所述第一底层驱动模块;所述第一底层驱动模块接收所述NTP请求报文,获取客户端第一当前时间作为NTP请求报文发送时间;所述第一底层驱动模块将所述NTP请求报文发送时间赋值给所述NTP请求报文的第一时间戳T1,并将填充了第一时间戳T1的NTP请求报文发送给包括第二NTP模块和第二底层驱动模块的服务器;所述第一底层驱动模块接收所述服务器的第二底层驱动模块反馈的NTP响应报文,并获取客户端第二当前时间作为所述NTP响应报文接收时间,将所述NTP响应报文和所述NTP响应报文接收时间发送给第一NTP模块;其中,所述NTP响应报文包含第一时间戳T1、第二时间戳T2和第三时间戳T3;所述第二时间戳T2为所述第二底层驱动模块接收所述NTP请求报文的时间,所述第三时间戳T3为所述第二底层驱动模块发送所述NTP响应报文的时间;所述第一NTP模块将所述NTP响应报文接收时间设置为第四时间戳T4;所述第一NTP模块根据第一时间戳T1、第二时间戳T2、第三时间戳T3、第四时间戳T4,设定客户端的系统时间。...

【技术特征摘要】
1.一种系统时间的同步方法,其特征在于,应用于客户端,所述客户端包括第一NTP模块和第一底层驱动模块,该方法包括:所述第一NTP模块填充NTP请求报文中除第一时间戳T1以外的字段,并将所述NTP请求报文发送给所述第一底层驱动模块;所述第一底层驱动模块接收所述NTP请求报文,获取客户端第一当前时间作为NTP请求报文发送时间;所述第一底层驱动模块将所述NTP请求报文发送时间赋值给所述NTP请求报文的第一时间戳T1,并将填充了第一时间戳T1的NTP请求报文发送给包括第二NTP模块和第二底层驱动模块的服务器;所述第一底层驱动模块接收所述服务器的第二底层驱动模块反馈的NTP响应报文,并获取客户端第二当前时间作为所述NTP响应报文接收时间,将所述NTP响应报文和所述NTP响应报文接收时间发送给第一NTP模块;其中,所述NTP响应报文包含第一时间戳T1、第二时间戳T2和第三时间戳T3;所述第二时间戳T2为所述第二底层驱动模块接收所述NTP请求报文的时间,所述第三时间戳T3为所述第二底层驱动模块发送所述NTP响应报文的时间;所述第一NTP模块将所述NTP响应报文接收时间设置为第四时间戳T4;所述第一NTP模块根据第一时间戳T1、第二时间戳T2、第三时间戳T3、第四时间戳T4,设定客户端的系统时间。2.根据权利要求1所述的方法,其特征在于,所述第一NTP模块根据第一时间戳T1、第二时间戳T2、第三时间戳T3、第四时间戳T4,设定客户端的系统时间,包括:所述第一NTP模块根据下式计算所述客户端与所述服务器的时间差值Offset:Offset=((T2-T1)+(T3-T4))/2;判断所述时间差值Offset是否大于预设阈值,如果是,根据所述时间差值Offset,设定客户端的系统时间。3.根据权利要求1所述的方法,其特征在于,第一NTP模块将所述NTP请求报文发送给第一底层驱动模块,包括:第一NTP模块将所述NTP请求报文及第一时间戳T1在所述NTP请求报文中的位置发送给第一底层驱动模块;所述第一底层驱动模块,按照第一时间戳T1在所述NTP请求报文中的位置,将所述NTP请求报文发送时间赋值给所述NTP请求报文的第一时间戳T1。4.一种系统时间的同步方法,其特征在于,应用于服务器,所述服务器包括第二NTP模块和第二底层驱动模块,该方法包括:所述第二底层驱动模块接收客户端的第一底层驱动模块发送的NTP请求报文,并获取服务器第一当前时间作为所述NTP请求报文接收时间,将所述NTP请求报文和所述NTP请求报文接收时间发送给第一NTP模块;其中,所述NTP请求报文包含第一时间戳T1,所述第一时间戳T1为所述客户端的第一底层驱动模块发送所述NTP请求报文的时间;所述第二NTP模块将所述NTP请求报文接收时间赋值给NTP响应报文的第二时间戳T2;所述第二NTP模块填充NTP响应报文中除第三时间戳T3以外的字段,并将所述NTP响应报文发送给所述第二底层驱动模块;所述第二底层驱动模块接收所述NTP响应报文,获取服务器第二当前时间作为NTP响应报文发送时间;所述第二底层驱动模块将所述NTP响应报文发送时间赋值给所述NTP响应报文的第三时间戳T3,并将填充了第三时间戳T3的NTP响应报文反馈给发送所述NTP请求报文的客户端,以使所述客户端根据第一时间戳T1、第二时间戳T2、第三时间戳T3、第四时间戳T4,设定所述客户端的系统时间。5.根据权利要求1所述的方法,其特征在于,第二NTP模块将所述NTP响应报文发送给第二底层驱动模块,包括:第二NTP模块将所述NTP请求报文及第三时间戳T3在所述NTP响应报文中的位置发送给第二底层驱动模块;所述第二底层驱动模块,按照第三时间戳T3在所述NTP响应报文中的位置,将所述NTP响应报文发送时间赋值给所述NTP响应报文的第三时间戳T3。6.一种系统时间的同步装置,其特征在于,应用于客户端,所述客户端包括第一NTP模块和第一底层驱动模块,该装置包括:设置在所述第一NTP模块中的第一填充发送...

【专利技术属性】
技术研发人员:王剑鸣
申请(专利权)人:新华三技术有限公司
类型:发明
国别省市:浙江,33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1