CN102333036B - 一种实现高速路由查找的方法和系统 - Google Patents

一种实现高速路由查找的方法和系统 Download PDF

Info

Publication number
CN102333036B
CN102333036B CN201110314798.3A CN201110314798A CN102333036B CN 102333036 B CN102333036 B CN 102333036B CN 201110314798 A CN201110314798 A CN 201110314798A CN 102333036 B CN102333036 B CN 102333036B
Authority
CN
China
Prior art keywords
address
input
hash
query
table items
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.)
Active
Application number
CN201110314798.3A
Other languages
English (en)
Other versions
CN102333036A (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.)
ZTE Corp
Original Assignee
ZTE Corp
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 ZTE Corp filed Critical ZTE Corp
Priority to CN201110314798.3A priority Critical patent/CN102333036B/zh
Publication of CN102333036A publication Critical patent/CN102333036A/zh
Application granted granted Critical
Publication of CN102333036B publication Critical patent/CN102333036B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明公开了一种实现高速路由查找的方法,利用哈希(Hash)函数和Bloom Filter将路由表项编码并储存;利用Hash和Bloom Filter对输入IP地址进行查询匹配,找到最长前缀匹配的路由表项。本发明还公开了一种实现高速路由查找的系统,通过上述方法和系统,能够快速、稳定的实现大容量路由表的查询,并且降低了存储消耗,提高了可容纳路由表项数目。

Description

