一种实现无回溯的最长前缀匹配搜索的方法和装置制造方法及图纸

技术编号:3501878 阅读:250 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种实现无回溯的最长前缀匹配搜索的装置,包括第一选择器、第二选择器、第三选择器、第一加法器、第二加法器、第一或门、第二或门、第三或门、多路选择器、译码器、掩码生成单元和比较部件,还包括输入信息寄存器组、树结点寄存器组、树结点读取部件、叶索引表读取部件、比较结果寄存器、叶结点信息寄存器组、搜索结果寄存器组和控制信号生成部件。本发明专利技术还公开了一种实现无回溯的最长前缀匹配搜索的方法。本发明专利技术采用的无回溯的路径压缩的二进制树的结构及搜索方法,可提高搜索效率并降低存储空间消耗;本发明专利技术采用叶子索引的机制,可减少实现查找的存储空间开销。

【技术实现步骤摘要】

本专利技术涉及网络通讯领域中的模式匹配,特别涉及一种实现无回溯的最长前缀匹配搜索的方法和装置
技术介绍
IP数据包的转发是路由器、交换机等网络设备的基本功能之一。在进行IP数据包转发时,需要根据数据包的目标地址进行搜索,以确定该数据包的转发端口。最常见的搜索操作是在路由表中查找与对应的目标地址具有最长前缀匹配表项。由于路由表的规模通常都很大,对它们的检索是一件非常费时的工作。 目前存在两种版本的IP,即IP版本4(IPv4)和IP版本6(IPv6)。IPv4的地址长度为32位,而IPv6的地址长度则为128位。一个32位的IPv4目的地址提供40亿个可能的路由,而一个互联网路由器通常存储40亿个可能的路由中的5万个路由。随着互连网的发展和IPv6的普及,路由器中所存储的路由数量也需要相应增加。 在现有的IPv4协议中,IP的地址空间分为A、B和C三类IP地址。每个IP地址空间分为网络地址和主机地址。然而,将IP地址空间划分为不同的类减少了可用IP地址的数量,浪费了大量可用的地址。为了提高IP地址空间利用率,现有技术中引入了无级域间路由(CIDR)。但无级域间路由增加了存储在路由器中的路由数量。这是由于无级域间路由需要采用最长前缀匹配搜索来取代完全匹配搜索,以获得相应的下一跳而寻找匹配的网络地址。 实现采用最长前缀匹配搜索的技术主要有以下方法基于TCAM(三态内容寻址存储器)器件的方法,这种方法的特点是使用特殊的存储器件TCAM来实现最长前缀匹配,虽然能实现很好的查找性能,但由于TCAM器件成本很高,一般只适用于规模较小的查找表中。另外一种是基于二进制树数据结构的方法搜索方法,这种方法将输入的关键字与二进制树的逐位匹配,直到找到叶子结点为止。对于一个32位的IPv4地址,需要32次搜索才能找到与关键字匹配的表项的入口。第三种方法是采用路径压缩的二进制树,采用这种结构可以减少完成一次搜索所需的匹配次数。 采用基于路径压缩的二进制树的方法进行搜索的存储空间开销较小,搜索效率也较高,而且这种方法的扩展性也很好。在当前的网络处理中,通常采用采用这种结构。但采用这种方法实现最长匹配搜索时,由于搜索时无法确定当前结点的子树中是否有最优的结果,所以在搜索时必须保存搜索过程中访问到的节点,以便在叶子结点处找不到最优结果时回退到先前访问的结点,即回溯以获得正确的搜索结果,这会使存储搜索结构的存储开销增加,同时还会因回溯而降低搜索的效率。
技术实现思路
本专利技术的目的本专利技术的目的是克服现有方法在实现最长匹配搜索时,由于回溯而造成的存储开销增加,搜索效率降低的缺陷,从而提供一种可用于实现最长前缀匹配搜索的方法和实现装置,以提高搜索的效率。 为了实现上述目的,本专利技术提供了一种实现无回溯的最长前缀匹配搜索的装置,包括第一选择器10、第二选择器11、第三选择器12、第一加法器14、第二加法器15、第一或门16、第二或门17、第三或门18、多路选择器19、译码器20、掩码生成单元21和比较部件22;还包括输入信息寄存器组1、树结点寄存器组2、树结点读取部件4、叶索引表读取部件5、比较结果寄存器6、叶结点信息寄存器组7、搜索结果寄存器组8和控制信号生成部件9;其中,所述的输入信息寄存器组1与所述的多路选择器19、第一选择器10、第二加法器15连接;所述的树结点寄存器组2分别与所述的第一选择器10、第一加法器14、第二加法器15、树结点读取部件4和译码器20电连接;所述的第一选择器10还连接到第一加法器14上,所述的第一加法器14则与所述的多路选择器19连接;所述的树结点读取部件4与多路选择器19和外部的存储器3电连接,所述的存储器3还与所述的叶索引表读取部件5电连接,所述的叶索引表读取部件5与所述的第二加法器15、叶结点信息寄存器组7电连接;所述译码器20分别与所述的第一或门16、第二或门17、第三或门18和掩码生成单元21电连接,所述的第三或门18与所述的多路选择器19连接,所述的第一或门16与所述的比较结果寄存器6电连接,所述的掩码生成单元21还与叶结点信息寄存器组7、比较部件22相连,所述的比较部件22分别与所述的输入信息寄存器组1、比较结果寄存器6、第二选择器11和第三选择器12电连接,所述的叶结点信息寄存器组7分别与第二选择器11、第三选择器12电连接,所述的第二选择器11、第三选择器12分别连接到所述的搜索结果寄存器组8上。 上述技术方案中,所述的输入信息寄存器组1由叶索引表始址寄存器、搜索树根结点地址寄存器、输入关键字寄存器组成。 上述技术方案中,所述的树结点寄存器组2由类型寄存器、待测位寄存器、下一中间结点地址寄存器以及叶结点索引寄存器组成。 上述技术方案中,所述的叶结点信息寄存器组7由关键字寄存器、前缀长度寄存器、数据信息大小寄存器和数据信息指针寄存器组成。 上述技术方案中,所述的搜索结果寄存器组8由搜索信息大小寄存器和搜索信息指针寄存器组成。 一种实现无回溯的最长前缀匹配搜索的方法,包括以下步骤步骤100、将搜索需要的参数写入到输入信息寄存器组1中,发出启动信号,启动一个查找过程;步骤200、树结点读写部件4根据输入信息寄存器组1中的搜索树根结点地址寄存器和输入关键字寄存器中的信息读取外接的存储器3,将相应的树结点信息存入到树结点寄存器组2中,并置比较结果寄存器6为0,执行下一步;步骤300、判断树结点寄存器组2中的类型域的值,如果类型域的值为“00”,则置完成信号为1,并根据比较结果寄存器6的值产生搜索成功与失败信号,执行步骤900;若类型域的值为其他值,则执行下一步;步骤400、如果树结点寄存器组2中的类型域的值为“01”或者“11”,执行下一步;否则,树结点寄存器组2中的类型域为“10”,执行步骤900;步骤500、将树结点寄存器组2中的叶结点索引域中的值与输入信息寄存器组1中的叶索引表始址寄存器的值相加,相加后的结果送叶索引表读取部件5,叶索引表读写部件5根据相加的结果对存储器3进行读取,将相应的叶结点信息写入到叶结点信息寄存器组7中后,执行下一步;步骤600、将叶结点信息寄存器组7中的前缀长度域的值送到掩码生成单元21中,生成的掩码与输入信息寄存器组1的输入关键字寄存器所发出的输入关键字相与,结果送到比较部件,与叶子信息寄存器7中的关键字域中的值作比较;步骤700、判断比较的结果,若比较成功,结果送比较结果寄存器6,并将叶结点信息寄存器组7中的数据信息大小和数据信息指针域分别送到搜索结果寄存器组8的对应寄存器中;若比较失败,不进行任何操作;步骤800、对树结点寄存器组2中的类型域的值进行判断,若该值为“11”,执行步骤下一步;否则置完成信号为1,根据比较结果寄存器的值产生搜索成功与失败信号,转步骤1000;步骤900、根据树结点寄存器组2的下一待测位域取出输入信息寄存器组1中的输入关键字域对应位,若该位为1,则将树结点寄存器组2的下一中间结点地址域的值加1,得到下一个中间结点地址;否则将树结点寄存器组2的下一中间结点地址域的值作为下一中间结点地址,把该地址输入到树结点读写部件4;树结点读写部件4读取存储器3,将相应的树结点存入到树结点寄存器组2中,重新执行步骤300;步骤1本文档来自技高网
...

