获取绝对时间戳的方法、相关装置和系统

文档序号:601415 发布日期:2021-05-04 浏览:4次 >En<

阅读说明:本技术 获取绝对时间戳的方法、相关装置和系统 (Method, related device and system for acquiring absolute timestamp ) 是由 张涛 王江 潘曙光 于 2019-10-29 设计创作,主要内容包括:本申请公开了一种获取绝对时间戳的方法、相关装置和系统。该获取绝对时间戳的方法可以应用在服务系统中,该服务系统包括服务器和GPS授时设备,该服务系统可以为数据中心。当服务器上执行的应用任务需要获取第一时刻的绝对时间戳时,服务器向服务器所在服务系统的GPS授时设备发送时间戳请求消息,GPS授时设备向服务器发送时间戳响应消息,从而,应用任务可以获取到第一时刻的绝对时间戳。采用本申请公开的方法、相关装置和系统,应用任务可以获取到绝对时间戳,并且,不必为服务器配备支持高精度时间同步协议的专用网卡,从而,降低了服务器的实现复杂度。(The application discloses a method, a related device and a system for obtaining an absolute timestamp. The method for acquiring the absolute timestamp can be applied to a service system, wherein the service system comprises a server and a GPS time service device, and the service system can be a data center. When an application task executed on a server needs to acquire an absolute timestamp of a first moment, the server sends a timestamp request message to GPS time service equipment of a service system where the server is located, and the GPS time service equipment sends a timestamp response message to the server, so that the application task can acquire the absolute timestamp of the first moment. By adopting the method, the related device and the system disclosed by the application, the application task can acquire the absolute timestamp, and a special network card supporting a high-precision time synchronization protocol is not required to be equipped for the server, so that the implementation complexity of the server is reduced.)

获取绝对时间戳的方法、相关装置和系统

技术领域

本申请涉及通信技术领域,特别涉及一种获取绝对时间戳的方法和分布式系统。

背景技术

目前,有很多应用属于分布式应用,执行分布式应用的系统称为分布式系统。分布式应用的应用程序往往分布在分布式系统的不同数据中心的多个服务器上,这些服务器分别执行该分布式应用的一个或多个应用任务,以实现该分布式应用的功能。在各个服务器上执行的应用任务,需要按照一定的时序来进行,否则各应用任务可能会发生错乱,导致不能实现该分布式应用的功能。所以服务器在执行应用任务时,需要获取并记录每个应用任务的时间戳,并且,各个应用任务的时间戳应当来自于同一个时间源,以保证这些时间戳的可比性。

为了保证各个应用任务的时序,可以为各个服务器部署高精度时间同步协议(例如1588V2协议),并为各服务器配备支持高精度时间同步协议的专用网卡。这样,各个服务器可以从全球定位系统(Global Positioning System,GPS)授时设备获取到时间戳,而各个GPS授时设备中的时间均是从卫星中获取的,所以可以保证各个应用任务获取到的时间戳均来自于同一个时间源。来自于GPS授时设备的时间戳可以称为绝对时间戳。

然而,在每个服务器上部署高精度时间同步协议,配置过于复杂。

发明内容

本申请实施例提供了一种获取绝对时间戳的方法、相关装置和系统,可以用于确定应用任务需要获取的绝对时间戳。获取绝对时间戳的相关装置可以是芯片、计算机可读存储介质或服务器等,获取绝对时间戳的系统可以是服务系统和分布式系统等。所述获取绝对时间戳的方法、相关装置和系统如下所述:

第一方面,提供了一种获取绝对时间戳的方法,包括:当服务系统里的服务器上执行的应用任务需要获取第一时刻的绝对时间戳时,所述服务器确定所述第一时刻的本地时间戳T0;所述服务器向所述服务系统的GPS授时设备发送时间戳请求消息,并确定所述时间戳请求消息的发送时间戳T1;所述服务器接收所述GPS授时设备向所述服务器发送的时间戳响应消息,所述时间戳响应消息中携带有所述时间戳请求消息在所述GPS授时设备上的接收时间戳T2和所述GPS授时设备发送所述时间戳响应消息的发送时间戳T3;所述服务器确定所述时间戳响应消息的接收时间戳T4;所述服务器基于所述T0、所述T1、所述T2、所述T3和所述T4,确定所述应用任务在所述第一时刻的绝对时间戳。

其中,GPS授时设备为一个可以从卫星中获取标准的时间信号的交换机,并且,其可以为其他设备提供获取到的标准时间信号。可选的,该卫星可以为GPS卫星,也可以为北斗卫星。需要说明的是,即使是从北斗卫星中获取标准的时间信号的授时设备,也可以称为GPS授时设备。

服务器为任意可以执行应用任务的计算机设备。服务器可以为服务系统中的多个服务器中的任一执行应用任务的服务器,应用任务还可以称为应用进程。该服务系统可以为数据中心,企业网络等,服务器可以为数据中心中的服务器,也可以企业网络中的服务器,

绝对时间戳是指从卫星中获取的时间戳,由于各GPS授时设备中的时间信号均是从卫星中获取的,所以GPS授时设备中记录的时间戳即为绝对时间戳。本地时间戳为服务器上记录的时间戳。在T0、T1、T2、T3和T4中,T0、T1和T4为服务器上的本地时间戳,T2和T3为GPS授时设备上的绝对时间戳,T0、T1、T2、T3和T4的时间精度可以为纳秒级精度。

第一时刻的本地时间戳T0是指,服务器上第一时刻的本地时间戳。第一时刻的绝对时间戳是指,GPS授时设备上第一时刻的时间戳。第一时刻的本地时间戳T0与第一时刻的绝对时间戳相对应,本申请实施例提供的获取绝对时间戳的方法,即是通过从GPS授时设备获取的绝对时间戳,对第一时刻的本地时间戳T0进行校准,从而确定第一时刻的绝对时间戳。

