一种基于通信协议通用描述的协议解码方法及装置制造方法及图纸

技术编号:37293145 阅读:33 留言:0更新日期:2023-04-21 03:24
本发明专利技术属于通信协议技术领域,提供了一种基于通信协议通用描述的协议解码方法及装置。其中,基于通信协议通用描述的协议解码方法基于描述方法的描述文件对通信协议数据报文进行协议匹配、协议解码。协议匹配基于协议匹配项将通信原始报文进行协议匹配,匹配成功后获得协议ID;协议解码根据协议匹配获得的协议ID,加载协议数据项进行自动解码,解码输出对象实例或json格式数据。象实例或json格式数据。象实例或json格式数据。

【技术实现步骤摘要】
一种基于通信协议通用描述的协议解码方法及装置


[0001]本专利技术属于通信协议
,尤其涉及一种基于通信协议通用描述的协议解码方法及装置。

技术介绍

[0002]本部分的陈述仅仅是提供了与本专利技术相关的
技术介绍
信息,不必然构成在先技术。
[0003]在物联网和互联网通信中,设备通信中大量使用了通信协议,有标准协议和私有协议,尤其是没有相关标准的情况下,各设备厂家大量使用了企业内部指定的私有协议。无论是标准协议还是私有协议,针对运行在这些设备上的协议解码(也称解析)都需要大量的开发维护工作。
[0004]专利技术人发现,现有的通信协议解码方法通常采用“硬编码”方式编写代码方式实现。针对每一种通信协议,都需要专门开发一套代码对通信协议数据进行解析,代码编写工作量大、花费时间长;由于缺陷修复或需求变化,即便协议结构一样,但是协议包含数据不一样,也要重复编写代码进行编码,导致代码冗余,维护困难,代码很难复用。

技术实现思路

