网络协议解析方法和装置制造方法及图纸

技术编号:26041179 阅读:19 留言:0更新日期:2020-10-23 21:20
本发明专利技术涉及网络协议解析方法和装置,该方法包括:利用至少两个样本网络协议的样本报文头对第一机器学习模型进行训练;通过训练后的第一机器学习模型输出每个样本网络协议的样本特征模型;利用每个样本特征模型对第二机器学习模型进行训练;通过训练后的第二机器学习模型输出每个样本网络协议的解析插件;还包括:接收待解析数据包并提取目标报文头;通过训练后的第一机器学习模型输出目标报文头对应的目标特征模型;判断是否存在与目标特征模型匹配的样本特征模型,如果存在,则利用匹配到的样本特征模型对应的解析插件对待解析数据包进行解析;否则利用目标特征模型所对应的目标解析插件解析待解析数据包。本方案能够提高网络协议解析的通用性。

【技术实现步骤摘要】
网络协议解析方法和装置
本专利技术涉及通信
,尤其涉及网络协议解析方法和装置。
技术介绍
网络协议为计算机网络中进行数据交换而建立的规则、标准或约定的集合,是计算机网络中互相通信的对等实体之间交换信息时所必须遵守的规则的集合。网络协议通常包括由行业内某个组织或者机构定义的标准协议以及由通信双方制定的应用层协议。目前,为了对不同的网络协议的数据包进行解析,需要针对不同的网络协议开发不同的解析应用。由于网络协议较多,实现所有网络协议的解析应用会非常复杂。因此,针对以上不足,需要提供更加方便地对不同的网络协议进行解析的方案。
技术实现思路
本专利技术要解决的技术问题在于网络协议解析方法的通用性比较差,针对现有技术中的缺陷,提供网络协议解析方法和装置。为了解决上述技术问题,第一方面,本专利技术提供了一种网络协议解析方法,包括:利用至少两个样本网络协议的样本报文头对第一机器学习模型进行训练,其中,所述第一机器学习模型的输入为不同的网络协议的报文头,输出为网络协议的特征模型;将所述至少两个样本网络协议的样本报文头输入到训练后的所述第一机器学习模型,通过训练后的所述第一机器学习模型,输出每个所述样本网络协议的样本特征模型;利用每个所述样本特征模型对第二机器学习模型进行训练,其中,所述第二机器学习模型的输入为特征模型,输出为网络协议的解析插件;将每个所述样本特征模型输入到训练后的所述第二机器学习模型,通过训练后的所述第二机器学习模型,输出每个所述样本网络协议的解析插件;还包括:接收待解析数据包;提取所述待解析数据包的目标报文头;将所述目标报文头和至少一个所述样本报文头输入到训练后的所述第一机器学习模型,通过训练后的所述第一机器学习模型输出所述目标报文头对应的目标特征模型;判断是否存在与所述目标特征模型相匹配的样本特征模型,如果存在,则利用匹配到的样本特征模型对应的解析插件对所述待解析数据包进行解析;如果不存在,则将所述目标特征模型输入到训练后的所述第二机器学习模型,通过训练后的所述第二机器学习模型输出目标解析插件,利用所述目标解析插件解析所述待解析数据包。在一种可能的设计中,所述通过训练后的所述第一机器学习模型输出所述目标报文头对应的目标特征模型,包括:针对输入到训练后的所述第一机器学习模型的每个报文头,均执行:利用所述第一机器学习模型解析当前报文头中的字段的排列顺序和每个字段的长度,根据每个字段的长度和所述排列顺序,生成当前报文头对应的特征矩阵,其中,所述报文头包括所述目标报文头和至少一个所述样本报文头;通过所述第一机器学习模型,对所述目标报文头的特征矩阵和每个所述样本报文头的特征矩阵进行处理,生成所述目标特征模型。在一种可能的设计中,所述根据每个字段的长度和所述排列顺序,生成当前报文头对应的特征矩阵,包括:针对当前报文头的每个字段,均执行:确定当前字段在所述排列顺序中的位置i;确定当前字段的长度j;将预设矩阵中的aij设置为当前字段对应的元素,将aij设置为1,其中,aij为所述预设矩阵的第i行第j列的元素;将所述预设矩阵的第i行中aij之外的元素设置为0;获得当前报文头对应的特征矩阵。在一种可能的设计中,所述对所述目标报文头的特征矩阵和每个所述样本报文头的特征矩阵进行处理,生成所述目标特征模型,包括:根据所述目标报文头的特征矩阵、每个所述样本报文头的特征矩阵和第一式子,生成所述目标特征模型,其中,第一式子为:;其中,C为所述目标特征模型,A为所述目标报文头的特征矩阵,k为所述样本报文头的特征矩阵的数量,Bt为第t个所述样本报文头的特征矩阵。在一种可能的设计中,进一步包括:预先设置解析插件代码模板,其中,所述解析插件代码模板中包括多个可调参数。在一种可能的设计中,所述通过训练后的所述第二机器学习模型输出目标解析插件,包括:通过训练后的所述第二机器学习模型对所述目标特征模型进行处理,生成所述多个可调参数的目标值,将所述目标值赋值给所述解析插件代码模板中对应的可调参数,输出所述目标解析插件。第二方面,本专利技术还提供了一种网络协议解析装置,包括:第一输出单元、第二输出单元、生成单元和判断单元;所述第一输出单元,用于利用至少两个样本网络协议的样本报文头对第一机器学习模型进行训练,并将所述至少两个样本网络协议的样本报文头输入到训练后的所述第一机器学习模型,通过训练后的所述第一机器学习模型,输出每个所述样本网络协议的样本特征模型,其中,所述第一机器学习模型的输入为不同的网络协议的报文头,输出为网络协议的特征模型;所述第二输出单元,用于利用每个所述样本特征模型对第二机器学习模型进行训练,并将每个所述样本特征模型输入到训练后的所述第二机器学习模型,通过训练后的所述第二机器学习模型,输出每个所述样本网络协议的解析插件,其中,所述第二机器学习模型的输入为特征模型,输出为网络协议的解析插件;所述生成单元,用于接收待解析数据包并提取所述待解析数据包的目标报文头,以及将所述目标报文头和至少一个所述样本报文头输入到训练后的所述第一机器学习模型,通过训练后的所述第一机器学习模型输出所述目标报文头对应的目标特征模型;所述判断单元,用于判断是否存在与所述目标特征模型相匹配的样本特征模型;所述判断单元,还用于判断结果,如果存在与所述目标特征模型相匹配的样本特征模型,则利用匹配到的样本特征模型对应的解析插件对所述待解析数据包进行解析,否则将所述目标特征模型输入到训练后的所述第二机器学习模型,通过训练后的所述第二机器学习模型输出目标解析插件,利用所述目标解析插件解析所述待解析数据包。在一种可能的设计中,所述生成单元,用于针对输入到训练后的所述第一机器学习模型的每个报文头,均执行:利用所述第一机器学习模型解析当前报文头中的字段的排列顺序和每个字段的长度,根据每个字段的长度和所述排列顺序,生成当前报文头对应的特征矩阵,其中,所述报文头包括所述目标报文头和至少一个所述样本报文头;通过所述第一机器学习模型,对所述目标报文头的特征矩阵和每个所述样本报文头的特征矩阵进行处理,生成所述目标特征模型。在一种可能的设计中,所述生成单元,用于针对当前报文头的每个字段,均执行:确定当前字段在所述排列顺序中的位置i;确定当前字段的长度j;将预设矩阵中的aij设置为当前字段对应的元素,将aij设置为1,其中,aij为所述预设矩阵的第i行第j列的元素;将所述预设矩阵的第i行中aij之外的元素设置为0;获得当前报文头对应的特征矩阵。在一种可能的设计中,所述生成单元,用于根据所述目标报文头的特征矩阵、每个所述样本报文头的特征矩阵和第一式子,生成所述目标特征模型,其中,第一式子为:;其中,C为所述本文档来自技高网...