时间戳请求消息可以为网络控制报文协议(internet control messageprotocol,ICMP)时间戳查询报文,时间戳请求消息中还可以携带有T1。时间戳响应消息可以为ICMP回应报文,ICMP回应报文还可以称为ICMP echo报文。

本申请实施例所示的方案,通过当服务系统里的服务器上执行的应用任务需要获取第一时刻的绝对时间戳时,服务器确定第一时刻的本地时间戳T0。然后,服务器向服务系统的GPS授时设备发送时间戳请求消息,并确定时间戳请求消息的发送时间戳T1。再然后,GPS授时设备确定时间戳请求消息的接收时间戳T2。再然后,GPS授时设备向服务器发送携带有T2和时间戳响应消息的发送时间戳T3的时间戳响应消息。再然后,服务器确定时间戳响应消息的接收时间戳T4。最后,服务器基于T0、T1、T2、T3和T4,确定应用任务在第一时刻的绝对时间戳。采用本申请实施例提供的技术方案,不仅可以获取应用任务需要获取的绝对时间戳,并且,不必为服务器配备支持高精度时间同步协议的专用网卡,从而,降低了成本和服务器的实现复杂度。

并且,本申请实施例所示的方案,服务器向所在服务系统的GPS授时设备发送时间戳请求消息,而不是所有服务器向同一时间源设备发送时间戳请求消息,避免了时间源设备同一时间接收到大量的时间戳请求消息时,造成的时间源设备发生故障或时间戳响应消息发送不及时的问题,也避免了不同的服务器向时间源设备发送时间戳请求消息时,发送时延相差较大的问题。再者,服务器和GPS授时设备位于同一服务系统,而不是位于不同的服务系统,也缩短了时间戳请求消息的发送时延,使得绝对时间戳的确定更加及时。

在一种可能的实现方式中,所述服务系统设置有一个主用GPS授时设备和一个备用GPS授时设备。

其中,主用GPS授时设备的优先级高于备用GPS授时设备,当主用GPS授时设备不能正常工作时,才会使用备用GPS授时设备。

本申请实施例所示的方案,通过在每个服务系统设置一个主用GPS授时设备和一个备用GPS授时设备,使得在主用GPS授时设备故障时,服务器还可以向备用GPS授时设备发送时间戳请求消息,并从备用GPS授时设备获取时间戳响应消息,从而,增强了GPS授时设备授时的可靠性。

在一种可能的实现方式中,所述GPS授时设备为所述服务系统的主用GPS授时设备,所述服务器向所述服务系统的GPS授时设备发送时间戳请求消息,包括:所述服务器向所述主用GPS授时设备发送所述时间戳请求消息。

本申请实施例所示的方案,在默认情况下,服务器将服务系统的主用GPS授时设备作为GPS授时设备,并向主用GPS授时设备发送时间戳请求消息。

在一种可能的实现方式中,所述GPS授时设备为所述服务系统的备用GPS授时设备,所述服务器向所述服务系统的GPS授时设备发送时间戳请求消息,包括:如果所述服务器向所述主用GPS授时设备发送时间戳请求消息,且在设定时长内未接收到所述主用GPS授时设备发送的时间戳响应消息,则向所述备用GPS授时设备发送所述时间戳请求消息。

本申请实施例所示的方案,在默认情况下,服务器将服务系统的主用GPS授时设备作为优先发送的目标GPS授时设备。则服务器先向服务系统的主用GPS授时设备发送时间戳请求消息,如果在设定时长内未接受到主用GPS授时设备发送的时间戳响应消息,则说明主用GPS授时设备不能正常工作,则此时应将备用GPS授时设备确定为目标GPS授时设备,并向备用GPS授时设备发送时间戳请求消息。

在一种可能的实现方式中,所述服务器基于所述T0、所述T1、所述T2、所述T3和所述T4,确定所述应用任务在所述第一时刻的绝对时间戳,包括:所述服务器确定T3–((T2-T1)-(T4-T3))/2-T0的值为所述应用任务在所述第一时刻的绝对时间戳。

本申请实施例所示的方案,服务器计算T3–((T2-T1)-(T4-T3))/2-T0的值,对T0进行了校正,从而,确定出了应用任务在第一时刻需要获取的绝对时间戳。

在一种可能的实现方式中,所述GPS授时设备旁挂在所述服务系统的核心交换机上,或者,所述GPS授时设备旁挂在所述服务系统的服务器上。

其中,旁挂可以理解为连接。GPS授时设备旁挂在服务系统的核心交换机上,可以理解为GPS授时设备与服务系统的核心交换机直接连接。GPS授时设备旁挂在服务系统的服务器上,可以理解为GPS授时设备与服务系统的某一服务器直接连接。

本申请实施例所示的方案,根据GPS授时设备旁挂的位置的不同,服务器向GPS授时设备发送时间戳请求消息的具体情况也不同。

当GPS授时设备旁挂在服务系统的核心交换机上时,服务器通过各级交换机向GPS授时设备发送时间戳请求消息。

当GPS授时设备旁挂在服务系统的服务器上时,可以分为两种情况。第一种情况,GPS授时设备旁挂在执行应用任务的服务器上,则执行应用任务的服务器直接向GPS授时设备发送时间戳请求消息。第二种情况,GPS授时设备未旁挂在执行应用任务的服务器上,则执行应用任务的服务器通过交换机和GPS授时设备旁挂的服务器向GPS授时设备发送时间戳请求消息。

相应的,根据GPS授时设备旁挂的位置的不同,GPS授时设备向服务器发送时间戳响应消息的具体情况也不同。

