一种解析信号安全通信协议应用层数据的方法及系统技术方案

技术编号:37792803 阅读:16 留言:0更新日期:2023-06-09 09:23
本发明专利技术属于铁路信号安全技术领域,特别涉及一种解析信号安全通信协议应用层数据的方法及系统,在铁路信号安全通信协议应用层协议采用JSON定义,可扩展性强,易于用户升级维护;通过让用户在JSON配置中填写对应的应用层数据类型及字段后,软件就能解析对应的字段含义,从而降低用户学习Lua语法规则的成本,缩短用户编写解析脚本所用的时间;并采用C语言二次开发Lua52.dll,提高解析以比特为单位的通信协议的效率;并增加了应用层数据包长度校验,避免因数据包长度错误造成抓包数据无法正常打开;且本发明专利技术支持导入地面设备信息表和应答器位置表,用户更易于理解应用层数据的含义。义。义。

【技术实现步骤摘要】
一种解析信号安全通信协议应用层数据的方法及系统


[0001]本专利技术属于铁路信号安全
,特别涉及一种解析信号安全通信协议应用层数据的方法及系统。

技术介绍

[0002]在铁路通信信号领域,分析安全设备之间的通信数据至关重要,在安全相关产品的软件开发、产品测试以及现场问题分析都会涉及应用层数据的分析。 Wireshark是一种广泛应用于分析铁路信号安全设备之间通信数据的解析工具,常用于安全设备之间通信数据的抓取和分析,为了能够正常解析安全设备之间的应用层数据报文,开发人员会根据安全设备之间的接口规范来编写Lua脚本,便于进行开发调试和问题分析,从而达到解析应用层数据的目的,但在现有技术方案中对Lua脚本依赖较为严重 。Wireshark同时可应用于后期的单产品测试、系统测试以及现场问题分析。然而,各个产品间的通信协议升级后,会引起解析脚本的修改,需要重新编写对应的解析脚本。
[0003]但Wireshark此种技术存在如下缺点:Lua脚本解析以比特为单位的通信协议效率较低;Lua的编程规则复杂,开发人员学习成本较高;应用层通信协议升级后,从Lua脚本编写到工程应用开发周期较长,可扩展性差;另外,还有如公开号为CN110266702A的申请中提出的基于XML的Wireshark用协议解析方法,此种方法仅限应用于传输层上的用户数据,对铁路信号安全通信协议并不适用,XML也有文件格式文件庞大、格式复杂、可维护性较差等缺点。
[0004]因此,如何快速、高效正确的解析Wireshark抓取的铁路信号安全通信协议应用层数据,提高研发、测试以及现场问题分析的效率是值得研究的方向。

技术实现思路

[0005]针对上述问题,第一方面,本专利技术提出了一种解析信号安全通信协议应用层数据的方法,所述方法包括以下步骤:确定应用层数据所属的通信协议类型,并在对应的JSON文件中配置应用层数据包;加载JSON解析引擎读取各类型JSON文件中的应用层数据包,生成端口号与通信协议类型的映射关系以及各类型通信协议解析树;导入实体设备信息表,生成设备编号和实体设备名称之间的映射关系;按照各类型协议解析树以及设备编号和实体设备名称之间的映射关系对所述应用层数据包进行解析。
[0006]进一步地,所述确定应用层数据所属的协议类型之前还包括以下步骤:根据通信实体间的通信协议编制应用层协议描述;采用JSON树形结构分层说明应用层数据的内容,并形成通信协议的JSON文件;
加载JSON解析引擎,读取端口配置数据,根据端口配置识别属于哪种应用类型的数据。
[0007]进一步地,所述通信协议类型包括RSSP

I、RSSP

II以及Subset

037。
[0008]进一步地,所述方法还包括当确定所述通信协议为Subset

037协议时,调用Lua52.dll动态库实现数据由字节转换为比特;其中,所述Lua52.dll动态库采用C语言编写。
[0009]进一步地,在对应的JSON文件中配置应用层数据包包括:在JSON文件中添加或修改应用层数据包。
[0010]进一步地,加载JSON解析引擎读取各类型JSON文件中的应用层数据包具体为:采用深度遍历的方式,从根节点开始遍历各个节点,分别生成不同类型通信协议的树形结构数据并进行保存。
[0011]进一步地,导入实体设备信息表,生成设备编号和实体设备名称之间的映射关系具体包括:导入地面设备信息表,生成CTCSID与通信实体名称之间的映射关系,对相应应用层数据包中的CTCSID进行显示设备名称;导入应答器位置表,生成应答器编号与应答器组名称之间的映射关系,实现根据应答器编号显示应答器组名称。
[0012]进一步地,所述JSON文件中的标签具体设计如下:Struct为定义的一种结构体,所述结构体表示协议类型、通信层级协议头或应用协议;Field为所定义结构体中的属性,所述属性为根节点包含的通信协议包的包头或应用层包,或者是应用包节点包含的具体信息包,或者是信息包包含的字段;Value为所述结构体中的属性的值域,所述值域是结构体中包含属性的具体示意,所述值域为定义域的可选子元素。
[0013]进一步地,所述应用层数据JSON文件属性描述为:identity:表示节点的唯一标识;value:表示属性对应的取值;hint:表示界面显示的提示信息;pos:表示该属性处于定义域的位置,从1开始;bits:表示该定义域所占的二进制位数;isRef:表示该定义域是否引用其他的定义域结构体;dependBy:表示该定义域的存在依赖于其他定义域,该值与所引用的定义域的identity相同;dependIdValList:表示该定义域所引用的其他定义域时,所引用定义域的取值,取值元素个数至少为1个;defautlVal:表示该定义域的默认值;structType:表示的定义的结构体类型,可以为根节点、结构体或者数据包;filedType:表示结构体中定义域的类型;portNo:表示配置的端口号;
enityName:表示通信实体的名称。
[0014]进一步地,按照各类型协议解析树对所述应用层数据包进行解析包括:若应用层属于RSSP

