[发明专利]基于XML的Wireshark用协议解析方法在审
| 申请号: | 201910554328.0 | 申请日: | 2019-06-25 |
| 公开(公告)号: | CN110266702A | 公开(公告)日: | 2019-09-20 |
| 发明(设计)人: | 曹威 | 申请(专利权)人: | 上海电气泰雷兹交通自动化系统有限公司 |
| 主分类号: | H04L29/06 | 分类号: | H04L29/06;H04L29/08 |
| 代理公司: | 上海湾谷知识产权代理事务所(普通合伙) 31289 | 代理人: | 肖进 |
| 地址: | 201206 上海市*** | 国省代码: | 上海;31 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 协议解析 数据报文协议 内存 处理数据 解析结果 树形结构 自动调用 自动解析 报文 引擎 保存 | ||
本发明公开了一种基于XML的Wireshark用协议解析方法,包括:根据ICD中描述的数据报文协议的需求,将数据报文协议的内容用XML的树形结构描述出来,形成XML文档;XML协议引擎自动解析XML文档,生成对应的协议解析树,并保存于内存中;Wireshark在处理数据报文时,自动调用内存中的协议解析树,生成对应的解析结果。能快速、方便地实现Wireshark协议解析。
技术领域
本发明涉及基于XML的Wireshark用协议解析方法。
背景技术
在当前的软件系统中,基于网络的通信非常普遍,由于通信错误导致的问题也是层出不穷,因此对于开发人员和运营人员来说,通信过程中的协议分析工具就非常的重要。Wireshark是一种广泛应用的数据报文分析工具,为了在Wireshark中解析自定义的通信协议,经常需要编写相应的LUA脚本,然而这需要一定的编程基础,对于非编程人员或者不熟悉Lua脚本的人员来说有比较高的门槛,同时对于复杂的协议来说,编写和调试脚本也非常耗时。实际工作中测试工程师和现场工程师经常需要查看子系统之间的数据报文。如何更方便和快速实现Wireshark协议解析。
发明内容
本发明的目的在于提供基于XML的Wireshark用协议解析方法,能快速、方便地实现Wireshark协议解析。
实现上述目的的技术方案是:
一种基于XML的Wireshark用协议解析方法,包括:
根据ICD中描述的数据报文协议的需求,采用XML的树形结构描述数据报文协议的内容,并形成XML文档;
XML协议引擎自动解析所述XML文档,生成对应的协议解析树,并保存于内存中;
Wireshark在处理数据报文时,自动调用内存中的所述协议解析树,生成对应的解析结果。
优选的,根据权利要求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。
优选的,所述的Wireshark处理数据报文,包括:
使用DFS遍历算法,从根节点开始遍历各元素;
如果当前元素是简单类型,直接从当前的数据流中取出对应的长度,算出这个元素的值,并保存起来;
如果当前元素是复杂类型,执行:
若当前元素是xs:sequence类型,继续依次遍历当前的元素数组;
xs:sequence代表定义在其中的元素集合在数据报文中依次出现;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海电气泰雷兹交通自动化系统有限公司,未经上海电气泰雷兹交通自动化系统有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910554328.0/2.html,转载请声明来源钻瓜专利网。