一种实现高速路由查找的方法和系统
技术领域
本发明涉及路由查找技术领域,特别是指一种基于哈希(Hash)函数和Bloom Filter(BF)实现高速路由查找的方法和系统。
背景技术
随着互联网(Internet)的迅猛发展,用于主干网络互联的核心路由器的接口速率已经达到100Gbps,该速率要求核心路由器在支持大容量路由表的情况下路由查找,即IP查找的速率达到每秒几百万次。
IP查找需要得到最长匹配前缀,由于高速查找的需要,软件查找的方式已经不适用,近年来研究人员提出了多种硬件查找方法以提高查找速率,其中以查找树(Trie)结构和三态内容寻址存储器(Ternary Content Addressable Memory,TCAM)最为流行。
Trie以树形结构为基础,通过流水处理能够得到较高的吞吐率。由于树结构的特殊性,使得每级流水难以达到存储平衡,且每个树结点都要维护子结点信息,造成存储需求很大。利用一些优化方法可以达到存储平衡,但容易造成流水级数过多,难以维护。
TCAM是目前查找模块中利用较为广泛的技术,查找过程简单,但要满足100Gbps的查找速率要求需要多片TCAM调度查找,功耗与发热量将成为严重问题。
发明内容
有鉴于此,本发明的主要目的在于提供一种实现高速路由查找的方法和系统,能够快速、稳定的实现大容量路由表的查询。
为达到上述目的,本发明的技术方案是这样实现的:
本发明提供了一种实现高速路由查找的方法,所述方法包括:
利用哈希(Hash)函数和Bloom Filter(BF)将路由表项编码并储存;
将输入IP地址分类定位到唯一可能的特征串,包括:首先利用另一组BF的命中位置对输入IP地址进行初步分类,以匹配到一个小规模的特征串集合;然后再利用多组BF命中结果对输入IP地址细致分类,逐步减小命中集合,使输入IP地址对应到唯一可能匹配的特征串;若不匹配所述特征串,再进行一次比较验证以确定是否为所述特征串;
利用Hash和Bloom Filter对输入IP地址进行查询匹配,找到最长前缀匹配的路由表项。
其中,所述利用Hash和Bloom Filter将路由表项编码,包括:
随机生成各级哈希函数并储存;按照路由前缀长度,对表项进行分组;在同一长度内,针对表项的起始地址根据哈希结果编码得到哈希BF(HBF);针对HBF中各个表项的偏移地址编码得到分类BF(CBF);对每个表项计算摘要,并根据CBF编码结果组织摘要和完整路由表项的储存。
其中,在CBF编码之后,所述方法还包括:进行CBF验证,确保组内各CBF不冲突,否则随机更换哈希函数,重新编码HBF和CBF。
其中,所述利用Hash和Bloom Filter对输入IP地址进行查询匹配,包括:
根据输入IP地址经过哈希查询HBF,得到一组表项的起始地址;同时,根据输入IP地址经过哈希查询CBF,得到偏移地址;将起始地址加上偏移地址得到唯一的命中表项;根据命中表项读取摘要,与输入IP地址计算出的摘要进行对比,如果相同,则找到最长前缀匹配的路由表项;如果不同,则将所述输入IP地址存储在缓存(Cache)中。
其中,在利用Hash和Bloom Filter对输入IP地址进行查询匹配之前,所述方法还包括:根据输入IP地址查询Cache,如果命中则表示路由表项中没有所述输入IP地址,否则利用Hash和Bloom Filter对输入IP地址进行查询匹配。
其中,在所述HBF编码之前,所述方法还包括:针对各个路由前缀长度编码生成查询BF(QBF);
在根据输入IP地址经过哈希查询HBF之前,所述方法还包括:根据输入IP地址经过哈希查询QBF。
本发明还提供了一种实现高速路由查找的系统,所述系统包括:路由表项编码储存模块和路由表项查询模块;其中,
所述路由表项编码储存模块,用于利用Hash函数和Bloom Filter将路由表项编码并储存;
所述路由表项查询模块,用于将输入IP地址分类定位到唯一可能的特征串,包括:首先利用另一组BF的命中位置对输入IP地址进行初步分类,以匹配到一个小规模的特征串集合;然后再利用多组BF命中结果对输入IP地址细致分类,逐步减小命中集合,使输入IP地址对应到唯一可能匹配的特征串;若不匹配所述特征串,再进行一次比较验证以确定是否为所述特征串;
还用于利用Hash和Bloom Filter对输入IP地址进行查询匹配,找到最长前缀匹配的路由表项。
其中,所述路由表项编码储存模块利用Hash和Bloom Filter将路由表项编码,包括:
随机生成各级哈希函数并储存;按照路由前缀长度,对表项进行分组;在同一长度内,针对表项的起始地址根据哈希结果编码得到HBF;针对HBF中各个表项的偏移地址编码得到CBF;对每个表项计算摘要,并根据CBF编码结果组织摘要和完整路由表项的储存。
其中,所述路由表项编码储存模块,在CBF编码之后,还用于进行CBF验证,确保组内各CBF不冲突,否则随机更换哈希函数,重新编码HBF和CBF。
其中,所述路由表项查询模块利用Hash和Bloom Filter对输入IP地址进行查询匹配,包括:
根据输入IP地址经过哈希查询HBF,得到一组表项的起始地址;同时,根据输入IP地址经过哈希查询CBF,得到偏移地址;将起始地址加上偏移地址得到唯一的命中表项;根据命中表项读取摘要,与输入IP地址计算出的摘要进行对比,如果相同,则找到最长前缀匹配的路由表项;如果不同,则将所述输入IP地址存储在Cache中。
其中,所述路由表项查询模块在利用Hash和Bloom Filter对输入IP地址进行查询匹配之前,还用于根据输入IP地址查询Cache,如果命中则表示路由表项中没有所述输入IP地址,否则利用Hash和Bloom Filter对输入IP地址进行查询匹配。
其中,所述路由表项编码储存模块在所述HBF编码之前,还用于针对各个路由前缀长度编码生成QBF;
所述路由表项查询模块,在根据输入IP地址经过哈希查询HBF之前,还用于根据输入IP地址经过哈希查询QBF。
本发明所提供的实现高速路由查找的方法和系统,利用Hash函数和BloomFilter将路由表项编码并储存;利用Hash和Bloom Filter对输入IP地址进行查询匹配,找到最长前缀匹配的路由表项。本发明提供的路由查找方法,与现有的查找方法相比,有以下优点:一是查找过程快速、稳定。因算法主要操作由哈希与BF读取构成,可流水进行查询,通常Trie树或TCAM等方案需要多节拍完成一次IP地址查询,而本发明流水操作平均可每节拍完成一次完整的IP地址查询,在小于10-10的情况下因不命中导致多次查询,但可以使用Cache避免此情况再次发生,平均查找速度快速稳定。二是存储消耗较小,可容纳路由表项数目大。本发明片内存储空间复杂度为O(log(l)n),其中l为同长度前缀的最多表项数量,n为总表项数量。片外存储空间复杂度为O(m),其中m为总表项比特数。三是,在存在冲突的前提下,将输入字符串分类定位到唯一可能的特征串再进行匹配,能够较好实现精确匹配。
附图说明
图1为Bloom Filter的基本原理示意图;
图2为Bloom Filter多长度查询引擎示意图;
图3为本发明一种实现高速路由查找的方法流程示意图;
图4为PCBFG基本体系结构示意图;
图5为本发明一种实现高速路由查找的系统结构示意图。
具体实施方式
为了更好的理解本发明,首先介绍一下Bloom Filter(BF)。BF是一个空间效率很高的数据结构,它由一个位数组和一组哈希(Hash)映射函数组成。BF可以用于检索一个元素是否在一个集合中,它的优点是空间效率和查询时间都远远超过一般的算法,缺点是有一定的误识别率。图1为Bloom Filter的基本原理示意图,如图1所示,BF的主要部分由一个m比特向量和k个哈希函数组成,每个哈希函数能够将集合中的一个元素映射到区间[0,m-1]上的一个整数,对应m比特向量上的一位。由集合构造BF时,首先将m比特向量初始化为全0,每个集合元素经过k个哈希函数映射到不超过k个比特位上,将对应位设置为1。查询某元素是否属于该集合时,同样经由k个哈希函数将查询元素映射到不超过k个bit位,只需判断这些bit位是否均为1:若均为1,元素可能属于集合,若有至少一位为0,则元素一定不属于该集合。图中h1(s)、h2(s)为哈希函数,s1、s2为元素集合,s1和s2构成的集合经由哈希函数h1(s)、h2(s)映射到三个比特位上。当X为查询输入时,经由哈希函数h1(s)、h2(s)映射到两个比特位上均为1,则X可能属于集合;当Y为查询输入时,经由哈希函数h1(s)、h2(s)映射到两个比特位上,一个比特位为1,另一个比特位为0,则Y一定不属于该集合。
使用Bloom Filter时不会漏判但有可能出现误判,这种情况称为正误识(False Positive,FP),其概率被称为错误判对率(False Positive Rate,FPR),对给定的k、m、n,可计算如下:
f=(1-exp(-kn/m))k
前述Bloom Filter的缺点,最主要的一是存在FPR,二是不能确定所命中串。但实际上二者相互关联,若能确定命中串,则只需要一次串比较即可排除FPR,使Bloom Filter变为精确匹配。
本发明应用Bloom Filte的基本原理为:对于输入字符串中命中普通BF的元素,首先利用另一组BF的命中位置对输入字符串进行初步分类,此时可匹配到一个小规模的特征串集合,即扩展BF(Extended Bloom Filter,EBF)。其中k个链表对应特征串构成的集合,设该集合元素数量为v,当k=1时该BF退化为普通的Hash,故称此组Bloom Filter为HBF,称原始BF为查询BF(Query BF,QBF)。之后再利用多组Bloom Filter命中结果对输入字符串细致分类,使其对应到唯一可能匹配的特征串,若不匹配该特征串则输入字符串也不可能匹配集合内的其他任何特征串,再进行一次比较验证以确定是否为该特征串,即可精确匹配。
细致分类的基本方法为将相互冲突的特征串编码,依照每bit位的编码结果分为不同组,利用多组Bloom Filter结果逐步减小命中集合。例如:对冲突集合[a,b,c,d],依次编码为00、01、10、11。使用BF0、BF1两个BF分类。对应将[b,d]存储于BF0中,而[c,d]存储于BF1中。同时查询(BF0,BF1)的命中结果可能为(0,0),(0,1),(1,0),(1,1)四种之一,与编码对应,则将可能的命中集合缩小到[a,b,c,d]之一。称此类Bloom Filter为分类BF(Classify BF,CBF)。
上述是一种编码BF时没有发生错误命中的理想情况,实际中可能由于FPR而出现例如输入字符串a命中BF0,或输入字符串b同时命中BF0、BF1之类错误情况。为避免编码错误,需在每次计算生成编码后遍历同长度所有冲突的特征串进行验证。若发生错误冲突,需要随机生成新的Hash函数并重新编码,此过程可以由软件自动完成,一旦编码除非更新特征串否则无需再更换Hash函数。因此只要将总体错误概率控制在较低水平即可保证其成功率与硬件实现的可行性。
无需担心的是,不属于特征集合的输入字符串如果错误命中,并不会对最后查询结果产生影响,实际流量中的输入字符串无论是否错误命中BF0或BF1,也只能分类后对应到[a,b,c,d]之一,再取出该特征串进行一次比较验证即可排除FP。假设输入字符串X命中结果为(0,0),则X或者等于特征串a,或者不匹配[a,b,c,d]任何特征串,在与a比较后排除FP,故该分类能够较好的实现精确匹配。
这种方法的一个不足是对每个长度需要log2(v)个CBF,虽然每个BF存储元素数量少,总体资源占用不多,但实现较复杂。一种改进方案是利用每个长度均需要一组BF的特点,使用一个输入字符串的不同长度前缀子串进行分类,从而使每长度仅需要1个CBF,而代价是每长度串的前缀串最多跨越log2(v)个不同长度。例如,长度为6的特征串,Hash后同时有8个串相互冲突,则将6字节串的4、5、6字节前缀串存储于CBF4-6中,输入字符串查询CBF4-6后可由结果得到3位2进制编码对应串0-7。不同长度前缀CBF组成的集合可称为前缀分类BF(Prefix Classify BF,PCBF),整套系统应用多级多组BF,称其为前缀分类BF组(Prefix Classify BF Group,PCBFG)。
BF应用于路由查找时,需对每个前缀长度设置一组BF,同时查询所有长度,其结构如图2所示。
根据上述原理可知本发明的基本思想是:利用Hash函数和Bloom Filter将路由表项编码并储存;利用Hash和Bloom Filter对输入IP地址进行查询匹配,找到最长前缀匹配的路由表项。
下面结合附图和具体实施例对本发明的技术方案进一步详细阐述。
图3为本发明一种实现高速路由查找的方法流程示意图,如图3所示,所述方法包括以下步骤:
步骤301,利用哈希(Hash)函数和Bloom Filter将路由表项编码并储存;
具体的,所述利用Hash和Bloom Filter将路由表项编码,包括:随机生成各级哈希函数并储存;按照路由前缀长度,对表项进行分组;在同一长度内,针对表项的起始地址(base_address)根据哈希结果编码HBF;针对HBF中各个表项的偏移地址(offset)编码CBF;对每个表项计算摘要,并根据CBF编码结果组织摘要和完整路由表项的储存。其中,根据CBF编码结果组织摘要和完整路由表项的储存,具体为:在片内存储表项的一个摘要用于初步验证,用片外DDR3存储完整的表项。
进一步的,在HBF编码之前,所述方法还包括:针对各个路由前缀长度编码生成QBF。
具体的,针对各个不同的路由前缀长度进行QBF编码的目的在于,可以在查询中过滤大部分流量,减少后续比较次数以降低系统功耗。该级BF容量很小,且并非必要。
进一步的,在CBF编码之后,所述方法还包括:进行CBF验证,确保组内各CBF不冲突,否则随机更换哈希函数,重新编码HBF和CBF。
步骤302,利用Hash和Bloom Filter对输入IP地址进行查询匹配,找到最长前缀匹配的路由表项。
具体的,所述利用Hash和Bloom Filter对输入IP地址进行查询匹配,包括:根据输入IP地址经过哈希查询HBF,得到一组表项的起始地址;同时,根据输入IP地址经过哈希查询CBF,得到偏移地址;将起始地址加上偏移地址得到唯一的命中表项;根据命中表项读取摘要,与输入IP地址计算出的摘要进行对比,如果相同,则找到最长前缀匹配的路由表项;如果不同,则将所述输入IP地址存储在Cache中。
进一步的,在利用Hash和Bloom Filter对输入IP地址进行查询匹配之前,所述方法还包括:根据输入IP地址查询缓存(Cache),如果命中则读取Cache中的结果,否则执行步骤302。其中,所述读取Cache中的结果表示所述输入IP地址对应的表项信息没有存储在本表中,查表结果为“No Result”。
进一步的,在根据输入IP地址经过哈希查询HBF之前,所述方法还包括:根据输入IP地址经过哈希查询QBF。通过QBF可以根据前缀长度进行分类,在查询过程中每个长度中最多命中一个表项,取最长命中长度从片外DDR3取出该可能命表项,进行一次直接比较。在不命中情况下,使用Cache以防止查找速度再次下降。
本发明主要分为多级多组结构,图4为PCBFG基本体系结构示意图,如图4所示,所述结构中:
第一级(Step1)为QBF,该级与普通BF相同,其实是否设计此级QBF对于系统的准确性和吞吐率并无影响,其作用仅为过滤大部分流量,减少后续比较次数以降低系统功耗,该级BF容量很小,且并非必要,故后文进行计算存储消耗时并没有将此计算在内。当QBF命中时,对命中长度进行第二级查询,若有多长度命中则利用硬件系统特性并行查询。假设在极端情况下,没有QBF或QBF同时命中所有长度,则并行查询所有后续BF组,仍然对系统性能无影响。
第二级(Step2)查询HBF,即为表H(Table.H),得到基础地址(base_addr)。
第三级(Step3)为PCBF,查询一组BF得到编码,即偏移地址,与基础地址相加得特征串地址addr,为图中Step3。该级可与HBF并行,也可待HBF命中确定后查询以减少读存储次数。
第四级(Step4)根据特征串地址,由特征串表(Table.S)中取出该串与输出串直接比较,即Step4。若比较成功,则提交特征串地址与报文至软件层进行后续处理,否则当前命中为FP,输入下一字节进行下一次匹配。
对通常每长度串数为103~104数量级的DPI特征串集合,片上存储已足够,该引擎无需使用片外存储,系统工作频率可尽量高。进行多字节匹配扩展时,可共享多端口存储,或多个匹配引擎并行。存储相对并行带宽的扩展代价为线性增长或更低。以上表明该系统频率方面仅受限于当前技术可达到的工作频率上限,带宽方面仅受限于成线性增长的存储,故非常易于实现高速DPI系统以满足骨干网线速要求。本发明的基本思想是试图根据Hash结果匹配特征串,如前所述这种思路的难点在于如何处理冲突。本发明并不力求避免冲突,而是在存在冲突的前提下,将输入字符串分类定位到唯一可能的特征串再进行匹配。
图5为本发明一种实现高速路由查找的系统结构示意图,如图5所示,所述系统包括:路由表项编码储存模块51和路由表项查询模块52;其中,
所述路由表项编码储存模块51,用于利用Hash函数和Bloom Filter将路由表项编码并储存;
具体的,所述路由表项编码储存模块51利用Hash和Bloom Filter将路由表项编码,包括:随机生成各级哈希函数并储存;按照路由前缀长度,对表项进行分组;在同一长度内,针对表项的起始地址根据哈希结果编码HBF;针对HBF中各个表项的偏移地址编码CBF;对每个表项计算摘要,并根据CBF编码结果组织摘要和完整路由表项的储存。其中,根据CBF编码结果组织摘要和完整路由表项的储存,具体为:在片内存储表项的一个摘要用于初步验证,用片外DDR3存储完整的表项。
进一步的,所述路由表项编码储存模块51,在HBF编码之前,还用于针对各个路由前缀长度编码生成QBF。
具体的,针对各个不同的路由前缀长度进行QBF编码的目的在于,可以在查询中过滤大部分流量,减少后续比较次数以降低系统功耗。该级BF容量很小,且并非必要。
进一步的,所述路由表项编码储存模块51,在CBF编码之后,还用于进行CBF验证,确保组内各CBF不冲突,否则随机更换哈希函数,重新编码HBF和CBF。
所述路由表项查询模块52,用于利用Hash和Bloom Filter对输入IP地址进行查询匹配,找到最长前缀匹配的路由表项。
具体的,所述路由表项查询模块52利用Hash和Bloom Filter对输入IP地址进行查询匹配,包括:根据输入IP地址经过哈希查询HBF,得到一组表项的起始地址;同时,根据输入IP地址经过哈希查询CBF,得到偏移地址;将起始地址加上偏移地址得到唯一的命中表项;根据命中表项读取摘要,与输入IP地址计算出的摘要进行对比,如果相同,则找到最长前缀匹配的路由表项;如果不同,则将所述输入IP地址存储在Cache中。
进一步的,所述路由表项查询模块52,在利用Hash和Bloom Filter对输入IP地址进行查询匹配之前,还用于根据输入IP地址查询Cache,如果命中则读取Cache中的结果,否则利用Hash和Bloom Filter对输入IP地址进行查询匹配。其中,所述读取Cache中的结果表示所述输入IP地址对应的表项信息没有存储在本表中,查表结果为“No Result”。
进一步的,所述路由表项查询模块52,在根据输入IP地址经过哈希查询HBF之前,还用于根据输入IP地址经过哈希查询QBF。通过QBF可以根据前缀长度进行分类,在查询过程中每个长度中最多命中一个表项,取最长命中长度从片外DDR3取出该可能命表项,进行一次直接比较。在不命中情况下,使用Cache以防止查找速度再次下降。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

