CN102035727A - 一种路由的处理方法和设备 - Google Patents

一种路由的处理方法和设备 Download PDF

Info

Publication number
CN102035727A
CN102035727A CN2010105472369A CN201010547236A CN102035727A CN 102035727 A CN102035727 A CN 102035727A CN 2010105472369 A CN2010105472369 A CN 2010105472369A CN 201010547236 A CN201010547236 A CN 201010547236A CN 102035727 A CN102035727 A CN 102035727A
Authority
CN
China
Prior art keywords
mask
route table
route
routing table
auxiliary
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
CN2010105472369A
Other languages
English (en)
Other versions
CN102035727B (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.)
New H3C Technologies Co Ltd
Original Assignee
Hangzhou H3C Technologies Co Ltd
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 Hangzhou H3C Technologies Co Ltd filed Critical Hangzhou H3C Technologies Co Ltd
Priority to CN2010105472369A priority Critical patent/CN102035727B/zh
Publication of CN102035727A publication Critical patent/CN102035727A/zh
Application granted granted Critical
Publication of CN102035727B publication Critical patent/CN102035727B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种路由的处理方法和设备,该方法包括:当接收到报文后,设备根据报文的IP地址查找辅助路由表,并根据辅助路由表的查找结果确定所要查找的路由表;所述设备确定所述路由表中与所述IP地址匹配的路由表项,并根据所述路由表项中记录的出接口将所述报文发送至下一跳。本发明中,通过使用逻辑器件内部缓存加外挂DDR SDRAM的方式来进行路由表项的存储,DDR SDRAM容易实现,且利于表项规模的扩展以及接口带宽的提升,而且逻辑器件实现表项的增加和删除,节省CPU资源。

Description

