APP下载

基于脚本语言的互联互通通信数据解析插件

2020-03-04谭力天李澎东彭博文

铁路通信信号工程技术 2020年2期
关键词:通信协议插件报文

陈 昕,谭力天,李澎东,彭博文

(湖南中车时代通信信号有限公司,长沙 410199)

基于通信的列车自动控制系统(Communication Based Train Control,CBTC)作为广泛应用于城市轨道交通的信号控制系统,通过车地双向通信确保列车能以较高的速度和较小的间隔安全可靠地运行。目前广泛应用的CBTC 系统通常包括列车自动防护子系统(Automatic Train Protection,ATP)、列车自动运行子系统(Automatic Train Operation,ATO)、 列 车 自 动 监 控 子 系 统(Automatic Train Supervision,ATS)、计算机联锁子系统(Computer Interlocking,CI)和区域控制器(Zone Controller,ZC)5 个子系统。

城市轨道交通互联互通CBTC 系统互联互通是指装备不同信号厂家车载设备的列车可以在装备不同信号厂家轨旁设备的一条或多条轨道交通线路上无缝互通安全可靠运营。以实现轨道交通网络化运营,实现轨道交通线网建设和运营的资源共享。

1 互联互通通信协议

互联互通通信协议是用于同一数据格式和校验方法的集合,互联互通通信协议约定了ATS、联锁、ZC、车载设备间的安全通信协议和互联互通通用协议。

互联互通通信协议可粗略的分为3 大部分。

1.1 车—地安全通信协议

车载设备与地面设备(ATS、联锁、ZC)之间通信采用RSSP-II 安全通信协议。安全通信协议的具体要求参见《RSSP-II 铁路信号安全通信协议》(运基信号[2010]267 号)文件。车―地通信的传输层采用TCP 协议,MAC 及PHY 层取决于不同的网络种类,无线网使用无线标准协议,地面网使用以太网协议(IEEE802.3)。

RSSP-II 包括SAI、MASL、ALE3 层,城市轨道交通互联互通通信采用RSSP-II 的EC 模式,因此在车―地设备握手建立连接时,可以在网络上侦测到AU1/AU2/AU3 认证帧、AR 鉴权响应帧和EC机制启动帧,在车地通信断开时,可以在网络上侦测到DI 断开帧。

1.2 地—地安全通信协议

地面设备(ATS、联锁、ZC)之间通信采用RSSP-I 安全通信协议。安全通信协议的相关细节参见《RSSP-I 铁路信号安全通信协议》(运基信号[2010]267 号)文件。传输层采用UDP 协议,使用以太网协议(IEEE 802.3)。

RSSP-I 安全通信协议是一种对等式协议,通信双方没有明确约定发起方和应答方。通信双方通过交互对时请求帧和对时应答帧进行安全链接的建立。

1.3 互联互通应用协议

1.3.1 通用包

互联互通车地连续通信规范的通用包头中约定车地双方通信的接口信息、类型、发送方标识信息、接收方标识信息、数据版本校验信息、本方消息序列号、通信周期、对方消息序列号、收到上一条消息时本方序列号、协议版本号和应用层数据长度,用于对车地双方通信信息做进一步的校验。

1.3.2 车载设备与ATS间通信

车载设备和ATS 间互联互通协议包括ATS 心跳信息帧、ATO 命令信息帧、ATO 状态信息帧、列车信息帧、车载设备报警信息帧、车载设备日检状态信息帧等。

ATS 向车载设备传递车组号、车次号、跳停、扣车、折返等信息。车载设备周期性向ATS 报告驾驶模式、运行控制级别、列车完整性、列车精确位置、车门状态、授权等信息。

1.3.3 车载设备与ZC间通信

车载设备和ZC 间互联互通协议包括列车控制帧、应用层注册/注销响应帧、ZC 主动注销请求、特殊控制报文、列车位置信息、应用层注册/注销请求帧等。

车载设备与ZC 注册成功后,周期性向ZC 发送位置信息帧,报告驾驶模式、运行控制级别、列车完整性、列车位置、运行速度等信息;ZC 周期性的向车载设备发送包括移动授权位置、障碍物信息、临时限速等信息的列车控制帧。

1.3.4 车载设备与联锁间通信

车载设备和联锁间互联互通协议包括控制信息、状态信息、心跳帧、城市自定义帧、厂商自定义帧、注销请求帧和注销回复帧等。

列车进站前,车载设备向联锁注册成功后,周期性向联锁发送控制信息,用于控制屏蔽门联动,联锁则周期性向车载回复状态信息,列车离站时,车载设备向联锁发送注销请求帧。

1.4 互联互通调试过程中的难点

在不同厂家的信号设备进行互联互通调试的过程中,由于车―地安全通信协议、地―地安全通信协议、互联互通应用协议都具有其独有的、较为严密的校验规则并且各个厂家对于线路数据、通信内容理解上的细微偏差,且各厂家对同一功能的不同实现方式,导致互联互通调试初期会出现各种不同的问题。

对于这些问题,最直接的处理方式就是通过抓取网络传输数据包,直接对原始数据进行分析。

2 基于脚本语言的协议分析

轨道交通行业广泛使用Wireshark 软件作为网络传输数据的抓取和分析软件。

2.1 Wireshark简介

