[go: up one dir, main page]

CN1319347C - 路由方法和路由系统 - Google Patents

路由方法和路由系统 Download PDF

Info

Publication number
CN1319347C
CN1319347C CNB021466289A CN02146628A CN1319347C CN 1319347 C CN1319347 C CN 1319347C CN B021466289 A CNB021466289 A CN B021466289A CN 02146628 A CN02146628 A CN 02146628A CN 1319347 C CN1319347 C CN 1319347C
Authority
CN
China
Prior art keywords
routing
bits
prefix
destination address
data
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
CNB021466289A
Other languages
English (en)
Other versions
CN1494276A (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.)
Accton Technology Corp
Original Assignee
Accton Technology Corp
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 Accton Technology Corp filed Critical Accton Technology Corp
Priority to CNB021466289A priority Critical patent/CN1319347C/zh
Publication of CN1494276A publication Critical patent/CN1494276A/zh
Application granted granted Critical
Publication of CN1319347C publication Critical patent/CN1319347C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

一种路由方法,其包括下列步骤。首先,选择m个路由前缀长度,分别为L1、L2、L3、…、Lm比特,其中m、L1~Lm为正整数且L1<L2<…<Lm。接着,路由系统将路由前缀依其长度分为m个群组,以建立对应的第一~第m路由表,并维持第一路由表的一高速缓存路由表。当接收一Lm比特的目的端地址的网络数据包,依据此地址的前L1比特在该高速缓存路由表中寻找相等同的路由前缀;同时,在第i路由表中寻找与此地址的前Li比特相等同的路由前缀,其中i为正整数且2≤i≤m。并于上述搜寻比对出的等相符合的路由前缀中,选出具最大比特长度者,并取其对应的路由数据将网络数据包传出。

Description

