CN100531140C - 一种实现无回溯的最长前缀匹配搜索的方法和装置 - Google Patents

一种实现无回溯的最长前缀匹配搜索的方法和装置 Download PDF

Info

Publication number
CN100531140C
CN100531140C CNB2006101654499A CN200610165449A CN100531140C CN 100531140 C CN100531140 C CN 100531140C CN B2006101654499 A CNB2006101654499 A CN B2006101654499A CN 200610165449 A CN200610165449 A CN 200610165449A CN 100531140 C CN100531140 C CN 100531140C
Authority
CN
China
Prior art keywords
node
register
leaf
search
tree
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
Application number
CNB2006101654499A
Other languages
English (en)
Other versions
CN1996953A (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.)
G Cloud Technology Co Ltd
Original Assignee
Institute of Computing Technology of CAS
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 Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CNB2006101654499A priority Critical patent/CN100531140C/zh
Publication of CN1996953A publication Critical patent/CN1996953A/zh
Application granted granted Critical
Publication of CN100531140C publication Critical patent/CN100531140C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

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

Description

一种实现无回溯的最长前缀匹配搜索的方法和装置
技术领域
本发明涉及网络通讯领域中的模式匹配,特别涉及一种实现无回溯的最长前缀匹配搜索的方法和装置。
背景技术
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包括叶索引表始址寄存器、搜索树根结点地址寄存器和输入关键字寄存器;
其中,所述的输入信息寄存器组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、比较部件22电连接,所述的第二选择器11、第三选择器12分别连接到所述的搜索结果寄存器组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;
步骤1000)、外部设备检测到完成信号,检查搜索输出结果,若为1,则查找成功,读取输出到搜索结果寄存器组(8)中的数据信息大小和数据信息指针,获得搜索结果;否则,搜索失败。
上述技术方案中,所述的树结点寄存器组2由类型寄存器、待测位寄存器、下一中间结点地址寄存器以及叶结点索引寄存器组成。
上述技术方案中,所述的叶结点信息寄存器组7由关键字寄存器、前缀长度寄存器、数据信息大小寄存器和数据信息指针寄存器组成。
上述技术方案中,所述的搜索结果寄存器组8由搜索信息大小寄存器和搜索信息指针寄存器组成。
上述技术方案中,采用路径压缩的二进制树来存储搜索结构和叶索引表来存放叶结点信息。
在所述的二进制树中,有包含两个树结点结构的中间结点,所述的两个树结点存放在连续的存储空间中;所述树结点结构由类型、待测位、下一中间结点地址和叶结点索引四个域组成。
所述的叶索引表是一个线性表,它的每个元素是一个叶结点结构;所述叶结点结构存放所述二进制树的叶结点信息,所述叶结点结构由关键字、前缀长度、数据信息指针和数据信息大小四个域组成。
本发明的优点在于:
1、本发明采用了一种新的无回溯的路径压缩的二进制树的结构及搜索方法,可提高搜索效率并降低存储空间消耗。
2、本发明采用的叶子索引的机制,可减少实现查找的存储空间开销。
附图说明
图1为本发明的实现无回溯的最长前缀匹配搜索装置的示意图;
图2为一种应用本发明的实现无回溯的最长前缀匹配搜索装置的网络处理器的结构图;
图3为在一个实施例中所采用的二叉树的示意图;
图4为本发明的实现无回溯的最长前缀匹配搜索方法的流程图。
图面说明
1输入信息寄存器组     2树结点寄存器组     3存储器
4树结点读取部件       5叶索引表读取部件   6比较结果寄存器
7叶结点信息寄存器组   8搜索结果寄存器组   9控制信号生成部件
10第一选择器          11第二选择器        12第三选择器
14第一加法器          15第二加法器        16第一或门
17第二或门            18第三或门          19多路选择器
20译码器              21掩码生成单元      22比较部件
31控制微处理器        32数据总线          33搜索装置
具体实施方式
下面结合附图和具体实施方式对本发明的实现无回溯的最长前缀匹配搜索的方法和装置作进一步说明。
在对本发明的实现无回溯的最长前缀匹配搜索的方法进行说明前,首先对本发明中所涉及到的数据结构进行说明。
在本发明中所采用的二进制搜索树中包含以下数据结构:中间结点(IN)、树结点(TN)、叶结点索引表(LIT)和叶结点(LN)。
中间结点(IN)是实现搜索树内部结点的结构,如表1所示,它包含了两个树结点结构,结点1(TN1)和结点2(TN2),它们存放在连续的存储空间中,分别用于表示该结点的左右两棵子树。
  树结点1   树结点2