当GPS授时设备旁挂在服务系统的核心交换机上时,GPS授时设备通过各级交换机向服务器发送时间戳响应消息。

当GPS授时设备旁挂在服务系统的服务器上时,可以分为两种情况。第一种情况,GPS授时设备旁挂在执行应用任务的服务器上,则GPS授时设备直接向执行应用任务的服务器发送时间戳响应消息。第二种情况,GPS授时设备未旁挂在执行应用任务的服务器上,则GPS授时设备通过GPS授时设备旁挂的服务器和交换机向执行应用任务的服务器发送时间戳响应消息。

在一种可能的实现方式中,所述时间戳请求消息中携带有所述T1。

本申请实施例所示的方案,通过在时间戳请求消息中携带T1,则服务器不必在本地记录T1。可以理解的是,即使时间戳请求消息中携带有T1,服务器也可以在本地记录T1,本申请对此不做限定。

在一种可能的实现方式中,所述时间戳请求消息为ICMP时间戳查询报文,所述时间戳响应消息为ICMP回应报文。

其中,ICMP时间戳查询报文为用于请求时间戳的报文。ICMP回应报文为用于回应时间戳请求的报文。

本申请实施例所示的方案,在ICMP时间戳查询报文中携带有服务器的IP地址、GPS授时设备的IP地址和ICMP时间戳查询报文的类型信息和代码信息。在ICMP回应报文中还携带有服务器的IP地址、GPS授时设备的IP地址和ICMP回应报文的类型信息和代码信息。

在一种可能的实现方式中,所述ICMP时间戳查询报文的类型字段的取值13、代码字段的取值为10;所述ICMP回应报文的类型字段的取值为14、代码字段的取值为10。

其中,类型字段的取值为13,代表对应的报文为时间戳请求报文。类型字段的取值为14,代表对应的报文为时间戳应答报文。

ICMP时间戳查询报文的代码字段的取值为10,代表ICMP时间戳查询报文为扩展后的ICMP时间戳查询报文,与常规的ICMP时间戳查询报文相比,扩展后的ICMP时间戳查询报文携带的时间戳的时间精度更高。

ICMP回应报文的代码字段的取值为10,代表ICMP回应报文为扩展后的ICMP回应报文,与常规的ICMP回应报文相比,扩展后的ICMP回应报文携带的时间戳的时间精度更高。

本申请实施例所示的方案,当服务器上执行的应用任务需要获取第一时刻的绝对时间戳时,服务器确定第一时刻的本地时间戳T0。

然后,服务器封装扩展后的ICMP时间戳查询报文,并向所在服务系统的GPS授时设备发送该ICMP时间戳查询报文,其中,该ICMP时间戳查询报文中携带有ICMP时间戳查询报文的发送时间戳T1,T1的时间精度为纳秒级精度。

再然后,GPS授时设备接收该ICMP时间戳查询报文,并通过代码字段的取值,识别出该ICMP时间戳查询报文为扩展后的ICMP时间戳查询报文。GPS授时设备封装扩展后的ICMP回应报文,并向服务器发送该ICMP回应报文,其中,该ICMP回应报文中携带有ICMP时间戳查询报文的接收时间戳T2和ICMP回应报文的发送时间戳T3,T2和T3的时间精度为纳秒级精度。

再然后,服务器接收ICMP回应报文,并确定ICMP回应报文的接收时间戳T4。

最后,服务器基于T0、T1、T2、T3和T4,确定应用任务在第一时刻需要获取的绝对时间戳。

在一种可能的实现方式中,所述T0、所述T1、所述T2、所述T3和所述T4的时间精度为纳秒级精度。

其中,时间精度为纳秒级精度,代表T0、T1、T2、T3和T4可以精确到几纳秒。

本申请实施例所示的方案,通过使T0、T1、T2、T3和T4的时间精度为纳秒级精度,使得应用任务获取到的绝对时间戳的时间精度也为纳秒级精度,从而,确定出的绝对时间戳更加精确,更加有利于后续各应用任务获取的绝对时间戳的比较,更便于各应用任务的执行。

第二方面,提供了一种获取绝对时间戳的装置,包括:本地时间戳确定模块,用于当执行的应用任务需要获取第一时刻的绝对时间戳时,确定所述第一时刻的本地时间戳T0;发送模块,用于向所述装置所在的服务系统的GPS授时设备发送时间戳请求消息,并确定所述时间戳请求消息的发送时间戳T1;接收模块,用于接收所述GPS授时设备发送的时间戳响应消息,所述时间戳响应消息中携带有所述时间戳请求消息在所述GPS授时设备上的接收时间戳T2和所述GPS授时设备发送所述时间戳响应消息的发送时间戳T3;接收时间戳确定模块,用于确定所述时间戳响应消息的接收时间戳T4;绝对时间戳确定模块,用于基于所述T0、所述T1、所述T2、所述T3和所述T4,确定所述应用任务在所述第一时刻的绝对时间戳。

在一种可能的实现方式中,所述服务系统设置有一个主用GPS授时设备和一个备用GPS授时设备。

在一种可能的实现方式中,所述GPS授时设备为所述服务系统的主用GPS授时设备,所述发送模块,用于:向所述主用GPS授时设备发送所述时间戳请求消息。

在一种可能的实现方式中,所述GPS授时设备为所述服务系统的备用GPS授时设备,所述发送模块,用于:如果向所述主用GPS授时设备发送时间戳请求消息,且在设定时长内未接收到所述主用GPS授时设备发送的时间戳响应消息,则向所述备用GPS授时设备发送所述时间戳请求消息。

在一种可能的实现方式中,所述绝对时间戳确定模块,用于:

确定T3–((T2-T1)-(T4-T3))/2-T0的值为所述应用任务在所述第一时刻的绝对时间戳。

