基于ORBUS时间系统的网络时间同步
2016-07-18丁永红
丁永红
(淮南联合大学,安徽 淮南 232001)
基于ORBUS时间系统的网络时间同步
丁永红
(淮南联合大学,安徽淮南232001)
摘要:时间同步在分布式计算机中起了很大的作用,分布式中计算机对计算机的可靠性与精确性要求很高。关于NTP/SNTP协议是基于ORBUS时间系统的,它是一种在网络时间上同步的组织方式。这种协议可以使得跨网段时间同步节点数降低,而且也可以减少网络方面的开支等等,本论文对NTP网络时间同步系统进行了详细的分析,研究的NTP协议可以应用于繁琐分布式网络,相比于其他的协议,NTP协议的这种同步方式要在网络时间同步中的应用需要在精度、稳定性方面加以提高。NTP/SNTP协议本身具备的网络时间同步组织方式在分布式网络中有着很好的适用性。
关键词:网络时间同步;ORBUS时间系统;NTP/SNTP协议
当今社会,Internet的发展与日俱增,Internet的应用范围已经波及到了许多的领域,Internet在广域网、局域网方面的应用满足了这一领域的市场需求。在这个环境背景下,分布式的发展就不得不加以重视了,计算机工作的完成,需要加强准备工作与任务安排,同时在可靠性方面加以提高,在效率方面加以完善。对计算机高可靠性和高效率方面的要求需要一些关键的技术,其中最基本的技术就是时间上同步的技术,应用时间同步技术的领域包括航空管理系统、核能发电系统等,它们对精确度与可靠度的要求很高,因为一个很小的错误会导致严重的后果,必须认真对待,而且精确度与可靠性还体现在软件开发以及电子商务等方面。但是现实与理想总是有差别的,计算机的时钟工作是会因外部环境改变而变化的,比如温度、电源这些客观因素会导致时钟运行不稳定,所以要想实现时钟同步不是很容易。
许多时间同步软、硬件都依赖于系统平台,扩展性差导致很难在异构的环境下融合进去,所以时间同步利用中间件技术可以很好的满足这种情况。中间件技术CORBA会给出一些必要的关于时间服务的接口,ORBUS时间系统的优点在于可以把时间精确到毫秒级,可以满足小型局域网对时间方面精确度的要求。想要对系统进行改进,可以在精度与稳定性方面着手,从而扩大适用范围,比如可以应用到广域网上去。
网络时间协议是基于UDP的一种协议,端口号是123,而且也是经过了网络上同步的计算机时间协议,该协议采用的思想也是分层思想,时间上同步的精确度主要是基于时钟源硬件上的精确度与网络传输过程中的延迟。NTP协议一共有五个版本的,分别是V0/V1/V2/V3/V4。现今V3/V4是用的比较多的版本。在不同情况下,使用哪个版本都是有规定的。在原理上,NTP时钟同步包括频率上的同步与时间上的同步。频率上的同步是使得各自的频率相同,而相位上没要求相同;对应的,时间同步是指绝对的时间是相同的,时钟的同步技术做到了从脉模式、PTP模式等。NTP是1985年由美国的David l.Mills教授发明的,是一种用来保证计算机在时间上实现同步的协议,用在分布式的服务器与客户机上。
实现网络时间同步的技术是来自1981年的Internet时钟服务,这个Internet时钟服务用ICMP协议中的时间戳与时间戳的响应消息来实现主机间的时间查询与时钟同步,而且这个服务另外还使用到了GGP协议,就是所谓的网关至网关协议。NTP是应用层上的Internet标准协议,是位于IP协议与UDP协议上面的协议,网络时间协议的优势在于时间精确度高,并且广泛应用到多个领域中。
一、相关技术
时间同步服务器是针对自动化系统中的计算机、控制装置等进行校时的高科技产品,时间同步服务器从GPS卫星上获取标准的时间信号,将这些信息通过各种接口类型来传输给自动化系统中需要时间信息的设备(计算机、保护装置、故障录波器、事件顺序记录装置、安全自动装置、远动RTU),这样就可以达到整个系统的时间同步。时间同步服务器采用SMT表面贴装技术生产,大规模集成电路设计,以高速芯片进行控制,具有精度高、稳定性好、功能强、无积累误差、不受地域气候等环境条件限制、性价比高、操作简单等特点,全自动智能化运行、免操作维护、适合无人值守的领域,广泛应用于电力、金融、通信、交通、广电、石化、冶金、国防、教育、IT、公共服务设施等各个领域。时间同步技术由两部分组成,就是逻辑上的时钟同步和物理上的时钟同步。物理上的时钟同步又可以细分成分布式系统中的分布式算法与集中式算法。集中式算法普遍应用Cristian算法与Berkeley算法,而分布式算法普遍应用平均值算法、SNTP、NTP等等。网络时间协议(NTP)和简单网络时间协议(SNTP)随着当今信息技术的突飞猛进,已逐渐成为了Internet标准协议中重要的一个,不断适用多个领域。
关于NTP时间同步方面的问题,至今为止,有很多时间同步技术来解决。这些技术彼此间都有着他们本身的特性,而且时间同步技术之间在时间精确度方面也有区别,常见的技术主要有:
1.长短波授时时间同步技术
通过使用无线电信号授时历经了80多年,纵观国内外,国外有长波授时的罗兰-C系统,国内在这方面的技术也有发展,大多数用于军事和导航方面。
2.电话拨号时间同步技术
电话拨号授时简称为ACTS,其所需要的设备很少,主要是模拟调制解调器、客户端软件、电话线、PC等等。通常这种情况是比较适合用家庭个人计算机的,但是实时性不满足。
3.GPS时间同步技术
时间同步技术已经有了一定的发展历史,而且这方面的研究比较多,国际上用的比较多的是来自美国的GPS与来自前苏联的GLANASS系统以及来自我国的“北斗”系统。GLANASS系统的适用性不高,主要是因为数量上的限制,以及在稳定性与可靠性方面达不到要求,而“北斗”系统适时覆盖这方面也很难达到要求,所以相比较下GPS的适用性比较强。
4.互联网时间同步技术
互联网上实现时间同步是一件很方便的事情,而且这种方式普遍应用于局域网中,同时微软公司把NTP应用到了Windows XP系统中去,一旦计算机联网可以计算了,那么局域网、广域网上的时间校准也可以计算出来。NTP协议用到的是RFC1350标准,而简化的网络时间协议(SNTP)则是用到了RFC1769标准。在 NTP协议中会有一个64位的时间戳,时间分辨率可以达到200ps,时间精确度上可以达到1-50ms。然而事实证明互联网时间同步技术在国际上的时间精确度是几百甚至秒级的标准。同时对于Time协议(RFC868)和Daytime协议(RFC867)时间校准度是1s。
二、NTP/SNTP协议的工作原理
在计算机的世界里,时间非常重要,例如火箭发射这种科研活动,对时间的统一性和准确性要求就非常高,是按照A这台计算机的时间,还是按照B这台计 算机的时间?NTP就是用来解决这个问题的,NTP(Network Time Protocol,网络时间协议)是用来使网络中的各个计算机时间同步的一种协议。它的用途是把计算机的时钟同步到世界协调时UTC,其精度在局域网内可达0.1ms,在互联网上绝大多数的地方其精度可以达到1-50ms。
NTP/SNTP是通过客户机服务器的形式来完成通信的,先是客户机把一个来自请求的数据包发送出去,服务器收到这个请求后就进行回应,发回一个数据包,这来回的两个数据包自身带着时间戳,客户机与服务器间的时间偏移量和网络延迟可以通过这4个时间戳计算。
通过图1中显示可以看出:把t1设为来自客户机发送给查询请求时的时间戳,t2设为服务器收到查询请求时的时问戳,t3为服务器回复时间信息时的时间戳,t4为客户机收到时间信息时的时间戳,可以得到信息在网络上的传输时间是(t4-t1)-(t3-t2),如果请求信息和回复信息这两者的网上传输时间是一样的,那么单程网络延迟就是等于:[(t4-t1)-(t3-t2)]/2,时间的偏移量是[(t2-t1)-(t4-t3)]/2。
NTP/SNTP的同步模型如图1:
图1 NIP/SNTP的同步模型
由上可知道,时间偏移量的计算是客户机利用t1,t2,t3,t4这四个变量求出的。NTP需要设计成适合任何客户端与服务器的,即使客户端与服务器之间性能的差异也很大,而且NTP也可以用在范围比较大的网络延迟与抖动方面上。NTP计算出最初的时间偏移量后,利用相关的算法与机制得到时间偏移量的最佳值来改变本地的时钟。
三、基于ORBUS时间系统的网络时间同步的设计与实现
分布式网络由多个较小的局域网络组成,好比属于Internet系列的有许多的子域,对于企业而言,通常其内部的网络是多个不同的部门组成的,而与此同时,部门内部的网络就组成了一个高速的局域网。鉴于网络处于不一样的环境下,基于ORBUS的时间系统对网络时间要求同步。NTP协议的分层思想主要是应用于规模较大的分布式网络中,把网络进行分层管理,其中的第一层主要是无线电时钟与UTC的同步,或者是收到的GPS秒脉冲与UTC的时间同步,其中第二层中有很多的时间上同步的服务器和第一层是同步的,第二层的存在给第三层提供了时间同步的服务冗余。第三层的时间服务器与很多的局域网都有联系。
四、网络中时间同步的NTP协议的实现
基于ORBUS时间系统NTP/SNTP的这种同步模型,实现同步的过程需要设置服务器端的时间戳,其中t2是用函数_ftime()来得到的,t3-t2是用函数QueryPerformance-Counter()得到的,得到了t3-t2的值,又知道了t2的值,那么很容易可以得到t3的值了,要想从继承信息中得到相应的统计信息与层次信息,可以在UTO对象中添加一个OR-BUS_set_str_tp_dp_ep()的方法,目的是为了用到t2与t3的时间。对于时间同步系统的这个设计,我们不需要了解底层的一些具体通信,只需要考虑到CORBA的可扩展性,本论文主要讲到的是ORBUS的时间同步系统是建立在原来的ORBUS的时间系统上的。
基于ORBUS的时间系统的NTP同步设计用到了NTP分层的思想,通过网络分成多个层,每一层之间都彼此有着联系,上一层为下一层服务,下一层向上一层提出请求服务,并且这两个进程之间是彼此分开的、独立的,继承的信息客户进程从上层那里得到信息与本层的信息,从而进行层与层之间的信息传递。在运行的时候,客户的进程就会发送请求,服务器的进程就会得到服务器的时间戳与另外一些继承之类的信息,然后客户进程就把需要更新的数据写到继承的信息里,从而实现本机在时间上的同步。基于NTP的同步实现模型如图2:
图2 基于NTP的同步实现模型
分布式的网络,基于ORBUS的NTP同步协议,其算法思想应用到了Cristian,通过时钟滤波的算法思想进行了动态网络延迟,可以降低网络上的误差,另外,通过时钟选择的算法与部分的时间服务器选择性的同步,实现网络方面的时间同步。
五、结语
本论文研究了移动智能设备上对时间的精确性需求,也分析了时间同步方法与协议的需求,把NTP协议作为底层上的时间同步协议,在整个系统的设计上提出了多层模块化设计,借此把业务层和表现层进行了分离。在系统的开发过程中,开发模式采用了跨编译环境,系统构建的过程中业务方面的代码复用性很高,这样可以利用起来进行表现层的定制,搭建出适应于各种智能终端的系统,从而实现时间同步,最后通过测试实验,可以得出了系统兼容性高、资源的运行占有率低的特性,另外还可以实现一些移动设备时间同步达到毫秒级精度的效果。
文章编号:2095-4654(2016)04-0017-03
收稿日期:2016-01-04
中图分类号:TP393
文献标识码:A