表1
树结点(TN)是中间结点(IN)的基本组成部分。如表2所示,一个树结点包含了类型(Type)、待测位(TB)、下一中间结点地址(NIA)和叶结点索引(LI)几个域。其中,类型(Type)域表明了该树结点的类型。在本方法中,树结点分为四类:空树结点、连接叶结点的树结点、连接中间结点的树结点和连接叶及中间结点的树结点。类型域的长度为两位,表3给出了各个结点类型的定义和成立条件;待测位(TB)域表明关键字中待测试的位的位置;下一中间结点地址保存了连接在该树结点上的中间结点的地址;而叶结点索引则存储了连接在该树结点上的叶子结点在叶结点索引表中的索引值。
  类型   待测位   下一中间结点地址   叶结点索引
表2
Figure C20061016544900101
表3
叶结点是实现查找树的叶子结点的结构,如表4所示,它包含关键字(Key)、前缀长度(PL)、数据信息指针(DP)和数据信息大小(DS)四个域。其中,关键字和前缀长度域存储了该叶子中关键字,用于在查找时与输入的关键字比较;数据信息指针域和数据信息大小域分别保存了与该叶子结点对应的数据信息在存储器中的地址及其大小,这两个域将作为搜索结果返回,控制处理器可以根据它们从存储器中读出对应的数据信息。
关键字 前缀长度 数据信息指针 数据信息大小
表4
叶结点索引表(LIT)是一个线性表,它的每个元素是一个叶结点结构。如表5所示,该表是一个保存8个32位的IPv4路由表项的叶结点索引表的示例,其中,0至7号前缀分别与0至7号数据一一对应。例如,在编号为0的叶结点索引表项中,一个32位的IP地址,它的前缀长度为16位,因此,该IP地址中关键字为32位IP地址的前16位,即“1.1.x.x”中的“1.1”为关键字。
  编号   关键字(Key)   前缀长度(PL)   数据指针(DP)   数据大小(DS)
  0   1.1.x.x   16   数据0的地址   数据0的大小
  1   2.x.x.x   8   数据1的地址   数据1的大小
  2   3.0.0.x   24   数据2的地址   数据2的大小
  3   1.2.5.x   24   数据3的地址   数据3的大小
4 1.1.2.x 24 数据4的地址 数据4的大小
5 3.1.x.x 16 数据5的地址 数据5的大小
  6   1.0.x.x   16   数据6的地址   数据6的大小
  7   1.x.x.x   8   数据7的地址   数据7的大小