在一种可能的实现方式中,所述时间戳请求消息和所述时间戳响应消息中还携带所述T1。

在一种可能的实现方式中,所述T0、所述T1、所述T2、所述T3和所述T4的时间精度为纳秒级精度。

在一种可能的实现方式中,所述GPS授时设备旁挂在所述服务系统的核心交换机上,或者,所述GPS授时设备旁挂在所述服务系统的服务器上。

在一种可能的实现方式中,所述时间戳请求消息为因特网控制报文协议ICMP时间戳查询报文,所述时间戳响应消息为ICMP回应报文。

在一种可能的实现方式中,所述ICMP时间戳查询报文的类型字段的取值13、代码字段的取值为10;所述ICMP回应报文的类型字段的取值为14、代码字段的取值为10。

本申请实施例还提供了一种服务系统,该服务系统包括服务器和至少一个GPS授时设备,其中,当服务器上执行的应用任务需要获取第一时刻的绝对时间戳时,该服务器确定第一时刻的本地时间戳,向GPS授时设备发送时间戳请求消息,并确定时间戳请求消息的发送时间戳T1。该GPS授时设备确定时间戳请求消息的接收时间戳T2,向服务器发送时间戳响应消息。该时间戳响应消息中携带有时间戳请求消息在GPS授时设备上的接收时间戳T2和该GPS授时设备发送时间戳响应消息的发送时间戳T3。然后,该服务器确定时间戳响应消息的接收时间戳T4,并基于T0、T1、T2、T3和T4,确定应用任务在第一时刻的绝对时间戳。

在一种可能的实现方式中,所述服务系统设置有一个主用GPS授时设备和一个备用GPS授时设备。

在一种可能的实现方式中,所述GPS授时设备为所述服务系统的主用GPS授时设备,所述向所述GPS授时设备发送时间戳请求消息,包括:向所述主用GPS授时设备发送所述时间戳请求消息。

在一种可能的实现方式中,所述GPS授时设备为所述服务系统的备用GPS授时设备,所述向所述GPS授时设备发送时间戳请求消息,包括:如果向所述主用GPS授时设备发送时间戳请求消息,且在设定时长内未接收到所述主用GPS授时设备发送的时间戳响应消息,则向所述备用GPS授时设备发送所述时间戳请求消息。

在一种可能的实现方式中,所述基于所述T0、所述T1、所述T2、所述T3和所述T4,确定所述应用任务在所述第一时刻的绝对时间戳,包括:确定T3–((T2-T1)-(T4-T3))/2-T0的值为所述应用任务在所述第一时刻的绝对时间戳。

在一种可能的实现方式中,所述时间戳请求消息和所述时间戳响应消息中还携带所述T1。

在一种可能的实现方式中,所述T0、所述T1、所述T2、所述T3和所述T4的时间精度为纳秒级精度。

在一种可能的实现方式中,所述GPS授时设备旁挂在所述服务系统的核心交换机上,或者,所述GPS授时设备旁挂在所述服务系统的服务器上。

在一种可能的实现方式中,所述时间戳请求消息为因特网控制报文协议ICMP时间戳查询报文,所述时间戳响应消息为ICMP回应报文。

在一种可能的实现方式中,所述ICMP时间戳查询报文的类型字段的取值13、代码字段的取值为10;所述ICMP回应报文的类型字段的取值为14、代码字段的取值为10。

第四方面,提供了一种分布式系统,所分布式系统包括多个如第三方面所述的服务系统中的服务器和GPS授时设备。

第五方面,提供了一种包含指令的计算机程序产品,当所述计算机程序产品在服务器上运行时,使得所述服务器执行如第一方面所述的获取绝对时间戳的方法。

第六方面,提供了一种服务器,所述服务器包括存储器和处理器,所述存储器存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如第一方面所述的获取绝对时间戳的方法。

第七方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现如第一方面所述的获取绝对时间戳的方法。

本申请实施例提供的技术方案带来的有益效果是:

本申请实施例提供的技术方案,当服务器上执行的应用任务需要获取第一时刻的绝对时间戳时,服务器确定第一时刻的本地时间戳T0。然后,服务器向所在服务系统的GPS授时设备发送时间戳请求消息,并确定时间戳请求消息的发送时间戳T1。再然后,GPS授时设备确定时间戳请求消息的接收时间戳T2。再然后,GPS授时设备向服务器发送携带有T2和时间戳响应消息的发送时间戳T3的时间戳响应消息。再然后,服务器确定时间戳响应消息的接收时间戳T4。最后,服务器基于T0、T1、T2、T3和T4,确定应用任务在第一时刻的绝对时间戳。采用本申请实施例提供的技术方案,可以使应用任务获取到需要获取的绝对时间戳,并且,不必为服务器配备支持高精度时间同步协议的专用网卡,从而,降低了服务器的实现复杂度。

附图说明

图1是本申请实施例提供的一种分布式系统的示意图;

图2是本申请实施例提供的一种数据中心的示意图;

图3是本申请实施例提供的另一种数据中心的示意图;

图4是本申请实施例提供的一种服务器和GPS授时设备的交互过程示意图;

图5是本申请实施例提供的一种获取绝对时间戳的方法的流程图;

图6是本申请实施例提供的一种服务器的结构框图;

图7是本申请实施例提供的一种GPS授时设备的结构框图;

图8是本申请实施例提供的一种获取绝对时间戳的装置的结构框图。

具体实施方式