【技术保护点】
1.网络协议解析方法,其特征在于,/n利用至少两个样本网络协议的样本报文头对第一机器学习模型进行训练,其中,所述第一机器学习模型的输入为不同的网络协议的报文头,输出为网络协议的特征模型;/n将所述至少两个样本网络协议的样本报文头输入到训练后的所述第一机器学习模型,通过训练后的所述第一机器学习模型,输出每个所述样本网络协议的样本特征模型;/n利用每个所述样本特征模型对第二机器学习模型进行训练,其中,所述第二机器学习模型的输入为特征模型,输出为网络协议的解析插件;/n将每个所述样本特征模型输入到训练后的所述第二机器学习模型,通过训练后的所述第二机器学习模型,输出每个所述样本网络协议的解析插件;/n还包括:/n接收待解析数据包;/n提取所述待解析数据包的目标报文头;/n将所述目标报文头和至少一个所述样本报文头输入到训练后的所述第一机器学习模型,通过训练后的所述第一机器学习模型输出所述目标报文头对应的目标特征模型;/n判断是否存在与所述目标特征模型相匹配的样本特征模型,/n如果存在,则利用匹配到的样本特征模型对应的解析插件对所述待解析数据包进行解析;/n如果不存在,则将所述目标特征模型输入到训练后的所述第二机器学习模型,通过训练后的所述第二机器学习模型输出目标解析插件,利用所述目标解析插件解析所述待解析数据包。/n...