一种路由的处理方法和设备
技术领域
本发明涉及通信技术领域,特别是涉及一种路由的处理方法和设备。
背景技术
报文在网络的转发过程中,需要使用报文的IP(Internet Protocol,网络互连协议)地址来查找路由转发表项,以得到报文的出接口信息,从而根据该出接口信息来进行报文的转发。其中,路由转发表项的查找及其实现是网络报文转发的重要部分,而路由查找的原则是最长匹配原则,以下举例说明路由查找中最长匹配原则的实现过程。例如,现有四个已知路由:1.0.0.0/8、1.1.0.0/16、1.1.1.0/24和1.1.1.1/32;如果使用1.1.1.0/32查找路由转发表项时,没有与之完全匹配的路由表项,则使用1.1.1.0/24查找路由转发表项,如果有与之完全匹配的路由表项,则根据最长匹配原则会匹配到1.1.1.0/24这条路由;如果用1.1.1.1/32查找路由转发表项时,有与之完全匹配的路由表项,则根据最长匹配原则会匹配到1.1.1.1/32这条路由。
现有技术中,可以利用TCAM(Ternary Content Addressable Memory,三态内容寻址存储器)的分块优先级搬移算法来实现路由表项的存储和查找。其中,该算法的原则是:将所有表项划分为若干个优先级,同一优先级的表项不关心相互之间的顺序,不同优先级的表项则按照优先级保证其在TCAM的顺序。
具体的,在目前的实现中,同一优先级的表项需要放置在一起,以保证其区块的连续性;在插入表项时,需要根据优先级来确定插入的位置,如果没有空闲则需要搬动旁边优先级的表项以空出位置;而在删除表项时,需要移动尾部表项来填充删除的空位,以保持优先级区块的连续性。其中,/32为最高优先级,/24次之,/16再次,/8为最低优先级,在TCAM中,由于TCAM查找返回的结果为最低地址优先命中,则可以将/32的表项放置在TCAM的低位地址中。如果依次查找出现/8、/16、/24、/32四种情况均命中,由于/32放在最低地址,则返回的结果为/32位的地址。
如图1所示的现有技术中添加表项的示意图,在插入表项的过程中,如果插入优先级为28的表项,则首先会查找对应的优先级的位置,即27和29之间。从图1可以看出没有空闲空间,则向周围查找可查找的空闲空间,并发现27下面有空闲位置,因此,可以将27最上面的表项向下搬移,空出一条表项的空闲,最后将表项(优先级为28的表项)插入。
在删除表项的过程中,通过判断表项是否是优先级的最后一条表项,是否是边界表项,如果不是,则删除表项之后,将区块的最后一条表项移动填充删除的空闲表项。
在实现本发明的过程中,发明人发现现有技术中至少存在以下问题:
在涉及到表项的增加和删除操作时,表项搬迁工作量较大,且占用的CPU(Central Processing Unit,中央处理单元)负荷较重,而且TCAM表项的规格较小,在表项规模上扩展性不强。
发明内容
本发明提供一种路由的处理方法和设备,以利用逻辑器件实现路由表项的增加和删除,并节省系统资源。
为了达到上述目的,本发明提出了一种路由的处理方法,应用于包括至少2个路由表的设备中,各路由表对应有各自的辅助路由表,其中,辅助路由表用于表示对应路由表中各掩码情况下的路由表项是否存在,该方法包括以下步骤:
当接收到报文后,所述设备根据所述报文的IP地址查找辅助路由表,并根据所述辅助路由表的查找结果确定所要查找的路由表;
所述设备确定所述路由表中与所述IP地址匹配的路由表项,并根据所述路由表项中记录的出接口将所述报文发送至下一跳。
各路由表和对应的辅助路由表分别对应有各自的掩码组,每个路由表用于存储对应掩码组中各种掩码情况的路由表项,每个辅助路由表中的各比特用于标识对应路由表中各种掩码情况下的各路由表项是否存在;
其中,每个掩码组中的掩码位数连续,且所有掩码组包括了从1到最大位数的掩码。
所述设备根据所述报文的IP地址查找辅助路由表之前,还包括学习路由的过程,所述学习路由的过程包括:
所述设备根据待学习路由的掩码位数确定对应有该掩码位数的路由表和辅助路由表;
所述设备在确定的路由表中相应的路由表项中记录所述待学习路由的IP地址和出接口,并将确定的辅助路由表中所述待学习路由对应的比特置位,使其表示对应路由表项存在。
所述设备根据所述报文的IP地址查找辅助路由表,并根据所述辅助路由表的查找结果确定所要查找的路由表,具体包括:
所述设备从掩码位数最大的第一掩码组所对应的辅助路由表查起,如果根据所述辅助路由表确定出对应路由表中存在匹配的路由表项,则确定该路由表为要查找的路由表;
如果根据所述辅助路由表确定出对应路由表中不存在匹配的路由表项,则查找掩码位数次之的第二掩码组所对应的辅助路由表,以此类推,直到确定出存在匹配路由表项的路由表;
其中,所述第一掩码组的最小掩码位数大于所述第二掩码组的最大掩码位数,且二者连续。
在查找辅助路由表的过程中,所述设备确定所述辅助路由表对应掩码组的最小掩码位数,并根据所述IP地址的前(最小掩码位数-1)位确定hash地址;
所述设备根据所述hash地址以及对应该掩码组的IP地址查找所述辅助路由表。
根据所述辅助路由表确定出对应路由表中存在匹配的路由表项,具体为:所述路由表中存在某掩码位数匹配的路由表项;
所述设备确定所述路由表中与所述IP地址匹配的路由表项,具体包括:
所述设备根据该掩码位数确定所述路由表中与所述IP地址匹配的路由表项。
根据所述辅助路由表确定出对应路由表中存在匹配的路由表项,具体为:所述路由表中存在多个掩码位数匹配的路由表项;
所述设备确定所述路由表中与所述IP地址匹配的路由表项,具体包括:
所述设备根据多个掩码位数中的最大掩码位数确定所述路由表中与所述IP地址匹配的路由表项。
各路由表和各辅助路由表的存储方式包括:
通过随机存取存储器RAM存储,
通过双倍速率同步动态随机存储器DDR SDRAM存储,和/或
通过四倍数据倍率静态随机存取存储器QDR SRAM存储。
一种路由的处理设备,应用于包括至少2个路由表的设备中,各路由表对应有各自的辅助路由表,其中,辅助路由表用于表示对应路由表中各掩码情况下的路由表项是否存在,该设备包括:
存储模块,用于存储各路由表以及各辅助路由表;
处理模块,用于当接收到报文后,根据所述报文的IP地址查找辅助路由表;并根据所述辅助路由表的查找结果确定所要查找的路由表;
确定模块,用于确定所述路由表中与所述IP地址匹配的路由表项;
发送模块,用于根据所述路由表项中记录的出接口将所述报文发送至下一跳。
各路由表和对应的辅助路由表分别对应有各自的掩码组,每个路由表用于存储对应掩码组中各种掩码情况的路由表项,每个辅助路由表中的各比特用于标识对应路由表中各种掩码情况下的各路由表项是否存在;
其中,每个掩码组中的掩码位数连续,且所有掩码组包括了从1到最大位数的掩码。
还包括:
学习模块,用于根据待学习路由的掩码位数确定对应有该掩码位数的路由表和辅助路由表;在确定的路由表中相应的路由表项中记录所述待学习路由的IP地址和出接口,并将确定的辅助路由表中所述待学习路由对应的比特置位,使其表示对应路由表项存在。
所述处理模块,具体用于从掩码位数最大的第一掩码组所对应的辅助路由表查起,如果根据所述辅助路由表确定出对应路由表中存在匹配的路由表项,则确定该路由表为要查找的路由表;
如果根据所述辅助路由表确定出对应路由表中不存在匹配的路由表项,则查找掩码位数次之的第二掩码组所对应的辅助路由表,以此类推,直到确定出存在匹配路由表项的路由表;
其中,所述第一掩码组的最小掩码位数大于所述第二掩码组的最大掩码位数,且二者连续。
所述存储模块具体为:
随机存取存储器RAM,双倍速率同步动态随机存储器DDR SDRAM,和/或,四倍数据倍率静态随机存取存储器QDR SRAM。
与现有技术相比,本发明至少具有以下优点:
通过使用逻辑器件内部缓存加外挂DDR SDRAM(Double Data Rate SDRAM,双倍速率同步动态随机存储器)的方式来进行路由表项的存储,DDRSDRAM容易实现,且利于表项规模的扩展以及接口带宽的提升,而且逻辑器件实现表项的增加和删除,节省CPU资源。
附图说明
图1是现有技术中添加表项的流程示意图;
图2是本发明提供的一种路由的处理方法流程图;
图3是本发明提供的一种路由的处理设备结构图。
具体实施方式
下面结合附图对本发明进行详细描述。
本发明中,考虑到一个32位的IP地址,可出现/8、/16、/24、/32等命中情况,则可以将整个最长匹配功能划分为两部分来实现,一部分为四种情况的精确查找,另一部分为最长匹配值选择。其中:
(1)精确查找功能部分
首先将所有路由表项分为/8、/16、/24、/32等四种情况进行存储,然后,当接收到报文后,提取该报文的32位目的IP地址,并将该32位目的IP地址分成/8、/16、/24、/32等四种情况进行路由表项查找,从而可得到四种情况是否命中及其命中值。
(2)最长匹配值选择功能部分
根据/8、/16、/24、/32等四种情况下的命中情况进行选择,如果/32位的地址命中,则选择/32位命中的值;否则,如果/24位的地址命中,则选择/24位命中的值;否则,如果/16位的地址命中,则选择/16位命中的值;否则,如果/8位的地址命中,则选择/8位命中的值。可以看出,本发明中优先级为绝对优先,即一旦最长的地址命中,则直接取该命中信息,而其它较短地址是否命中将不再考虑。
进一步的,当表项分拆功能实现完成后,以下说明存储相关表项的过程。在现有技术中可采用TCAM来实现表项的存储,而本发明中,由于将表项分拆为/8、/16、/24、/32等四种情况下的表项,如果仍利用TCAM,则会将原本只需要一次查找得到的路由变为需要四次查找才能得到路由,查找效率降低,而且利用TCAM的优势在于软件能够利用其掩码加算法来实现最长匹配,而采用本发明提供的拆分方法后,可以利用精确匹配来实现最长匹配功能,且不需要掩码功能。因此,本发明中,可以采用成本低廉、容量大的DDRSDRAM来实现表项的存储。
具体的,本发明中可采用hash算法来实现表项的存储及查找,在存储时利用IP地址进行hash运算得到一个地址,然后将该IP地址、下一跳端口号(即出接口信息)等信息存储在DDR SDRAM对应的地址中。在查找时,则可利用IP地址的/8、/16、/24、/32等四种情况,分别进行hash运算得到四个hash地址,然后查找这四个hash地址中的内容,以及进行比较得到各自的命中情况,最后根据最长匹配原则得到该IP地址最终的出接口信息。
本发明中,考虑到/8、/16两种情况占用的表项空间不大,/8为256个(即28,对于/8的情况,最多出现28种情况)表项;/16为64K(即216,对于/16的情况,最多出现216种情况)个表项。则实际应用中可以将/8、/16这两个表项中的内容存储到逻辑器件中,使得/8、/16两种表项的查找可以在逻辑器件内部实现;而考虑到/24、/32两种情况占用的表项空间较大,则可以将/24、/32这两个表项中的内容存储到外挂DDR SDRAM中实现,使得/24、/32两种表项的查找可以在DDR SDRAM中实现,以减少查找外挂DDR SDRAM的次数,从而实现了表项的快速查找。
基于上述存储的表项,当表项分拆功能实现完成后,以下说明表项增加和删除的过程。在表项增加时,可利用计算得到的hash值作为地址,将IP地址及出接口信息作为内容写到DDR SDRAM中;在表项删除时,可将hash地址中的内容有效位置为无效。综上可以看出,本发明中,在表项的增加和删除过程中,不用CPU干预,纯逻辑器件即可以实现。
需要注意的是,上述实现方式是针对自然路由(/8、/16、/24、/32)的情况的,而在实际应用中,还有大量的非自然路由,以下对非自然路由(如/1.../7、/9.../15、/17.../23、/25...31)的情况进行详细说明。
本发明中,针对所有的路由,可以设置4张路由表(实际应用中该数值还可以进行调整),并使用这4张路由表存储所有学习到的路由。其中,第一张路由表(以第一路由表为例进行说明,其他路由表情况类似)用于存储掩码为/25、/26、/27、/28、/29、/30、/31、/32这8种情况的路由、第二路由表用于存储掩码为/17、/18、/19、/20、/21、/22、/23、/24这8种情况的路由、第三路由表用于存储掩码为/9、/10、/11、/12、/13、/14、/15、/16这8种情况的路由、第四路由表用于存储掩码为/1、/2、/3、/4、/5、/6、/7、/8这8种情况的路由。
基于上述4张路由表,当学习到掩码为28的路由时,则需要将该路由存储到第一路由表中,该路由对应的地址可以通过前28进行hash获得,即可在该hash地址对应的内容中记录该路由的IP地址和出接口;当学习到掩码为4的路由时,则需要将该路由存储到第四路由表中,依次类推。
本发明中,为了在各路由表中准确的确定某种掩码情况下的路由是否存在,则可以在逻辑器件中设置辅助路由表,辅助路由表与路由表一一对应,即第一路由表与第一辅助路由表对应,该第一辅助路由表用于确定掩码为/25、/26、/27、/28、/29、/30、/31、/32这8种情况的路由在第一路由表中是否存在,以此类推,第二辅助路由表用于确定掩码为/17、/18、/19、/20、/21、/22、/23、/24的路由在第二路由表中是否存在,第三辅助路由表用于确定掩码为/9、/10、/11、/12、/13、/14、/15、/16的路由在第三路由表中是否存在,第四辅助路由表用于确定掩码为/1、/2、/3、/4、/5、/6、/7、/8的路由在第四路由表中是否存在。
具体的,辅助路由表中的每个地址对应的每个比特的数据表示存不存在对应路由表项,以第一辅助路由表为例进行说明,/25占用2bit信息、/26占用4bit信息、/27占用8bit信息、/28占用16bit信息、/29占用32bit信息、/30占用64bit信息、/31占用128bit信息、/32占用256bit信息,共占用510个bit,因此可将第一辅助路由表的位宽设置为510bit。而在实际应用中,考虑到硬件的实现是以二进制来实现的,则可以将第一辅助路由表的位宽设置为512bit(有两个bit为保留位),即使用512位宽的第一辅助路由表存储/25、/26、/27、/28、/29、/30、/31、/32这8种掩码情况的路由在第一路由表中是否存在。如表1所示,为第一辅助路由表对应的512位宽的信息。
表1
  /25:0   /25:1   /26:0   /26:1   /26:2   /26:3   /27:0 …… /30:63   保留   保留
  /32:0   /32:1   /32:2   /32:3   /32:4   /32:5   /32:6 …… /32:125   /32:126   /32:127
  /32:128   /32:129   /32:130   /32:131   /32:132   /32:133   /32:134 …… /32:253   /32:254   /32:255