路由方法和路由系统
技术领域
本发明有关于一种路由方法和路由系统,特别有关一种路由前缀高速缓存的具体实现方案,其利用多个不同但固定长度的路由前缀路由表,以增加路由高速缓存器(Cache Memory)效能,并加快网络设备寻径速度的方法和装置。
背景技术
国际互联网(Internet)已明显地影响了人类的生活,各式网络应用亦正蓬勃地被发展当中,因此需要更高品质的网络传输能力,例如:具有较大吞吐量(Throughput)及较短的延迟(Delay)等。然而在网络设备传送网络数据包的过程中,路由查询(Routing-Lookup)是最耗时的部份,路由系统必须为每一个接收到的网络互连协议(Internet Protocol,下文简称IP)数据包,在其路由表中寻找IP数据包中目的端地址的“最长符合的路由前缀”(Longest Matching Prefix),再依照相对应的路由数据递送该数据包,但这个程序却相当耗时。
为解决上述的问题,一种高速缓存路由前缀(Routing Prefix)的路由方法被提出。由于一个路由前缀可以解答此路由前缀所对应的多个目的端地址的路由查询,因此若以路由高速缓存器高速缓存路由前缀,而非高速缓存目的端地址的路由结果(Routing Result),等同大小的路由高速缓存器便能解答较多的路由查询,而此方法则称为路由前缀高速缓存(Prefix Caching)。由于路由前缀高速缓存所需的储存单元的数目较一般目的端地址高速缓存(Destination Caching)为少,所以实作路由前缀高速缓存的路由高速缓存器可具有较佳的利用率(Utilization),而加快网络设备路由查询的速度。
然而对于每一个目的端地址而言,皆仅有一“最长符合的路由前缀”,而其对应的路由数据才是该目的端地址正确的传送路径。因此,若有多个路由前缀涵盖同一目的端地址,则须找出其“最长符合的路由前缀”以获得正确的路由结果。为此,路由前缀高速缓存必须再加上找出“最长符合的路由前缀”的机制。
发明内容
有鉴于此,本发明的主要目的在于提出一种新的路由方法,在采用复数路由高速缓存器,但各路由高速缓存器皆只需储存某一选定比特长度的路由前缀的设计下,实作路由前缀高速缓存。而由于各路由高速缓存器皆只需储存某一选定比特长度的路由前缀,故各路由高速缓存器可选用一般的二进制内容寻址储存器(Binary ContentAddressable Memory)。
本发明的另一目的在于提出一种新的路由系统,其具有复数路由高速缓存器,利用上述新的路由方法及一高速缓存更新方法,以实作路由前缀高速缓存,藉此提高路由高速缓存器的利用率,而加快网络设备路由查询的速度。
为达成上述目的,本发明提供一种路由方法,其用于一路由系统中,其包括下列步骤。首先,选择m个路由前缀长度,分别为L1比特、L2比特、L3比特、…、Lm比特,其中m、L1、L2、L3、…、Lm为正整数且L1<L2<L3<…<Lm。接着,将该路由系统所应处理之复数路由前缀,依其路由前缀长度分为m个群组,分别为0~L1比特、L1+1~L2比特、L2+1~L3比特、…、Lm-1+1~Lm比特,并分别建立对应的第1~第m路由表;其中,当所应处理的一路由前缀的路由前缀长度为j比特,且介于(Li-1+1)~Li比特,而属于第i群组时,使用一扩展模块将该路由前缀扩展为2Li-j个Li比特的路由前缀,并将此扩展后的路由前缀与其对应的路由数据,储入该第i路由表,其中i与j为正整数且2≤i≤m,L1+1≤j≤Lm。此外,该路由系统并同时维持一高速缓存路由表,该高速缓存路由表储存复数路由前缀长度为L1比特的路由前缀及其所对应的复数路由数据。
而在接收一Lm比特的目的端地址的网络数据包,依据该目的端地址的前L1比特在该高速缓存路由表中寻找和该目的端地址的前L1比特相同的路由前缀;同时依据该目的端地址的前L2比特在该第二路由表中寻找和该目的端地址的前L2比特相同的路由前缀;依此类推,同时依据该目的端地址的所有Lm比特在该第m路由表中寻找和该目的端地址的所有Lm比特相同的路由前缀。而于上述搜寻比对中有一至多个相符合的路由前缀时,则由该等相符合的路由前缀中选出具最大比特长度者,并取出其所对应的路由数据,并依据该路由数据将该网络数据包传出。而于上述搜寻比对中无任何一个相符合的路由前缀时,在该第一路由表中搜寻并取出该目的端地址的前L1比特所对应的路由数据,并依据该路由数据将该网络数据包传出,并将该目的端地址的前L1比特以及该路由数据,交由该高速缓存路由表储存。或者,于上述搜寻比对中无任何一个相符合的路由前缀时,在一全路由表中搜寻并取出该目的端地址所对应的路由数据,并依据该路由数据,将该网络数据包传出,并将该目的端地址的前L1比特以及该路由数据,交由该高速缓存路由表储存。其中该全路由表储存所有该路由系统所应处理的复数路由前缀及所对应的复数路由数据。
配合上述路由方法,本发明另外提出一种路由系统,其包括一第一路由装置及一第二路由装置。该第一路由装置包括一接收单元、路由前缀长度处理器、复数路由高速缓存器、一扩展模块及一选择传送单元。第二路由装置包括一第一路由表或一全路由表。
附图说明
图1表示本发明实施例中建立路由表的处理过程的示意图。
图2表示本发明实施例的路由方法的处理过程的示意图。
图3表示本发明实施例中对于无法在路由高速缓存器中找到该目的端地址所对应的路由数据时的处理过程的示意图。
图4表示本发明实施例的路由系统一范例的方框图。
图5表示本发明实施例的路由系统另一范例的方框图。
{Ad}~路由前缀;
20~目的端地址;80、480、580~高速缓存路由表;
50、450~第一路由表;60、460、560~第二路由表;
70、470、570~第三路由表;550~全路由表;
22、404、504~选择传送单元;
R1、R2、R3、R4、Rcache~搜寻结果;
10、408、508~路由前缀长度处理器;
12a、12b、410、510~扩展模块;
406a、406b、406c、506a、506b、506c~二进制内容寻址储存器;
400a、400b、500a、500b~路由器;402、502~接收单元。
具体实施方式
本发明所揭露的路由高速缓存器,主要用于网络设备的路由技术,所以称作路由高速缓存器(routing cache),以有别于一般用于计算机技术的高速缓存器(Memory Cache)。以下配合图式,详细说明本发明的最佳实施例。
图1表示本发明实施例中建立路由表的处理过程的示意图。在此实施例中,选择3个路由前缀长度分别24、28以及32比特,并分别建立第一路由表50、第二路由表60以及第三路由表70。首先,将该路由系统应处理的复数路由前缀{Ad}送入路由前缀长度处理器10,路由前缀长度处理器10则依照路由前缀{Ad}的比特长度进行分组。
当路由前缀{Ad}的长度为0~24比特时,将路由前缀{Ad}及其路由数据储入路由系统中的第一路由表50。当路由前缀{Ad}的长度为25~28比特时,经由扩展模块12a将路由前缀{Ad}依下列规则扩展为1至8个长度为28比特的路由前缀:当路由前缀{Ad}的长度为25比特时,于路由前缀{Ad}尾端分别附加8个长度为3比特的样式,分别为000、001、010、011、100、101、110及111,而成为8个长度为28比特的路由前缀;当路由前缀{Ad}的长度为26比特时,于路由前缀{Ad}尾端分别附加4个长度为2比特的样式,分别为00、01、10及11,而成为4个长度为28比特的路由前缀;当路由前缀{Ad}的长度为27比特时,于路由前缀{Ad}尾端分别附加2个长度为1比特的样式,分别为0及1,而成为2个长度为28比特的路由前缀;当路由前缀{Ad}的长度为28比特时,则无需进行附加动作,直接输出该路由前缀{Ad}。并将扩展模块12a输出的长度皆为28比特的路由前缀及路由前缀{Ad}的路由数据,储入第二路由表60。
而当路由前缀{Ad}的长度为29~32比特时,经由扩展模块12b将路由前缀{Ad}依下列规则扩展为1至8个长度为32比特的路由前缀:当路由前缀{Ad}的长度为29比特时,于路由前缀{Ad}尾端分别附加8个长度为3比特的样式,分别为000、001、010、011、100、101、110及111,而成为8个长度为32比特的路由前缀;当路由前缀{Ad}的长度为30比特时,于路由前缀{Ad}尾端分别附加4个长度为2比特的样式,分别为00、01、10及11,而成为4个长度为32比特的路由前缀;当路由前缀{Ad}的长度为31比特时,于路由前缀{Ad}尾端分别附加2个长度为1比特的样式,分别为0及1,而成为2个长度为32比特的路由前缀;当路由前缀{Ad}的长度为32比特时,无需进行附加动作,直接输出该路由前缀{Ad}。并将扩展模块12b输出的长度皆为32比特的路由前缀及路由前缀{Ad}的路由数据,储入第三路由表70。
图2表示本发明实施例的路由方法的处理过程的示意图。首先,依照图1的处理流程建立第一路由表50(图中未显示)、第二路由表60及第三路由表70,并维持一高速缓存路由表80。高速缓存路由表80储存复数24比特的路由前缀及对应的路由数据。高速缓存路由表80采用一路由高速缓存器,且该路由高速缓存器采用一更新算法(Algorithm)以更新高速缓存路由表80,而该更新算法可为最久不使用(Least-Recently-Used,LRU)、随机(Random)或先入先出(First-In-First-Out,FIFO)等算法。第二路由表60和第三路由表70亦分别采用路由高速缓存器,但此二路由高速缓存器不采用更新算法,而分别仅能为前述图1的扩展模块12a与12b所更新。
接着,当路由系统接收一网络数据包,而该网络数据包的目的端地址20为32比特时,分别将该目的端地址20的前24比特、前28比特及所有32比特,分别送至高速缓存路由表80、第二路由表60及第三路由表70以进行搜寻。当在高速缓存路由表80中找到与该目的端地址20的前24比特相同的路由前缀时,输出该路由前缀所对应的路由数据R1;而当在高速缓存路由表80中找不到与该目的端地址20的前24比特相同的路由前缀时,不输出搜寻结果。当在第二路由表60中找到与该目的端地址20的前28比特相同的路由前缀时,输出该路由前缀所对应的路由数据R2;而当在第二路由表60中找不到与该目的端地址20的前28比特相同的路由前缀时,不输出搜寻结果。当在第三路由表70中找到与该目的端地址20所有32比特相同的路由前缀时,输出该路由前缀所对应的路由数据R3;而当在第三路由表70中找不到与该目的端地址20所有32比特相同的路由前缀时,不输出搜寻结果。
接着,将高速缓存路由表80、第二路由表60以及第三路由表70的搜寻结果,由选择传送单元22依照:第三路由表70优先、第二路由表60其次、高速缓存路由表80最后的顺序,选出该目的端地址的“最长符合的路由前缀”的路由数据Rcache,并依据该路由数据Rcache将该网络数据包传出。如果在高速缓存路由表80、第二路由表60及第三路由表70中,皆无法找到该目的端地址20所对应的路由数据时,亦即皆没有输出搜寻结果时,那么在该路由系统的第一路由表50中,搜寻该目的端地址20所对应的路由数据(参阅图3的说明)。
图3表示本发明实施例中,当在高速缓存路由表80、第二路由表60及第三路由表70中,皆无法找到该目的端地址20所对应的路由数据时,其处理过程的示意图。当在图2中的高速缓存路由表80、第二路由表60及第三路由表70皆没有输出搜寻结果时,将该目的端地址20的前24比特送至该路由系统的第一路由表50。由于第一路由表50储存了路由前缀长度为0~24比特间的复数路由前缀及其对应的路由数据,因此在第一路由表50中搜寻该目的端地址20的前24比特,一定可找到对应于该目的端地址20的前24比特的“最长符合的路由前缀”,并输出该路由前缀所对应的路由数据R4。并依据该路由数据R4将该网络数据包传出(图中未显示)。并将该目的端地址20的前24比特与路由数据R4送至高速缓存路由表80,而由高速缓存路由表80所采用的路由高速缓存器的更新算法决定是否应储存此笔数据,而该更新算法可为最久不使用、随机或先入先出等算法。
若该路由系统有一全路由表(未显示于图1中),而该全路由表储存了路由前缀长度为0~32比特间(亦即所有的路由前缀长度)所有路由前缀及其对应的路由数据,则在图2中,当在高速缓存路由表80、第二路由表60及第三路由表70中,皆无法找到该目的端地址20所对应的路由数据时,亦可将目的端地址20的所有32比特送至此全路由表(此部份并未在此实施例中以图标说明)。由于此全路由表储存了路由前缀长度为0~32比特间的所有路由前缀及其对应的路由数据,因此在此全路由表中搜寻该目的端地址20的所有32比特,一定可找到对应于该目的端地址20的所有32比特的“最长符合的路由前缀”,并输出该路由前缀所对应的路由数据。并依据该路由数据将该网络数据包传出。并将该目的端地址20的前24比特与该路由数据送至高速缓存路由表80,而由高速缓存路由表80所采用的路由高速缓存器的更新算法决定是否应储存此笔数据。
图4表示本发明实施例的路由系统一范例的方框图。如图所示,路由系统在此实施例中包括第一路由器400a以及第二路由器400b;第一路由器400a包括接收单元402、选择传送单元404、路由高速缓存器406a~406c、路由前缀长度处理器408以及扩展模块410;第二路由器400b包括第一路由表450。
在此实施例中,路由高速缓存器406a~406c为二进制内容寻址储存器(Binary Content Addressable Memory),且在二进制内容寻址储存器406a中存有第二路由表460,在二进制内容寻址储存器406b中存有第三路由表470,在二进制内容寻址储存器406c中存有高速缓存路由表480。二进制内容寻址储存器406c采用一更新算法以更新高速缓存路由表480中储存的数据,该更新算法可为最久不使用、随机、先入先出等更新算法。但第二路由表460和第三路由表470仅由路由前缀长度处理器408与扩展模块410建立于二进制内容寻址储存器406a和406b中,而二进制内容寻址储存器406a和406b不决定是否更新第二路由表460和第三路由表470。
路由前缀长度处理器408则依照路由前缀{Ad}的比特长度进行分组。当路由前缀{Ad}的长度为0~24比特时,将路由前缀{Ad}及其路由数据储入该路由系统的第一路由表450。当路由前缀{Ad}的长度为25~28比特时,经由扩展模块410将路由前缀{Ad}依下列规则扩展为1至8个长度为28比特的路由前缀:当路由前缀{Ad}的长度为25比特时,于路由前缀{Ad}尾端分别附加8个长度为3比特的样式,分别为000、001、010、011、100、101、110及111,而成为8个长度为28比特的路由前缀;当路由前缀{Ad}的长度为26比特时,于路由前缀{Ad}尾端分别附加4个长度为2比特的样式,分别为00、01、10及11,而成为4个长度为28比特的路由前缀;当路由前缀{Ad}的长度为27比特时,于路由前缀{Ad}尾端分别附加2个长度为1比特的样式,分别为0及1,而成为2个长度为28比特的路由前缀;当路由前缀{Ad}的长度为28比特时,则无需进行附加动作,直接输出该路由前缀{Ad}。并将扩展模块410输出的长度皆为28比特的路由前缀及路由前缀{Ad}的路由数据,储入第二路由表460。
而当路由前缀{Ad}的长度为29~32比特时,经由扩展模块410将路由前缀{Ad}依下列规则扩展为1至8个长度为32比特的路由前缀:当路由前缀{Ad}的长度为29比特时,于路由前缀{Ad}尾端分别附加8个长度为3比特的样式,分别为000、001、010、011、100、101、110及111,而成为8个长度为32比特的路由前缀;当路由前缀{Ad}的长度为30比特时,于路由前缀{Ad}尾端分别附加4个长度为2比特的样式,分别为00、01、10及11,而成为4个长度为32比特的路由前缀;当路由前缀{Ad}的长度为31比特时,于路由前缀{Ad}尾端分别附加2个长度为1比特的样式,分别为0及1,而成为2个长度为32比特的路由前缀;当路由前缀{Ad}的长度为32比特时,无需进行附加动作,直接输出该路由前缀{Ad}。并将扩展模块410输出的长度皆为32比特的路由前缀及路由前缀{Ad}的路由数据,储入第三路由表470。
接收单元402接收具有32比特的目的端地址的IP数据包,并将IP数据包的目的端地址送入二进制内容寻址储存器406a~406c中。而在二进制内容寻址储存器406a~406c中,分别依据该目的端地址的前24比特、前28比特和所有32比特,分别在高速缓存路由表480、第二路由表460以及第三路由表470中查询。
选择传送单元404耦接至二进制内容寻址储存器406a~406c,依据在高速缓存路由表480、第二路由表460以及第三路由表470输出的搜寻结果,由选择传送单元404依照:第三路由表470优先、第二路由表460其次、高速缓存路由表480最后的顺序,选出对应该目的端地址的“最长符合的路由前缀”的路由数据,并依据该路由数据将该网络数据包传出。
当在高速缓存路由表480、第二路由表460及第三路由表470皆无法找到对应该目的端地址的“最长符合的路由前缀”的路由数据时,亦即皆没有输出搜寻结果时,在该路由系统的第一路由表450中,搜寻对应该目的端地址的“最长符合的路由前缀”的路由数据。该路由系统将该目的端地址的前24比特送至第一路由表450,而在第一路由表450中搜寻该目的端地址的前24比特所对应的路由数据,并依据搜寻到的路由数据将该IP数据包传出。并将该目的端地址的前24比特与该路由数据,送至高速缓存路由表480,而由高速缓存路由表480所采用的路由高速缓存器的更新算法决定是否应储存此笔数据,该更新算法可为最久不使用、随机或先入先出等算法。
图5表示本发明实施例的路由系统另一范例的方框图。如图所示,路由系统在此实施例中包括第一路由器500a以及第二路由器500b;第一路由器500a包括接收单元502、选择传送单元504、路由高速缓存器506a~506c、路由前缀长度处理器508以及扩展模块510;第二路由器500b包括全路由表550。
在此实施例中,路由高速缓存器506a~506c为二进制内容寻址储存器,且在二进制内容寻址储存器506a中存有第二路由表560,在二进制内容寻址储存器506b中存有第三路由表570,在二进制内容寻址储存器506c中存有高速缓存路由表580。
二进制内容寻址储存器506c采用一更新算法以更新高速缓存路由表580中储存的数据,该更新算法可为最久不使用、随机、先入先出等更新算法。但第二路由表560和第三路由表570仅由路由前缀长度处理器508与扩展模块510建立于二进制内容寻址储存器506a和506b中,而二进制内容寻址储存器506a和506b并不决定是否更新第二路由表560和第三路由表570。
全路由表550用以储存路由前缀长度为0~32比特间(亦即所有路由前缀长度)的所有路由前缀及其对应的路由数据。路由前缀长度处理器508则依照路由前缀{Ad}的比特长度进行分组。当路由前缀{Ad}的长度为0~32比特时,将路由前缀{Ad}及其路由数据储入该路由系统的全路由表550。当路由前缀{Ad}的长度为25~28比特时,经由扩展模块510将路由前缀{Ad}依下列规则扩展为1至8个长度为28比特的路由前缀:当路由前缀{Ad}的长度为25比特时,于路由前缀{Ad}尾端分别附加8个长度为3比特的样式,分别为000、001、010、011、100、101、110及111,而成为8个长度为28比特的路由前缀;当路由前缀{Ad}的长度为26比特时,于路由前缀{Ad}尾端分别附加4个长度为2比特的样式,分别为00、01、10及11,而成为4个长度为28比特的路由前缀;当路由前缀{Ad}的长度为27比特时,于路由前缀{Ad}尾端分别附加2个长度为1比特的样式,分别为0及1,而成为2个长度为28比特的路由前缀;当路由前缀{Ad}的长度为28比特时,则无需进行附加动作,直接输出该路由前缀{Ad}。并将扩展模块510输出的长度皆为28比特的路由前缀及路由前缀{Ad}的路由数据,储入第二路由表560。
而当路由前缀{Ad}的长度为29~32比特时,经由扩展模块510将路由前缀{Ad}依下列规则扩展为1至8个长度为32比特的路由前缀:当路由前缀{Ad}的长度为29比特时,于路由前缀{Ad}尾端分别附加8个长度为3比特的样式,分别为000、001、010、011、100、101、110及111,而成为8个长度为32比特的路由前缀;当路由前缀{Ad}的长度为30比特时,于路由前缀{Ad}尾端分别附加4个长度为2比特的样式,分别为00、01、10及11,而成为4个长度为32比特的路由前缀;当路由前缀{Ad}的长度为31比特时,于路由前缀{Ad}尾端分别附加2个长度为1比特的样式,分别为0及1,而成为2个长度为32比特的路由前缀;当路由前缀{Ad}的长度为32比特时,无需进行附加动作,直接输出该路由前缀{Ad}。并将扩展模块510输出的长度皆为32比特的路由前缀及路由前缀{Ad}的路由数据,储入第三路由表570。
接收单元502接收具有32比特的目的端地址的IP数据包,并将IP数据包的目的端地址送入二进制内容寻址储存器506a~506c中。而在二进制内容寻址储存器506a~506c中,分别依据该目的端地址的前24比特、前28比特和所有32比特,分别在高速缓存路由表580、第二路由表560以及第三路由表570中查询。
选择传送单元504耦接至二进制内容寻址储存器506a~506c,依据在高速缓存路由表580、第二路由表560以及第三路由表570输出的搜寻结果,由选择传送单元504依照:第三路由表570优先、第二路由表560其次、高速缓存路由表580最后的顺序,选出对应该目的端地址的“最长符合的路由前缀”的路由数据,并依据该路由数据将该IP数据包传出。
当在高速缓存路由表580、第二路由表560及第三路由表570皆无法找到对应该目的端地址的“最长符合的路由前缀”的路由数据时,亦即皆没有输出搜寻结果时,在该路由系统的全路由表550中,搜寻对应该目的端地址的“最长符合的路由前缀”的路由数据。该路由系统将该目的端地址的所有32比特送至全路由表550,而在全路由表550中搜寻该目的端地址的所有32比特所对应的路由数据,并依据搜寻到的路由数据将该IP数据包传出。并将该目的端地址的前24比特与该路由数据送至高速缓存路由表580,而由高速缓存路由表580所采用的路由高速缓存器的更新算法决定是否应储存此笔数据,该更新算法可为最久不使用、随机或先入先出等算法。