Wireshark 是一个网络封包分析软件。Wireshark 直接从网卡端口抓取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark 本身拥有强大的过滤器引擎,支持抓取UDP、TCP、IP、FTP、ICMP、HTTP 等协议数据包。

用户可以使用过滤器筛选出有用的数据包,排除无关信息的干扰,如单独查看某个端口的UDP数据包或者TCP 数据包等。

但对于在UDP、TCP 上进行了一次或多次协议封装的互联互通通信数据,想直接通过Wireshark 进行过滤、分析就比较困难,分析人员需要对互联互通设备的IP 地址和端口、传输数据包的关键字节、数据包交互逻辑等有较深入的了解,且分析传输内容时需要其他解析工具软件的配合。

2.2 Lua脚本语言

Lua 是一种轻量小巧的脚本语言,使用标准C语言编写并以源代码形式开放,其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。

Wireshark 软件支持Lua 脚本语言开发解析插件,用于自有协议解析。

2.3 自有协议解析的实现

互联互通数据解析插件由rssp1.lua、rssp2.lua、hlht.lua3 个文件组成。分别完成车-地安全通信协议、地―地安全通信协议、互联互通应用协议的解析。

每个lua 文件作为一个解析器插件,每个解析器插件都需要包含以下内容。

2.3.1 调用的前置条件

对接收的数据做一个比较宽泛的限定,例如对车地通信数据解析时,则设置当”“tcp.port”中包含配置的地面设备端口时,则进入该解析器进行处理,rssp2.lua 的解析器前置条件脚本如图1 所示。

图1 解析器前置条件Fig.1 Precondition of resolver

2.3.2 解析器主函数

用于解析符合前置解析条件的数据,解析器主函数的接口包含了报文缓存、上一级协议信息和待描述的报文解析树。

报文缓存,即实际的报文数据,是一串十六进制的数据;上一级协议信息包括报文长度、报文捕获时间、报文编号、报文的源地址、目的地址、报文列表列等信息;报文解析树则是通过树状形式显示解析数据项,如图2 所示。

图2 中将符合RSSP-I 规则的某条数据包中的源设备、目标设备、源网络地址、目标网络地址、协议帧类型、协议携带的应用数据长度、联锁设备类型等信息通过树状图显示了出来。

图2 Wireshark中树状信息显示Fig.2 Display for tree information in Wireshark

2.3.3 报文UI信息

此外,还通过Lua 的文件读取接口载入了通信配置文件、通信协议解析格式文件,不同的线路或不同应用场景可以将配置文件更换后使用。

通信配置文件中包含ATS、区域控制器、联锁、车载设备、屏蔽门控制器等设别的IP 地址和端口配置,以及各个设备的互联互通ID 和RSSP-II 的ETCS-ID 的映射表,可以通过Wireshark 的UI 部分更直观显示设备名称和红蓝网标识。如图3 所示。

图3 Wireshark中车载信息显示Fig.3 Display for onboard information in Wireshark

图3 中[AU1] 为RSSP-II 安 全 通 信 协 议 的首次认证帧,T1 表示为1 号车,互联互通ID 为Oxe2000001,Net-1 表示接收的为红网数据。

3 实际应用情况

基于Wireshark 脚本语言插件的城市轨道交通互联互通通信分析插件作为一个通用辅助工具,已用于城市轨道交通互联互通实验室调试和互联线路调试中,现场反映使用方便直观,为城市轨道交通互联互通系统互联互通调试中状态侦测、故障排查提供了较为直观、便捷的方法。

相比原有抓包再通过解析软件进行解包分析的方式,基于Wireshark 下脚本语言插件的解析方式具有以下优点。

1) 在Wireshark 实时抓包时,通过脚本语言插件的解析方式可以实时看到数据的粗略情况,如源设备、目标设备、协议帧类型等。

2) 原有的分析方式,需要逐条拷贝数据到解析软件中逐条解析,对于需要持续关注的连续数据包,手工作业量较大。

3) 传统的报文解析工具由于使用了某些特定的链接库文件,在不同的计算机上经常会有无法启动的情况,而基于Wireshark 下脚本语言插件的解析方式由于Wireshark 本身对于不同操作系统支持较好,所以避免了很多因软件部署环境导致的问题。

4 结语

本文通过利用Wireshark 网络封包分析软件易于二次开发的特性,在其基础上采用Lua 脚本语言进行二次开发,将特定的自有通信协议如:互联互通车―地安全通信协议、地―地安全通信协议、互联互通应用协议等分别进行解析,从而能够通过Wireshark 软件直观地显示城市轨道交通互联互通传输数据的内容。

在长沙市轨道交通4、5 号线信号系统互联互通调试中,本文构建的协议数据分析插件为调试、故障排查、测试带来极大的便利,大大提高了调试效率。随着城市轨道交通行业发展,本文构建的协议数据分析插件及其实现方式在不同厂家信号设备间互联调试方面具有广阔的应用前景。

猜你喜欢

通信协议插件报文
基于J1939 协议多包报文的时序研究及应用
低轨星座短报文通信中的扩频信号二维快捕优化与实现
CTCS-2级报文数据管理需求分析和实现
自编插件完善App Inventor与乐高机器人通信
浅析反驳类报文要点
基于OSGi的军用指挥软件插件机制研究
车载网络通信协议标准化问题研究
基于jQUerY的自定义插件开发
电动汽车充电接口及通信协议新国标发布
插件体系结构软件的原理和实现