CN105515997A - 基于bf_tcam实现零范围扩张的高效范围匹配方法 - Google Patents

基于bf_tcam实现零范围扩张的高效范围匹配方法 Download PDF

Info

Publication number
CN105515997A
CN105515997A CN201510888314.4A CN201510888314A CN105515997A CN 105515997 A CN105515997 A CN 105515997A CN 201510888314 A CN201510888314 A CN 201510888314A CN 105515997 A CN105515997 A CN 105515997A
Authority
CN
China
Prior art keywords
tcam
prefix
subset
bloomfilter
scope
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.)
Granted
Application number
CN201510888314.4A
Other languages
English (en)
Other versions
CN105515997B (zh
Inventor
刘航天
方开莎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to CN201510888314.4A priority Critical patent/CN105515997B/zh
Publication of CN105515997A publication Critical patent/CN105515997A/zh
Application granted granted Critical
Publication of CN105515997B publication Critical patent/CN105515997B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/7453Address table lookup; Address filtering using hashing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Abstract

本发明提出了一种基于BF_TCAM实现零范围扩张的高效范围匹配方法,解决了目前基于TCAM实现范围匹配方法存在的存储利用率低、功耗大的问题,主要应用包括报文分类中端口范围匹配,存储保护中访存地址的审查等。本发明高效性体现在:高效存储、高速查找及低功耗。其特点在于,SMLCP算法将范围匹配过程分解为前缀匹配和特征区间比对两个步骤,从而便于使用TCAM技术,使TCAM存储利用率达到100%。根据SMLCP算法设计了BF_TCAM模型,按前缀长度对范围进行分类处理,使用Bloom?filter对关键字过滤,屏蔽无关项参与比较,从而大幅降低功耗。使用流水线技术减小电路关键路径长度,使查找操作在一个时钟周期内完成。

Description

基于BF_TCAM实现零范围扩张的高效范围匹配方法
技术领域
本发明涉及一种基于Bloomfilter算法和TCAM(TernaryContentAddressableMemory,三态内容寻址存储器)实现零范围扩张的高效范围匹配方法,主要用于解决报文分类中端口范围匹配,存储保护中访存地址的审查等,实现访问控制、安全过滤、带宽控制等功能,广泛应用于防火墙、路由器、交换机、分布式存储网络、可信计算安全平台等设备中。这些应用对查找性能要求很高,高速的范围匹配是其实现的技术支撑。
背景技术
目前业界普遍使用TCAM实现高速查找表。和普通内存通过地址寻找内容不同,TCAM通过内容定位地址,它将查找输入的关键字和所有表项进行并行比较来定位关键字匹配的存储地址,根据得到的地址在RAM中索引规则内容。TCAM可以在固定的时钟周期完成查找操作,目前其时钟周期可以达到2ns,实现500MSPS的查找速率。TCAM三态特性需要使用多达16个晶体管来实现一个比特的存储,导致芯片面积较大且价格不菲,而其并行比较特性使得功耗很高,一个18Mbit的TCAM功耗高达15W。
TCAM突出的问题在于其不适于实现范围匹配,它的三态性便于实现精确匹配和前缀匹配。比如TCAM可以方便地表达报文分类中的协议字段和IP地址字段,但端口范围无法直接实现。目前已有方案是将范围匹配转换成前缀匹配和精确匹配,一个范围字段往往映射出多条匹配表项,称为范围扩张(rangeexpansion)。范围扩张降低了TCAM空间使用效率,造成了较大的配置负载,提高了更新代价,同时使TCAM的功耗问题雪上加霜。
文献“面向存储和功耗优化的TCAM报文分类算法研究(2013年解放军信息工程大学硕士论文)”提出一种基于域转换的范围匹配算法DTRM(DomainTransformationforRangeMatch),充分利用TCAM表项中的冗余位压缩规则集,理想情况下可使范围扩张因子达到1.21以下,TCAM空间利用率提高到82%以上。文献“基于TCAM的范围匹配方法——C-TCAM(通信学报,2012,33(1):31-37)”提出一种基于TCAM的范围匹配方法C-TCAM(CompressedTCAM),通过二级压缩将2个扩展后的表项压缩成一个,最坏情况下范围扩张因子为W-1或W-2(W为关键字位宽,如端口号位宽为16),同时减少查找过程中无效表项参与比较来降低功耗。文献“Space-EfficientTCAM-BasedClassificationUsingGrayCoding(IEEETRANSACTIONSONCOMPUTERS,2012,61(1):18-30)”提出了基于格雷码的范围编码方法SRGE(ShortRangeGrayEncoding),利用格雷码相邻编码之间只有一位不同的特点对规则集进行压缩,但随着范围长度增加格雷编码效率大打折扣,只适用于较小范围,最坏情况下扩展因子达到了2W-2。报文分类中要同时匹配源端口和目的端口两个字段,上述文献为代表的范围匹配方案扩张因子是单字段下的平方,大幅增加了规则表项,造成大量存储冗余,同时提高了更新操作的复杂性和TCAM功耗,如最差情况下DTRM造成49倍扩张,C-TCAM造成225倍扩张,SRGE造成784倍扩张,同时DTRM和C-TCAM每条表项需要额外使用32个比特。文献“AFastRangeMatchingArchitecturewithUnitStorageExpansionRatioandHighMemoryUtilizationusingSBiCAMforPacketClassification(2014AnnualIEEEIndiaConference)”提出一种用于范围查找的新型存储器结构SBiCAM(SmartBinaryContentAddressableMemory),无需规则扩展,直接实现关键字与表项并行比较大小,而传统的TCAM只能判断是否相等,因而可实现高效的范围匹配。但其缺陷显而易见,SBiCAM是一种新型电路,投入实际应用尚需时日,从TCAM的发展历程可以判断SBiCAM即使投入生产也要经历一段漫长历程才能达到较理想的性能以满足应用需求。近年来出现TCAM分块存储策略,按照前缀长度进行分类存储,实现了前缀子集内表项的随机存放,提高了更新性能,而且查找操作只涉及TCAM部分区域,大幅降低了TCAM工作功耗,其中引入Bloomfilter对前缀分类处理是最近几年的一个创新。文献“LongestPrefixMatchingUsingBloomFilters(IEEE/ACMTRANSACTIONSONNETWORKING,2006,14(2):397-409)”利用Bloom_filter算法先对关键字的前缀长度进行预判断,再利用哈希查找表搜索前缀值,最差情况下需要使用N/2(N为前缀子集表项的最大数目)次哈希查找实现匹配,查找性能较TCAM差许多;文献“基于并行BP神经网络的路由查找算法(通信学报,2012,33(2):61-68)”提出BF_BP模型,第一步与文献“LongestPrefixMatchingUsingBloomFilters”相似,使用Bloomfilter匹配前缀长度,第二步利用BP反射神经网络实现前缀值匹配,然而其不足之处在于神经网络相比TCAM配置与更新要花费较长时间,需要多次训练实现神经单元学习。
发明内容
本发明所要解决的技术问题是提供一种基于Bloomfilter算法和TCAM实现零范围扩张的高效范围匹配算法,以解决基于TCAM实现范围匹配方法存在的存储利用率低、功耗大的问题,本算法高效性体现在:高效存储、高速查找及低功耗。
为达到上述目的,本发明具体方案如下。
一种基于BF_TCAM实现零范围扩张的高效范围匹配方法,适用于网络设备中端口范围匹配、存储保护中访存地址审查,设计了基于最长共同前缀的分段匹配(SegmentedMatchonLongestCommonPrefix,SMLCP)算法,将范围匹配转化为前缀匹配和特征区间比对两个步骤,实现了零范围扩张,使TCAM存储空间利用率达到100%;根据SMLCP算法设计了BF_TCAM模型,结合Bloomfilter的前缀分类处理优势和TCAM的高速查找特性,在保持高性能的同时大幅降低TCAM功耗;范围区间[s,t]内任意一整数点x,其二进制编码可以分为最长共同前缀和偏移量两段,其中LCP是区间内所有整数点的最长共同前缀,如LCP([37,57])=001*_****是范围[37,57]的LCP,40的二进制编码分为001*_****和01000两部分,*表示不关心;SMLCP算法利用范围区间的这种特性,将匹配过程分段进行,其具体步骤如下:
步骤一,查找与关键字x任意长度前缀相匹配的范围区间,至多有W个范围的LCP与x相匹配,W为x二进制编码位宽;
步骤二,根据x的偏移量精确挑选出匹配的范围。
算法的关键在于第一步将搜索范围缩小至W个以下,从而大幅减小了查找范围。
使用分类处理思想,根据前缀长度划分范围子集,各子集独立并行处理,能够随机插入或删除表项,支持增量更新,从而提高了更新性能;利用Bloomfilter对关键字各长度前缀进行预判断,过滤无关范围子集参与比较,从而大大降低功耗;针对Bloomfilter无法删除元素的缺陷设计Bloomfilter计数器,将位数组的每一位扩展为计数器,每增加或删除一个元素时执行加1或减1操作;设计BF_TCAM模型,分为前缀预处理(BloomfilterPreprocessing,BFPP)单元,TCAM_RAM单元(附优化的区间比较器),更新单元和状态单元;BFPP单元对关键字进行判断,筛选出关键字所在的前缀子集;TCAM_RAM单元存储所有范围的LCP、特征区间及附属信息(Acs_Infor),每个前缀子集对应一组TCAM_RAM,由片选信号进行选择;更新单元维护Bloomfilter计数器,实时更新BFPP单元的Bloomfilter和TCAM_RAM,有效减少了电路资源开销;状态单元记录工作状态,指示关键字是否有效;利用SMLCP特征区间比对特点优化了比较器设计,降低电路资源开销。
配置过程分为4个步骤:
步骤1、获取范围区间;
步骤2、计算范围区间的lcp,根据LCP前缀长度划分子集;
步骤3、首先训练各子集的Bloomfilter计数器,对每个范围的LCP进行K组哈希计算,记录训练结果,当学习完所有范围后更新BFPP单元Bloomfilter的位数组,对应Bloomfilter计数器不为0的位被置1;
步骤4、配置TCAM和RAM,根据前缀长度找到相应TCAM块存入lcp值,范围的特征区间和附属信息存入RAM相应位置,该步骤与步骤3在时间上同步,没有序要求,完成配置。
查找过程分为3个步骤:
步骤1、前缀预处理,Bloomfilter对关键字各个长度前缀进行运算,将命中的前缀子集标记在匹配向量match_vector中,过滤掉其它子集,选中match_vector标记的TCAM块和RAM块,这个阶段如果发现没有匹配前缀即match_vector为0可判断关键字无效;
步骤2、在选中子集的TCAM块中查找关键字,若存在匹配表项,以其位置作为地址索引RAM,输出相关范围的特征区间至比较器;
步骤3、比较器判断关键字偏移量是否位于特征区间,若存在匹配区间,将对应的附属信息输出,完成范围匹配,否则判定关键字无效。
更新过程分为3个步骤:
步骤1、计算插入/删除范围的LCP,根据LCP前缀长度定位所属子集;
步骤2、训练子集对应的Bloomfilter计数器,对LCP进行K组哈希计算,记录计算结果,插入过程中如计数器发生0到1的正跳变,置BFPP单元Bloomfilter的位数组相应位为1,删除过程中如果Bloomfilter计数器发生1到0负跳变,置BFPP单元Bloomfilter的位数组相应位为0;
步骤3、在子集相应的TCAM块中存储/删除LCP,RAM块中存储/删除特征区间,完成更新。
增加流水线从而减少电路关键路径长度,使查找操作在一个时钟周期内完成,特殊情况下流水线停顿只延长一个时钟周期,以目前TCAM技术可使查找操作最多在4ns内完成。
BF_TCAM模型能够自动校正Bloomfilter产生的正误差,过滤掉因误判通过Bloomfilter筛选的关键字。
SMLCP算法具体实现时,由TCAM和RAM分别存储各范围的LCP标识和特征区间,使用TCAM完成第一步前缀与LCP的匹配,缩小查找范围,然后以TCAM匹配表项的位置作为地址搜索RAM,比对关键字偏移量是否位于特征区间,完成第二步精确匹配。SMLCP算法将范围匹配问题转化为前缀匹配和偏移比对两个步骤,在没有扩展规则集的情况下实现了精确查找,因而其扩张因子仅为1.0。因为SMLCP算法存在离散范围的前提条件,所以在规则制定中需要注意各个范围不能重叠,相互之间不能够存在交集。
按前缀长度将范围空间划分为不同的集合,比如IP报文端口号有16位,将端口范围按LCP长度划分为16个不同子集,每个子集单独存储于TCAM中的一块区域。为降低TCAM的功耗,生产厂家在设计时将TCAM进行了分块,在接口中增加片选信号,只有选中的块参与运算。在查找时首先通过Bloomfilter筛选出关键字所在的集合,然后驱动相应的TCAM块完成查找,这样仅被选中的TCAM块参与查找,功耗大幅降低。为进一步优化存储空间,根据前缀长度的分布规律为不同子集分配相应规模的存储空间。
该发明的有益效果在于:本发明提出了一种基于BF_TCAM实现零范围扩张的高效范围匹配方法,解决了目前基于TCAM实现范围匹配方法存在的存储利用率低、功耗大的问题,主要应用包括报文分类中端口范围匹配,存储保护中访存地址的审查等。本发明高效性体现在:高效存储、高速查找及低功耗。其特点在于,SMLCP算法将范围匹配过程分解为前缀匹配和特征区间比对两个步骤,从而便于使用TCAM技术,使TCAM存储利用率达到100%。根据SMLCP算法设计了BF_TCAM模型,按前缀长度对范围进行分类处理,使用Bloomfilter对关键字过滤,屏蔽无关项参与比较,从而大幅降低功耗。使用流水线技术减小电路关键路径长度,使查找操作在一个时钟周期内完成。本发明具有以下优点:(1)高效存储,范围匹配转化过程不增加任何冗余信息,扩张因子达到1.0,使TCAM空间利用率达到100%;(2)高速匹配性能,查找操作在一个时钟周期内即可完成;(3)大幅提高更新性能,支持表项的随机插入与删除;(4)大幅降低工作功耗,使用Bloomfilter进行预处理,可快速判断关键字可能存在的前缀子集,过滤无关子集参与运算。
附图说明
图1是本发明实施例中的Bloom_filter算法配置示意图。
图2是本发明实施例中的Bloom_filter查找示意图。
图3是本发明实施例中的BF_TCAM模型结构图。
具体实施方式
下面结合附图对本发明的具体实施方式进行描述,以便更好的理解本发明。
实施例
Bloomfilter算法介绍:BloomFilter是一种空间效率很高的随机数据结构,利用位数组简洁地表示一个集合,能判断一个元素是否属于该集合。BloomFilter包含一个m位的位数组,初始状态时每一位都置为0。为了表达含有n个元素的集合S={s1,s2,…,sn},BloomFilter使用k个相互独立的哈希函数hash_i(i=1,2…,k),分别将集合中每个元素映射到{1,…,m}的范围中。对任意一个元素x,第i个哈希函数映射的位置hash_i(x)就会被置为1(1≤i≤k),如图1所示。
在判断s是否属于集合时,对s应用k次哈希函数,如果所有hash_i(s)的位置都是1(1≤i≤k),则s以一很大概率命中此集合,否则可判定s不属于此集合。如图2所示可以判定y1不是集合中的元素,而y2属于此集合是一个大概率事件。
BF_TCAM模型结构:BF_TCAM模型由四类单元构成:基于Bloomfilter的前缀预处理单元BFPP(BloomFilterPreprocessingUnit),TCAM_RAM单元,更新单元(UpdataUnit)和状态单元(StateUnit),如图3所示。
BFPP单元对关键字进行判断,筛选出关键字所在的前缀子集。如果关键字没有命中任何Bloomfilter,则可判断关键字无效,通知状态单元。
TCAM_RAM单元存储了所有范围的LCP、特征区间及附属信息(Acs_Infor),每个前缀子集对应一组TCAM_RAM,由片选信号进行选择。仅被选中前缀集的比较器参与运算,当所有参与运算的比较器判断关键字不在特征区间内时,即判断关键字无效,通过零匹配(No_Match)信号通知状态单元。
使用Bloomfilter进行预处理,可快速判断关键字可能存在的前缀子集,过滤无关子集参与运算,但同时增加了电路关键路径长度,为了不降低时钟频率引入流水线,使查找操作在一个时钟周期内即可完成。特殊情况下流水线停顿造成查找操作增加一个时钟周期,但目前TCAM时钟频率已达到500MHz以上,意味着查找操作可在4ns内完成,能够满足性能需求。
本发明实施例中的具体工作流程如下:
如表1所示为一个8位范围集,R1-R10为初始范围集,R11为工作过程中添加的表项,表中标明了每个范围区间的LCP、特征区间及所属子集。
表1:范围集
编号 范围区间 LCP(二进制) 特征区间(二进制) 所属子集
R1 [10:28] 0000_1*** [010:100] C5
R2 [32:37] 0010_0*** [000:101] C5
R3 [38:57] 001*_**** [0_0110:1_1001] C3
R4 [66-81] 010*_**** [0_0010:1_0001] C3
R5 [99-118] 011*_**** [0_0011:1_0110] C3
R6 [137-165] 10**_**** [00_1001:10_0101] C2
R7 [172-198] 1***_**** [010_1100:100_0110] C1
R8 [200-208] 110*_**** [0_1000:1_0000] C3
R9 [212-236] 11**_**** [01_0100:10_1100] C2
R10 [244:245] 1111_010* [0:1] C7
R11 [85:93] 0101_**** [0101:1101] C4
配置过程如下:
步骤1:获取R1-R10共10个范围区间;
步骤2:计算范围区间LCP,根据LCP前缀长度划分子集,R1、R2属于C5,R3-R5、R8属于C3,R6、R9属于C2,R7属于C1,R10属于C7;
步骤3:首先训练1,2,3,5,7号Bloomfilter计数器,对范围的LCP进行K组哈希计算,记录训练结果,当学习完所有范围后更新BFPP单元1,2,3,5,7号Bloomfilter的位数组;
步骤4:TCAM和RAM按子集分别存储LCP和特征区间,该步骤与步骤3在时间上同步,没有序要求,完成配置。
以关键字Search_Key=70(0100_0110)为例,查找过程如下:
步骤1:前缀预处理,Bloomfilter对Search_Key各个长度前缀进行运算,只有C3子集匹配,过滤掉其它子集,选中3号TCAM块和3号RAM块(T3和RAM3);
步骤2:在T3中查找前缀010*_****,存在相关表项,索引RAM3输出特征区间到3号比较器(Comp3);
步骤3:Comp3比较Search_Key[4:0]与特征区间,Search_Key[4]为0,因而选取特征区间起始端s’=0010与Search_Key[3:0]=0110比较,s’<Search_Key[3:0],判断关键字匹配该范围区间,完成查找。
以动态插入R11为例,更新过程如下:
步骤1:计算P=LCP(R11)=0101_****,P前缀长度为4,R11所属子集为C4;
步骤2:训练4号Bloomfilter计数器,对P进行K组哈希计算,记录计算结果,如计数器发生0到1的正跳变,置BFPP单元4号Bloomfilter的位数组相应位为1;
步骤3:T4存储P,RAM4存储特征区间[0101:1101],完成更新。
删除过程与插入过程相似,不同的地方为:步骤2如果Bloomfilter计数器发生1到0负跳变,置BFPP单元Bloomfilter的位数组相应位为0;步骤3删除TCAM和RAM中的表项。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

Claims (9)

1.一种基于BF_TCAM实现零范围扩张的高效范围匹配方法,适用于网络设备中端口范围匹配、存储保护中访存地址审查,其特征在于:提出SMLCP算法将范围匹配转化为前缀匹配和特征区间比对两个步骤,实现零范围扩张,使TCAM存储空间利用率达到100%;根据SMLCP算法设计了BF_TCAM模型,结合Bloomfilter的前缀分类处理优势和TCAM的高速查找特性,在保持高性能的同时大幅降低TCAM功耗;范围区间[s,t]内任意一整数点x,其二进制编码分为最长共同前缀和偏移量两段,其中LCP是区间内所有整数点的最长共同前缀;SMLCP算法利用范围区间的这种特性,将匹配过程分段进行,其具体步骤如下:
步骤一,查找与关键字x任意长度前缀相匹配的范围区间,至多有W个范围的LCP与x相匹配,W为x二进制编码位宽;
步骤二,根据x的偏移量精确挑选出匹配的范围。
2.根据权利要求1所述的基于BF_TCAM实现零范围扩张的高效范围匹配方法,其特征在于:使用分类处理思想,根据前缀长度划分范围子集,各子集独立并行处理,能够随机插入或删除表项,支持增量更新,提高更新性能;利用Bloomfilter对关键字各长度前缀进行预判断,过滤无关范围子集参与比较,降低功耗;针对Bloomfilter无法删除元素的缺陷设计Bloomfilter计数器,将位数组的每一位扩展为计数器,每增加或删除一个元素时执行加1或减1操作;设计BF_TCAM模型,分为前缀预处理单元,TCAM_RAM单元,更新单元和状态单元;BFPP单元对关键字进行判断,筛选出关键字所在的前缀子集;TCAM_RAM单元存储所有范围的LCP、特征区间及附属信息,每个前缀子集对应一组TCAM_RAM,由片选信号进行选择;更新单元维护Bloomfilter计数器,实时更新BFPP单元的Bloomfilter和TCAM_RAM,减少电路资源开销;状态单元记录工作状态,指示关键字是否有效;利用SMLCP特征区间比对特点优化了比较器设计,降低电路资源开销。
3.根据权利要求1所述的基于BF_TCAM实现零范围扩张的高效范围匹配方法,其特征在于:配置过程分为4个步骤:
步骤1、获取范围区间;
步骤2、计算范围区间的lcp,根据LCP前缀长度划分子集;
步骤3、首先训练各子集的Bloomfilter计数器,对每个范围的LCP进行K组哈希计算,记录训练结果,当学习完所有范围后更新BFPP单元Bloomfilter的位数组,对应Bloomfilter计数器不为0的位被置1;
步骤4、配置TCAM和RAM,根据前缀长度找到相应TCAM块存入lcp值,范围的特征区间和附属信息存入RAM相应位置,该步骤与步骤3在时间上同步,没有序要求,完成配置。
4.根据权利要求1所述的基于BF_TCAM实现零范围扩张的高效范围匹配方法,其特征在于:查找过程分为3个步骤:
步骤1、前缀预处理,Bloomfilter对关键字各个长度前缀进行运算,将命中的前缀子集标记在匹配向量match_vector中,过滤掉其它子集,选中match_vector标记的TCAM块和RAM块,这个阶段如果发现没有匹配前缀即match_vector为0可判断关键字无效;
步骤2、在选中子集的TCAM块中查找关键字,若存在匹配表项,以其位置作为地址索引RAM,输出相关范围的特征区间至比较器;
步骤3、比较器判断关键字偏移量是否位于特征区间,若存在匹配区间,将对应的附属信息输出,完成范围匹配,否则判定关键字无效。
5.根据权利要求1所述的基于BF_TCAM实现零范围扩张的高效范围匹配方法,其特征在于:更新过程分为3个步骤:
步骤1、计算插入/删除范围的LCP,根据LCP前缀长度定位所属子集;
步骤2、训练子集对应的Bloomfilter计数器,对LCP进行K组哈希计算,记录计算结果,插入过程中如计数器发生0到1的正跳变,置BFPP单元Bloomfilter的位数组相应位为1,删除过程中如果Bloomfilter计数器发生1到0负跳变,置BFPP单元Bloomfilter的位数组相应位为0;
步骤3、在子集相应的TCAM块中存储/删除LCP,RAM块中存储/删除特征区间,完成更新。
6.根据权利要求1所述的基于BF_TCAM实现零范围扩张的高效范围匹配方法,其特征在于:增加流水线从而减少电路关键路径长度,使查找操作在一个时钟周期内完成,特殊情况下流水线停顿只延长一个时钟周期,以目前TCAM技术可使查找操作最多在4ns内完成。
7.根据权利要求1所述的基于BF_TCAM实现零范围扩张的高效范围匹配方法,其特征在于:BF_TCAM模型能够自动校正Bloomfilter产生的正误差,过滤掉因误判通过Bloomfilter筛选的关键字。
8.根据权利要求1所述的基于BF_TCAM实现零范围扩张的高效范围匹配方法,其特征在于:SMLCP算法具体实现时,由TCAM和RAM分别存储各范围的LCP标识和特征区间,使用TCAM完成第一步前缀与LCP的匹配,缩小查找范围,然后以TCAM匹配表项的位置作为地址搜索RAM,比对关键字偏移量是否位于特征区间,完成第二步精确匹配;SMLCP算法将范围匹配问题转化为前缀匹配和偏移比对两个步骤,在没有扩展规则集的情况下实现了精确查找,因而其扩张因子仅为1.0;因为SMLCP算法存在离散范围的前提条件,在规则制定中需要注意各个范围不能重叠,相互之间不能够存在交集。
9.根据权利要求1所述的基于BF_TCAM实现零范围扩张的高效范围匹配方法,其特征在于:按前缀长度将范围空间划分为不同的集合,比如IP报文端口号有16位,将端口范围按LCP长度划分为16个不同子集,每个子集单独存储于TCAM中的一块区域;为降低TCAM的功耗,生产厂家在设计时将TCAM进行了分块,在接口中增加片选信号,只有选中的块参与运算;在查找时首先通过Bloomfilter筛选出关键字所在的集合,然后驱动相应的TCAM块完成查找,这样仅被选中的TCAM块参与查找,功耗大幅降低;为进一步优化存储空间,根据前缀长度的分布规律为不同子集分配相应规模的存储空间。
CN201510888314.4A 2015-12-07 2015-12-07 基于bf_tcam实现零范围扩张的高效范围匹配方法 Expired - Fee Related CN105515997B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510888314.4A CN105515997B (zh) 2015-12-07 2015-12-07 基于bf_tcam实现零范围扩张的高效范围匹配方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510888314.4A CN105515997B (zh) 2015-12-07 2015-12-07 基于bf_tcam实现零范围扩张的高效范围匹配方法

Publications (2)

Publication Number Publication Date
CN105515997A true CN105515997A (zh) 2016-04-20
CN105515997B CN105515997B (zh) 2018-07-06

Family

ID=55723650

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510888314.4A Expired - Fee Related CN105515997B (zh) 2015-12-07 2015-12-07 基于bf_tcam实现零范围扩张的高效范围匹配方法

Country Status (1)

Country Link
CN (1) CN105515997B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107346326A (zh) * 2016-05-05 2017-11-14 百度(美国)有限责任公司 用于生成神经网络模型的方法和系统
CN110858823A (zh) * 2018-08-24 2020-03-03 中兴通讯股份有限公司 一种数据包的分类方法、装置及计算机可读存储介质
CN114598616A (zh) * 2022-05-09 2022-06-07 上海飞旗网络技术股份有限公司 一种解决实时海量数据的高效模式匹配方法
CN114610958A (zh) * 2022-05-10 2022-06-10 上海飞旗网络技术股份有限公司 一种传输资源的处理方法、装置及电子设备
CN115878863A (zh) * 2022-12-01 2023-03-31 杭州菲数科技有限公司 数据查找方法及数据查找装置
CN117278660A (zh) * 2023-11-21 2023-12-22 华信咨询设计研究院有限公司 一种基于dpdk技术的流量过滤的协议解析方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101039253A (zh) * 2006-03-17 2007-09-19 中兴通讯股份有限公司 一种实现三重内容可寻址存储器范围匹配的前缀扩展方法
US20080155189A1 (en) * 2005-09-01 2008-06-26 Netlogic Microsystems, Inc Row expansion reduction by inversion for range representation in ternary content addressable memories
CN102377664A (zh) * 2010-08-27 2012-03-14 武汉烽火网络有限责任公司 一种基于tcam的区域匹配装置和方法
CN103546378A (zh) * 2013-05-20 2014-01-29 李险峰 基于tcam的范围多匹配2级分层查找方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080155189A1 (en) * 2005-09-01 2008-06-26 Netlogic Microsystems, Inc Row expansion reduction by inversion for range representation in ternary content addressable memories
CN101039253A (zh) * 2006-03-17 2007-09-19 中兴通讯股份有限公司 一种实现三重内容可寻址存储器范围匹配的前缀扩展方法
CN102377664A (zh) * 2010-08-27 2012-03-14 武汉烽火网络有限责任公司 一种基于tcam的区域匹配装置和方法
CN103546378A (zh) * 2013-05-20 2014-01-29 李险峰 基于tcam的范围多匹配2级分层查找方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
R. PANIGRAHY,S. SHARMA: "Sorting and searching using ternary CAMs", 《IEEE MICRO》 *
SANCHITA SAHA RAY,AYAN BHATTACHARYA: "A Fast Range Matching Architecture with Unit", 《IEEE INDIA CONFERENCE》 *
YOUNG-DEOK KIM,HYUN-SEOK AHN: "A High-Speed Range-Matching TCAM for", 《IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS I: REGULAR PAPERS》 *
朱国胜,余少华: "基于TCAM的范围匹配方法——C-TCAM", 《通信学报》 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107346326A (zh) * 2016-05-05 2017-11-14 百度(美国)有限责任公司 用于生成神经网络模型的方法和系统
CN107346326B (zh) * 2016-05-05 2023-10-31 百度(美国)有限责任公司 用于信息检索的方法和系统
CN110858823A (zh) * 2018-08-24 2020-03-03 中兴通讯股份有限公司 一种数据包的分类方法、装置及计算机可读存储介质
CN114598616A (zh) * 2022-05-09 2022-06-07 上海飞旗网络技术股份有限公司 一种解决实时海量数据的高效模式匹配方法
CN114610958A (zh) * 2022-05-10 2022-06-10 上海飞旗网络技术股份有限公司 一种传输资源的处理方法、装置及电子设备
CN114610958B (zh) * 2022-05-10 2022-08-30 上海飞旗网络技术股份有限公司 一种传输资源的处理方法、装置及电子设备
CN115878863A (zh) * 2022-12-01 2023-03-31 杭州菲数科技有限公司 数据查找方法及数据查找装置
CN115878863B (zh) * 2022-12-01 2023-12-19 杭州菲数科技有限公司 数据查找方法及数据查找装置
CN117278660A (zh) * 2023-11-21 2023-12-22 华信咨询设计研究院有限公司 一种基于dpdk技术的流量过滤的协议解析方法
CN117278660B (zh) * 2023-11-21 2024-03-29 华信咨询设计研究院有限公司 一种基于dpdk技术的流量过滤的协议解析方法

Also Published As

Publication number Publication date
CN105515997B (zh) 2018-07-06

Similar Documents

Publication Publication Date Title
CN105515997A (zh) 基于bf_tcam实现零范围扩张的高效范围匹配方法
CN101345707B (zh) 一种实现IPv6报文分类的方法及设备
CN101594319B (zh) 表项查找方法和装置
CN101753445A (zh) 基于关键字分解Hash算法的快速流分类方法
CN108875064B (zh) 基于FPGA的OpenFlow多维数据匹配查找方法
CN101309216B (zh) 一种ip包分类方法和设备
CN101655861B (zh) 基于双计数布鲁姆过滤器的哈希方法和哈希装置
CN105827530B (zh) 一种兼容ipv4/ipv6的ip二分查找方法及装置
CN107562743B (zh) 数据存储方法和装置、数据查找请求的处理方法和装置
CN105119834B (zh) 一种基于复合trie树结构的源地址目的地址联合查找方法
CN101848248B (zh) 一种规则查找方法和装置
CN103412858A (zh) 用于文本或网络内容分析的大规模特征匹配的方法
CN104025520A (zh) 查找表的创建方法、查询方法、控制器、转发设备和系统
CN102982147B (zh) 一种提高数据信息整合效率的方法和装置
CN104780101A (zh) 内容中心网络转发平面fib表结构及其检索方法
CN101916259B (zh) 确定自动机状态转换表的空间压缩方法
CN103226858B (zh) 蓝牙配对信息的处理方法及装置
CN104253754A (zh) 一种acl快速匹配的方法和设备
CN102904812B (zh) 路由表项的存储方法、查找方法、装置及系统
Pao et al. IP address lookup using bit-shuffled trie
CN109039911B (zh) 一种基于hash查找方式共享ram的方法及系统
CN104301227B (zh) 基于tcam的高速低功耗ip路由表查找方法
CN101516086B (zh) 移动通讯的业务匹配方法
CN107835127B (zh) 一种基于网络熵的域内路由节能方法
Li et al. Binary-tree-based high speed packet classification system on FPGA

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20180706

Termination date: 20181207