表5
如图4所示,为一个搜索二叉树的示意图。在该示意图中,树结点的类型(Type)域是用二进制表示的,待测位(TB)和叶子索引是用十进制表示的。以其中的根结点为例,根结点本身是一个树结点数据结构,由该结点的类型值10可以看出,根结点只与一个中间结点相连,待测位的值为6表示进行搜索时,需根据输入关键字的第6位决定下一步访问根节点的左子树还是右子树,若关键字的第6位为1在根节点的右子树中查找,否则在根节点的左子树中查找。没有叶结点与根结点连接,因此叶结点索引值为空。在与根结点连接的中间结点上有两个树结点,左侧的树结点的类型值为11,表示该结点与一个叶结点和一个中间结点连接。待测位的值14表示进行搜索时,需根据输入关键字的第14位决定下一步访问当前节点的左子树还是右子树,若关键字的第14位为1,在当前节点的右子树中查找,否则在当前节点的左子树中查找,叶结点索引值7表示与结点相连接的叶结点在叶结点索引表中的第7项,假设所述的叶结点索引表就是表5,则与树结点连接的叶结点为1.x.x.x/8。图中其他结点的含义相类似,不再一一说明。
无回溯的最长前缀匹配搜索在网络技术中有广泛的应用,在本实施例中,以网络处理器为例,对本发明的应用于网络处理器的实现无回溯的最长前缀匹配搜索装置进行说明。
如图2所示,一个网络处理器由控制微处理器31、数据总线32、搜索装置33和存储器3组成,其中控制微处理器31通过数据总线32与搜索装置33相连,控制微处理器31和搜索装置33都和存储器3相连。搜索装置33即为本发明的实现无回溯的最长前缀匹配搜索装置,它作为网络处理器中的查找加速电路存在。数据总线32在控制微处理器31和搜索装置33之间传递数据和读写控制信号,控制微处理器31通过该部件向搜索装置33的寄存器写入数据或者从搜索装置33中间查找结果后读出。存储器3存储了查找所需的各种数据结构,它可以被控制微处理器31和搜索装置33访问。
下面对本发明的实现无回溯的最长前缀匹配搜索装置进行详细说明。如图1所示,本发明的实现无回溯的最长前缀匹配搜索装置包括输入信息寄存器组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、第二选择器和第三选择器12电连接,所述的叶结点信息寄存器组7分别与第二选择器11、第三选择器12电连接,所述的第二选择器11、第三选择器12分别连接到搜索结果寄存器组8上。
输入信息寄存器组1由多个寄存器组成,包括叶索引表始址寄存器、搜索树根结点地址寄存器、输入关键字寄存器。输入信息寄存器组1从与本发明装置连接的控制微处理器31输入参数,该参数包括搜索树根结点地址、叶结点索引表起始地址、输入关键字和启动信号。其中,搜索树的根结点在存储器3中的地址存储在搜索树根结点地址寄存器中,叶结点索引表的起始地址存储在叶索引表始址寄存器,输入关键字存储在输入关键字寄存器。
树结点读取部件4从与本发明的装置相连接的存储器3中读取树结点的信息。
树结点寄存器组2保存了树结点读取部件4从存储器3中读入的树结点,搜索电路利用该寄存器组决定进行查找时的各项操作,该寄存器组包含了类型寄存器(Type)、待测位(TB)寄存器、下一中间结点地址寄存器(NIA)以及叶结点索引(LI)寄存器四个寄存器,它们与树结点的几个域一一对应,树结点四个域中的信息保存在对应的四个寄存器中。
叶索引表读取部件5根据输入的输入信息寄存器组1中的叶索引表始址寄存器和树结点寄存器组2的LI寄存器读取叶索引表,将存储器3中的叶结点信息写入到叶结点信息寄存器组7中。
比较结果寄存器6存放了搜索过程中叶子结点中的关键字与输入关键字的比较结果,同时还用于在搜索结束时产生搜索成功与失败信号(OK/KO)。
叶结点信息寄存器组7包含关键字寄存器(Key)、前缀长度(PL)寄存器、数据信息大小寄存器(DS)和数据信息指针寄存器(DP)四个寄存器,分别用于存放叶结点的四个域中的相应信息。
搜索结果寄存器组8包括搜索信息大小寄存器和搜索信息指针寄存器两个寄存器,分别存放作为搜索结果的信息的大小及其在存储器中的存储位置。
控制信号生成部件9用于生成各种内部的控制信号。
本发明装置的输出结果发送到控制微处理器31上,输出结果具体包括搜索成功信号(OK/KO)、搜索完成信号(Finish)、搜索结果(搜索信息指针(DP)和搜索信息大小(DS))等。
上述的输入信息寄存器组1中的输入关键字寄存器和叶子信息寄存器组7中的Key域寄存器可根据需要可设置为不同的值,一般可取128位至256位之间,为简化硬件电路,其余的全部内部寄存器应所处的网络处理器的字长一致,例如,在32位长的机器中,内部搜索装置的寄存器均为32位长。
利用本发明的实现无回溯的最长前缀匹配搜索装置可实现无回溯的最长前缀匹配搜索,其方法如下:
步骤100、控制微处理器31将搜索需要的各种输入参数写入到输入信息寄存器组中,发出启动信号,启动一个查找过程;
步骤20、树结点读写部件4根据输入信息寄存器组1中的搜索树根结点地址寄存器和输入关键字寄存器中的信息读取存储器3,将相应的树结点存入到树结点寄存器组2中,置比较结果寄存器6为0,执行步骤300;
步骤300、判断树结点寄存器组2中的类型域(Type)的值,如果类型域的值为“00”,则置完成(Finish)信号为1,并根据比较结果寄存器6的值产生搜索成功与失败信号(OK/KO),执行步骤900;若类型域的值为其他值,则执行下一步;
步骤400、如果树结点寄存器组2中的类型域(Type)的值为“01”或者“11”,执行下一步;否则,树结点寄存器组2中的类型域(Type)为“10”,执行步骤900;
步骤500、将树结点寄存器组2中的叶结点索引域(LI)中的值与输入信息寄存器组1中的叶索引表始址寄存器的值相加,相加后的结果送叶索引表读取部件5;叶索引表读写部件5对存储器3进行读取,将相应的叶结点信息写入到叶结点信息寄存器组7中后,执行下一步;
步骤600、将叶结点信息寄存器组7中的前缀长度域(PL)的值送到掩码生成单元中,生成的掩码与输入信息寄存器组1的输入关键字寄存器所发出的输入关键字相与,结果送到比较部件,与叶子信息寄存器7中的关键字域(Key)中的值作比较;
步骤700、判断比较的结果,若比较成功,结果送比较结果寄存器6,并将叶结点信息寄存器组中的数据信息大小(DS)和数据信息指针域(DP)分别送到搜索结果寄存器组8的对应寄存器中;若比较失败,不进行任何操作。
步骤800、对树结点寄存器组2中的类型域(Type)的值进行判断,若该值为“11”,执行步骤900;否则置完成(Finish)信号为1,根据比较结果寄存器的值产生搜索成功与失败信号(OK/KO),转步骤1000;
步骤900、根据树结点寄存器组2的下一待测位域(TB)取出输入信息寄存器组1中的输入关键字域对应位,若该位为1,则将树结点寄存器组2的NIA域加1,得到下一个中间结点地址;否则树结点寄存器组2的NIA域作为下一中间结点地址。将该地址输入到树结点读写部件4;树结点读写部件4读取存储器3,将相应的树结点存入到树结点寄存器组2中,重新执行步骤300;
步骤1000、控制微处理器1检测到完成信号,检查搜索输出结果(OK/KO),若为1,则查找成功,读取输出的数据信息大小(DS)和数据信息指针(DP)寄存器,获得搜索结果;否则搜索失败。
下面以一个具体的实例,对无回溯的最长前缀匹配搜索过程进行说明。假设在图4的树中,搜索一个IPv4的地址1.1.0.5,所采用的叶结点索引表如表5所示,
具体实现如下:
步骤a、控制微处理器31将树和叶结点索引表的信息以及关键字(1.1.0.5)写入到搜索装置33的输入寄存器中,启动搜索过程;
步骤b、搜索装置33读入根结点,根结点的类型为“10”,关键字1.1.0.5的第6位(指二进制位)为0,因此读入根节点的左子结点;
步骤c、根结点的左子结点的类型值为“11”,TB域的值为14,叶子索引域为7,根据该索引值(7)和索引表的起始地址从表5中读入该叶子结点,其中的前缀为1.x.x.x(Key)/8(PL),根据前缀长度8得到掩码255.0.0.0。将掩码分别与关键字和前缀相与后作比较,二者相等,比较成功,因此将叶结点寄存器组的DP和DS域(即索引值为7的叶结点的地址和大小)送到结果寄存器组中。由于该节点的类型为“11“,TB域为14,而输入关键字1.1.0.5的第14位为0,因此还需要读入该树结点的左孩子结点。
步骤d、在步骤300中读入的结点的类型域为“10”,TB域为15,输入关键字(1.1.0.5)的第15位为1,故读入其右孩子结点。
步骤e、新读入的右孩子结点的类型域为“11”,TB域为23,其叶子索引域的值为0,根据该索引值(0)和索引表的起始地址从表5中读入该叶子结点,其中的前缀为1.1.x.x(Key)/16(PL),根据前缀长度16得到掩码255.255.0.0。将掩码分别与关键字和前缀相与后再比较,二者相等,即比较成功,所以将叶结点寄存器组的DP和DS域(即索引值为0的叶结点的地址和数据的大小)送到结果寄存器组中。由于该节点的类型为“11”,TB域为23,而输入关键字(1.1.0.5)的第23位为0,故读入该树结点的左孩子结点。
步骤f、本次读入的结点类型为“01”,其叶子索引域的值为4,根据该索引值(4)和索引表的起始地址从表5中读入索引值为4的叶子结点,其中的前缀为1.1.2.x(Key)/24(PL),根据前缀长度24得到掩码255.255.255.0。将掩码分别与关键字和前缀相与后再比较,二者不等,即比较失败,不进行任何操作。由于该结点的类型域为“01”,即搜索结束,此时比较结果寄存器的值为1,故置比较完成标志和比较成功标志为1。此时,搜索完成,搜索结果为搜索成功,得到的数据为索引值为0的叶结点中的数据。

