1 概述

  信息系统服务于各行各业,与生产生活息息相关,对时钟准确性的要求很高,特别是分布式部署的系统,更加需要各个子系统之间时钟准确且同步。调度集中控制(CTC)系统作为分布式部署的列车调度指挥自动化系统,关系到铁路的安全生产,更加需要时钟同步。

  从功能方面说,运行图、行车日志、自动报点、邻站预告、进路预告、调度命令、进路自动触发等都需要严格准确的时钟信息;从维护方面说,程序日志、报警信息也需要准确的时间信息,以方便数据统计与问题的查找定位;从地面信号系统说,CTC需要给联锁、列控中心、信号集中监测、运输调度管理系统(TDMS)、临时限速服务器(TSRS)等系统发布时钟信息。对此,目前铁路总公司发布的《信号地面设备系统时钟同步方案》(以后简称标准)里给出如何实现信号系统时钟同步的指导方案,规定CTC内部采用Network Time Protocol(NTP)协议,对外采用专用协议。NTP服务在CTC上应用,必须解决由于CTC系统服务器、自律机、终端的操作系统或硬件平台差异带来的问题,以及如何使时钟同步功能具备可监管性的问题。下面,本文将针对CTC系统的时钟同步需求与方案展开讨论。

2 时钟同步需求分析
2.1 对标准的支撑

  1)CTC中心须配套双冗余的卫星授时仪作为时钟源;

  2)每个设备在其固有的晶振频率下进行计时,即使初始时间相同,由于各种晶振的特性不同,也会随着时间的推移而出现误差。CTC系统各设备时钟同步,要求同步间隔小于5 min,时差在1 s内;

  3)采用NTP协议实现内部时钟同步;

  4)为避免系统间的干扰,采用串口通信方式为其他信号系统提供时钟信息,可使用专用协议。

2.2 需求深化

  1)时钟信息双机同步

  CTC系统关键设备均是双机热备。当一台设备故障时,能够无缝倒切到另一设备继续工作,不对既有的系统产生影响。为此,主备机器之间需要同步一些应用数据,如站场信号设备状态、车次号信息、进路信息、接口连接状态信息等,这些信息本身需要准确的时钟信息。另外,在主机切换到备机时,也在保证备机时间正确性的前提下,才能允许其开始业务处理工作。

  2)硬件时钟同步

  除系统时钟同步外,时钟同步还应包含硬件时钟同步,将时间写入BIOS,以保证在设备断电重启后,时间信息的正确性。

  3)可视化监控

  CTC是一个庞大的分布式系统,包含应用服务器、通信服务器、各类接口服务器、自律机、以及各种业务终端设备等,尤其是车站设备繁多,人工检查校时结果的工作量巨大且效率低下。因此,CTC需要具备监控各个设备时钟同步情况的功能。该功能可部署在中心维护台,中心维护人员可监控所有CTC设备的时钟信息,以及设备与时钟源的时间偏离值。中心维护人员可以通过监控及时发现时钟同步失败的设备,查找修复问题,避免由于时钟偏差造成业务系统的其他问题。

3 NTP技术简介

  NTP是一种为实现网络时钟同步开发的标准协议。它可以提供高精准度的时间校正局域网(LAN)上误差小于1 ms,广域网(WAN)上误差几十ms),且通过加密确认的方式来防止恶意攻击。2010年6月,NTP发布第4版(其标准化文档为RFC5905),使其具备更高的精度、更强的兼容性、更广的适应性。

  NTP客户端与服务端之间使用高效的UDP协议传输数据。NTP通过时钟偏移量与传递延迟等信息计算出时间参考值。另外,NTP支持同时从多个时钟源获取时钟信息,利用过滤算法找出相对可靠的时间来源,然后采用它的时间来校时。

  NTP官方提供开源的NTP程序,该程序屏蔽了不同版本之间的兼容性。应用系统可以直接使用。