Claims (10)

1.一种实现高速路由查找的方法,其特征在于,所述方法包括:
利用哈希(Hash)函数和Bloom Filter(BF)将路由表项编码并储存,包括:随机生成各级哈希函数并储存;按照路由前缀长度,对表项进行分组;在同一长度内,针对表项的起始地址根据哈希结果编码得到哈希BF(HBF);针对HBF中各个表项的偏移地址编码得到分类BF(CBF);对每个表项计算摘要,并根据CBF编码结果组织摘要和完整路由表项的储存;
将输入IP地址分类定位到唯一可能的特征串,包括:首先利用另一组BF的命中位置对输入IP地址进行初步分类,以匹配到一个小规模的特征串集合;然后再利用多组BF命中结果对输入IP地址细致分类,逐步减小命中集合,使输入IP地址对应到唯一可能匹配的特征串;若不匹配所述特征串,再进行一次比较验证以确定是否为所述特征串;
利用Hash和Bloom Filter对输入IP地址进行查询匹配,找到最长前缀匹配的路由表项。
2.根据权利要求1所述的方法,其特征在于,在CBF编码之后,所述方法还包括:进行CBF验证,确保组内各CBF不冲突,否则随机更换哈希函数,重新编码HBF和CBF。
3.根据权利要求1所述的方法,其特征在于,所述利用Hash和Bloom Filter对输入IP地址进行查询匹配,包括:
根据输入IP地址经过哈希查询HBF,得到一组表项的起始地址;同时,根据输入IP地址经过哈希查询CBF,得到偏移地址;将起始地址加上偏移地址得到唯一的命中表项;根据命中表项读取摘要,与输入IP地址计算出的摘要进行对比,如果相同,则找到最长前缀匹配的路由表项;如果不同,则将所述输入IP地址存储在缓存(Cache)中。
4.根据权利要求3所述的方法,其特征在于,在利用Hash和Bloom Filter对输入IP地址进行查询匹配之前,所述方法还包括:根据输入IP地址查询Cache,如果命中则表示路由表项中没有所述输入IP地址,否则利用Hash和Bloom Filter对输入IP地址进行查询匹配。
5.根据权利要求3所述的方法,其特征在于,在所述HBF编码之前,所述方法还包括:针对各个路由前缀长度编码生成查询BF(QBF);
在根据输入IP地址经过哈希查询HBF之前,所述方法还包括:根据输入IP地址经过哈希查询QBF。
6.一种实现高速路由查找的系统,其特征在于,所述系统包括:路由表项编码储存模块和路由表项查询模块;其中,
所述路由表项编码储存模块,用于利用Hash函数和Bloom Filter将路由表项编码并储存,包括:随机生成各级哈希函数并储存;按照路由前缀长度,对表项进行分组;在同一长度内,针对表项的起始地址根据哈希结果编码得到哈希BF(HBF);针对HBF中各个表项的偏移地址编码得到分类BF(CBF);对每个表项计算摘要,并根据CBF编码结果组织摘要和完整路由表项的储存;
所述路由表项查询模块,用于将输入IP地址分类定位到唯一可能的特征串,包括:首先利用另一组BF的命中位置对输入IP地址进行初步分类,以匹配到一个小规模的特征串集合;然后再利用多组BF命中结果对输入IP地址细致分类,逐步减小命中集合,使输入IP地址对应到唯一可能匹配的特征串;若不匹配所述特征串,再进行一次比较验证以确定是否为所述特征串;
还用于利用Hash和Bloom Filter对输入IP地址进行查询匹配,找到最长前缀匹配的路由表项。
7.根据权利要求6所述的系统,其特征在于,所述路由表项编码储存模块,在CBF编码之后,还用于进行CBF验证,确保组内各CBF不冲突,否则随机更换哈希函数,重新编码HBF和CBF。
8.根据权利要求6所述的系统,其特征在于,所述路由表项查询模块利用Hash和Bloom Filter对输入IP地址进行查询匹配,包括:
根据输入IP地址经过哈希查询HBF,得到一组表项的起始地址;同时,根据输入IP地址经过哈希查询CBF,得到偏移地址;将起始地址加上偏移地址得到唯一的命中表项;根据命中表项读取摘要,与输入IP地址计算出的摘要进行对比,如果相同,则找到最长前缀匹配的路由表项;如果不同,则将所述输入IP地址存储在Cache中。
9.根据权利要求8所述的系统,其特征在于,所述路由表项查询模块在利用Hash和Bloom Filter对输入IP地址进行查询匹配之前,还用于根据输入IP地址查询Cache,如果命中则表示路由表项中没有所述输入IP地址,否则利用Hash和Bloom Filter对输入IP地址进行查询匹配。
10.根据权利要求8所述的系统,其特征在于,所述路由表项编码储存模块在所述HBF编码之前,还用于针对各个路由前缀长度编码生成QBF;
所述路由表项查询模块,在根据输入IP地址经过哈希查询HBF之前,还用于根据输入IP地址经过哈希查询QBF。
CN201110314798.3A 2011-10-17 2011-10-17 一种实现高速路由查找的方法和系统 Active CN102333036B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110314798.3A CN102333036B (zh) 2011-10-17 2011-10-17 一种实现高速路由查找的方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110314798.3A CN102333036B (zh) 2011-10-17 2011-10-17 一种实现高速路由查找的方法和系统