Claims (7)

1、一种实现无回溯的最长前缀匹配搜索的装置,其特征在于,包括第一选择器(10)、第二选择器(11)、第三选择器(12)、第一加法器(14)、第二加法器(15)、第一或门(16)、第二或门(17)、第三或门(18)、多路选择器(19)、译码器(20)、掩码生成单元(21)和比较部件(22);还包括输入信息寄存器组(1)、树结点寄存器组(2)、树结点读取部件(4)、叶索引表读取部件(5)、比较结果寄存器(6)、叶结点信息寄存器组(7)、搜索结果寄存器组(8)和控制信号生成部件(9);所述的输入信息寄存器组(1)包括叶索引表始址寄存器、搜索树根结点地址寄存器和输入关键字寄存器;
其中,所述的输入信息寄存器组(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)、比较部件(22)电连接,所述的第二选择器(11)、第三选择器(12)分别连接到所述的搜索结果寄存器组(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;
步骤1000)、外部设备检测到完成信号,检查搜索输出结果,若为1,则查找成功,读取输出到搜索结果寄存器组(8)中的数据信息大小和数据信息指针,获得搜索结果;否则,搜索失败。
2、根据权利要求1所述的实现无回溯的最长前缀匹配搜索的装置,其特征在于,所述的树结点寄存器组(2)由类型寄存器、待测位寄存器、下一中间结点地址寄存器以及叶结点索引寄存器组成。
3、根据权利要求1所述的实现无回溯的最长前缀匹配搜索的装置,其特征在于,所述的叶结点信息寄存器组(7)由关键字寄存器、前缀长度寄存器、数据信息大小寄存器和数据信息指针寄存器组成。
4、根据权利要求1所述的实现无回溯的最长前缀匹配搜索的装置,其特征在于,所述的搜索结果寄存器组(8)由搜索信息大小寄存器和搜索信息指针寄存器组成。
5、根据权利要求1所述的实现无回溯的最长前缀匹配搜索的装置,其特征在于,采用路径压缩的二进制树来存储搜索结构和叶索引表来存放叶结点信息。
6、根据权利要求5所述的实现无回溯的最长前缀匹配搜索的装置,其特征在于,在所述的二进制树中,有包含两个树结点结构的中间结点,所述的两个树结点存放在连续的存储空间中;所述树结点结构由类型、待测位、下一中间结点地址和叶结点索引四个域组成。
7、根据权利要求5所述的实现无回溯的最长前缀匹配搜索的装置,其特征在于,所述的叶索引表是一个线性表,它的每个元素是一个叶结点结构;所述叶结点结构存放所述二进制树的叶结点信息,所述叶结点结构由关键字、前缀长度、数据信息指针和数据信息大小四个域组成。
CNB2006101654499A 2006-12-20 2006-12-20 一种实现无回溯的最长前缀匹配搜索的方法和装置 Expired - Fee Related CN100531140C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2006101654499A CN100531140C (zh) 2006-12-20 2006-12-20 一种实现无回溯的最长前缀匹配搜索的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2006101654499A CN100531140C (zh) 2006-12-20 2006-12-20 一种实现无回溯的最长前缀匹配搜索的方法和装置