【技术保护点】
一种实现无回溯的最长前缀匹配搜索的装置,其特征在于,包括第一选择器(10)、第二选择器(11)、第三选择器(12)、第一加法器(14)、第二加法器(15)、第一或门(16)、第二或门(17)、第三或门(18)、多路选择器(19)、译码器(20)、掩码生成单元(21)和比较部件(22);还包括输入信息寄存器组(1)、树结点寄存器组(2)、树结点读取部件(4)、叶索引表读取部件(5)、比较结果寄存器(6)、叶结点信息寄存器组(7)、搜索结果寄存器组(8)和控制信号生成部件(9);其中,所述的输入信息寄存器组(1)与所述的多路选择器(19)、第一选择器(10)、第二加法器(15)连接;所述的树结点寄存器组(2)分别与所述的第一选择器(10)、第一加法器(14)、第二加法器(15)、树结点读取部件(4)和译码器 (20)电连接;所述的第一选择器(10)还连接到第一加法器(14)上,所述的第一加法器(14)则与所述的多路选择器(19)连接;所述的树结点读取部件(4)与多路选择器(19)和外部的存储器(3)电连接,所述的存储器(3)还与所述的叶索引表读取部件(5)电连接,所述的叶索引表读取部件(5)与所述的第二加法器(15)、叶结点信息寄存器组(7)电连接;所述译码器(20)分别与所述的第一或门(16)、第二或门(17)、第三或门(18)和掩码生成单元(21)电连接,所述的第三或门(18)与所述的多路选择器(19)连接,所述的第一或门(16)与所述的比较结果寄存器(6)电连接,所述的掩码生成单元(21)还与叶结点信息寄存器组(7)、比较部件(22)相连,所述的比较部件(22)分别与所述的输入信息寄存器组(1)、比较结果寄存器(6)、第二选择器(11)和第三选择器(12)电连接,所述的叶结点信息寄存器组(7)分别与第二选择器(11)、第三选择器(12)电连接,所述的第二选择器(11)、第三选择器(12)分别连接到所述的搜索结果寄存器组(8)上。...