Claims (11)

1.一种路由方法,用于一路由系统中,其特征是,包括下列步骤:
选择m个路由前缀长度,分别为L1比特、L2比特、L3比特、…、Lm比特,其中m、L1、L2、L3、…、Lm为正整数且L1<L2<L3<…<Lm
将该路由系统所应处理的复数路由前缀依其路由前缀长度分为m个群组,分别为0~L1比特、L1+1~L2比特、L2+1~L3比特、…、Lm-1+1~Lm比特,并分别建立对应的第2~第m路由表,该路由系统同时维持一高速缓存路由表;其中当所应处理的一路由前缀的路由前缀长度为j比特,且介于(Li-1+1)~Li比特,而属于第i群组时,使用一扩展模块将该路由前缀扩展为2Li-j个Li比特的路由前缀,并将此扩展后的路由前缀与其对应的路由数据,储入该第i路由表,其中i与j为正整数,且2≤i≤m,L1+1≤j≤Lm;该高速缓存路由表储存复数路由前缀长度为L1比特的路由前缀及其所对应的复数路由数据;
接收一目的端地址为Lm比特的网络数据包;
依据该目的端地址的前L1比特在该高速缓存路由表中寻找和该目的端地址的前L1比特相同的路由前缀,同时依据该目的端地址的前L2比特在该第二路由表中寻找和该目的端地址的前L2比特相同的路由前缀,依此类推,同时依据该目的端地址的所有Lm比特在该第m路由表中寻找和该目的端地址的所有Lm比特相同的路由前缀;以及
于上述搜寻比对中有一至多个相符合的路由前缀,则由该等相符合的路由前缀中选出具最大比特长度者,并取出其所对应的路由数据,以依据该路由数据传送该IP数据包。
2.如权利要求1所述的路由方法,其特征是,更包括下列步骤:
将该路由系统所应处理的复数路由前缀中,长度为0~L1比特者,建立一第一路由表;并于上述搜寻比对无任何一个相符合的路由前缀时,在该第一路由表中搜寻并取出对应该目的端地址的前L1比特的路由前缀中,路由前缀长度最长者所对应的路由数据;以及
依据该路由数据传送该IP数据包,并将该目的端地址的前L1比特以及该路由数据,交由该高速缓存路由表储存。
3.如权利要求1所述的路由方法,其特征是,更包括下列步骤:
将该路由系统所应处理的复数路由前缀中,路由前缀长度为0~Lm比特者,建立一全路由表;并于上述搜寻比对无任何一个相符合的路由前缀时,在该全路由表中搜寻并取出对应该目的端地址的所有Lm比特的路由前缀中,路由前缀长度最长者所对应的路由数据;以及
依据该路由数据传送该IP数据包,并将该目的端地址的前L1比特以及该路由数据,交由该高速缓存路由表储存。
4.如权利要求1所述的路由方法,其特征是,其中m为3,而L1为24、L2为28且L3为32。
5.如权利要求1所述的路由方法,其特征是,其中m为4,而L1为24、L2为48、L3为64且L4为128。
6.一种路由系统,其特征是,该系统包括:一第一路由装置,其包括:
一接收单元,其接收目的端地址为r比特的IP数据包;
一路由前缀长度处理器,用以将所应处理的复数路由前缀,依其路由前缀长度分为m个群组,分别为0~L1比特、L1+1~L2比特、L2+1~L3比特、…、Lm-1+1~Lm比特,其中m、L1、L2、L3、…、Lm为正整数且L1<L2<L3<…<Lm
复数路由高速缓存器,其耦接至该接收单元,接收该IP数据包的目的端地址,其包括:
复数路由表,分别为第2~第m路由表,依据该目的端地址的前L2比特在该第二路由表中寻找和该目的端地址的前L2比特相同的路由前缀,依此类推,同时依据该目的端地址的所有Lm比特在该第m路由表中寻找和该目的端地址的所有Lm比特相同的路由前缀;及
一高速缓存路由表,用于储存复数L1比特的路由前缀,及所对应的复数路由数据,同时依据该目的端地址的前L1比特在该高速缓存路由表中寻找和该目的端地址的前L1比特相同的路由前缀;
一扩展模块,用以在路由前缀长度为j比特,且介于(Li-1+1)~Li比特时,将该路由前缀扩展为2Li-j个Li比特的路由前缀,并将此扩展后的路由前缀与其对应的路由数据,储入该第i路由表,其中i与j为正整数且2≤i≤m,L1+1≤j≤Lm;及
一选择传送单元,其耦接至上述路由高速缓存器,于上述搜寻比对有一至多个相符合的路由前缀,由该等相符路由前缀中选出最大比特长度者及其对应的路由数据,并依据该路由数据将IP数据包传出;以及
一第二路由装置,其包括一第一路由表,其耦接至该选择传送单元、该高速缓存路由表以及该前缀长度处理器,该第一路由表储存该路由系统所应处理的复数路由前缀,长度为0~L1比特,及所对应的复数路由数据;于上述搜寻比对无任何一个相符合的路由前缀时,在该第一路由表中搜寻并取出对应该目的端地址的前L1比特的路由前缀中,路由前缀长度最长者所对应的路由数据;并依据该路由数据,将该IP数据包传出;并将该目的端地址的前L1比特以及该路由数据,交由该高速缓存路由表储存。
7.如权利要求6所述的路由系统,其特征是,其中m为3,而L1为24、L2为28且L3为32。
8.如权利要求6所述的路由系统,其特征是,其中上述路由高速缓存器采用二进制内容寻址储存器。
9.一种路由系统,其特征是,该系统包括:
一第一路由装置,其包括:
一接收单元,其接收目的端地址为r比特的IP数据包;
一路由前缀长度处理器,用以将所应处理的复数路由前缀,依其路由前缀长度分为m个群组,分别为0~L1比特、L1+1~L2比特、L2+1~L3比特、…、Lm-1+1~Lm比特,其中m、L1、L2、L3、…、Lm为正整数且L1<L2<L3<…<Lm
复数路由高速缓存器,其耦接至该接收单元,接收该IP数据包的目的端地址,其包括:
复数路由表,分别为第2~第m路由表,依据该目的端地址的前L2比特在该第二路由表中寻找和该目的端地址的前L2比特相同的路由前缀,依此类推,同时依据该目的端地址的所有Lm比特在该第m路由表中寻找和该目的端地址的所有Lm比特相同的路由前缀;及
一高速缓存路由表,用于储存复数L1比特的路由前缀及上述路由前缀所对应的复数路由数据,同时依据该目的端地址的前L1比特在该高速缓存路由表中寻找和该目的端地址的前L1比特相同的路由前缀;
一扩展模块,用以在路由前缀长度为j比特,且介于(Li-1+1)~Li比特时,将该路由前缀扩展为2Li-j个Li比特的路由前缀,并将此扩展后的路由前缀与其对应的路由数据,储入该第i路由表,其中i与j为正整数且2≤i≤m,L1+1≤j≤Lm;及一选择传送单元,其耦接至上述路由高速缓存器,于上述搜寻比对有一至多个相符合的路由前缀,由该等相符路由前缀中选出最大比特长度者及其对应的路由数据,并依据该路由数据将IP数据包传出;以及
一第二路由装置,其包括一全路由表,其耦接至该选择传送单元、该高速缓存路由表以及该前缀长度处理器,该全路由表储存该路由系统所应处理的所有路由前缀,及所对应的复数路由数据;于上述搜寻比对无任何一个相符合的路由前缀时,在该全路由表中搜寻并取出对应该目的端地址的所有r比特的路由前缀中,路由前缀长度最长者所对应的路由数据;并依据该路由数据,将该IP数据包传出;并将该目的端地址的前L1比特以及该路由数据,交由该高速缓存路由表储存。
10.如权利要求9所述的路由系统,其特征是,其中m为3,而L1为24、L2为28且L3为32。
11.如权利要求9所述的路由系统,其特征是,其中上述路由高速缓存器采用二进制内容寻址储存器。
CNB021466289A 2002-10-28 2002-10-28 路由方法和路由系统 Expired - Fee Related CN1319347C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB021466289A CN1319347C (zh) 2002-10-28 2002-10-28 路由方法和路由系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB021466289A CN1319347C (zh) 2002-10-28 2002-10-28 路由方法和路由系统

