一、概述
时间统一对于一个信息系统来说无疑是非常重要的,如果计算机时钟不精确,那么应用将无法正常工作,因此考虑建设一个信息系统统一的时钟源,所有的计算机设备进行时钟同步是非常必要的,目前普遍采用gps时钟服务器实现时间统一。
二、时间基准的获取
2.1原子钟时间基准。
研究发现原子从一种能量状态到另一种能量状态所发射出的电磁波频率异常稳定,根据这一标准设计的原子钟精确度很高(误差为每天1×10-13s,也就是每30万差1s),而且能提供绝好的质量和长期的稳定性。因此,原子钟一直被用来测定标准时间,在距离测量、航空和军事等方面有着十分重要的用途,但费用非常昂贵。
2.2全球卫星定位系统(GPS)时间基准。
它可以提供精确的定位、定时和校频,GPS时间同步技术在国际时间频率的协调、新型时频计量传递系统建立、数字通信系统、电力和供电系统、铁路运输系统以及许多其他领域都有广泛的应用。每个GPS卫星上都装有铯子钟作星载钟,GPS接收机接收星载原子钟信号,因此频率准确度最高与星载原子钟相同,但由于星载原子钟受工作状态和环境的影响,目前频率准确度比地面最好的原子钟相差会低两个数量级。
采用GPS接收机就可以方便地获得UTC时间,是一种精度高、可靠性好、成本较低的时间同步技术。
三、时间信息的传播
目前铁道内部网已经建成,因此利用现有的铁路企业内部网来实现铁路信息系统的时钟同步是一种经济、有效、可行的时钟同步方案。
3.1网络延时与时钟偏差的测量原理
NTP(NetworkTimeProtocol)客户端发出时钟同步请求后,收到NTP服务器的相应,该相应中包涵4个时间信息。
(1)客户端发出请求时的时间戳(Timestamp)为T1T3-tT4clientd/2d/2T1+tT2T3server图1NTP协议网络延时与时钟偏差测量原理图T1(客户端的时间);
(2)NTP服务器收到请求的时间戳为T1(服务器端的时间);
(3)服务器发出相应请求时的时间戳为T3(服务器端的时间);
(4)客户端收到服务器相应的时间戳为T4(客户端的时间)。假设服务器和客户端之间的时间偏差为t,两者之间的往返时间为d,则d=(T2-T1)+(T4-T3)t=((T2-T1)-(T4-T3))/2可以看到,d、t只和T2与T1差值、T3与T4差值相关,而与T2、T3差值无关即最终的结果与服务器处理请求所需的时间无关。据此,客户端可通过T1、T2、T3、T4计算出时差并通过一系列算法来消除网络传输的不确定性的影响,然后调整本地时钟。
NTP要求的资源开销和通信带宽很小。NTP采用UDP协议,端口号设定为123。UDP占用很小的网络带宽,在众多客户机和少许服务器通信时有利于避免拥塞。NTP数据包的净长度在版本3下为64bit,版本4下为72bit,同步通信间隔在**的范围内变化(一般是64s到1024s),同步情况越好,间隔就越长。
SNTP(SimpleNetworkTimeProtocol)协议是NTP协议的一个子集,是一个简化了的NTP服务器和NTP客户端策略,当不须要实现NTP协议完全功能的情况下可以使用SNTP。因此SNTP协议更适用于使用个人计算机的UDP/TIME客户,建议SNTP仅使用在同步子网的末端。
采用NTP/SNTP协议不仅可以满足铁路信息系统对时钟精度的要求,而且对现有的数据网负荷不会有太大的影响(一般不超过总负荷的2%),同时安装使用或升级维护均很方便,是最佳选择方案。
三、时钟同步方案
针对目前铁路信息系统的现状,并综合考虑铁路信息系统对时钟精度的要求和接入成本,采用铁路信息系统时钟同步网络方案。
采用分层管理的类树形结构。网络中的节点有两种可能:时钟服务器(也称时钟源)或客户端。每一层上的时钟服务器或客户端可向本层或上一层的时钟服务器请求时间校正。
信息系统配置了两台GPS时钟服务器,分别是我公司生产的SYN2101型NTP网络时间服务器,接收gps卫星信号。时钟服务器采用标准的NTP协议,提供标准的接口供其他被同步的时钟服务器和客户端使用。因此,被同步的时钟服务器和客户端只需提供标准的NTP接口即可使用提供的NTP服务,从而达到时钟同步的目的。
二级NTP时钟服务器可以是已有的Windows2000服务器或UNIX服务器,甚至可以是能提供NTP时钟服务器功能的网络设备。一级时钟服务器从GPS接收机获得UTC(UniversalTimeCoordinated)的绝对时刻信息,一般采用gps时钟服务器,低级别的时钟服务器(铁路局、铁路分局)则通过基于TCP/IP的广域网从上级服务器获得UTC时间。
所有需要时钟同步的客户端计算机通过安装NTP的客户端程序从**的时钟服务器上获得UTC时间信息,校正本机的时间信息。
其时钟同步的工作过程如下:
(1)铁道部的GPS时钟服务器通过接收天线实时接收GPS系统发布的时钟信息,并更新GPS时钟服务器的本地时钟;
(2)GPS时钟服务器通过NTP协议向一台NTP时钟服务器传送时间信息,并更新该NTP时钟服务器的本地时钟;
(3)铁道部的另外一台NTP时钟服务器通过网络也和该NTP时钟服务器校时;
(4)铁道部机关网内的所有其它计算机以及14个铁路局的NTP时钟服务器则向铁道部的这两台NTP时钟服务器校时;
(5)铁路局机关网内的计算机以及所属铁路分局的NTP时钟服务器向本局的两台NTP时钟服务器校时;
(6)铁路分局机关网内的计算机(包括所属车站)向本分局的两台NTP时钟服务器校时。通过以上过程,使用全路统一的时钟源,实现了全路信息系统的时钟同步,为全路信息系统的正常运行提供了保证。
四、系统配置
铁路信息系统中广泛使用的是Unix和Windows两类操作系统,因此系统配置可以分为4种情况:(1)UnixNTP服务器配置;(2)WindowsNTP服务器配置;(3)UnixNTP客户端配置;(4)WindowsNTP客户端配置。
NTP服务器对于以其为时钟标准的客户端来说它是NTP服务器,但同时针对该服务器的上一级NTP服务器来说它又是客户端。
4.1UnixNTP服务器配置
UNIX系统提供了一个Xntpd的守护进程,该进程在后台运行就可以为以其为时钟标准的客户端提供时钟同步功能。
同时作为上一级NTP服务器的客户端,xntpd定时校验时钟和NTP服务器的时间。因为时钟会产生漂移,与实际的NTP时钟有差异。xntpd守护进程会周期性地发送一个NTP请求,并在必要的时候修正本地的时间,同时将时间差存到名为/etc/ntp.drift文件。默认的xntpd时间检查的间隔为64s,在第一次检查的时候,本地时钟和NTP服务器上时钟的差异会被记录下来,依靠这个时间差异来计划下一次检查。如果这个时间差异很大,下一次的时间检查会很快发生。如果这个差异很小,下一次的检查到来的时间会相应的延长。这样就避免每次都去查询网络中的时间服务器,从而减轻网络负载。查询NTP服务器的次数会慢慢变少。直到达到NTP请求的最小值。/etc/ntp.conf是ntpd的配置文件,具体格式可以参照UNIX系统的相应文档。以下是一个/etc/ntp.conf的样本:server10.244.2.17##Driftfile.Putthisinadirectorywhichthedaemoncanwriteto.#Nosymboliclinksallowed,either,sincethedaemonupdatesthefile#bycreatingatemporaryinthesamedirectoryandthenrename()'ing#ittothefile.#driftfile/etc/ntp/drift
4.2WindowsNTP服务器配置
在Windows的Server版本环境下使用Microsoft公司的W32Time服务来实现NTP的时钟同步功能。Microsoft公司在2000年发布的W32Time是原先TimeServ的替代产品,更加适应时间同步服务的需要。W32Time服务配置成NTP服务器可以通过修改注册表中的[HKEY_LOCAL_MACHINE\SYSTEM\CurreControlSet\Services\W32Time\Parameters]项来实现的。但是注册表如果修改不当,可能导致系统性能下降,甚至破坏系统,直至系统重新安装,为此我们研究开发了一个工具软件用以实现将W32Time服务配置成NTP服务器,软件界面见图2。通过简单操作,就可以轻松完成WindowsNTP服务器的配置。
4.3UnixNTP客户端配置
在Unix系统下,可以使用ntpdate命令来查询一个或多个NTP服务器,然后为机器设置正确的系统时间。ntpdate必须用root身份来运行。在命令行中**一个或者多个时间服务器,具体命令的语法如下:#ntpdate10244.2.17为了保证时钟的精确可以把ntpdate命令放入crontab,这样可以在**的时间间隔运行该命令。必须注意的是ntpdate设置的是系统时钟,而不是硬件时钟(电池供电的时钟)。为了要让硬件时钟反应系统时钟,还必须使用如下类似的命令:#hwclock-systohc
4.4WindowsNTP客户端配置
在WIN2000下,也可以将W32Time服务配置成NTP客户端。在命令行模式下执行如下命令:nettime/setsntp:NTP服务器的IP地址然后重新启动W32Time服务即可。但是这种方式功能简单,不直观,不能手工实现时钟同步。为此也按照NTP协议标准实现了SNTPClient软件,该软件运行后在系统的托盘中有图标,如图3所示。用鼠标的左键或右键点击该图标,会弹出一个功能菜单:选择SNTPSetup菜单选项,进入“设置”界面。在该界面中,用户可以定义本机所使用的NTP服务器,以及时钟同步的间隔等参数。选择Options菜单选项,可以进入“选项”界面。在此界面可以设置软件是否随系统自启动,是否记录LOG,LOG的存盘路径等参数。另外还可以通过选择SynchronizeMannually菜单选项来实现本机时钟与NTP服务器马上同步。
五、gps时钟服务器设备和厂家介绍
本方案中应用的gps时钟服务器为西安同步电子科技有限公司生产的SYN2101型NTP网络时间服务器,这款时钟服务器接收gps卫星信号,输出1路标准的NTP/SNTP协议的网络授时接口,网络吞吐量可以达到14000次每秒,授时精度为2ms典型值,是理想的一级网络授时服务器。
我公司是专业的gps时钟服务器生产厂家,时钟服务器种类有近10种,时间源不同可以分为gps,北斗,gps北斗混合,ntp输入,其他参考源输入几种,按照内部时钟不同又分为普通晶振、温补晶振、恒温晶振、铷钟等种类,是目前国内时钟服务器种类最全的生产厂家。
六、应用总结
在本方案中,gps时钟服务器采用标准NTP协议,其他被同步的时钟服务器和客户端不必使用和时钟服务器相同的操作系统和软件,只需提供标准的NTP接口即可使用提供的NTP服务,正是由于采用了标准协议,可扩充性、兼容性好,可方便经济地为各计算机设备提供精确的时间,因此是一种精度高、可靠性好、成本较低并满足信息系统对时钟精度要求的时间同步方案。