4 时钟同步方案设计
4.1 系统框架

  CTC系统包括应用服务器、数据库服务器、通信服务器、接口服务器(含TSRS接口、GSM-R接口、TDMS接口、铁总接口、邻局接口等)、对外时钟服务器、中心终端、车站自律机、车务终端、电务维护终端等。时钟同步功能涉及每一个设备,功能与既有的CTC应用程序独立,其时钟同步系统呈现为树形逻辑结构,具体结构如图1所示。

  从框架可见,整个时钟同步系统分成4个层级:

  第一层:卫星授时仪;

  第二层:CTC应用服务器;

  第三层:CTC中心的其他设备(通信服务器、接口服务器、终端等);

  第四层:车站设备(自律机、车务终端等)。

  上层设备提供NTP服务端,下层设备从上层设备获取时间信息。叶子节点设备(如自律机、车务终端)只需具备NTP客户端功能。

4.2 系统内部时钟同步的实现

  CTC系统中采用多种操作系统,一般服务器与自律机采用性能高效的UNIX系列操作系统,终端采用界面友好的windows系列操作系统。

  4.2.1 UNIX系列设备

  NTP有第三方开源软件,UNIX系列一般自带此软件。其主要程序有服务端程序ntpd与客户端程序ntpdate等,其中ntpd提供的服务端口为123。ntpd与ntpd之间可进行同步,采用这种同步方式,下层设备能保证与上层设备的偏差在128 ms以下,但其同步的间隔是无法进行设置的。ntpd的轮询时间约为8 s至36 h之间,此间隔会根据实际网络情况和系统负载状况进行实时调整。ntpd对于小于128 ms的偏差,会通过延长或缩短“秒”的手段来实现同步;若偏差在128 ms到1 000 s之间,系统则直接进行时钟同步;若大于1 000 s,则认为偏差太大,为了防止恶意修改时间,需人工核实后手动调整时间。

  综上可见,ntpd可很好的实现时钟同步,但其机制与CTC系统的时钟同步需求有偏差。标准要求CTC系统各个设备5 min同步一次,且时差不能大于1 s。而ntpd无法实现固定间隔同步与立即同步时钟功能。这就需要ntpdate来实现,ntpdate不区分时间偏差,直接将时钟源ntpd返回的时钟同步到本地。这一点与需求吻合。另外,可通过自动化脚本等技术实现对ntpdate周期性调用的控制,实现每5 min同步一次时钟的需求。采用ntpdate这种绝对服从机制,则需要确保时钟源正确。

  另外,在CTC系统的UNIX设备上实现NTP时,需要注意以下几点:

  1)对于通信服务器、应用服务器等同时充当服务端与客户端的设备,ntpd与ntpdate要同时存在。此时,使用ntpdate需要使用“-u”参数,才能实现正常同步;

  2)ntpd完成自身的时钟同步后,才会向外部提供时钟服务。这个过程可能在5 min左右完成。若在此过程中,有客户端向其请求时钟信息,则会遭到拒绝,被拒绝的客户端在下个时钟同步周期(5min后)即可正常获得时钟信息;

  3)对于主备机共享工作IP的设备,在倒切时,需要重启ntpd服务。这是由于ntpd只在启动时才会遍历本机的IP地址,并在搜索到的IP地址上建立NTP服务监听端口。如果倒机后,不重启ntpd,则会导致NTP服务无效。因此,需要采取自动化脚本等手段来控制ntpd,使其倒机后重新启动。

  4.2.2 windows系列设备

  windows系列自带的w32time服务组件实现了NTP时钟同步功能。校时范围有限制,当时钟源与本机时间偏差过大,如出现时差超过最大偏移量(可配置)或日期不一致时,不进行时钟同步。对w32time同步策略的控制,可以通过修改注册表实现。

  4.2.3 主备机时钟同步

  CTC通过专用的双机程序来完成主备机之间的数据通信。时钟同步功能可依托于既有的双机程序,不需要额外增加新的模块。双机程序只需多同步一类时钟信息即可。备机将自己的时钟信息发给主机,主机向外发布主备机两个设备的时钟信息状态,供维护监控使用。

