CN101834848A - 一种使用xml描述协议的方法及其建立的协议解析系统 - Google Patents
一种使用xml描述协议的方法及其建立的协议解析系统 Download PDFInfo
- Publication number
- CN101834848A CN101834848A CN201010137407A CN201010137407A CN101834848A CN 101834848 A CN101834848 A CN 101834848A CN 201010137407 A CN201010137407 A CN 201010137407A CN 201010137407 A CN201010137407 A CN 201010137407A CN 101834848 A CN101834848 A CN 101834848A
- Authority
- CN
- China
- Prior art keywords
- protocol
- xml
- agreement
- unit
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Computer And Data Communications (AREA)
- Communication Control (AREA)
Abstract
本发明一种使用XML描述协议的方法及其建立的协议解析系统,它是由一种使用XML描述协议的方法和基于这种方法建立的用于工业以太网协议解析的系统两部分组成。一种使用XML描述协议的方法包括两个方面:第一是使用XML描述以太网协议格式的方法;第二是使用XML描述协议簇关系的方法。一种用于工业以太网协议解析的系统,它是由硬件系统和软件系统两部分组成。硬件系统包括:网络适配器和主机;软件系统包括五个单元,分别是协议加载单元、协议库单元、数据捕获单元、协议匹配单元、数据解析单元。本发明能够方便实现协议内容修改和扩展,并能实现多层协议的筛选、匹配和解析。它在工业以太网技术领域里具有广泛地实用价值和应用前景。
Description
(一)技术领域:
本发明属于工业以太网技术领域,具体来说是涉及一种使用可扩展标记语言(eXtensible Markup Language,简称XML)描述协议的方法,并基于此方法建立的一种用于工业以太网协议解析的系统。
(二)技术背景
工业以太网技术是以太网发展的新产物,现在还没有针对性的专用协议解析系统,只能使用现有通用的以太网协议解析系统。这些解析系统实现的功能很丰富,但它们都是使用各自特定格式的程序代码描述协议格式和协议簇关系,这样的协议描述方法一般不是很开放,会造成解析系统支持的协议种类、个数相对固定。有些解析系统不允许用户修改已存在的协议结构或添加自定义新协议种类,其他的解析系统通过提供协议接口的方式允许用户修改或添加协议。这些协议接口文件必须严格按照该解析系统特定规则编写,特定规则包括文件类型、编程环境和语言、数据结构、函数接口等。用户如果想编写或修改这些接口,需要仔细阅读相应解析系统的开发文档,并熟练掌握指定的编程语言。
随着工业以太网技术的快速发展,各种新工业以太网协议不断被提出,旧版本的工业以太网协议不断升级,使用上述以太网协议解析系统分析、诊断工业以太网通讯就面临着协议扩展难度高,应用范围局限的不足,具体来讲包括:
1.部分协议解析系统不支持协议修改和拓展;
2.协议解析系统的协议描述方法复杂,协议接口开发难度大,对开发者的技术水平要求高,开发周期长;
3.协议解析系统的协议描述方法复杂,不能直观的判断协议接口程序是否正确,所以修改或添加的协议接口会使系统不可靠;
4.不同的协议解析系统之间协议描述方法差异很大,协议接口基本不可能实现通用。
(三)发明内容
1、目的
针对以上情况,本发明的目的是提供一种使用XML描述协议的方法,及基于此方法建立的用于工业以太网协议解析的系统,该系统能够方便实现协议内容修改和扩展,并能实现多层协议的筛选、匹配和解析。
2、技术方案:
为实现上述目的,需要提供两个技术方案:一是一种使用XML描述协议的方法;二是一种基于这种协议描述方法建立的用于工业以太网协议解析的系统。
(1)使用XML描述协议的方法有两个方面:第一是使用XML描述以太网协议格式的方法;第二是使用XML描述协议簇关系的方法。
第一、使用XML描述以太网协议格式的方法流程图如图1所示,其具体步骤如下:
步骤101、新建XML文档;
步骤102、建立XML根元素;根元素的名称为“root”,不对应协议中的任何字段;
步骤103、根据协议的性质添加XML根元素属性;添加的根元素属性包括“名称”属性和“类型”属性,它们表示对应协议的性质:“名称”属性表示对应协议的名称,“类型”属性表示以太网协议类型或上层协议的类型;
步骤104、根据协议中各字段的关系建立XML非根元素;建立的非根元素名称均为“node”,分别对应协议中一个字段。XML文档中各XML父元素与子元素的层次关系,与协议中字段的层次关系一一对应;
步骤105、根据协议中各字段的性质添加XML非根元素的属性;添加的非根元素的属性包括“名称”、“长度”、“显示方式”、“循环”四种属性,它们分别表示对应字段的性质:“名称”属性表示对应字段的名称;“长度”属性表示对应字段的长度,该属性的值可以是三种,①以字节(Byte)或位(Bit)为单位的确定的长度值;②某字段的数值指示;③本字段的所有子字段长度值的合;“显示方式”属性表示以什么样的格式显示对应字段的解析数据,后列表1为该属性为不同值表示的显示格式的例子,非叶元素没有“显示方式”属性;“循环”属性表示对应字段的循环的方式,只有循环字段对应的XML元素有“循环”属性,非循环的XML元素没有该属性;
步骤106、保存XML文档。
表1
“显示方式”属性内容 | 举例或备注 |
地址形式 | 45:d8:9a:75:01:d2 |
十六进制 | 0xf5c |
十进制 | 1028 |
Bool | True False |
上层协议 | 使用上层协议进行解析 |
第二、使用XML描述协议簇关系的方法流程图如图2所示,其具体步骤如下:
步骤201、新建XML文档;
步骤202、建立XML根元素,其名称为“protocol”,对应协议簇中最下层的协议;
步骤203、根据协议簇的协议关系建立XML非根元素,其名称均为“protocol”,对应协议簇中一个协议,XML文档中各XML父元素与子元素的层次关系,与协议簇中各协议间的层次关系一一对应;
步骤204、根据每个协议的性质添加每个XML元素的属性,添加的属性包括“名称”属性和“条件”属性,“名称”属性表示对应协议的名称;“条件”属性表示对应协议的使用条件;
步骤205、保存XML文档。
以上所述的使用XML描述以太网协议格式的方法和使用XML描述协议簇关系的方法,作为使用XML描述协议的方法的两个方面手段,存在依赖关系:使用XML描述以太网协议格式的方法可以生成描述一个指定以太网协议的具体格式的文档;使用XML描述协议簇关系的方法不针对某个指定的以太网协议的具体格式,但可以生成描述协议簇中各个协议相互关系的文档。在分析多层协议数据时,先根据特殊字段的数值,通过描述协议簇的文档挑选出匹配的协议,再根据对应协议的描述的协议格式文档对数据进行具体的解析。因此上述两个方面的手段不是单独存在,是相互结合起来构成本发明提出的使用XML描述协议的方法。
(2)基于上述XML描述协议的方法,本发明提供一种用于工业以太网协议解析系统,它是由硬件系统和软件系统两部分组成。
所述硬件系统包括:网络适配器和主机。该网络适配器没有特殊的要求,一般使用主机主板上集成的网络适配器,也可以使用通过主机主板插槽拓展的独立网络适配器。该主机使用个人计算机或工控机。硬件系统要求能够进行工业以太网通讯,一般支持上网功能的个人计算机和支持工业以太网通讯的工控机均可满足要求。
所述软件系统包括五个单元,分别是协议加载单元、协议库单元、数据捕获单元、协议匹配单元、数据解析单元,系统组成架构图如图3所示。
该协议加载单元是自主开发的程序,工作流程图如图4所示。该协议加载单元找到XML文档后,分析XML文档的结构和XML各元素的名称、属性,判断是否符合本发明提出的使用XML描述协议的方法规则,如果符合方法规则,则将XML文档转化成程序代码存储到协议库单元中;如果不符合方法规则,则报警提示XML文档编写错误。该协议加载单元的功能是将描述协议格式和协议簇关系的XML文档转化成程序代码保存储到协议库单元中。
该协议库单元是软件系统分配的一块存储区域,其大小由加载的协议个数决定。该协议库单元的功能是以程序代码的形式存储各种协议格式和协议簇关系。协议加载单元会添加新的协议进入协议库单元,协议匹配单元会在协议库单元中查找匹配的协议。
该数据捕获单元是使用Winpcap4.1平台开发而成,Winpcap4.1是针对Win32平台上的抓包和网络分析的一个免费、开放、公用的架构,提供了丰富的网络数据包捕获库函数。本单元直接使用Winpcap4.1提供的库函数,主要包括:1.捕捉网络适配器上原始以太网数据报文的函数;2.打开已保存的以太网数据文件的函数。该数据捕获单元的功能分为两种:第一种是捕获在网络适配器上面传输的原始工业以太网数据包,第二种是打开已保存的工业以太网数据文件,将原始工业以太网数据提取出来。数据捕获单元将原始工业以太网数据传递给数据解析单元。
该协议匹配单元是自主开发的程序,工作流程图如图5所示。该协议匹配单元在解析数据前,读取原始以太网数据的“以太网类型”字段的数值,并根据该数值在协议库单元中查找匹配的协议,如果能够找到匹配的协议,则将匹配的协议格式和协议簇关系提交给数据解析单元;如果没有找到匹配的协议,则会报警提示没有匹配的以太网协议,解析系统无法解析该工业以太网数据包。该协议匹配单元的功能是在协议库挑选匹配的协议格式和协议簇关系提交给数据解析单元。
该数据解析单元是自主开发的程序,工作流程图如图6所示。该数据解析单元首先接收数据捕捉单元传递的原始工业以太网数据和协议匹配单元提交的匹配的协议格式和协议簇关系;接着按照最下层的协议格式解析原始工业以太网数据,根据各个字段的长度、显示方式、循环等性质将原始工业以太网数据转化成解析数据;然后判断是否有上层协议,如果没有上层协议则说明解析过程完毕,如果有上层协议则根据协议簇关系中各个上层协议的使用条件挑选出匹配的上层协议,按照匹配的协议格式对原始工业以太网数据进行解析,然后再判断是否有上层协议,循环此过程直到所有层的协议数据均解析完毕;最后将生成的解析数据在主机显示器上输出显示。该数据解析单元的功能是按照匹配的协议将原始以太网数据进行解析,生成解析数据后在主机显示器上输出显示。
在编写完成描述各种协议格式和协议簇关系的XML文档后,所述的工业以太网协议解析系统可以开始工作。首先,所述的协议加载单元加载描述各种协议格式和协议簇关系的XML文档,生成程序代码存储至所述的协议库单元中;其次,所述的数据捕获单元捕捉网络中的原始工业以太网数据包,或打开已保存的工业以太网数据包文件,获得原始以太网数据传递给所述的数据解析单元;再次,所述的协议匹配单元根据原始以太网数据中“以太网类型”字段的数据值,在协议库查找出匹配的协议格式和协议簇关系提交给所述的数据解析单元;然后,所述的数据解析单元根据匹配的协议将原始以太网数据按层逐次解析,获得每个字段的数据值,生成解析数据在主机显示器上输出显示。
3、优点及功效
本发明提出的一种使用XML描述协议的方法及其建立的协议解析系统,与现有技术相比,最重要的改进在于采用了XML这种通用简易的语言标准来描述协议,使用XML文档作为协议解析系统的协议接口。这使得本发明提出的系统针对了工业以太网的发展特点,能够有效的支持工业以太网中新协议的扩展和重构,以及原有协议的修改和升级,能够实现多层协议的筛选、匹配、解析。更具体来讲,本发明具有以下优点:
1.解析系统支持任意层状的以太网协议格式,并且支持多层以太网协议,可以实现复杂的协议关系;
2.XML文档可读性高,协议解析系统的协议接口开发难度小、周期短;
3.XML文档结构固定,协议解析系统的协议接口的程序直观简单,方便不同开发者判断正误和修改,协议接口程序可靠性高;
4.XML文档结构完全开放,对于不同协议解析系统来说,只要采用相同的基于XML的协议描述方法,就可以实现协议接口的通用。
(四)附图说明
图1是使用XML描述以太网协议格式的方法流程图;
图2是使用XML描述以太网协议簇关系的方法流程图;
图3是本发明提出的一种使用XML描述协议的用于工业以太网协议解析的系统组成架构图;
图4是本发明提出的一种使用XML描述协议的用于工业以太网协议解析的系统的软件系统中协议加载单元的工作流程图;
图5是本发明提出的一种使用XML描述协议的用于工业以太网协议解析的系统的软件系统中协议匹配单元的工作流程图;
图6是本发明提出的一种使用XML描述协议的用于工业以太网协议解析的系统的软件系统中数据解析单元的工作流程图;
图7是工业以太网协议实例中SampleEther协议的结构框图;
图8是工业以太网协议实例中“指令协议”的结构框图;
图9是工业以太网协议实例中“状态协议”的结构框图;
图10是工业以太网协议实例中描述SampleEther协议格式的XML文档结构示意图;
图11是工业以太网协议实例中描述“指令协议”协议格式的XML文档结构示意图;
图12是工业以太网协议实例中描述“状态协议”协议格式的XML文档结构示意图;
图13是工业以太网协议实例中描述协议簇关系的XML文档结构示意图。
(五)具体实施方式
见图1、图2、图3,图1是使用XML描述以太网协议格式的方法流程图;图2是使用XML描述以太网协议簇关系的方法流程图;图3是本发明提出的一种使用XML描述协议的用于工业以太网协议解析的系统组成架构图。
以下结合一个工业以太网的具体实例,详细说明本发明一种使用XML描述协议的方法及其建立的协议解析系统。
本实例中包含三个协议SampleEther协议、“指令协议”和“状态协议”。实例中最下层的工业以太网协议为SampleEther协议,以太网类型为0xFFFF。该工业以太网实例的协议结构框图如图7所示,本实例中SampleEther协议结构比较简单:以太网帧头部字段采取标准的以太网数据帧格式,“数据报”字段由多个“子报文”字段组成,“子报文”字段是循环字段。“指令协议”和“状态协议”是SampleEther协议的两个上层协议,其协议结构框图如图8、图9。当SampleEther协议的“类型”字段数值为0x01时,SampleEther协议的“子报文数据”字段遵循“指令协议”,字段内的数据为运动指令数据;当SampleEther协议的“类型”字段为0x02时,“子报文数据”字段遵循“状态协议”,字段内的数据为运动状态数据。
三种协议的主要字段的名称、长度和含义如表2所示:
表2
字段名称 | 长度 | 意义 |
目的地址 | 6Byte | 目的mac地址 |
源地址 | 6Byte | 源mac地址 |
以太类型 | 2Byte | 以太网类型 |
字段名称 | 长度 | 意义 |
FCS | 4Byte | 帧校验序列 |
数据报长度 | 2Byte | “数据报”字段的长度 |
子报文长度 | 2Byte | “子报文数据”字段的长度 |
类型 | 7Bit | “子报文数据”字段使用的协议类型 |
后续 | 1Bit | 是否有后续子报文,有则为1,否则为0 |
子报文数据 | 由“子报文长度”字段指示 | 字段数据为上层协议数据 |
运动指令 | 4Byte | 控制运动的指令 |
参数长度 | 2Byte | “指令参数”或“状态参数”字段的长度 |
指令参数 | 由“参数长度”字段指示 | 和运动指令相关的参数 |
是否报警 | 1Byte | 是否出错报警,是则为1,否则为0 |
状态类型 | 4Byte | 运动状态的类型 |
状态参数 | 由“参数长度”字段指示 | 和状态类型相关的参数 |
首先利用本发明提出的使用XML描述协议的方法编写描述协议格式和协议簇关系的XML文档。具体过程分为两步:
第一步编写描述SampleEther协议、“指令协议”和“状态协议”三种协议的协议格式的XML文档,具体步骤为:步骤101、新建XML文档;步骤102、建立XML根元素;步骤103、根据协议的性质添加XML根元素属性;步骤104、根据协议中各字段的关系建立XML非根元素;步骤105、根据协议中各字段的性质添加XML非根元素的属性;步骤106、保存XML文档。
图10、图11、图12是描述SampleEther、“指令协议”和“状态协议”协议格式的XML文档结构示意图。结构示意图中方框表示一个XML元素,方框内的文字表示XML元素的名称,右边的文字表示XML元素的属性,连线表示层次关系。需要说明的是本实例中的XML文档结构示意图中的内容只体现编写XML文档的思想和方法,不能作为正式的代码,根据所示的XML文档结构示意图可以轻松的编写出符合协议描述方法要求的XML文档。
图10是描述SampleEther协议格式的XML文档结构示意图。在该XML文档中所述步骤102建立XML根元素名称为“root”,不对应SampleEther协议中的任何字段。所述步骤103中给XML根元素添加的“名称”属性值为SampleEther协议的名称“SampleEther”;“类型”属性值为SampleEther协议的以太网类型0xFFFF。所述步骤104中建立的所有XML非根元素名称均为“node”,分别对应协议中一个字段,而且XML父元素与子元素的层次关系与协议中字段的层次关系相同。所述步骤105中给XML非根元素添加的“名称”属性表示对应字段的名称;“长度”属性表示对应字段的长度,该属性的值有三种:①大部分是以字节(Byte)或位(Bit)为单位的确定的长度值,②“数据报”、“子报文数据”等字段对应的XML元素的“长度”属性的数值为“‘XXXX’字段指示”,表示该字段的长度等于“XXXX”字段的数值,③“子报文”字段对应的XML元素的“长度”属性的数值为“子字段长度合”,表示该字段的长度由所有的子字段长度总和决定;“显示方式”属性表示以什么样的格式显示对应字段的解析数据,表1为该属性为不同值表示的显示格式的例子,非叶元素没有“显示方式”属性;“循环”属性值表示对应字段的循环的方式,实例中只有“子报文数据”字段是循环字段,其对应的XML元素有“循环”属性,属性值为“‘后续’字段表示循环结束标志”,表示该字段以“后续”字段的数值作为循环结束标志,当数值不为0时,表示循环没有结束,否则循环结束。其他XML元素没有“循环”属性。
图11、图12是描述“指令协议”和“状态协议”协议格式的XML文档结构示意图,两个协议结构比较简单,编写XML文档的方法步骤和上面所述相同。
第二步编写描述该工业以太网实例协议簇关系的XML文档,具体步骤为:步骤101、新建XML文档;步骤202、建立XML根元素;步骤203、根据协议簇的协议关系建立XML非根元素;步骤204、根据每个协议的性质添加每个XML元素的属性;步骤205、保存XML文档。
图13是实例中描述协议簇关系的XML文档结构示意图。在该XML文档中,所述步骤202中建立的XML根元素名称为“protocol”,对应协议簇中最下层的协议SampleEther协议;所述步骤203中建立的两个XML元素名称均为“protocol”,分别对应“指令协议”和“状态协议”,两个XML元素是XML根元素的子元素表示“指令协议”和“状态协议”是SampleEther协议的两个上层协议;所述步骤204中给XML元素添加的“名称”属性的值表示对应协议的名称,“条件”属性的值表示对应协议的使用条件:SampleEther协议的使用条件是以太网类型为0xFFFF,“指令协议”的使用条件是SampleEther协议的“类型”字段的值为0x01,“状态协议”使用条件是SampleEther协议的“类型”字段的值为0x02。
编写完描述协议格式和协议簇关系的XML文档后,利用本发明提供的一种使用XML描述协议的用于工业以太网协议解析的系统对工业以太网进行解析。
本实例中协议解析系统的使用环境为:主机和其他通讯站点利用工业以太网实现工业控制通讯,协议解析系统在通讯的过程中捕捉到网络适配器上的传输的一个工业以太网数据包,经分析该工业以太网数据包遵循SampleEther协议,并有两种上层协议分别为“指令协议”和“状态协议”。协议解析系统按照由XML描述的协议内容,将数据包解析、显示。
本实例中协议解析系统硬件系统为:网络适配器是主机主板集成的网卡,网络芯片型号为Realtek8201BL。主机是普通的个人计算机,主要配置为:CPU型号为AMD“速龙”4200+,内存大小1G,硬盘大小250G,显卡型号为NVDIA GeForce 6150SE nForce 430。
本实例中协议解析系统软件系统包括有五个单元,分别是:
1.协议加载单元是自主开发的程序,工作流程图如图4所示。该协议加载单元找到XML文档后,分析XML文档的结构和XML各元素的名称、属性,判断是否符合本发明提出的使用XML描述协议的方法规则,如果符合方法规则,则将XML文档转化成程序代码存储到协议库单元中;如果不符合方法规则,则会报警提示XML文档编写错误。该协议加载单元的功能是将描述协议格式和协议簇关系的XML文档转化成程序代码保存储到协议库单元中。
2.协议库单元是一块存储区域,其大小由加载的协议个数决定。该协议库单元的功能是以程序代码的形式存储各种协议格式和协议簇关系。协议加载单元会添加新的协议进入协议库单元,协议匹配单元会在协议库单元中查找匹配的协议。
3.数据捕获单元是使用Winpcap4.1平台开发而成,Winpcap4.1是针对Win32平台上的抓包和网络分析的一个免费、开放、公用的架构,它提供了丰富的网络数据包捕获库函数。本单元直接使用Winpcap4.1提供的库函数,主要包括:1.捕捉网络适配器上原始以太网数据报文的函数;2.打开已保存的以太网数据文件的函数。该数据捕获单元的功能分为两种:第一种是捕获在网络适配器上面传输的原始工业以太网数据包,第二种是打开已保存的工业以太网数据文件,将原始工业以太网数据提取出来。数据捕获单元将原始工业以太网数据传递给数据解析单元。
4.协议匹配单元是自主开发的程序,工作流程图如图5所示。该协议匹配单元在解析数据前,读取原始以太网数据的“以太网类型”字段的数值,并根据该数值在协议库单元中查找匹配的协议,如果能够找到匹配的协议,则将匹配的协议格式和协议簇关系提交给数据解析单元;如果没有找到匹配的协议,则会报警提示没有匹配的以太网协议,解析系统无法解析该工业以太网数据包。该协议匹配单元的功能是在协议库挑选匹配的协议格式和协议簇关系提交给数据解析单元。
5.数据解析单元是自主开发的程序,工作流程图如图6所示。该数据解析单元首先接收数据捕捉单元传递的原始工业以太网数据和协议匹配单元提交的匹配的协议格式和协议簇关系;接着按照最下层的协议格式解析原始工业以太网数据,根据各个字段的长度、显示方式、循环等性质将原始工业以太网数据转化成解析数据;然后判断是否有上层协议,如果没有上层协议则说明解析过程完毕,如果有上层协议则根据协议簇关系中各个上层协议的使用条件挑选出匹配的上层协议,按照匹配的协议格式对原始工业以太网数据进行解析,然后再判断是否有上层协议,循环此过程直到所有层的协议数据均解析完毕;最后将生成的解析数据在主机显示器上输出显示。该数据解析单元的功能是按照匹配的协议将原始以太网数据进行解析,生成解析数据后在主机显示器上输出显示。
实例中,主机启动本发明提供的使用XML描述协议的用于工业以太网协议解析的系统后,所述的协议加载单元加载描述各种协议格式和协议簇关系的XML文档,包括与SampleEther协议相关的文档,生成程序代码存储至所述的协议库单元中。所述的数据捕获单元捕捉到一个网络中的原始以太网数据包,传递给所述的数据解析单元。所述的协议匹配单元解析出原始以太网数据的“以太网类型”字段的数据值为0xFFFF,在协议库查找出匹配的协议是SampleEther协议,将SampleEther协议和它的两个上层协议“指令协议”、“状态协议”以及协议簇关系提交给所述的数据解析单元。所述的数据解析单元按照SampleEther协议解析原始以太网数据,解析第一个“子报文”字段后得到“类型”字段数值为0x01,因此将“子报文数据”字段按照“指令协议”进行解析;“后续”字段为True(数值为1),因此“子报文”字段循环解析没有结束。继续解析第二个“子报文”字段后得到“类型”字段数值为0x02,因此将“子报文数据”字段按照“状态协议”进行解析;“后续”字段为False(数值为0),因此“子报文”字段循环解析结束。最后,所述的数据解析单元将解析数据在主机显示器上输出显示。表3为所述的数据解析单元解析原始以太网数据的说明。
表3
Claims (2)
1.一种使用XML描述协议的方法,其特征在于:它有两个方面:第一是使用XML描述以太网协议格式的方法;第二是使用XML描述协议簇关系的方法;
第一、使用XML描述以太网协议格式的方法,其具体步骤如下:
步骤101、新建XML文档;
步骤102、建立XML根元素;根元素的名称为“root”,不对应协议中的任何字段;
步骤103、根据协议的性质添加XML根元素属性;添加的根元素属性包括“名称”属性和“类型”属性,它们表示对应协议的性质:“名称”属性表示对应协议的名称,“类型”属性表示以太网协议类型或上层协议的类型;
步骤104、根据协议中各字段的关系建立XML非根元素;建立的非根元素名称均为“node”,分别对应协议中一个字段;XML文档中各XML父元素与子元素的层次关系,与协议中字段的层次关系一一对应;
步骤105、根据协议中各字段的性质添加XML非根元素的属性;添加的非根元素的属性包括“名称”、“长度”、“显示方式”、“循环”四种属性,它们分别表示对应字段的性质:“名称”属性表示对应字段的名称;“长度”属性表示对应字段的长度,该属性的值可以是三种,①以字节Byte或位Bit为单位的确定的长度值;②某字段的数值指示;③本字段的所有子字段长度值的合;“显示方式”属性表示以什么样的格式显示对应字段的解析数据;
步骤106、保存XML文档;
第二、使用XML描述协议簇关系的方法,其具体步骤如下:
步骤201、新建XML文档;
步骤202、建立XML根元素,其名称为“protocol”,对应协议簇中最下层的协议;
步骤203、根据协议簇的协议关系建立XML非根元素,其名称均为“protocol”,对应协议簇中一个协议,而且利用XML父元素与子元素的层次关系来表示协议簇中各协议间的层次关系;
步骤204、根据每个协议的性质添加每个XML元素的属性,添加的属性包括“名称”属性和“条件”属性,“名称”属性表示对应协议的名称;“条件”属性表示对应协议的使用条件;
步骤205、保存XML文档;
上述第一、二两个方面的方法手段存在着相互依赖关系:使用XML描述以太网协议格式的方法可以生成描述一个指定以太网协议的具体格式的文档;使用XML描述协议簇关系的方法不针对某个指定的以太网协议的具体格式,但可以生成描述协议簇中各个协议相互关系的文档;在分析多层协议数据时,先根据特殊字段的数值,通过描述协议簇的文档挑选出匹配的协议,再根据对应协议的描述的协议格式文档对数据进行具体的解析。
2.根据权利要求1所述的一种使用XML描述协议的方法所建立的用于工业以太网协议解析的系统,其特征在于:该系统使用XML描述协议的方法,即使用XML描述以太网协议格式的方法和使用XML描述协议簇关系的方法来进行工作;它是由硬件系统和软件系统两部分组成;
所述硬件系统包括:网络适配器和主机;该网络适配器没有特殊的要求,一般使用主机主板上集成的网络适配器,也可以使用通过主机主板插槽拓展的独立网络适配器;该主机使用个人计算机或工控机;硬件系统要求能够进行工业以太网通讯,一般支持上网功能的个人计算机和支持工业以太网通讯的工控机均可满足要求;
所述软件系统包括五个单元,分别是协议加载单元、协议库单元、数据捕获单元、协议匹配单元、数据解析单元;
该协议加载单元是将描述协议格式和协议簇关系的XML文档转化成程序代码保存储到协议库单元中;该协议库单元是一块存储区域,它是以程序代码的形式存储各种协议格式和协议簇关系;协议加载单元添加新的协议进入协议库单元,该协议匹配单元在协议库单元中查找匹配的协议;该数据捕获单元使用Winpcap4.1平台,该Winpcap4.1是针对Win32平台上的抓包和网络分析的一个免费、公用的架构,提供网络数据包捕获库函数;该数据捕获单元是捕获在网络适配器上面传输的原始工业以太网数据包,或打开已保存的工业以太网数据文件,将原始工业以太网数据提取出来;数据捕获单元将原始工业以太网数据传递给数据解析单元;该协议匹配单元的功能是在解析数据前,根据以太网类型字段的数值,在协议库挑选匹配的协议格式和协议簇关系提交给数据解析单元;该数据解析单元接收数据捕捉单元传递的原始工业以太网数据和协议匹配单元提交的的匹配的协议格式和协议簇关系,按照匹配的协议将原始以太网数据进行解析,生成解析数据在主机显示器上输出显示。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010137407 CN101834848B (zh) | 2010-03-29 | 2010-03-29 | 一种使用xml描述协议的方法及其建立的协议解析系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010137407 CN101834848B (zh) | 2010-03-29 | 2010-03-29 | 一种使用xml描述协议的方法及其建立的协议解析系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101834848A true CN101834848A (zh) | 2010-09-15 |
CN101834848B CN101834848B (zh) | 2013-04-24 |
Family
ID=42718779
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010137407 Expired - Fee Related CN101834848B (zh) | 2010-03-29 | 2010-03-29 | 一种使用xml描述协议的方法及其建立的协议解析系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101834848B (zh) |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101944025A (zh) * | 2010-09-16 | 2011-01-12 | 福建鑫诺通讯技术有限公司 | 基于python语言的tcp/udp数据的自动组包与解包的方法 |
CN102769610A (zh) * | 2012-04-26 | 2012-11-07 | 新奥特(北京)视频技术有限公司 | 一种从xml文件筛选信息的方法 |
CN103117900A (zh) * | 2013-02-01 | 2013-05-22 | 山东大学 | 一种可配置式工业以太网数据解析系统及解析方法 |
CN103166927A (zh) * | 2011-12-14 | 2013-06-19 | 航天信息股份有限公司 | 一种xml通信协议动态管理方法 |
CN106657075A (zh) * | 2016-12-26 | 2017-05-10 | 东软集团股份有限公司 | 多层协议解析方法、装置及数据匹配方法和装置 |
CN106814998A (zh) * | 2015-11-27 | 2017-06-09 | 阿里巴巴集团控股有限公司 | 表单序列化方法及装置 |
CN107306256A (zh) * | 2016-04-22 | 2017-10-31 | 上海真虹信息科技有限公司 | 一种基于字符串类型数据的通讯协议解析方法 |
CN108494752A (zh) * | 2018-03-09 | 2018-09-04 | 万帮充电设备有限公司 | 一种协议的解析方法和装置 |
CN109246150A (zh) * | 2018-11-02 | 2019-01-18 | 唐山华洋自动化有限公司 | 基于移动互联网的监测设备数据传输协议远程控制系统 |
CN109462622A (zh) * | 2019-01-15 | 2019-03-12 | 中电工业互联网有限公司 | 一种跨行业的协议解析系统及方法 |
CN109525364A (zh) * | 2018-10-30 | 2019-03-26 | 北京计算机技术及应用研究所 | 一种基于xml的通信数据协议通用化描述方法 |
CN109818926A (zh) * | 2018-12-25 | 2019-05-28 | 西安长远电子工程有限责任公司 | 一种无需预先规划的通信方法 |
CN109992554A (zh) * | 2019-03-12 | 2019-07-09 | 中国科学院国家空间科学中心 | 一种基于通用的Schema结构描述的1553B总线通信协议的实现方法 |
CN110198254A (zh) * | 2019-05-31 | 2019-09-03 | 卡斯柯信号有限公司 | 一种通信协议在线诊断方法及诊断系统 |
CN110474915A (zh) * | 2019-08-20 | 2019-11-19 | 苏州恒志汇智能科技有限公司 | 一种工业协议动态自适应适配系统的设计方法 |
CN110839022A (zh) * | 2019-10-31 | 2020-02-25 | 四川航天系统工程研究所 | 一种基于xml语言的车载控制软件通信协议解析方法 |
CN111741019A (zh) * | 2020-07-28 | 2020-10-02 | 常州昊云工控科技有限公司 | 一种基于字段描述的通信协议解析方法和系统 |
CN112054934A (zh) * | 2019-06-05 | 2020-12-08 | 杭州海康威视系统技术有限公司 | 一种协议检测方法、装置及电子设备 |
CN112866269A (zh) * | 2021-01-29 | 2021-05-28 | 建信金融科技有限责任公司 | 基于xml协议文件的数据处理方法、装置及电子设备 |
CN113347196A (zh) * | 2021-06-21 | 2021-09-03 | 浙江理工大学 | 一种对网络数据进行解析的解析方法、装置、电子设备以及存储介质 |
CN115134432A (zh) * | 2021-03-22 | 2022-09-30 | 中国科学院沈阳自动化研究所 | 一种多工业通信协议自适应快速解析方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000077692A2 (de) * | 1999-06-09 | 2000-12-21 | Daimlerchrysler Ag | Fahrzeugelektrik-konfigurationssystem |
CN1525714A (zh) * | 2003-02-25 | 2004-09-01 | 华为技术有限公司 | 一种asn.1协议处理器 |
CN1607774A (zh) * | 2003-10-13 | 2005-04-20 | 上海燃料电池汽车动力系统有限公司 | 用xml语言对车用can通讯网络进行描述的方法 |
CN101388905A (zh) * | 2008-10-09 | 2009-03-18 | 浙江大学 | 一种基于移动设备的简单对象访问协议引擎实现方法 |
-
2010
- 2010-03-29 CN CN 201010137407 patent/CN101834848B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000077692A2 (de) * | 1999-06-09 | 2000-12-21 | Daimlerchrysler Ag | Fahrzeugelektrik-konfigurationssystem |
CN1525714A (zh) * | 2003-02-25 | 2004-09-01 | 华为技术有限公司 | 一种asn.1协议处理器 |
CN1607774A (zh) * | 2003-10-13 | 2005-04-20 | 上海燃料电池汽车动力系统有限公司 | 用xml语言对车用can通讯网络进行描述的方法 |
CN101388905A (zh) * | 2008-10-09 | 2009-03-18 | 浙江大学 | 一种基于移动设备的简单对象访问协议引擎实现方法 |
Cited By (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101944025A (zh) * | 2010-09-16 | 2011-01-12 | 福建鑫诺通讯技术有限公司 | 基于python语言的tcp/udp数据的自动组包与解包的方法 |
CN103166927A (zh) * | 2011-12-14 | 2013-06-19 | 航天信息股份有限公司 | 一种xml通信协议动态管理方法 |
CN103166927B (zh) * | 2011-12-14 | 2016-02-17 | 航天信息股份有限公司 | 一种xml通信协议动态管理方法 |
CN102769610A (zh) * | 2012-04-26 | 2012-11-07 | 新奥特(北京)视频技术有限公司 | 一种从xml文件筛选信息的方法 |
CN103117900A (zh) * | 2013-02-01 | 2013-05-22 | 山东大学 | 一种可配置式工业以太网数据解析系统及解析方法 |
CN103117900B (zh) * | 2013-02-01 | 2015-07-08 | 山东大学 | 一种可配置式工业以太网数据解析系统及解析方法 |
CN106814998B (zh) * | 2015-11-27 | 2020-08-25 | 菜鸟智能物流控股有限公司 | 表单序列化方法及装置 |
CN106814998A (zh) * | 2015-11-27 | 2017-06-09 | 阿里巴巴集团控股有限公司 | 表单序列化方法及装置 |
CN107306256A (zh) * | 2016-04-22 | 2017-10-31 | 上海真虹信息科技有限公司 | 一种基于字符串类型数据的通讯协议解析方法 |
CN106657075A (zh) * | 2016-12-26 | 2017-05-10 | 东软集团股份有限公司 | 多层协议解析方法、装置及数据匹配方法和装置 |
CN106657075B (zh) * | 2016-12-26 | 2019-11-15 | 东软集团股份有限公司 | 多层协议解析方法、装置及数据匹配方法和装置 |
CN108494752A (zh) * | 2018-03-09 | 2018-09-04 | 万帮充电设备有限公司 | 一种协议的解析方法和装置 |
CN108494752B (zh) * | 2018-03-09 | 2021-03-16 | 万帮星星充电科技有限公司 | 一种协议的解析方法和装置 |
CN109525364A (zh) * | 2018-10-30 | 2019-03-26 | 北京计算机技术及应用研究所 | 一种基于xml的通信数据协议通用化描述方法 |
CN109246150A (zh) * | 2018-11-02 | 2019-01-18 | 唐山华洋自动化有限公司 | 基于移动互联网的监测设备数据传输协议远程控制系统 |
CN109818926A (zh) * | 2018-12-25 | 2019-05-28 | 西安长远电子工程有限责任公司 | 一种无需预先规划的通信方法 |
CN109462622A (zh) * | 2019-01-15 | 2019-03-12 | 中电工业互联网有限公司 | 一种跨行业的协议解析系统及方法 |
CN109462622B (zh) * | 2019-01-15 | 2021-05-28 | 中电工业互联网有限公司 | 一种跨行业的协议解析系统及方法 |
CN109992554A (zh) * | 2019-03-12 | 2019-07-09 | 中国科学院国家空间科学中心 | 一种基于通用的Schema结构描述的1553B总线通信协议的实现方法 |
CN110198254A (zh) * | 2019-05-31 | 2019-09-03 | 卡斯柯信号有限公司 | 一种通信协议在线诊断方法及诊断系统 |
CN112054934A (zh) * | 2019-06-05 | 2020-12-08 | 杭州海康威视系统技术有限公司 | 一种协议检测方法、装置及电子设备 |
CN112054934B (zh) * | 2019-06-05 | 2022-06-03 | 杭州海康威视系统技术有限公司 | 一种协议检测方法、装置及电子设备 |
CN110474915A (zh) * | 2019-08-20 | 2019-11-19 | 苏州恒志汇智能科技有限公司 | 一种工业协议动态自适应适配系统的设计方法 |
CN110839022A (zh) * | 2019-10-31 | 2020-02-25 | 四川航天系统工程研究所 | 一种基于xml语言的车载控制软件通信协议解析方法 |
CN111741019A (zh) * | 2020-07-28 | 2020-10-02 | 常州昊云工控科技有限公司 | 一种基于字段描述的通信协议解析方法和系统 |
CN112866269A (zh) * | 2021-01-29 | 2021-05-28 | 建信金融科技有限责任公司 | 基于xml协议文件的数据处理方法、装置及电子设备 |
CN115134432A (zh) * | 2021-03-22 | 2022-09-30 | 中国科学院沈阳自动化研究所 | 一种多工业通信协议自适应快速解析方法 |
CN115134432B (zh) * | 2021-03-22 | 2023-09-12 | 中国科学院沈阳自动化研究所 | 一种多工业通信协议自适应快速解析方法 |
CN113347196A (zh) * | 2021-06-21 | 2021-09-03 | 浙江理工大学 | 一种对网络数据进行解析的解析方法、装置、电子设备以及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN101834848B (zh) | 2013-04-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101834848B (zh) | 一种使用xml描述协议的方法及其建立的协议解析系统 | |
CN101420437B (zh) | 一种原型系统与hla仿真系统的接口设备 | |
US7203929B1 (en) | Design data validation tool for use in enterprise architecture modeling | |
CN102164050B (zh) | 日志解析方法及日志解析节点设备 | |
US20030018661A1 (en) | XML smart mapping system and method | |
US20120159306A1 (en) | System And Method For Processing XML Documents | |
CN101968800A (zh) | 基于元数据驱动的动态表单方法 | |
CN110912782B (zh) | 一种数据采集方法、装置及存储介质 | |
CN111159215B (zh) | Java类与关系型数据库的映射方法、装置及计算设备 | |
CN104468274A (zh) | 一种集群监控管理方法及系统 | |
Inverardi et al. | Automated check of architectural models consistency using SPIN | |
CN104967686A (zh) | 一种构建面型3s智慧服务商店系统及其设计方法 | |
US8918765B2 (en) | Auto-documenting based on real-time analysis of code execution | |
US9129035B2 (en) | Systems, methods, and apparatus for accessing object representations of data sets | |
CN114428728A (zh) | 信息物理测试协议处理系统及方法 | |
CN106649837B (zh) | 数据库兼容方法 | |
EP2660729A1 (en) | Device and method for storing mass data based on tree structure | |
CN111508562A (zh) | 流程描述性语言的可视化显示方法、装置、设备和介质 | |
US20110035410A1 (en) | Processing apparatus and program | |
JP4776389B2 (ja) | 符号化文書復号方法及びシステム | |
CN111142989B (zh) | 对象管理方法、装置及存储介质 | |
US20150081672A1 (en) | Automatic conversion of units of measure during data stream processing | |
CN101794240A (zh) | 一种聚合数据内容的方法和系统 | |
CN111797278A (zh) | 一种映射关联对象与关系的方法 | |
CN111258884A (zh) | 一种用于自动生成接口准确性校验脚本的系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130424 Termination date: 20150329 |
|
EXPY | Termination of patent right or utility model |