一种基于NTP协议的计算机时间同步及监控方法转让专利

申请号 : CN201110364966.X

文献号 : CN102571911B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王广才李大强

申请人 : 电信科学技术第五研究所

摘要 :

一种基于NTP协议的计算机时间同步及监控方法,涉及网络通信技术。本发明包括下述步骤:A、客户端采用NTP协议将本地计算机时间同步到指定时间参考源;B、监控端建立客户端列表,客户端建立监控端列表,列表包含IP地址信息;C、监控端向客户端列表中的各个客户端定期发送握手帧,客户端收到后回复响应帧,建立连接;D、客户端主动定期向监控端列表内的监控端上报监控帧,监控端被动接收监控帧;E、如果客户端在预定时间内没有收到来自某一监控端的握手帧,则停止向该监控端上报监控帧,并更新存储在客户端的监控端列表;如果监控端在预定时间内没有收到来自某一客户端的握手响应帧,则给出报警提示。本发明占用带宽少,应用灵活。

权利要求 :

1.一种基于NTP协议的计算机时间同步及监控方法,其特征在于,包括下述步骤:A、客户端采用NTP协议将本地计算机时间同步到指定时间参考源;

B、监控端建立客户端列表,客户端建立监控端列表,客户端列表和监控端列表都包含IP地址信息;

C、监控端向客户端列表中的各个客户端定期发送握手帧,客户端收到后回复响应帧,建立连接;

D、客户端主动定期向监控端列表内的监控端上报监控帧,监控端被动接收监控帧;

E、如果客户端在预定时间内没有收到来自某一监控端的握手帧,则停止向该监控端上报监控帧,并更新存储在客户端的监控端列表;如果监控端在预定时间内没有收到来自某一客户端的握手响应帧,则给出报警提示。

2.如权利要求1所述的基于NTP协议的计算机时间同步及监控方法,其特征在于,所述监控帧包含下述内容:frameType:帧类型,用于区分性能监控帧、故障监控帧、握手帧;

messageType:信息类型,用于区分监控信息、握手请求信息、握手响应信息;

mode:客户端工作模式,用于区分客户端/服务器模式、广播模式、多播模式、主动对等体模式;帧类型为握手帧或故障监控帧时该域忽略;

messageLength:帧长度,单位为字节,十六进制数表示;

clientIP:客户端IP地址,共4个字节,十六进制数表示,高位在前,低位在后,帧类型为握手帧或故障监控帧时该域忽略;

serverIP:时间参考源IP地址,共4个字节,十六进制数表示,帧类型为握手帧或故障监控帧时该域忽略;

precision:时间偏差或校正值,帧类型为握手帧或故障监控帧时该域忽略;

sequenceId:序列号,该域值为监控帧的序列号,0~0xffff循环;

timestamp:时间戳,含义同NTP协议,帧类型为性能监控帧时,该时间戳表示时间偏差域对应的较正时间,帧类型为故障监控帧时,该时间戳表示告警时间;

alarm:客户端软件告警编码,用于区分不告警、参考源告警、所有参考源告警、本机时间失步,帧类型为握手帧时该域忽略;

其中,mode、clientIP、serverIP、timestamp域属于功能监控;precision域属于性能监控;alarm域属于故障监控。

3.如权利要求1所述的基于NTP协议的计算机时间同步及监控方法,其特征还在于,监控帧包括性能监控帧和故障监控帧,性能、故障监控帧以及握手帧格式兼容,性能监控帧定时上报,故障监控帧除了定时上报外还需要在告警状态发生变化时立即上报。

说明书 :

一种基于NTP协议的计算机时间同步及监控方法

技术领域

[0001] 本发明涉及网络通信技术。

背景技术