4.3 对外提供时钟信息

  在对外部系统提供时钟信息时,需考虑安全性,在系统之间加隔离措施,保持不同系统的网络独立性。目前CTC系统通过下面两种设备对外提供时钟信息。

  4.3.1 中心对外时钟服务

  对外时钟服务器虽是CTC系统的一部分,但其主要任务是向其他系统提供时钟信息。因此,对外时钟服务器与CTC应用服务器的连接方式不采用网络传输,而采用串口专用协议作为隔离。此处软件设计成客户端(对外时钟服务器)/服务端(应用服务器)模式,使用请求/回执机制。之间传输数据的内容除了时钟信息之外,还需要考虑双机同步的问题,因此主备状态信息也需要传输。为了增强实时性,请求信息需维护一个请求序号,服务端回执的时间信息中序号如果一致,则认为是实时的回执包;否则不予处理。回执包不需考虑重发,因为时间在变,重发无意义。如果请求与回执之间的时间间隔超过设定值,则认为时间信息无效。标准要求时差可以在1 s内,因此传输时间、编码、解码的毫秒级时间可不考虑。

  对外时钟服务器通过串口方式从CTC应用服务器获取时钟信息后,开启NTP服务对外提供时钟信息,响应外部系统的时钟请求。TSRS与RBC(无线闭塞中心)系统比较特殊,CTC系统接口机可以通过专用的应用协议向其提供时钟信息,也可采用NTP方式向其提供校时服务。

  4.3.2 车站自律机对外时钟服务

  车站自律机与联锁、列控中心通过串口连接,采用通信专用协议实现了校时功能。

4.4 可视化监控

  时钟同步功能实现后,需要监控CTC系统各个设备的时钟同步情况。由运维软件采集各个设备的时钟同步信息,采集结果集中在运维终端展示给维护人员。运维终端提供每个设备的时钟信息,以及与时钟源的时差。时差超过警戒线的设备,则显示警戒色;持续3个校时周期时差依然超过警戒线的设备,则语音报警,并在终端上以闪烁态明确报警设备。

5 结束语

  NTP时钟同步功能强大,跨平台适应性好,非常适合应用在多平台的CTC系统。本文除标准要求之外,讨论了一些深化需求,这些深化需求在实际应用中都是必要的。时钟同步系统属一个比较独立的系统,与应用模块独立。但由于两者宿主同一台设备,加上时钟变化对应用程序有直接的影响,在上线之前需要做充分的实验,包含性能、兼容性、以及时间突变对程序的影响等。

参考文献

  [1]中国铁路总公司.Q/CR 518-2016 调度集中系统技术条件[S].北京:中国铁路总公司,2016.

  [2]中国铁路总公司.运电信号函[2012]109号 信号地面设备系统时钟同步方案[S].北京:中国铁路总公司,2012.

  [3] IETF.Network Time Protocol Version 4:Protocol and Algorithms Specification RFC5905[S].California USA:IETF,2010.

  [4] W.Richard Stevens.TCP/IP详解 卷1:协议[M].北京:机械工业出版社,2000.

  [5]佟立本.铁道概论[M].5版.北京:中国铁道出版社.2006.

  [6]中国铁路总公司.铁总运[2015]105号 铁路信号产品运用管理办法[S].北京:中国铁路总公司,2015.

  [7]赵桂敏,陈建鑫.铁总TDCS/CTC系统信息汇聚方案研究与实现[J].铁路通信信号工程技术, 2016,13(6):4-7.

   Zhao Guimin,Chen Jianxin.Information Aggregation Solution for TDCS/CTC System of China Railway Corporation[J].Railway Signalling & Communication Engineering,2016,13(6):4-7.

  [8]中华人民共和国铁道部.科技运[2008]36号 调度集中系统(CTC) 设备[S].北京:中华人民共和国铁道部,2008.

  [9]中华人民共和国铁道部.TB3203-2008 列车调度指挥系统、调度集中系统组网技术条件[S].北京:中国铁道出版社,2008.

  (收稿日期:2017-09-27)

  (修回日期:2017-12-14)