一种路由查找方法和装置的制作方法

文档序号:7735806阅读:238来源:国知局
专利名称:一种路由查找方法和装置的制作方法
技术领域
本发明涉及数据通信技术领域,尤其涉及一种路由查找方法和装置。
背景技术
随着hternet的迅猛发展,用于主干网络互联的核心路由器的接口速率达到 100(ibpS,该速率要求核心路由器在支持大容量路由表的情况下路由查找速率达到每秒几百万次。路由表中的每条路由表项信息包含前缀和下一跳信息,在查找目的IP (Internet Protocol,互联网协议)地址时需要得到最长匹配前缀,由于高速查找的需要,软件查找方法已经不适用,近年来研究人员提出了多种硬件查找方法以提高查找速率,其中以流水处理禾口 TCAM(ternary content addressable memory,三态内容寻址存储器)最为流行。流水处理通常以树形结构为基础,能够得到较高的吞吐率。但由于树结构的特殊性,使得每级流水难以达到存储平衡,且每个树结点都要维护孩子结点信息,造成存储需求很大。即使利用一些优化方法可以达到存储平衡,也容易造成流水级数过多,难以维护。TCAM是目前路由查找中使用较为广泛的技术,查找过程简单,但要满足100(ibpS 的查找速率要求,则需要多片TCAM调度查找,功耗与发热量将成为严重问题。

发明内容
本发明要解决的技术问题是,提供一种路由查找方法和装置,基于bloom filter 算法实现路由查找,克服通过现有技术中硬件方式实现路由查找导致的功耗与发热量大的缺陷。本发明采用的技术方案是,所述路由查找方法,包括基于counting bloom filter数据结构在外部存储器或者路由寻址芯片中存储路由表项信息,从存储的路由表项信息中查找目的IP地址对应的路由表项信息。进一步的,所述基于counting bloom filter数据结构存储路由表项信息,具体包括基于counting bloom filter数据结构将路由表中的所有路由表项信息存入外部存储器,将存入外部存储器过程中发生溢出的路由表项信息存入路由寻址芯片中。进一步的,所述基于counting bloom filter数据结构从存储的路由表项信息中查找目的IP地址对应的路由表项信息,具体包括基于counting bloom filter数据结构在外部存储器中查找目的IP地址对应的路由表项信息,同时在路由寻址芯片中查找目的IP地址对应的路由表项信息;若只在外部存储器或者路由寻址芯片中查找到路由表项信息,则将其作为目的IP 地址对应的路由表项信息;若在外部存储器和路由寻址芯片中均查找到路由表项信息,将其中具有较长前缀者作为目的IP地址对应的路由表项信息。
4
进一步的,所述基于counting bloom filter数据结构在外部存储器中查找目的 IP地址对应的路由表项信息,具体包括基于counting bloom filter数据结构为目的IP地址匹配目标前缀,根据目标前缀中置1的比特位确定外部存储器地址;通过外部存储器地址访问外部存储器,获取目的IP地址对应的最长前缀,所述最长前缀所在的路由表项信息即为最终查找到的目的IP地址对应的路由表项信息。进一步的,所述基于counting bloom filter数据结构为目的IP地址匹配目标前缀,根据目标前缀中置1的比特位确定外部存储器地址,具体包括设counting bloom filter数据结构分别对应两个以上的存储空间,在各存储空间中对目的IP地址并行匹配得到对应的结果集和地址集;将各存储空间分别对应的结果集相与之后得到与目的IP地址匹配的目标前缀;根据目标前缀中置1的比特位对应的地址集中相应位置的内容确定外部存储器地址。基于上述方法,本发明还提供一种路由查找装置,包括存储操作单元,用于基于counting bloom filter数据结构在外部存储器或者路由寻址芯片中存储路由表项信息;查找操作单元,用于基于counting bloom filter数据结构从存储的路由表项信息中查找目的IP地址对应的路由表项信息。进一步的,所述存储操作单元,具体包括第一存储操作模块,用于基于counting bloom filter数据结构将路由表中的所有路由表项信息存入外部存储器,发生溢出时调用第二存储操作子模块;第二存储操作模块,用于将存入外部存储器过程中发生溢出的路由表项信息存入路由寻址芯片中。进一步的,所述查找操作单元,具体包括第一查找操作模块,用于基于counting bloom filter数据结构在外部存储器中查找目的IP地址对应的路由表项信息;第二查找操作模块,用于与第一查找操作模块同时启动,在路由寻址芯片中查找到目的IP地址对应的路由表项信息;比较模块,用于当第一查找操作模块和第二查找操作模块均查找到路由表项信息时,将其中具有较长前缀者作为目的IP地址对应的路由表项信息。进一步的,所述第一查找操作模块,具体包括地址确定子模块,用于基于counting bloom filter数据结构为目的IP地址匹配目标前缀,根据目标前缀中置1的比特位确定外部存储器地址;前缀确定子模块,用于通过外部存储器地址访问外部存储器,获取目的IP地址对应的最长前缀,所述最长前缀所在的路由表项信息即为最终查找到的目的IP地址对应的路由表项信息。进一步的,所述地址确定子模块,具体用于在counting bloom filter数据结构对应的两个以上存储空间中对目的IP地址并行匹配得到对应的结果集和地址集,将各存储空间分别对应的结果集相与之后得到与目的IP地址匹配的目标前缀,根据目标前缀中置1的比特位对应的地址集中相应位置的内容确定外部存储器地址。采用上述技术方案,本发明至少具有下列优点本发明所述路由查找方法和装置,基于counting bloom filter数据结构实现路由查找,与现有技术中以树形结构为基础的流水处理相比,对存储量要求明显降低,也易于对存储的路由表项进行维护。采用本发明的路由查找方案减少了路由寻址芯片的使用,不会产生较大功耗与发热量。


图1为本发明第一实施例的路由查找方法流程图;图2为本发明第一实施例的路由查找方案示意图;图3为本发明第一实施例步骤S103中基于counting bloom filter数据结构在外部存储器中查找目的IP地址对应的路由表项信息的过程示意图;图4为本发明第一实施例步骤Al的具体流程图;图5为本发明第二实施例的路由查找装置结构示意图;图6为本发明第三实施例的路由查找装置结构示意图;图7(a)为本发明第四实施例中第一、二存储空间结构示意图;图7(b)为本发明第四实施例中第三存储空间结构示意图;图8为本发明第四实施例中第三存储空间的过滤器索引index与片外 dram (dynamic random access memory,动态随机存储器)的偏移地址的对应关系示意图。
具体实施例方式为更进一步阐述本发明为达成预定目的所采取的技术手段及功效,以下结合附图及较佳实施例,对本发明进行详细说明如后。本发明第一实施例,一种路由查找方法,如图1所示,包括以下具体步骤步骤S101,基于counting bloom filter数据结构将路由表中的所有路由表项信息存入外部存储器,将存入外部存储器过程中发生溢出的路由表项信息存入路由寻址芯片中,路由寻址芯片可以为TCAM。外部存储器可以为片外dram。步骤SlOl具体包括设counting bloom filter数据结构对应一个位宽为M比特、地址长度为N比特的第一存储空间,M可取大于等于1的整数,且M越大,在后续的查找中发生假阳性false positive的概率越低,但是受硬件提供的存储空间的限制,M最大通常可以取到4。第一存储空间每一单元块可填入的数值为0、1........2M_1,第一存储空间的每
一单元块地址用过滤器索引index表示;本领域中公知的,用与counting bloom filter数据结构对应的存储空间绑定的Pl个哈希函数,对路由表项信息中的前缀进行运算得到的结果数值不会超过该存储空间的地址范围。对路由表中的每一条路由表项信息中的前缀进行Pl次哈希函数运算,每次哈希计算均能得到一个单元块的过滤器索引index,对各过滤器索引index出现的次数进行计数累加并将计数值填入该过滤器索引index对应的单元块中,计数值的初始值为0。若当前路由表项信息经某次哈希函数运算得到的过滤器索引index的计数值在
6累加前已为2M_1,则表示发生溢出,不再累加计数值,将该路由表项信息填入路由寻址芯片中;若对当前路由表项信息中的前缀经Pl次哈希函数运算得到的过滤器索引index 的计数值均未超过2M-1,选择计数值最小的过滤器索引index,在外部存储器中偏移地址为 (2M-1) X index处填入该条路由表项信息。本领域公知的,存储空间的地址长度N、哈希函数的个数P1、在外部存储器中进行路由查找时发生假阳性概率F的之间换算关系如下N = ceil ( (n log (F) ) /log (1. 0/ (pow (2. 0, log (2. 0) ) ) ) ) ;Pl = round(Nlog(2. 0)/n) ;η代表待插入的路由表项个数。步骤S102,在内部存储器中查找目的IP地址对应的路由表项信息,若找到,则流程结束,若未找到,则执行步骤S103。本实施例的路由查找方案示意图如图2所示。内部存储器可以为片内sram(StatiC random access memory,静态随机存储器),或者片内 edram (enhanced dynamic random access memory,ii1强动存取存fi者器)°步骤S103,基于counting bloom filter数据结构在外部存储器中查找目的IP地址对应的路由表项信息,同时在路由寻址芯片中查找目的IP地址对应的路由表项信息,根据查找的情况分为以下两种方式处理1)若只在外部存储器或者路由寻址芯片中查找到路由表项信息,则将其作为目的 IP地址对应的路由表项信息;2)若在外部存储器和路由寻址芯片中均查找到路由表项信息,将其中具有较长前缀者作为目的IP地址对应的路由表项信息。步骤S103中基于counting bloom filter数据结构在外部存储器中查找目的IP 地址对应的路由表项信息的过程,如图3所示,具体包括Al,基于counting bloom filter数据结构为目的IP地址匹配目标前缀。如图4 所示,步骤Al具体包括设目的IP地址的长度为L,目的IP地址的所有前缀的范围是从长度1到长度为 L ;设counting bloom filter数据结构分别对应两个以上的存储空间,所述存储空间的每一单元块地址用过滤器索引index表示,不同的存储空间分别绑定不同的哈希函数,为了便于实现,本实施例中不同的存储空间绑定的哈希函数的个数相同,均为P2 ;各存储空间的位宽可以相同也可以不同,地址长度可以相同也可以不同。本步中,M可取大于等于1的整数,且M越大,在后续的查找中发生假阳性false positive的概率越低,但是受硬件提供的存储空间的限制,M最大通常可以取到4。All,在各存储空间中分别插入目的IP地址相关信息。在特定的存储空间中,对目的IP地址的所有前缀依次进行P2次哈希函数运算,每次哈希计算均能得到一个单元块的过滤器索引index,对各过滤器索引index出现的次数进行计数累加并将计数值填入该过滤器索引index对应的单元块中若目的IP地址当前长度前缀经某次哈希函数运算得到的过滤器索引index的计数值在累加前未达到计数值上限,则计数值加1 ;若目的IP地址当前长度前缀经某次哈希函数运算得到的过滤器索引index的计数值在累加前已达到计数值上限,,则不再累加计数值。不同位宽的存储空间中的单元块有不同的计数值上限,设Ml为存储空间的位宽,那么该存储空间的计数值上限为2M1_1。A12,根据各存储空间中的计数值确定目的IP地址对应的结果集和地址集。在各存储空间中对目的IP地址并行匹配得到对应的结果集和地址集。每个结果集和地址集均可以看成是长度为L的数组,结果集中置1的位对应地址集相应位置中填写的内容。在每个存储空间中进行匹配的具体过程为在一个特定的存储空间内,若对目的 IP地址的某一个长度的前缀进行P2次哈希函数运算得到的P2个过滤器索引index对应的单元块中填写的计数值全部非0,则所述前缀在所述存储空间中匹配成功,将在长度为L的结果集中所述前缀的长度对应位置置1,并将P2个过滤器索引index对应的单元块中填写的计数值中最小者对应的过滤器索引index填入地址集中所述前缀的长度对应的位置(特殊的,如果该存储空间的位宽M = 1,则在计数值为1的过滤器索引index任意选一个填入地址集中所述前缀的长度对应的位置);若对目的IP地址的每一个长度的前缀进行P2次哈希函数运算得到的P2个过滤器索引index对应的单元块中填写的计数值至少有一个为0,则所述前缀在所述存储空间中匹配失败,将在长度为L的结果集中所述前缀的长度对应位置置0,同时在长度为L的地址集中所述前缀的长度对应位置赋0。A13,将各存储空间分别对应的结果集相与之后得到与目的IP地址匹配的目标前圣双。A2,根据目标前缀中置1的比特位对应的地址集中相应位置的过滤器索引index 确定外部存储器地址为X index,其中,M为counting bloom filter数据结构对应的第一存储空间的位宽。A3,通过步骤A2中确定的外部存储器地址访问外部存储器,获得目的IP地址对应的最长前缀(当外部存储器地址有两个以上时,经过比较获得目的IP地址对应的最长前缀),所述最长前缀所在的路由表项信息即为最终查找到的目的IP地址对应的路由表项信肩、O步骤S104,将找到的目的IP地址对应的路由表项信息填入内部存储器中。本发明第二实施例,一种路由查找装置,如图5所示,包括以下组成部分1)存储操作单元10,用于基于counting bloom filter数据结构在外部存储器或者路由寻址芯片中存储路由表项信息。存储操作单元10,具体包括第一存储操作模块11,用于基于counting bloom filter数据结构将路由表中的所有路由表项信息存入外部存储器,发生溢出时调用第二存储操作子模块。本发明所述路由查找装置可以在FPGA (Field-Programmable Gate Array,现场可编程门阵列)或 ASIC (Application Specific Integrated Circuits,专用集成电路)芯片上实现,外部存储器可以为片外dram。具体的,设counting bloom filter数据结构对应一个位宽为M比特、地址长度为N比特的第一存储空间,M可取大于等于1的整数,且M越大,在后续的查找中发生假阳性false positive的概率越低,但是受硬件提供的存储空间的限制,M最大通常可以取到
4。第一存储空间每一单元块可填入的数值为0、1........2M-1,第一存储空间的每一单元
块地址用过滤器索引index表示。
第一存储操作模块11对路由表中的每一条路由表项信息中的前缀进行Pl次哈希函数运算,每次哈希计算均能得到一个单元块的过滤器索引index,对各过滤器索引index 出现的次数进行计数累加并将计数值填入该过滤器索引index对应的单元块中,计数值的初始值为0。若当前路由表项信息经某次哈希函数运算得到的过滤器索引index的计数值在累加前已为2M-1,则表示发生溢出,不再累加计数值,调用第二存储操作模块12 ;若对当前路由表项信息中的前缀经Pl次哈希函数运算得到的过滤器索引index 的计数值均未超过2M-1,选择计数值最小的过滤器索引index,在外部存储器中偏移地址为 (2M-1) X index处填入该条路由表项信息。第二存储操作模块12,用于将存入外部存储器过程中发生溢出的路由表项信息存入路由寻址芯片中。路由寻址芯片可以为TCAM。2)查找操作单元20,用于基于counting bloom filter数据结构从存储的路由表项信息中查找目的IP地址对应的路由表项信息。查找操作单元20,具体包括第一查找操作模块21,用于在内部存储器中查找目的IP地址对应的路由表项信息,若找到,则操作结束,若未找到,则调用第二查找操作子模块。内部存储器可以为片内 sram或者片内edram。第二查找操作模块22,用于基于counting bloom filter数据结构在外部存储器中查找目的IP地址对应的路由表项信息若找到,则将找到的目的IP地址对应的路由表项信息填入内部存储器中;若未找到,则调用第三查找操作子模块。第二查找操作模块22,具体包括地址确定子模块221,用于基于counting bloom filter数据结构为目的IP地址匹配目标前缀,根据目标前缀中置1的比特位确定外部存储器地址。具体的,设目的IP地址的长度为L,目的IP地址的所有前缀的范围是从长度1到长度为L ;设counting bloom filter数据结构分别对应两个以上的存储空间,所述存储空间的每一单元块地址用过滤器索引index表示,不同的存储空间分别绑定不同的哈希函数,为了便于实现,本实施例中不同的存储空间绑定的哈希函数的个数相同,均为P2。在特定的存储空间中,对目的IP地址的所有前缀依次进行P2次哈希函数运算,每次哈希计算均能得到一个单元块的过滤器索引index,对各过滤器索引index出现的次数进行计数累加并将计数值填入该过滤器索引index对应的单元块中若当前路由表项信息经某次哈希函数运算得到的过滤器索引index的计数值在累加前未达到计数值上限,则计数值加1 ;若当前路由表项信息经某次哈希函数运算得到的过滤器索引index的计数值在累加前已达到计数值上限,则不再累加计数值;不同位宽的存储空间中的单元块有不同的计数值上限,设Ml为存储空间的位宽,那么该存储空间的计数值上限为2M1-1。在各存储空间中对目的IP地址并行匹配得到对应的结果集和地址集;将各存储空间分别对应的结果集相与之后得到与目的IP地址匹配的目标前缀。根据目标前缀中置1的比特位对应的地址集中相应位置的过滤器索引index确定外部存储器地址为X index,其中,M为counting bloom filter数据结构对应的第一存储空间的位宽。
9
前缀确定子模块222,用于通过外部存储器地址访问外部存储器,获得目的IP地址对应的最长前缀(当外部存储器地址有两个以上时,经过比较获得目的IP地址对应的最长前缀),所述最长前缀所在的路由表项信息即为最终查找到的目的IP地址对应的路由表项信息。第三查找操作模块23,用于与第二查找操作模块22同时启动,在路由寻址芯片中查找并将找到的目的IP地址对应的路由表项信息填入内部存储器中。比较模块M,用于当第二查找操作模块22和第三查找操作模块23均查找到路由表项信息时,将其中具有较长前缀者作为目的IP地址对应的路由表项信息,并填入内部存储器中,若与上述两个查找模块填写的结果不同,则以比较模块M的结果为准。需要说明的是,本发明中只存在1)第二查找操作模块或者第三查找操作模块中两者之一查找到目的IP地址对应的路由表项信息;2)第二查找操作模块和第三查找操作模块均查找到目的IP地址对应的路由表项信息,这两种情况。本发明提供的路由查找方案,与现有的查找方法相比,有以下优势1)由于基于 counting bloom filter数据结构,数据结构初始化后不随路由表项增加而增大,存储消耗很小且易于管理;2)在片内确定片外dram的偏移地址的过程只需消耗相当于一次片内 sram的访问时间,极大的提高了路由查找速率。本发明第三实施例,一种路由查找装置,本实施例与第二实施例大致相同,区别在于,查找操作单元20的具体组成及其所完成的功能,其中不涉及在内部存储器的查找,具体的,如图6所示,查找操作单元20,具体包括第一查找操作模块41,用于基于counting bloom filter数据结构在外部存储器中查找目的IP地址对应的路由表项信息。第二查找操作模块42,用于与第二查找操作模块22同时启动,在路由寻址芯片中查找到目的IP地址。比较模块M,用于当第二查找操作模块22和第三查找操作模块23均查找到路由表项信息时,将其中具有较长前缀者作为目的IP地址对应的路由表项信息,并填入内部存储器中,若与上述两个查找模块填写的结果不同,则以比较模块M的结果为准。因为内部存储器的访问速度快,但是容量较小,第二实施例中将已查找到的目的 IP地址对应的下一跳信息放入内部存储器中,在后续查找时首先访问内部存储器可以进一步提高查找的效率,故本实施例的查找效率低于第二实施例中的查找效率。本发明第四实施例,以采用counting bloom filter数据结构对应的三个特定的存储空间为例,介绍一下在片外dram中进行路由存储和查找的过程第一、二存储空间位宽为1,地址长度为10,其结构如图7(a)所示,这两个存储空间中每个单元块(图中的一个方框为一个单元块)为1个bit,初始值均为0。第三存储空间位宽为位宽为2,地址长度为10,其结构如图7(b)所示,第三存储空间中每个单元块(图中上下两个方框为一个单元块)为2个bit,初始值均为00,每个单元块可表示的二进制计数值为00、01、10、11,分别对应十进制计数值0、1、2、3。为保证系统整体false positive为10_4,上述三个存储空间共需12个哈希函数, 每个存储空间对应4个哈希函数、32个前缀长度,某个存储空间对应的哈希函数可任选,与其他两个存储空间不一样即可。
一、插入路由表项形成转发结构1)基于counting bloom filter数据结构将路由表中的所有路由表项信息存入片外dram,将存入片外dram过程中发生溢出的路由表项信息存入TCAM中。对于第三存储空间,对路由表中的每一条路由表项信息中的前缀进行4次哈希函数运算,每一条路由表项信息包含前缀和下一跳信息。每次哈希命中第三存储空间的过滤器索引index后,将该过滤器索引index的计数值加1,并填入对应的单元块中。因为每个单元块中的初始化计数值为0,若没有该单元块对应的过滤器索引index命中,则计数值不变。当前某个过滤器索引index的计数值小于3时,若某次哈希命中该过滤器索引 index,则计数值加1,由于第三存储空间每个单元块最多只能标记3个非0的计数值,这样, 外部dram的地址长度为第三存储空间过滤器索引index总长度的3 (即通过22_1计算得出)倍,因此,将命中的该过滤器索引indeXX3作为片外dram的偏移地址,在片外dram的 indeXX3至indeXX3+2的地址范围中插入当前哈希运算的路由表项信息即可。第三存储空间的过滤器索引index与片外dram的偏移地址的对应关系如图8所示。当前某个过滤器索引index的计数值小于3时,表示第三存储空间中的该单元块已满,若某次哈希命中该过滤器索引index,则发生溢出,不再累加计数值,并将该路由表项信息(包含前缀与下一跳信息)插入TCAM。根据实验统计,这部分溢出路由表项占到整个路由表表项的0. 1%。片外dram的地址冗余可以降低溢出概率即降低TCAM的插入条数,同时为了降低第三存储空间发生假阳性false positive造成的流水中断,可将dram颗粒冗余,即在片外附加两片存储相同内容的片外dram,同时查找一个前缀对应的两个偏移地址时信息,可有效降低中断概率。2)基于counting bloom filter数据结构将目的IP地址中的所有长度的前缀均经过4次哈希函数运算,根据哈希函数运算结果插入第一、二存储空间。第一、二存储空间各单元块的初始化计数值均为0,将目的IP地址所有长度的前缀分别经过4次哈希函数运算到不同的过滤器索引indexG次哈希可保证存储空间发生 false positive 的概率为 0. 05)若目的IP地址当前长度前缀经某次哈希函数运算得到的过滤器索引index的计数值在累加前为0,则计数值加1 ;若目的IP地址当前长度前缀经某次哈希函数运算得到的过滤器索引index的计数值在累加前已为非0,则不再累加计数值。二、找到给定目的IP地址的下一跳信息1)匹配目的IP地址的目标前缀。在第一、二存储空间中并行查找。在每个特定的存储空间中,将该目的IP地址的每个前缀(从长度为1到长度为3 进行匹配,结束后产生一个32bits的结果集。对于其中任一个长度前缀,若经过4次哈希函数计算得到的4个结果对应的过滤器索引index全部非0,则证明该前缀在该存储空间中匹配成功,该前缀在结果集对应地址置1(可将结果集视为长度为32位、下标从0开始的数组,若长度为k的前缀命中,则结果集的第k-Ι位置 1),并将4个结果对应的过滤器索引index中计数值中最小者填入该前缀在地址集中对应的位置;若4个结果对应的过滤器索引index中只要有一个为0,则该前缀不命中,该前缀在结果集对应位置0。2)将两个存储空间对应的结果集相与之后得到最终结果集,即目标前缀。3)根据目标前缀在dram中查找最长前缀及下一跳信息。根据目标前缀中置1的比特位对应的地址集中相应位置的过滤器索引index确定片外dram地址为3 X index (3是通过22_1计算得出)。

