张友鹏,张 珊,王 锋,兰 丽
(兰州交通大学 自动化与电气工程学院,甘肃 兰州 730070)
时间的同步性和精确性在铁路运输中占有十分重要的地位[1]。首先,调度指挥系统、供电远动系统、计算机联锁系统、列车运行控制系统、TDCS/CTC系统、客运旅客服务系统等均需要精确而同步的时间,尤其当事故发生时,分析事故发生的原因极其重要。因为事故发生的先后时间顺序是分析事故的基础,只有具备精确而同步的时间才能正确分析出事故的原因。其次,铁路系统需要一个精确而统一的时间来实现各子系统之间的联动性[2]。因此,时间同步对于铁路系统的正常运营以及行车安全具有非常重要的意义。
TDCS/CTC系统是铁路系统中非常重要的组成部分,其工作状态直接影响运输效率和行车安全。由于铁路信号设备中各信号子系统均从TDCS/CTC系统获取标准时间信息,因此,TDCS/CTC系统的时间同步及其精度对于铁路信号系统极其重要[3]。
由于时间同步机制在铁路系统中一直未建立,传统的TDCS/CTC系统校时方法大多依赖于机器自身的时钟,人为修改时间、初始化时间不准、运行累计误差、病毒等都会造成当前系统的时间偏差,使得时间同步精度较低,难以满足对于时间同步的要求[2,3]。因此,本文提出一种改进型NTP协议对TDCS/CTC系统进行时间同步,较好地解决了TDCS/CTC系统的网络时间同步问题。当网络发生拥挤,网络延迟明显,且网络往返延迟的不对称性使系统误差增大而影响同步精度的情况下,能够满足系统对于精度的要求。
NTP协议是一种用于使计算机时间同步化的协议,近年来被广泛应用于系统时间同步中。文献[4]在假设网络往返延迟相等的基础上采用NTP协议对控制系统进行时间同步研究。文献[5]对局域网环境下的NTP性能进行测试,分析了系统负载和网络负载对NTP性能的影响。文献[6,7]在采用NTP协议进行时间同步时,提出采用冗余NTP服务器以保证大型复杂网络的对时可靠性。本文基于以上研究提出了一种改进型NTP,从提高同步精度的角度对TDCS/CTC系统进行研究。
NTP也称作网络时间协议,由美国德拉瓦大学的MILLS D L教授提出,是用于将计算机客户端或服务器端的时间同步到另一个服务器端或标准参考时间源的Internet标准协议。NTP协议不仅可以估算封包在网络上的往返延迟,而且还可独立估算计算机的时钟偏差,从而实现在网络上的高精度计算机校时[8,9]。
NTP协议支持3种对时工作模式:主从模式Sever/Client Mode、广播模式Multicast/Broadcast Mode、对称模式Symmetric Mode,其精确对时主要是在主从工作方式下实现的[7]。NTP需要根据服务器端与客户端接收和发送时间报文的时间来确定两地的时间差值,以及时间报文在网络传输过程中的延迟[10]。
图1 服务器和客户端对时过程
( 1 )
T4-T3=δ2-θ
( 2 )
δ1+δ2=δ
( 3 )
式中:T1为客户机发送时间请求信息包的时刻;T2为服务器收到时间请求信息包的时刻;T3为服务器响应时间信息包的时刻;T4为客户机收到响应信息包的时刻;θ为客户端和时间服务器之间的时间偏差;δ为对时过程中的网络路径延时。
假设客户端到服务器端的网络延迟等于服务器端到客户端的网络延迟,则有
( 4 )
( 5 )
综上可以求出
( 6 )
δ=(T4-T1)-(T3-T2)
( 7 )
NTP校时过程中会涉及到4个核心算法:滤波算法、选择算法、合并算法和时间校正算法[8,9]。算法处理流程如图2所示。
图2 NTP算法处理流程
滤波算法是为了在和一个固定时钟源进行多次对时时,从多次对时结果中选出最佳时间偏差采样值。选择算法是从一组可对时的时钟源里选出误差较小、对时较精确的时钟源。合并算法是将多个较精确时间源的最佳时间偏差值进行加权合并,进而得到最终的均值作为调整本地时间的偏差值[11]。时间校正算法是将最终得到的时间偏差值用于对本地客户机时间的调整和校正[12,13]。
图3为既有线TDCS/CTC系统时间同步方案,图4为客专CTC系统时间同步方案。
TDCS/CTC系统时间同步采用三级主从同步组网结构,一级时间同步节点设置在铁路总公司调度中心,二级节点设置在各铁路局调度所/客专调度所,三级节点设置在各站、段、所。每一级节点既可作为上一级节点的客户机,又可作为下一级节点的时间服务器。采用主从同步模式,客户机节点可以被服务器节点所同步,而服务器节点不能被客户机节点所同步。铁路信号系统其他子系统通过各接口服务器统一从TDCS/CTC系统获取唯一的标准时间信息。
图3 既有线TDCS/CTC系统时间同步方案
如图3所示,在铁路总公司TDCS/CTC中心、铁路局既有线TDCS/CTC中心设置卫星授时仪,并设置高性能服务器作为TDCS/CTC中心时间服务器,中心时间服务器直接与卫星授时仪进行时间同步,是整个系统的一级时间源。中心时间服务器接收到时间信息后,向铁路总公司TDCS/CTC中心所有应用服务器、通信服务器、工作站等设备提供时间同步信息,并将时间信息传送给铁路局既有线TDCS/CTC中心。
在铁路局既有线TDCS/CTC中心设置通信前置服务器作为车站设备时间服务器,在铁路局中心接收到时间信息后,向所辖TDCS/CTC车站设备提供二级时间同步信息,进而达到整个系统的时间同步。
客专CTC时间同步方案与既有线TDCS/CTC类似,如图4所示。二者的不同点是在既有线铁路局中心通过对外时钟服务器向信号集中监测系统提供时间信息,而在客专路局中心除向信号集中监测系统提供信息外,还通过接口服务器向TSRS系统和RBC系统提供时间信息。
图4 客专CTC系统时间同步方案
铁路TDCS/CTC系统时间同步关系到信号系统的正常运营并直接影响/威胁行车安全,因此TDCS/CTC系统对于时间同步的精度要求较高。当网络不稳定时,必然会使时间同步受到制约和影响,导致网络往返延迟不对称误差增大。因此为了进一步提高系统同步精度以更好地满足TDCS/CTC系统时间同步的实际需求,并能够满足当未来列车速度进一步提高时对于时间同步精度的要求,本文提出了一种改进型NTP协议。
在进行正常系统时间同步之前,增加对于服务器的筛选算法及重排序算法,使TDCS/CTC系统在进行时间同步时,能够实时自主选择性能最优的时间服务器进行同步,进而提高时间同步精度。改进后的NTP协议同步过程如图5所示。
图5 改进NTP协议同步算法实现过程
由图5可知,系统在利用NTP协议原有核心算法进行时间同步之前,先进行服务器的筛选,形成时间服务器候选列表,再从候选列表中选出同步精度较高、稳定性较好、网络延迟较小的服务器形成本地服务器列表,然后对本地服务器列表重排序,选出性能较优的服务器,为后续进行滤波算法、选择算法、合并算法做准备。可以保证系统在同步过程中总能选择到性能最佳的服务器,并与之同步,从而提高TDCS/CTC系统同步精度。
由于TDCS/CTC系统采用主从同步方式,因此只能是上级同步下级,而下级不能同步上级。客户端对上一级时间服务器列表中的服务器进行过滤筛选,选取其中可用的时间服务器,用以形成本地服务器候选列表。首先,客户端向列表中的时间服务器发送时间同步请求报文,若能够接收到时间响应报文,则判断该时间服务器为可用,将该服务器放入本地服务器候选列表;反之,若不能接收到时间响应报文,则判断该时间服务器为不可用,丢弃该时间服务器。其次,在进行同步的过程中,还要对是否有新的时间服务器可供使用进行判断,并更新时间服务器候选列表。由于时间服务器列表中可能包含很多可用服务器,因此在进行该筛选过程时会耗费一些时间,但由于该筛选过程仅会在NTP服务初始化启动时运行,因此,加入筛选算法并不会影响系统的正常运行。其流程图如图6所示。
图6 生成本地服务器候选列表流程图
对上一级时间服务器列表进行筛选,生成本地服务器候选列表后,按照本地同步策略再从本地服务器候选列表中进行筛选,选出一些性能较好的时间服务器,生成本地服务器列表。
由于时间的准确度通常与时间源的置入时间、固有误差以及网络往返时延等因素有关,因此在筛选出性能较好的时间服务器过程中,综合考虑了时间源的固有误差ε、置入时间t以及同步距离d等因素。为提高TDCS/CTC系统时间同步精度,令以上3个参数的取值如下:ε<16;t<1 024 s;d<30 ms。若参数满足以上要求,则将该服务器放入时间服务器列表,否则抛弃该时间服务器。图7为生成本地服务器列表的流程图。
图7 生成本地服务器列表流程图
客户机首先读取服务器候选列表,向候选列表中的服务器发送同步请求报文,候选列表中的服务器在收到请求报文后,向客户机发送同步响应报文,若接收不到响应报文,则重新读取服务器候选列表。根据客户机和服务器接收及发送报文的时间信息,客户机可以得出与该服务器的时间偏差值和网络延时值等。根据时间源固有误差ε、置入时间t以及同步距离d的值,对时间服务器候选列表中的服务器进行筛选,将满足条件的服务器放入本地时间服务器列表。将该列表按同步距离由小到大的顺序排列,优先选择同步距离较小的服务器。生成本地服务器列表后则可进行正常情况下的NTP同步操作,为下一步执行滤波算法、选择算法和合并算法做准备。
在OPNET软件中建立TDCS/CTC系统的网络模型、节点模型和进程模型,仿真TDCS/CTC系统的时间同步过程。
TDCS/CTC系统网络模型如图8所示。该网络模型为三级结构的三局十五站系统,第一级为铁路总公司时间同步节点,第二级为铁路局时间同步节点,第三级为各路局所管辖的车站时间同步节点。铁路总公司和每个铁路局分别包含4个时间服务器节点,管辖5个车站客户机。由于TDCS/CTC系统在时间同步过程中,采用点对点方式传送NTP时间信号[2],因此,网络模型中链路采用点对点的通信方式。
图8 TDCS/CTC系统时间同步网络模型
铁路总公司节点模型和进程模型如图9、图10所示。
图9 铁路总公司节点模型
图10 铁路总公司进程模型
铁路总公司节点的主要功能是作为铁路局的时间服务器,收到的信息只能是铁路局发送的时间同步请求报文信息。如图9所示,铁路总公司节点模型包含12个收信机trcv和12个发信机txmt,每个收信机用于接收一个铁路局节点发送的NTP请求报文,而每一个发信机用于发送NTP响应报文给相应的铁路局节点。
如图10所示,铁路总公司进程模型包含两种状态,一种是初始化状态init(设为强制状态),一种是等待状态idle(设为非强制状态)。当进行同步过程时,系统由init状态直接转到idle状态,等待由铁路局发送的NTP请求报文,并记录请求报文的到达时间以及响应报文的传送时间,即进程模型中所对应的TRCV_ARRVL条件满足时,执行rcv0()函数。若进程异常接收到其他中断,则状态找不到转移条件会导致出错,因此创建了一个指向idle自身的default(其他条件不满足则该条件满足)转移线。
铁路局节点模型和进程模型如图11、图12所示。铁路局节点模型包含9个收信机,1个src0源模块和9个发信机。其中:4个收信机和4个发信机用于和铁路总公司节点通信,接收和发送NTP响应报文和请求报文;另外5个收信机和发信机用于和该铁路局所管辖的车站节点通信,接收和发送NTP请求报文和响应报文;src0源模块是用于铁路局定时产生NTP请求报文。
铁路局收到的信息有3种,第一种是来自铁路总公司的响应报文(在进程模型中对应为LTRCV_ARRVL),收到该信息时,执行rcv1()函数,记录铁路局接收NTP响应报文的时间并计算铁路局和铁路总公司的时间偏差和网络延时。第二种是来自车站的时间同步请求报文(在进程模型中对应为LCRCV_ARRVL),收到该信息时,执行rcv2()函数,发送响应报文并记录接收NTP请求报文和发送响应报文的时间。第三种是来自铁路局源模块src0的定时时间请求报文(在进程模型中对应为SRC0_ARRVL),收到该信息时,执行xmt1()函数,将信息发送给铁路总公司节点并记录请求报文的发送时间。可见,铁路局节点的主要功能有两个,一个是作为铁路总公司的客户机,通过src0源模块定时地向总公司发送请求报文并接收总公司发回的响应报文,计算铁路总公司与铁路局之间的时间偏差和网络延时;另一个是作为车站的服务器,接收并响应车站的请求报文。
图11 铁路局节点模型
图12 铁路局进程模型
车站节点模型和进程模型如图13、图14所示。车站节点模型共包括4个收信机,1个src1源模块和4个发信机。4个收信机和4个发信机用于和铁路局节点进行通信,接收和发送NTP响应报文和NTP请求报文;src1源模块用于车站定时产生NTP请求报文。
图13 车站节点模型
图14 车站进程模型
车站收到的信息有两种,一种是来自铁路局的响应报文(进程模型中对应LCRCV1_ARRVL),收到该信息执行rcv3()函数,记录车站接收响应报文的时间并计算车站和铁路局的时间偏差和网络延时;另一种是来自车站src1定时向铁路局发送的同步请求报文(进程模型中对应SRC1_ARRVL)。可见,车站节点的主要功能是作为铁路局客户机,通过src1模块定时向铁路局发送请求报文并接收铁路局响应报文,计算铁路局与车站的时间偏差和网络延时。
根据规定,TDCS/CTC系统时间同步间隔应不超过5min[3]。同步间隔越小,同步精度越高,但同步间隔过小会引起网络延时增加,拥塞程度加重,同步偏差值逐渐增加,造成时间同步困难[9],因此设置合适的同步间隔对同步精度有较大影响。设置铁路局src0模块和车站src1模块的发包间隔分别为1 min、2 min、3 min、4 min,并观察总公司和铁路局之间以及铁路局和车站之间的网络延时,设置仿真时间为15 h,得到的延时结果如图15、图16所示。
由图15可知,当src0间隔时间t0为1 min、2 min、3 min时,网络延时峰值均约为550 ms,而当t0为4 min时,网络延时峰值约为440 ms,网络性能良好,因此设置铁路局每隔4 min向铁路总公司发送一次同步请求。由图16可知,src1间隔时间t1为1 min 和2 min时,网络延时峰值均接近1 s,网络拥塞程度严重,当t1为3 min和4 min时,网络峰值均为880 ms 左右且达到峰值的次数相差不大,因此,为了得到更精确的时间同步精度,设置车站每隔3 min向铁路局发送一次同步请求。
图15 铁路总公司和路局之间的网络延时
图16 路局和车站之间的网络延时
设置src0模块每隔4 min向铁路总公司发送时间请求报文,src1模块每隔3 min向铁路局发送时间请求报文,得出铁路总公司和铁路局之间(即上级)以及铁路局和车站之间(即下级)的时间偏差值如图17~图20所示,对应的偏差结果见表1。
图17 NTP同步偏差(上级)
图18 NTP同步偏差(下级)
图20 改进NTP同步偏差(下级)
表1 同步偏差结果 ms
由图17、图18可知,由于车站数量较多,会产生较大的网络延迟,因此,铁路局和车站之间的时间偏差值较铁路总公司和铁路局之间的时间偏差值略大。由图17~图20可知,改进后NTP协议时间偏差的抖动幅度较小,稳定性较高。由图17、图19可知,铁路总公司和铁路局在使用改进前的NTP协议进行同步时,其时间偏差值最大约为700 ms,最小约为300 ms,平均为500 ms,使用改进后的NTP协议进行同步时,其时间偏差值最大约为610 ms,最小约为220 ms,平均为390 m,减小了110 ms。由图18、图20可知,铁路局和车站在使用改进前的NTP协议进行同步时,其时间偏差值最大约为770 ms,最小约为350 ms,平均为550 ms,使用改进后的NTP协议进行同步时,其时间偏差值最大约为630 ms,最小约为250 ms,平均为425 ms,减小了125 ms。
对于TDCS/CTC系统,改进后的NTP协议时间同步精度与原NTP协议相比有了较大提高。通过增加筛选算法以及重排序算法使得系统在进行时间同步过程中可以选择到性能最优的服务器,进而使得时间偏差减小了120 ms,明显提高了系统的同步精度和稳定性。
参考文献:
[1]谢衡元,曲博,孟娜.铁路时间同步网技术条件[R].北京:全路通信信号研究设计院,2008.
[2]屈芳玲,吕建瑞.关于计算机联锁、微机监测与TDCS时间同步解决方案探讨[J].铁道通信信号,2012,48(12):57-58.
QU Fang-ling,LÜ Jian-rui.Exploration on the Solution of Time Synchronization about the Computer Interlocking System,Computer Monitoring System and the TDCS[J].Railway Signalling & Communication,2012,48(12):57-58.
[3]中华人民共和国铁道部运输局.关于印发《信号地面设备系统时钟同步方案的通知》[Z].2012.
[4]GRAHAM S,KUMAR P R.Time in General-purpose Control Systems:The Control Time Protocol and an Experimental Evaluation[J].Decision and Control,2004,4:14-17.
[5]陈朝福,王磊.局域网环境的网络时间协议性能测试[J].计算机应用,2012,32(4):943-945.
CHEN Chao-fu,WANG Lei.Network Time Protocol Performance Evaluation in LAN Environment[J].Journal of Computer Applications,2012,32(4):943-945.
[6]费振豪.基于NTP的地铁综合监控系统时钟同步技术的研究[D].成都:西南交通大学,2004:6-33.
[7]王礼.综合调度系统的时钟同步技术研究[D].成都:西南交通大学,2008:10-45.
[8]范逊,宋成.分布式网络监控的时钟同步问题研究[J].计算机应用与软件,2007,24(5):131-133.
FAN Xun,SONG Cheng.Research on Time Synchronuzation for Didtributed Network Monitoring[J].Computer Applications and Software,2007,24(5):131-133.
[9]赵英,刘冬梅.基于NTP的网络时间服务测量[J].计算机工程与应用,2006,(S1):99-101.
ZHAO Ying,LIU Dong-mei.The Measurement of Network Time Service Based on NTP[J].Computer Engineering and Applications,2006,(S1):99-101.
[10]MILLS D L.Network Time Protocol(Version 3) Specification[S].Implementation,RFC1305.
[11]王晓华,张磊.一种改进型NTP协议设计与仿真[J].计算机工程与应用,2007,43(29):116-119.
WANG Xiao-hua,ZHANG Lei.Design and Simulation of Improved NTP Protucol[J].Computer Engineering and Applications,2007,43(29):116-119.
[12]刘磊,张磊.非同步通信中改进型NTP协议优化与仿真[J].计算机工程与应用,2011,47(6):75-78.
LIU Lei,ZHANG Lei.Optimization and Simulation of Improved NTP Protocol in Asynchronous Communication Network[J].Computer Engineering and Applications,2011,47(6):75-78.
[13]钱勇生,王春雷.基于NTP的交通控制系统时钟同步技术研究[J].计算机工程与设计,2007,28(10):2417-2419.
QIAN Yong-sheng,WANG Chun-lei.Grinds Based on NTP City Urban Traffic Signal Control System Time Synchronization Technology[J].Computer Engineering and Design,2007,28(10):2417-2419.