Publications (2)

Publication Number Publication Date
CN102333036A CN102333036A (zh) 2012-01-25
CN102333036B true CN102333036B (zh) 2015-06-03

Family

ID=45484645

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110314798.3A Active CN102333036B (zh) 2011-10-17 2011-10-17 一种实现高速路由查找的方法和系统

Country Status (1)

Country Link
CN (1) CN102333036B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102984071B (zh) * 2012-12-31 2015-02-25 武汉烽火网络有限责任公司 分段地址路由的路由表组织方法及查找路由的方法
WO2015081524A1 (zh) * 2013-12-05 2015-06-11 北京大学深圳研究生院 用于异构地址路由的转发方法及装置
CN104539538B (zh) * 2014-12-26 2017-11-28 成都致云科技有限公司 路由器的ip地址匹配方法和路由器的数据包转发方法
CN104679854B (zh) * 2015-02-15 2018-01-26 中国科学院计算技术研究所 路由表存储与查找方法
CN104850656B (zh) * 2015-06-05 2018-04-10 中国信息安全研究院有限公司 一种动态自适应多级Bloom滤波器装置
CN105022784B (zh) * 2015-06-05 2019-05-14 中国信息安全研究院有限公司 一种动态调节多级Bloom滤波器结构的方法
CN106603414B (zh) * 2016-11-17 2020-04-10 珠海高凌信息科技股份有限公司 路由表快速比对方法
CN106850541B (zh) * 2016-12-13 2020-11-06 华为技术有限公司 一种物联网中节点的地址确定方法和装置
CN111259203B (zh) * 2020-01-08 2023-08-25 上海兆芯集成电路股份有限公司 数据压缩器以及数据压缩方法
CN111538727B (zh) * 2020-04-16 2023-01-13 四川轻化工大学 一种基于Bloom Filter的多路快速查找分类方法与系统
CN112115312B (zh) * 2020-09-08 2022-07-08 湖南大学 数据名查找方法、系统及存储介质
CN117478626B (zh) * 2023-12-27 2024-04-05 天津光电聚能通信股份有限公司 基于组相连缓存的快速匹配查找系统、方法、设备及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101150483A (zh) * 2007-11-02 2008-03-26 华为技术有限公司 路由表调整方法、路由查询方法和装置及路由表存储装置
CN101697131A (zh) * 2009-11-04 2010-04-21 中兴通讯股份有限公司 一种可重定位文件动态加载的方法及装置
CN102132533A (zh) * 2008-08-26 2011-07-20 艾利森电话股份有限公司 网络中的分组转发
CN102271087A (zh) * 2011-07-27 2011-12-07 中兴通讯股份有限公司 一种路由查找方法和装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100452732C (zh) * 2003-08-19 2009-01-14 华为技术有限公司 路由查找方法及其系统
US7602785B2 (en) * 2004-02-09 2009-10-13 Washington University Method and system for performing longest prefix matching for network address lookup using bloom filters
CN101572647B (zh) * 2008-04-30 2012-07-04 华为技术有限公司 一种数据查找的方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101150483A (zh) * 2007-11-02 2008-03-26 华为技术有限公司 路由表调整方法、路由查询方法和装置及路由表存储装置
CN102132533A (zh) * 2008-08-26 2011-07-20 艾利森电话股份有限公司 网络中的分组转发
CN101697131A (zh) * 2009-11-04 2010-04-21 中兴通讯股份有限公司 一种可重定位文件动态加载的方法及装置
CN102271087A (zh) * 2011-07-27 2011-12-07 中兴通讯股份有限公司 一种路由查找方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
《布鲁姆过滤器查询算法及其应用研究》;谢鲲;《中国博士学位论文全文数据库 信息科技辑 》;20070630(第6期);全文 *

