杜雅茹+王才善
摘要:该文针对有轨电车运营管理系统与仿真培训系统之间的安全通信需求,通过VS2005编程软件设计编写C++类,实现了两个系统间安全传输数据的安全通信模块。该模块的通信功能采用C++的数据报套接字功能实现,可以使两台电脑建立无连接的端口对端口通信,通信实时性高;安全功能根据铁路信号安全通信协议RSSP-1协议设计,将本协议的安全保障功能通过代码实现,使得本通信模块符合铁道部安全通信的标准。此外,本安全通信模块具有通用性,可以用于有轨电车信号系统中各种系统之间的数据通信。
关键词:RSSP-1安全协议;安全通信模块;有轨电车仿真培训系统
中图分类号:TP311.1 文献标识码:A 文章编号:1009-3044(2016)28-0036-02
Abstract:This paper is aimed at the secure communication requirements between the tram operation management system and the simulation training system ,through writing c + + class by VS2005, realized the security communication module which transmited data between two systems safely. The communication function of this module used c + + datagram socket function to realize, which can set up end-to-end communication without connection between two computers, the real-timing of communication is high;the security functions is designed by RSSP – 1 which is the railway signal safety communication protocol , the function is realized by software design ,which can make the module reach the standard of the railways safety communication. In addition, the secure communication module is universal, and can be used for data communication between various systems of the tram signal system.
Key words: RSSP – 1 protocol; safety communication; Trams simulation training system
有轨电车信号系统是有轨电车重要组成部分,实现行车指挥、列车运行监督和管理技术措施及配套装备的集合体。有轨电车信号系统分为运营控制子系统(Operating Control Center,OCC)[1]、正线道岔控制子系统[2]、平交路口信号控制子系统、车载子系统。其中运营控制子系统具有时刻表编制、行车运营调度等功能。信号系统的子系统之间通过封闭式传输网络和无线网络传递信息。
1 有轨电车仿真培训系统设计
设计有轨电车仿真培训系统的目的是:本系统搭建了一个仿真平台,可以对OCC系统进行使用前的测试验证,也可以为使用本套OCC系统的运维人员进行培训。本系统由运营控制系统和仿真平台两部分组成。为了便于培训,本系统的运营控制系统与有轨电车信号系统的OCC系统一致。仿真平台与OCC系统有数据安全传输需求,有必要设计安全通信模块来保障安全通信。
2 安全通信模块设计
安全通信模块通过封闭式传输网络与OCC系统的通信服务器完成通信过程。安全通信模块采集了仿真平台的车辆速度位置、正线道岔正反位、平交路口信号灯、线路等信息,发送给OCC系统的通信服务器,并实时获取OCC系统下发的指令。本模块安全功能根据RSSP-1安全协议[3]设计,以保障数据安全传输。传输层采用以太网通信[4]传输数据。
2.1 RSSP-1协议简介
EN50159-2011标准[5]判定封闭式传输系统存在以下安全隐患:数据帧重复、丢失、插入、错序、错码、延迟。RSSP-1安全协议针对这些安全隐患设计,能提供有效的防御措施。RSSP-1协议是由我国原铁道部科技司制定的铁路信号安全通信协议,用于封闭式数据传输系统防御潜在风险。
2.2 安全通信模块结构设计
按照功能定位的不同,安全通信模块分为四个部分,分别是通信模块,套接字模块,为传输数据添加安全防护的安全校验模块,提供对外接口的接口模块。本模块具有参数初始化、数据收/发、通信开/关接口。应用程序通过调用安全通信模块的接口,实现数据通信,应用程序的数据均保存在数据缓冲区以便读写。
2.3 静态类图设计
根据UML语言设计安全通信模块的类图[6],如图1所示。安全通信模块分为4个部分,因此设计了4个类。类的说明如下:
(1) 通信模块的Communication类:该类是整个安全通信模块的通信核心,实现安全通信的功能。设计了Binary结构体和Telegram结构体,以便存储传输的数据和报文。该类的主要方法有两个,分别是sendSafetyData方法和udpReceive方法。功能是调用安全模块发送安全数据和UDP端口接收数据。还有主方法调用的其他方法,如创建套接字、UDP端口发送数据、解析数据包、报文头尾校验等。
(2) 安全校验模块的Safety类:该类根据RSSP-1协议设计,保证数据传输符合铁路信号系统的安全标准。设计了通信节点结构体Node保存通信参数。主要方法分别是对接收到的安全数据进行校验的SafetyCheck方法,生成安全校验数据的GetSafeData方法。
(3) 接口模块的Interface类:该类提供了安全通信模块的接口。在类中定义了通信参数结构体CommPara,用于初始化通信节点的通信参数。本类的主要方法,一个是InitApplication方法,初始化应用程序的各种通信参数和安全参数;另一个是TimerProcess方法,定时发送数据。
(4) 套接字模块的CClientSocket类:该类继承自mfc类库的套接字类,是实现网络通信的基础步骤。
2.4 动态时序图设计
图2为安全通信模块UML时序图设计,是本模块运行详细动态描述,具体过程如下:
(1)打开通信: 应用程序打开通信,首先调用初始化接口,初始化通信层通信参数、安全层安全参数、分配内存、建立CRC校验表[7]等,然后调用套接字模块打开通信、建立连接。
(2)发送数据:应用程序的定时器程序每隔250ms定时发送数据到对方通信节点。
1通信层的数据发送函数采集并打包站场数据,按协议转化为传输过程中使用的二进制数据。
2调用安全层的安全校验数据生成函数[8],为二进制数据添加安全防护,按协议生成RSD安全报文。
3通信层调用套接字模块的数据发送函数,向通信节点的所有关联IP发送数据。
4若检测到通信中断等通信问题,通信层触发SSE报文函数,以校正时序。
(3)接收数据:通信层调用套接字的接收函数,被动接收数据。首先端口接收到数据,进行安全传输校验。
安全传输校验:通信功能模块对接收到的整包数据进行处理,判断报文头的源地址和目的地址是否正确,数据包是否为完整数据包,以及CRC报文尾校验,若传输有误则直接丢弃该报文。
若传输无误,则根据协议判断报文的数据类型,有三种可能。
1若报文为RSD数据包,判断该包数据序列号是否正确,时序有误则触发SSE报文以矫正时序。时序正确就进行安全编码校验,通过则将数据保存在缓冲区,若未通过触发SSE报文。
2若报文为SSE请求数据包,则判断刚发送数据包是否为SSR数据包,若是则不再处理,若不是则根据协议生成SSR数据包,调用安全模块的生成安全校验数据函数,生成SSR安全校验数据,并发送给对方。
3若报文为SSR请求回应数据包,判断是否发起了SSE请求、SSE等待SSR是否未超时、SSR与发送的SSE数据包序列号是否相一致。若无误,则调用安全模块的时序校正恢复功能恢复时序。若有误,则不再处理。
(4)结束通信:若需断开通信,接口层调用套接字模块直接关闭通信。
2.5 安全通信功能模块的封装
安全通信功能模块根据RSSP-1协议设计,适合封闭式网络信息安全传输,具有通用性。在有轨电车信号系统中可以广泛使用,只需要配置不同的参数(IP地址和端口号),就能实现通信功能。因此有必要将安全通信模块封装为一个独立的模块,通信时直接调用该模块。通过VC++的DLL封装功能,封装了该模块。DLL文件的预留接口包括初始化、通信开/关、数据收/发,可以实现完整的数据安全通信过程。
3 总结
安全通信功能模块已经实现,它是有轨电车仿真培训系统的一个重要模块,负责有轨电车仿真平台和OCC系统之间命令消息的传递。本模块实现通信功能,并依据RSSP-1协议,设计一系列安全措施防御通信安全问题。进行模块封装设计,使用简便。本设计能够安全稳定的传输数据,满足了安全通信的需求。
参考文献:
[1] 唐贾言. 现代有轨电车的运营控制系统[J]. 自动化应用, 2010(12).
[2] 杨小会,乔玉蓉. 新型有轨电车道岔控制系统方案研究[J]. 电子科技, 2016,29(3).
[3] 中华人民共和国铁道部.RSSP-1铁路信号安全通信协议(V1.0) [s].铁道部科学技术司,铁道部运输局,2010: 1-22.
[4] 吴功宜,吴英编.计算机网络应用技术教程[M]. 清华大学出版社, 2002.
[5] 杨霓霏,段武,卢佩玲. 铁路信号系统安全相关通信标准与安全协议研究[J]. 中国铁路. 2008.
[6] 哈贵庭. 基于UDP协议进行数据传输的研究与设计[J]. 电脑编程技巧与维护, 2010(18).
[7] 曹雪虹,张宗橙编.信息论与编码[M]. 北京邮电大学出版社, 2001.
[8] 张鑫. 全电子联锁中联锁机和通信机间安全通信协议的研究[D]. 西南交通大学, 2012.