[发明专利]基于XML的Wireshark用协议解析方法在审

专利信息
申请号: 201910554328.0 申请日: 2019-06-25
公开(公告)号: CN110266702A 公开(公告)日: 2019-09-20
发明(设计)人: 曹威 申请(专利权)人: 上海电气泰雷兹交通自动化系统有限公司
主分类号: H04L29/06 分类号: H04L29/06;H04L29/08
代理公司: 上海湾谷知识产权代理事务所(普通合伙) 31289 代理人: 肖进
地址: 201206 上海市*** 国省代码: 上海;31
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 协议解析 数据报文协议 内存 处理数据 解析结果 树形结构 自动调用 自动解析 报文 引擎 保存
【权利要求书】:

1.一种基于XML的Wireshark用协议解析方法,其特征在于,包括:

根据ICD中描述的数据报文协议的需求,采用XML的树形结构描述数据报文协议的内容,并形成XML文档;

XML协议引擎自动解析所述XML文档,生成对应的协议解析树,并保存于内存中;

Wireshark在处理数据报文时,自动调用内存中的所述协议解析树,生成对应的解析结果。

2.根据权利要求1所述的基于XML的Wireshark用协议解析方法,其特征在于,所述的XML协议引擎自动解析XML文档,包括:

读取XML文档;

XML协议引擎从顶层元素开始依次解析XML文档的各元素:

判断当前元素是否为简单类型,若是,该元素解析完成;若否,继续判断:

若当前元素是xs:sequence类型,在当前元素中生成子元素数组,并依次解析数组中的各子元素;xs:sequence代表定义在其中的元素集合在数据报文中依次出现;

若当前元素是xs:choice类型,在当前元素中根据xs:choice元素中selected Id生成以selected Id为索引的键值对,并依次解析键值对中的各元素;xs:choice代表定义在其中的元素集合中只有一个元素出现在数据报文中;selected Id表示出现在xs:choice元素集合之中的当前元素的ID。

3.根据权利要求1或2所述的基于XML的Wireshark用协议解析方法,其特征在于,所述的Wireshark处理数据报文,包括:

使用DFS遍历算法,从根节点开始遍历各元素;

如果当前元素是简单类型,直接从当前的数据流中取出对应的长度,算出这个元素的值,并保存起来;

如果当前元素是复杂类型,执行:

若当前元素是xs:sequence类型,继续依次遍历当前的元素数组;

xs:sequence代表定义在其中的元素集合在数据报文中依次出现;

若当前元素是xs:choice类型,先根据selector的定义取出对应的接下来要选择元素的ID,然后再从xs:choice元素集合中找出符合的元素开始解析;xs:choice代表定义在其中的元素集合中只有一个元素出现在数据报文中;selector表示接下来要选择元素的id;

当所有的元素都已经遍历结束,并且数据报文也结束时,那么则遍历成功,否则遍历失败。

4.根据权利要求1所述的基于XML的Wireshark用协议解析方法,其特征在于,预先定义XML协议引擎:

XML标签设计:

xs:element,用于表示数据报文中的元素;

xs:complexType,用于定义多个xs:element,自定义的复杂类型;

xs:simpleType,用于定义枚举类型,自定义的简单类型;

xs:sequence,代表定义在其中的元素集合在数据报文中依次出现;

xs:choice,代表定义在其中的元素集合中只有一个元素出现在数据报文中;

xs:restriction,用于定义枚举值的集合;

xs:enumeration,单个的枚举值定义;

XML属性设计:

Name,用于指定标签的名字;

type,用于指定元素的类型;

unit,用于指定元素的单位;

length,用于指定元素的长度,手动设定或根据数据报文动态获取,需要动态获取时语法:length=”return${element name}”,表示当前元素长度由其他元素的值决定;

occurs,表示当前元素连续重复出现的次数,可手动设定或根据数据报文动态获取,需要动态获取时语法:occurs=”return${element name}”,表示当前元素的连续出现的次数长度由其他元素的值决定;

value,出现在枚举值的定义中,表示枚举的整形数值;

text,出现在枚举值的定义中,表示枚举值的文本值;

selected Id,出现在xs:choice元素集合之中,表示当前元素的ID;

selector,只有在当前元素的类型为xs:choice时才有效,表示接下来要选择元素的id,语法如下:selector=”return${element name}”,选择器的值由其他元素指定;

supportSplit,表示当前元素是否支持拆包,如果支持拆包那么此元素的值将分拆后出现在多个数据报文中;

packet Id,配合supportSplit使用,仅在当元素支持拆包时被定义,语法:packetId=”return${tsn name}”,表示当前的packet Id实际来源于哪一包数据;

packetSequence,配合supportSplit使用,仅在当元素支持拆包时被定义,语法:packetSequence=“return${element name}”,表示当前包是第几个拆包后的子包;

packetNumber,配合supportSplit使用,仅在当元素支持拆包时被定义,语法:packetSequence=“return${element name}”,表示当前元素一共分拆到几个数据报文中。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海电气泰雷兹交通自动化系统有限公司,未经上海电气泰雷兹交通自动化系统有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201910554328.0/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top