专利名称:一种自适应时钟同步系统的制作方法
技术领域:
本发明涉及通信技术领域,特别是涉及ー种自适应时钟同步系统。
背景技术:
随着时代的发展和社会的进步,以及计算机和通信网络的普及,信息技术和网络技术也越来越广泛的应用到各个领域,其中许多应用都需要高精度、高可靠性的时间同歩。然而,在实际应用中,计算机的时钟工作太不稳定,容易受到温度、电源等外界环境的影响。计算机时钟由软件时钟和硬件时钟组成,由于时钟本身物理性能和外界因素影响,两种时钟的守时性能都无法满足需求。但,随着计算机和网络技术的迅猛发展,网络互连系统上的时间敏感性应用也越来越多;例如电话计费、航海定位、分布式数据库处理、电子商务、网 络传感器、エ业控制系统等多方面,涉及各个领域的应用,都与网络中各个节点之间时间同步的精确度密切相关。但是由于网络中各个计算机都在其固有的晶振频率下进行计吋,即使初试时间设置相同,由于各晶振的特性不同,也会随着时间的推移而相互之间失去同歩。因此,对于网络上的许多应用来说,将网络中各个计算机的时间同步到ー个统ー的标准是至关重要的。网络时间协议(NTP, Network Time Protocol)的出现能够很好的解决这一问题。NTP能调整时间抖动率,建立ー个即时缓和、调整时间变化,并用一群受托服务器提供准确、稳定时间的时间管理。目前,对于基于NTP协议的时钟同步的研究已有不少,但大部分是理论上的研究探索与改进,真正应用于实践,并且经历过实践检验的技术产品并不多。市场上已经出现的一些时钟同步产品也大多数是应用于局域网这些小規模的网络环境之下,这些产品的开发技术各异,时间同步精度不尽相同。目前适合大規模分布式网络应用的时钟同步技术产品欠缺,然而随着企事业单位网络规模的扩大,随着网络技术的发展及高速宽带的出现,对于适应于大規模网络时钟同步的技术产品需求日益増加。同时,随着网络安全事件的频繁发生,网络系统的安全性问题越来越受到人们的关注,如何确保时钟同步系统的安全性也是目前需要解决的问题。目前的时钟同步产品普遍存在精度较低、健壮性较差、可拓展性不足、自动化程度较低、安全性不足、可应用网络规模小等缺陷。
发明内容
本发明要解决的技术问题是提出了一种基于NTP协议的适用于大規模分布式网络并且具有一定自适应性能力的时钟同步系统,并且该系统在封闭的网络环境下开发运行,具有很好的安全性,因此有效的解决了以上难题,实现了对于大規模分布式网络应用的高精度、高健壮性、高自动化、高安全性的时钟同歩。为解决上述技术问题,一方面,本发明提供一种自适应时钟同步系统,所述系统包括
主服务层,包括一台或多台主时间服务器,其中,主时间服务器外接原子钟;ニ级服务层,包括多台ニ级时间服务器,一部分ニ级时间服务器与主时间服务器进行时间同步,另一部分ニ级时间服务器相互之间进行时间同歩;客户层,包括若干終端,終端向ニ级时间服务器发出时间同步请求,进行时间同
止/J/ O进ー步,主时间服务器、ニ级时间服务器和終端上设置有时间控制模块,用于获取的UTC时间,对各終端进行时间同步;负责在ニ级时间服务器和终端收发时间信号请求和应答,完成数据包的传送功能,以及根据获取的标准时间来修改本机硬件时钟。进ー步,主时间服务器、ニ级时间服务器和終端上设置有时区控制模块,用于在ニ级时间服务器和客户端收发同步时区信息请求和应答,将主时间服务器的时区信息发送给ニ级时间服务器及所有終端,使其提取时区信息,从而修改本机的时区配置。 进ー步,主时间服务器、ニ级时间服务器和終端上设置有自动配置模块,用于当基准时间源发生故障吋,自动寻找时间源,进行时间同歩。进ー步,主时间服务器和ニ级时间服务器上设置有偏差监测服务器子模块,終端上设置有偏差监测终端子模块;其中,偏差监测服务器子模块用于根据定期监测或临时监测的要求,检测ー个或多个终端同步偏差結果,并将结果写入数据库中,以跟踪和记录时钟同步子系统运行状况;偏差监测终端子模块接受偏差监测服务器子模块发来的请求,将当前终端的时钟參数上传到偏差监测服务器模块。进ー步,主时间服务器还设置有报警模块,用于当终端时间与基准时间的偏差大于预先设定时间偏差阀值时,报警,并生成报警记录,以备查询。本发明有益效果如下本发明能够在基准时间源发生故障吋,自动寻找合适的时间源,以获取同步服务,使系统自动完成同步网的配置,使得时间同步网拥有足够的稳定性和健壮性,自适应能力強。同时,本发明所涉及的网络及设备属于封闭式开发,能够较好的防止外界的干扰和攻击,具有较好的安全性。本发明使用了分层级的体系结构,层次分明,布局清晰,具有较强的可扩展性,适应业务的增长。
图I是本发明实施例中一种自适应时钟同步系统的结构示意图。
具体实施例方式本发明提供了一种自适应时钟同步系统,以下结合附图以及实施例,对本发明进行进ー步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不限定本发明。本发明实施例涉及ー种自适应时钟同步系统,该系统总体结构上采用三层树状结构第一层为主服务层,包括一台或多台主时间服务器,其中,主时间服务器外接原子钟,其主要任务是提供參考时钟信号,处理ニ级时间服务器的时间同步请求,控制终端设备的时区同步,进行时间偏差监测,汇集监测结果,其中以原子钟和主时间服务器为核心。第二层为ニ级服务层,包括多台ニ级时间服务器,其主要任务是与主时间服务器进行时间同步服务,为客户层的終端设备提供时间同步服务,其中以ニ级时间服务器为核心。第三层为客户层,終端设备向ニ级时间服务器发出时间同步请求,是被服务的对象。主服务层外接參考时钟信号——原子钟,处理ニ级时间服务器的时间同步请求,控制终端设备的时区同步,进行时间偏差监测结果的汇总,及根据阈值报警。主服务层包含的模块有原子钟接□模块、时间控制模块、时区控制模块、监测控制模块、数据库模块、数据库日志访问接ロ模块、报警模块和监测界面模块。主服务层一般部署在多个主中心位置,为规避共模故障,如断电、地震等,主时间服务器和原子钟放置在不同的地理位置。图I中,将3台主时间服务器放置在不同位置的三个中心。同时,为了保证时间的精度,每台主时间服务器可外接原子钟。ニ级服务层,包干若干ニ级时间服务器,其中一些与主时间服务器进行时间同歩,ー些相互之间同步,为终端设备提供时间同步服务。在終端失去时间同步时,会自动进行时 间同步,为終端提供不间断的时间同步服务。ニ级时间服务器上含有自动配置模块,当本节点(ニ级时间服务器)失去时间源时启动该模块,使得设备构造请求包,在网内广播发送,寻找符合条件的时间源,在没有找到时间源之前,会降低频率调用本模块发送请求包,直到找到合适的时间源为止。某节点在发送了时间源请求包之后,就等待应答包的到来。如果顺利的话,通常会收到多个来自不同时间源的应答包;例如,来自主时间服务器发送的,也可能是其它ニ级时间服务器发送的。NTP协议要求每个节点至少应具有3个时间源,以保证时间同步的稳定性。因此,在收到应答之后,本节点就要从中选择数个节点来作为自己的时间源。选择时间源应遵循以下两个原则(I)所选择的时间源应该稳定、可靠;(2)时间源的层级应尽量接近本节点的“层级请求”。这两个原则都服务于上述的构建ー个稳定、准确的同步系统的目的。其中,以精度作为主要衡量原则。ニ级时间服务器的部署需要依据实际情况而定。可以參考现有的网络拓扑结构及节点的分布情况分阶段部署,然后根据网络承载容量做局部调整。ニ级时间服务器的部署需要依据实际情况而定,一般部署在多个分中心位置。基本原则是I)就近同步;2)目标系统要求时间精度较高的地方多部署;3)需要服务节点多的地方多部署;4)便于管理。因此,可在每个分中心部署一到两台ニ级时间服务器,其他ニ级时间服务器根据以上原则分阶段部署,然后再根据网络实际的负载容量做局部调整。总上分析,ニ级服务层包含有时间控制模块、时区控制模块、监测控制模块和自动配置模块。客户层向ニ级时间服务器发出时间同步请求,是被服务的对象,涵盖系统内所有节点及计划要扩充的节点。每个终端至少可以和一个ニ级时间服务器连通,終端可分布于全国范围内,如图I所示。客户层包含的模块有时间控制模块、时区控制模块、监测控制模块、自动配置模块。本实施例的自适应时钟同步系统进行时间同步的流程如下
首先,进行服务器端和客户端的安装配置工作,系统客户端可根据手工配置,从指定的ニ级时间服务器上获取准确的时间信息,并且可以手工设置系统时区信息。允许维护人员在系统中各节点的配置文件中设定,控制系统在指定的方式下运行。时间精度等级等參数可由维护人员自行设定。在主服务层,通过原子钟接ロ模块,将原子钟提供的基准时间信号引入本系统,产生本系统使用的UTC时间。具体需要根据最终确定的原子钟的型号来设计其与主时间服务器的接ロ。然后,主服务层主时间服务器解析命令行和配置文件,配置相应的系统运行參数。初始化网络设备和各数据结构;启动计时器,开始同步操作;根据定时器来调用发送和接收模块发送和接收数据包;监控同步源的情况,在同步源发生故障时负责启动自动配置模块;此外,还负责处理各种信号和错误信息,进行写日志等操作。
ニ级时间服务器之间、ニ级时间服务器与終端之间通过发送和接受时间信号来完成信息通信。信息发送程序构造请求或应答包,添入所需信息,向指定端(peer)发送该包,信息接收程序接收收到的NTP包,检查包的合法性。对合法包作相应的处理。系统接收到新的时间信息后,逐渐修改本地时钟。当ニ级服务层和客户层终端基准时间源发生故障时,相应的自动配置程序构造同步源请求包,填写请求条件、时钟精度要求等信息,向周围邻居发送该包。设置定时器,提供超时重发机制及状态转换机制。邻居节点接收到请求包后,检查自身是否能做同步源。若可以则发送应答包,否则向周围邻居转发该包。然后系统从发送回的应答中选择合适的同步源,从同步源列表中选择符合要求的节点作为自己新的同步源,建立同步连接,重新开始同步操作。请求包转发过程如下(I)把该请求包中的TTL值减一,如果已经为零,就丢弃该包,不再转发;否则继续。(2)循环遍历peer队列和client队列中的所有节点,根据以下策略来确定包转发的目标和范围a)变量定义SE:请求节点的层级期望;CS:本地节点的当前层级;PS:欲发往的peer当前层级;TTLC:包当前所余的生存期;b)转发策略如果CS〈SE_3,则只向PS>CS的节点转发请求包;如果PS-TTLOSE,则只向PS〈CS的节点转发请求包;否则,就向所有邻居节点转发请求包。(3)返回。某节点在发送了时间源请求包之后,就等待应答包的到来。如果顺利的话,通常会收到多个来自不同时间源的应答包。NTP协议要求每个节点至少应具有3个时间源,以保证时间同步的稳定性。因此,在收到应答之后,本节点就要从中选择数个节点来作为自己的时间源。选择时间源应遵循以下两个原则(1)所选择的时间源应该稳定、可靠;(2)时间源的层级应尽量接近本节点的“层级请求”。这两个原则都服务于上述的构建ー个稳定、准确的同步网的目的。上述的两个选择时间源的原则有时会发生冲突,比如可能会出现以下两种情况层级接近要求的节点稳定性差,或是稳定性好的节点层级又离要求较远。为解决这ー问题,可对时间源的层级与本节点“层级请求”的差值指定一个阈值T,当层级差小于T时,可以忽略精度上的差別,而以稳定性作为主要衡量原则;当层级差大于T时,不能忽略精度差別,因此以精度作为主要衡量原则。算法思路如下遍历缓存队列中的应答包,计算其层级与本节点“层级请 求”的差值t ;Ct= “层级请求”-时间源层级);先处理t彡T的节点;对这些节点,优先选择稳定性高的节点作为时间源;如果时间源的个数不够的情况下,再处理t>T的节点。对这些节点,则优先选择t小(即层级差小)的节点作为时间源。时钟同步系统的日常监测记录,可以由管理员每天在合适的时候开启,将系统内所有节点的运行情况记录到数据库中,以备日后的查询。当需要监测的ニ级时间服务器超过一台吋,将它们的IP地址导入到IP列表文件。各模块实现的功能如下原子钟接ロ模块,提供接收准确和精确的UTC (Coordinated Universal Time,协调世界吋)时间的接ロ,其任务是将原子钟提供的基准时间信号引入本系统,产生本系统使用的UTC时间。根据最终确定的原子钟的型号设计其与主时间服务器的接ロ。时间控制模块,能够根据手工设定或自动获取的UTC时间(由主时间服务器提供),对各终端进行时间同歩。时间控制模块负责在ニ级时间服务器和客户端收发时间信号请求和应答,完成数据包的传送功能。客户端提取时间信号加以处理,从而获取标准时间来修改本机硬件时钟。运行在主时间服务器、ニ级时间服务器和終端上。本模块分为linux、windows、sco-unix 三神版本。I)输入同步源的时间戳序列。2)输出已同步的本地时钟。具体包括以下主要功能(I)监听客户端(终端)的请求,收到请求之后向客户端发送时间信号应答,同时也包含网络延时等信息;(2)向ニ级时间服务器发送时间信号请求,同时也包含网络延时等信息;(3)处理接收到的时间信号,根据数据包中的数据计算网络延时等影响时间精度的数值,以修正时间信号的传送误差;(4)修改本地硬件时钟(直接修改或逐渐修改);(5)維持与ニ级时间服务器的逻辑连接以及与对等ニ级时间服务器的逻辑连接,并将该连接信息写入日志文件;(6)对于基准时间源,通过调用原子钟接ロ模块,还应能从參考时钟取得标准时间来修改本地时钟。时区控制模块,负责在ニ级时间服务器和客户端收发同步时区信息请求和应答,将主时间服务器的时区信息发送给ニ级时间服务器及所有終端,使他们提取时区信息,从而修改本机的时区配置。将调整过程记入数据库。运行在主时间服务器、ニ级时间服务器和终端上。本模块分为linux、windows、sco-unix三种版本。时区控制模块服务器子模块I)输入人工设定的系统时区信息。2)输出时区调整指令报文。时区控制模块客户端子模块I)输入接受的调整指令报文。
2)输出本地已调整的时区。具体包括以下主要功能(I)修改时区配置文件使其与主时间服务器的时区信息相同。(2)修改时钟信息使其与时区配置文件中的配置一致。(3)记录终端原来的时区信息,返回给主时间服务器。自动配置模块,当基准时间源发生故障吋,能够在无需添加任何额外配置的情况下自动寻找合适的时间源,以获取同步服务,从而确保不间断提供UTC时间。I)输入轮巡检测的自动配置状态。2)输出新的同步源IP。监测控制模块,包括偏差监测终端子模块和偏差监测服务器子模块。偏差监测服务器子模块运行于主时间服务器和ニ级时间服务器上。偏差监测终端子模块运行于终端上,如用户主机或数据库服务器等。偏差监测终端子模块分为linux、windows、sco-unix三种版本。其中,偏差监测服务器子模块的功能是按用户的定期监测或临时监测要求,检测ー个或多个终端同步偏差結果,并将结果写入数据库中,以跟踪和记录时钟同步子系统运行状况。I)输入监测终端IP地址列表,监测频率。2)输出被监测终端IP的当前时间偏差均值。偏差监测终端子模块接受偏差监测服务器子模块发来的请求,将当前终端的时钟參数上传到偏差监测服务器模块。I)输入接受的偏差监测请求。2)输出当前时间。数据库模块,功能是维护数据库软件(版本为Oracle Si)自身的操作,存储系统所需的所有表单和数据;由Oracle数据库系统提供。I)输入本系统需要存储的各种数据。2)输出无。数据库日志访问接ロ模块,功能是为访问数据库中的日志提供接ロ。I)输入内存数据(写操作)/库表数据(读操作)。2)输出库表数据(写操作)/内存数据(读操作)。报警模块,功能是设定时间偏差阀值,如果各节点(終端)时间与基准时间的偏差大于阀值,系统能够报警(比如在界面提示并加提示音),并生成报警记录,以备查询。
I)输入人工设定的偏差阀值參数。2)输出报警声音提不。监测界面模块,定期检测主业务进程是否在主机上存在,若非,自动重启指定的主业务进程。I)输入轮巡检测的主业务进程状态。2)输出重启操作的异常信息。本发明加入了时间偏差监测界面模块,便于系统的维护和管理。由上述实施例可以看出,本发明在ニ级服务层和客户层具有自动配置模块,该模块当基准时间源发生故障吋,能够在无需添加任何额外配置的情况下自动寻找合适的时间 源,以获取同步服务。当节点失去时间源时启动该模块,使得设备构造请求包,在本局域网内广播发送,寻找符合条件的时间源,从而确保不间断提供UTC时间。该机制能够在同步网发生故障时,使系统自动重新完成同步网的配置,使得时间同步网拥有足够的稳定性和健壮性,自适应能力強。同时,本发明所涉及的网络及设备,均位于该系统内部,属于封闭式开发,能够较好的防止外界的干扰和攻击,具有较好的安全性。本发明使用了分层级的体系结构,即主服务层、ニ级服务层和客户层。该结构对于大規模分布式网络来说,层次分明,布局清晰,能够很好的将分布于较远距离的数量巨大的客户端系统,井井有条的连接起来,并且方便客户节点的増加,利于网络的扩展,具有较强的可扩展性,适应业务的增长。该系统可同步的节点数量不低于50000个,地理位置可遍及全国。本发明具有较好的可操作性。系统客户端可根据手工配置,从指定的时间服务器上获取准确的时间信息,并且可以手工设置系统时区信息。允许维护人员在系统中各节点的配置文件中设定,控制系统在指定的方式下运行。时间精度等级等參数可由维护人员自行设定。该系统中时间控制模块、时区控制模块、监测控制模块等在ニ级时间服务器和客户层节点运行的模块均分为linux、windows、sco-unix三种版本。故该发明不依赖于操作系统的类型和版本。本发明具有的偏差监测服务器模块能够按用户的定期监测或临时监测要求,检测ー个或多个终端同步偏差結果,并根据要求,调用相应的模块,将结果写入数据库中,以跟踪和记录时钟同步子系统运行状况。同时报警模块在各节点时间与基准时间的偏差大于阀值时,能够报警(比如在界面提示并加提示音),并生成报警记录,以备查询。这几项技术使得本发明具备很好的可靠性,能及时发现时钟同步中的错误,并及时更正。本发明通过以上保证措施,具备较好的自适应性,同时充分发挥NTP协议的优势,并且考虑到并设法解决了网络时延对时间精度的影响,使得本发明在时间同步的精确度上有较高水平。尽管为示例目的,已经公开了本发明的优选实施例,本领域的技术人员将意识到各种改进、増加和取代也是可能的,因此,本发明的范围应当不限于上述实施例。
权利要求
1.一种自适应时钟同步系统,其特征在于,所述系统包括 主服务层,包括一台或多台主时间服务器,其中,主时间服务器外接原子钟; 二级服务层,包括多台二级时间服务器,一部分二级时间服务器与主时间服务器进行时间同步,另一部分二级时间服务器相互之间进行时间同步; 客户层,包括若干终端,终端向二级时间服务器发出时间同步请求,进行时间同步。
2.如权利要求I所述的自适应时钟同步系统,其特征在于,主时间服务器、二级时间服务器和终端上设置有时间控制模块,用于获取的UTC时间,对各终端进行时间同步;负责在二级时间服务器和终端收发时间信号请求和应答,完成数据包的传送功能,以及根据获取的标准时间来修改本机硬件时钟。
3.如权利要求2所述的自适应时钟同步系统,其特征在于,主时间服务器、二级时间服务器和终端上设置有时区控制模块,用于在二级时间服务器和客户端收发同步时区信息请求和应答,将主时间服务器的时区信息发送给二级时间服务器及所有终端,使其提取时区信息,从而修改本机的时区配置。
4.如权利要求广3所述的自适应时钟同步系统,其特征在于,主时间服务器、二级时间服务器和终端上设置有自动配置模块,用于当基准时间源发生故障时,自动寻找时间源,进行时间同步。
5.如权利要求4所述的自适应时钟同步系统,其特征在于,主时间服务器和二级时间服务器上设置有偏差监测服务器子模块,终端上设置有偏差监测终端子模块;其中,偏差监测服务器子模块用于根据定期监测或临时监测的要求,检测一个或多个终端同步偏差结果,并将结果写入数据库中,以跟踪和记录时钟同步子系统运行状况;偏差监测终端子模块接受偏差监测服务器子模块发来的请求,将当前终端的时钟参数上传到偏差监测服务器模块。
6.如权利要求5所述的自适应时钟同步系统,其特征在于,主时间服务器还设置有报警模块,用于当终端时间与基准时间的偏差大于预先设定时间偏差阀值时,报警,并生成报警记录,以备查询。
全文摘要
本发明公开了一种自适应时钟同步系统,包括主服务层,包括一台或多台主时间服务器,其中,主时间服务器外接原子钟;二级服务层,包括多台二级时间服务器,一部分二级时间服务器与主时间服务器进行时间同步,另一部分二级时间服务器相互之间进行时间同步;客户层,包括若干终端,终端向二级时间服务器发出时间同步请求,进行时间同步。本发明能够在基准时间源发生故障时,自动寻找合适的时间源,使系统自动完成同步网的配置,使得时间同步网拥有足够的稳定性和健壮性,自适应能力强;同时,具有较好的安全性。本发明使用了分层级的体系结构,层次分明,布局清晰,具有较强的可扩展性,适应业务的增长。
文档编号H04J3/06GK102684808SQ20121018362
公开日2012年9月19日 申请日期2012年6月6日 优先权日2012年6月6日
发明者何慧, 余翔湛, 刘建华, 叶建伟, 张伟哲, 张宏莉, 张旭, 牛通, 王佰玲, 田志宏, 韩笑 申请人:哈尔滨工业大学