一种数据包验证方法及系统技术方案

技术编号:15334274 阅读:62 留言:0更新日期:2017-05-16 21:34
本发明专利技术提供了一种数据包验证方法及系统,该方法包括:服务器接收待验证数据包;FPGA从服务器接收待验证数据包及用于验证待验证数据包的正则表达式;FPGA并行调用多个微核执行正则表达式对待验证数据包进行验证;FPGA将各微核的检验结果合并后发送至服务器。本发明专利技术基于FPGA实现的并行正则表达式算法以更短的周期实现算法加速,支持高速实时数据包检查,FPGA可根据需要同时并行例化多个算法计算核,实现算法的倍数提升。

【技术实现步骤摘要】
一种数据包验证方法及系统
本专利技术涉及信息安全领域,尤其涉及一种数据包验证方法及系统。
技术介绍
为了保证信息的安全,现有技术提供了多种验证方式,其中,正则表达式因为其特殊的数据处理特点,已成为现在网络数据检测和识别的软件工具语言。在服务器上,基于软件实现的正则表达式采用串行顺序方式执行指令,当今随着互联网发展与普及,服务器对海量网络数据包的检查变得越发困难,难以进一步提升检测速度。
技术实现思路
本专利技术提供了一种数据包验证方法及系统,以提供一种新的数据包验证方法。本专利技术提供了一种数据包验证方法,包括:服务器接收待验证数据包;FPGA从服务器接收待验证数据包及用于验证待验证数据包的正则表达式;FPGA并行调用多个微核执行正则表达式对待验证数据包进行验证;FPGA将各微核的检验结果合并后发送至服务器。进一步的,在FPGA并行调用多个微核之前,还包括:FPGA获取待验证数据包的所有取值,根据所有取值的数量,并行调用对应数量的微核。进一步的,在并行调用对应数量的微核之后,还包括:FPGA根据待验证数据包的大小及速度,调整被调用微核的数量。进一步的,还包括:FPGA根据正则表达式的检验结果,将待验证数据包并行跳转至其他被调用微核。进一步的,还包括:FPGA从服务器获取新的正则表达式,并替换当前使用的正则表达式。进一步的,FPGA并行调用多个微核执行正则表达式对待验证数据包进行验证包括:FPGA将从服务器接收的正则表达式缓存在正则表达式矩阵中;FPGA将从服务器接收的网络数据包以包的形式缓存在网络数据包中;FPGA每次从数据包中读出一个字节,将字节并行和所有可能字符比较,每个比较结果输出一个比特,所有比特组成一个判决数组;FPGA将每个判决数组和正则表达式矩阵输出的掩膜数据进行与操作,得到一个判决验证结果输出;FPGA从正则表达式矩阵中读取下一个掩膜数据,然后读取下一个字节,重复以上步骤,直到数据包检验结束;FPGA将待验证数据包中各字节对应的判决验证结果,合并得到待验证数据包的检验结果。本专利技术提供了一种数据包验证系统,包括:服务器及FPGA,FPGA包括网络数据包分配矩阵模块、多个数据包微核判断模块、控制模块、正则表达式模块及判断结果汇总模块,其中,服务器用于接收待验证数据包;网络数据包分配矩阵模块用于从服务器接收待验证数据包;正则表达式模块用于获取用于验证待验证数据包的正则表达式;数据包微核判断模块用于执行正则表达式对待验证数据包进行验证控制模块用于并行调用多个数据包微核判断模块执行正则表达式对待验证数据包进行验证;判断结果汇总模块用于将各微核的检验结果合并后发送至服务器。进一步的,在FPGA并行调用多个微核之前,控制模块还用于获取待验证数据包的所有取值,根据所有取值的数量,并行调用对应数量的数据包微核判断模块。进一步的,在并行调用对应数量的微核之后,控制模块还用于根据待验证数据包的大小及速度,调整被调用数据包微核判断模块的数量。进一步的,控制模块还用于根据正则表达式的检验结果,将待验证数据包并行跳转至其他被调用数据包微核判断模块。进一步的,正则表达式模块还用于从服务器获取新的正则表达式,并替换当前使用的正则表达式。进一步的,数据包微核判断模块用于将从服务器接收的正则表达式缓存在正则表达式矩阵中,将从服务器接收的网络数据包以包的形式缓存在网络数据包中,每次从数据包中读出一个字节,将每个字节并行和所有可能字符比较,每个比较结果输出一个比特,所有比特组成一个判决数组,将每个判决数组和正则表达式矩阵输出的掩膜数据进行与操作,得到一个判决验证结果输出,从正则表达式矩阵中读取下一个掩膜数据,然后读取下一个字节,重复以上步骤,直到数据包检验结束,将待验证数据包中各字节对应的判决验证结果,合并得到待验证数据包的检验结果。本专利技术的有益效果:本专利技术提供了一种数据包验证方法,基于FPGA实现的并行正则表达式算法以更短的周期实现算法加速,支持高速实时数据包检查,FPGA可根据需要同时并行例化多个算法计算核,实现算法的倍数提升。附图说明图1为本专利技术第一实施例提供的数据包验证系统的结构示意图;图2为本专利技术第二实施例提供的数据包验证方法的流程图;图3为本专利技术第三实施例涉及的验证系统的示意图;图4为本专利技术第三实施例涉及的算法对比示意图;图5为本专利技术第三实施例涉及的正则表达式实现方法的示意图。具体实施方式现通过具体实施方式结合附图的方式对本专利技术做输出进一步的诠释说明。第一实施例:图1为本专利技术第一实施例提供的数据包验证系统的结构示意图,由图1可知,在本实施例中,本专利技术提供的数据包验证系统包括:服务器1及FPGA2,FPGA2包括网络数据包分配矩阵模块21、多个数据包微核判断模块22、控制模块23、正则表达式模块24及判断结果汇总模块25,其中,服务器1用于接收待验证数据包;网络数据包分配矩阵模块21用于从服务器接收待验证数据包;正则表达式模块24用于获取用于验证待验证数据包的正则表达式;数据包微核判断模块22用于执行正则表达式对待验证数据包进行验证控制模块23用于并行调用多个数据包微核判断模块执行正则表达式对待验证数据包进行验证;判断结果汇总模块25用于将各微核的检验结果合并后发送至服务器。在一些实施例中,在FPGA并行调用多个微核之前,上述实施例中的控制模块23还用于获取待验证数据包的所有取值,根据所有取值的数量,并行调用对应数量的数据包微核判断模块。在一些实施例中,在并行调用对应数量的微核之后,上述实施例中的控制模块23还用于根据待验证数据包的大小及速度,调整被调用数据包微核判断模块的数量。在一些实施例中,上述实施例中的控制模块23还用于根据正则表达式的检验结果,将待验证数据包并行跳转至其他被调用数据包微核判断模块。在一些实施例中,上述实施例中的正则表达式模块24还用于从服务器获取新的正则表达式,并替换当前使用的正则表达式。在一些实施例中,上述实施例中的数据包微核判断模块22用于将从服务器接收的正则表达式缓存在正则表达式矩阵中,将从服务器接收的网络数据包以包的形式缓存在网络数据包中,每次从数据包中读出一个字节,将每个字节并行和所有可能字符比较,每个比较结果输出一个比特,所有比特组成一个判决数组,将每个判决数组和正则表达式矩阵输出的掩膜数据进行与操作,得到一个判决验证结果输出,从正则表达式矩阵中读取下一个掩膜数据,然后读取下一个字节,重复以上步骤,直到数据包检验结束,将待验证数据包中各字节对应的判决验证结果,合并得到待验证数据包的检验结果。第二实施例:图2为本专利技术第二实施例提供的数据包验证方法的流程图,由图2可知,在本实施例中,本专利技术提供的数据包验证方法包括:S201:服务器接收待验证数据包;S202:FPGA从服务器接收待验证数据包及用于验证待验证数据包的正则表达式;S203:FPGA并行调用多个微核执行正则表达式对待验证数据包进行验证;S204:FPGA将各微核的检验结果合并后发送至服务器。在一些实施例中,上述实施例中的方法在FPGA并行调用多个微核之前,还包括:FPGA获取待验证数据包的所有取值,根据所有取值的数量,并行调用对应数量的微核。在一些实施例中,上述实施例中的方法在并行调用对应数量的微核之后,还包括:FPGA根据待本文档来自技高网...
一种数据包验证方法及系统

