基于TRDP协议的高速动车组列车通信网络检测平台
2021-05-22张大林郝梓腾王洪伟林思雨
张大林 郝梓腾 王洪伟 林思雨
(北京交通大学, 北京 100044)
从上世纪90年代开始,我国高速铁路动车组技术历经自主探索、引进消化吸收再创新以及自主创新三个阶段,复兴号中国标准动车组标志着我国真正意义上具备了完全自主知识产权的动车组技术。2020年,我国400 km/h高速动车组在中车唐山公司下线,昭示着我国高速动车组技术进入了新的阶段,有助于推动中国铁路“走出去”,对促进国际经济、文化融合发展具有重要意义。
高速动车组结构复杂,子系统众多,列车通信网络是承担监测、控制等重要信息的关键,也是提升动车组信息化、智能化的核心。传统的列车通信网络有绞线式列车总线(Wire Train Bus, WTB)、多功能车辆总线(Multifunction Vehicle Bus, MVB)、CAN、ARCNET和LonWorks等。传统总线式列车网络具有实时性好、抗干扰能力强和稳定性高的优势,但其传输速率较低(MVB总线通信速率为1.5Mbit/s,WTB总线通信速率为1 Mbit/s),无法满足大吞吐量的要求,且其扩展性较差,单一的总线实现功能难以应对复杂的通信任务[1]。随着智能化时代的到来,列车通信网路的作用已不仅仅局限于简单的数据传输,还需实现网络故障诊断、优先级调度等更多功能,目前的现场总线技术已不能满足高速列车发展的需求[2]。以以太网为代表的高速率传输技术已成了列车通信网络的发展方向,并陆续装备到我国多类型号的动车组列车上,我国400 km/h的高速动车组也采用以太网技术来实现高速列车的网络控制、智能化自动辅助驾驶等功能。
以太网使用CSMA/CD协议,可能会导致通信节点之间的信息传输冲突,并导致数据丢失或不确定的传输时延等,从而无法满足列车通信对实时性和确定性的要求[3]。鉴于列车通信网络在动车组安全、高效运营过程中的关键作用,对基于以太网的列车通信网络开展安全性和可靠性测试具有重要意义。
为保障列车通信网络信息传输的可靠性和安全性,列车实时数据协议(Train Real-Time Data Protocol, TRDP)得到了广泛的应用[4]。基于OSI网络模型,TRDP位于TCP/UDP传输层之上[5],应用层之下,属于第五层协议。TRDP协议主要用于列车通信网络中过程数据和消息数据两种实时通信数据的传输。过程数据是实时周期性传输的,消息数据是实时非周期性传输的。过程数据长度小,一般用于控制单元发出的控制命令和远程输入、输出模块反馈的运行状态信息,但其数据量大、对可靠性、确定性,实时性要求高。消息数据一般用于设备状态信息和故障报警信息,数据量长短不一,对实时性要求较低[6]。TRDP对过程数据的帧结构、交互模型和通信流程都进行了规定。
因此,本文以TRDP协议为基础,基于BS架构构建面向高速动车组列车通信网络的实时检测技术,实现对时延、丢包、乱序、吞吐量等关键服务质量参数的测试和统计分析,验证列车车载网络的可靠性和安全性。
1 基于TRDP协议的动车组列车通信网络检测平台功能需求分析
面向TRDP的以太网通信网络监测平台的主要目标是实现对列车通信网络各类业务运行情况的实时监测,并可实现统计结果实时展示告警、历史统计结果查询、监测报告导出等功能。因此,本文设计了列车以太网通信网络性能监测平台,通过大数据技术对列车网络流量进行实时计算,并实现对列车网络流量实时采集存储、各类业务TRDP网络数据包的性能指标统计、网络监测统计结果的实时展示、统计数据的管理与监测报告的导出以及TRDP网络数据包发包规则与监测标准的配置等功能。性能监测平台基本需求如表1所示。
表1 性能监测平台需求分析表
1.1 TRDP数据包信息配置需求
TRDP数据包的基本信息配置主要应用于对网络性能指标的计算和当前性能指标是否符合传输标准的判断,包括Comid、源IP地址、目的IP地址、发送周期、数据包大小、最大丢包率阈值、时延抖动阈值等测试标准。
1.2 性能计算需求
TRDP协议的每类业务均对应一个Comid特性,并以此为基础,实时监测列车通信网络各类业务的数据包丢失情况、数据包乱序情况及数据传输时延情况。要求能实时统计当前通信网络的带宽占用情况,设计算法实现对通信网络中丢包、乱序情况的实时计算,统计出数据包总量及各类业务中丢失数据包的数据量、乱序数据包的数据量和最大时延抖动,并根据每类业务的测试标准将丢失数据包、乱序数据包及最大时延抖动进行输出。
1.3 实时展示功能需求
为让用户直观了解当前列车网络状态的性能指标,要求实时展示当前的数据包总量、数据包丢失数量及数据包乱序情况。分别以柱状图和折线图的形式呈现当前每类业务的数据包丢失与乱序数量,要求折线图按照秒级进行展示,并具有筛选功能,柱状图按照分钟级别的粒度进行排序展示。
1.4 数据管理与报告导出需求
数据管理模块主要是为了让用户可以对历史统计数据进行回溯管理,进一步分析网络链路中可能出现的异常情况。数据管理需求主要是能根据时间、Comid、源IP地址、目的IP地址等查询条件查询历史数据。报告导出需求主要是能根据Comid、目标地址、源地址及时间等查询条件生成报表,根据时间、业务ID等条件自定义生成报告。
2 基于TRDP协议的动车组列车通信网络检测平台设计
平台实行模块化设计,基本架构如图1所示。平台架构分为数据采集层、数据传输层、数据处理层、数据存储层、数据应用层五层,设计过程中多采用分布式架构,对处理性能扩展及列车控制中心远程监控列车网络通信具有借鉴意义。
图1 检测平台架构图
2.1 平台功能结构设计
根据用户需求分析,性能检测平台可细分为数据采集模块、性能指标计算模块和数据应用模块。其中,数据采集模块又可分为基本信息配置模块、网络流量采集模块和数据包解析模块,性能指标计算模块主要包括丢包计算、乱序计算、时延计算及吞吐量计算,数据应用模块又可分为数据实时展示模块、历史数据管理模块和监测报告导出等模块,功能架构如图2所示。
图2 检测平台功能架构图
2.2 平台性能检测数据库设计
性能检测平台中的数据库主要用于存储列车通信网络中所产生和统计的数据,因此数据库设计的简洁性、易拓展性等特点对于平台十分重要,好的数据库设计能使平台更易进行更新和维护。在数据库设计过程中,首先根据需求分析确定实体关系(性能监测平台实体关系如图3所示),再根据实体关系设计数据库的概念模型,然后将概念模型转换为数据库的逻辑数据模型,最后将逻辑数据模型转换为更高级的物理数据模型。
图3 性能监测平台实体关系图
3 基于TRDP协议的动车组列车通信网络检测平台实现关键技术
动车组列车通信网络检测平台主要包含TRDP网络数据采集、网络性能计算、数据存储、统计结果应用等多个模块。
3.1 TRDP网络数据包采集
平台采用WinPcap抓取网络数据包(数据类型为十六进制ASCii码)后,首先将抓取的数据包数据转化为十六进制数据,然后直接解析出数据包的Comid。目前,解析的数据包主要是基于UDP传输的过程数据,过程数据的TRDP数据包最大为1 472字节,在传输过程中不会产生IP数据报分片问题,因此可直接根据TRDP协议格式对网络数据包进行解析。解析过程中,平台会丢弃无法正确解析成TRDP协议的网络数据包。由于网络性能指标计算模块是根据TRDP网络数据包的序列号实现网络通信监测的,因此每类业务在传输及存储过程中均需保证顺序性。根据每类业务Comid的唯一性,将数据包存入不同的先进先出队列当中,存入队列之后,由对应进程解析出源IP地址、目的IP地址、Comid、序列号、消息类型、etbTopoCnt、opTrnTopoCnt、datasetLength等数据包内容信息,并将信息赋值于数据包对象。业务流程如图4所示。
图4 TRDP网络数据包采集流程图
为避免出现数据包顺序错乱,解析后便将网络数据包存储到Mysql数据库当中,如此读取的网络数据包顺序便与采集的顺序一致。
3.2 性能指标计算
性能计算模块通过利用采集到的数据包对列车通信网络的性能进行实时计算,主要采用Flink数据处理引擎对Mysql的BinLog日志进行解析,将解析后的数据利用丢包、时延、乱序以及吞吐量的计算方法进行实时统计。数据采集模块的采样数据需存储到Mysql数据库中,因此,需要实现Flink与Mysql的整合。利用Flink的窗口机制、键值状态、水印等特性实现对基于TRDP协议的列车通信网络的实时性能计算,数据流处理的流程如图5所示。
图5 数据流处理流程图
以此为基础,使用Flink实时拉取Mysql中的日志消息,对列车以太网通信进行性能指标统计,分析当前通信链路各类业务的通信情况。对于异常信息,将数据存储到数据库的同时,也通过Kafka传输到应用层,应用层会对性能指标统计结果进行实时显示。
3.2.1丢包与乱序计算
当第N个数据包到达时,首先与状态版本号进行比较,若小于当前状态版本号,则将该条数据丢弃。若大于当前版本号,则将其作为新版本号,此后流程同第一个数据包到达流程相同。对于相同的版本号,首先更新状态时间(定时器会使用该时间判断是否将状态中丢失的数据包进行输出),之后遍历缓存的丢失数据包,并对该数据包经过的数据包步长进行递增,对于经历的数据包步长大于给定值的,认为属于丢包,计算丢包率并与规则进行比对后,对其信息进行封装,存储于列表当中。在遍历判断数据包丢失的过程中,也会进行数据包的乱序计算,判断当前数据包的序列号在缓存的丢失数据包中是否存在,若存在则将其从缓存中移除,并将其标记为乱序数据包,更新乱序数据包状态统计的数量。
3.2.2时延抖动与吞吐量计算
时延抖动与吞吐量都是网络性能检测的重要性能指标。时延抖动可确保列车网络管理员实时观察列车网络设备在运行过程中的异常抖动现象,其计算方式是以前一个到来的数据包的嗅取时间为标准,用当前数据包的时间减去前一个到来的数据包的时间后,与规则中的阈值进行比对,对异常情况进行标记。吞吐量的计算是将数据包嗅取的时间作为时间窗口的时间,利用Assign Times Tamps And Watermarks来定义生成水印的逻辑,通过为数据流设置滚动窗口,来统计每一秒中数据包总量的大小。
4 平台性能测试
平台的前端界面包含乱序、丢包、时延、吞吐量及数据包的实时显示等。
为保障基于TRDP的列车通信网络检测平台在真实运营场景中的适应性,需搭建具有高拟真度的测试环境对平台进行性能测试。测试环境的硬件部分由网络设备和计算设备组成。其中,网络设备主要通过无线路由器搭建小型局域网,实现标准的TRDP网络通信;计算设备用来进行软件环境部署,主要包括用于TRDP数据发送的计算机1台、用于数据采集、处理与展示的计算机1台。考虑本地计算机性能的局限性,利用2台阿里云网络服务器分别作为消息队列和时序数据库服务器。硬件配置如表2所示。
表2 性能测试硬件配置表
在性能测试阶段,为对网络数据包采集系统进行压力测试,并验证数据采集设备的采集能力,使用采集设备进行发包与捕获,同时开启WireShark抓取数据包。测试中,采用同时开启80个线程,以5 ms作为发送周期,发送长度为1 432字节的数据包来模拟列车设备发送的不同业务数据包,所发送数据包全部被收包设备的数据采集器捕获,测试结果如图6所示。
图6 数据采集对比图
在网络性能计算模块中,以并行度1读取存储在Mysql数据库的BinLog日志,测试了25 190条数据在Flink处理引擎中处于不同并行度时的处理速度,分别以并行度1、并行度2、并行度4及并行度6执行网络性能统计的算子,对数据处理模块的处理速度进行测试,测试结果如图7所示。
图7 不同并行度计算速度比较图
5 结束语
本文设计了基于TRDP协议的列车通信实时检测平台,对列车网络进行长时间实时监测,分析列车通信网络中各类业务的通信状况,对出现的异常信息进行实时统计。该平台包括TRDP网络数据采集、性能指标计算、实时展示、数据管理及监测报告导出五大模块,对保障列车运行的安全性和可靠性具有重大意义,对以400 km/h高速动车组为代表的高速铁路技术的推广和应用具有重要的推动作用。