本申请实施例提供了一种获取绝对时间戳的方法,该方法可以使分布式系统中的服务器方便地获取应用任务的绝对时间戳,避免在每个服务器上部署高精度时间同步协议带来的配置复杂的问题。具体的,该分布式系统可以包括多个服务系统,该方法可以由该分布式系统中的每个服务系统独立实现。每个服务系统可以包括服务器和GPS(GlobalPositioning System,全球定位系统)授时设备。其中,服务器为服务系统中的任意服务器。该服务器可以是任何执行应用任务的设备。GPS授时设备为服务器所在的服务系统中为服务器提供绝对时间戳的GPS授时设备。该服务系统为包括服务器和GPS授权设备的任意系统,例如可以是数据中心,企业网络等。以下以服务系统为数据中心为例说明本申请各实施方式。

分布式系统的架构可以如图1所示,分布式系统包括多个服务器和多个GPS授时设备,多个服务器位于不同的数据中心,每个数据中心中设置有至少一个GPS授时设备。分布式系统可以由分布式系统网络管理器进行管理。

如图2所示,提供了一种GPS授时设备的旁挂方式。数据中心包括多个服务器、多个交换机和GPS授时设备,GPS授时设备旁挂在数据中心的核心交换机上。

如图3所示,提供了另一种GPS授时设备的旁挂方式。数据中心包括多个服务器、多个交换机和GPS授时设备,GPS授时设备旁挂在数据中心的服务器上。

如图6所示,服务器包括发射器、接收器、处理器和存储器,发射器、接收器、处理器和存储器之间互相连接。处理器可以是服务器的控制中心,该处理器可以是CPU(CentralProcessing Unit,中央处理器),可选的,该处理器可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统,调制解调处理器主要处理无线通信。该处理器还可以是数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件等。存储器可用于存储软件程序以及模块,处理器通过读取存储在存储器的软件代码以及模块,从而执行服务器的各种功能应用以及数据处理。存储器中可以存储有时间戳请求消息、时间戳响应消息、T0、T1、T2、T3和T4等。处理器可以用于确定当前的本地时间戳T0、生成时间戳请求消息、确定时间戳请求消息的发送时间戳T1、确定时间戳响应消息的接收时间戳T4以及基于T0、T1、T2、T3和T4,确定应用任务需要获取的绝对时间戳等。发射器用于向外发射消息,例如,可以向外发射时间戳请求消息。接收器用于接收外界设备发射的消息,例如,可以用于接收GPS授时设备发射的时间戳响应消息。

如图7所示,GPS授时设备包括发射器、接收器、处理器和存储器,发射器、接收器、处理器和存储器之间互相连接。处理器可以是GPS授时设备的控制中心,该处理器可以是CPU(Central Processing Unit,中央处理器),可选的,该处理器可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统,调制解调处理器主要处理无线通信。该处理器还可以是数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件等。存储器可用于存储软件程序以及模块,处理器通过读取存储在存储器的软件代码以及模块,从而执行GPS授时设备的各种功能应用以及数据处理。存储器中可以存储有时间戳请求消息、时间戳响应消息、T2和T3。处理器可以用于确定时间戳请求消息的接收时间戳T2、生成时间戳响应消息以及确定时间戳响应消息的发送时间戳T3等。发射器用于向外发射消息,例如,可以向外发射时间戳响应消息。接收器用于接收外界设备发射的消息,例如,可以用于接收服务器发送的时间戳请求消息,还可以用于接收卫星发送的标准时间信号。

可以理解的是本申请实施例提供的方法需要服务器和GPS授时设备之间进行信息交互,所以在实施本申请实施例提供的方法之前,需要保证服务器和GPS授时设备之间IP(internet protocol,网络协议)路由可达,可选的,可以通过将GPS授时设备加入到服务器所在的路由域内,并在路由域内发布授时设备的IP路由的方式实现。

本申请实施例提供了一种获取绝对时间戳的方法,参照图4和图5,该方法可以由服务系统的服务器执行,该方法的处理流程可以包括如下步骤:

步骤501,当服务系统里的服务器上执行的应用任务需要获取第一时刻的绝对时间戳时,服务器确定第一时刻的本地时间戳T0。

其中,服务器可以为服务系统的多个服务器中的任一服务器,当执行在某一服务器上的应用任务需要获取绝对时间戳时,该服务器即成为服务器。应用任务还可以称为应用进程。

第一时刻的本地时间戳T0是指,服务器上第一时刻的本地时间戳。第一时刻的绝对时间戳是指,GPS授时设备上第一时刻的时间戳。第一时刻的本地时间戳T0与第一时刻的绝对时间戳相对应,本申请实施例提供的获取绝对时间戳的方法,即是通过从GPS授时设备获取的绝对时间戳,对第一时刻的本地时间戳T0进行校准,从而确定第一时刻的绝对时间戳。

T0的时间精度可以为纳秒级精度。时间戳的格式在RFC1305中定义如下,高32位表示1900年1月1月1日以来的秒,低32位表示秒的小数部分。

本申请实施例所示的方案,当在服务器上执行的应用任务需要获取第一时刻的绝对时间戳时,服务器确定并记录服务器上第一时刻的本地时间戳T0。

步骤502,服务器向服务系统的GPS授时设备发送时间戳请求消息,并确定时间戳请求消息的发送时间戳T1。

其中,时间戳请求消息可以为ICMP时间戳查询报文,时间戳请求消息中还可以携带有T1。T1的时间精度可以为纳秒级精度。

发送时间戳T1是指服务器向GPS授时设备发送时间戳请求消息时,服务器上的本地时间戳。

本申请实施例所示的方案,当服务器检测到应用任务需要获取绝对时间戳时,即向GPS授时设备发送时间戳请求消息。可以理解的是,发送时间戳请求消息前,需要生成时间戳请求消息,因此T1与T0之间有一定的时间间隔。例如,当时间戳请求消息为ICMP时间戳查询报文时,在发送ICMP时间戳查询报文前,需要进行ICMP时间戳查询报文的封装。

