一种基于哈希和TCAM的组合包分类器及方法与流程

文档序号:35378707发布日期:2023-09-09 00:57阅读:73来源:国知局
一种基于哈希和TCAM的组合包分类器及方法与流程

本发明涉及硬件防火墙装置中数据包分类领域,具体涉及一种基于哈希和tcam的组合包分类器及方法。


背景技术:

1、现代硬件防火墙是针对内部网络与外部网络之间的安全性设计的独立硬件,也称设备防火墙。硬件防火墙中,输入数据包需要通过分类器进入下一步操作,可能的分类结果标签如:丢弃、拆包、点播、广播等。

2、假设一个键值集合s(例如:防火墙数据包的一组包头数据),包含n个互不相同的键值key。包分类解决的数学问题是:输入n个互不相同的键值key,通过包分类模块后输出m个整数结果,其中m会较小(如:m=3,4)。例如:将1000个键值映射为4个输出标签:0、1、2、3。

3、现有包分类专用硬件解决方案主要分为两类:

4、第一类:cam/tcam(内容寻址存储器)。

5、tcam(ternary content addressable memory:通过内容寻址的三元存储器)查表原理:通过数据的并行比较,找到对应匹配的tcam表项,并将该表项对应的位置信息输出至ram。

6、ram(random access memory):输入为地址信息(如图1:00,01,10,11),输出为地址对应位置上的数据(如图1:a,b,c,d)。

7、如图1所示,当输入为01101时,tcam会同时、并行地将其中的每行数据与输入相比,若某一行与输入01101恰好匹配(如图1的左图中tcam第二行为0110x,x表示既匹配0,也匹配1,因此0110x与01101匹配),则在对应的ram位置(如图1的右图中第二行)中找到相应的分类结果(图1中ram第二行为d)输出。

8、tcam与ram在计算机硬件中有专用电路实现。现有的tcam方案利用并行化优势可以实现端口的快速查找。但当需要支持的键值很多时,tcam中需要比较的表项个数也需要很多,硬件实现会消耗大量存储资源和芯片面积。另外,并行化的查找方式在电路中会产生大量的功耗,长时间使用会造成电力浪费。

9、为了解决tcam方案的资源浪费问题,目前的主流优化方案有3种:

10、(1)对输入键值集合进行优化裁剪。现有方法可以挖掘输入键值分布的特点(如:前缀后缀信息),有效压缩所需的tcam表项个数,但压缩效果不稳定,且压缩过程耗费较大的计算量,不适用于资源紧缺且实时性要求较高的应用。

11、(2)降低查找的并行化程度,即对tcam分级查找。先对键值的前一部分bit进行查找,得到匹配结果后,再对后一部分bit进行查找,这样降低了总的存储开销,同时也减轻了每一级tcam模块的扇入和扇出,可以支持更高的时钟频率。其问题是分多级查找会成倍增加查找的延迟,影响总的数据传输带宽。另外,该方式对tcam硬件资源的优化效果不明显。

12、(3)使用类似cache(缓存)的原理进行查找,即先用较小cam对高频出现的键值进行查找,若产生缓存缺失(miss),则去较大的cam中进行查找。其问题是查找时间不是稳定的,有时快有时慢,且存储资源消耗与之前相比并无减小。

13、综上所述,tcam在包分类中的应用仍存在较多限制因素(功耗、面积)。

14、第二类:哈希查找表。

15、该方案采用哈希模块+随机存储器,首先通过哈希函数将输入数据包表头键值,哈希为有限的地址空间,再使用该地址访问随机存储器得到输出结果标签。在该方案中,为避免哈希模块造成输入键值冲突,可采用完美哈希的设计方法实现。

16、完美哈希解决的数学问题是:输入n个互不相同的键值key,通过完美哈希函数的转换,输出n个互不相同的哈希结果v,其中v为0到(m-1)之间的整数,n<=m。注意:1个输入键值被映射为1个哈希结果。如图2所示,利用完美哈希的无冲突特点,可以将哈希结果作为独立的访存地址,利用该地址访问随机存储器(ram),得到最终的分类结果(out 1-outn)。

17、哈希查找表方案中,完美哈希函数的设计是重点,完美哈希函数的生成算法旨在利用更少资源于更短时间,实现哈希映射无冲突。然而,减少冲突较为容易,完全避免哈希冲突较为困难。采用更为复杂的完美哈希函数可能带来更长的查表时间与额外的硬件资源消耗,构建完美哈希函数的时间、资源代价也更大。

18、由此可见,现有的分类方案,在对数据包的分类过程中,无法同时兼顾较低的空间资源消耗、低功耗以及低延迟。


技术实现思路