【技术特征摘要】
1.一种实现无回溯的最长前缀匹配搜索的装置,其特征在于,包括第一选择器(10)、第二选择器(11)、第三选择器(12)、第一加法器(14)、第二加法器(15)、第一或门(16)、第二或门(17)、第三或门(18)、多路选择器(19)、译码器(20)、掩码生成单元(21)和比较部件(22);还包括输入信息寄存器组(1)、树结点寄存器组(2)、树结点读取部件(4)、叶索引表读取部件(5)、比较结果寄存器(6)、叶结点信息寄存器组(7)、搜索结果寄存器组(8)和控制信号生成部件(9);其中,所述的输入信息寄存器组(1)与所述的多路选择器(19)、第一选择器(10)、第二加法器(15)连接;所述的树结点寄存器组(2)分别与所述的第一选择器(10)、第一加法器(14)、第二加法器(15)、树结点读取部件(4)和译码器(20)电连接;所述的第一选择器(10)还连接到第一加法器(14)上,所述的第一加法器(14)则与所述的多路选择器(19)连接;所述的树结点读取部件(4)与多路选择器(19)和外部的存储器(3)电连接,所述的存储器(3)还与所述的叶索引表读取部件(5)电连接,所述的叶索引表读取部件(5)与所述的第二加法器(15)、叶结点信息寄存器组(7)电连接;所述译码器(20)分别与所述的第一或门(16)、第二或门(17)、第三或门(18)和掩码生成单元(21)电连接,所述的第三或门(18)与所述的多路选择器(19)连接,所述的第一或门(16)与所述的比较结果寄存器(6)电连接,所述的掩码生成单元(21)还与叶结点信息寄存器组(7)、比较部件(22)相连,所述的比较部件(22)分别与所述的输入信息寄存器组(1)、比较结果寄存器(6)、第二选择器(11)和第三选择器(12)电连接,所述的叶结点信息寄存器组(7)分别与第二选择器(11)、第三选择器(12)电连接,所述的第二选择器(11)、第三选择器(12)分别连接到所述的搜索结果寄存器组(8)上。2.根据权利要求1所述的实现无回溯的最长前缀匹配搜索的装置,其特征在于,所述的输入信息寄存器组(1)包括叶索引表始址寄存器、搜索树根结点地址寄存器和输入关键字寄存器。3.根据权利要求1所述的实现无回溯的最长前缀匹配搜索的装置,其特征在于,所述的树结点寄存器组(2)由类型寄存器、待测位寄存器、下一中间结点地址寄存器以及叶结点索引寄存器组成。4.根据权利要求1所述的实现无回溯的最长前缀匹配搜索的装置,其特征在于,所述的叶结点信息寄存器组(7)由关键字寄存器、前缀长度寄存器、数据信息大小寄存器和数据信息指针寄存器组成。5.根据权利要求1所述的实现无回溯的最长前缀匹配搜索的装置,其特征在于,所述的搜索结果寄存器组(8)由搜索信息大小寄存器和搜索信息指针寄存器组成。6.一种应用权利要求1、2、3、4或5所述的搜索装置进行无回溯的最长前缀匹配搜索的方法,包括以下步骤步骤100)、将搜索需要的参数写入到输入信息寄存器组(1)中,发出启动信号,启动一个查找过程;步骤200)、树结点读写部件(4)根据输入信息寄存器组(1...

【专利技术属性】
技术研发人员:张飞飞鄢贵海付斌章李华伟韩银和刘彤雷韶华
申请(专利权)人:中国科学院计算技术研究所
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1