一种基于NTP的传输时间戳处理方法及装置与流程

文档序号:14914267发布日期:2018-07-11 00:17阅读:266来源:国知局

本发明涉及通信技术领域,尤其涉及一种基于NTP的传输时间戳处理方法及装置。



背景技术:

NTP(Network Time Protocol,网络时间协议),是用来同步网络中各个计算机的时间的协议,可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,提供高精准度的时间校正。为了实现高精度的传输时间戳,目前通常采用了基于硬件的时间戳引擎,从而将高精度的传输时间集成到被传出的NTP报文之中。

根据NTP协议的规定,无论是基于硬件还是软件的实现,所有的NTP报文都是承载于UDP报文中,并通过UDP报文头部中的校验域字段(如图4中的checksum字段)的更新来反映传输时间的修改。因此传统的借助于UDP校验域字段的更新来反映传输时间的修改方法,会更多的依赖于UDP协议本身。而当NTP报文发生更改时,重新计算的校验域字段较为复杂,对于客户端和服务端的系统开销是很大的。



技术实现要素:

本发明提供一种基于NTP的传输时间戳处理方法,用以解决现有技术中采用UDP报文承载NTP报文时所带来的缺陷。

为实现上述发明目的,本发明采用下述的技术方案:

依据本发明的一个方面,提供一种基于网络时间协议NTP的传输时间戳处理方法,包括:

当检测UDP报文携带的NTP报文的时间戳发生更新时,判断所述UDP报文载荷中的NTP扩展选项是否为NTP时间戳校验域;

当判断为所述NTP时间戳校验域时,则根据更新前后的时间戳的校验值修改所述NTP时间戳校验域,以使所述UDP报文的校验值不变。

进一步地,所述判断UDP报文载荷中的NTP扩展选项是否为NTP时间戳校验域,具体包括:

当所述UDP报文载荷包含多个NTP扩展选项时,判断位于所述UDP报文载荷尾部的NTP扩展选项是否为所述NTP时间戳校验域。

进一步地,所述判断UDP报文载荷中的NTP扩展选项是否为NTP时间戳校验域,具体包括:

获取所述NTP扩展选项的域类型字段的值;

判断所述域类型字段的值是否为预设阈值,若为所述预设阈值,则判定所述NTP扩展选项为所述NTP时间戳校验域。

进一步地,所述根据更新前后的时间戳的校验值修改所述NTP时间戳校验域,具体包括:

计算更新后和更新前时间戳的校验值的差值;

根据所述差值修改所述NTP时间戳校验域中的时间戳校验字段;其中,修改后与修改前的所述时间戳校验字段的校验值的差值即为所述差值。

进一步地,所述NTP时间戳校验字段中所述域类型字段和所述时间戳校验字段分别占用两个字节,长度字段占用两字节,其余22字节为填充字段。

依据本发明的一个方面,提供一种基于网络时间协议NTP的传输时间戳处理装置,其特征在于,包括:

检测单元,用于检测UDP报文载荷携带的NTP报文的时间戳是否发生更新;

判断单元,用于当检测单元检测UDP报文携带的NTP报文的时间戳发生更新时,判断UDP报文载荷中的NTP扩展选项是否为NTP时间戳校验域;

修改单元,用于当所述判断单元判断为所述NTP时间戳校验域时,则根据更新前后的时间戳的校验值修改所述NTP时间戳校验域,以使所述UDP报文的校验值不变。

进一步地,所述判断单元具体用于:

当所述UDP报文载荷包含多个NTP扩展选项时,判断位于所述UDP报文载荷尾部的NTP扩展选项是否为所述NTP时间戳校验域。

进一步地,所述判断单元具体用于:

获取所述NTP扩展选项的域类型字段的值;

判断所述域类型字段的值是否为预设阈值,若为所述预设阈值,则判定所述NTP扩展选项为所述NTP时间戳校验域。

进一步地,所述修改单元具体用于:

计算更新后和更新前时间戳的校验值的差值;

根据所述差值修改所述NTP时间戳校验域中的时间戳校验字段;其中,修改后与修改前的所述时间戳校验字段的校验值的差值即为所述差值。

进一步地,所述NTP时间戳校验字段中所述域类型字段和所述时间戳校验字段分别占用两个字节,长度字段占用两字节,其余22字节为填充字段。

