一种私有协议解析与可配置字段重组的数据转发方法与流程
本发明涉及计算机网络通信及软件网关的,具体而言,涉及一种私有协议解析与可配置字段重组的数据转发方法。
背景技术:
1、在工业控制、车载测试及专用设备通信领域,设备间的数据交互普遍采用基于用户数据报协议(user datagram protocol,udp)或传输控制协议(transmission controlprotocol,tcp)的私有二进制协议;此类私有协议通常以定长数据包为基本传输单元,单包数据内混合集成多种位宽的有符号/无符号整型、浮点型连续数值,以及按位复用的状态字、故障字等字段,数据密度高、格式结构复杂;协议的包头定义、特征码规则及字段排列顺序属于设备厂商的核心商业机密,具备较高的保密要求,通常不允许向第三方接收端直接公开原始协议规范与原始二进制数据流。
2、目前针对此类私有协议的数据转发,主要采用透传网关或硬编码解析网关两类方案实现;透传网关直接对原始二进制数据流进行转发,原始协议的字节结构、字段排布规则完全暴露于第三方接收端,极易通过逆向工程解析出设备的通信逻辑与控制规则,存在较高的数据安全与商业机密泄露风险;硬编码解析网关将协议解析规则固化于程序代码中,存在两方面明显缺陷:针对位复用的状态字字段,第三方接收端仍需自行完成位掩码、位移等复杂运算才能提取有效状态量,且不同设备的数值分辨率系数存在差异,第三方集成时需针对每类设备重复开发解析适配代码,对接开发成本高、易出现解析精度偏差;当第三方仅需获取部分指定字段时,现有网关无法灵活实现字段的按需抽取与报文结构的重新组合,协议字段增减、输出顺序调整均需修改底层代码并重启网关服务,适配灵活性差,难以满足多场景下的差异化数据分发需求。
3、综上,现有私有协议转发技术无法同时兼顾协议保密安全、数据解析标准化与转发配置灵活性,难以适配工业与车载场景下第三方数据按需分发的实际需求,因此亟需一种能够实现协议深度脱敏、数据类型统一标准化且支持动态字段重组的转发技术方案。
技术实现思路
1、本发明实施例提供一种私有协议解析与可配置字段重组的数据转发方法,以至少解决现有私有二进制协议数据转发网关存在原始协议结构直接暴露易被逆向破解、下游需自行完成数值缩放与位域拆解、转发字段及排列顺序无法按需动态定制,导致协议安全保密性差、第三方对接成本高、配置适配灵活性不足的技术问题。
2、根据本发明实施例的一个方面,提供了一种私有协议解析与可配置字段重组的数据转发方法。该方法可以包括:当接收到数据包后,提取数据包的包头字节,数据包为上游设备基于私有二进制协议封装并通过用户数据报协议发送的定长报文,包头字节位于数据包的起始固定字节区间;对包头字节进行同步字校验,同步字校验通过后,对包头字节进行特征码校验,若同步字校验或者特征码校验不通过,则丢弃数据包;若特征码校验通过,基于特征码校验通过的特征码匹配对应的协议规则;基于协议规则对数据包的数据负载部分进行切片解包,生成需要解析传输的数据组,数据负载部分为数据包除包头以外的区域;基于数据组中字段的数据类型,对数据组中的至少一个字段进行标准化转换,得到标准化转换后的字段;获取待转发字段列表,基于待转发字段列表对标准化转换后的字段进行重新组合封装,生成输出数据包,待转发字段列表用于指示允许对外转发的字段范围以及各个字段在输出数据包中的排列顺序;将生成的输出数据包发送至用户配置的目标网际协议地址与目标端口。
3、可选地,基于数据组中的字段的数据类型,对数据组中的至少一个字段进行标准化转换,得到标准化转换后的字段,包括:当数据类型为连续数值型的字段时,按照协议规则中对应字段的分辨率系数进行乘法缩放,将字段还原为真实物理值;当数据类型为位域状态字的字段时,采用位掩码算法将字段拆解为独立的布尔状态量或者单字节状态量。
4、可选地,获取待转发字段列表,包括:通过图形用户界面获取用户对字段的可视化勾选操作,生成待转发字段列表,待转发字段列表中各字段的顺序由用户在图形用户界面上的勾选顺序直接决定。
5、可选地,基于待转发字段列表对标准化转换后的字段进行重新组合封装,生成输出数据包,包括:基于待转发字段列表中的字段顺序,从标准化转换后的字段中提取字段;将提取的连续数值型的字段封装为单精度浮点数二进制流;将提取的位域状态字的字段封装为标准单字节二进制流;将单精度浮点数二进制流和标准单字节二进制流按字段顺序进行字节级拼接,生成输出数据包。
6、可选地,在提取数据包的包头字节之前,方法还包括:基于预设的网际协议地址白名单对接入数据包的源地址进行过滤,当网际协议白名单包含源地址时,提取数据包的包头字节。
7、可选地,方法还包括:当存在新增私有协议类型时,补充私有协议对应的特征码与特征码匹配的协议规则。
8、根据本发明实施例的另一个方面,提供了一种私有协议解析与可配置字段重组的数据转发系统,该系统包括:网络接收模块,用于接收数据包,并基于预设的网际协议地址白名单对接入数据包的源地址进行过滤;数据隔离模块,用于对包头字节进行同步字校验,同步字校验通过后,对包头字节进行特征码校验,若同步字校验或者特征码校验不通过,则丢弃数据包;若特征码校验通过,基于特征码校验通过的特征码匹配对应的协议规则;解析模块,用于基于协议规则对数据包的数据负载部分进行切片解包,生成需要解析传输的数据组;基于数据组中字段的数据类型,对数据组中的至少一个字段进行标准化转换,得到标准化转换后的字段;可视化ui配置模块,用于动态生成带有标签页分类的协议字段复选框,并获取待转发字段列表;数据重组模块,用于基于待转发字段列表对标准化转换后的字段进行重新组合封装,生成输出数据包,待转发字段列表用于指示允许对外转发的字段范围以及各个字段在输出数据包中的排列顺序;发送模块,用于将生成的输出数据包发送至用户配置的目标网际协议地址与目标端口。
9、可选地,解析模块还用于:当数据类型为连续数值型的字段时,按照预设协议规则中对应字段的分辨率系数进行乘法缩放,将字段还原为真实物理值后,统一将真实物理值封装为标准单精度浮点数格式;当数据类型为位域状态字的字段时,采用位掩码算法将字段拆解为独立的布尔状态量或者单字节状态量。
10、本发明的有益效果:
11、本发明提出了一种私有协议解析与可配置字段重组的数据转发方法,引入协议深度脱敏、异构数据同构化转换与动态字段重组相结合的网关处理架构,可切断输入端原始数据包与输出端输出数据包的数据耦合,从根源上阻断第三方逆向破解设备私有协议的路径,为设备厂商的核心商业机密提供物理级安全保障;为进一步降低第三方系统的集成开发成本、消除解析偏差,本发明将原始数据包中混合的多类型整型数值按预设分辨率系数缩放后统一封装为标准单精度浮点数,将按位复用的状态字拆解为独立单字节状态量,把复杂的数值换算、位掩码与位移运算逻辑全部前置至网关侧完成;第三方接收端无需对照协议手册开发定制化解码代码,即可直接读取标准化的物理量与状态值,大幅减少重复开发工作量,显著降低对接集成成本;为提升转发方案的场景适配灵活性与易用性,本发明内置标签页式可视化配置界面,用户无需修改底层程序代码,仅通过勾选所需字段即可动态调整输出数据包的字段组成、排列顺序与整体长度,实现输出数据包结构的按需定制,可快速适配不同第三方的数据获取需求。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com