曹 桢,宋鹏飞,张 涛,杨 涛
分散自律调度集中系统(Centralized Traffic Control System,CTC) 和列车调度指挥系统(Train Dispatching and Commanding System,TDCS)广泛应用于铁路信号控制领域,辅助调度人员对全线列车进行管理,实现列车运行监督和控制[1-2]。在CTC/TDCS 系统内,各铁路局相邻线路之间设置接口服务器,用于信息共享,主要包括站场表示信息、车次号信息、调度命令和报点信息等。随着铁路行车密度持续增加、追踪间隔不断压缩和多方向交路等新情况涌现,对局间信息共享的稳定性和可靠性提出了更高的要求。
目前,既有网络设备故障、外界因素干扰和数据传输方式存在缺陷等,都会导致网络通信故障,从而影响局间接口信息共享。为此,基于现有通信技术和双网双通道模式,对现有局间信息共享方式进行优化设计,可避免在复杂传输环节中的单点设备故障对信息传输造成影响[3-8]。
网络层面:CTC/TDCS 局间接口网络采用双网结构;路局与路局之间分别设置2 套路由器互联;局内路由器与交换机交叉互联,局间设置网络安全隔离设备;网络设备通过路由计算选择最优路径进行数据传输。局间信息共享的网络结构见图1。
图1 现有网络结构
软件层面:CTC/TDCS 接口服务器采用IBM WebSphere MQ 中间件方式进行数据传输。现有MQ数据传输方式见图2。
图2 现有MQ数据传输方式
1.2.1 网络层面
虽然相邻路局CTC/TDCS 中心之间网络有2 条物理通道,但实际只会在1 条路由最优路径的物理通道上传输应用数据。现场应用中,广域网通道环节涉及设备繁多,路由器端口、协议转换器、防雷器件、同轴/光纤接头等任一传输设备工作不正常或受到电磁干扰时,均会导致通道质量误码,从而影响接口数据正常传输[3-5]。
网络层面信息共享缺陷主要表现在2 个方面:一是正在传输数据的物理链路发生中断会导致路由重新计算,底层路由器进行链路切换,通道出现短时间中断,相应的逻辑通道重建较慢;二是数据通道出现通道质量误码导致通道时不时闪断,路由不断的重新计算选路,影响局间信息共享[9-10]。
1.2.2 软件层面
目前局间信息共享通过MQ中间件进行数据收发,实现本局与邻局之间的信息交互[2]。MQ 是一款消息传递中间件,它使用消息和队列来支持应用程序、系统、服务和文件之间的信息交换。MQ消息一旦进入队列,若遇到通信线路不通或应用软件停止取数据等故障时,数据会留在传输队列中,直到被成功的取出。
软件层面信息共享缺陷主要表现在3 个方面:一是通道中断后,大量超时数据残留在队列里面,通信恢复后会瞬时批量发送和接收过时的数据,这一部分数据全部是过时的;二是MQ中间件运行在服务器上,通过群集管理器实现服务器主备机切换,但正在运行的MQ应用软件只能单个运行,无法做到双机热备;三是现有局间信息只发送一份,无冗余数据。
为了解决现有局间信息共享存在的缺陷,可针对网络和软件2 个层面优化局间信息共享,通过优化CTC/TDCS 系统局间双通信链路的组网结构,解决网络层面的缺陷;设计双通道冗余方式传输数据软件处理逻辑,解决软件层面的不足,从而实现局间数据的冗余传输[3-8]。具体优化设计方案包括以下2个方面。
在局间接口组网时,双网独立,不再交叉连接,局间设置网闸等网络安全设备,调整后的局间网络结构见图3。
通过硬件组网调整及路由设定,局间的A 网、B 网完全独立,数据传输保证A 局局间接口服务器1 的网卡A(或者接口服务器2 的网卡A)要与B局局间接口服务器1的网卡A(或者接口服务器2的网卡A)通信,只能通过两局交换机S1、网闸W1和路由器R1 等A 网设备,从而选择广域网A(图中蓝色标识的链路);A局局间接口服务器1的网卡B(或者接口服务器2的网卡B)要与B局局间接口服务器1的网卡B(或者接口服务器2的网卡B)通信,只能通过交换机S2、网闸W2 和路由器R2 等B 网设备,从而选择广域网B(图中红色标识的链路),具体见图3所示的网络数据传输流向标识。
图3 局间网络优化设计
2.2.1 通信层逻辑通道建立方式
软件层,不再使用MQ中转方式,局间接口服务器通过网络Socket直联。建立2条端与端之间的逻辑通道(例如A局每台局间接口服务器与B局每台局间接口服务器之间),并且强制绑定通道关联IP 地址(本地IP 地址及对端IP 地址)。由于A/B网段的隔离,对一条逻辑通道,确定本地IP 资源、对方服务器IP 资源,会唯一确定一条广域网链路,即唯一确定了该逻辑通道由哪条链路承载(是由蓝色的2M 链路还是红色的2M 链路)。应用层软件在2 条逻辑通道上传输2 份完全相同的数据,实现数据传输冗余。软件逻辑结构见图4。
图4 通信层逻辑通道示意
2.2.2 增加双通道冗余处理逻辑
通过通信层逻辑通道建立的方式,所有的应用数据包会在2 条链路上传输,此时应用层软件增加逻辑,数据接收方需对2 条通道收到的数据进行冗余处理,做到双通道正常时数据冗余重复过滤,相同的数据只处理一份,单条通道故障的情况下使用正常通道的有效数据。基于数据接收方的角度,设计保护算法,实现信息帧的合法性、正确性、有效性、时限性、次序性检查。主要流程如下。
1)角色的登录和验证交互。A局局间接口服务器与B局局间接口服务器建立了逻辑通道之后,首先进行角色登录及验证交互,以完成身份的合法性检查。以A 局局间接口服务器为申请端,B 局局间接口服务器为校验端为例说明,流程见图5。
图5 通信建立过程流程
逻辑通道建立后,由A 局局间接口服务器发出申请登录消息(LoginReq Msg),B 局局间接口服务器收到此消息后,根据登录的用户名、密码、设备实体ID 等进行相应检查,检查通过后,向A 局局间接口服务器反馈认证成功消息(LoginAuthen Msg)。之后双方均向对方发送本地实体的主备状态及设备信息(RSR Msg),尝试建立安全冗余连接,收到对方的RSR 消息后,主动向对方发送RSR 确认消息(RSR-Confirm Msg)。TLogintimout 秒之内未收到对方的RSR-Confirm消息,视为此次验证失败,通信的双方均进行重置,重新开始逻辑通道的建立及初始化过程。TLogintimout 为登录验证超时检查时间,一般设置为2 s。逻辑通道经过登录认证之后,通信双方视为安全冗余连接(Safety Link)建立成功,可进行应用层的数据发送。逻辑通道的双方以THearttime 秒定时发送心跳数据,以维持安全冗余连接的状态。THearttime 为心跳定时时间,一般设置为5 s。通过登录申请、登录认证等过程,确定安全冗余连接的建立,并以心跳信息进行定时探测,维持该安全冗余连接。
2)应用数据的双通道逻辑检查。处理数据时,按照接收方的角度设计算法,应用数据增加序号控制及检查逻辑,实现双通道下的数据冗余传输、过滤、校验、使用。基本逻辑如下。
首先,通过序号控制,实现双通道冗余传输数据检查。每包应用数据增加SN 序号字段,SN 序号范围为[0,65535]。发送方在发送数据时,需填写本端发送方的SN 序号,记为SN_send。每包应用数据增加发送方的设备实体ID、系统当前时间字段,由发送方在发送该应用数据时填写。在安全冗余连接初次建立、每一次重置时,发送方均须将SN_send序号初始化为0。
其次,发送方对相同的接收方发送数据时,2 包数据的SN 序号须相同。为此发送方维护一个<SN_send,OppRecvDevID>的Map映射列表,其中SN_send 为发送方的SN 序号,OppRecvDevID为对端接收方的设备实体ID。发送方每向接收方发送一包数据,需更新本地下一次发送数据时的SN 序号 SN_next,在 SN_send<65535 时,SN_next为此次SN_send 顺序加1,若SN_send 等于65535时,SN_next变为1。
最后,接收方需要对接收到的每一包应用数据进行时间检查。接收方比较当前时间与数据包内部的发送时间,根据最大的网络传输延时,判断数据是否有效。接收方需要对接收到的每一包应用数据进行序号控制检查。接收方需要缓存记录上一次从该发送方设备实体ID 接收到的数据包序号SN,记为<SN_last,OppSendDevID>Map 映射列 表,其中SN_last 为上一次有效数据包的序号,OppSendDevID为对端发送方设备实体ID。接收方收到序号为0 的数据时,不再进行后续序号控制检查,视此数据为有效数据,并重置该发送方设备实体ID 的SN_last。接收方对之前收到数据的SN 序号、发送方设备实体ID 做缓存,记为<SN_recv,OppSendDevID>Map映射列表,缓存TPackvalidtime秒。其中SN_recv 为接收到的数据包序号,TPackvalidtime 为数据最大缓存时间。接收方对新收到数据中的<SN_recv,OppSendDevID>进行缓存匹配检查,如果缓存中已经存在相同的<SN_recv,OppSendDevID>,则视为冗余数据,不处理此包数据;否则需要继续检查处理。接收方检查此次数据包的SN_recv,比较上一次从该发送方设备实体ID收到的SN_last,如果满足SN_recv-SN_Last>0 或 SN_recv∈[1,SNLostThreshold]且SN_Last∈[65535-SNLostThreshold,65535],则视为有效的合法数据,并更新SN_last值;否则视为无效数据,抛弃不处理。其中SNLostThreshold是一个最大丢包容忍阈值。接收方超过TPackDelta秒没有收到有效应用数据时,需重置逻辑通道及安全冗余连接。当接收方超过TPackDelta秒仍未收到一包经过双通道冗余检查的有效应用数据时,视为通道异常,需要重置该通道。
通过对局间信息共享的优化设计,能够在以下3 种情况下确保不丢失局间应用数据,不影响CTC/TDCS 系统局间的信息传输,保证数据传输的时序性、完整性、时限性:
1)本地某一网卡、网线故障;
2)本地某一交换机、路由器、协议转换器、通信接口等单点故障;
3)某一条广域网2 M 链路网络设备收到干扰出现误码、丢包、传输延时、中断等。
基于目前CTC/TDCS 系统局间接口设备现状,本设计方案通过优化局间双通道网络组网方式,设计与实现基本的安全通信协议功能和双通道冗余方式传输数据的软件处理逻辑,保证了信息冗余传输,能达到即使某一条链路或网络设备出现故障也不会丢失应用数据,从而明显提高了局间CTC/TDCS信息共享的稳定性和可靠性。