CN101309216B - 一种ip包分类方法和设备 - Google Patents
一种ip包分类方法和设备 Download PDFInfo
- Publication number
- CN101309216B CN101309216B CN2008101161293A CN200810116129A CN101309216B CN 101309216 B CN101309216 B CN 101309216B CN 2008101161293 A CN2008101161293 A CN 2008101161293A CN 200810116129 A CN200810116129 A CN 200810116129A CN 101309216 B CN101309216 B CN 101309216B
- Authority
- CN
- China
- Prior art keywords
- rule
- address
- bloom filter
- counting bloom
- hyte
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 47
- 230000008569 process Effects 0.000 claims abstract description 23
- 230000006870 function Effects 0.000 claims description 40
- 230000008878 coupling Effects 0.000 claims description 11
- 238000010168 coupling process Methods 0.000 claims description 11
- 238000005859 coupling reaction Methods 0.000 claims description 11
- 238000004364 calculation method Methods 0.000 claims description 5
- 239000000284 extract Substances 0.000 claims description 4
- 238000000605 extraction Methods 0.000 claims description 2
- 230000005465 channeling Effects 0.000 claims 1
- 238000012217 deletion Methods 0.000 description 7
- 230000037430 deletion Effects 0.000 description 7
- 230000002950 deficient Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 208000037656 Respiratory Sounds Diseases 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 206010037833 rales Diseases 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提出了一种基于Bloom Filter的包分类方法及其实现设备,包括Counting Bloom Filter预测模块,用于对网络设备提取接收到的IP包的五元组执行基于Counting Bloom Filter预测,获取预测结果;规则匹配模块,用于根据所述预测结果,与组织成Hash表的规则表进行匹配,确定所述IP包的规则。采用SRAM存储规则,可支持100K以上的大规则集,并支持规则集的实时更新。此外,本发明具有良好的可扩展性。并且在一定条件下,可以将包分类的平均访存次数降到1次以下,足以线速处理10Gbps甚至更高速率的IP包流。
Description
技术领域
本发明涉及网络识别技术领域,更具体地,本发明涉及一种IP包分类方法和设备。
背景技术
IP包分类(packet classification)技术广泛应用于各种网络环境和设备中,例如,在路由器里,包分类可以用于决定一个包从哪个端口输出;在防火墙中,包分类可以决定一个包是否应该被过滤。
包分类方法目前最常用的是根据IP包头中的五元组:源IP地址(SIP)、目的IP地址(DIP)、源端口(SP)、目的端口(DP)以及协议(PRO)。网络设备收到IP包后,提取出所述五元组,确定该五元组是否命中已经存储的规则,然后对IP包执行相应的操作。
包分类过程可以通过一定方法以软件完成,也可以直接在硬件平台上完成。传统上,包分类过程基于软件实现,随着网络速度的飞速发展,特别是千兆网、万兆网的应用,完全基于软件的方法很难实现线速处理IP包,经常出现丢包现象。此外,如果包分类过程只是整个系统实现的一部分,那么基于软件的分类方法将占用大量的计算能力,导致整个系统的性能下降。
基于硬件的包分类方法可以分为两类,一类是采用诸如三态内容寻址存储器(ternary content addressable memory,TCAM)的结构,另一类是对现有方法进行硬件加速。目前实际应用中,基于硬件的包分类算法大多采用TCAM。基于TCAM分类速度快,对于一个五元组,只需一个周期就可以判断是否命中某条规则。但TCAM同时也存在诸多缺点,例如,TCAM价格较高,功耗比普通DRAM/SRAM大。更重要地,TCAM容量小,不适合规则较多的情形。而且,TCAM本身不支持范围查询,对于t位的范围查询,需要2(t-1)个TCAM项来表示。针对TCAM的诸多缺陷,出现扩展的TCAM结构:ETCAM。与TCAM相比,ETCAM主要有两个方面的改进,一是通过将规则分别存储在多个部分以减少并行比较的数目,大大降低了功耗;二是通过在硬件中实现范围查找,每条规则只需一个ETCAM项,节省了空间。但是ETCAM的这些措施都要付出昂贵的代价,并且缺乏灵活性。除了TCAM之外,有许多研究工作对现有分类方法进行硬件加速,但仍然面临算法的固有问题,如访存次数多、规则更新复杂、难以支持大规则集等。
当前,许多应用的规则集包含几十K甚至是上百K规则,并且要求规则集可以实时更新,目前的包分类方法对这种情况几乎无能为力。
发明内容
为克服现有IP包分类不能处理海量规则以及不能实时处理更新的缺陷,本发明提出了一种IP包分类方法和设备。
根据本发明的一个方面,提出了一种IP包分类方法,包括:
步骤10)、网络设备提取接收到的IP包的五元组,对所述五元组执行基于Counting Bloom Filter预测,获取预测结果;
步骤20)、根据所述预测结果,与组织成Ha sh表的规则表进行匹配,根据匹配后的规则,确定IP包分类结果。
其中,步骤10)进一步包括:
步骤110)、根据具体应用规则,确定所述五元组所需的掩码,决定所述Counting Bloom Filter预测的轮数;
步骤120)、对所述五元组进行Hash运算,得到中间结果;
步骤130)、将所述中间结果作为k个Hash函数的输入,产生k个地址,以所述k个地址访问位组,得到k个位;
步骤140)、当所述k个位都为1,将所述k个地址作为预测结果。
其中,步骤110)还包括使用掩码屏蔽预测不关心的五元组的域。
其中,步骤120)可以进一步包括:将源IP、目的IP、源端口、目的端口进行按位异或,得到一个32位的值tmp1,将tmp1右移n位后与tmp1按位异或得到tmp2,将tmp2左移m位后与tmp2按位异或得到中间结果,其中,所述n与m小于32。
其中,步骤130)中,所述位组可以是多端口存储器,所述访问位组可以为读取多端口存储器。
其中,步骤20)进一步包括:
步骤210)、根据所述k个Ha sh函数产生的地址中的第一个地址访问片外SRAM,获取规则,如果规则无效,执行下一轮匹配;
步骤220)、如果规则有效且被命中并具有最高优先级,那么匹配成功;
步骤230)、如果规则不被命中,那么继续以k个地址中其它地址执行同样匹配过程;如果所述k个地址用尽,那么将第k个地址加1,继续尝试,最后将命中最高优先级规则的结果确定为匹配结果。
其中,步骤210)中,所述SRAM中存储规则,并组织成Hash表。
其中,步骤210)还可以包括向所述SRAM中添加规则的过程:利用第一个hash函数计算出一个地址,如果该地址处已经有规则但不是待加入的规则,则以同样的方式尝试下一个Hash函数,直到使用过所有的Hash函数;如果还有冲突,那么将地址加1,继续尝试,直到目的地址处空闲或者找到相同的规则。
其中,Counting Bloom Filter预测和规则匹配时所使用的Hash函数可以部分或者全部共享。
根据本发明的另一方面,提出了一种IP包分类设备,包括:
Counting Bloom Filter预测模块,用于对网络设备提取接收到的IP包的五元组执行基于Counting Bloom Filter预测,获取预测结果;
规则匹配模块,用于根据所述预测结果,与组织成Hash表的规则表进行匹配,根据匹配后的规则,确定IP包分类结果。
所述设备还可以包括:
SRAM,用于存储分类规则,所述规则在SRAM中的地址根据Counting BloomFilter所用Hash函数产生。
其中,所述Counting Bloom Filter预测模块可以根据具体应用规则,确定所述五元组所需的掩码,决定所述Counting Bloom Filter预测的轮数;所述Counting Bloom Filter预测模块对所述五元组进行Hash运算,得到中间结果,将所述中间结果作为k个Hash函数的输入,产生k个地址,以所述k个地址访问位组,得到k个位;当所述k个位都为1,所述Counting Bloom Filter预测模块将所述k个地址作为预测结果,并进入下一轮预测;当所述k个位包括至少一个0时,直接进入下一轮预测。
其中,所述位组可以是多端口存储器,所述访问位组可以为读取多端口存储器,其中,当Counting Bloom Filter计数器值为0,位组对应位为0,当Counting Bloom Filter计数器值为1,位组对应位为1;所述Counting BloomFilter预测模块的计数器由1变为0或由0变为1时,通过系统总线更新所述位组。
其中,所述规则匹配模块还用于根据所述k个Hash函数产生的地址中的第一个地址访问SRAM,获取规则,如果规则无效,执行下一轮匹配;如果规则有效且被命中并具有最高优先级,那么匹配成功;如果规则不被命中,那么继续以k个地址中其它地址执行同样匹配过程,如果k个地址用尽,那么将第k个地址加1,继续尝试,最后将所述规则匹配模块将命中最高优先级规则的匹配结果确定为匹配结果。
其中,所述规则匹配模块还可以向所述SRAM中添加规则:所述规则匹配模块利用第一个hash函数计算出一个地址,如果该地址处已经有数据但不是待加入的规则,则以同样的方式尝试下一个Hash函数,直到使用所有的Hash函数;如果还有冲突,那么将第k个地址加1,继续尝试,直到目的地址处空闲或者找到相同的规则。
其中,所述Counting Bloom Filter预测模块和所述规则匹配模块所使用的Hash函数可以部分或全部共享。
所述设备可以为由多个所述Counting Bloom Filter预测模块和多个所述规则匹配模块组成的多路设备,其中,每一路中包括一个所述Counting BloomFilter预测模块和一个所述规则匹配模块,各路中的所述Counting BloomFilter预测模块和所述规则匹配模块相互独立。
通过应用本发明,部分采用硬件实现分类过程,速度快;在CBF过滤部件中,由软件维护Counting Bloom Filter所用的计数器组,硬件只存储位组,既能实现动态删除规则,又大大节省硬件资源;分类过程完全由硬件完成,节省了系统的计算能力;本发明可以支持大量的规则,具有良好的可扩展性,支持规则的优先级。
附图说明
图1为根据本发明的实施例的CBF预测流程图;
图2为根据本发明的实施例的规则匹配流程图;
图3是根据本发明的实施例的IP包分类设备结构图;
图4是根据本发明的实施例的IP包分类设备详细结构图。
具体实施方式
下面结合附图和具体实施例对本发明提供的一种IP包分类方法和设备进行详细描述。
Bloom Filter是一种空间效率很高的数据结构,它利用位组很简洁地表示一个集合,并能快速判断一个元素是否属于这个集合。但Bloom Filter不适合于集合元素动态增删的场合--每删除一个元素,表示集合的位组都需要重新计算,这是一个非常耗时的过程。为此,人们提出了带有计数器的Bloom Filter(Counting Bloom Filter,CBF),将Bloom Filter中位组的每一位,用一个计数器来代替。CBF的每个计数器被初始化为全0,每增加一个元素,k个Hash函数对应位置处的计数器加1;删除元素则只需要将相应计数器减1。计数器的大小可以根据需要选择,对于大多数应用,4位的计数器就已经足够。
设需要表示的集合中有n个元素,记为S={x0,x1,x2,...,xn-1},用m位的位组B来表示S。位组B初始化为全0。选择k个Hash函数(记为h1,h2,...,hk),每个Ha sh函数产生的索引(index)值都在(0-m-1)之间,也就是正好作为数组B的位索引。对于任意xi∈S,分别计算k个索引h1(xi),...,hk(xi),并将位组B中相应位B[h1(xi)],...,B[hk(xi)]置为1。如果B中的某些位被多次置1,那么只有第一次起作用,后续的置位不产生任何效果。S中的每个元素都处理完毕后,位组B就成为集合S的一个压缩存储。
对于一个新的元素y,可以通过下面的方法判断其是否属于集合S:计算h1(yi),...,hk(yi),并检查B[h1(yi)],...,B[hk(yi)]是否全部为1,如果是,那么y可能属于集合S;如果不是,那么y必定不属于集合S。注意,Bloom
Filter对于元素不属于集合的判断是准确的,但对于元素属于集合的判断则可能存在错误,也就是存在false positive错误。产生这种误判的原因在于被误判元素与属于集合的某些元素产生相同的索引,以致该元素对应的k个索引处全为1。
根据本发明的实施例的一种基于五元组的分类方法主要包括CBF(CountingBloom Filter)预测以及规则匹配,CBF预测利用CBF对五元组进行预测,预测结果中有不可能命中和可能命中规则两种,根据上述Bloom Filter的特点,不可能命中是准确的,而可能命中则可能存在错误,需要在规则匹配阶段进行精确匹配。在大多数情况下,CBF预测可以将大部分不能命中规则的五元组直接排除,从而减少规则匹配阶段的运算量。
CBF预测
维护CBF的计数器组,硬件对应每个计数器只保留一位,组成位组B。计数器的值与位组B的关系为:计数器值为0,位组B对应位为0,否则,位组B对应位为1。
在实际的应用中,规则的有些域是不关心的,为了能够处理此类情况,CBF预测部件被配置为M轮预测,为源IP、目的IP、源端口和目的端口四个域设置了掩码,每一轮CBF预测针对一种掩码,将该轮预测不关心的域屏蔽,大多数规则并不是五元组中的每个域都有效,比如规则“所有源IP地址为‘a.b.c.d’的IP包都丢弃”就只有源IP域有效。所有M轮预测可以共享一个B位组,也可以维护独立的B位组。只要B位组的总位数一定,共享或独立不影响性能。
CBF预测具体步骤如图1所示,网络设备接收IP包后,提取出五元组,将五元组执行m轮CBF预测,每一轮预测包括一次预处理和一次CBF查询。可以根据具体应用的需要,事先决定可能存在的掩码类型,继而决定CBF预测需要的轮数。
预处理首先根据掩码,确定屏蔽的域,对这些域执行某种Hash运算得到适当位数的中间结果TmRes。
第r轮预处理的输出是中间结果TmRes,其过程可以是下述简单的Hash运算:将源IP、目的IP、源端口、目的端口(该轮CBF预测的掩码决定无效的域用0代替)进行按位异或,得到一个32位的值tmp1,将tmp1右移17位后与tmp1按位异或得到tmp2,将tmp2左移15位后与tmp2按位异或得到中间结果TmRes。
以第i轮中间结果TmResi作为该轮k个Hash函数的输入,产生k个地址h1(TmResi)、h2(TmResi)、......、hk(TmResi)。CBF预测部件分别以该k个地址访问位组B,得到k个位B[h1(TmResi)]、B[h2(TmResi)]、......、B[hk(TmResi)]。对于这k个位都为1(根据Bloom Filter的特性,这种情况表明可能命中某条规则)的五元组,CBF预测部件将h1(TmResi)、h2(TmResi)、......、hk(TmResi)作为该轮的结果;否则(即,k位中至少有一位为0,这种情况表明五元组肯定不可能命中任一条规则),直接进入下一轮。CBF预测部件最终将预测结果发送给规则匹配部件。
规则匹配
因为Counting Bloom Filter预测对元素属于何种规则集合的判断可能存在误差,所以对于CBF预测为可能命中的五元组,还要与真正的规则作匹配。
规则存储在SRAM中,并被组织成Hash表。采用随机探查(random probing)与线性探查(linear probing)相结合的方式来解决冲突。随机探查依次采用g个Hash函数(为了节省资源,在具体实现时,采用与CBF预测部件相同的Hash函数,这也是CBF预测部件要将hj(TmResi)作为结果传给规则匹配部件的原因)。向SRAM中添加规则的过程如下:首先利用第一个hash函数计算出一个地址,如果该地址处已经有规则但不是待加入的规则,即存在冲突,那么以同样的方式尝试下一个Hash函数,直到第g个,如果还有冲突,那么将地址加1(即线性探查),继续尝试,直到目的地址处空闲或者找到相同的规则。
规则匹配的流程如图2所示,对于上述每一轮预测结果均为不可能命中规则的五元组,规则匹配部件不做任何操作,只需将结果发送给系统总线。对于那些预测为可能命中的结果,规则匹配部件都要访问片外SRAM才能决定五元组能否命中规则。因此,规则匹配部件也可能需要进行多轮匹配,最多与CBF预测轮数相等,即M轮。每轮规则匹配的过程如下所述。首先以上述从CBF预测部件传过来的h1(TmResi)作为地址访问片外SRAM,取得规则,如果规则无效,那么执行下一轮匹配;如果规则有效且被命中并具有最高优先级,那么匹配成功,将匹配结果传给软件;如果规则不被命中,那么继续以h2(TmResi)、......、hg(TmResi)、(hg(TmResi)+1)、(hg(TmResi)+2)、......为地址执行同样匹配过程。如果每一轮匹配都不命中,那么将不命中结果传给总线,否则,将命中最高优先级规则的匹配结果传给总线处理。
需要注意的是,CBF预测部件利用k个Hash函数,规则匹配部件则使用g个Hash函数,k和g可以相等也可以不相等。如果不相等,那么需要更多Hash函数的部件共用另一部件的所有函数,其余的Hash函数另外生成。五元组的协议域不参与CBF预测,而是在规则匹配部件中与从SRAM中所取得规则直接比较。
根据本发明另一个实施例中,提出一种基于五元组的IP包分类设备。如图3所示,所述设备包括CBF预测模块和规则匹配模块,还可以包括采用片外静态RAM设计的SRAM。
为了提高分类速度,可以采用多路并行的结构,图4以两路为例示出详细结构图,各路部件、分类过程完全独立,互不影响。
Counting Bloom Filter使用一个计数器替代Bloom Filter位组中的每一位。本发明的实施例采用Counting Bloom Filter对五元组进行预测。软件维护Counting Bloom Filter的计数器,设备对应的每个计数器只保留一位,如图4中的BF位组,记该位组为B。计数器的值与BF位组中对应位的关系为:计数器值为0,BF位组对应位为0,否则BF位组对应位为1。当添加或删除规则时,软件更新Counting Bloom Filter的计数器,但只有在计数器由1变为0或由0变为1时才通过系统总线更新BF位组。对于此设备来说,由于仅存储位组,就能以Bloom Filter的代价,取得Counting Bloom Filter的效果,并能节省利用硬件维护Counting Bloom Filter计数器所需的逻辑。此外,如果由硬件维护计数器,那么每增加或删除规则,都要启动系统总线通知硬件,而通过软件维护计数器,则可以只在BF位有变化的时候才通过系统总线更新BF位组,所以节省了系统总线带宽。
如图4所示,CBF预测分为多路,但由于规则是相同的,所以只需要一个BF位组,BF位组是个多端口存储器,各路CBF预测分别通过各自的端口读取BF位组。一个预测部件与p个规则匹配部件相连(图中以p=4为例)。对于每一个五元组,预测部件计算预测结果并将该结果传给p个规则匹配部件中一个可用的。图中所示的SRAM可以是片外静态存储器,用于存储规则。该规则表被组织成Ha sh表,采用随机探查与线性探查相结合的方式来解决冲突。规则匹配部件访问该SRAM以获得规则。对于要增加的新规则,软件通过与前述CBF预测部件的一轮预处理和查询相同的步骤(此时的掩码由规则决定)计算k个地址h1(T)、h2(T)、......、hk(T),从中找到第一个没有规则的位置作为新规则的保存地址(与前面一样)。
对于CBF预测为可能命中某规则的五元组,规则匹配部件以该五元组在CBF预测部件产生的地址访问片外SRAM取得规则与五元组比较,找到该五元组可以匹配的具有最高优先级的规则。
分类规则存储在片外SRAM中,由软件负责规则的增加或删除。规则在SRAM中的地址根据Counting Bloom Filter所用Hash函数产生。
最后应说明的是,以上实施例仅用以描述本发明的技术方案而不是对本技术方法进行限制,本发明在应用上可以延伸为其他的修改、变化、应用和实施例,并且因此认为所有这样的修改、变化、应用、实施例都在本发明的精神和教导范围内。
Claims (13)
1.一种IP包分类方法,包括:
步骤10)、网络设备提取接收到的IP包的五元组,对所述五元组执行基于Counting Bloom Filter预测,获取预测结果;
步骤20)、根据所述预测结果,与组织成Hash表的规则表进行匹配,根据匹配后的规则,确定IP包分类结果;
其中,步骤10)进一步包括:
步骤110)、根据具体应用规则,确定所述五元组所需的掩码,决定所述Counting Bloom Filter预测的轮数;
步骤120)、对所述五元组进行Hash运算,得到中间结果;
步骤130)、将所述中间结果作为k个Hash函数的输入,产生k个地址,以所述k个地址访问位组,得到k个位;
步骤140)、当所述k个位都为1,将所述k个地址作为预测结果;
步骤20)进一步包括:
步骤210)、根据所述k个Hash函数产生的地址中的第一个地址访问片外SRAM,获取规则,如果规则无效,执行下一轮匹配;
步骤220)、如果规则有效且被命中并具有最高优先级,那么匹配成功;
步骤230)、如果规则不被命中,那么继续以k个地址中其它地址执行同样匹配过程;如果k个地址用尽,那么将第k个地址加1,继续尝试,最后将命中最高优先级规则的匹配结果确定为匹配结果;
其中,所述Counting Bloom Filter是指带有计数器的Bloom Filter数据结构。
2.权利要求1的方法,其中,步骤110)还包括通过掩码屏蔽不关心的五元组的域。
3.权利要求1的方法,其中,步骤120)可以进一步包括:将源IP、目的IP、源端口、目的端口进行按位异或,得到一个32位的值tmp1,将tmp1右移n位后与tmp1按位异或得到tmp2,将tmp2左移m位后与tmp2按位异或得到中间结果,其中,所述n与m小于32。
4.权利要求1的方法,其中,步骤130)中,所述位组对应于多端口存储器,所述访问位组是读取对应的多端口存储器。
5.权利要求1的方法,其中,步骤210)中,所述SRAM中存储规则,并组织成Hash表。
6.权利要求1的方法,其中,步骤210)还包括向所述SRAM中添加规则的过程:利用第一个hash函数计算出一个地址,如果该地址处已经有规则但不是待加入的规则,则以同样的方式尝试下一个Hash函数,直到使用过所有的Hash函数;如果还有冲突,那么将地址加1,继续尝试,直到目的地址处空闲或者找到相同的规则。
7.权利要求1的方法,其中,Counting Bloom Filter预测和规则匹配时所使用的Hash函数部分或者全部共享。
8.一种IP包分类设备,包括:
Counting Bloom Filter预测模块,用于对网络设备提取接收到的IP包的五元组执行基于Counting Bloom Filter预测,获取预测结果;
规则匹配模块,用于根据所述预测结果,与组织成Hash表的规则表进行匹配,根据匹配后的规则,确定IP包分类结果;
其中,所述Counting Bloom Filter预测模块根据具体应用规则,确定所述五元组所需的掩码,决定所述Counting Bloom Filter预测的轮数;所述Counting Bloom Filter预测模块对所述五元组进行Hash运算,得到中间结果,将所述中间结果作为k个Hash函数的输入,产生k个地址,以所述k个地址访问位组,得到k个位;当所述k个位都为1,所述Counting Bloom Filter预测模块将所述k个地址作为预测结果,并进入下一轮预测;当所述k个位包括至少一个0时,直接进入下一轮预测;
其中,所述规则匹配模块还用于根据所述k个Hash函数产生的地址中的第一个地址访问SRAM,获取规则,如果规则无效,执行下一轮匹配;如果规则有效且被命中并具有最高优先级,那么匹配成功;如果规则不被命中,那么继续以k个地址中其它地址执行同样匹配过程,如果k个地址用尽,那么将第k个地址加1,继续尝试,最后将所述规则匹配模块将命中最高优先级规则的匹配结果确定为匹配结果;
其中,所述Counting Bloom Filter是指带有计数器的Bloom Filter数据结构。
9.权利要求8的设备,还可以包括:
SRAM,用于存储分类规则,所述规则在SRAM中的地址根据Counting BloomFilter所用Hash函数产生。
10.权利要求8的设备,其中,所述位组对应于多端口存储器,所述访问位组是读取对应的多端口存储器,其中,当Counting Bloom Filter计数器值为0,位组对应位为0,当Counting Bloom Filter计数器值为1,位组对应位为1;所述Counting Bloom Filter预测模块的计数器由1变为0或由0变为1时,通过系统总线更新所述位组。
11.权利要求8的设备,其中,所述规则匹配模块还向所述SRAM中添加规则:所述规则匹配模块利用第一个hash函数计算出一个地址,如果该地址处已经有数据但不是待加入的规则,则以同样的方式尝试下一个Hash函数,直到使用所有的Hash函数;如果还有冲突,那么将第k个地址加1,继续尝试,直到目的地址处空闲或者找到相同的规则。
12.权利要求8的设备,其中,所述Counting Bloom Filter预测模块和所述规则匹配模块所使用的Hash函数部分或全部共享。
13.权利要求8-12的其中一个所述的设备,还包括多个所述Counting BloomFilter预测模块和多个所述规则匹配模块,多个所述Counting Bloom Filter预测模块和多个所述规则匹配模块组成多路设备,每一路中包括一个所述Counting Bloom Filter预测模块和一个所述规则匹配模块,各路中的所述Counting Bloom Filter预测模块和所述规则匹配模块相互独立。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101161293A CN101309216B (zh) | 2008-07-03 | 2008-07-03 | 一种ip包分类方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101161293A CN101309216B (zh) | 2008-07-03 | 2008-07-03 | 一种ip包分类方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101309216A CN101309216A (zh) | 2008-11-19 |
CN101309216B true CN101309216B (zh) | 2011-05-04 |
Family
ID=40125441
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008101161293A Expired - Fee Related CN101309216B (zh) | 2008-07-03 | 2008-07-03 | 一种ip包分类方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101309216B (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101459560B (zh) * | 2009-01-09 | 2011-04-13 | 中国人民解放军信息工程大学 | 长流的识别方法、数据流量的测量方法及其设备 |
CN101841438B (zh) * | 2010-04-02 | 2011-10-05 | 中国科学院计算技术研究所 | 一种访问存储海量并发tcp流的流记录的方法或系统 |
CN102055670B (zh) * | 2010-12-17 | 2014-08-27 | 曙光信息产业股份有限公司 | 一种通过软硬件协同提高硬件报文分类规则容量的方法 |
CN102014070B (zh) * | 2010-12-17 | 2014-05-21 | 曙光信息产业股份有限公司 | 一种通过软件提高硬件报文分类规则匹配效率的方法 |
CN102014071A (zh) * | 2010-12-17 | 2011-04-13 | 天津曙光计算机产业有限公司 | 一种实现软硬件中报文分类规则同步删除的方法 |
CN102012957A (zh) * | 2010-12-17 | 2011-04-13 | 天津曙光计算机产业有限公司 | 一种基于五元组的包分类逻辑代码验证方法 |
CN102111331B (zh) * | 2010-12-17 | 2015-04-01 | 曙光信息产业(北京)有限公司 | 一种基于hash表实现的带掩码五元组规则的匹配方法 |
CN103164400A (zh) * | 2011-12-08 | 2013-06-19 | 中国移动通信集团浙江有限公司 | 关联分析方法、装置及系统 |
CN102523164B (zh) * | 2011-12-19 | 2015-09-23 | 曙光信息产业(北京)有限公司 | 一种在网卡中实现复杂同源同宿分流的系统 |
CN103188231A (zh) * | 2011-12-30 | 2013-07-03 | 北京锐安科技有限公司 | 一种多核板卡acl规则匹配方法 |
CN104753726B (zh) * | 2013-12-25 | 2018-04-20 | 任子行网络技术股份有限公司 | 一种串行数据流的审计控制方法及系统 |
CN105099918B (zh) * | 2014-05-13 | 2019-01-29 | 华为技术有限公司 | 一种数据查找匹配的方法和装置 |
CN107888494B (zh) * | 2017-11-29 | 2020-06-26 | 湖南大学 | 一种基于社区发现的包分类方法及系统 |
CN109754021B (zh) * | 2019-01-11 | 2022-03-18 | 湖南大学 | 基于范围元组搜索的在线包分类方法 |
CN112015575A (zh) * | 2020-08-28 | 2020-12-01 | 北京浪潮数据技术有限公司 | 一种报文处理方法、装置及相关设备 |
CN112769704B (zh) * | 2021-02-09 | 2023-04-18 | 芯河半导体科技(无锡)有限公司 | 一种基于hash表的高速可扩展IP路由查找硬件装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030005036A1 (en) * | 2001-04-06 | 2003-01-02 | Michael Mitzenmacher | Distributed, compressed Bloom filter Web cache server |
CN1394041A (zh) * | 2001-06-26 | 2003-01-29 | 华为技术有限公司 | 一种因特网服务提供者安全防护的实现方法 |
CN1633111A (zh) * | 2005-01-14 | 2005-06-29 | 中国科学院计算技术研究所 | 高速网络业务流分类方法 |
US20050195832A1 (en) * | 2004-02-09 | 2005-09-08 | Washington University | Method and system for performing longest prefix matching for network address lookup using bloom filters |
-
2008
- 2008-07-03 CN CN2008101161293A patent/CN101309216B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030005036A1 (en) * | 2001-04-06 | 2003-01-02 | Michael Mitzenmacher | Distributed, compressed Bloom filter Web cache server |
CN1394041A (zh) * | 2001-06-26 | 2003-01-29 | 华为技术有限公司 | 一种因特网服务提供者安全防护的实现方法 |
US20050195832A1 (en) * | 2004-02-09 | 2005-09-08 | Washington University | Method and system for performing longest prefix matching for network address lookup using bloom filters |
CN1633111A (zh) * | 2005-01-14 | 2005-06-29 | 中国科学院计算技术研究所 | 高速网络业务流分类方法 |
Non-Patent Citations (1)
Title |
---|
US 20030005036 A1,全文. |
Also Published As
Publication number | Publication date |
---|---|
CN101309216A (zh) | 2008-11-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101309216B (zh) | 一种ip包分类方法和设备 | |
US20210367887A1 (en) | Flow classification apparatus, methods, and systems | |
US11102120B2 (en) | Storing keys with variable sizes in a multi-bank database | |
US9627063B2 (en) | Ternary content addressable memory utilizing common masks and hash lookups | |
CN104426909B (zh) | 用于将图样编译成非确定有限自动机(nfa)图形的方法和计算机系统 | |
US20200159654A1 (en) | Pipelined hash table with reduced collisions | |
AU2010322819B2 (en) | Processing network traffic | |
CN104050041B (zh) | 用于在处理器中调度规则匹配的调度方法和装置 | |
US7680806B2 (en) | Reducing overflow of hash table entries | |
CN108337172A (zh) | 大规模OpenFlow流表分级存储架构与加速查找方法 | |
JPWO2004032435A1 (ja) | ビットストリングの照合方法および装置 | |
CN102377664A (zh) | 一种基于tcam的区域匹配装置和方法 | |
CN104361296B (zh) | 一种并行的大容量访问控制列表的查找方法 | |
CN110908931B (zh) | Tlb模块的更新方法 | |
CN110096225A (zh) | 针对网络设备中的分组处理指令表的存储器的动态分配 | |
CN100401723C (zh) | 一种快速索引方法 | |
CN109039911B (zh) | 一种基于hash查找方式共享ram的方法及系统 | |
CN115334013B (zh) | 一种流量统计方法、网卡及电子设备 | |
GB2420883A (en) | Examining data patterns according to rules stored in content addressable memories | |
US7523251B2 (en) | Quaternary content-addressable memory | |
US11394686B1 (en) | Dynamic network address translation using prediction | |
Vijay et al. | Implementation of memory-efficient linear pipelined IPv6 lookup and its significance in smart cities | |
EP2328315A1 (en) | Processing network traffic | |
CN106572034A (zh) | 一种应用于交换机芯片的网络报文可编程处理方法 | |
CN109688117B (zh) | 一种大容量ip地址拦截方法和设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110504 |
|
CF01 | Termination of patent right due to non-payment of annual fee |