在第一辅助路由表中,每个地址对应的每个比特的数据表示存不存在对应的路由表(本发明中以1表示存在,0表示不存在为例进行说明),则/25:0表示掩码为25位,第25位为0的表项,该位为1表示这个表在第一路由表中存在对应的表项,该位为0表示这个表在第一路由表中不存在对应的表项;/25:1表示掩码为25位,第25位为1的表项,该位为1表示这个表在第一路由表中存在对应的表项;以此类推,/32:254表示掩码为32位,第25位到32位为254的表项,该位为1表示这个表在第一路由表中存在对应的表项;/32:255表示掩码为32位,第25位到32位为255的表项,该位为1表示这个表在第一路由表中存在对应的表项。
综上所述,在查找第一辅助路由表时,能够在第一辅助路由表中一次性找到这512个项,即一次查找就可以知道该地址段内(即掩码为/25、/26、/27、/28、/29、/30、/31、/32的地址段)的所有512个项存不存在对应的路由;如果存在对应的路由,则根据存在对应路由的最长掩码到第一路由表中查找对应的路由,如果不存在对应的路由,则以类似的查找方式到第二辅助路由表中查找512个项,依次类推。
进一步的,根据最长匹配原则,当查看512个项中存不存在对应的路由时,需要首先查看/32对应的路由是否存在,即如果/32对应的位置为1,则说明能够找到全匹配项目,否则需要依次查看/31、/30、/29、/28、/27、/26、/25对应的位置是否有效,从而获得一个最长的匹配项。例如,IP地址的最后8位为255,查找第一辅助路由表时查找结果为/32:255的位置为1、/31:127的位置为1时,则可以发现IP地址的最后8位有匹配的项/32:255和/31:127,且IP地址的最后8位对应的最长匹配项为/32:255,此时,可以到第一路由表中查找掩码为/32的路由,且可以查找到对应的路由。当查找第一辅助路由表时查找结果为/31:127的位置为1时,则可以发现IP地址最后8位中有7位匹配的项/31:127,此时,可以到第一路由表中查找掩码为/31的路由,且可以查找到对应的路由。
需要注意的是,上述第一辅助路由表中512bit的信息是针对/25、/26、/27、/28、/29、/30、/31、/32的掩码情况的,而在上述情况下,前24位已经为确定的数值,即前24位有224种情况,如果将第一辅助路由表做成深度为224、位宽为512bit的表,则会消耗大量的资源。为了解决该问题,减少资源的使用,可以对前24位进行hash,且hash地址为18位宽度(该宽度可以根据实际需要进行调整,例如,hash地址为16位宽度),因此,可以将第一辅助路由表做成深度为218、位宽为512bit的表。
类似的,第二辅助路由表中512bit的信息是针对/17、/18、/19、/20、/21、/22、/23、/24的掩码情况的,即前16位已经为确定的数值,即前16位有216种情况,如果将第二辅助路由表做成深度为216、位宽为512bit的表,则会消耗大量的资源。为了减少资源的使用,可以对前16位进行hash,且hash地址为12位宽度(该宽度可以根据实际需要进行调整),因此,可以将第二辅助路由表做成深度为212、位宽为512bit的表。
第三辅助路由表中512bit的信息是针对/9、/10、/11、/12、/13、/14、/15、/16的掩码情况的,即前8位已经为确定的数值,且前8位有28种情况,在将第三辅助路由表做成深度为28、位宽为512bit的表时,不会消耗大量的资源,因此可不进行hash,将第三辅助路由表做成深度为28、位宽为512bit的表。
第四辅助路由表中512bit的信息是针对/1、/2、/3、/4、/5、/6、/7、/8的掩码情况的,可将第四辅助路由表做成深度为1、位宽为512bit的表。
综上所述,对于四张辅助路由表来说,第四辅助路由表的大小为:深度1*位宽512=512bit;第三辅助路由表的大小为:深度256(28)*位宽512=128Kbit;第二辅助路由表的大小为:深度4K*(212)*位宽512=2Mbit;第一辅助路由表的大小为:深度256K*(218)*位宽512=128Mbit。
需要说明的是,对于第一辅助路由表来说,由于将224种情况hash为218种情况,对于第二辅助路由表来说,由于将216种情况hash为212种情况,因此,会出现hash地址冲突的问题。而本发明中,考虑到hash地址冲突的问题,可以对上述技术方案进行进一步的改进。
在该改进方案中,可以利用IP地址的特点分四段进行hash运算(而不是将IP地址直接进行hash运算),即将高8位(前8位)hash出一个高位地址,第二个8位(第9位至16位)hash出第二段地址,第三个8位(第17位至24位)hash出第三段地址,最后一个8位(第25位至32位)hash出最后一个地址段。
由于在实际学习路由的过程中,均是针对特定网段内的学习过程,因此将IP地址分为四段进行hash运算后,可以减少hash地址冲突的问题。例如,对于某设备来说,网络上的所有路由均为20.0.0.0/8网段内的,此时,可将最高位hash出来的高位地址段为零,并只需要考虑后24位对应的hash地址即可。因此,对于第一辅助路由表来说,由于前8位为定值,则实际应用时只有216种情况,在将第一辅助路由表做成深度为218、位宽为512bit的表时,不会出现hash地址冲突,hash地址冲突为零,从而解决hash地址冲突的问题。综上所述,通过实际网络情况来调整四段hash地址空间的大小,可以减少hash冲突问题,并提高存储空间的利用率。
同样的,对于第一路由表、第二路由表、第三路由表和第四路由表来说,第一路由表是针对/25、/26、/27、/28、/29、/30、/31、/32这8种情况的,前24位已经为确定的数值,即前24位有224种情况,而后8位共有(21+22...+28)种情况,因此,可将第一路由表做成深度为224(21+22...+28)*位宽32,显然会消耗大量的资源,为了减少资源的使用,可以通过hash的方式(其中,/32对应的表项使用前32位地址hash、/31对应的表项使用前31位地址hash,以此类推)将第一路由表做成深度为64M*位宽32=2Gbit的表。可通过hash的方式将第二路由表做成深度为256K(显著小于216(21+22...+28))*位宽32=8Mbit的表;可通过hash的方式将第三路由表做成深度为4K(显著小于28(21+22...+28))*位宽32=128Kbit的表;可通过hash的方式将第四路由表做成深度为64(显著小于21+22...+28)*位宽32=2Kbit的表。
实际应用中,该位宽还可以为16,需要注意的是,16的位宽时,有3bit的掩码信息,8bit的IP信息,5bit的保留位;32的位宽时,有16bit出接口信息,3bit的掩码信息,8bit的IP信息,5bit的保留位。
需要注意的是,由于目前逻辑器件内部RAM(Random Access Memory,随机存取存储器)资源一般在4Mbit以上,因此,第二辅助路由表、第三辅助路由表、第四辅助路由表和第三路由表、第四路由表可以放在逻辑器件中实现,而第一辅助路由表和第一路由表、第二路由表占用空间较大,可以放置到外挂缓存中实现。
而考虑到缓存的特点,第四辅助路由表和第二路由表的深度浅位宽长,第一路由表的深度深位宽窄;则可以将第四辅助路由表放置在八片共1M*256位宽的QDR(Quad Data Rate,四倍数据倍率)SRAM(Static RAM,静态随机存取存储器)中;将第二路由表放在一片2M*16位宽的QDR SRAM中;将第一路由表放在二片共128M*16位宽的DDR SDRAM中。
需要注意的是,上述外挂缓存的例子为DDR SDRAM和QDR SRAM,而对于其他的外挂RAM(如FCRAM、RLDRAM等),本发明提供的上述方案同样适用,在此不再赘述。
为了更加清楚的阐述上述技术方案,针对/25、/26、/27、/28、/29、/30、/31、/32这8种情况,以下结合具体的例子进行详细说明。IP地址假定为xx.yy.zz.nn,前24位hash(本发明中以将前24位进行hash为例进行说明)出第一辅助路由表的高位地址宽度为18位,mm[17:0]=hash(xx.yy.zz),则在第一辅助路由表中,mm这个地址对应了512bit的数据。
在使用xx.yy.zz.nn查找路由表中的路由之前,可以先使用mm值查第一辅助路由表,并得到xx.yy.zz.nn的所有掩码的各种路由的匹配情况;然后使用hash(nn[7])、hash(nn[7:6])、hash(nn[7:5])、hash(nn[7:4])、hash(nn[7:3])、hash(nn[7:2])、hash(nn[7:1])、hash(nn[7:0])分别进行运算,分别对应得到/25、/26、/27、/28、/29、/30、/31、/32字段的掩码情况。如果当前的掩码为/28,则直接查看hash(nn[7])、hash(nn[7:6])、hash(nn[7:5])、hash(nn[7:4])各个地址对应512bit位置的表项是否存在,如果hash(nn[7:4])在512bit中对应的位置有效,则取其值,否则取hash(nn[7:5])、hash(nn[7:6])、hash(nn[7:7])在512bit中对应的值。
综上所述,通过上述方法,则逻辑器件通过进行分析比较可得到512比特数据,并得到其最长匹配情况,最后,如果结果为hash(nn[7:5])对应的值有效,则使用hash(xx.yy.zz)+hash(nn[7:5])的值查询第一路由表,得到是否命中(即是否查找到对应的路由)和出接口信息(即路由对应的出接口)。
需要说明的是,上述情况是针对四张路由表和四张辅助路由表的,实际应用中路由表和辅助路由表的个数还可以进行调整,基于上述的路由表和辅助路由表,本发明提出一种路由的处理方法,该方法应用于包括至少2个路由表的设备中,各路由表对应有各自的辅助路由表,且辅助路由表用于表示对应路由表中各掩码情况下的路由表项是否存在。如图2所示,该方法包括以下步骤:
步骤201,根据掩码情况将掩码划分为若干段掩码组。其中,该掩码情况为掩码位数,且每段掩码组对应一个路由表和一个辅助路由表。
需要注意的是,各路由表和对应的辅助路由表分别对应有各自的掩码组,每个路由表用于存储对应掩码组中各种掩码情况的路由表项,每个辅助路由表中的各比特用于标识对应路由表中各种掩码情况下的各路由表项是否存在;其中,每个掩码组中的掩码位数连续,且所有掩码组包括了从1到最大位数的掩码。
本发明中,在将掩码划分为若干段掩码组的过程中,需要使得每段掩码组内掩码位数连续,且所有掩码组包括了从1到最大位数的掩码。例如,当掩码为/1、/2.../31、/32时,可以将/1、/2.../31、/32划分为3段掩码组,第一段掩码组为/1-/12(该掩码组内位数连续)、第二段掩码组为/13-/22、第三段掩码组为/23-/32;也可以将/1、/2.../31、/32划分为5段掩码组等,只要保证每段掩码组内掩码位数连续即可。为了方便描述,本发明中以将/1、/2.../31、/32划分为4段掩码组,每段掩码组内包含8种掩码位数为例进行说明。
本发明中,当确定了掩码组之后,由于每段掩码组对应一个路由表和一个辅助路由表,则可以确定路由表和辅助路由表的情况。其中,第一掩码组对应第一路由表和第一辅助路由表、第二掩码组对应第二路由表和第二辅助路由表、第三掩码组对应第三路由表和第三辅助路由表、第四掩码组对应第四路由表和第四辅助路由表。
综上所述,第一路由表与第一辅助路由表对应,为针对掩码为/25、/26、/27、/28、/29、/30、/31、/32这8种情况的;第二路由表与第二辅助路由表对应,为针对掩码为/17、/18、/19、/20、/21、/22、/23、/24这8种情况的;第三路由表与第三辅助路由表对应,为针对掩码为/9、/10、/11、/12、/13、/14、/15、/16这8种情况的;第四路由表与第四辅助路由表对应,为针对掩码为/1、/2、/3、/4、/5、/6、/7、/8这8种情况的。
步骤202,当需要学习路由时,该设备执行学习路由的过程。在学习路由的过程中,该设备可根据待学习路由的掩码位数确定对应有该掩码位数的路由表和辅助路由表;并在确定的路由表中相应的路由表项中记录待学习路由的IP地址和出接口,以及将确定的辅助路由表中待学习路由对应的比特置位,使其表示对应路由表项存在。
具体的,对于每个需要学习的路由来说,均具有掩码位数信息,此时,设备可以根据该路由的掩码位数将该路由学习到对应的路由表和辅助路由表中。例如,当需要学习路由255.255.0.0/16时,路由的掩码位数为16,对应的掩码组为第三掩码组,因此,需要将路由255.255.0.0/16学习到第三路由表和第三辅助路由表中。
在将255.255.0.0/16学习到第三路由表时,该路由的位置为前16位(1111111111111111)hash对应的地址,第三路由表的32位宽中,有3bit的掩码信息(掩码为16),16bit出接口信息(即该路由255.255.0.0/16的下一跳出接口),8bit的IP信息(即255.255.0.0的信息),5bit的保留位。
在将255.255.0.0/16学习到第三辅助路由表时,该路由的位置为前8位(11111111)hash对应的地址,且第三辅助路由表的512位宽的信息中,/9:1的表项存在(即该位置为1),/10:4的表项存在,/11:8的表项存在,以此类推,/16:255的表项存在。
本发明中,对于每个需要学习的路由,均将采用上述学习方式进行学习,从而可以将所有待学习的路由学习到各个路由表中和辅助路由表中。
步骤203,当接收到报文后,设备根据报文的IP地址查找辅助路由表,并根据辅助路由表的查找结果确定所要查找的路由表。
具体的,该设备可从掩码位数最大的第一掩码组所对应的辅助路由表查起,如果根据辅助路由表确定出对应路由表中存在匹配的路由表项,则确定该路由表为要查找的路由表;如果根据辅助路由表确定出对应路由表中不存在匹配的路由表项,则查找掩码位数次之的第二掩码组所对应的辅助路由表,以此类推,直到确定出存在匹配路由表项的路由表;其中,第一掩码组的最小掩码位数大于第二掩码组的最大掩码位数,且二者连续。而在查找辅助路由表的过程中,该设备需要确定辅助路由表对应掩码组的最小掩码位数,并根据IP地址的前(最小掩码位数-1)位确定hash地址;根据hash地址以及对应该掩码组的IP地址查找辅助路由表。
实际应用中,在划分为若干段掩码组的过程中,可以将掩码位数为/n1至/32的掩码划分为第一掩码组、将掩码位数为/n2至/(n1-1)的掩码划分为第二掩码组、依次类推,将掩码位数为/1至/n的掩码划分为第N掩码组;其中,n1大于n2大于n。这种情况下,本步骤进一步包括:
设备根据报文的IP地址的前(n1-1位)确定第一地址(即hash地址),并根据该第一地址以及报文的IP地址的第n1至32位在第一辅助路由表中查找是否存在报文的IP地址;如果报文的IP地址在第一辅助路由表中有对应的记录,则根据报文的IP地址在第一路由表中查找报文的IP地址对应的出接口,结束流程;如果报文的IP地址在第一辅助路由表中没有对应的记录,设备根据报文的IP地址的前(n2-1位)确定第二地址,并根据第二地址以及报文的IP地址的第n2至(n1-1)位在第二辅助路由表中查找是否存在报文的IP地址的前(n1-1)位;如果报文的IP地址的前(n1-1)位在第二辅助路由表中有对应的记录,则根据报文的IP地址在第二路由表中查找报文的IP地址对应的出接口,结束流程;依次类推,当在第(N-1)辅助路由表中没有对应的记录时,设备根据报文的IP地址的前n位在第N辅助路由表中查找是否存在报文的IP地址的前n位;如果报文的IP地址的前n位在第N辅助路由表中有对应的记录,则根据报文的IP地址在第N路由表中查找报文的IP地址对应的出接口,结束流程;如果报文的IP地址的前n位在第N辅助路由表中没有对应的记录时,则设备根据缺省路由将报文发送至下一跳。
例如,以掩码位数为/25至/32的掩码为第一掩码组、掩码位数为/17至/24的掩码为第一掩码组、掩码位数为/9至/15的掩码为第三掩码组、掩码位数为/1至/8的掩码为第四掩码组的情况为例进行说明。
当接收到报文的IP地址为255.255.0.0时,对该IP地址的前24位(111111111111111100000000)进行hash得到第一地址,由于在第一辅助路由表中并没有学习过255.255.0.0/16的路由,则在第一辅助路由表中查看该第一地址对应的512位信息时,并没有255.255.0.0对应的记录。对该IP地址的前16位(1111111111111111)进行hash得到第二地址,由于在第二辅助路由表中并没有学习过255.255.0.0/16的路由,则在第二辅助路由表中查看该第二地址对应的512位信息时,并没有255.255.0.0对应的记录。根据该IP地址的前8位(11111111)得到第三地址(由于第三辅助路由表中直接对应了28种情况,对于前8位的任意组合,均可以获知唯一的地址,即第三地址的获得并不需要进行hash,可以直接为11111111对应的地址),由于在第三辅助路由表中学习过255.255.0.0/16的路由,则在第三辅助路由表中查看该第三地址对应的512位信息时,有255.255.0.0对应的记录,且第9位至16位均为1,获知掩码位数为16。
因此,需要根据报文的IP地址在第三路由表中查找报文的IP地址对应的出接口,而在查找出接口的过程中,需要对前16位(1111111111111111)进行hash(由于确定掩码位数为16,则需要对前16位hash),得到待查找路由对应的地址。由于第三辅助路由表中有255.255.0.0对应的记录,则第三路由表中也学习过对应的路由255.255.0.0/16,第三路由表中会存在255.255.0.0对应的记录,因此,可查找到255.255.0.0对应的出接口。
步骤204,设备确定路由表中与IP地址匹配的路由表项,并根据路由表项中记录的出接口将该报文发送至下一跳。
在根据辅助路由表确定出对应路由表中存在匹配的路由表项时,如果路由表中只存在某掩码位数匹配的路由表项,则设备根据该掩码位数确定路由表中与IP地址匹配的路由表项;如果路由表中存在多个掩码位数匹配的路由表项,则设备根据多个掩码位数中的最大掩码位数确定路由表中与IP地址匹配的路由表项。
需要注意的是,在一般情况下,系统会配置一条/0的路由或者配置有缺省路由,如果对于查找路由表返回失败的报文,则在系统配置有缺省路由的情况下,可以匹配缺省路由,否则匹配/0的路由。
本发明中,上述查找过程是从第一辅助路由表开始执行的,实际应用中还可以从第四辅助路由表开始执行,例如,在查找第四辅助路由表时,如果根据IP地址可以查找到/8的匹配记录,则查找第三辅助路由表;如果只可以查找到/1、/2.../7的匹配记录,则直接查找第一路由表,依次类推,本发明中不再详加赘述。
需要说明的是,上述处理流程是以IPV4的32位地址为例进行说明的,而对IPV6的128位地址同样可以适用,只是路由表的个数、辅助路由表的个数以及掩码组的分布情况会发生变化,本发明中不再详加赘述。
综上所述,本发明中,第一级表项为直接位宽存储,而在实际应用中,也可以将第一级映射表使用折叠方法来存储达到节省外挂缓存的位宽。在每条表项占用32位宽时,对查找效率,表项容量,以及扩展性方面进行比较可知:
(1)表项条数:
本发明中DDR SDRAM容量按照一片1G每片8位,16位需要2片这样的器件,因此总容量128M*16,能够存储总共64M条表项。
现有技术中TCAM容量为1M*72,能够存储1M条表项。
(2)查找效率:
本发明中DDR SDRAM有效接口带宽为1.6GHZ*2*16*60%,查找效率为960MPS(按照DDR SDRAM跑在1.6GHZ,接口位宽16位,带宽利用率按照60%的话来算);QDR SRAM接口带宽为400MHZ*2*256,查找效率为400MPS(按照QDR SRAM跑在400MHZ,而辅助路由表为查找效率低一点的QDR SRAM)。综合上面计算的DDR SDRAM和QDR SRAM的查找效率来看,逻辑器件最终的查找效率为400MPS。
现将技术中TCAM接口带宽为300MHZ*72,查找效率为300MPS。
(3)方案扩展性:
现有技术中TCAM目前为独家供货,产品更新升级速度慢且不可靠;
本发明中DDR SDRAM多家厂家供货产品更新速度快,供货可靠。
因此,本发明中,利用逻辑器件内部缓存加外挂DDR SDRAM来进行表项的存储,价格相当便宜。DDR SDRAM能够容易实现表项规模的扩展以及接口带宽的提升。逻辑器件实现表项的增加和删除,几乎不占用CPU。
基于与上述方法同样的发明构思,本发明还提出了一种路由的处理设备,应用于包括至少2个路由表的设备中,各路由表对应有各自的辅助路由表,其中,辅助路由表用于表示对应路由表中各掩码情况下的路由表项是否存在,如图3所示,该设备包括:
存储模块11,用于存储各路由表以及各辅助路由表;其中,所述存储模块11具体为:随机存取存储器RAM,双倍速率同步动态随机存储器DDRSDRAM,和/或,四倍数据倍率静态随机存取存储器QDR SRAM。
本发明中,各路由表和对应的辅助路由表分别对应有各自的掩码组,每个路由表用于存储对应掩码组中各种掩码情况的路由表项,每个辅助路由表中的各比特用于标识对应路由表中各种掩码情况下的各路由表项是否存在;其中,每个掩码组中的掩码位数连续,且所有掩码组包括了从1到最大位数的掩码。
处理模块12,用于当接收到报文后,根据所述报文的IP地址查找辅助路由表;并根据所述辅助路由表的查找结果确定所要查找的路由表;
所述处理模块12,具体用于从掩码位数最大的第一掩码组所对应的辅助路由表查起,如果根据所述辅助路由表确定出对应路由表中存在匹配的路由表项,则确定该路由表为要查找的路由表;
如果根据所述辅助路由表确定出对应路由表中不存在匹配的路由表项,则查找掩码位数次之的第二掩码组所对应的辅助路由表,以此类推,直到确定出存在匹配路由表项的路由表;
其中,所述第一掩码组的最小掩码位数大于所述第二掩码组的最大掩码位数,且二者连续。
确定模块13,用于确定所述路由表中与所述IP地址匹配的路由表项。
发送模块14,用于根据所述路由表项中记录的出接口将所述报文发送至下一跳。
学习模块15,用于根据待学习路由的掩码位数确定对应有该掩码位数的路由表和辅助路由表;在确定的路由表中相应的路由表项中记录所述待学习路由的IP地址和出接口,并将确定的辅助路由表中所述待学习路由对应的比特置位,使其表示对应路由表项存在。
其中,本发明设备的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。