Publications (2)

Publication Number Publication Date
CN1494276A CN1494276A (zh) 2004-05-05
CN1319347C true CN1319347C (zh) 2007-05-30

Family

ID=34232813

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB021466289A Expired - Fee Related CN1319347C (zh) 2002-10-28 2002-10-28 路由方法和路由系统

Country Status (1)

Country Link
CN (1) CN1319347C (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100394745C (zh) * 2006-04-14 2008-06-11 迈普(四川)通信技术有限公司 一种动态选择出口路径的方法
CN100486227C (zh) * 2006-10-31 2009-05-06 成都迈普产业集团有限公司 路由表查找方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999014906A1 (en) * 1997-09-15 1999-03-25 Effnet Group Ab Method and system for fast routing lookups
EP1014628A1 (en) * 1998-05-08 2000-06-28 Ntt Mobile Communications Network Inc. Packet transfer method and packet transfer system in mobile communication network system, and medium for packet data
US20020118682A1 (en) * 2000-12-22 2002-08-29 Myongsu Choe Apparatus and method for performing high-speed IP route lookup and managing routing/forwarding tables

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999014906A1 (en) * 1997-09-15 1999-03-25 Effnet Group Ab Method and system for fast routing lookups
CN1270728A (zh) * 1997-09-15 2000-10-18 埃弗内特集团股份有限公司 快速路由查找的方法和系统
EP1014628A1 (en) * 1998-05-08 2000-06-28 Ntt Mobile Communications Network Inc. Packet transfer method and packet transfer system in mobile communication network system, and medium for packet data
CN1269090A (zh) * 1998-05-08 2000-10-04 Ntt移动通信网株式会社 移动通信网系统中的分组传送方法、分组传送系统以及分组数据传送介质
US20020118682A1 (en) * 2000-12-22 2002-08-29 Myongsu Choe Apparatus and method for performing high-speed IP route lookup and managing routing/forwarding tables

Also Published As

Publication number Publication date
CN1494276A (zh) 2004-05-05

Similar Documents

Publication Publication Date Title
US7418505B2 (en) IP address lookup using either a hashing table or multiple hash functions
US6826561B2 (en) Method and apparatus for performing a binary search on an expanded tree
Gupta et al. Routing lookups in hardware at memory access speeds
Panigrahy et al. Reducing TCAM power consumption and increasing throughput
US6956858B2 (en) Network routing table and packet routing method
US5920886A (en) Accelerated hierarchical address filtering and translation using binary and ternary CAMs
US7096277B2 (en) Distributed lookup based on packet contents
JP3735471B2 (ja) パケット中継装置およびlsi
US7443841B2 (en) Longest prefix matching (LPM) using a fixed comparison hash table
US7885268B2 (en) Method and system for hash table based routing via table and prefix aggregation
Huang et al. A fast IP routing lookup scheme for gigabit switching routers
WO2000051298B1 (en) Network router search engine using compressed tree forwarding table
JP2006313949A (ja) パケット転送装置
US7403526B1 (en) Partitioning and filtering a search space of particular use for determining a longest prefix match thereon
CN1216473C (zh) 支持多个下一跳的三态内容可寻址存储器查找方法及系统
US12184544B1 (en) Data compression for LPM in TCAM
US20040044868A1 (en) Method and apparatus for high-speed longest prefix match of keys in a memory
CN113315705A (zh) 基于单次哈希布隆过滤器的Flexible IP寻址方法及装置
Yu et al. Forwarding engine for fast routing lookups and updates
WO2002098055A2 (en) Load balancing in ip address lookup
US7693075B2 (en) Updating address tables
CN1319347C (zh) 路由方法和路由系统
US7398278B2 (en) Prefix processing technique for faster IP routing
CN100426791C (zh) 一种路由转发表地址查找引擎装置
WO2001022667A1 (en) Method and system for efficient routing table compression and fast routing lookups

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
EE01 Entry into force of recordation of patent licensing contract

Assignee: HAOYANG TIANYU TECHNOLOGY (SHENZHEN) CO., LTD.

Assignor: Accton Technology Corporation

Contract fulfillment period: 2009.1.1 to 2013.12.31 contract change

Contract record no.: 2009990000290

Denomination of invention: Routing method and routing system

Granted publication date: 20070530

License type: Exclusive license

Record date: 2009.4.10

LIC Patent licence contract for exploitation submitted for record

Free format text: EXCLUSIVE LICENSE; TIME LIMIT OF IMPLEMENTING CONTACT: 2009.1.1 TO 2013.12.31; CHANGE OF CONTRACT

Name of requester: HAO YANG TIN YU TECHNOLOGY (SHENZHEN) CO., LTD.

Effective date: 20090410

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

Granted publication date: 20070530

Termination date: 20161028

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