本发明有益效果如下:

本发明所提供的基于NTP的传输时间戳处理方法通过借助NTP协议的可扩展性,在NTP协议中增加扩展选项,利用扩展选项来反映传输时间的更改。因此,本发明无需更新UDP校验值的情形下,利用NTP协议自身即可反映传输时间的修改,有效减轻了NTP客户端和NTP服务器的UDP校验值计算的负担,有利于提升NTP相关的性能。

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

附图说明

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

图1为本发明实施例中基于NTP的传输时间戳处理方法的流程图;

图2为本发明实施例中NTP客户端/服务器的架构图;

图3为本发明实施例中UDP报文的格式示意图;

图4为本发明实施例中NTP时间戳校验域的格式示意图;

图5为本发明实施例中基于NTP的传输时间戳处理方法时序图;

图6为本发明实施例中基于NTP的传输时间戳处理装置的结构框图。

具体实施方式

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

如图1所示,本发明实施例所提供的基于NTP的传输时间戳处理方法,具体包括如下:

S101,当检测UDP报文携带的NTP报文的时间戳发生更新时,判断UDP报文载荷中的NTP扩展选项是否为NTP时间戳校验域;

S102,当判断为NTP时间戳校验域时,则根据更新前后的时间戳的校验值修改NTP时间戳校验域,以使UDP报文的UDP校验值不变。

本发明所提供的基于NTP的传输时间戳处理方法通过借助NTP协议的可扩展性,在NTP协议中增加扩展选项,利用扩展选项来反映传输时间的更改。因此,本发明无需更新UDP校验值的情形下,利用NTP协议自身即可反映传输时间的修改,有效减轻了NTP客户端和NTP服务器的UDP校验值计算的负担,有利于提升NTP相关的性能。

下面结合附图和具体实施例对本发明的技术内容进行详细说明。

如图2所示,本发明中在NTP客户端和服务器中增加一个中间实体。该中间实体为时间戳计算引擎,用于实现时间戳的计算和校验值的更新。具体地,中间实体可以通过ASIC(Application Specific Integrated Circuits,专用集成电路)或者FPGA(Field-Programmable Gate Array,即现场可编程门阵列)实现。

S101,当检测UDP报文携带的NTP报文的时间戳发生更新时,判断UDP报文载荷中的NTP扩展选项是否为NTP时间戳校验域。

如图3所示,本发明在UDP载荷中增加NTP扩展选项,用于承载NTP checksum timestamp。中间实体通过计算时间戳信息更新NTP checksum timestamp字段的值,并通过修改NTP checksum timestamp字段来保持UDP校验的正确性,而无需再去更新UDP校验域字段。

其中,由于UDP报文载荷中可能会包含1个或多个扩展选项,因此,可选的,NTP checksum timestamp字段的位置应该始终在多个NTP扩展选项的尾部,如图3所示。因此,在判断NTP扩展选项是否为NTP时间戳校验域时,若NTP报文包含多个NTP扩展选项时,则判断位于UDP报文载荷尾部的NTP扩展选项是否为NTP时间戳校验域。

NTP报文发送者发送的NTP报文,如果包含扩展的NTP checksum timestamp域,那么中间实体在接收或者改变一个NTP报文时,使用checksum timestamp字段来确保UDP校验值的正确性。因此,在判断NTP报文的NTP扩展选项是否为NTP时间戳校验域(NTP checksum timestamp),具体包括:

获取NTP扩展选项的域类型字段的值;

判断域类型字段的值是否为预设阈值,若为预设阈值,则判定NTP扩展选项为NTP时间戳校验域;否则,终止后续处理。

一实施例中,如图4所示,NTP checksum timestamp字段包括域类型、长度字段、填充字段和checksum timestamp(时间戳校验)字段。其中,

域类型字段占用两个字节,用以区别其它现有类型值,例如自定义字段值为0x3005,以此表示为后续字段为NTP checksum timestamp字段。当判断是否为NTP时间戳校验域,获取域类型的值,判断是否为0x3005;当为0x3005,则继续后续处理。

长度字段占用两个字节,用以约定NTP checksum timestamp字段的长度。为了保证主机所接收的NTP报文能够被正确的解析,可选的,约定长度为28字节。

填充字段占用22字节,全部填充为0。