Claims (13)

1.一种路由的处理方法,其特征在于,应用于包括至少2个路由表的设备中,各路由表对应有各自的辅助路由表,其中,辅助路由表用于表示对应路由表中各掩码情况下的路由表项是否存在,该方法包括以下步骤:
当接收到报文后,所述设备根据所述报文的IP地址查找辅助路由表,并根据所述辅助路由表的查找结果确定所要查找的路由表;
所述设备确定所述路由表中与所述IP地址匹配的路由表项,并根据所述路由表项中记录的出接口将所述报文发送至下一跳。
2.如权利要求1所述的方法,其特征在于,各路由表和对应的辅助路由表分别对应有各自的掩码组,每个路由表用于存储对应掩码组中各种掩码情况的路由表项,每个辅助路由表中的各比特用于标识对应路由表中各种掩码情况下的各路由表项是否存在;
其中,每个掩码组中的掩码位数连续,且所有掩码组包括了从1到最大位数的掩码。
3.如权利要求2所述的方法,其特征在于,所述设备根据所述报文的IP地址查找辅助路由表之前,还包括学习路由的过程,所述学习路由的过程包括:
所述设备根据待学习路由的掩码位数确定对应有该掩码位数的路由表和辅助路由表;
所述设备在确定的路由表中相应的路由表项中记录所述待学习路由的IP地址和出接口,并将确定的辅助路由表中所述待学习路由对应的比特置位,使其表示对应路由表项存在。
4.如权利要求2所述的方法,其特征在于,所述设备根据所述报文的IP地址查找辅助路由表,并根据所述辅助路由表的查找结果确定所要查找的路由表,具体包括:
所述设备从掩码位数最大的第一掩码组所对应的辅助路由表查起,如果根据所述辅助路由表确定出对应路由表中存在匹配的路由表项,则确定该路由表为要查找的路由表;
如果根据所述辅助路由表确定出对应路由表中不存在匹配的路由表项,则查找掩码位数次之的第二掩码组所对应的辅助路由表,以此类推,直到确定出存在匹配路由表项的路由表;
其中,所述第一掩码组的最小掩码位数大于所述第二掩码组的最大掩码位数,且二者连续。
5.如权利要求4所述的方法,其特征在于,在查找辅助路由表的过程中,所述设备确定所述辅助路由表对应掩码组的最小掩码位数,并根据所述IP地址的前(最小掩码位数-1)位确定hash地址;
所述设备根据所述hash地址以及对应该掩码组的IP地址查找所述辅助路由表。
6.如权利要求4所述的方法,其特征在于,根据所述辅助路由表确定出对应路由表中存在匹配的路由表项,具体为:所述路由表中存在某掩码位数匹配的路由表项;
所述设备确定所述路由表中与所述IP地址匹配的路由表项,具体包括:
所述设备根据该掩码位数确定所述路由表中与所述IP地址匹配的路由表项。
7.如权利要求4所述的方法,其特征在于,根据所述辅助路由表确定出对应路由表中存在匹配的路由表项,具体为:所述路由表中存在多个掩码位数匹配的路由表项;
所述设备确定所述路由表中与所述IP地址匹配的路由表项,具体包括:
所述设备根据多个掩码位数中的最大掩码位数确定所述路由表中与所述IP地址匹配的路由表项。
8.如权利要求1-7任一项所述的方法,其特征在于,各路由表和各辅助路由表的存储方式包括:
通过随机存取存储器RAM存储,
通过双倍速率同步动态随机存储器DDR SDRAM存储,和/或
通过四倍数据倍率静态随机存取存储器QDR SRAM存储。
9.一种路由的处理设备,其特征在于,应用于包括至少2个路由表的设备中,各路由表对应有各自的辅助路由表,其中,辅助路由表用于表示对应路由表中各掩码情况下的路由表项是否存在,该设备包括:
存储模块,用于存储各路由表以及各辅助路由表;
处理模块,用于当接收到报文后,根据所述报文的IP地址查找辅助路由表;并根据所述辅助路由表的查找结果确定所要查找的路由表;
确定模块,用于确定所述路由表中与所述IP地址匹配的路由表项;
发送模块,用于根据所述路由表项中记录的出接口将所述报文发送至下一跳。
10.如权利要求9所述的设备,其特征在于,各路由表和对应的辅助路由表分别对应有各自的掩码组,每个路由表用于存储对应掩码组中各种掩码情况的路由表项,每个辅助路由表中的各比特用于标识对应路由表中各种掩码情况下的各路由表项是否存在;
其中,每个掩码组中的掩码位数连续,且所有掩码组包括了从1到最大位数的掩码。
11.如权利要求10所述的设备,其特征在于,还包括:
学习模块,用于根据待学习路由的掩码位数确定对应有该掩码位数的路由表和辅助路由表;在确定的路由表中相应的路由表项中记录所述待学习路由的IP地址和出接口,并将确定的辅助路由表中所述待学习路由对应的比特置位,使其表示对应路由表项存在。
12.如权利要求10所述的设备,其特征在于,
所述处理模块,具体用于从掩码位数最大的第一掩码组所对应的辅助路由表查起,如果根据所述辅助路由表确定出对应路由表中存在匹配的路由表项,则确定该路由表为要查找的路由表;
如果根据所述辅助路由表确定出对应路由表中不存在匹配的路由表项,则查找掩码位数次之的第二掩码组所对应的辅助路由表,以此类推,直到确定出存在匹配路由表项的路由表;
其中,所述第一掩码组的最小掩码位数大于所述第二掩码组的最大掩码位数,且二者连续。
13.如权利要求12所述的设备,其特征在于,所述存储模块具体为:
随机存取存储器RAM,双倍速率同步动态随机存储器DDR SDRAM,和/或,四倍数据倍率静态随机存取存储器QDR SRAM。
CN2010105472369A 2010-11-17 2010-11-17 一种路由的处理方法和设备 Expired - Fee Related CN102035727B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2010105472369A CN102035727B (zh) 2010-11-17 2010-11-17 一种路由的处理方法和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2010105472369A CN102035727B (zh) 2010-11-17 2010-11-17 一种路由的处理方法和设备