Also Published As

Publication number Publication date
CN102333036A (zh) 2012-01-25

Similar Documents

Publication Publication Date Title
CN102333036B (zh) 一种实现高速路由查找的方法和系统
US8325721B2 (en) Method for selecting hash function, method for storing and searching routing table and devices thereof
US8856203B1 (en) System and method for algorithmic TCAM packet classification
Waldvogel et al. Scalable high-speed prefix matching
CN102484610B (zh) 路由表建立方法和装置及路由表查找方法和装置
CN101141389B (zh) 增强多位Trie树查找方法和装置
US7099881B2 (en) Method for increasing average storage capacity in a bit-mapped tree-based storage engine by using remappable prefix representations and a run-length encoding scheme that defines multi-length fields to compactly store IP prefixes
CN103051543B (zh) 一种路由前缀的处理、查找、增加及删除方法
JP4995125B2 (ja) 固定長データの検索方法
CN101577662A (zh) 一种基于树形数据结构的最长前缀匹配方法和装置
JP2012524932A (ja) アドレス検索のためのデータ構造、方法、及びシステム
CN1784678A (zh) 用于高效地搜索被分成具有界大小的、有界数量的子数据库的转发数据库的系统和方法
CN106980656B (zh) 一种基于二值码字典树的搜索方法
CN102405622A (zh) 二叉树建立、压缩和查找的方法和装置
CN104158744A (zh) 用于网络处理器的建表和查找方法
WO2013078644A1 (zh) 路由前缀存储方法、装置及路由地址查找方法、装置
CN101286935A (zh) 一种基于ip地址范围的路由查找方法
CN107948060A (zh) 一种新型的路由表建立、以及ip路由查找方法和装置
CN111801665A (zh) 用于大数据应用的分层局部敏感哈希(lsh)分区索引
CN103107945A (zh) 一种快速查找ipv6路由的系统及方法
US20220374733A1 (en) Data packet classification method and system based on convolutional neural network
CN105357247A (zh) 基于分层云对等网络的多维属性云资源区间查找方法
CN104021223A (zh) 一种集群数据库测点的访问方法及装置
CN111459938B (zh) 一种表项处理方法、查表方法及系统
CN110995876B (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
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20120125

Assignee: SHENZHEN ZTE MICROELECTRONICS TECHNOLOGY CO., LTD.

Assignor: ZTE Corporation

Contract record no.: 2015440020319

Denomination of invention: Method and system for realizing high-speed routing lookup

Granted publication date: 20150603

License type: Common License

Record date: 20151123

LICC Enforcement, change and cancellation of record of contracts on the licence for exploitation of a patent or utility model