【技术保护点】
一种数据包验证方法,其特征在于,包括:服务器接收待验证数据包;FPGA从所述服务器接收所述待验证数据包及用于验证所述待验证数据包的正则表达式;所述FPGA并行调用多个微核执行所述正则表达式对所述待验证数据包进行验证;所述FPGA将各微核的检验结果合并后发送至所述服务器。

【技术特征摘要】
1.一种数据包验证方法,其特征在于,包括:服务器接收待验证数据包;FPGA从所述服务器接收所述待验证数据包及用于验证所述待验证数据包的正则表达式;所述FPGA并行调用多个微核执行所述正则表达式对所述待验证数据包进行验证;所述FPGA将各微核的检验结果合并后发送至所述服务器。2.如权利要求1所述的数据包验证方法,其特征在于,在FPGA并行调用多个微核之前,还包括:所述FPGA获取所述待验证数据包的所有取值,根据所述所有取值的数量,并行调用对应数量的微核。3.如权利要求2所述的数据包验证方法,其特征在于,在并行调用对应数量的微核之后,还包括:所述FPGA根据待验证数据包的大小及速度,调整被调用微核的数量。4.如权利要求1所述的数据包验证方法,其特征在于,还包括:所述FPGA根据所述正则表达式的检验结果,将待验证数据包并行跳转至其他被调用微核。5.如权利要求1所述的数据包验证方法,其特征在于,还包括:所述FPGA从所述服务器获取新的正则表达式,并替换当前使用的正则表达式。6.如权利要求1至5任一项所述的数据包验证方法,其特征在于,所述FPGA并行调用多个微核执行所述正则表达式对所述待验证数据包进行验证包括:所述FPGA将从服务器接收的正则表达式缓存在正则表达式矩阵中;所述FPGA将从服务器接收的网络数据包以包的形式缓存在网络数据包中;所述FPGA每次从数据包中读出一个字节,将字节并行和所有可能字符比较,每个比较结果输出一个比特,所有比特组成一个判决数组;所述FPGA将每个判决数组和所述正则表达式矩阵输出的掩膜数据进行与操作,得到一个判决验证结果输出;所述FPGA从正则表达式矩阵中读取下一个掩膜数据,然后读取下一个字节,重复以上步骤,直到数据包检验结束;所述FPGA将待验证数据包中各字节对应的判决验证结果,合并得到所述待验证数据包的检验结果。7.一种数据包验证系统,其特征在于,包括:服务器及FPGA,所述FPGA包括网络数据包分配矩阵模块、多个数据包...

【专利技术属性】
技术研发人员:乔汉志
申请(专利权)人:深圳市紫光同创电子有限公司
类型:发明
国别省市:广东,44

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

1