[0005]为了解决上述
技术介绍
中存在的技术问题,本专利技术提供一种基于通信协议通用描述的协议解码方法及装置,其能够满足通用性以及私有协议的定制性,能够提高系统或设备开发效率,降低工作量和成本。
[0006]为了实现上述目的,本专利技术采用如下技术方案:
[0007]本专利技术的第一个方面提供一种基于通信协议通用描述的协议解码方法。
[0008]一种基于通信协议通用描述的协议解码方法,其包括:
[0009]获取通信协议的通用描述文件,校验通用描述文件的格式,解析描述文件中的元素;
[0010]将通信协议描述文件中的协议匹配项相关元素和属性转换为通信协议匹配对象,以及将通信协议描述文件中的协议数据项相关元素和属性转换为通信协议数据对象;
[0011]通信侦听获取通信原始报文数据;
[0012]基于协议匹配项将通信原始报文数据进行协议匹配;
[0013]根据协议匹配结果,进行协议解码,输出对象实例或json格式数据;
[0014]其中,通信协议的通用描述文件将每个通信协议指令分为协议通用描述项、协议匹配项和和协议数据项进行描述;
[0015]所述协议通用描述项,用于定义协议通用描述说明;所述协议匹配项,用于定义软件系统自动化匹配协议指令的匹配条件;所述协议数据项,用于定义协议的构成元素。
[0016]作为一种实施方式,所述协议通用描述项包括协议指令的唯一ID定义、协议指令解析或编码结果存储对应类名定义、校验项定义、校验数据区定义、消息数据区长度项定义
和消息数据区定义。
[0017]作为一种实施方式,所述协议匹配项包括字节条件项和比特条件项。
[0018]作为一种实施方式,所述协议数据项包括字节项、比特项、重复项、Tag项、子协议项和加密块。
[0019]作为一种实施方式,在基于协议匹配项将通信原始报文数据进行协议匹配的过程中:
[0020]协议报文数据和协议匹配对象集合作为输入项,根据协议匹配对象集合中的定义,获取指定位置的报文数据,按照类型进行转换,转换后的值与描述文件中的value值,按照描述文件中的运算符operator进行运算;
[0021]当逻辑运算结果为true时,本匹配条件满足,继续下一匹配条件验证,直到本协议指令的所有匹配条件均满足时,则视为报文数据与本协议指令匹配成功,输出协议ID。
[0022]作为一种实施方式,在基于协议匹配项将通信原始报文数据进行协议匹配的过程中:
[0023]当本协议指令单任一条件匹配失败时,则结束本协议指令匹配对象的比较匹配,进行下一协议指令描述文件的匹配对象集合的比较匹配;
[0024]当所有协议指令的匹配对象集合均匹配失败时,则表示协议报文数据与协议描述文件不匹配,记录日志,结束处理。
[0025]本专利技术的第二个方面提供了一种基于通信协议通用描述的协议解码装置。
[0026]一种基于通信协议通用描述的协议解码装置,其包括:
[0027]元素解析模块,其用于获取通信协议的通用描述文件,校验通用描述文件的格式,解析描述文件中的元素;
[0028]元素转换模块,其用于将通信协议描述文件中的协议匹配项相关元素和属性转换为通信协议匹配对象,以及将通信协议描述文件中的协议数据项相关元素和属性转换为通信协议数据对象;
[0029]通信侦听模块,其用于通信侦听获取通信原始报文数据;
[0030]协议匹配模块,其用于基于协议匹配项将通信原始报文数据进行协议匹配;
[0031]协议解码模块,其用于根据协议匹配结果,进行协议解码,输出对象实例或json格式数据;
[0032]其中,通信协议的通用描述文件将每个通信协议指令分为协议通用描述项、协议匹配项和和协议数据项进行描述;
[0033]所述协议通用描述项,用于定义协议通用描述说明;所述协议匹配项,用于定义软件系统自动化匹配协议指令的匹配条件;所述协议数据项,用于定义协议的构成元素。
[0034]所述协议通用描述项包括协议指令的唯一ID定义、协议指令解析或编码结果存储对应类名定义、校验项定义、校验数据区定义、消息数据区长度项定义和消息数据区定义。
[0035]本专利技术的第三个方面提供一种计算机可读存储介质。
[0036]在一个或多个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述基于通信协议通用描述的协议解码方法中的步骤。
[0037]本专利技术的第四个方面提供一种计算机设备。
[0038]一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的
计算机程序,所述处理器执行所述程序时实现如上述所述的基于通信协议通用描述的协议解码方法中的步骤。
[0039]与现有技术相比,本专利技术的有益效果是:
[0040](1)本专利技术的通信协议通用描述方法,对通信过程使用的标准协议和私有协议提供了一种通用的标准化描述方法,描述简单,描述能力完整强大,在编码和解码程序代码实现中可以根据协议描述本身实现动态编码和解码。通用描述方法支持协议识别匹配的描述,支持按照字节和比特的协议构成数据项的定义,支持无符号数的描述,支持协议项的不同字节序,支持字符串编码格式描述,支持变长字符串,支持子协议,支持协议项多层级灵活嵌套,支持变长的重复项,尤其是应用广泛的TLV编码重复项,支持协议项是否在报文中出现的表达式描述,支持协议项数值转换的表达式,支持协议完整性校验、协议加密描述,支持解码、编码、校验、加密、解密的内置方法和自定义方法(函数)描述。
[0041](2)基于通信协议通用描述的协议解码方法,可以实现通信协议的大多数情况下通用、动态解码,满足了通用性,又具有扩展性。方法中协议匹配支持多种产品、多种协议版本的通信协议的混合接入,可以对协议进行动态识别,快速精准匹配的协议描述文件;协议解码方法实现了绝大多数通信解码需求的覆盖,无需本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于通信协议通用描述的协议解码方法,其特征在于,包括:获取通信协议的通用描述文件,校验通用描述文件的格式,解析描述文件中的元素;将通信协议描述文件中的协议匹配项相关元素和属性转换为通信协议匹配对象,以及将通信协议描述文件中的协议数据项相关元素和属性转换为通信协议数据对象;通信侦听获取通信原始报文数据;基于协议匹配项将通信原始报文数据进行协议匹配;根据协议匹配结果,进行协议解码,输出对象实例或json格式数据;其中,通信协议的通用描述文件将每个通信协议指令分为协议通用描述项、协议匹配项和和协议数据项进行描述;所述协议通用描述项,用于定义协议通用描述说明;所述协议匹配项,用于定义软件系统自动化匹配协议指令的匹配条件;所述协议数据项,用于定义协议的构成元素。2.如权利要求1所述的基于通信协议通用描述的协议解码方法,其特征在于,所述协议通用描述项包括协议指令的唯一ID定义、协议指令解析或编码结果存储对应类名定义、校验项定义、校验数据区定义、消息数据区长度项定义和消息数据区定义。3.如权利要求1所述的基于通信协议通用描述的协议解码方法,其特征在于,所述协议匹配项包括字节条件项和比特条件项。4.如权利要求1所述的基于通信协议通用描述的协议解码方法,其特征在于,所述协议数据项包括字节项、比特项、重复项、Tag项、子协议项和加密块。5.如权利要求1所述的基于通信协议通用描述的协议解码方法,其特征在于,在基于协议匹配项将通信原始报文数据进行协议匹配的过程中:协议报文数据和协议匹配对象集合作为输入项,根据协议匹配对象集合中的定义,获取指定位置的报文数据,按照类型进行转换,转换后的值与描述文件中的value值,按照描述文件中的运算符operator进行运算;当逻辑运算结果为true时,本匹配条件满足,继续下一匹配条件验证,直到本协议指令的所有匹配条件均满足时,则视为报文数据与本协议指令匹配成功,输出协议ID。6.如权利要求1所述的基于通信协议通用描述的协议解码方法,其特征在于,在基于协议...

【专利技术属性】
技术研发人员:张勇郝敬全刘晓莉刘大扬马述杰
申请(专利权)人:山东泰华照明科技有限公司
类型:发明
国别省市:

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

1