【技术特征摘要】
1.网络协议解析方法,其特征在于,
利用至少两个样本网络协议的样本报文头对第一机器学习模型进行训练,其中,所述第一机器学习模型的输入为不同的网络协议的报文头,输出为网络协议的特征模型;
将所述至少两个样本网络协议的样本报文头输入到训练后的所述第一机器学习模型,通过训练后的所述第一机器学习模型,输出每个所述样本网络协议的样本特征模型;
利用每个所述样本特征模型对第二机器学习模型进行训练,其中,所述第二机器学习模型的输入为特征模型,输出为网络协议的解析插件;
将每个所述样本特征模型输入到训练后的所述第二机器学习模型,通过训练后的所述第二机器学习模型,输出每个所述样本网络协议的解析插件;
还包括:
接收待解析数据包;
提取所述待解析数据包的目标报文头;
将所述目标报文头和至少一个所述样本报文头输入到训练后的所述第一机器学习模型,通过训练后的所述第一机器学习模型输出所述目标报文头对应的目标特征模型;
判断是否存在与所述目标特征模型相匹配的样本特征模型,
如果存在,则利用匹配到的样本特征模型对应的解析插件对所述待解析数据包进行解析;
如果不存在,则将所述目标特征模型输入到训练后的所述第二机器学习模型,通过训练后的所述第二机器学习模型输出目标解析插件,利用所述目标解析插件解析所述待解析数据包。


2.根据权利要求1所述的方法,其特征在于,
所述通过训练后的所述第一机器学习模型输出所述目标报文头对应的目标特征模型,包括:
针对输入到训练后的所述第一机器学习模型的每个报文头,均执行:利用所述第一机器学习模型解析当前报文头中的字段的排列顺序和每个字段的长度,根据每个字段的长度和所述排列顺序,生成当前报文头对应的特征矩阵,其中,所述报文头包括所述目标报文头和至少一个所述样本报文头;
通过所述第一机器学习模型,对所述目标报文头的特征矩阵和每个所述样本报文头的特征矩阵进行处理,生成所述目标特征模型。


3.根据权利要求2所述的方法,其特征在于,
所述根据每个字段的长度和所述排列顺序,生成当前报文头对应的特征矩阵,包括:
针对当前报文头的每个字段,均执行:
确定当前字段在所述排列顺序中的位置i;
确定当前字段的长度j;
将预设矩阵中的aij设置为当前字段对应的元素,将aij设置为1,其中,aij为所述预设矩阵的第i行第j列的元素;
将所述预设矩阵的第i行中aij之外的元素设置为0;
获得当前报文头对应的特征矩阵。


4.根据权利要求2所述的方法,其特征在于,
所述对所述目标报文头的特征矩阵和每个所述样本报文头的特征矩阵进行处理,生成所述目标特征模型,包括:
根据所述目标报文头的特征矩阵、每个所述样本报文头的特征矩阵和第一式子,生成所述目标特征模型,其中,第一式子为:


其中,C为所述目标特征模型,A为所述目标报文头的特征矩阵,k为所述样本报文头的特征矩阵的数量,Bt为第t个所述样本报文头的特征矩阵。


5.根据权利要求1所述的方法,其特征在于,
进一步包括:
预先设置解析插件代码模板,其中,所述解析插件代码模板中包括多个可调参数;
所述通过训练后的所述第二机器学习模型输出目...

【专利技术属性】
技术研发人员:周磊吴长城姜双林饶志波
申请(专利权)人:北京安帝科技有限公司
类型:发明
国别省市:北京;11

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

1