[0002] NTP(Network Time Protocol)即网络时间协议,是用于互联网中时间同步的标准网络协议,其作用是把网络内的计算机时间同步到协调世界时(UTC)。NTP的设计充分考虑了互联网上时间同步的复杂性。NTP协议提供的机制严格、实用、有效,采用Client/Server结构,支持多种工作模式,操作简单、灵活,可以适应各种规模、速度和连接通路情况的互联网环境。另外,NTP采用无连接的UDP协议,网络开销少,并且支持MD5加密等保证网络安全的应对措施。这些措施的采用使NTP可以在互联网上获取可靠和精确的时间同步,并使NTP成为一种公认的网络时间同步工具。在通常环境下,NTP提供的时间精度为毫秒级。如果采用专用的NTP时间服务器,同步精度则更高。
[0003] 随着计算机网络的迅猛发展,人们对计算机网络日益依赖,几乎所有的业务都通过计算机来实现。然而,计算机本身的时间准确度并不高且走时不准,经常造成依赖时间的业务无法正常完成,此时的计算机时间同步就显得尤为重要。对时间精度要求比较高的系统,比如军事指挥、调度系统,金融行业的时间戳服务器,电信网管、计费系统、分布式数据库服务器,铁路调度系统等,都需要局域网时间同步。局域网内计算机时间同步系统日益成为当今网络环境下的一个必不可少的组成部分。
[0004] 一些常用的操作系统都支持NTP校时功能,如Windows、Linux。Linux系统下的NTP校时功能相对比较完善,而Windows系统下的NTP校时功能则比较简单,一般都是通过第三方软件来实现。常用的第三方NTP客户端软件,大多功能不完善且无一例外都不支持监控功能,不利于组网应用和统一的监控管理。基于以上原因,本发明开发了具有自主知识产权的基于Windows系统的NTP客户端软件WSNTP以及相应的监控软件WSNTP monitor,提出了客户端软件的监控方案,设计了监控帧格式以及通信协议,应用本发明可实现局域网内计算机时间的同步及远程监控系统。WSNTP软件实现计算机时间的同步和辅助监控功能,WSNTP monitor软件实现客户端软件监控及管理功能,二者通过专用协议通信,采用专有的监控帧格式,共同构成了一个时间同步及智能监控系统。本发明可用于电信、金融、电力、政府、企业、学校、网吧等内部计算机时间的同步和统一监控管理。应用本发明有利于减轻维护人员负担,便于及时发现问题和集中管理,从而提高工作效率。

发明内容

[0005] 本发明所要解决的技术问题是,提供一种能够准确、实时的对网络内计算机时钟信息进行监控的方法。
[0006] 本发明解决所述技术问题采用的技术方案是,一种基于NTP协议的计算机时间同步及监控方法,其特征在于,包括下述步骤:
[0007] A、客户端采用NTP协议将本地计算机时间同步到指定时间参考源;
[0008] B、监控端建立客户端列表,客户端建立监控端列表,客户端列表和监控端列表都包含IP地址信息;
[0009] C、监控端向客户端列表中的各个客户端定期发送握手帧,客户端收到后回复响应帧,建立连接;
[0010] D、客户端主动定期向监控端列表内的监控端上报监控帧,监控端被动接收监控帧;
[0011] E、如果客户端在预定时间内没有收到来自某一监控端的握手帧,则停止向该监控端上报监控帧,并更新存储在客户端的监控端列表;如果监控端在预定时间内没有收到来自某一客户端的握手响应帧,则给出报警提示。
[0012] 所述监控帧包含下述内容:
[0013] frameType:帧类型,用于区分性能监控帧、故障监控帧、握手帧;
[0014] messageType:信息类型,用于区分监控信息、握手请求信息、握手响应信息;
[0015] mode:客户端工作模式,用于区分客户端/服务器模式、广播模式、多播模式、主动对等体模式;帧类型为握手帧或故障监控帧时该域忽略;
[0016] messageLength:帧长度,单位为字节,十六进制数表示;
[0017] clientIP:客户端IP地址,共4个字节,十六进制数表示,高位在前,低位在后,帧类型为握手帧或故障监控帧时该域忽略;
[0018] serverIP:时间源IP地址,共4个字节,十六进制数表示,帧类型为握手帧或故障监控帧时该域忽略;
[0019] precision:时间偏差或校正值,帧类型为握手帧或故障监控帧时该域忽略;
[0020] sequenceId:序列号,该域值为监控帧的序列号,0~0xffff循环;
[0021] timestamp:时间戳,含义同NTP协议,帧类型为性能监控帧时,该时间戳表示时间偏差域对应的较正时间,帧类型为故障监控帧时,该时间戳表示告警时间;
[0022] alarm:客户端软件告警编码,用于区分不告警、参考源告警、所有参考源告警、本机时间失步,帧类型为握手帧时该域忽略;
[0023] 其中,mode、clientIP、serverIP、timestamp域属于功能监控;precision域属于性能监控;alarm域属于故障监控。
[0024] 监控帧包括性能监控帧和故障监控帧,性能、故障监控帧以及握手帧格式兼容,性能监控帧定时上报,故障监控帧除了定时上报外还需要在告警状态发生变化时立即上报。
[0025] 本发明的有益效果是,本发明采用点对点单播协商通信方式、基于UDP/IP协议完成,占用带宽少,监控组网应用灵活,本发明可以实现多个监控端和多个客户端之间的多种灵活的监控模式,可实现同步、分区、交叉、混合监控方式。