GPS授时设备既可以旁挂在所在数据中心的核心交换机上,也可以旁挂在所在数据中心的服务器上。根据GPS授时设备旁挂的位置的不同,服务器向GPS授时设备发送时间戳请求消息的具体情况也不同。

当GPS授时设备旁挂在所在数据中心的核心交换机上时,服务器通过各级交换机向GPS授时设备发送时间戳请求消息。

当GPS授时设备旁挂在所在数据中心的服务器上时,可以分为两种情况。第一种情况,GPS授时设备旁挂在执行应用任务的服务器上,则执行应用任务的服务器直接向GPS授时设备发送时间戳请求消息。第二种情况,GPS授时设备未旁挂在执行应用任务的服务器上,则执行应用任务的服务器通过交换机和GPS授时设备旁挂的服务器向GPS授时设备发送时间戳请求消息。

需要说明的是,为了便于描述,将接受时间戳请求消息的GPS授时设备称为目标GPS授时设备。则目标GPS授时设备根据每个数据中心的GPS授时设备的数量、优先级和是否正常工作等因素来确定。当每个数据中心中只设置有一个GPS授时设备时,目标GPS授时设备即为服务器所在数据中心的GPS授时设备。当每个数据中心中设置有多个GPS授时设备时,目标GPS授时设备根据各GPS授时设备的优先级和是否正常工作来确定。

在一种可能的实现方式中,每个服务系统设置有一个主用GPS授时设备和一个备用GPS授时设备。

其中,主用GPS授时设备的优先级高于备用GPS授时设备,当主用GPS授时设备不能正常工作时,才会使用备用GPS授时设备。

本申请实施例所示的方案,通过在每个服务系统(例如,数据中心)设置一个主用GPS授时设备和一个备用GPS授时设备,使得在主用GPS授时设备故障时,服务器还可以向备用GPS授时设备发送时间戳请求消息,并从备用GPS授时设备获取时间戳响应消息,从而,增强了GPS授时设备授时的可靠性。

当在每个服务系统中设置有一个主用GPS授时设备和一个备用GPS授时设备时,目标GPS授时设备既可以为主用GPS授时设备,也可以为备用GPS授时设备。具体情况可以如下所述。

在一种可能的实现方式中,目标GPS授时设备为服务器所在数据中心的主用GPS授时设备,则此时,服务器向所在数据中心的主用GPS授时设备发送时间戳请求消息。

本申请实施例所示的方案,在默认情况下,服务器将所在数据中心的主用GPS授时设备作为目标GPS授时设备,并向主用GPS授时设备发送时间戳请求消息。

在另一种可能的实现方式中,目标GPS授时设备为服务器所在数据中心的备用GPS授时设备。则此时的情况为,如果服务器向所在数据中心的主用GPS授时设备发送时间戳请求消息,且在设定时长内未接收到所在数据中心的主用GPS授时设备发送的时间戳响应消息,则向所在数据中心的备用GPS授时设备发送时间戳请求消息。

本申请实施例所示的方案,在默认情况下,服务器将所在数据中心的主用GPS授时设备作为目标GPS授时设备。则服务器先向所在数据中心的主用GPS授时设备发送时间戳请求消息,如果在设定时长内未接受到主用GPS授时设备发送的时间戳响应消息,则说明主用GPS授时设备不能正常工作,则此时应将备用GPS授时设备确定为目标GPS授时设备,并向备用GPS授时设备发送时间戳请求消息。

可见,在默认情况下目标GPS授时设备为主用GPS授时设备,当主用GPS授时设备不能正常工作时,为了保证服务器顺利获取绝对时间戳,备用GPS授时设备代替主用GPS授时设备作为目标GPS授时设备。

在一种可能的实现方式中,时间戳请求消息中携带有T1。

本申请实施例所示的方案,通过在时间戳请求消息中携带T1,则服务器不必在本地记录T1。可以理解的是,即使时间戳请求消息中携带有T1,服务器也可以在本地记录T1,本申请对此不做限定。在另一种可能的实现方式中,时间获取请求中未携带有T1,服务器确定T1之后,将T1记录在服务器中。

在一种可能的实现方式中,时间戳请求消息为ICMP时间戳查询报文,则相应的,时间戳响应消息为ICMP回应报文。

本申请实施例所示的方案,ICMP时间戳查询报文中携带有服务器的IP地址、GPS授时设备的IP地址和ICMP时间戳查询报文的类型信息和代码信息。

在一种可能的实现方式中,ICMP时间戳查询报文的类型字段的取值13、代码字段的取值为10。

其中,类型字段的取值为13,代表对应的报文为时间戳请求报文。ICMP时间戳查询报文的代码字段的取值为10,代表ICMP时间戳查询报文为扩展后的ICMP时间戳查询报文,与常规的ICMP时间戳查询报文相比,扩展后的ICMP时间戳查询报文携带的时间戳的时间精度更高,扩展后的ICMP时间戳查询报文携带的时间戳的时间精度为纳秒级精度。

ICMP时间戳查询报文的格式可以如表1所示。ICMP时间戳查询报文中携带有IP报文头、发射端IP(服务器IP)、接收端IP(授时设备IP)、类型信息、代码信息、校验和信息、标识符信息和序号信息。

其中,发射端IP(服务器IP)为服务器的IP地址;接收端IP(授时设备IP)为GPS授时设备的IP地址,可以为主用GPS授时设备的IP地址,也可以备用GPS授时设备的IP地址;类型字段的取值为13,13代表该报文的类型为时间戳请求类型;代码字段的取值为10,代表该ICMP时间戳查询报文为扩展后的ICMP时间戳查询报文,扩展后的ICMP时间戳查询报文携带的时间戳的时间精度为纳秒级精度。

ICMP时间戳查询报文中还携带有ICMP时间戳查询报文的发送时间戳T1,T1的时间精度为纳秒级精度,所以T1的位数为64位。

