[发明专利]一种通讯数据流的通用数据解析平台及方法有效
| 申请号: | 201910166726.5 | 申请日: | 2019-03-06 |
| 公开(公告)号: | CN109981599B | 公开(公告)日: | 2022-01-18 |
| 发明(设计)人: | 李胜;柴培健;许曜鑫 | 申请(专利权)人: | 南京理工大学 |
| 主分类号: | H04L69/08 | 分类号: | H04L69/08;H04L69/22 |
| 代理公司: | 南京理工大学专利中心 32203 | 代理人: | 薛云燕 |
| 地址: | 210094 江*** | 国省代码: | 江苏;32 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 通讯 数据流 通用 数据 解析 平台 方法 | ||
1.一种通讯数据流的通用数据解析平台,其特征在于,包括源数据封装包、参数化配置列表和报文通用处理系统;
所述源数据封装包,用于将系统监听口监听所得的数据,以二进制码形式基于TLV规范编码格式封装成包,并以.bin格式文件存入指定缓冲区;
所述参数化配置列表,用于根据预先设定的参数,对源数据封装包中的不同类型具体报文内容进行正则表达式匹配,获取匹配规则对应的状态编号和内容的位置信息;根据预先设定的参数化配置列表,获取与状态编号对应的通用规则,并根据通用规则和位置信息及缓存的待解析报文,输出需要的字段,等待解析;
所述报文通用处理系统,包括报文通用性解析模块,用于解析储存在参数化配置列表中的全局数组;
所述的缓冲区,具体如下:
所述缓冲区是一种关联式容器Map,该容器Map中每一个元素由一个键值和一个数据值组成;该容器Map使用红黑树的平衡二叉树数据结构,将源数据封装包按一条一条的报文数据存入每一个元素的数据值中;该容器Map具有删除元素的特点。
2.根据权利要求1所述的通讯数据流的通用数据解析平台,其特征在于,所述的TLV规范编码格式,具体如下:
每个TLV规范编码格式的基本的源数据元包括三个域:
“T”指Tag,是源数据元的唯一标识,描述Value的数据类型,在TLV嵌套时用于描述消息的类型;Tag由一个或多个字节组成;自定义TLV编码中,Tag描述不同报文具体源数据元的唯一标识;
“L”指Length,描述Value的长度,自定义TLV编码中,Length描述Value部分所占字节的个数;编码格式分为两类:定长方式和不定长方式,其中定长方式又包括短形式与长形式;
“V”指Value,描述该条源数据元的具体内容;Value由一个或多个值组成。
3.根据权利要求2所述的通讯数据流的通用数据解析平台,其特征在于,所述的TLV编码中Length的两类编码格式中,短形式与长形式具体如下:
定长方式中,短形式是指Value类型长度不超过127,Length只需要一个8位,其字节第7位为0的字节来表示;
定长方式中,长形式是指Value类型长度大于127时,Length需要多个字节来描述,这时第一个字节的第7位置为1,0~6位用来描述Length值占用的字节数,然后将Length值转为BYTE后附在第一个字节后。
4.根据权利要求1所述的通讯数据流的通用数据解析平台,其特征在于,所述的参数化配置列表,具体如下:
所述参数化配置列表,基于“黑盒子”思想,预先将不同报文具体内容参数化存入配置文件.ini中,若用户指令为载入配置文件指令,则可同时载入多个报文的参数化配置列表,每一个参数化配置列表即代表一种报文;
所述参数化配置列表由节、键、值组成,预先按统一格式编写,其中节按具体报文内容从0至n依次填写;键按通用格式编写,该通用格式对应代码中的结构体;值是键对应的具体内容。
5.根据权利要求4所述的通讯数据流的通用数据解析平台,其特征在于,所述的通用格式,具体如下:
标题:用于表示该报文源数据元的唯一标识Tag,并作为生成文件名;
描述:为报文协议具体的内容Value;
关联:为该.ini文件关联到源数据封装包中该条报文具体的字节位置;
特征属性:为通用报文格式,包括该条报文的某个具体内容的位置、该条报文的长度、输入的类型、输出的格式、有无分辨率。
6.一种通讯数据流的通用数据解析方法,其特征在于,该方法基于权利要求1~5任一项所述的通讯数据流的通用数据解析平台,具体包括以下步骤:
步骤1、定义一种由“特征块”为基本单位组成的通用数据格式,依据抽象的数据格式描述创建具体的报文数据格式,得到报文数据帧格式;通用数据格式由标识块、特征块结构体和校验块组成,其中,标识块是报文种类的源数据元的唯一标识Tag,是该类报文第一个字节;校验块是用于判别该类报文是否需要解析;
步骤2、用C++语言为“特征块”定义特征块结构体;特征块结构体包括特征块字节数的变量、特征块属性的变量和为特征块结构体选择输出格式的变量;
步骤3、读取步骤1中定义的通用数据格式,根据参数化配置列表填充步骤2中定义的特征块结构体、特征块的相对位置与字节数,确定解析时序,并通过读取参数化配置列表为特征块结构体选择输出格式;
步骤4、对源数据封装包进行解析,源数据封装包是字节流,解析时,首先从预先编写的参数化配置列表中读出位置偏量,位置偏量是当前数据帧字节数与当前特征块结构体的位置之差;然后根据迭代器iterator循环遍历容器Map中所有报文,根据特征块结构体中的源数据元的唯一标识Tag确定所需解析的报文;接着根据当前特征块结构体的属性从相应报文数据流中的该特征块结构体进行字节解析,当该特征块结构体解析完毕后,将特征块结构体进行步骤3中的条件选择语句,选择合适的输出格式进行输出;最后设置特征块结构体偏移,进行下一特征块结构体的解析,直至该条报文解析完毕;
步骤5、该条报文解析完毕后,通过容器Map的删除元素erase()函数删除该条报文,将迭代器从遍历M条报文变为遍历M-1条报文,以此类推,直至迭代器只需遍历一次即可检索到所需属性的特征报文,最后进行步骤1~步骤4完成解析。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京理工大学,未经南京理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910166726.5/1.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置