Publications (2)

Publication Number Publication Date
CN102035727A true CN102035727A (zh) 2011-04-27
CN102035727B CN102035727B (zh) 2013-01-09

Family

ID=43888084

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010105472369A Expired - Fee Related CN102035727B (zh) 2010-11-17 2010-11-17 一种路由的处理方法和设备

Country Status (1)

Country Link
CN (1) CN102035727B (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102439534A (zh) * 2011-10-25 2012-05-02 华为技术有限公司 降低数据类芯片外挂ddr功耗的方法及数据类芯片系统
CN102984292A (zh) * 2012-12-03 2013-03-20 北京锐安科技有限公司 一种ip段地址集中查找ip地址的方法
CN104967572A (zh) * 2015-06-05 2015-10-07 小米科技有限责任公司 网络访问方法、装置及设备
WO2016061925A1 (zh) * 2014-10-22 2016-04-28 中兴通讯股份有限公司 一种路由表的维护方法、装置及存储介质
CN108259293A (zh) * 2017-02-28 2018-07-06 新华三技术有限公司 一种报文转发方法及装置
CN110557335A (zh) * 2018-06-04 2019-12-10 中兴通讯股份有限公司 三态内容寻址存储器tcam表项处理方法及装置
CN111866202A (zh) * 2019-11-08 2020-10-30 北京嘀嘀无限科技发展有限公司 报文发送方法、装置、电子设备和存储介质
CN112055094A (zh) * 2019-06-06 2020-12-08 烽火通信科技股份有限公司 一种arp查找与arpmiss处理的实现方法及系统
CN112650452A (zh) * 2020-12-31 2021-04-13 成都卓讯智安科技有限公司 一种数据查询方法和设备
CN113992579A (zh) * 2021-09-23 2022-01-28 新华三信息安全技术有限公司 一种路由表项存储方法、查找方法及装置
CN114356418A (zh) * 2022-03-10 2022-04-15 之江实验室 一种智能表项控制器及控制方法
CN114866471A (zh) * 2022-03-25 2022-08-05 阿里巴巴(中国)有限公司 路由查找方法、装置及设备
CN115426315A (zh) * 2022-11-07 2022-12-02 北京数盾信息科技有限公司 一种信息处理方法、装置及设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101043421A (zh) * 2006-03-21 2007-09-26 上海激动通信有限公司 一种基于内存的ip地址最长匹配快速查找的方法
CN101335706A (zh) * 2008-07-21 2008-12-31 北京星网锐捷网络技术有限公司 对路由表进行空间管理的方法、装置、交换机及路由器
CN101695054A (zh) * 2009-09-30 2010-04-14 杭州华三通信技术有限公司 路由维护方法和装置以及路由查询方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101043421A (zh) * 2006-03-21 2007-09-26 上海激动通信有限公司 一种基于内存的ip地址最长匹配快速查找的方法
CN101335706A (zh) * 2008-07-21 2008-12-31 北京星网锐捷网络技术有限公司 对路由表进行空间管理的方法、装置、交换机及路由器
CN101695054A (zh) * 2009-09-30 2010-04-14 杭州华三通信技术有限公司 路由维护方法和装置以及路由查询方法和装置

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102439534A (zh) * 2011-10-25 2012-05-02 华为技术有限公司 降低数据类芯片外挂ddr功耗的方法及数据类芯片系统
CN102984292A (zh) * 2012-12-03 2013-03-20 北京锐安科技有限公司 一种ip段地址集中查找ip地址的方法
WO2016061925A1 (zh) * 2014-10-22 2016-04-28 中兴通讯股份有限公司 一种路由表的维护方法、装置及存储介质
CN104967572A (zh) * 2015-06-05 2015-10-07 小米科技有限责任公司 网络访问方法、装置及设备
CN104967572B (zh) * 2015-06-05 2019-04-12 小米科技有限责任公司 网络访问方法、装置及设备
CN108259293B (zh) * 2017-02-28 2020-11-06 新华三技术有限公司 一种报文转发方法及装置
CN108259293A (zh) * 2017-02-28 2018-07-06 新华三技术有限公司 一种报文转发方法及装置
CN110557335A (zh) * 2018-06-04 2019-12-10 中兴通讯股份有限公司 三态内容寻址存储器tcam表项处理方法及装置
CN110557335B (zh) * 2018-06-04 2022-06-17 中兴通讯股份有限公司 三态内容寻址存储器tcam表项处理方法及装置
CN112055094A (zh) * 2019-06-06 2020-12-08 烽火通信科技股份有限公司 一种arp查找与arpmiss处理的实现方法及系统
CN112055094B (zh) * 2019-06-06 2022-04-29 烽火通信科技股份有限公司 一种arp查找与arpmiss处理的实现方法及系统
CN111866202A (zh) * 2019-11-08 2020-10-30 北京嘀嘀无限科技发展有限公司 报文发送方法、装置、电子设备和存储介质
CN111866202B (zh) * 2019-11-08 2023-04-07 北京嘀嘀无限科技发展有限公司 报文发送方法、装置、电子设备和存储介质
CN112650452A (zh) * 2020-12-31 2021-04-13 成都卓讯智安科技有限公司 一种数据查询方法和设备
CN113992579B (zh) * 2021-09-23 2023-03-31 新华三信息安全技术有限公司 一种路由表项存储方法、查找方法及装置
CN113992579A (zh) * 2021-09-23 2022-01-28 新华三信息安全技术有限公司 一种路由表项存储方法、查找方法及装置
CN114356418A (zh) * 2022-03-10 2022-04-15 之江实验室 一种智能表项控制器及控制方法
CN114866471A (zh) * 2022-03-25 2022-08-05 阿里巴巴(中国)有限公司 路由查找方法、装置及设备
CN114866471B (zh) * 2022-03-25 2024-05-28 阿里巴巴(中国)有限公司 路由查找方法、装置及设备
CN115426315A (zh) * 2022-11-07 2022-12-02 北京数盾信息科技有限公司 一种信息处理方法、装置及设备
CN115426315B (zh) * 2022-11-07 2023-01-31 北京数盾信息科技有限公司 一种信息处理方法、装置及设备

Also Published As

Publication number Publication date
CN102035727B (zh) 2013-01-09

Similar Documents

Publication Publication Date Title
CN102035727B (zh) 一种路由的处理方法和设备
US7146371B2 (en) Performance and memory bandwidth utilization for tree searches using tree fragmentation
US7930515B2 (en) Virtual memory management
CN103051543B (zh) 一种路由前缀的处理、查找、增加及删除方法
CN101692651B (zh) 一种哈希查找表的方法和装置
Bando et al. Flashtrie: Hash-based prefix-compressed trie for IP route lookup beyond 100Gbps
CN106326475B (zh) 一种高效的静态哈希表实现方法及系统
US6725216B2 (en) Partitioning search key thereby distributing table across multiple non-contiguous memory segments, memory banks or memory modules
CN112425131B (zh) 一种acl的规则分类方法、查找方法和装置
CN104809179A (zh) 访问哈希表的装置和方法
US10083120B2 (en) Memory system, and address mapping method and access method thereof
CN101620623A (zh) 内容可寻址存储器表项管理方法和装置
US20170078200A1 (en) Multi-table hash-based lookups for packet processing
CN111416880A (zh) Ip地址的寻址方法及装置,计算机存储介质及电子设备
CN104102586A (zh) 一种地址映射处理的方法、装置
CN101267381A (zh) 哈希表操作方法及装置
US6917954B2 (en) Load balancing in IP address lookup
US9852074B2 (en) Cache-optimized hash table data structure
US20050283711A1 (en) Look-up table expansion method
CN114860627A (zh) 基于地址信息动态生成页表的方法
CN115033185A (zh) 访存处理方法和装置、存储装置、芯片、板卡、电子设备
CN112380004B (zh) 内存管理方法、装置、计算机可读存储介质及电子设备
CN104899159A (zh) 高速缓冲存储器Cache地址的映射处理方法和装置
CN105320609A (zh) 一种基于移动终端的数据存储方法及系统
CN107800652A (zh) 在交换机中使用的协议访问方法及装置

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
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No.

Patentee after: Xinhua three Technology Co., Ltd.

Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base

Patentee before: Huasan Communication Technology Co., Ltd.

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: 20130109

Termination date: 20191117