CN1983976A - 一种转发路由表存放的方法及装置 - Google Patents
一种转发路由表存放的方法及装置 Download PDFInfo
- Publication number
- CN1983976A CN1983976A CNA2006100832304A CN200610083230A CN1983976A CN 1983976 A CN1983976 A CN 1983976A CN A2006100832304 A CNA2006100832304 A CN A2006100832304A CN 200610083230 A CN200610083230 A CN 200610083230A CN 1983976 A CN1983976 A CN 1983976A
- Authority
- CN
- China
- Prior art keywords
- linear
- route
- list
- prefix
- module
- 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
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种转发路由表存放的方法及装置。属于网络传输领域。为了解决现有技术中系统存放路由成本大,容量不足的问题,本发明提供了一种转发路由表存放的方法,包括将转发路由表分为非线性表与线性表,对路由前缀进行优化划分,将优化划分后的路由前缀在线性表和非线性表中存放的步骤。本发明还提供了一种转发路由表存放的装置,包括路由划分模块和路由存放模块。本发明还提供了一种转发路由的查找方法,包括根据路由表中路由的具体存放形式,采用线性查找与非线性查找相结合的步骤。本发明还提供了一种转发路由的查找装置,包括获取转发地址模块和转发模块。本发明提供的方案,在不改变系统硬件结构的情况下,增大了路由的容量。
Description
技术领域
本发明涉及网络传输领域,特别涉及一种转发路由表存放的方法及装置。
背景技术
在现代路由器中,查找是一个关键的技术,TCAM(ternary contentaddressable memory—三进制内容可寻址存储器)是一种快速查找引擎,查找速度快,使用简单,但其价格昂贵,功耗高。现在一般使用TCAM的方法是一条表项占用一条TCAM表项的方法,TCAM的容量直接决定支持的规格,比如,使用NETLOGIC 18Mb TCAM(256K*72bit),最多支持256K的转发信息表FIB(Forwarding Informaton Table)表项。对于系统来说,当然可以通过增加TCAM来扩大路由表项,但系统成本增加很大。
现有技术中对于前缀相似的路由,根据下一跳是否相同来压缩路由表项,在一定程度上可以解决系统成本大的问题。参见表1,对于这样的两条路由,可以合并成一条路由下发,10.1.0.0/23下发,从而达到在相同TCAM资源的情况下,支持更多的路由。
路由前缀 | 下一跳 | |
1 | 10.1.0.0/24 | Port1 |
2 | 10.1.1.0/24 | Port1 |
表1
现有技术有以下缺点:路由合并时,要求路由前缀连续且下一跳相同,但是在实际应用中,满足上述条件的路由很少。
发明内容
为了解决现有技术中系统存放路由成本大,容量不足的问题,本发明提供了一种转发路由表存放的方法和装置,这种方法和装置通过将路由添加到相应的线性表,来达到增大路由表的容量。所述技术方案如下:
一种转发路由表存放的方法,所述方法包括以下步骤:
将转发路由表分为非线性表与线性表,对路由前缀进行优化划分,将优化划分后的路由前缀在线性表和非线性表中进行存放。
所述方法具体包括以下步骤:
步骤A:获取路由信息,所述路由信息包括路由前缀、前缀长度和路由记录信息;
步骤B:根据所述路由信息获取优化路由前缀;
步骤C:判断所述优化路由前缀是否是非线性表的新增表项,如果是,系统分配一个非线性索引,并记录在所述非线性表中;否则直接从所述路由记录信息中获取非线性索引;
步骤D:根据路由前缀和优化路由前缀长度计算线性部分,并填写在线性表中,更新下一跳地址,同时设置有效标志。
所述方法还包括以下步骤:
步骤E:获取删除路由信息,所述路由信息包括非线性表表项索引、路由前缀和前缀长度;
步骤F:根据所述路由信息获取优化路由前缀;
步骤G:根据路由前缀和优化路由前缀长度计算出线性部分,在线性表中查找所述线性部分对应的表项;判断线性表对应的表项是否有效,如果有效,将所述线性表对应项设置为无效;否则结束删除;
步骤H:检查所述线性表对应项是否为同组线性表中最后一个有效表项,如果是,根据线性部分表项,删除对应的非线性表项;否则结束删除。
所述根据路由信息获取优化路由前缀的步骤具体包括:对每条路由前缀采用减少相同的位得到优化路由前缀。
本发明还提供了一种转发路由表存放的方法,所述方法具体包括以下步骤:
步骤A′:获取路由信息,所述路由信息包括路由前缀、前缀长度和下一跳地址;
步骤B′:根据设定的路由前缀分界长度N,判断所述路由前缀长度是否小于等于N;
步骤C′:如果路由前缀长度小于等于N,进行线性表的更新;
步骤D′:如果所述路由前缀长度大于N,进行非线性表更新。
所述步骤C具体包括以下步骤:
步骤C1′:根据所述路由前缀计算线性索引,在线性表中查找路由前缀相同的表项;
步骤C2′:对于在线性表中查到的有效表项,当表项中的路由前缀长度小于等于获取的路由前缀长度时,用获取的路由信息更新该表项;否则保留表项中原有的路由信息;
步骤C3′:对于在线性表中查到的无效表项,直接用获取的路由信息更新该表项。
所述步骤D具体包括以下步骤:
步骤D1:根据非线性表记录信息,判断所述路由前缀是否是所述非线性表的新增表项,如果是,系统分配一个非线性索引,并记录在所述非线性表中;否则直接从所述非线性表中获取非线性索引;
步骤D2:根据非线性索引对应的非线性表项,直接用获取的路由信息更新该表项。
所述方法还包括以下步骤:
步骤E′:获得删除路由信息,所述路由信息包括:路由前缀、前缀长度和替换路由;
步骤F′:判断路由前缀长度是否小于等于路由前缀分界长度N,如果小于等于N,则删除线性表的对应表项;否则删除非线性表的对应表项;
步骤G′:结束删除。
所述步骤F′中的删除线性表的对应表项具体包括以下步骤:
步骤F1′:根据所述路由前缀计算线性索引,在线性表中查找路由前缀相同的表项;
步骤F2′:当线性表中查到的表项有效,且表项中的路由前缀长度等于删除路由信息中的前缀长度时,用替换转发路由表更新该表项;否则结束删除。
本发明还提供了一种转发路由的查找方法,所述方法包括以下步骤:
根据转发报文,得到所要查找路由的目的IP地址,将非线性查找与线性查找相结合,进行报文转发。
所述方法具体包括以下步骤:
步骤A″:根据转发报文,得到所要查找路由的目的IP地址;
步骤B″:在非线性表中查找是否有与所述IP地址匹配的优化路由前缀,如果有,执行步骤C″;如果没有,路由停止转发报文;
步骤C″:根据查到的优化路由前缀,计算所述IP地址的线性部分,根据线性部分在线性表查找相应的表项;
步骤D″:判断线性表对应项是否有效,如果有效,根据线性表中对应项得到路由表索引,查路由表进行报文转发;否则路由停止转发报文。
所述方法具体包括以下步骤:
根据转发报文得到目的IP地址,先进行非线性表查找,当非线性表查找失败时,再进行线性表查找,然后根据查找结果进行报文转发。
所述方法中的非线性表查找具体包括以下步骤:
根据所述目的IP地址查非线性表中是否有匹配的路由前缀,如果有,根据非线性表索引,查路由表转发报文;否则进行线性表查找转发报文。
所述方法中的线性表查找具体包括以下步骤:
步骤A:按路由前缀分界长度N计算该IP地址对应的线性索引;
步骤B:判断线性表中所述线性索引对应表项是否有效,如果有效,根据线性索引,查路由表转发报文;否则路由停止转发报文。
本发明还提供了一种转发路由表存放的装置,所述装置包括:划分模块和路由存放模块:
所述划分模块用于将转发路由表分为非线性表与线性表;
所述路由存放模块用于对路由前缀进行优化划分,将优化划分后的路由前缀在线性表和非线性表中进行存放。
所述路由存放模块具体包括:第一获取路由信息模块、获取优化路由前缀模块、获取非线性索引模块和路由填写模块;
所述第一获取路由信息模块用于获取路由信息,所述路由信息包括路由前缀、前缀长度和路由记录信息;
所述获取优化路由前缀模块用于根据所述路由信息获取优化路由前缀;
所述获取非线性索引模块用于判断所述优化路由前缀是否是非线性表的新增表项,如果是,系统分配一个非线性索引,并记录在所述非线性表中;否则直接从所述非线性表中获取非线性索引;
所述路由填写模块用于根据路由前缀和优化路由前缀长度计算线性部分,并填写在线性表中,更新下一跳地址,同时设置有效标志。
所述路由存放模块还包括:第一获取删除信息模块、获取优化路由前缀模块、判断模块和第一删除模块;
所述第一获取删除信息模块用于获取删除路由信息,所述路由信息包括非线性表表项索引、路由前缀和前缀长度;
所述获取优化路由前缀模块用于根据所述路由信息获取优化路由前缀;
所述判断模块用于根据路由前缀和优化前缀长度计算出线性部分,查找线性表中所述线性部分对应的表项;判断线性表对应的表项是否有效;如果有效,将所述线性表对应项设置为无效;否则结束删除;
所述第一删除模块用于检查所述线性表对应项是否为同组线性表中最后一个有效表项,如果是,根据线性部分表项,删除对应的非线性表项;否则结束删除。
所述路由存放模块具体包括:第二获取路由信息模块、线性表更新模块和非线性表更新模块;
所述第二获取路由信息模块用于获取路由信息,所述路由信息包括路由前缀、前缀长度和下一跳地址;
所述线性表更新模块用于所述路由前缀长度小于等于N设定的路由前缀分界长度N;进行线性表的更新;
所述非线性表更新模块用于所述路由前缀长度大于N,进行非线性表更新。
所述路由存放模块还包括:第二获取删除信息模块和第二删除模块;
所述第二获取删除信息模块用于获取删除路由信息,所述路由信息包括:路由前缀、前缀长度和替换路由;
所述第二删除模块用于判断路由前缀长度是否小于等于路由前缀分界长度N,如果小于等于N,则删除线性表的对应表项;否则删除非线性表的对应表项。
本发明还提供了一种转发路由的查找装置,所述装置包括:获取转发地址模块和转发模块;
所述获取转发地址模块用于根据转发报文,得到所要查找路由的目的IP地址;
所述转发模块用于将非线性查找与线性查找相结合,进行报文转发。
所述转发模块具体包括:查找模块,转发报文模块;
所述查找模块用于查非线性表中是否有与所述IP地址匹配的优化路由前缀,
所述转发报文模块用于当在非线性表中查到所述优化路由前缀,且该表项对应的线性表项有效时,按所查路由进行报文转发;否则停止转发报文。
所述装置的转发模块具体包括:非线性转发模块和线性转发模块;
所述非线性转发单元用于根据所述目的IP地址查非线性表中是否有匹配的路由前缀,如果有,根据非线性表索引,查路由表转发报文;否则进行线性表查找转发报文;
所述线性转发单元用于按路由前缀分界长度N计算该IP地址对应的线性索引;判断线性表中所述线性索引对应表项是否有效,如果有效,根据线性索引,查路由表转发报文;否则路由停止转发报文。
本发明的有益效果是:
在不增加非线性表(例如TCAM)容量的情况下,在内存中增加了线性表,增加一定量的内存,就可以支持更大容量的路由。在不改变系统硬件结构的情况下,通过软件的少量修改,就可以支持更大容量的路由,而转发性能不受影响。
附图说明
图1是本发明所述实施例1中的转发路由表更新方法流程图;
图3是本发明所述实施例2中的路由删除方法流程图;
图5是本发明所述实施例3中的转发路由查找方法流程图;
图2是本发明所述实施例4中的转发路由表更新方法流程图;
图4是本发明所述实施例5中的路由删除方法流程图;
图6是本发明所述实施例6中的转发路由查找方法流程图;
图7是本发明所述实施例7中的转发路由表更新装置示意图;
图8是本发明所述实施例4中的转发路由表更新线性表示意图;
图9是本发明所述实施例8中的转发路由表更新装置示意图;
图10是本发明所述实施例9中的转发路由查找装置示意图;
图11是本发明所述实施例10中的转发路由查找装置示意图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明,但不作为对本发明的限定。
本发明提供了一种转发路由表存放的方法,所述方法包括以下步骤:
将转发路由表分为非线性表与线性表,对路由前缀进行优化划分,将优化划分后的路由前缀在线性表和非线性表中进行存放。
在对转发路由表进行操作时,先将转发路由表分为非线性表和线性表两部分,其中非线性表存储在硬件上,线性表存储在内存上,这里的非线性表以TCAM表为例进行说明。转发路由表的存放信息来自路由管理表,参见表2,路由管理表具体包括以下表项:
有效标志位 | 路由前缀 | 路由前缀长度 | 索引有效标志 | TCAM索引 | 下一跳 |
表2
(1)有效标志位,该表项具体为用1表示该项有效,用0表示该项无效;
(2)路由前缀,该表项指路由前缀;
(3)路由前缀长度,该表项为路由前缀长度;
(4)索引有效标志,设置为0时,表示无效;当TCAM索引表项有具体值时,该项设置为1,表示有效;
(5)TCAM索引,系统设置其值;
(6)下一跳,路由下一跳地址。
实施例1
参见图1,本发明提供了一种转发路由表存放的方法,该方法通过减少路由的前缀位数对路由前缀进行优化,将优化后的路由前缀放在非线性表中,将路由剩余前缀信息放在线性表中。假设路由前缀的优化方法是以路由前缀减2为标准进行的。本实施例转发路由表的表项形式如表3,表4所示:
TCAM表:
TCAM索引 | 优化路由前缀 | 优化路由前缀长度 |
表3
线性表:
线性部分 | 下一跳 | 有效标志位 |
表4
该转发路由表存放的方法具体步骤如下:
步骤101:获取所要添加的路由信息,该路由信息包括:路由前缀、前缀长度和路由记录信息;该路由记录信息为路由管理表中的内容;
步骤102:根据路由前缀及其前缀长度,采用路由前缀减少相同的位数的优化方法,得到该路由前缀的优化路由前缀及相应的优化路由前缀长度;
步骤103:根据路由记录信息,判断优化路由前缀是否是新增表项(如果优化路由前缀对应的TCAM索引表项已经分配了数值,则说明该优化路由前缀不是新增的表项),如果是,根据路由前缀长度申请TCAM索引,并记录在转发路由表中和路由管理表中(步骤104),否则,直接从路由记录信息中获取TCAM索引(步骤106);
步骤104:根据路由前缀长度向系统申请一个新的TCAM索引值,并记录在TCAM索引表项一栏中和路由管理表中,该索引数值为系统分配的;
步骤105:向TCAM表中的优化路由前缀表项填写优化路由前缀及其长度;然后执行步骤107;
步骤106:从路由记录信息中TCAM索引表项获取所要添加路由的TCAM索引值;
步骤107:根据路由前缀和优化路由前缀,计算该路由的线性部分,具体计算方法是先用路由前缀减去优化路由前缀得到剩余的位数,然后将剩余的位数转换为十进制数值,最后把该十进制数值作为线性部分;执行步骤108;
步骤108:将线性部分、下一跳地址填写到转发路由表中的线性表,并将相应的有效标志位设置为1;
下面对本实施例作进一步说明,例如:
假设表5中的10.1.0.0/24、10.1.1.0/24、10.1.2.0/24、10.1.3.0/24和10.1.0.128/25在路由表中都不存在,本实施例优化前缀采用对每条路由将其前缀长度固定减2来进行优化。
路由前缀 | 下一跳 | |
1 | 10.1.0.0/24 | Porr1 |
2 | 10.1.1.0/24 | Port2 |
3 | 10.1.2.0/24 | Port3 |
4 | 10.1.3.0/24 | Port4 |
5 | 10.1.0.128/25 | Port5 |
表5
当下发信息为10.1.0.0/24,下一跳为Port1时,根据优化前缀,即22位前缀10.1.0.0/22查TCAM表,没有路由前缀10.1.0.0/24对应的优化路由前缀10.1.0.0/22表项,根据上述步骤102和103,这时需要申请优化路由前缀10.1.0.0/22对应的TCAM索引,本实施例假设系统分配的索引值为0,并将优化路由前缀10.1.0.0/22表项加入TCAM表;同时得到线性部分0,线性部分的计算方法为:将路由前缀的22位后的23、24两位转换为十进制数值,并将该索引值添加到线性部分表项中,然后将下一跳Port1也填写到对应的表项中,有效标志位设置为1。
当下发信息为10.1.1.0/24,下一跳为Port2,根据22位前缀10.1.0.0/22查TCAM,查到优化路由前缀10.1.0.0/22表项对应的TCAM索引表项已经被系统分配了索引值0,根据上述步骤102和106,直接从路由记录信息中获取TCAM索引0,根据优化路由前缀10.1.0.0/22和路由前缀10.1.1.0/24计算线性部分为1,线性部分的具体计算方法同上,填加到线性部分表项中,并将下一跳Port2填加到对应表项中,有效标志设置为1。
同理,10.1.2.0/24和10.1.3.0/24的过程与10.1.1.0/24类似,这里不再详述;
当下发为10.1.0.128/25,下一跳为Porr5,根据23位前缀10.1.0.0/23查TCAM表,没有路由前缀10.1.0.128/25对应的优化路由前缀10.1.0.0/23,根据上述步骤102和103,需要申请TCAM索引表项,本实施例假设系统分配的索引值为4,并将优化路由前缀10.1.0.0/23添加到TCAM表的优化路由前缀表项中;同时计算该路由的线性部分,其值为0,计算方法同上,并填加到线性部分表项中,下一跳Port5也填加到相应的表项中,有效标志设置为1。
上述存放结果参见表6,由表6可以看出,原来占用5条TCAM表项的路由,用本发明所提供的路由存放方法,只占用了两条TCAM表项。由于TCAM表是通过硬件产生,这样节省了大量的硬件开销,增大了路由表的容量。
TCAM表和线性表:
TCAM索引 | 优化路由前缀 | 优化路由前缀长度 | 线性部分 | 下一跳 | 有效标志位 |
0 | 10.1.0.0 | 22 | 0 | Port1 | 1 |
1 | Port2 | 1 | |||
2 | Port3 | 1 | |||
3 | Port4 | 1 | |||
4 | 10.1.0.0 | 23 | 0 | Port5 | 1 |
表6
实施例2
参见图2,本发明还提供了一种路由删除方法,本实施例是以实施例1为基础将存放在转发路由表中需要删掉的路由进行删除。
该方法具体步骤如下:
步骤201:获取表项删除信息:TCAM表项索引、路由前缀和前缀长度;
步骤202:根据TCAM表项索引查出TCAM表对应的优化路由前缀表项,然后根据路由前缀和优化路由前缀,计算该路由的线性部分,具体计算方法与实施例1中相同,然后根据线性部分在线性表中查找对应项;
步骤203:在线性部分表项中查到该路由的对应项后,根据线性表中有效标志位的对应数值,判断该路由对应表项是否有效,如果有效,将该项有效标志位设置为0(步骤204);否则结束删除,因为其已经是无效状态,就没必要再继续操作(步骤207);
步骤204:将所要删除的路由对应的有效标志位设置为0;
步骤205:检查所述线性表对应项是否为同组线性表中最后一个有效表项,如果是,根据TCAM索引,删除对应的TCAM表项(步骤206);否则结束删除(步骤207);这里的同组是指每条TCAM索引对应的线性表项可以不只一条,可以是多条,把这里的多条归为同组。
步骤206:根据TCAM索引,删除对应的TCAM表项;
步骤207:结束删除。
下面对本实施例作进一步说明,例如:
对于实施例1中存放的结果表3,采用对每条路由将其前缀长度固定减2来进行优化。当要删除表项10.1.1.0/24时,优化路由前缀长度为22,优化路由前缀为10.1.0.0,根据路由前缀10.1.1.0和优化路由前缀10.1.0.0,计算该路由的线性部分为1,计算方法同实施例1,直接删除对应的线性表,即把线性部分1对应的有效标志位设置成0,并检查线性部分1对应的同组其它线性表是否有效,这时其它表项有有效项,不删除非线性表TCAM表项,只有TCAM表项索引对应的线性表项都为无效时,才删除该TCAM表项。
当删除10.1.0.128/25时,优化路由前缀长度为23,根据23位前缀10.1.0.0/23得到线性部分0,直接删除对应的线性表,即把线性部分0对应的有效标志位设置成0,并检查同组其它线性表是否有效,这时发现10.1.0.0/23对应的线性表项均为无效(因为该路由对应的线性表中没有其它表项),则删除该TCAM表项10.1.0.0/23。
根据上述过程,表6删除后的结果如表7所示:
TCAM索引 | 优化路由前缀 | 优化路由前缀长度 | 线性部分 | 下一跳 | 有效标志位 |
0 | 10.1.0.0 | 22 | 0 | Port1 | 1 |
1 | Port2 | 0 | |||
2 | Port3 | 1 | |||
3 | Port4 | 1 |
表7
实施例3
参见图3,本发明还提供了一种转发路由的查找方法,该方法根据转发报文得到所要查找路由的目的IP地址,将非线性查找与线性查找相结合,进行报文转发。
本实施例是以实施例1为基础进行转发路由的查找的。该方法应用非线性查找与线性查找的组合技术,非线性查找和线性查找使用路由前缀值中不同的部分,非线性查找给出一部分结果,线性查找给出一部分结果,二者的组合是最终的结果。
该方法具体步骤如下:
步骤301:首先给出所要转发路由的IP地址;
步骤302:根据路由前缀最长匹配原则(取所有匹配的优化路由前缀长度最大的表项),检查TCAM表中优化路由前缀表项一栏看是否有与该IP地址匹配的优化路由前缀,如果有,查该优化路由前缀表项对应的线性表(步骤303);否则停止报文转发(步骤306);
步骤303:根据优化路由前缀表项,获得所述IP地址对应的优化路由前缀和其长度,计算该转发路由IP地址的线性部分,该线性部分的具体计算方法与实施例1中相同,根据线性部分查线性表相应的表项;
步骤304:根据线性表中的线性部分项对应的有效标志位的具体数值,判断该转发路由线性表对应项是否有效,如果有效,按该条表项对应的路由进行报文转发(步骤305);否则停止转发报文,因为在路由表中查找的结果为无效路由,无法完成转发报文(步骤306);
步骤305:按所查路由进行报文转发;
步骤306:停止报文转发。
下面对本实施例作进一步说明,例如:
假设10.1.0.0/24、10.1.1.0/24、10.1.2.0/24和10.1.3.0/24已经存在。当查10.1.1.1这个目的IP时,根据最长前缀匹配,TCAM表返回存在目的IP,这时根据10.1.0.0/22可以得到优化路由前缀10.1.0.0和优化前缀长度22,根据前缀长度22位和每条路由前缀固定减2的信息,得到线性部分为1,其对应的路由为10.1.1.0/24,则按10.1.1.0/24转发报文。
本发明还提供了一种转发路由表存放的方法,该方法是通过提前设定一个路由前缀分界长度N,当路由前缀小于等于划分界线N时,采用线性表存放;当路由前缀大于划分界线N时,采用非线性表存放。
在对转发路由表进行操作时,将转发路由表分为非线性表和线性表两部分,这里的非线性表以TCAM表为例进行说明,参见表9和表10,初始化具体包括以下表项:
根据系统要求,设定划分路由前缀长度为N;
参见表8,线性表初始化:
线性索引 | 线性部分 | 下一跳 | 有效标志位 |
表8
(1)线性索引,在初始化过程对该索引不进行分配,即不给出索引的具体数值,该项为空;
(2)线性部分,该表项指路由前缀及其长度。初始化时,该项为空;
(3)下一跳,指通过该路由将数据转发的地址,初始化时该项为空;
(4)有效标志位,该表项具体为用1表示该项有效,用0表示该项无效;初始化时设置该表项为0;
参见表9,非线性表初始化:
TCAM索引 | 非线性部分 | 下一跳 |
表9
(1)TCAM索引,在初始化过程对该索引不进行分配,即不给出索引的具体数值,该项为空;
(2)非线性部分,该表项指路由前缀及其长度。初始化时,此时该表项为空;
(3)下一跳,指通过该路由将数据转发的地址,初始化时该项为空;
实施例4
参见图4,本发明还提供了一种转发路由表存放方法,该方法是以表9和表10的路由存放方法为基础的,本实施例设定划分路由前缀长度为16,当路由前缀小于等于划分前缀长度16时,采用线性表存放;当路由前缀大于划分前缀长度16时,采用TCAM表存放。。
该转发路由表存放方法具体步骤如下:
步骤401:获得所要添加的路由信息,该路由信息包括:路由前缀、路由前缀长度和下一跳地址;
步骤402:根据路由前缀长度,判断是添加到线性部分还是非线性部分;如果路由的前缀长度小于等于划分界线长度16,进行线性表更新(步骤403);如果所述路由的前缀长度大于划分界线长度16,进行TCAM表更新(步骤410);
线性表更新如下:
根据所述路由前缀计算线性索引,查在线性表中从所述线性索引对应的表项到所述线性索引加上2的N减去所述路由的前缀长度次幂对应的所有表项;
对于查到的有效表项,当表项中的路由前缀长度小于等于获取的路由前缀长度时,用获取的路由信息更新该表项,否则保留表项中原有的路由信息;
对于查到的无效表项,直接用获取的路由信息更新该表项;
线性表更新具体步骤如下:
步骤403:根据路由前缀长度,提取路由线性部分的值,作为线性索引index0,index0的数值为路由前缀的前16位对应的十进制数;初始化index=index0,iner=0;
步骤404:根据index读取线性表;
步骤405:判断所述线性表的对应表项是否有效,如果有效,并且表项中的前缀长度小于等于添加路由的前缀长度,则直接更新路由(步骤406);否则转到步骤407;
步骤406:判断表项中的前缀长度是否小于等于添加路由的前缀长度,如果是,则直接更新路由,用前缀长度较长的路由来更新线性表中的路由;否则转到步骤408,查看下一个表项是否需要更新;
步骤407:用当前转发路由表更新所述线性表的表项,即更新下一跳表项,并把该表项设置为有效,即有效标志位设置为1;
步骤408:iner=iner+1,index=index0+iner;
步骤409:判断iner是否小于2的16减去添加路由的前缀长度次幂,如果是,返回步骤404,继续读取线性表,添加从当前路由前缀长度到路由前缀分界长度16之间的所有表项,否则结束添更新;
TCAM表更新具体步骤如下:
步骤410:判断所要添加的路由前缀是否是TCAM表的新增表项(判断条件是看是否已经分配TCAM索引,初始化时,所有表项都未分配),如果是新增表项,系统分配一个TCAM索引值,并把该索引值记录在TCAM索引表项中(步骤411);否则直接从路由表中获取TCAM表项索引(步骤412);
步骤411:系统分配一个TCAM索引值,并把该索引值记录在TCAM索引表项中;
步骤412:直接从路由表中获取该路由前缀对应得TCAM索引值;
步骤413:向TCAM表的非线性部分填写路由前缀及其长度;
步骤414根据要添加的路由信息对下一跳表项进行更新;
步骤415:结束更新。
下面对本实施例作进一步说明,例如:
具体实例1:
假设N=16,且路由表中没有任何路由,现在增加10.0.0.0/8这条路由,具体存放过程如下:
(1)根据路由前缀长度prefixlen=8,小于N,所以增加到线性表中;
(2)根据10.0.0.0/8,得到index0=2560,iner=0,以2560为索引查线性表,这时线性表无效,直接更新该条表项,将valid设置为1,prefixlen设置为8;
(3)iner加1,即iner=1,计算2的(16-8)次幂为256,iner小于256,满足条件,这时需要更新index=index0+iner=2561对应的线性表;
(4)重复(3)的步骤,直到iner加到256时结束。
具体实例2:
在具体实例1的基础上,增加10.0.0.0/12这条路由,具体存放过程如下:
(1)根据路由prefixlen=12,小于N,所以增加到线性表中;
(2)根据10.0.0.0/12,得到index0=2560,iner=0,以2560为索引查线性表,这时线性表有效,表项中prefixlen=8,这时新增路由prefixlen=12大于8,所以需要更新路由信息,同时设置表项中的prefixlen=12;
(3)iner加1,即iner=1,计算2的(16-12)次幂为16,iner小于16,满足条件,这时需要更新index=index0+iner=2561对应的线性表,同时设置表项中的prefixlen=12;
(4)重复(3)的步骤,直到iner加到16时结束。
具体实例3:
在具体实例1和具体实例2的基础上,增加10.0.0.0/10这条路由,具体存放过程如下:
(1)根据路由prefixlen=10,小于N,所以增加到线性表中;
(2)根据10.0.0.0/10,得到index0=2560,iner=0,以2560为索引查线性表,这时线性表有效,表项中prefixlen=12,这时新增路由prefixlen=10小于12,所以不需要更新路由信息;
(3)iner加1,即inet=1,计算2的(16-10)次幂为64,iner小于64,满足条件,这时检查是否需要更新index=index0+iner=2561对应的线性表,由于表项中的prefix=12,所以不需要更新路由信息;
(4)重复(3)的步骤,直到iner加到16时,index=index0+iner=2576,这时表项中的prefixlen=8,需要更新,直到iner加到64时,才停止更新。
参见图8为具体实例1、2和3增加后的线性表示意图。
具体实例4:
例如:如表10、表11和表12,这里以路由前缀长度为16作为划分界线,小于等于16的,使用线性表存放,大于16的使用TCAM存放,这时线性表需要2的16次方项。
路由前缀 | 下一跳 | |
1 | 10.1.0.0/16 | Port1 |
2 | 11.1.0.0/16 | Port2 |
3 | 12.1.0.0/16 | Port3 |
4 | 10.1.1.0/24 | Port4 |
表10
按以前的表项组织,需要占用4条TCAM表项。
按本发明提供的方案,线性路由存放如表7所示:
线性索引 | 线性部分 | 下一跳 | 有效标志位 |
10*256~10*256+255 | 10.1/16 | Port1 | 1 |
11*256~11*256+255 | 11.1/16 | Port2 | 1 |
12*256~12*256+255 | 12.1/16 | Port3 | 1 |
表11
非线性路由存放如表12所示:
非线性索引 | 非线性部分 | 下一跳 |
1 | 10.1.1.0/24 | Port4 |
表12
非线性路由存放在TCAM表中,占用一条TCAM表项。
只占一条TCAM表项,节省了TCAM的使用,在相同TCAM资源的情况下,能够支持更多的路由存放。
实施例5
参见图5,本发明还提供了一种路由删除方法,本实施例以实施例4为基础。
该方法具体步骤如下:
步骤501:获取删除路由信息,该信息具体包括:路由前缀,前缀长度和替换路由;
步骤502:判断路由前缀长度是否小于等于划分界线长度16,如果小于等于所述划分界线长度16,则进行线性表删除流程(步骤503);否则删除TCAM表中对应的表项(步骤510);
线性表删除概括为:根据所述路由前缀计算线性索引,查在线性表中从所述线性索引对应的表项到所述线性索引加上2的N减去所述路由的前缀长度次幂对应的所有表项;
当在线性表中查到的表项有效,且表项中的路由前缀长度等于删除路由信息中的前缀长度时,用替换转发路由表更新该表项,否则结束删除;
线性表删除具体流程为:
步骤503:根据路由前缀、前缀长度和路由前缀分界长度16,得到线性表索引index0,索引值的计算方法同实施例4,初始化index=index0,iner=0;
步骤504:根据线性索引index读取线性表;
步骤505:判断线性表中index对应的表项是否有效,如果有效,则判断表项中的路由前缀长度是否等于路由前缀长度(步骤506);否则结束删除(步骤511);
步骤506:判断表项中的路由前缀长度是否等于路由前缀长度,如果等于,则进行步骤507;否则iner=iner+1;(步骤508);
步骤507:使用替换转发路由表更新线性表中index对应的表项;
步骤508:iner=iner+1,index=index0+iner;
步骤509:判断iner是否小于2的16减去添加路由的前缀长度次幂,如果是,返回步骤504继续读取线性表,否则结束删除(步骤511);
步骤510:根据路由前缀及前缀长度,查TCAM表,将该路由对应的TCAM表项删除;
步骤511:结束删除。
下面对本实施例作进一步说明,例如:
对于上面添加的路由10.0.0.0/8、10.0.0.0/10和10.0.0.0/12,删除10.0.0.0/10路由如下:
(1)删除10.0.0.0/10路由,这时删除路由信息为:路由前缀长度prefixlen=10,前缀为10.0.0.0/10,替换路由为10.0.0.0/8:
(2)index0=2560,iner=0,以2560为索引查线性表,这时线性表有效,其prefx=12,大于10,这时不需要删除;
iner加1,计算2的(16-10)次幂为64;对于index=2560到2575之间的表项,其prefixlen=12,这时不需要删除;
对于index=2576到2623之间的表项,表项中的prefixlen=10,需要删除这条路由,并添加替换路由10.0.0.0/8;
(3)当index=2623时,iner=64,不满足小于2的(16-10)次幂,即不满足小于64,则结束删除。
当路由的前缀长度大于16,直接删除该路由对应的TCAM表项。
实施例6
参见图6,本发明还提供了一种转发路由的查找方法,本实施例以实施例4为基础,该转发路由的查找方法是应用非线性查找与线性查找的组合技术,对于前缀较长的路由,使用非线性查找,对于前缀较短的路由,使用线性查找。
对同一条路由,只有一个结果有效,根据最长匹配原则,先进行非线性查找,当在非线性表中没有找到对应的路由时,再进行线性查找,这样能够保证查找的结果是最准确的结果。
该转发路由的查找方法具体步骤如下:
步骤601:根据转发报文得到IP地址,先进行非线性表查找(步骤602),当非线性查找没有找到该地址时,再进行线性表查找(步骤605);
TCAM表查找流程如下:
步骤602:根据IP地址查TCAM表;
步骤603:检查TCAM表中非线性部分表项,看是否有该IP地址,如果有,根据TCAM表转发报文(步骤604);否则进行线性表查找转发报文(步骤605);
步骤604:转发报文;
线性表查找流程如下:
步骤605:按分界线前缀长度16计算该IP地址对应的线性表索引index0,因为不同的长度在线性表中都有其对应的位置;
index0为路由前缀对应的十进制数;
步骤606:判断线性表对应表项是否有效,如果有效,根据线性表转发报文(步骤604);否则停止转发报文(步骤607);
步骤607:停止转发报文。
下面对本实施例作进一步说明,例如:
假设10.1.0.0/16、11.1.0.0/16、12.1.0.0/16和10.1.1.0/24已经存在表项中。同时设定对于每条路由,如果前缀长度小于等于16,需要放在线性表中;否则放在TCAM表中。
当查10.1.1.1这个目的IP时,先查TCAM表,发现10.1.1.0/24存在,根据最长匹配原则,则根据TCAM的结果转发数据。当查11.1.1.0这个目的IP时,查TCAM表,没有找到匹配的表项,这时进行线性表的查找,按分界线前缀长度取11.1.1.0的线性表索引11×256+1=2817,得11.1.0.0/16所对应的线性表项,如果该表项有效,则按其转发数据,否则停止转发。
实施例7
参见图7,本发明还提供了一种转发路由表存放的装置,该装置包括:划分模块和路由存放模块:
所述划分模块用于将转发路由表分为非线性表与线性表;
所述路由存放模块用于对路由前缀进行优化划分,将优化划分后的路由前缀在线性表和非线性表中进行存放。
所述路由存放模块具体包括:第一获取路由信息模块、获取优化路由前缀模块、获取非线性索引模块和路由填写模块;
所述第一获取路由信息模块用于获取路由信息,所述路由信息包括路由前缀、前缀长度和路由记录信息;
所述获取优化路由前缀模块用于根据所述路由信息获取优化路由前缀;
所述获取非线性索引模块用于判断所述优化路由前缀是否是非线性表的新增表项,如果是,系统分配一个非线性索引,并记录在所述非线性表中;否则直接从所述非线性表中获取非线性索引;
所述路由填写模块用于根据路由前缀和优化路由前缀长度计算线性部分,并填写在线性表中,更新下一跳地址,同时设置有效标志。
所述路由存放模块还包括:第一获取删除信息模块、获取优化路由前缀模块、判断模块和第一删除模块;
所述第一获取删除信息模块用于获取删除路由信息,所述路由信息包括非线性表表项索引、路由前缀和前缀长度;
所述获取优化路由前缀模块用于根据所述路由信息获取优化路由前缀;
所述判断模块用于根据路由前缀和优化前缀长度计算出线性部分,查找线性表中所述线性部分对应的表项;判断线性表对应的表项是否有效;如果有效,将所述线性表对应项设置为无效;否则结束删除;
所述第一删除模块用于检查所述线性表对应项是否为同组线性表中最后一个有效表项,如果是,根据线性部分表项,删除对应的非线性表项;否则结束删除。
实施例8
参见图9,本发明还提供了一种转发路由表存放的装置,该装置包括:划分模块和路由存放模块,所述划分模块作用同上,所述路由存放模块具体包括:第二获取路由信息模块、线性表更新模块和非线性表更新模块;
所述第二获取路由信息模块用于获取路由信息,所述路由信息包括路由前缀、前缀长度和下一跳地址;
所述线性表更新模块用于所述路由前缀长度小于等于N设定的路由前缀分界长度N;进行线性表的更新;
所述非线性表更新模块用于所述路由前缀长度大于N,进行非线性表更新。
所述路由存放模块还包括:第二获取删除信息模块和第二删除模块;
所述第二获取删除信息模块用于获取删除路由信息,所述路由信息包括:路由前缀、前缀长度和替换路由;
所述第二删除模块用于判断路由前缀长度是否小于等于路由前缀分界长度N,如果小于等于N,则删除线性表的对应表项;否则删除非线性表的对应表项。
实施例9
参见图10,本发明还提供了一种转发路由的查找装置,所述装置包括:获取转发地址模块和转发模块;
所述获取转发地址模块用于根据转发报文,得到所要查找路由的目的IP地址;
所述转发模块用于将非线性查找与线性查找相结合,进行报文转发。
所述转发模块具体包括:查找模块,转发报文模块;
所述查找模块用于查非线性表中是否有与所述IP地址匹配的优化路由前缀,
所述转发报文模块用于当在非线性表中查到所述优化路由前缀,且该表项对应的线性表项有效时,按所查路由进行报文转发;否则停止转发报文。
实施例10
参见图11,本发明还提供了一种转发路由的查找装置,所述装置包括:获取转发地址模块和转发模块;
所述获取转发地址模块作用同上;
所述转发模块具体包括:非线性转发模块和线性转发模块;
所述非线性转发单元用于根据所述目的IP地址查非线性表中是否有匹配的路由前缀,如果有,根据非线性表索引,查路由表转发报文;否则进行线性表查找转发报文;
所述线性转发单元用于按路由前缀分界长度N计算该IP地址对应的线性索引;判断线性表中所述线性索引对应表项是否有效,如果有效,根据线性索引,查路由表转发报文;否则路由停止转发报文。
以上所述的实施例,只是本发明较优选的具体实施方式的一种,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换,都应包含在本发明的保护范围内。
Claims (22)
1.一种转发路由表存放的方法,其特征在于,所述方法包括以下步骤:
将转发路由表分为非线性表与线性表,对路由前缀进行优化划分,将优化划分后的路由前缀在线性表和非线性表中进行存放。
2.如权利要求1所述的一种转发路由表存放的方法,其特征在于,所述方法具体包括以下步骤:
步骤A:获取路由信息,所述路由信息包括路由前缀、前缀长度和路由记录信息;
步骤B:根据所述路由信息获取优化路由前缀;
步骤C:判断所述优化路由前缀是否是非线性表的新增表项,如果是,系统分配一个非线性索引,并记录在所述非线性表中;否则直接从所述路由记录信息中获取非线性索引;
步骤D:根据路由前缀和优化路由前缀长度计算线性部分,并填写在线性表中,更新下一跳地址,同时设置有效标志。
3.如权利要求2所述的一种转发路由表存放的方法,其特征在于,所述方法还包括以下步骤:
步骤E:获取删除路由信息,所述路由信息包括非线性表表项索引、路由前缀和前缀长度;
步骤F:根据所述路由信息获取优化路由前缀;
步骤G:根据路由前缀和优化路由前缀长度计算出线性部分,在线性表中查找所述线性部分对应的表项;判断线性表对应的表项是否有效,如果有效,将所述线性表对应项设置为无效;否则结束删除;
步骤H:检查所述线性表对应项是否为同组线性表中最后一个有效表项,如果是,根据线性部分表项,删除对应的非线性表项;否则结束删除。
4.如权利要求2或3所述的一种转发路由表存放的方法,其特征在于,所述根据路由信息获取优化路由前缀的步骤具体包括:对每条路由前缀采用减少相同的位得到优化路由前缀。
5.如权利要求1所述的一种转发路由表存放的方法,其特征在于,所述方法具体包括以下步骤:
步骤A′:获取路由信息,所述路由信息包括路由前缀、前缀长度和下一跳地址;
步骤B′:根据设定的路由前缀分界长度N,判断所述路由前缀长度是否小于等于N;
步骤C′:如果路由前缀长度小于等于N,进行线性表的更新;
步骤D′:如果所述路由前缀长度大于N,进行非线性表更新。
6.如权利要求5所述的一种转发路由表存放方法,其特征在于,所述步骤C具体包括以下步骤:
步骤C1′:根据所述路由前缀计算线性索引,在线性表中查找路由前缀相同的表项;
步骤C2′:对于在线性表中查到的有效表项,当表项中的路由前缀长度小于等于获取的路由前缀长度时,用获取的路由信息更新该表项;否则保留表项中原有的路由信息;
步骤C3′:对于在线性表中查到的无效表项,直接用获取的路由信息更新该表项。
7.如权利要求5所述的一种转发路由表存放方法,其特征在于,所述步骤D具体包括以下步骤:
步骤D1:根据非线性表记录信息,判断所述路由前缀是否是所述非线性表的新增表项,如果是,系统分配一个非线性索引,并记录在所述非线性表中;否则直接从所述非线性表中获取非线性索引;
步骤D2:根据非线性索引对应的非线性表项,直接用获取的路由信息更新该表项。
8.如权利要求5或6或7所述的一种转发路由表存放方法,其特征在于,所述方法还包括以下步骤:
步骤E′:获得删除路由信息,所述路由信息包括:路由前缀、前缀长度和替换路由;
步骤F′:判断路由前缀长度是否小于等于路由前缀分界长度N,如果小于等于N,则删除线性表的对应表项;否则删除非线性表的对应表项;
步骤G′:结束删除。
9.如权利要求8所述的一种转发路由表存放方法,其特征在于,所述步骤F′中的删除线性表的对应表项具体包括以下步骤:
步骤F1′:根据所述路由前缀计算线性索引,在线性表中查找路由前缀相同的表项;
步骤F2′:当线性表中查到的表项有效,且表项中的路由前缀长度等于删除路由信息中的前缀长度时,用替换转发路由表更新该表项;否则结束删除。
10.一种转发路由的查找方法,其特征在于,所述方法包括以下步骤:
根据转发报文,得到所要查找路由的目的IP地址,将非线性查找与线性查找相结合,进行报文转发。
11.如权利要求10所述一种转发路由的查找方法,其特征在于,所述方法具体包括以下步骤:
步骤A″:根据转发报文,得到所要查找路由的目的IP地址;
步骤B″:在非线性表中查找是否有与所述IP地址匹配的优化路由前缀,如果有,执行步骤C″;如果没有,路由停止转发报文;
步骤C″:根据查到的优化路由前缀,计算所述IP地址的线性部分,根据线性部分在线性表查找相应的表项;
步骤D″:判断线性表对应项是否有效,如果有效,根据线性表中对应项得到路由表索引,查路由表进行报文转发;否则路由停止转发报文。
12.如权利要求10所述一种转发路由的查找方法,其特征在于,所述方法具体包括以下步骤:
根据转发报文得到目的IP地址,先进行非线性表查找,当非线性表查找失败时,再进行线性表查找,然后根据查找结果进行报文转发。
13.如权利要求12所述一种转发路由的查找方法,其特征在于,所述方法中的非线性表查找具体包括以下步骤:
根据所述目的IP地址查非线性表中是否有匹配的路由前缀,如果有,根据非线性表索引,查路由表转发报文;否则进行线性表查找转发报文。
14.如权利要求12所述一种转发路由的查找方法,其特征在于,所述方法中的线性表查找具体包括以下步骤:
步骤A:按路由前缀分界长度N计算该IP地址对应的线性索引;
步骤B:判断线性表中所述线性索引对应表项是否有效,如果有效,根据线性索引,查路由表转发报文;否则路由停止转发报文。
15.一种转发路由表存放的装置,其特征在于,所述装置包括:划分模块和路由存放模块:
所述划分模块用于将转发路由表分为非线性表与线性表;
所述路由存放模块用于对路由前缀进行优化划分,将优化划分后的路由前缀在线性表和非线性表中进行存放。
16.如权利要求15所述的一种转发路由表存放的装置,其特征在于,所述路由存放模块具体包括:第一获取路由信息模块、获取优化路由前缀模块、获取非线性索引模块和路由填写模块;
所述第一获取路由信息模块用于获取路由信息,所述路由信息包括路由前缀、前缀长度和路由记录信息;
所述获取优化路由前缀模块用于根据所述路由信息获取优化路由前缀;
所述获取非线性索引模块用于判断所述优化路由前缀是否是非线性表的新增表项,如果是,系统分配一个非线性索引,并记录在所述非线性表中;否则直接从所述非线性表中获取非线性索引;
所述路由填写模块用于根据路由前缀和优化路由前缀长度计算线性部分,并填写在线性表中,更新下一跳地址,同时设置有效标志。
17.如权利要求16所述的一种转发路由表存放的装置,其特征在于,所述路由存放模块还包括:第一获取删除信息模块、获取优化路由前缀模块、判断模块和第一删除模块;
所述第一获取删除信息模块用于获取删除路由信息,所述路由信息包括非线性表表项索引、路由前缀和前缀长度;
所述获取优化路由前缀模块用于根据所述路由信息获取优化路由前缀;
所述判断模块用于根据路由前缀和优化前缀长度计算出线性部分,查找线性表中所述线性部分对应的表项;判断线性表对应的表项是否有效;如果有效,将所述线性表对应项设置为无效;否则结束删除;
所述第一删除模块用于检查所述线性表对应项是否为同组线性表中最后一个有效表项,如果是,根据线性部分表项,删除对应的非线性表项;否则结束删除。
18.如权利要求15所述的一种转发路由表存放的装置,其特征在于,所述路由存放模块具体包括:第二获取路由信息模块、线性表更新模块和非线性表更新模块;
所述第二获取路由信息模块用于获取路由信息,所述路由信息包括路由前缀、前缀长度和下一跳地址;
所述线性表更新模块用于所述路由前缀长度小于等于N设定的路由前缀分界长度N;进行线性表的更新;
所述非线性表更新模块用于所述路由前缀长度大于N,进行非线性表更新。
19.如权利要求18所述的一种转发路由表存放的装置,其特征在于,所述路由存放模块还包括:第二获取删除信息模块和第二删除模块;
所述第二获取删除信息模块用于获取删除路由信息,所述路由信息包括:路由前缀、前缀长度和替换路由;
所述第二删除模块用于判断路由前缀长度是否小于等于路由前缀分界长度N,如果小于等于N,则删除线性表的对应表项;否则删除非线性表的对应表项。
20.一种转发路由的查找装置,其特征在于,所述装置包括:获取转发地址模块和转发模块;
所述获取转发地址模块用于根据转发报文,得到所要查找路由的目的IP地址;
所述转发模块用于将非线性查找与线性查找相结合,进行报文转发。
21.如权利要求20所述一种转发路由的查找装置,其特征在于,所述转发模块具体包括:查找模块,转发报文模块;
所述查找模块用于查非线性表中是否有与所述IP地址匹配的优化路由前缀,
所述转发报文模块用于当在非线性表中查到所述优化路由前缀,且该表项对应的线性表项有效时,按所查路由进行报文转发;否则停止转发报文。
22.如权利要求20所述一种转发路由的查找装置,其特征在于,所述装置的转发模块具体包括:非线性转发模块和线性转发模块;
所述非线性转发单元用于根据所述目的IP地址查非线性表中是否有匹配的路由前缀,如果有,根据非线性表索引,查路由表转发报文;否则进行线性表查找转发报文;
所述线性转发单元用于按路由前缀分界长度N计算该IP地址对应的线性索引;判断线性表中所述线性索引对应表项是否有效,如果有效,根据线性索引,查路由表转发报文;否则路由停止转发报文。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100832304A CN100461698C (zh) | 2006-05-31 | 2006-05-31 | 一种转发路由表存放的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100832304A CN100461698C (zh) | 2006-05-31 | 2006-05-31 | 一种转发路由表存放的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1983976A true CN1983976A (zh) | 2007-06-20 |
CN100461698C CN100461698C (zh) | 2009-02-11 |
Family
ID=38166231
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006100832304A Expired - Fee Related CN100461698C (zh) | 2006-05-31 | 2006-05-31 | 一种转发路由表存放的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100461698C (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101146038B (zh) * | 2007-10-16 | 2010-08-04 | 华为技术有限公司 | 遍历树表表项的方法及装置 |
CN101478488B (zh) * | 2009-02-13 | 2013-06-05 | 华为技术有限公司 | 报文转发方法、转发引擎芯片和路由设备 |
WO2014100981A1 (zh) * | 2012-12-25 | 2014-07-03 | 华为技术有限公司 | 查找表的创建方法、查询方法、控制器、转发设备和系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1216473C (zh) * | 2003-03-28 | 2005-08-24 | 清华大学 | 支持多个下一跳的三态内容可寻址存储器查找方法及系统 |
CN1191520C (zh) * | 2003-04-04 | 2005-03-02 | 清华大学 | 支持路由压缩的tcam高速更新方法 |
CN1279716C (zh) * | 2003-09-26 | 2006-10-11 | 清华大学 | 消除最长前缀匹配查找的并行路由查找方法及其系统 |
US7330429B2 (en) * | 2004-10-27 | 2008-02-12 | Rockwell Electronic Commerce Technologies, Inc. | Method and apparatus for internet protocol transaction routing |
-
2006
- 2006-05-31 CN CNB2006100832304A patent/CN100461698C/zh not_active Expired - Fee Related
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101146038B (zh) * | 2007-10-16 | 2010-08-04 | 华为技术有限公司 | 遍历树表表项的方法及装置 |
CN101478488B (zh) * | 2009-02-13 | 2013-06-05 | 华为技术有限公司 | 报文转发方法、转发引擎芯片和路由设备 |
WO2014100981A1 (zh) * | 2012-12-25 | 2014-07-03 | 华为技术有限公司 | 查找表的创建方法、查询方法、控制器、转发设备和系统 |
US9705795B2 (en) | 2012-12-25 | 2017-07-11 | Huawei Technologies Co., Ltd. | Look-up table creation method and query method, controller, forwarding device, and system |
US10243852B2 (en) | 2012-12-25 | 2019-03-26 | Huawei Technologies Co., Ltd. | Look-up table creation method and query method, controller, forwarding device, and system |
Also Published As
Publication number | Publication date |
---|---|
CN100461698C (zh) | 2009-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105450780B (zh) | 一种cdn系统及其回源方法 | |
CN105224609B (zh) | 一种索引查询方法及装置 | |
CN102739720B (zh) | 分布式缓存服务器系统及其应用方法、缓存客户端 | |
CN102523285B (zh) | 一种基于对象分布式文件系统的存储缓存方法 | |
CN102971732B (zh) | 键/值存储器的集成分级查询处理的系统结构 | |
CN101047610B (zh) | 数据存储、读取、传输方法和管理服务器及网络节点 | |
CN104113735B (zh) | 一种分布式视频监控存储系统及其方法 | |
CN101626563B (zh) | 一种通信网络中的数据存储系统及信息处理方法 | |
CN104811493B (zh) | 一种网络感知的虚拟机镜像存储系统及读写请求处理方法 | |
CN110069419A (zh) | 多级缓存系统及其访问控制方法、设备和存储介质 | |
CN104115472A (zh) | 用于内容导向网络中可扩展路由的方法 | |
CN103560959B (zh) | 一种选择静态路由的方法及装置 | |
CN101335706B (zh) | 对路由表进行空间管理的方法、装置、交换机及路由器 | |
CN101656765A (zh) | 身份位置分离网络的名址映射系统及数据传输方法 | |
CN103957282B (zh) | 一种域内终端用户域名解析加速系统及其方法 | |
CN109344122B (zh) | 一种基于文件预创策略的分布式元数据管理方法及系统 | |
CN104426770A (zh) | 路由查找方法及装置、B-Tree树结构的构建方法 | |
CN105159845A (zh) | 存储器读取方法 | |
CN105635196A (zh) | 一种获取文件数据的方法、系统和应用服务器 | |
CN102438020A (zh) | 内容分发网络中内容分发的方法、设备和网络系统 | |
CN104111924A (zh) | 一种数据库系统 | |
CN103095587B (zh) | 一种注册服务的方法,网络族群中心控制节点和系统 | |
CN103336782A (zh) | 一种关系型分布式数据库系统 | |
CN100461698C (zh) | 一种转发路由表存放的方法及装置 | |
CN101399765A (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090211 Termination date: 20160531 |