表1

步骤503,服务器接收GPS授时设备向服务器发送的时间戳响应消息。

其中,时间戳响应消息中携带有时间戳请求消息在GPS授时设备上的接收时间戳T2和GPS授时设备发送时间戳响应消息的发送时间戳T3。时间戳响应消息可以为ICMP回应报文。T2和T3的时间精度为纳秒级精度,T2和T3为GPS授时设备上记录的时间戳,为绝对时间戳。

本申请实施例所示的方案,GPS授时设备接收服务器发送的时间戳请求消息,并确定时间戳请求消息的接收时间戳T2,并向服务器发送时间戳响应消息。可以理解的是,从服务器发出时间戳请求消息到GPS授时设备接收到时间戳请求消息需要一定的时间,因此,T2与T1之间有一段时间间隔。而发送时间戳响应消息前,需要生成时间戳响应消息,因此T3与T2之间有一定的时间间隔。例如,当时间戳响应消息为ICMP回应报文时,在发送ICMP回应报文前,需要进行ICMP回应报文的封装。

可选的,为了提高处理精度,避免控制面处理的时延误差,可以由GPS授时设备的转发面直接进行ICMP时间戳查询报文的接收和识别、ICMP回应报文的封装和发送处理,为保证时延精度,通常在高速处理芯片上执行,如ASIC(application specific integratedcircuit,专用集成电路)芯片,FPGA(field programmable gate array,现场可编程逻辑门阵列)芯片或者NP(networking processor,网络芯片)微码芯片。

GPS授时设备既可以旁挂在所在数据中心的核心交换机上,也可以旁挂在所在数据中心的服务器上。根据GPS授时设备旁挂的位置的不同,GPS授时设备向服务器发送时间戳响应消息的具体情况也不同。当GPS授时设备旁挂在所在数据中心的核心交换机上时,GPS授时设备通过各级交换机向服务器发送时间戳响应消息。当GPS授时设备旁挂在所在数据中心的服务器上时,可以分为两种情况。第一种情况,GPS授时设备旁挂在执行应用任务的服务器上,则GPS授时设备直接向服务器发送时间戳响应消息。第二种情况,GPS授时设备未旁挂在执行应用任务的服务器上,则GPS授时设备GPS授时设备旁挂的服务器和交换机向服务器发送时间戳响应消息。

在一种可能的实现方式中,时间戳响应消息为ICMP回应报文,则相应的,时间戳请求消息为ICMP时间戳查询报文。

本申请实施例所示的方案,ICMP回应报文中携带有服务器的IP地址、GPS授时设备的IP地址和ICMP回应报文的类型信息和代码信息。

在一种可能的实现方式中,ICMP回应报文的类型字段的取值为14、代码字段的取值为10。

其中,类型字段的取值为14,代表对应的报文为时间戳应当报文。ICMP回应报文的代码字段的取值为10,代表ICMP回应报文为扩展后的ICMP回应报文,与常规的ICMP回应报文相比,扩展后的ICMP回应报文携带的时间戳的时间精度更高,扩展后的ICMP时间戳查询报文携带的时间戳的时间精度为纳秒级精度。

ICMP回应报文的格式可以如表2所示。ICMP回应报文中携带有IP报文头、发射端IP(授时设备IP)、接收端IP(服务器IP)、类型信息、代码信息、校验和信息、标识符信息和序号信息。其中,接收端IP(服务器IP)为服务器的IP地址;发射端IP(授时设备IP)为GPS授时设备的IP地址,可以为主用GPS授时设备的IP地址,也可以备用GPS授时设备的IP地址;类型字段的取值为14,14代表该报文的类型为时间戳应答类型;代码字段的取值为10,代表该ICMP回应报文为扩展后的ICMP回应报文,扩展后的ICMP回应报文携带的时间戳的时间精度为纳秒级精度。ICMP回应报文中还携带有ICMP时间戳查询报文的发送时间戳T1、ICMP时间戳查询报文接收时间戳T2和ICMP回应报文的发送时间戳T3,T1、T2和T3的时间精度为纳秒级精度,所以T1、T2和T3的位数为64位。

表2

步骤504,服务器确定时间戳响应消息的接收时间戳T4。

其中,T4为服务器上记录的本地时间戳,T4的时间精度为纳秒级精度。

本申请实施例所示的方案,服务器接收GPS授时设备发送的时间戳响应消息,并确定时间戳响应消息的接收时间戳T4,接收时间戳T4为服务器上接收时间戳响应消息时的本地时间戳。

步骤505,服务器基于T0、T1、T2、T3和T4,确定应用任务在第一时刻的绝对时间戳。

其中,T0、T1和T4为本地时间戳,T2和T3为绝对时间戳。T0、T1、T2、T3和T4的时间精度可以为纳秒级精度。

本申请实施例所示的方案,通过使T0、T1、T2、T3和T4的时间精度为纳秒级精度,使得应用任务获取到的绝对时间戳的时间精度也为纳秒级精度,从而,确定出的绝对时间戳更加精确,更加有利于后续各应用任务获取的绝对时间戳的比较,更便于各应用任务的执行。

可以理解的是,本申请实施例提供的获取绝对时间戳的方法,也可以应用于除数据中心之外的其余服务系统。例如,对于网管系统,网络管理器或者控制器本身属于一个服务系统,如果需要获取标准时间,也可以按照本申请实施例提供的方法到标准时间授时设备获取高精度的时间戳消息。再例如,对于办公或生产网络,网络中的主机可以按照本申请实施例提供的方法到标准时间授时设备获取高精度的时间戳消息。再例如,网络中采用服务器虚拟机虚拟的VNF网络设备也可以应用本申请实施例提供的方法。