1、为解决上述技术问题,本发明提供一种基于哈希和tcam的组合包分类器及方法,采用本方法对数据包进行分类,在分类阶段能够兼顾低的空间资源消耗、低功耗以及低延迟,在分类器生成阶段能够节约设计成本,降低生成过程的时间复杂度。

2、为了达到上述目的,本发明采用技术方案如下:

3、一种基于哈希和tcam的组合包分类器,包括:

4、tcam分类模块,用于将数据包进行分类并输出tcam分类结果;

5、不完美哈希分类模块,用于在串行模式下,将经tcam分类后不存在匹配项的数据包进行分类并输出不完美哈希分类结果;或用于在并行模式下,将数据包进行分类并输出不完美哈希分类结果;

6、选择器,用于在串行或并行模式下,对tcam分类结果和不完美哈希分类结果进行选择,输出最终的分类结果。

7、进一步地,所述tcam分类模块与所述不完美哈希分类模块的构建步骤如下:

8、s1:确定当前生成策略的哈希级数以及系统约束条件;

9、s2:采用基本哈希函数对数据包的输入表头集合进行分级哈希;

10、s3:达到哈希级数后,采用tcam压缩算法处理经分级哈希后存在哈希冲突的表头集合,得到候选的tcam分类模块与候选的不完美哈希分类模块;

11、s4:验证当前生成策略的待验证指标是否满足系统约束条件;若满足,则将候选的不完美哈希分类模块与候选的tcam分类模块输出,得到tcam分类模块和不完美哈希分类模块;否则,重新选择基本哈希函数或调整哈希级数,重复迭代,直至当前生成策略的待验证指标满足系统约束条件,得到tcam分类模块和不完美哈希分类模块。

12、进一步地,s4中,所述待验证指标包括资源消耗和分类时间。

13、进一步地,所述tcam分类模块的匹配线与所述选择器的控制端相连。

14、进一步地,所述tcam分类模块包括tcam电路、地址译码电路和ram电路。

15、一种基于哈希和tcam的组合包分类方法,基于上述一种基于哈希和tcam的组合包分类器,包括:

16、在串行模式下,采用tcam压缩算法对数据包进行分类,若数据包存在匹配项,则根据匹配项访问对应的tcam分类模块的ram,输出tcam分类结果;否则,采用不完美哈希分类法对数据包进行分类,输出不完美哈希分类结果;

17、在并行模式下,采用tcam压缩算法以及不完美哈希分类法同时对数据包进行分类,得到tcam分类结果和不完美哈希分类结果,通过选择器对tcam分类结果和不完美哈希分类结果进行选择,输出最终的分类结果。

18、进一步地,所述不完美哈希分类法的具体步骤包括:

19、采用第一级哈希函数对数据包的输入键值进行处理;判断是否存在哈希冲突,若无哈希冲突,则输出计算结果,输出的计算结果经计算后得到不完美哈希分类结果;否则,由下一级哈希对数据包的输入键值进行处理,直至当前级无哈希冲突,输出计算结果,输出的计算结果经计算后得到不完美哈希分类结果。

20、进一步地,若无哈希冲突,输出的计算结果为当前级的偏移量。

21、进一步地,由地址计算模块将当前级的偏移量输入至与之前所有级的冲突数组的边界值相加,得到不完美哈希分类模块的输出地址,用输出地址访问对应的不完美哈希分类模块的ram得到不完美哈希分类结果。

22、进一步地,不完美哈希分类模块的ram采用单个独立存储体或多个独立存储体。

23、相比于现有技术,本发明具有有益效果如下:

24、本发明提供一种基于哈希和tcam的组合包分类器,采用将不完美哈希分类模块与tcam分类模块相结合,实现了不完美哈希分类与tcam分类在输入键值空间上的互补;相较于传统基于tcam包分类解决方案,本发明降低了硬件资源利用、系统功耗;相较于基于完美哈希的包分类解决方案,本发明在保证分类器功能的前提下,节约了哈希函数的设计成本与生成过程的时间复杂度。同时,本发明在fpga等可重构硬件平台上可以更好地平衡不同类型地硬件资源,为防火墙包过滤、路由表查找等网络任务中的分类器设计提供了全新的思路。

25、本发明还提供了一种基于哈希和tcam的组合包分类方法,基于上述一种基于哈希和tcam的组合包分类器,分类过程中,先用tcam模块判定表头是否在tcam电路中匹配,根据匹配结果决定采用不完美哈希分类模块或tcam分类模块进行分类,采用本包分类法,在分类阶段能够兼顾低的空间资源消耗、低功耗以及低延迟,在分类器生成阶段能够节约设计成本,降低生成过程的时间复杂度。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1