通过地址3X index访问片外dram,由于在第一步中存在溢出的路由表项没有插入到片外dram而是插入了 TCAM中,同时也对该目的IP地址进行TCAM查找,即查找结果可能会出现在TCAM或片外dram中,但由于TCAM中只插入了总表项的0. 1%,因此,对于性能影响较小。经过比较获得目的IP地址对应的最长前缀,该最长前缀所在的路由表项信息即为最终查找到的目的IP地址对应的路由表项信息。另外,若采用两个片外dram并行查找,目标前缀中最长及次长前缀都出现false positive的概率为ΙΟ—ΧΙΟ—4 = 10_8,即流水中断的概率为1θΛ本发明第五实施例,在上述四个实施例的基础上介绍一个路由表项插入和查找的实例,本实例采用四个counting bloom filter数据结构的存储空间,不同的存储空间分别绑定不同的哈希函数。路由表项格式为(前缀,下一跳信息即端口号)。假设存在路由表项(10.10.*.*/16,5),(10. *. *. */8,2),其中,前缀 10. 10·*·* 以prel代替,前缀10. *以pre2代替prel插入第一存储空间的过滤器索引index为[2 (1),4 (3),6 (2),7 (2)],最后一组小括号内的数字表示计数值,则根据最小计数值原则,应该选择地址2,则片外dram的偏移地址为2X3 = 6,没有溢出(地址2的计数值为1,表明片外dram只插入了 1项,共可以插入3项,因此没有溢出),则前缀存储在片外dram的偏移地址为6处。pre2插入第一存储空间的过滤器索引index % [3 (2),4 (3),2 (2),7 (1)],最后一组小括号内的数字表示计数值,则根据最小计数值原则,应该选择地址7,则片外dram的偏移地址为7X3 = 21,没有溢出,则前缀存储在片外dram的偏移地址为21处。假设对于待匹配的目的IP 地址IPl (10. 10. 10. 10),ΙΡ2(11· 10. 10. 10)IPl的32个前缀在第二 第四存储空间中并行匹配后得到的三个结果集,将三个结果集相与之后得到一个32bit的目标前缀,假设有两个片外dram,则取目标前缀中较高命中置1位一第16位和第8位在地址集中相应位的计数值乘以3得到片外dram的偏移地址6和21,访问两个片外dram,取得两条前缀及下一跳信息,经过比较后,prel为真正最长前缀,则将携带该目的IP地址的数据包转发至5号端口。假设出现了 false positive, IP2命中了 pre2,则IP2对应的目标前缀第8位命中置1,发现取偏移地址21访问片外dram后得到的前缀与IP2不符。若TCAM中也未找到, 则降低目标前缀命中置1位的位置,即取低于第8位的命中置1位计算偏移地址,继续在片外dram以及TCAM中查找,依次类推,最终也须取前缀较长者作为路由查找结果。通过具体实施方式
的说明,应当可对本发明为达成预定目的所采取的技术手段及功效得以更加深入且具体的了解,然而所附图示仅是提供参考与说明之用,并非用来对本发明 加以限制。
权利要求
1.一种路由查找方法,其特征在于,包括基于counting bloom filter数据结构存储路由表项信息,从存储的路由表项信息中查找目的IP地址对应的路由表项信息。
2.根据权利要求1所述的路由查找方法,其特征在于,所述基于countingbloom filter数据结构存储路由表项信息,具体包括基于counting bloom filter数据结构将路由表中的所有路由表项信息存入外部存储器,将存入外部存储器过程中发生溢出的路由表项信息存入路由寻址芯片中。
3.根据权利要求2所述的路由查找方法,其特征在于,所述基于countingbloom filter数据结构从存储的路由表项信息中查找目的IP地址对应的路由表项信息,具体包括基于counting bloom filter数据结构在外部存储器中查找目的IP地址对应的路由表项信息,同时在路由寻址芯片中查找目的IP地址对应的路由表项信息;若只在外部存储器或者路由寻址芯片中查找到路由表项信息,则将其作为目的IP地址对应的路由表项信息;若在外部存储器和路由寻址芯片中均查找到路由表项信息,将其中具有较长前缀者作为目的IP地址对应的路由表项信息。
4.根据权利要求3所述的路由查找方法,其特征在于,所述基于countingbloom filter数据结构在外部存储器中查找目的IP地址对应的路由表项信息,具体包括基于counting bloom filter数据结构为目的IP地址匹配目标前缀,根据目标前缀中置1的比特位确定外部存储器地址;通过外部存储器地址访问外部存储器,获取目的IP地址对应的最长前缀,所述最长前缀所在的路由表项信息即为最终查找到的目的IP地址对应的路由表项信息。
5.根据权利要求4所述的路由查找方法,其特征在于,所述基于countingbloom filter数据结构为目的IP地址匹配目标前缀,根据目标前缀中置1的比特位确定外部存储器地址,具体包括设counting bloom filter数据结构分别对应两个以上的存储空间,在各存储空间中对目的IP地址并行匹配得到对应的结果集和地址集;将各存储空间分别对应的结果集相与之后得到与目的IP地址匹配的目标前缀; 根据目标前缀中置1的比特位对应的地址集中相应位置的内容确定外部存储器地址。
6.一种路由查找装置,其特征在于,包括存储操作单元,用于基于counting bloom filter数据结构存储路由表项信息; 查找操作单元,用于基于counting bloom filter数据结构从存储的路由表项信息中查找目的IP地址对应的路由表项信息。
7.根据权利要求6所述的路由查找装置,其特征在于,所述存储操作单元,具体包括 第一存储操作模块,用于基于counting bloom filter数据结构将路由表中的所有路由表项信息存入外部存储器,发生溢出时调用第二存储操作子模块;第二存储操作模块,用于将存入外部存储器过程中发生溢出的路由表项信息存入路由寻址芯片中。
8.根据权利要求7所述的路由查找装置,其特征在于,所述查找操作单元,具体包括第一查找操作模块,用于基于counting bloom filter数据结构在外部存储器中查找目的IP地址对应的路由表项信息;第二查找操作模块,用于与第一查找操作模块同时启动,在路由寻址芯片中查找到目的IP地址对应的路由表项信息;比较模块,用于当第一查找操作模块和第二查找操作模块均查找到路由表项信息时, 将其中具有较长前缀者作为目的IP地址对应的路由表项信息。
9.根据权利要求8所述的路由查找装置,其特征在于,所述第一查找操作模块,具体包括地址确定子模块,用于基于counting bloom filter数据结构为目的IP地址匹配目标前缀,根据目标前缀中置1的比特位确定外部存储器地址;前缀确定子模块,用于通过外部存储器地址访问外部存储器,获取目的IP地址对应的最长前缀,所述最长前缀所在的路由表项信息即为最终查找到的目的IP地址对应的路由表项信息。
10.根据权利要求9所述的路由查找装置,其特征在于,所述地址确定子模块,具体用于在counting bloom filter数据结构对应的两个以上存储空间中对目的IP地址并行匹配得到对应的结果集和地址集,将各存储空间分别对应的结果集相与之后得到与目的IP 地址匹配的目标前缀,根据目标前缀中置1的比特位对应的地址集中相应位置的内容确定外部存储器地址。
全文摘要
本发明公开了一种路由查找方法和装置,基于counting bloom filter数据结构在外部存储器或者路由寻址芯片中存储路由表项信息,从存储的路由表项信息中查找目的IP地址对应的路由表项信息。本发明与现有技术中以树形结构为基础的流水处理相比,对存储量要求明显降低,也易于对存储的路由表项进行维护。采用本发明的路由查找方案减少了路由寻址芯片的使用,不会产生较大功耗与发热量。
文档编号H04L12/56GK102271087SQ20111021192
公开日2011年12月7日 申请日期2011年7月27日 优先权日2011年7月27日
发明者全成斌, 张炜, 李彧, 程晨, 赵有健, 闫昭博 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1