附图说明

[0026] 图1是NTP时间同步原理示意图。
[0027] 图2是通信协议示意图。
[0028] 图3是监控帧格式。
[0029] 图4是监控组网示意图。
[0030] 图5~8是监控方式示意图。其中,图5为同步监控,图6为分区监控,图7为交叉监控,图8为混合监控。
[0031] 图9是WSNTP软件校时性能曲线图。
[0032] 图10是滤波前后的时间偏差值测试图。
[0033] 图11是WSNTP monitor软件监控数据曲线。

具体实施方式

[0034] 参见图1。
[0035] NTP有四种工作模式,分别为客户端/服务器模式、广播模式、多播模式和对等体模式。时间同步基本原理可参考客户端/服务器模式。如图1所示,t1表示client发出NTP申请包的时间戳,t2表示server收到NTP申请包的时间戳,t3表示server发送NTP响应包的时间戳,t4表示client收到NTP响应包的时间戳。其中,t1~t3都在NTP响应包中,t4由client在本地产生。假设往返线路时延对称,则平均线路时延及时间偏差可用以下公式表示。
[0036] 平均线路时延:D/2=((t2-t1)+(t4-t3))/2。
[0037] 时间偏差:offset=((t2-t1)+(t3-t4))/2。
[0038] 本发明的WSNTP软件作为NTP客户端安装在本地计算机中,WSNTP软件和NTP服务器通信并较准本地计算机时间,使本地计算机时间和服务器时间同步。NTP服务器可采用专用的时间服务器或公用服务器。
[0039] 参见图2。
[0040] 本发明采用独立开发的通信协议,点对点单播协商机制。作为监控端,WSNTP monitor软件为通信的发起方,主动定期发送握手帧(握手帧格式见图3)。
[0041] 作为客户端,WSNTP软件接收并响应握手帧。握手通信成功后,则认为连接建立。连接建立后,WSNTP软件主动定期上报监控帧,WSNTP monitor软件被动接收监控帧。握手帧周期为10秒,监控帧上报周期为100秒。WSNTP软件如果连续3个周期没有收到握手帧,则认为通信告警,此时停止上报监控帧并更新监控列表。WSNTP monitor软件如果连续3个周期没收到握手响应帧,则认为通信告警,此时会给出告警提示。
[0042] WSNTP monitor软件可以整网段搜索网络中的WSNTP软件,通过扫描发送握手帧来实现客户端的搜索功能。WSNTP monitor软件收到握手响应帧后,则认为搜索成功,否则搜索失败。搜索完毕后,可以将搜索结果(IP地址)手动添加到监控列表。另外,也可以不用搜索,手动直接将需要监控的客户端IP地址添加到监控列表。WSNTP软件通过收到的握手帧来获得监控端的IP地址并在本地维护一个监控端IP列表,根据通信告警信息会及时更新IP列表,定期向监控端IP地址发送监控帧。
[0043] 参见图3。
[0044] 本发明采用专有的监控帧格式,帧长为30个字节,性能监控帧、故障监控帧、握手帧格式兼容,方便解码和维护操作。监控内容丰富,涉及到了功能、性能以及故障等方面,充分考虑了组网管理的需要。其中故障监控可以实时监控计算机时间失步告警、计算机校时软件(WSNTP)告警、校时值超门限告警等。计算机自由运行(未校准)时间超过一定门限后,即认为计算机时间失步告警,该告警主要是为了提醒用户及时校准计算机时间。故障监控帧除了定时上报外还需要在告警状态发生变化时立即上报,确保告警时可及时上报和声光报警。
[0045] 监控帧格式说明如下:
[0046] frameType(2bytes),帧类型。
[0047] 0xF8F8表示性能监控帧;
[0048] 0xF6F6表示故障监控帧;
[0049] 0xFFFF表示握手帧。
[0050] messageType(1byte),信息类型。
[0051] 0x00表示监控信息;
[0052] 0x01表示握手请求信息;
[0053] 0x02表示握手响应信息。
[0054] mode(4bits),客户端工作模式,BCD码表示。帧类型为握手信息或故障监控帧时该域忽略。
[0055] 1:客户端/服务器模式;
[0056] 2:广播模式;
[0057] 3:多播模式;
[0058] 4:主动对等体模式。
[0059] md5(4bits),客户端软件md5加密选项,BCD码表示。
[0060] 1:加密;
[0061] 0:未加密。
[0062] messageLength(1byte),帧长度,单位为字节,十六进制数表示。监控帧长固定为30(0x1E)。
[0063] clientIP(4bytes),客户端IP地址,共4个字节,十六进制数表示,高位在前,低位在后。帧类型为握手信息或故障监控帧时该域忽略。
[0064] serverIP(4bytes),时间参考源IP地址,共4个字节,十六进制数表示。帧类型为握手信息或故障监控帧时该域忽略。
[0065] precision(4bytes),时间偏差(较正值),4个字节,单位为秒,以2的幂次方表示,此处传送n值,n值为有符号数。32位数据高位在前,低位在后。最高比特位为符号位,1:负,0:正。低31位为数据。帧类型为握手信息或故障监控帧时该域忽略。
[0066] sequenceId(2bytes),序列号,2个字节,十六进制数表示。该域值为监控帧的序列号,0~0xffff循环。
[0067] timestamp(4bytes),时间戳,4个字节,32位整数秒,含义同NTP协议。
[0068] 帧类型为性能监控帧时,该时间戳表示时间偏差域(precision)对应的较正时间。帧类型为故障监控帧时,该时间戳表示告警时间。
[0069] version(2bytes),客户端软件版本号,2个字节BCD码表示。
[0070] alarm(1byte),客户端软件告警编码,1个字节,十六进制数表示。帧类型为握手帧时该域值可忽略。
[0071] 0x00:不告警;
[0072] 0x01:参考源告警;
[0073] 0x02:所有参考源告警;
[0074] 0x03:本机时间失步;
[0075] reserved(4bytes),保留字节。
[0076] 参见图4,图5。
[0077] 图4为本发明所述系统组网示意图。局域网内的计算机利用WSNTP软件可以使本机时间同步到同一个专用时间服务器,从而实现全网计算机时间的准同步。监控终端计算机利用WSNTP monitor软件和运行在被监控计算机中的WSNTP软件通信、交互数据,采用专用通信协议及数据帧格式,实现对局域网内计算机时间及校时情况的远程、实时监控。
[0078] 图5~8为监控方式示意图。WSNTP、WSNTP monitor软件可同时在一台计算机中运行,WSNTP软件设计支持多个监控端,WSNTP monitor软件可同时监控几百个客户端,这些功能特点使得监控组网方式更加灵活、多样,可实现同步、分区、交叉、混合监控。同步监控,顾名思义是指多个监控端同时监控相同的客户端,此种方式可进一步提高监控的可靠性,相当于监控备份。分区监控,是指不同的监控端负责监控不同区域的客户端,此种方式分工明确、结构简单。交叉监控,是指不同监控端负责监控的客户端有重叠、交叉,此种方式可用于对重点客户端的监控,提高对重点客户端监控的可靠性。混合监控可以看作是交叉监控方式的一种,此种方式下的监控端可以监控其他客户端,也可以作为客户端被其他监控端监控。
[0079] 参见图9、图10。
[0080] 如图所示,可以实时显示时间偏差值(校时值)、线路时延值以及数据点的详细信息。WSNTP软件采用特有的时间调整、滤波算法,校时精度为毫秒级,满足大多数应用对时间精度的要求。本发明中的特有时间偏差滤波算法可滤除大部分时间跳变,实测结果表明,可进一步提高校时精度。图10为滤波前后的时间偏差值,从图中可以看到,滤波后的时间偏差值抖动大大减小。
[0081] 图11为WSNTP monitor软件的监控数据曲线。WSNTP monitor监控软件最多可集中显示5个被监控计算机的校时偏差值及数据点详细信息,便于维护人员进行数据比对和分析。支持告警保存、查询、排序、声光报警等功能,有利于维护人员的操作和故障定位。