I协议,则遵从RSSP

I解析流程,从UDP层开始解析RSSP

I应用层数据包;若应用层属于RSSP

II协议,则遵从RSSP

II解析流程,从TCP层开始依次解析ALE层、MASL层、SAI层以及GAL层应用层数据包;若应用层属于Subset

037协议,遵从Subset

037解析流程,从TCP层开始依次解析ALE层以及MASL层的应用层数据包。
[0015]进一步地,按照各类型协议解析树以及设备编号和实体设备名称之间的映射关系对所述应用层数据包进行解析还包括以下步骤:校验应用层数据包的长度,判断所述应用层数据包长度是否通过校验;若所述应用层数据包通过校验,则判断所述应用层数据包中CTCSID是否已经解析;若是,则显示CTCSID对应的通信实体名称,并判断所述应用层数据包中应答器编号是否已经解析;若是,则显示应答器编号对应的应答器组名称。
[0016]进一步地,若所述应用层数据长度未通过校验,则提示应用层数据包长度异常的原因若所述应用层数据包中CTCSID还未解析或者解析异常,则显示解析结果;若所述应用层数据包中应答器编号还未解析或者解析异常,则显示解析结果。
[0017]第二方面,本专利技术提出了一种解析信号安全通信协议应用层数据的系统,所述系统包括:数据配置单元,用于确定应用层数据所属的通信协议类型,并在对应的JSON文件中配置应用层数据包;第一生成单元,用于加载JSON解析引擎读取各类型JSON文件中的应用层数据包,生成端口号与通信协议类型的映射关系以及各类型通信协议解析树;第二生成单元,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种解析信号安全通信协议应用层数据的方法,其特征在于,所述方法包括以下步骤:确定应用层数据所属的通信协议类型,并在对应的JSON文件中配置应用层数据包;加载JSON解析引擎读取各类型JSON文件中的应用层数据包,生成端口号与通信协议类型的映射关系以及各类型通信协议解析树;导入实体设备信息表,生成设备编号和实体设备名称之间的映射关系;按照各类型协议解析树以及设备编号和实体设备名称之间的映射关系对所述应用层数据包进行解析。2.根据权利要求1所述的解析信号安全通信协议应用层数据的方法,其特征在于,所述确定应用层数据所属的协议类型之前还包括以下步骤:根据通信实体间的通信协议编制应用层协议描述;采用JSON树形结构分层说明应用层数据的内容,并形成通信协议的JSON文件;加载JSON解析引擎,读取端口配置数据,根据端口配置识别属于哪种应用类型的数据。3.根据权利要求1所述的解析信号安全通信协议应用层数据的方法,其特征在于,所述通信协议类型包括RSSP

I、RSSP

II以及Subset

037。4.根据权利要求1所述的解析信号安全通信协议应用层数据的方法,其特征在于,所述方法还包括当确定所述通信协议为Subset

037协议时,调用Lua52.dll动态库实现数据由字节转换为比特;其中,所述Lua52.dll动态库采用C语言编写。5.根据权利要求1所述的解析信号安全通信协议应用层数据的方法,其特征在于,在对应的JSON文件中配置应用层数据包包括:在JSON文件中添加或修改应用层数据包。6.根据权利要求1所述的解析信号安全通信协议应用层数据的方法,其特征在于,加载JSON解析引擎读取各类型JSON文件中的应用层数据包具体为:采用深度遍历的方式,从根节点开始遍历各个节点,分别生成不同类型通信协议的树形结构数据并进行保存。7.根据权利要求1所述的解析信号安全通信协议应用层数据的方法,其特征在于,导入实体设备信息表,生成设备编号和实体设备名称之间的映射关系具体包括:导入地面设备信息表,生成CTCSID与通信实体名称之间的映射关系,对相应应用层数据包中的CTCSID进行显示设备名称;导入应答器位置表,生成应答器编号与应答器组名称之间的映射关系,实现根据应答器编号显示应答器组名称。8.根据权利要求1所述的解析信号安全通信协议应用层数据的方法,其特征在于,所述JSON文件中的标签具体设计如下:Struct为定义的一种结构体,所述结构体表示协议类型、通信层级协议头或应用协议;Field为所定义结构体中的属性,所述属性为根节点包含的通信协议包的包头或应用层包,或者是应用包节点包含的具体信息包,或者是信息包包含的字段;Value为所述结构体中的属性的值域,所述值域是结构体中包含属性的具体示意,所述值域为定义域的可选子元素。
9.根据权利要求1所述的解析信号安全通信协议应用层数据的方法,其特征在于,所述应用层数据JSON文件属性描述为:identity:表示节点的唯一标识;value:表示属性对应的取值;hint:表示界面显示的提示信息;pos:表示该属性处于定义域的位置,从1开始;bits:表示该定义域所占的二进制位数;isRef:表示该定义域是否引用其他的定义域结构体;dependBy:表示该定义域的存在依赖于其他定义域,该值与所引用的定义域的identity相同;dependIdValList:表示该定义域所引用的其他定义域时,所引用定义域的取值,取值元素个数...

【专利技术属性】
技术研发人员:赵伟陈志强焦万立陈琛王耀侦程嘉翊孟子聪马程程任爱峰
申请(专利权)人:北京全路通信信号研究设计院集团有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1