Publications (2)

Publication Number Publication Date
CN1996953A CN1996953A (zh) 2007-07-11
CN100531140C true CN100531140C (zh) 2009-08-19

Family

ID=38251893

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006101654499A Expired - Fee Related CN100531140C (zh) 2006-12-20 2006-12-20 一种实现无回溯的最长前缀匹配搜索的方法和装置

Country Status (1)

Country Link
CN (1) CN100531140C (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101577662B (zh) * 2008-05-05 2012-04-04 华为技术有限公司 一种基于树形数据结构的最长前缀匹配方法和装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001043346A2 (en) * 1999-12-10 2001-06-14 Mosaid Technologies Incorporated Method and apparatus for longest match address lookup
CN1477559A (zh) * 2002-08-23 2004-02-25 华为技术有限公司 一种实现长字符串前缀匹配的方法
CN1728676A (zh) * 2004-07-28 2006-02-01 国家数字交换系统工程技术研究中心 路由查找装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001043346A2 (en) * 1999-12-10 2001-06-14 Mosaid Technologies Incorporated Method and apparatus for longest match address lookup
CN1477559A (zh) * 2002-08-23 2004-02-25 华为技术有限公司 一种实现长字符串前缀匹配的方法
CN1728676A (zh) * 2004-07-28 2006-02-01 国家数字交换系统工程技术研究中心 路由查找装置

Also Published As

Publication number Publication date
CN1996953A (zh) 2007-07-11

Similar Documents

Publication Publication Date Title
JP4727594B2 (ja) コンテンツ・ベースの情報検索アーキテクチャー
JP4614946B2 (ja) 限定サイズを有する限定数のサブデータベースに分割された転送データベースを効率的にサーチするシステムと方法
US7630373B2 (en) Packet transfer apparatus
US6985483B2 (en) Methods and systems for fast packet forwarding
EP1551141B1 (en) Apparatus and method using hashing for efficiently implementing an IP lookup solution in hardware
EP2159708B1 (en) Method for selecting hash function, method for storing and searching routing table and devices thereof
US20050243827A1 (en) Lookup engine
US20040249803A1 (en) Architecture for network search engines with fixed latency, high capacity, and high throughput
CN101577662A (zh) 一种基于树形数据结构的最长前缀匹配方法和装置
KR20020059238A (ko) 다중탐색 트리의 노드 생성 방법, 및 그에 따라 생성된다중탐색 트리 구조의 자료를 탐색하는 방법
JP2004229163A (ja) 固定長データ検索装置、及び固定長データ検索方法、及びコンピュータプログラム、並びにコンピュータ読み取り可能な記録媒体
US7035844B2 (en) FFS search and edit pipeline separation
US6925503B2 (en) Method and system for performing a longest prefix match search
CN112187636B (zh) Ecmp路由的存储方法及装置
CN100531140C (zh) 一种实现无回溯的最长前缀匹配搜索的方法和装置
CN101783761A (zh) 一种存储及查找路由表的方法及装置
Le et al. Memory-efficient ipv4/v6 lookup on fpgas using distance-bounded path compression
KR100428247B1 (ko) 아이피 주소룩업에서 고속 엘피엠 탐색을 위한 파이프라인씨에이엠의 구성 방법
CN113343034A (zh) Ip查找方法、系统及存储介质
Kasnavi et al. A cache-based internet protocol address lookup architecture
US11250003B2 (en) Search circuit
JP3702950B2 (ja) 連想記憶メモリ装置
Proudfoot et al. Flexible software-hardware network intrusion detection system
Erdem et al. MIPS extension for a TCAM based parallel architecture for fast IP lookup
Wang et al. Efficient IP address lookup with a counting Bloom filter in Trie-based algorithms

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
ASS Succession or assignment of patent right

Owner name: G-CLOUD TECHNOLOGY CO., LTD.

Free format text: FORMER OWNER: INSTITUTE OF COMPUTING TECHNOLOGY, CHINESE ACADEMY OF SCIENCES

Effective date: 20140429

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 100080 HAIDIAN, BEIJING TO: 523808 DONGGUAN, GUANGDONG PROVINCE

TR01 Transfer of patent right

Effective date of registration: 20140429

Address after: 523808 Guangdong province Dongguan City Songshan Lake Science and Technology Industrial Park Building No. 14 Keyuan pine

Patentee after: G-CLOUD TECHNOLOGY Co.,Ltd.

Address before: 100080 Haidian District, Zhongguancun Academy of Sciences, South Road, No. 6, No.

Patentee before: Institute of Computing Technology, Chinese Academy of Sciences

CP02 Change in the address of a patent holder
CP02 Change in the address of a patent holder

Address after: 523808 19th Floor, Cloud Computing Center, Chinese Academy of Sciences, No. 1 Kehui Road, Songshan Lake Hi-tech Industrial Development Zone, Dongguan City, Guangdong Province

Patentee after: G-CLOUD TECHNOLOGY Co.,Ltd.

Address before: 523808 No. 14 Building, Songke Garden, Songshan Lake Science and Technology Industrial Park, Dongguan City, Guangdong Province

Patentee before: G-CLOUD TECHNOLOGY Co.,Ltd.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090819

CF01 Termination of patent right due to non-payment of annual fee