[发明专利]一种在大流量下进行深度包检测的方法有效
申请号: | 201210004781.2 | 申请日: | 2012-01-09 |
公开(公告)号: | CN102546299A | 公开(公告)日: | 2012-07-04 |
发明(设计)人: | 岳培培 | 申请(专利权)人: | 北京锐安科技有限公司 |
主分类号: | H04L12/26 | 分类号: | H04L12/26;H04L29/06 |
代理公司: | 北京君尚知识产权代理事务所(普通合伙) 11200 | 代理人: | 余功勋 |
地址: | 100044 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 流量 进行 深度 检测 方法 | ||
1.一种在大流量下进行深度包检测的方法,包括:
在FPGA内部搭建3层过滤模块,并行放置L个第一层过滤模块;每第一层过滤模块内部并行放置M个第二层过滤模块;每第二层过滤模块内部并行放置N个第三层过滤模块,由多个块状随机存储器组成基础布隆过滤器;在主控单元的内存中保存一个过滤模块的存储空间,构建与FPGA对应的3层结构,其中第三层组成计数型布隆过滤器;
主控单元对关键字取其字节前缀作运算,把运算结果配置为初始化地址,并根据第三层计数型布隆过滤器的存储单元内的值的变化更新FPGA内L个对应的存储单元的值;
以及检测过程,步骤包括:
a)输入数据分别送到L个第一层过滤模块中,并截取相应的字节前缀,同时送入M个第二层过滤模块;
b)在第二层过滤模块内部,截取的字节前缀分别进行hash运算,并根据结果查询第三层的基础布隆过滤器的配置地址并进行匹配;
c)根据待匹配内容在FPGA的第三层基础布隆过滤器内的各个运算结果,记录对应的第一层过滤模块所在的偏移位置,存储进FPGA的缓存器中;
d)将被记录下来的偏移位置对应的待匹配内容,从数据包中重新提取出来,送入TCAM进行精匹配。
2.如权利要求1所述的方法,其特征在于,所述L个第一层过滤模块结构、大小相同。
3.如权利要求1所述的方法,其特征在于,待匹配内容输入所述L个第一层过滤模块时依次偏移1个字节。
4.如权利要求1所述的方法,其特征在于,初始化过程包括对关键字的添加或删除操作。
5.如权利要求1所述的方法,其特征在于,L的值由需要进行深度包检测的数据流量和FPGA的工作时钟决定;M的值由关键字的长度分布情况决定;,N的值由根据关键字长度采用的hash算法的种类除以2得到。
6.如权利要求1所述的方法,其特征在于,所述字节前缀的截取值为存储空间中小于关键字字节的最大匹配长度。
7.如权利要求1所述的方法,其特征在于,每个第二层过滤模块包含不同的存储单元数。
8.如权利要求1所述的方法,其特征在于,所述第二层过滤模块进行“或操作”后输出结果;所述基础布隆过滤器的匹配结果需要进行“与运算”后输出。
9.如权利要求1所述的方法,其特征在于,所述第三层过滤模块同时进行双端口匹配操作,其中一个端口在进行关键字更新时进行配置操作。
10.如权利要求1所述的方法,其特征在于,所述主控单元使用与FPGA中完全相同的hash运算。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京锐安科技有限公司,未经北京锐安科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210004781.2/1.html,转载请声明来源钻瓜专利网。