checksum timestamp字段用以存放中间实体产生的新值,该值占用最后两个字节,以此确保UDP校验域的正确性。

S102,当判断为NTP时间戳校验域时,则根据更新前后的时间戳的校验值修改NTP时间戳校验域,以使UDP报文的UDP校验值不变。

具体地,当检测到NTP协议的时间戳值被更新,该更新不会体现在UDP校验值中。中间实体在NTP checksum timestamp字段中分配一个新值。该值可以抵消NTP协议时间戳变化带来的UDP校验值的变化,从而保证了UDP校验值始终不变。

具体地,根据更新前后的时间戳的校验值更新NTP时间戳校验域,具体包括:

计算更新后和更新前时间戳的校验值的差值;

根据差值修改NTP时间戳校验域中的时间戳校验字段;其中,修改后与修改前的时间戳校验字段的校验值的差值即为上述差值。

举例说明,如图5所示,假设一个NTP客户端发送一个NTP报文到NTP服务器,NTP客户端的软件层产生的NTP报文的原始时间戳为TS,UDP校验值为UC。其中UC是UDP头部、伪首部、UDP载荷的校验值,即UC需要满足以下公式:

UC=Constant+checksum(TS) (1)

其中,Constant表示除了原始时间戳TS校验值之外的所有域的校验值。

假设客户端软件层发出的NTP报文包含有checksum timestamp扩展域,并规定初始checksum timestamp值为0。为保证时间的精确性,则更新原始时间戳字段,假设原始时间戳从TS变为TS',则中间实体将checksum timestamp值从0更新为值C,其中,更新后的值C需要满足以下公式:

checksum(C)-checksum(0)=checksum(TS)-checksum(TS') (2)

其中,checksum(0)=0。

因此,NTP报文在被客户端中间实体传输之后的UDP校验值可得:

UC'=Constant+checksum(C)+checksum(TS')

而基于公式(2)可得:

UC'=Constant+checksum(TS)=UC (3)

可知,NTP报文的时间戳在更新前和更新后的UDP校验值是不变的,保证了UDP校验值的正确性。因此,当NTP报文到达NTP服务器时,服务器只需要按照原有的方式对UDP报文进行校验计算,计算的UDP校验值结果仍然为UC。而checksum timestamp值只是作为扩展域的一部分,而它的值显然包括在计算之中,NTP服务器不需要对其进行特殊处理。

如图6所示,本发明还提供了基于NTP的传输时间戳处理装置,用于实现上述的方法,具体包括:

检测单元61,用于检测UDP报文载荷携带的NTP报文的时间戳是否发生更新;

判断单元62,用于当检测单元61检测UDP报文携带的NTP报文的时间戳发生更新时,判断UDP报文载荷中的NTP扩展选项是否为NTP时间戳校验域;

修改单元63,用于当判断单元62判断为NTP时间戳校验域时,则根据更新前后的时间戳的校验值修改NTP时间戳校验域,以使UDP报文的UDP校验值不变。

进一步地,判断单元62具体用于:

当NTP报文包含多个NTP扩展选项时,判断位于UDP报文载荷尾部的NTP扩展选项是否为NTP时间戳校验域。

进一步地,判断单元62具体用于:

获取NTP扩展选项的域类型字段的值;

判断域类型字段的值是否为预设阈值,若为预设阈值,则判定NTP扩展选项为NTP时间戳校验域。

进一步地,修改单元63具体用于:

计算更新后和更新前时间戳的校验值的差值;

根据差值修改NTP时间戳校验域中的时间戳校验字段;其中,修改后与修改前的时间戳校验字段的校验值的差值即为上述差值。

进一步地,NTP时间戳校验字段中域类型字段和时间戳校验字段分别占用两个字节,长度字段占用两字节,其余22字节为填充字段。

综上所述,本发明提供的基于NTP的传输时间戳处理方法及装置,不再利用更新UDP校验值来反应传输时间的修改,而是利用NTP协议自身来反应传输时间修改,突破了传统利用UDP校验来反应NTP传输时间的限制。通过利用NTP协议的扩展性,实现了对协议的灵活扩展,有效减轻NTP客户端和NTP服务器的UDP校验值计算的负担,有利于提升NTP相关的性能。

说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置实施例而言,由于其与方法实施例基本相似,相关之处参见方法实施例的部分说明即可。并且,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

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

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

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