基于相同的技术构思,本申请实施例还提供了一种获取绝对时间戳的装置,如图8所示,该装置包括:

本地时间戳确定模块801,用于当执行的应用任务需要获取第一时刻的绝对时间戳时,确定第一时刻的本地时间戳T0;

发送模块802,用于向装置所在的服务系统的GPS授时设备发送时间戳请求消息,并确定时间戳请求消息的发送时间戳T1;

接收模块803,用于接收GPS授时设备发送的时间戳响应消息,时间戳响应消息中携带有时间戳请求消息在GPS授时设备上的接收时间戳T2和GPS授时设备发送时间戳响应消息的发送时间戳T3;

接收时间戳确定模块804,用于确定时间戳响应消息的接收时间戳T4;

绝对时间戳确定模块805,用于基于T0、T1、T2、T3和T4,确定应用任务在第一时刻的绝对时间戳。

在一种可能的实现方式中,服务系统设置有一个主用GPS授时设备和一个备用GPS授时设备。

在一种可能的实现方式中,GPS授时设备为服务系统的主用GPS授时设备,发送模块802,用于:

向主用GPS授时设备发送时间戳请求消息。

在一种可能的实现方式中,GPS授时设备为服务系统的备用GPS授时设备,发送模块802,用于:

如果向主用GPS授时设备发送时间戳请求消息,且在设定时长内未接收到主用GPS授时设备发送的时间戳响应消息,则向备用GPS授时设备发送时间戳请求消息。

在一种可能的实现方式中,绝对时间戳确定模块805,用于:

确定T3–((T2-T1)-(T4-T3))/2-T0的值为应用任务在第一时刻的绝对时间戳。

在一种可能的实现方式中,时间戳请求消息和时间戳响应消息中还携带T1。

在一种可能的实现方式中,T0、T1、T2、T3和T4的时间精度为纳秒级精度。

在一种可能的实现方式中,GPS授时设备旁挂在服务系统的核心交换机上,或者,GPS授时设备旁挂在服务系统的服务器上。

在一种可能的实现方式中,时间戳请求消息为因特网控制报文协议ICMP时间戳查询报文,时间戳响应消息为ICMP回应报文。

在一种可能的实现方式中,ICMP时间戳查询报文的类型字段的取值13、代码字段的取值为10;

ICMP回应报文的类型字段的取值为14、代码字段的取值为10。

需要说明的是,上述本地时间戳确定模块801、发送模块802、接收模块803、接收时间戳确定模块804、绝对时间戳确定模块805可以由处理器实现,或者处理器配合存储器来实现,或者,处理器执行存储器中的程序指令来实现。

还需要说明的是,上述实施例提供的获取绝对时间戳的装置在获取绝对时间戳时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将服务器的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的获取绝对时间戳的装置与获取绝对时间戳的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现,当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令,在设备上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机指令可以存储在计算机可读存储介质中。所述计算机可读存储介质可以是设备能够存取的任何可用介质或者是包含一个或多个可用介质集成的数据存储设备。所述可用介质可以是磁性介质(如软盘、硬盘和磁带等),也可以是光介质(如数字视盘(digital video disk,DVD)等),或者半导体介质(如固态硬盘等)。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

本申请实施例还提供了一种服务系统,该服务系统包括服务器和至少一个GPS授时设备,其中,当服务器上执行的应用任务需要获取第一时刻的绝对时间戳时,该服务器确定第一时刻的本地时间戳,向GPS授时设备发送时间戳请求消息,并确定时间戳请求消息的发送时间戳T1。该GPS授时设备确定时间戳请求消息的接收时间戳T2,向服务器发送时间戳响应消息。该时间戳响应消息中携带有时间戳请求消息在GPS授时设备上的接收时间戳T2和该GPS授时设备发送时间戳响应消息的发送时间戳T3。然后,该服务器确定时间戳响应消息的接收时间戳T4,并基于T0、T1、T2、T3和T4,确定应用任务在第一时刻的绝对时间戳。

在一种可能的实现方式中,服务系统设置有一个主用GPS授时设备和一个备用GPS授时设备。

在一种可能的实现方式中,GPS授时设备为服务系统的主用GPS授时设备,向GPS授时设备发送时间戳请求消息,包括:

向主用GPS授时设备发送时间戳请求消息。

在一种可能的实现方式中,GPS授时设备为服务系统的备用GPS授时设备,向GPS授时设备发送时间戳请求消息,包括:

如果向主用GPS授时设备发送时间戳请求消息,且在设定时长内未接收到主用GPS授时设备发送的时间戳响应消息,则向备用GPS授时设备发送时间戳请求消息。

在一种可能的实现方式中,基于T0、T1、T2、T3和T4,确定应用任务在第一时刻的绝对时间戳,包括:

确定T3–((T2-T1)-(T4-T3))/2-T0的值为应用任务在第一时刻的绝对时间戳。

在一种可能的实现方式中,时间戳请求消息和时间戳响应消息中还携带T1。

在一种可能的实现方式中,T0、T1、T2、T3和T4的时间精度为纳秒级精度。

在一种可能的实现方式中,GPS授时设备旁挂在服务系统的核心交换机上,或者,GPS授时设备旁挂在服务系统的服务器上。

在一种可能的实现方式中,时间戳请求消息为因特网控制报文协议ICMP时间戳查询报文,时间戳响应消息为ICMP回应报文。

在一种可能的实现方式中,ICMP时间戳查询报文的类型字段的取值13、代码字段的取值为10;

ICMP回应报文的类型字段的取值为14、代码字段的取值为10。

本申请实施例还提供了一种分布式系统,该分布式系统包括多个前面所述的服务系统。

以上所述仅为本申请的实施例,并不用以限制本申请,凡在本申请的原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

23页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种时延计算方法、相关设备和系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!