CN1404591A - 执行高速互联网协议路由查找和管理路由选择/转发表的装置和方法 - Google Patents
执行高速互联网协议路由查找和管理路由选择/转发表的装置和方法 Download PDFInfo
- Publication number
- CN1404591A CN1404591A CN01805497A CN01805497A CN1404591A CN 1404591 A CN1404591 A CN 1404591A CN 01805497 A CN01805497 A CN 01805497A CN 01805497 A CN01805497 A CN 01805497A CN 1404591 A CN1404591 A CN 1404591A
- Authority
- CN
- China
- Prior art keywords
- node
- prefix length
- route
- prefix
- hash table
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/742—Route cache; Operation thereof
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
- H04L45/74591—Address table lookup; Address filtering using content-addressable memories [CAM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种用于利用跳转表来建立用于一个IP地址查找的路由选择/转发表的方法。所述方法以预设的方法划分一个IP地址的前缀长度范围;根据划分为前缀长度范围的数个组建立具有最大层级的首标节点,所述首标节点指向在所述跳转表中的每个节点;以及按照被划分的组的数量来建立子节点,每个子节点具有被划分的前缀长度范围作为关键字。
Description
发明背景
1、发明领域
本发明一般地涉及用于在因特网中向目的地转发分组的路由技术,特别涉及用于执行高速IP(互联网协议)路由查找和管理路由选择(或转发)表的一种装置和方法。
2、相关技术说明
由于因特网用户的不断增长的数量、支持业务的多样性和诸如VoIP(IP话音传输)和面向流应用的业务区域的扩展,因特网中的业务量已经以指数规律增长。通过在一个千兆(Giga)或万亿(Tera)比特/秒级高速路由器中寻找一个目的路径而不引起任何延迟来向下一个中继接口转发分组已经显现为一个随之而来的设计问题。为了寻找通过路由器的物理输入接口转发的分组的目的路径,需要保持紧密结合形式的路由选择(或转发)表和减少查找时间。
在传统的路由器中,在最近使用的高速路由器——其中处理分组和寻找它们的目的地需要的时间比在传输路径上需要的时间快——出现之前,一种作为连接子网或其他网络的转接节点的路由器的表现很好。最近,诸如POSOC-192(10千兆比特/秒)或基于IP的DWDM(密集波分复用)的光学网络连接接口的带宽的增长已经优于路由器中的处理时间并引起对于路由器产生高速因特网中的主要瓶颈的责备。对于路由器的背景讨论,请参见:Keshav,S.和Sharma,R.,《路由器设计的问题与趋势(Issues and Trends in Router Design)》,IEEE通信杂志,144-151页,1998年5月;Kumar,V和Lakshman,T.和Stiliadis,D.的《最大努力所不及:明天的因特网的不同业务的路由器结构(Beyond BestEffort:Router Architectures for the Differentiated Services of Tomorrow’sInternet)》,IEEE通信杂志,152-164页,1998年5月;Chan,H.、Alnuweiri,H.和Leung,V.的《用于最佳化下一代IP路由器的成本和性能的结构(AFramework for Optimizing the Cost and Performance of Next-Generation IPRouters)》,IEEE通信中的选择区域期刊,第17卷,第6号,1013-1029页,1999年6月;Partridge,C.等人的《一种50千兆比特/秒的IP路由器(A 50-Gb/sIP Router)》,IEEE/美国计算机学会联网技术学报,第6卷,第3号,237-248页,1998;以及Metz,C.的《IP路由器:千兆联网技术的新工具(New Tool forGigabit Networking)》,IEEE因特网计算,14-18页,1998年11-12月。
在九十年代早期,IETF(因特网工程任务组)工作组引入了一种称为CIDR(无级域间路由选择)的新的IP寻址方案来有效地在IPv4(IP版本4)中使用IP地址。请参见RFC(征求意见文件:网络工作组)1518,《利用CIDR的IP地址分配的结构(An Architecture for IP Address Allocation with CIDR)》,1993年9月;以及RFC 1517,《无级域间路由选择(CIDR)实现的可应用性报告(Applicability Statement for the Implementation of Classless Inter-DomainRouting(CIDR))》,1993年9月。
在这种情况下,为了在具有各种前缀长度的分组中获得一个前缀和寻找与最长的前缀匹配的IP地址,已经广泛使用了一种基于检索树(trie)或Patricia(检索编码为字母数字的信息的使用算法)检索树(trie)数据结构的LPM(最长前缀匹配)算法。请参见Doeringer,W.、Karjoth,G.和Nassehi,M.的《最长匹配前缀的路由选择(Routing on Longest-Matching Prefixes)》,IEEE/美国计算机学会联网技术学报,第4卷,第1号,86-97页,1996年2月。
下面参照表1详细说明LPM算法。表1示出了包含在路由选择(或转发)表中的路由项(routing entry)的一个简单示例。星号允许给任何数填充‘0’或‘1’,尽管在IPv4的情况下前缀本身不能超过32。例如,‘0*’可以指‘01*’‘011*’或‘010*’而不管其余的比特串是什么。
表1
前缀 | 接口 |
0* | 00 |
01010* | 10 |
010101* | 10 |
0101011* | 11 |
1* | 11 |
11* | 01 |
10* | 11 |
1110* | 01 |
100101011* | 11 |
100101010* | 11 |
1001010101* | 10 |
路由项或路由由IP地址::={<网络前缀>,<主机编号>}来表示。当目的IP地址是‘10010101000…0’的时候,目的IP地址的第一个比特与在路由选择表中包含的网络前缀(简单前缀)相比较。于是,诸如0*、01010*、010101*和0101011*的前缀被丢弃,因为它们具有从‘0’开始的第一比特。当给定的目的地址域其余的前缀相比较的时候,前缀‘11*’、‘1110*’和‘1001010101*’被排除在外,因为它们从第二或第十比特与目的地址不匹配。在似乎正确的前缀(如‘1*’、‘10*’和‘100101010*’)中,‘100101010*’被选为匹配路由的最长的前缀(或最特殊的),具有此目的IP地址的IP分组通过接口‘10’被转发到相邻的路由器。
同时,一种最近公布的路由选择查找算法被存储在一个可能的处理器(路由选择处理器或转发引擎)中的一个超高速缓冲存储器中以降低存储器存取时间。虽然基于路由选择表的路由选择查找表保证了有效的查找,但是它不能改变路由选择(或转发)表。因此,路由选择查找算法当改变时可能引起在反射路由选择表中的时间延迟。
另外,在路由选择处理器中的路由选择表被通过一个DMA(直接存储器存取)卡、一个IPC(进程间通讯)卡或一个交换结构而复制,并随后被应用到在转发引擎中的一个转发表。在此,有必要建立一个新的转发表而不是仅仅加入或删除改变的路由。这可能导致另外的时间延迟,并也由于在从路由器的存储器存取请求中使用的存储器带宽的增加而引起在路由器或系统总线的内部存储器中的瓶颈。
而且,在一些算法中,必需利用表示路由器当前链路状态的链路可达到性(reachability)信息来建立一个初始的路由选择(或转发)表。因此,为了在路由选择表中依序插入可达到性信息,需要一种用于按照前缀长度预先分类每个路由的附加的处理。参见Degermark,M.、Brodnik,A.、Carlsson S.和Pink,S.的《用于快速路由选择查找的小转发表(Small Forwarding Tables for FastRouting Lookups)》,美国计算机学会SIGCOMM’97会刊,3-14页,戛纳,法国,1997;Srinivasan,V和Varghese,G.的《利用受控的前缀扩展的快速IP查找(Faster IP Lookups using Controlled Prefix Expansion)》,美国计算机学会Sigmetrics’98会议会刊,1-11页,1998;Lampson,B.、Srinivasan,V.和Varghese,G.的《利用多路和多栏(multicolumn)搜索的IP查找(IP Lookups using Multiwayand Multicolumn Search)》,IEEE Inforcom,1248-1256页,1998;Tzeng,G.和Pryzygienda,T.的《关于快速地址查找算法(On Fast Address-LookupAlgorithms)》,IEEE通信中的选择区域期刊,第17卷,第6号,1067-1082页,1999年6月;Waldvogel,M.、Varghese,G.、Turner,J.和Plattner,B.的《可扩展高速IP路由选择查找(Scalable High Speed IP Routing Lookups)》,美国计算机学会SIGCOMM’97会刊,戛纳,法国,25-37页,1997;以及Waldvogel,M.、Varghese,G.、Tuner,J.和Plattner,B.的《可扩展最佳匹配前缀查找(ScalableBest Matching Prefix Lookups)》,PODC’98会刊,Puerto Vallarta,页,1998。
诸如基数树或Patricia检索树(trie)的在路由选择表中一般使用的数据结构不仅造成寻找分组路径所需要的存储器存取次数的增加,而且需要相当多的更新时间来反射通过从相应的路由器的相邻路由器设置或删除路由而引起的改变的路由。Degermark,M.、Brodnik,A.、Carlsson S.和Pink,S.的《用于快速路由选择查找的小转发表(Small Forwarding Tables for Fast RoutingLookups)》,美国计算机学会SIGCOMM’97会刊,3-14页,戛纳,法国,1997中提出了一种可以存储在转发引擎的超高速缓冲存储器中的紧密结合的转发表,但是难于向其中反射改变的路由。由Srinivasan,V.和Varghese,G.的《利用受控的前缀扩展的快速IP查找(Faster IP Lookups using Controlled PrefixExpansion)》,美国计算机学会Sigmetrics’98会议会刊,1-11页,1998(参见授予George Varghese和Srinivasan的标题为“用于利用前缀的受控扩展的快速分层地址查找的方法和装置(Method and Apparatus for Fast HierarchicalAddress Lookup Using Controlled Expansion of Prefixes)”的美国专利第6,01,795号)提出的受控前缀扩展方法和由Tzeng,G.和Pryzygienda,T.的《关于快速地址查找算法(On Fast Address-Lookup Algorithms)》,IEEE通信中的选择区域期刊,第17卷,第6号,1067-1082页,1999年6月提出的快速地址查找算法也是基于多分辨率检索树(trie),但是难于加入或删除路由,因为数据结构是基于检索树(trie)的。就此而论,参见一同授予Hong-Yi Tzeng的标题为“用于IP路由选择表查找的方法(Method for IP Routing Table Look-up)”的美国专利第6,061,712号和标题为“利用压缩树处理的高速路由选择(HighSpeed Routing Using Compressed Tree Process)”的美国专利第6,067,574号。通过向具有散列表和基于多分辨率检索树(trie)(Tzeng,G.和Pryzygienda,T.的《关于快速地址查找算法(On Fast Address-Lookup Algorithms)》,IEEE通信中的选择区域期刊,第17卷,第6号,1067-1082页,1999年6月)的完整的前缀检索树(trie)的二进制树映射一个检索树(trie)结构一种线搜索(rope search)算法(Waldvogel,M.、Varghese,G.、Turner,J.和Plattner,B.的《可扩展高速IP路由选择查找(Scalable High Speed IP Routing Lookups)》,美国计算机学会SIGCOMM’97会刊,戛纳,法国,25-37页,1997;和Waldvogel,M.、Varghese,G.、Tuner,J.和Plattner,B.的《可扩展最佳匹配前缀查找(Scalable Best MatchingPrefix Lookups)》,PODC’98会刊,Puerto Vallarta,页,1998)由于改变的路由项的更新而趋于效率低,因为这些数据结构是基于检索树(trie)的。就此而论,参见授予Jonathan Turner、George Varghese和Marcel Waldvogel的标题为“可扩展高速IP路由选择查找(Scalable High Speed IP Routing Lookups)”的美国专利第6,018,524号。
除了上述之外,已经提出了其他的检索树(trie)的变化方式。例如,已经提出了一种双检索树(trie)方案(Kijkanjanarat,T.和Chao,H.的《利用双检索树(trie)数据结构的快速IP查找(Fast IP Lookups Using a Two-Tries DataStructure)》,Globecom’99的会刊,1999),它链接用以降低搜索时间的两个检索树(trie)和用以降低在一个检索树(trie)中的层级长度的一个LC检索树(trie)(Nillson,S.和Karlsoson,G.的《利用LC检索树(trie)的IP地址查找(IP-Addresses Lookup Using LC-Tries)》,IEEE通信中的选择区域期刊,第17卷,第16号,1083-1092页,1999年6月)以及一个DP检索树(trie)(Doeringer,W.、Karjoth,G.和Nassehi,M.的《最长匹配前缀的路由选择(Routing onLongest-Matching Prefixes)》,IEEE/美国计算机学会联网技术学报,第4卷,第1号,86-97页,1996年2月)。但是它们仍然在向路由选择(或转发)表反射改变的路由中存在困难。
另外,虽然前述的方案有益于降低查找时间,但是仍然存在有关路由更新的问题。硬件辅助的方案也被提出来降低查找时间。Gupta,P.、Lin,S.和McKeown,N.的《以存储器存取速度在硬件中的路由选择查找(RoutingLookups in Hardware at Memory Access Speeds)》,IEEE INFOCOM’98会议会刊,1240-1247页,1998提出了一种根据大型存储器的使用的解决方案。与基于软件的方案相比降低查找时间是可能的,但是在IPv6(IP版本6)的转变中仍然造成很大数量的存储器容量的使用和成本。McAuley,A.和Francis,P.的《利用CAM的快速路由选择表查找(Fast Routing Table Lookup UsingCAMs)》,IEEE INFOCOM’93会刊,第三卷,1382-1391页,1993提出了一种利用CAM(内容可寻址存储器)的方案,但是由于CAM的高价格,它现在没有被考虑使用。Huang,N.和Zhao,S.的《用于多个千兆交换路由器的新型IP路由选择查找方案和硬件结构(A Novel IP-Routing Lookup Scheme andHardware Architecture for Multigigabit Switching Routers)》,IEEE通信中的选择区域期刊,第17卷,第6号,1093-1104页,1999年6月提出了一种间接查找算法,它利用流水线存储器存取来降低存储器的存取,但是它具有在IPv6转变上的一个缺点。
发明概述
因此,本发明的一个目的在于提供一种用于执行高速IP路由查找和管理路由选择/转发表的方法,它能够利用随机算法来最小化存储器存取时间,因此保证了存储器的有成本效益的利用。
本发明的另一个目的是提供一种用于执行高速IP路由查找和管理路由选择/转发表的方法,它可以容易地改变和管理路由的增加和删除。
本发明的另一个目的是提供一种用于执行高速IP路由查找和管理路由选择/转发表的方法,它可以有效地建立一个路由选择表和/或一个转发表,而不用按照在建立表期间要输入的路由的前缀长度来将相关的路由分类。
按照本发明的第一方面,提供了一种方法,用于利用跳转表(skip list)来搜索具有作为关键字的一个前缀长度范围的IP地址,该跳转表包含具有预定最大值的关键字(key)的首标节点和每个具有以降序预设的固定(或可变)范围的关键字、并在与各个前缀长度相关的散列表中存储对应于各个前缀长度的路由项的多个节点(子节点)。
按照本发明的第二方面,一种用于利用跳转表来建立IP路由选择表的方法包括步骤:建立一个具有最大等级的首标节点来管理在跳转表中的每个节点;向跳转表插入多个具有划分的前缀范围的节点;以及建立一个散列表,用于存储在对应于前缀范围的每个节点给出的路由项。
按照本发明的第三方面,提供了一种方法,用于利用跳转表来更新路由选择表,跳转表中根据在每个按照一个IP地址的前缀长度范围产生的节点中设置的前缀长度来以散列表的形式存储路由项。所述方法包括步骤:寻找一个节点,其中设置了对应于要更新的路由的前缀长度的前缀范围;搜索一个散列表,它具有与在找到的节点中要更新的路由相同的前缀长度;以及当找到散列表的时候更新在散列表中的对应的路由。
按照本发明的第四个方面,提供了一种利用一个跳转表的路由选择表的路由查找方法,在所述跳转表中按照一个IP地址的前缀范围的分配而产生的每个节点中的预设的前缀长度存储了散列表形式的路由项。所述方法包括步骤:寻找从跳转表的第一个节点开始的一个相邻的节点;比较目的地址与在对应节点的各个散列表;以及当散列表包括目的地址的时候将一个匹配的前缀当作最长的前缀。
附图说明
随着本发明通过参照下面的参考附图的详细说明而变得更好明白,本发明的更完整的理解和它的许多附带的优点将变得更为清楚,在附图中,相同的参考标号指相同或类似的部件。
图1是图解可应用本发明的分布式路由器结构的原理图;
图2是图解可应用本发明的平行路由器结构的原理图;
图3是图解可应用本发明的转发引擎结构的原理图;
图4是图解路由选择处理器的结构的原理图;
图5是用于解释按照本发明的一个实施例的LPM(最长前缀匹配)算法的图;
图6是图解按照本发明的一个实施例的跳转表的结构的图;
图7A和7B是图解在因特网中预定长度分布的测量值的图;
图8是图解按照本发明的一个实施例的首标节点的结构的图;
图9是用于说明按照本发明的一个实施例的跳转表建立操作的图;
图10A和10B是用于说明按照本发明的一个实施例的根据前缀长度建立路由选择表的操作的图;
图11是图解用于按照本发明的一个实施例建立路由选择表的过程的流程图;
图12是图解用于按照本发明的一个实施例更新路由选择表的过程的流程图;
图13和14是图解按照本发明的一个实施例的用于说明路由查找和更新操作的跳转表结构的图;
图15是图解按照本发明的一个实施例的路由查找处理的流程图;和
图16是图解按照本发明的一个实施例的用于说明整体查找过程的跳转表结构的图。
优选实施例的详细说明
以下,参照附图来说明本发明的优选实施例。在下面的说明中,不详细说明公知的功能和结构,因为它们将以不必要的细节混淆本发明。
首先,说明可应用本发明的一种路由器和路由选择方法。Chan等人(《用于最佳化下一代IP路由器的成本和性能的结构(A Framework for Optimizingthe Cost and Performance of Next-Generation IP Routers)》,IEEE通信中的选择区域期刊,第17卷,第6号,1013-1029页,1999年6月)将两种主要的高速路由器的结构划分为分布式或平行式的,它们之间的主要区别依赖于转发引擎的位置。高速主干路由器趋向于具有分布式结构而不是传统的集中结构。
图1图解了可应用本发明的具有分布式结构的路由器。参见图1,路由器包括:一配有转发表FE的线路卡模块110,分组通过它来输入和输出;一路由选择处理器120,用于建立初始的路由选择表RT和管理路由选择表;以及一交换结构130,当分组被转换到路由器中的一个特定端口的时候使用。
路由选择处理器120包括通过反射最后改变的路由而更新的一路由选择表RT。路由选择表RT根据诸如RIP(路由选择信息协议)、OSPF(开放最短路径优先)或BGP-4(边界网关协议4)的路由选择协议产生,但不限于这些协议。一种设计用于有效查找的称为转发表FT的紧密结合的表被从路由选择处理器中的路由选择表复制。这个转发表FT仅仅设计用于通过牺牲路由加入和删除的效率的有效查找。
如果从线路卡模块110输入的分组不能从转发表FT寻找它的目的路径,则对应的分组必须穿过交换结构130到路由选择处理器120以解析它的未匹配的路由。在找到它的目的地后,所述分组必须再次路由到交换结构130以向输出线路卡模块110发送分组。否则,如果路由选择处理器120即使通过路由选择表RT也不能寻找目的路径,则所述分组在路由选择处理器120被丢弃。
同时,Asthana,A.、Delph,C.、Jagadish,H.和Krzyzanowski,P.的《走向千兆比特IP路由器(Towards a Gigabit IP Router)》,高速网络期,第1卷,第4号,281-288页,1992和Partridge,C.等人(《一种50千兆比特/秒的IP路由器(A 50-Gb/s IP Router)》,IEEE/美国计算机学会联网技术学报,第6卷,第3号,237-248页,1998)公开了一种具有平行结构的路由器。图2图解了可以应用本发明的一种具有平行结构的路由器。在图2所示的具有平行结构的路由器中,每个具有转发表FT的转发引擎112与线路卡模块110分离。这样的平行结构使用一个基于客户机和服务器的模式来用于处理在每个转发引擎中的路由查找和平行分组处理。
在路由选择处理器120中的路由选择表必须设计成它可以立即反射改变的路径和它可以容易地被保持。而且,要加入或删除的路由必须以最小的花费尽快地被反射到在转发引擎112中的转发表FT中。当没有反射路由的时候,输入的分组被通过交换结构130发送到路由选择处理器120,引起由于绕过在处理相应的分组中所要求的附加的路由而导致的传输延迟的增加。
虽然已经就分布式路由器和平行路由器说明了本发明,对本领域的技术人员显然的是本发明可以被应用到具有其他结构的路由器。
图3图解了在具有分布或平行结构的路由器中的转发引擎112的结构。图4图解了路由选择处理器120的结构。
参见图3,转发引擎112包括n个输入接口、m个输出接口、n个用于缓冲通过输入接口输入的分组的缓冲器、一个用于按照类型分类存储在缓冲器重点的分组的分组分类器、以及一个用于通过查阅转发表将由转发表和分组分类器分类的分组发送到相应的输出接口的路由查找控制器。
参见图4,路由选择处理器120包括:n个输入/输出接口,用于从/向图1和2所示的交换结构130接收和输出分组;一个交换接口,用于缓冲从/向输入/输出接口输入和输出的分组与在交换结构130和它的下一级的路由查找和保留控制器之间对接;以及路由查找和保留控制器,用于通过查阅路由选择表来将从路由选择表和交换接口提供的分组经由交换接口传送到对应的输入/输出接口。
按照RFC标准,路由选择(或转发)表对主要用于查找的数据结构数组、树和检索树(trie)没有限制,也对何种算法要用于处理它们没有限制。但是,对于最长前缀匹配,需要最小数量的存储器存取,并且改变的路由应当在路由选择(或转发)表种容易更新。
为此,本发明的实施例使用了一种随机算法。改随机算法是在它的执行期间进行随机选择的算法。它着重于使得它可能在每个输入上表现良好。这是要根据不是一个特定的假设而是概率(如抛掷硬币)p来处理某个输入。使用随机算法的优点来自它的简单与有效。
基于随机算法的按照本发明的算法保证了最小数量的存储器存取和路由选择表的简单管理。为了管理路由项,仅仅重建改变的路由信息而不使用重建整个表的传统方法。另外,不象诸如一般树或二进制检索树(trie)的路由查找算法一样,按照本发明的算法从图5所示的目的IP地址的尾部搜索最长的前缀。
另外,本发明使用用于路由选择表的跳转表。参见Pugh,W.的《跳转表:平衡树的概率性替代(A Probabilistic Alternatives to Balanced Trees)》,CACM33(6),6689-676,1990。
跳转表被当作具有分类的n个节点的链表并通常用于代表诸如分裂树的平衡树的数据结构中。参见Sleator,D.和Tarjan,R.的《自调节二进制搜索树(Self-Adjusting Binary Search Trees)》,计算机协会会刊,第32卷,第3号,1985年7月。因此,在插入和删除操作中它比平衡树更简单和有效。本发明提出了一种图6所示的用于最长前缀匹配的跳转表的变化形式。
图6图解了按照本发明的实施例的跳转表的变化形式。参见图6,每个节点具有一个单独的指针或多个指针并且最左面的节点被称为首标节点210,因为对于跳转表的变化形式的所有的操作,如查找、插入、删除和更新,必须从首标节点210开始。
首标节点210包含+∞作为关键值和指针来指示下一个节点。在节点220、230、240、250和260中的关键字被以降序排序。在每个节点中的关键字表示‘前缀长度范围’或‘前缀长度值的聚类’,并且这个关键字被以降序插入。在本发明的实施例中,搜索将从叶到根(或父)开始,即一个反转的关键值序列,这是一种与传统的检索树(trie)或树结构完全不同的方法。
第二节点220的关键字具有前缀长度范围32-34,具有属于这个前缀长度范围的前缀长度的任何路由被存储在与它的前缀长度匹配的散列表中。图6示出了具有前缀长度30比特的散列表222和具有前缀长度26比特的散列表224来作为属于第二节点220的范围的路由器的散列表的示例。而且,图6示出了具有前缀长度15比特的散列表242来作为属于具有前缀长度17-12的第四节点240的范围的路由器的散列表的示例。
虽然图6示出了一个示例,其中对于不同的长度不同节点的前缀长度范围是固定的,即固定划分的前缀范围,但是前缀长度范围也可以被划分为具有可变长度的一组节点,即被可变地划分的前缀范围。Srinivasan,V.和Varghese,G.的《利用受控的前缀扩展的快速IP查找(Faster IP Lookups usingControlled Prefix Expansion)》,美国计算机学会Sigmetrics’98会议会刊,1-11页,1998讨论了一种动态编程技术,用于划分一个前缀范围来提供最佳的存储。在按照本发明的算法中,有可能利用类似的技术来划分前缀长度组。但是,在图6所示的本发明的实施例中,最好具有固定的前缀长度范围,因此可以避免由于动态编程而导致的附加的计算负担。
对于IPv4的情况,如果前缀长度被固定为8,则被插入的节点的总数可以是5(1+[32/8](其中32是在一个IPv4地址中的比特的最大数量))。如来自IPMA(因特网性能测量和分析)的经验结果所示,
http://nic.merit.edu/ipma,实际引用的前缀长度的分布具有一个偏离的,即暗示在实际引用的前缀长度分布中存在的局域格式。因此,在本发明中有可能使用更少数量的节点。例如,从图7A和7B可以注意到从17到27的前缀长度是最常被引用的。因此,有可能设置一个具有包括对应的前缀长度的范围的前缀长度关键值的节点并按照另一个前缀长度范围来设置多个节点。
向回参见图6,首标节点210的变量‘MaxLevel’表示在属于跳转表的所有节点中的最大层级数量,即在首标节点的指向其他节点的指针的总数。每个节点保持一个关键值‘x->key’(或key(x))和指针‘x->forward[L]’(或next(x,L))以指示在节点x的层级L从节点x指向相邻节点的指针。
在除了首标节点210之外的一个节点中每个关键字具有一个前缀长度范围或集。在图6中,节点220具有范围从32到24的路由项并且每个前缀长度具有它自己的散列表以存储与相应的前缀长度相匹配的路由项。如果路由项对应于范围从32到24——包括32和24——的每个路由项而存在,则对应的节点将具有9个指针来指向9个不同的散列表。每个散列表仅仅存储与它的前缀长度精确匹配的路由项。这是调用跳转表的变化形式作为具有k个散列的节点的跳转表的原因。
为了根据按照本发明的跳转表更好地理解所述算法,将说明用于建立首标节点和建立跳转表变化形式的方法。
图8是说明用于按照本发明的实施例建立首标节点的方法的图。参见图8,首标节点具有一个+∞关键值并且MaxLevel=5(1+[32/8]),其中MaxLevel=1+[W/n],W是IP地址的比特长度,如IPv4:32和IPv6:128,并且n是前缀范围。由于首标节点需要唯一地位于在跳转表中的所有节点的前面,因此在IPv4的情况下,如果概率p是1/2并且前缀范围等于1则MaxLevel=33对于包含最多232个路由的数据结构是合适的。首标节点具有索引为0到MaxLevel-1的MaxLevel个正向指针。在本发明的实施例中,由于前缀范围的聚合(Clustering)利用,在假定固定前缀范围是8的时候要求MaxLevel=5。
在产生一个首标节点之后,跳转表的变化形式的结构如图9所示,这是一个用于说明按照本发明的实施例建立跳转表的操作的图。如果在首标节点中的顶层的指针为空,即如果不存在相邻的节点,即与首标节点的指针相连的子节点,则层级降1直到指针指向一个相邻的节点。如图9所示,建立了具有前缀范围值32-24的第一节点(a),并且在首标节点中的层级0的指针指向第一节点。此后,依序建立了具有前缀范围值23-18的第二节点(b)和具有前缀范围值17-12的第三节点(c)。在这个过程中,建立了多个节点以覆盖每个前缀长度范围。
每个建立的节点的层级被利用程序3中所示的随机算法在下面按照本发明随机设置。首先产生属于(0,1)实数的一个随机数字值。当所产生的随机实数值小于预设的基准概率值(在此基准概率被设置为p=1/2,用于生成一个理想的跳转表)并且要建立的对应节点的层级也小于MaxLevel的时候,对应节点的层级被提高。否则,建立具有层级值0的一个节点。
以这种方式,在跳转表中建立具有前缀范围的节点后,需要建立一个包含路由项的路由选择表。参照图10A,将说明用于建立当路由器具有前缀长度为30的路由的时候的路由选择表的方法。
参见图10A,当路由器具有前缀长度30的时候,搜索在跳转表中具有前缀长度范围32-24的第一节点220,然后要加入的路由项被以散列表的形式插入。在跳转表中的节点可以具有范围从它的前缀长度开始的不同的散列表。按照相同的过程,具有前缀长度15的路由如图10B所示被加入,其中具有前缀长度15的散列表被建立在具有前缀范围17-12的节点240下。
为了扼要重述路由选择表产生过程,在图11中描述了整个的顺序,它图解了按照本发明的一个实施例建立路由选择表的过程。在步骤11a,建立了具有MaxLevel的一个首标节点来在跳转表中覆盖所有节点。然后在步骤11b,具有固定划分的前缀范围的节点被插入到表中。为了简化,虽然本发明提出了前缀范围的固定划分,也有可能推测反映实际前缀长度分布的自适应划分。其后,在步骤11c,在具有对应前缀范围的节点下建立针对每个给定路由项的散列表。按照本发明的新型方案提供从具有最长前缀长度的路由开始的搜索,而不象对于检索树(trie)或树结构通常的从最短前缀长度开始的搜索。
路由器经常从它的连接的路由器接收路由变化。这些变化必须被反射到当前的路由选择(或转发)表中。在新型方案中的更新顺序在图12中被表示。在步骤12a中,对于在路由选择表中要反射的给定的改变的路由(前缀),要发现预前缀长度匹配的节点。其后,在步骤12b,搜索对应于与改变的路由的前缀长度相同的前缀长度的散列表。如果在步骤12c找到一个对应的散列表,则过程进行到步骤12d,其中在对应的散列表汇总被发现的路由被更新或删除。如果在步骤12c不存在散列表,则下一个步骤进行到12e。如果要加入所述路由,则过程进行到步骤12f,其中建立具有与改变的路由的前缀长度相同的前缀长度的散列表。其后,在步骤12g,改变的路由被插入到新建立的散列表中。否则,在步骤12h中,丢弃改变的路由。
图13和14是说明用于按照本发明的实施例搜索和更新路由的过程的图。
首先,将参照图13说明用于搜索具有前缀长度15的路由的过程。需要寻找具有相同前缀长度(15)的节点。搜索从首标节点210的顶层(即层级4)开始(图13的顺序(1))。层级4的指针指向具有层级4的下一个节点,即具有前缀长度范围(关键字)8-1的节点260(图13的顺序(2))。其后。选行路由的前缀长度与节点260的关键字的比较。关键值不匹配并且搜索返回首标节点210的同一层级(层级4)(图13的顺序(3))。首标节点210的层级降1(图13的顺序(4)),并且下一层级(层级3)的指针指向具有层级3的下一个节点,即具有关键字17-12的节点240(图13的顺序(5))。当在节点240找到匹配的关键值的时候(图13的顺序(6)),搜索对应于改变的路由的前缀长度的散列表(图13的顺序(7))。如果存在散列表,则执行下一个中继(hop)(图13的顺序(8))。如果不存在散列表,则必须建立一个散列表用于加入一个新路由。
图14图解了几个顺序,其中具有下一个中继接口‘10’的前缀‘111010…1’的路由要从散列表删除或改变为具有下一个中继‘1’的‘111010…1’。搜索对应的前缀(111010…1)的过程以与图13所示类似的方式执行。
现在,参照图15和16详细说明用于从路由选择表搜索特定目的IP地址的路由的一个路由查找过程。
图15和16图解了按照本发明的实施例的定义为最长前缀匹配方案的一个路由查找过程。基于最长前缀匹配方案的搜索意味着路由项必须与最长前缀,如在IPv4中的前缀长度32相比较。图16是说明按照本发明的实施例的整体查找方案的图,其中目的地址具有‘111010…1’的前缀长度15。
在图15的步骤15a中,对于一个给定的封装在IP首标中的目的地址,寻找在跳转表中的第一节点,因此由目的地址给定的路由查找从首标节点210的层级4开始(图16的顺序(1)),并且在首标节点210中的层级向层级0降1(图16的顺序(2)),层级0具有指向第一节点220的指针(图16的顺序(3))。
然后,在步骤15b搜索第一节点220的散列表,从前缀长度范围的在上的关键值开始,如32(当前的前缀长度)。如果不存在一个散列表,则过程进行到步骤15g。否则,如果在步骤15c存在一个散列表,则过程进行到步骤15d。在步骤15d,在找到的散列表中搜索对应于目的地址的前缀。如果在步骤15e一个找到的前缀被确定与目的地址匹配,则在步骤15f匹配的前缀被返回作为最长前缀。同时,如果在步骤15e前缀不匹配,则过程进行到步骤15g。
在步骤15g,该过程寻找在同一前缀范围中的下一个散列表。如果在步骤15h下一个散列表存在,则过程返回步骤15b以重复上述处理。如果在步骤15h下一个散列表不存在,则过程进行到步骤15I,在此它移向在跳转表中的相邻的节点,然后返回步骤15b以在相邻节点重复上述处理。如上所述,不象从根节点开始的传统搜索方案一样,新型方案是基于从具有它自己的散列表的最长前缀范围开始的搜索的。
再次参见图16,首先,如前所述在跳转表中搜索一个节点并且由目的地址给定的路由查找从首标节点开始(图16的顺序(1))。在首标节点210中的层级下降到层级0(图16的顺序(2)),在此指针指向具有最长前缀范围的节点,然后由首标节点210的指针所指的第一节点220被穿过(图16的顺序(3))。其后,搜索第一节点220以找到包含长度为32的前缀的散列表。如果找到对应的散列表,则将目的地址与在散列表中的前缀比较以寻找匹配。如果在第一节点未找到包含长度为32的前缀的散列表。由于在跳转表中的每个节点保留着指向在节点前缀范围中的每个散列表的指针组,因此如果不存在包含长度为32的前缀的散列表,则对应的指针将是空的。
在图16的示例中,第一节点220仅仅具有两个散列表222和224,分别对应于前缀长度30和前缀长度26。因此,当搜索第一节点220以寻找散列表的时候,在前缀范围中的每个指针被检查,并且具有空值的指针被跳过。对应于不具有空值的指针的散列表将与原始目的地址比较以寻找匹配。
因此,不具有空值的第一个指针将指向散列表222并且目的地址被与在散列表222中的前缀相比较(图16的顺序(4))。如果在散列表222中没有找到目的地址,则将下一个具有非空指针的散列表,即具有前缀长度26的散列表224,与目的地址相比较(图16的顺序(5))。如果没有找到目的地址,并且在第一节点220中没有更多的散列表,则对于节点220查找失败。
当在节点220查找失败的时候,搜索指向在具有下一个最长前缀范围的跳转表中的下一个节点的指针。在这个示例中,有一个指针指示具有下一个最长前缀范围的跳转表中的下一个节点是节点230(图16的顺序(6))。因此,检查节点230以查看是否它具有任何散列表,并且因为没有,因此搜索在节点230中指向在跳转表中的下一个节点的指针。
在这种情况下,它移向在跳转表中的一个相邻的节点240(图16的顺序(7)),并且按照图15的步骤找到指向散列表242的指针。目的地址被与具有前缀长度15的散列表242中的前缀比较(图16的顺序(8))。当匹配发生时,随后路由查找操作成功终止(图16的顺序(9))。如果即使在最后一个节点260的最后一个散列表中页不能找到目的地址,则查找失败并且具有对应地址的分组被发送到具有默认路由项的路由。
跳转表的建立被表示在程序1、2和3中;向跳转表反射路由项的变化页被示出在程序4、5、6和7中;并且在程序8中示出了新型算法的一个必要部分,路由查找。
程序1:建立操作
var px:bitstring init b’0’;(*前缀*)
interface:integer init 0;(*下一个中继接口*)
W:integer init 32;(*地址比特的#,IPv4*)
k:integer init 8;(*固定的前缀范围,例如8或从0至W*的可变前缀范围*)hrange:integer init W;(*前缀范围的上边界*)lrange:integer init W-k+1;(*1前缀范围的下边界e*)MaxLevel:integer init[lg(W/k)];(*假设p=1/2(其中p确定是否以多个层级建立节点的可能性的概率)*)Buildup(list)(*建立跳转表*)
begin L:=[W/k](*L是等于W/k的最高限的整数并且与要产生的节点数密 切相关*); while L≥0 do Insert_Node(list,hrange,lrange); L:=L-1 hrange:=lrang-1; lrang:=hrang-k+1; end while end
程序2:在跳转表中插入一个节点Insert-Node(list,hrange,Irange)(*插入节点*)
begin
update[0..MaxLevel];
x:=list→header
for i:=list→level downto 0 dn
x:=x→forward[i]
end while
update[i]:=x;end forx:=x→forward[0]if[hrange,lrang]∈x→key then
x→value:=[hrange,lrang]
else
v:=RandomLevel()
if v>list→level then
for i:=list→level+1 to v do
update[i]:=list→header
end for
list→level:=v;
end if
x:=MakeNode(v,[hrange,lrang])
for i:=0 to level do
x→forward[i]:=update[i]→forward[i];
update[i]→forward[i]:=x;
end for
end if
end程序3:随机化层级
RandomLevel()(*随机判定节点层级*) begin v:=0; r:=Random();(*r ∈[0,1)*) while r<p and v<MaxLevel do v:=v+1; end while return v; end
程序4:搜索操作Search(list,px)(*在跳转表中搜索具有前缀px的节点*)
begin
x:=list→header:
for i:=list→level downto 0 do
x:=x→forward[i];
end while
end for
x :=x→forward[0];
if x→key=px then
for j:=hrange downto lrange-1 do
if hash-get(j,px);
return hash-get(j,px);
end if
end for
return error
end ifend程序5:插入操作
Insert(list,pretix,interface)(*插入路由项*) begin if hash-insert(list,pretix,interface)then else return error end if end<br/>
程序6:删除操作
Delete(list,pretix,interface)(*删除路由项*) begin if search(list,pretix)then hash-delete(pretix,interface); <!-- SIPO <DP n="18"> --> <dp n="d18"/> else return error end if end
程序7:更新路由项
Update(list,prefix,interface)(*更新路由项*) begin if search(list,prefix)then hash-delete(prefix,interface); else return error end if end
程序8:查找操作
Lookup(list,destaddr)(*查找具有最长前缀的路由*) begin x:=list→header; x:=x→forward[0]; for i:=[W/k]downto 0 do for j:=hrange downto lrange-1 do if compare(destaddr,hash-get(j,destaddr))then return hash-get(j,destaddr); end if end for x:=x→forward[i]; end for return error; end
现在,将参照附图说明按照本发明的路由选择技术的效率。图7A和7B是表示在因特网中的前缀长度分布的测量值的图。由图7A和7B的图所表示的数据指示在一个IPMA(因特网性能测量和分析)项目中最近的MAE-EASTNAP(网络访问点)中收集的数据。
在IPMA项目中收集的统计数据被广泛用做源数据来供路由查找算法设计者相互分析研究结果。现在,在MAE-EAST NAP中的路由器包含大量的路由项并被主要用做主干路由器的模型,PAIX NAP包含在当前IPMA项目中收集的最小数量的路由项,并被主要用做企业路由器的模型。
图7A和7B示出了局域格式,指示前缀长度16-28最常被引用。因此,所观察的结果指示要包含在本发明提出的改进的跳转表中的节点的数量将会大量减少。在IPMA((因特网性能测量和分析),
http://nic.merit.edu/ipma)中的另一个有趣的事情是由BGP一天增加或撤除的路由前缀的数量达到1,899,851(从1997年11月1日起)。这是为了请求25前缀更新/秒,并且向路由选择(或转发)表迅速反射改变的路由前缀是除了搜索时间外的一个重要因素。
现在,参照表2,将说明在新型算法和传统算法之间的区别。一般,对于一个算法的分析,对于在处理相应算法的中所需要的时间或对于使用的存储器的的最坏情况的复杂程度被利用大O符号来相互比较。表2示出了按照本发明的新型算法所需要的复杂程度,其中存在N个路由项,需要W个地址比特来表示每个地址,并且k是一个由算法决定的常数。
表2
建立 | 插入 | 删除 | LPM搜索 | 存储 | |
数组 | O(N) | O(N2) | O(N2) | O(N2) | O(N) |
散列表 | O(N) | O(I) | O(I) | O(N) | O(N) |
二进制搜索树 | O(NlgN) | O(N) | O(N) | O(lg(2N))° | O(N) |
检索树(trie) | O(NW) | - | - | O(W) | O(NW) |
基数检索树(trie) | O(NW) | - | - | O(W) | O(N) |
PATRICIA检索树(trie) | O(NW) | - | - | O(W2) | O(N) |
DP检索树(trie) | O(NW) | O(W) | O(W) | O(W) | O(N) |
LC检索树(trie) | O(NW) | - | - | O(W) | O(N) |
散列的基数树 | O(NW) | - | - | O(W/k) | O(N/W) |
没有回溯的基本BST方案 | O(NlgW) | O(lgN) | O(lgN) | O(lgW) | O(NlgW) |
不对称BST | O(NlgW) | O(N) | O(N) | O(lgW) | O(NlgW) |
线搜索(rope search) | O(NW) | O(N) | O(N) | O(lgW) | O(NlgW) |
三进制CAM | O(N) | O(I) | O(I) | O(I) | O(N) |
完整前缀树 | O(NlgW) | - | - | O(W/k) | O(N) |
二进制散列表搜索 | O(NlgW) | - | - | O(lg(W)) | O(N) |
多路和多栏搜索 | O(NW) | O(N) | O(N) | O(logkN) | O(N) |
大存储器结构 | O(N) | - | - | O(W/k) | O(N) |
跳转表 | O(NlgN) | O(lgN) | O(lgN) | O(NlgN) | O(N) |
我们的 | O(Nlg(W/k)) | O(lg(W/k)) | O(lg(W/k)) | O(W) | O(N) |
在表2中,为了避免与其他底数为10的对数混淆,lg表示底数为2的对数。
在IPv4的情况下,W对应于32,对于IPv6为128。在MAE-EAST和PAIX NAP中,路由项的数量N分别是大约50,000和6,000。在这种情况下,如果前缀范围等于8,则在具有k个散列的节点的跳转表中的k是4。对于IPv6的情况是16。
新型算法比传统的搜索树和检索树(trie)(Patricia检索树(trie)或LC检索树(trie))在路由选择表建立上、插入和删除操作上要好。而且,按照本发明的新型算法比二进制散列表搜索(Waldvogel,M.、Varghese,G.、Turner,J.和Plattner,B.的《可扩展高速IP路由选择查找(Scalable High Speed IP Routing Lookups)》,美国计算机学会SIGCOMM’97会刊,戛纳,法国,25-37页,1997)和完整前缀检索树(trie)(Tzeng,G.和Pryzygienda,T.的《关于快速地址查找算法(On FastAddress-Lookup Algorithms)》,IEEE通信中的选择区域期刊,第17卷,第6号,1067-1082页,1999年6月)在建立时间和插入或删除操作上要好。另外,从表2可以注意到复杂程度结果指示新型算法胜过一个纯粹的跳转表。
如上所述,按照本发明的算法按照IP地址的前缀范围利用跳转表和散列表来建立节点,这构成了随机算法。而且,本发明提供了利用跳转表的路由选择方法,其中路由项被按照在每个节点设置的前缀长度以散列表形式存储,因此最小化了路由查找时间和有效地管理相关的表。通过这样做,有可能执行高速路由查找。这个算法也可以被应用到IPv6,将用于未来的路由器。
另外,从复杂程度分析结果可以注意到,新型算法在各个方面比其他传统算法优越,尤其是在路由选择(或转发)表的建立、插入和删除操作上。而且,在诸如分布路由器结构或平行路由器结构的当代结构——其中在转发引擎中的转发表仍然与在路由选择处理器中的一个路由选择表分离——的当前趋势中,通过沿着路径仅仅发送更新的路由到路由器而不是所有的路由项,可以缓解存储器带宽或系统总线的争用。另外,查找时间的降低和在所有路由选择相关的表中的一致的路由选择信息的保持可以有益于在诸如QoS(服务质量)、多信道广播、IPSec和其他的其他因素上的性能增进。
虽然已经参照特定的实施例说明和图解了本发明,本领域的技术人员可以理解,在不脱离所附的权利要求所限定的精神和范围的情况下可以作出各种形式和细节上的改变。
Claims (36)
1.一种用于利用跳转表来建立用于一个IP(互联网协议)地址查找的路由选择/转发表的方法,包括步骤:
以预设的方法划分一个IP地址的前缀长度范围;
根据划分为前缀长度范围的数个组(cluster)建立具有最大层级的首标节点,所述首标节点指向在所述跳转表中的每个节点;以及
按照被划分的组的数量来建立子节点,每个子节点具有被划分的前缀长度范围作为关键字。
2.如权利要求1所述的方法,还包括步骤:在按照在每个子节点中的前缀长度提供的散列表中存储对应于在对应的前缀长度范围中的各个前缀长度的路由项。
3.如权利要求2所述的方法,其中路由项包括32比特或128比特。
4.如权利要求1所述的方法,其中子节点的首标节点的层级被随机设置。
5.如权利要求1所述的方法,其中前缀长度范围被固定地或可变地划分。
6.如权利要求1所述的方法,前缀长度范围被划分成通过子节点覆盖每个前缀长度范围。
7.如权利要求1所述的方法,其中路由选择/转发表被分别包括在一路由选择处理器和一转发引擎中。
8.一种用于利用跳转表建立IP路由选择/转发表的方法,包括步骤:
建立一个首标节点,用于指向每个节点以处理在跳转表中的每个节点;
建立具有以预设方法划分的IP地址的前缀范围作为关键字的多个子节点;和
按照前缀长度建立散列表,来按照在每个子节点中的对应前缀长度范围中的前缀长度来存储路由项。
9.如权利要求8所述的方法,还包括步骤:在散列表中存储与对应前缀相匹配的路由项。
10.如权利要求8所述的方法,其中随机设置子节点的首标节点的层级。
11.如权利要求8所述的方法,其中前缀长度范围固定地或可变地划分。
12.如权利要求8所述的方法,其中前缀长度范围被划分成应通过多个子节点覆盖每个前缀长度范围。
13.如权利要求8所述的方法,其中路由项由32或128比特组成。
14.如权利要求8所述的方法,其中首标节点具有+∞关键值和索引为0到最大层级减一的正向指针。
15.如权利要求8所述的方法,其中路由选择/转发表被分别包括在路由选择处理器和转发引擎中。
16.一种用于利用跳转表来搜索路由选择/转发表的方法,其中根据在每个按照一个IP地址的前缀长度范围的分配建立的节点中设置的前缀长度来以散列表的形式存储路由项,所述方法包括步骤:
寻找一个节点,其中设置了对应于要搜索的路由的前缀长度的前缀范围;
寻找一个散列表,它具有与在找到的节点中要搜索的路由相同的前缀长度;以及
从找到的散列表中找到搜索的路由。
17.如权利要求16所述的方法,其中节点寻找步骤包括步骤:
寻找一个节点,用于从跳转表的首标节点的最大层级指向;
比较所找到的节点的前缀长度范围与所搜索的路由的前缀长度;和
当所搜索的路由的前缀长度不对应于所找到的节点的前缀长度范围的时候,寻找在首标节点的下一个层级被指向的一个节点。
18.如权利要求16所述的方法,其中跳转表包括一个首标节点和每个具有以降序预设的范围内的关键字并在与各个前缀长度相关的散列表中存储对应于各个前缀长度的路由项的多个节点。
19.如权利要求16所述的方法,其中路由选择/转发表被分别包括在一个路由选择处理器和一个转发引擎中。
20.如权利要求16所述的方法,其中路由项由32比特或128比特构成。
21.一种用于利用跳转表来更新路由选择/转发表的方法,其中根据在每个按照一个IP地址的前缀长度范围产生的节点中设置的前缀长度来以散列表的形式存储路由项,所述方法包括步骤:
寻找一个节点,其中设置了对应于要更新的路由的前缀长度的前缀范围;
搜索一个散列表,它具有与在找到的节点中要更新的路由相同的前缀长度;以及
当找到散列表的时候更新在散列表中的对应的路由。
22.如权利要求21所述的方法,其中节点寻找步骤包括步骤:
寻找一个节点,用于从跳转表的首标节点的最大层级指向;
比较所找到的节点的前缀长度范围与要更新的路由的前缀长度;和
当要更新的路由不对应于所找到的节点的前缀长度范围的时候,寻找在首标节点的下一个层级被指向的一个节点。
23.如权利要求21所述的方法,其中路由更新步骤包括步骤:加入、改变或删除要更新的路由。
24.如权利要求21所述的方法,还包括步骤:
当没有找到散列表的时候,建立具有与要更新的路由相同前缀的散列表;知
在建立的散列表中插入要更新的路由。
25.如权利要求21所述的方法,其中跳转表包括一个首标节点和每个具有以降序预设的范围内的关键字并在与各个前缀长度相关的散列表中存储对应于各个前缀长度的路由项的多个节点。
26.如权利要求21所述的方法,其中路由选择/转发表被分别包括在一个路由选择处理器和一个转发引擎中。
27.如权利要求21所述的方法,其中路由项由32比特或128比特构成。
28.一种利用跳转表的路由选择/转发表的路由查找的方法,其中根据在每个按照一个IP地址的前缀范围的分配产生的节点中预设的前缀长度来以散列表的形式存储路由项,所述方法包括步骤:
寻找从跳转表的第一节点开始的相邻节点;
比较一个目的地址与在对应节点的各个散列表;
当散列表包括目的地址的时候将匹配的前缀当作最长的前缀。
29.如权利要求28所述的路由查找方法,还包括步骤:当散列表不包括目的IP地址的时候寻找在散列表中的下一个节点。
30.如权利要求28所述的路由查找方法,其中跳转表包括一个首标节点和每个具有以降序预设的范围的关键字并在与各个前缀长度相关的散列表中存储对应于各个前缀长度的路由项的多个节点。
31.如权利要求28所述的路由查找方法,其中比较步骤包括步骤:
比较目的地址与在对应节点的散列表中的具有最长前缀长度的散列表;和
当在具有最长前缀长度的散列表汇总没有找到目的地址的时候,比较具有下一个最长前缀长度的散列表与目的地址。
32.如权利要求28所述的路由查找方法,其中路由选择/转发查找表被分别包括在一个路由选择处理器和一个转发引擎中。
33.如权利要求28所述的路由查找方法,其中路由项由32比特或128比特构成。
34.一种高速IP路由器,包括:
多个线路卡模块,每个配置了一个转发引擎,通过它输入和输出分组。
一交换结构,用于在内部端口之间交换分组;和
一路由选择处理器,包括一个具有跳转表结构的路由选择表,所述跳转表结构包括一个首标节点和每个按照一个IP地址的前缀范围而被建立、具有前缀长度范围作为关键字和按照设置的前缀长度以散列表的形式存储路由项的多个节点。
35.一种高速IP路由器,包括:
多个线路卡模块,每个配置了具有跳转表结构的一个转发引擎,所述跳转表结构包括一个首标节点和每个按照一个IP地址的前缀范围而被建立、具有前缀长度范围作为关键字和按照设置的前缀长度以散列表的形式存储路由项的多个节点;
一交换结构,用于在内部端口之间交换分组;和
一路由选择处理器,用于控制整体的路由选择操作。
36.如权利要求35所述的高速IP路由器,其中路由选择处理器包括一个一个具有跳转表结构的路由选择表,所述跳转表结构包括一个首标节点和每个按照一个IP地址的前缀范围而被建立、具有前缀长度范围作为关键字和按照设置的前缀长度以散列表的形式存储路由项的多个节点。
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US25714800P | 2000-12-22 | 2000-12-22 | |
US60/257,148 | 2000-12-22 | ||
KR2001-0007568 | 2001-02-15 | ||
KR10-2001-0007568A KR100493099B1 (ko) | 2000-12-22 | 2001-02-15 | 고속 인터넷프로토콜 라우터의 라우팅/포워딩 룩업 및라우팅 테이블 관리 |
KR20010007568 | 2001-02-15 | ||
US10/022,210 US7031320B2 (en) | 2000-12-22 | 2001-12-20 | Apparatus and method for performing high-speed IP route lookup and managing routing/forwarding tables |
US10/022,210 | 2001-12-20 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1404591A true CN1404591A (zh) | 2003-03-19 |
CN100428225C CN100428225C (zh) | 2008-10-22 |
Family
ID=46150048
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB018054978A Expired - Fee Related CN100428225C (zh) | 2000-12-22 | 2001-12-21 | 执行路由查找和管理路由选择/转发表的装置和方法 |
Country Status (8)
Country | Link |
---|---|
US (1) | US7031320B2 (zh) |
EP (1) | EP1344152B1 (zh) |
JP (1) | JP3790217B2 (zh) |
CN (1) | CN100428225C (zh) |
AU (1) | AU2002217593B2 (zh) |
BR (1) | BR0108595A (zh) |
CA (1) | CA2400343C (zh) |
WO (1) | WO2002052442A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100530182C (zh) * | 2006-10-17 | 2009-08-19 | 中兴通讯股份有限公司 | 一种通信系统中字符串匹配信息的处理方法 |
CN1633111B (zh) * | 2005-01-14 | 2010-04-28 | 中国科学院计算技术研究所 | 高速网络业务流分类方法 |
CN101133412B (zh) * | 2003-12-10 | 2010-10-27 | 思科技术公司 | 在设备中向预订客户端分发相关路由选择信息库更新 |
CN102299971A (zh) * | 2010-06-25 | 2011-12-28 | 深圳市邦彦信息技术有限公司 | 基于fpga的快速地址查找算法 |
CN103780490A (zh) * | 2012-10-17 | 2014-05-07 | 中兴通讯股份有限公司 | 一种更新路由查找树的方法及装置 |
CN112134805A (zh) * | 2020-09-23 | 2020-12-25 | 中国人民解放军陆军工程大学 | 基于硬件实现的快速路由更新电路结构及更新方法 |
Families Citing this family (95)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7191168B1 (en) * | 1999-08-27 | 2007-03-13 | At&T Corp. | Fast prefix matching of bounded strings |
US7296089B2 (en) * | 1999-08-27 | 2007-11-13 | At&T Corp. | Method for improving web performance by adapting servers based on client cluster characterization |
US7274697B2 (en) * | 2000-11-16 | 2007-09-25 | Tensilica, Inc. | Fast IP route lookup with 16/K and 16/Kc compressed data structures |
US6963921B1 (en) * | 2001-02-16 | 2005-11-08 | 3Com Corporation | Method and apparatus for hardware assisted TCP packet re-assembly |
US7286532B1 (en) * | 2001-02-22 | 2007-10-23 | Cisco Technology, Inc. | High performance interface logic architecture of an intermediate network node |
US6985493B1 (en) * | 2001-02-23 | 2006-01-10 | Cisco Technology, Inc. | Message aggregator for channelized interface programming |
US7227842B1 (en) | 2001-04-24 | 2007-06-05 | Tensilica, Inc. | Fast IP packet classification with configurable processor |
US7230912B1 (en) * | 2001-06-14 | 2007-06-12 | Juniper Networks, Inc. | Sampling to a next hop |
US7315900B1 (en) | 2001-06-20 | 2008-01-01 | Juniper Networks, Inc. | Multi-link routing |
US7418536B2 (en) * | 2001-07-30 | 2008-08-26 | Cisco Technology, Inc. | Processor having systolic array pipeline for processing data packets |
US7382787B1 (en) | 2001-07-30 | 2008-06-03 | Cisco Technology, Inc. | Packet routing and switching device |
US20030028530A1 (en) * | 2001-08-06 | 2003-02-06 | Srikanth Nagaraja | Method and apparatus for accelerating search functions |
US20030084219A1 (en) * | 2001-10-26 | 2003-05-01 | Maxxan Systems, Inc. | System, apparatus and method for address forwarding for a computer network |
US7035256B1 (en) * | 2001-10-31 | 2006-04-25 | Redback Networks Inc. | Method and apparatus for a routing information base |
US7007101B1 (en) * | 2001-11-09 | 2006-02-28 | Radisys Microware Communications Software Division, Inc. | Routing and forwarding table management for network processor architectures |
JP3627697B2 (ja) * | 2001-11-16 | 2005-03-09 | 日本電気株式会社 | パケットの宛先検索システム |
US7813346B1 (en) | 2001-11-21 | 2010-10-12 | Juniper Networks, Inc. | Filter-based forwarding in a network |
JP3725070B2 (ja) * | 2001-12-21 | 2005-12-07 | 株式会社東芝 | ネットワークシステム、ルータ、ホスト、プレフィクス管理方法及びipアドレス管理方法 |
US7519055B1 (en) * | 2001-12-21 | 2009-04-14 | Alcatel Lucent | Optical edge router |
US7085846B2 (en) * | 2001-12-31 | 2006-08-01 | Maxxan Systems, Incorporated | Buffer to buffer credit flow control for computer network |
US7106740B1 (en) * | 2002-01-02 | 2006-09-12 | Juniper Networks, Inc. | Nexthop to a forwarding table |
US7180887B1 (en) * | 2002-01-04 | 2007-02-20 | Radisys Patent Properties | Routing and forwarding table management for network processor architectures |
US8014395B1 (en) * | 2002-01-10 | 2011-09-06 | Ericsson Ab | Method and apparatus for processing labels |
US7307995B1 (en) * | 2002-04-05 | 2007-12-11 | Ciphermax, Inc. | System and method for linking a plurality of network switches |
US20030202510A1 (en) * | 2002-04-26 | 2003-10-30 | Maxxan Systems, Inc. | System and method for scalable switch fabric for computer network |
KR101008195B1 (ko) * | 2002-06-21 | 2011-01-17 | 톰슨 라이센싱 | 선형적으로 확장가능한 방송 라우터 장치 |
US6996562B2 (en) * | 2002-07-29 | 2006-02-07 | Microsoft Corporation | Method and data structure for performing regular expression searches in a fixed length word language |
US20040030766A1 (en) * | 2002-08-12 | 2004-02-12 | Michael Witkowski | Method and apparatus for switch fabric configuration |
US7289500B1 (en) | 2003-07-17 | 2007-10-30 | Novell, Inc. | Method and system for reliable multicast data transmission |
US8438302B2 (en) * | 2002-08-22 | 2013-05-07 | International Business Machines Corporation | Splitting and sharing routing information among several routers acting as a single border router |
US6934252B2 (en) * | 2002-09-16 | 2005-08-23 | North Carolina State University | Methods and systems for fast binary network address lookups using parent node information stored in routing table entries |
CN1319347C (zh) * | 2002-10-28 | 2007-05-30 | 智邦科技股份有限公司 | 路由方法和路由系统 |
KR100462864B1 (ko) * | 2002-11-22 | 2004-12-17 | 삼성전자주식회사 | 아이피브이6에서 인터페이스 아이디를 이용한 라우팅테이블 관리 방법 |
US7339930B2 (en) * | 2002-11-22 | 2008-03-04 | Sun Microsystems, Inc. | Method and apparatus for performing an address lookup using a multi-bit trie with backtracking |
US7536476B1 (en) | 2002-12-20 | 2009-05-19 | Cisco Technology, Inc. | Method for performing tree based ACL lookups |
KR100612315B1 (ko) * | 2003-02-20 | 2006-08-16 | 삼성전자주식회사 | 핑퐁 방지 기능이 구비된 분산형 라우터 및 그를 이용한핑퐁 방지 방법 |
US7483430B1 (en) * | 2003-02-28 | 2009-01-27 | Cisco Technology, Inc. | Hierarchical hash method for performing forward route lookup |
US7394809B2 (en) * | 2003-03-31 | 2008-07-01 | Intel Corporation | Method and apparatus for packet classification using a forest of hash tables data structure |
US7453883B1 (en) * | 2003-04-14 | 2008-11-18 | Cisco Technology, Inc. | Method for compressing route data in a router |
US9258765B1 (en) * | 2003-05-08 | 2016-02-09 | Dynamic Mesh Networks, Inc. | Chirp networks |
US7418505B2 (en) * | 2003-05-26 | 2008-08-26 | Ewha University Industry Collaboration Foundation | IP address lookup using either a hashing table or multiple hash functions |
US20050018683A1 (en) * | 2003-07-21 | 2005-01-27 | Zhao Yigiang Q. | IP address storage technique for longest prefix match |
US7840696B2 (en) | 2003-07-25 | 2010-11-23 | Broadcom Corporation | Apparatus and method for classifier identification |
US7362763B2 (en) * | 2003-09-04 | 2008-04-22 | Samsung Electronics Co., Ltd. | Apparatus and method for classifying traffic in a distributed architecture router |
US7366167B2 (en) * | 2003-09-19 | 2008-04-29 | Samsung Electronics Co., Ltd. | Apparatus and method for hairpinning data packets in an Ethernet MAC chip |
US20050063407A1 (en) * | 2003-09-23 | 2005-03-24 | Samsung Electronics Co., Ltd. | Apparatus and method for maintaining high-speed forwarding tables in a massively parallel router |
US7672302B2 (en) * | 2003-11-21 | 2010-03-02 | Samsung Electronics Co., Ltd. | Router using switching-before-routing packet processing and method of operation |
KR20050066903A (ko) * | 2003-12-27 | 2005-06-30 | 한국전자통신연구원 | 고속 라우팅 시스템에서의 패킷 포워딩 처리장치 및 그를이용한 라우팅 룩업 방법 |
US7433355B2 (en) * | 2004-02-09 | 2008-10-07 | Alcatel Lucent | Filter based longest prefix match algorithm |
US8090805B1 (en) * | 2004-02-17 | 2012-01-03 | Cisco Technology, Inc. | System and method for performing cascaded lookups to forward packets |
US7515588B2 (en) * | 2004-03-18 | 2009-04-07 | Intel Corporation | Method and apparatus to support a large internet protocol forwarding information base |
EP1596610B1 (en) * | 2004-05-11 | 2006-10-18 | Alcatel | Network element and method of mapping address information |
US20060045088A1 (en) * | 2004-08-25 | 2006-03-02 | Nokia Inc. | Method of using Patricia tree and longest prefix match for policy-based route look-up |
US7590119B2 (en) * | 2005-01-27 | 2009-09-15 | Cisco Technology, Inc. | Method and apparatus for context-based prefix updates in border gateway protocol |
US7831624B2 (en) * | 2005-06-24 | 2010-11-09 | Seagate Technology Llc | Skip list with address related table structure |
US8040884B2 (en) * | 2005-08-08 | 2011-10-18 | Cisco Technology, Inc. | Constraining multicast traffic between a layer 2 network device and a router |
US20070180128A1 (en) * | 2006-01-18 | 2007-08-02 | International Business Machines Corporation | User account validity definition in clustered computer systems |
KR100666996B1 (ko) * | 2006-01-19 | 2007-01-10 | 삼성전자주식회사 | 라우팅 시스템 및 라우트 업데이트 방법 |
US8161185B2 (en) * | 2006-04-24 | 2012-04-17 | Cisco Technology, Inc. | Method and apparatus for assigning IPv6 link state identifiers |
US7784022B2 (en) * | 2006-04-25 | 2010-08-24 | Sap Ag | Mapping a new user interface onto an existing integrated interface |
EP2055050A1 (en) * | 2006-07-27 | 2009-05-06 | University Of Florida Research Foundation, Inc. | Dynamic tree bitmap for ip lookup and update |
US8127278B2 (en) | 2006-09-28 | 2012-02-28 | Sap Ag | System and method for extending legacy applications with undo/redo functionality |
ITTV20070013A1 (it) * | 2007-02-05 | 2008-08-06 | Nice Spa | Sistema a bus e relativo protocollo di trasmissione |
US8640215B2 (en) * | 2007-03-23 | 2014-01-28 | Microsoft Corporation | Secure isolation of application pools |
US20090006804A1 (en) * | 2007-06-29 | 2009-01-01 | Seagate Technology Llc | Bi-level map structure for sparse allocation of virtual storage |
US8086820B2 (en) * | 2007-06-29 | 2011-12-27 | Seagate Technology Llc | Data structure for highly efficient data queries |
US8091094B2 (en) | 2007-10-10 | 2012-01-03 | Sap Ag | Methods and systems for ambistateful backend control |
TWI413910B (zh) * | 2008-01-25 | 2013-11-01 | Univ Nat Taiwan | 數值資料範圍區間查詢方法及系統 |
US7957396B1 (en) * | 2008-01-29 | 2011-06-07 | Juniper Networks, Inc. | Targeted flow sampling |
KR100962653B1 (ko) * | 2008-07-24 | 2010-06-11 | 이화여자대학교 산학협력단 | 블룸 필터 및 복수 해싱 구조를 사용한 ip 주소 검색방법 및 장치 |
US8255496B2 (en) | 2008-12-30 | 2012-08-28 | Juniper Networks, Inc. | Method and apparatus for determining a network topology during network provisioning |
US8959309B2 (en) * | 2009-06-18 | 2015-02-17 | Canon Kabushiki Kaisha | Skip list generation |
US8340636B2 (en) * | 2009-11-30 | 2012-12-25 | Airvana Llc | Determining if an access terminal is authorized to use an access point |
US8724624B2 (en) * | 2009-12-22 | 2014-05-13 | Cuneyt Bazlamacci | Systolic array architecture for fast IP lookup |
US9471696B2 (en) * | 2010-11-12 | 2016-10-18 | Yahoo! Inc. | Methods and systems for pathing analysis |
US8842673B2 (en) | 2010-11-22 | 2014-09-23 | Nec Corporation | Communication system, communication device, controller, and method and program for controlling forwarding path of packet flow |
US8891406B1 (en) | 2010-12-22 | 2014-11-18 | Juniper Networks, Inc. | Methods and apparatus for tunnel management within a data center |
US8615015B1 (en) * | 2010-12-30 | 2013-12-24 | Juniper Networks, Inc. | Apparatus, systems and methods for aggregate routes within a communications network |
US9065677B2 (en) * | 2012-07-25 | 2015-06-23 | Qualcomm Incorporated | Forwarding tables for hybrid communication networks |
US9172743B2 (en) * | 2012-12-31 | 2015-10-27 | Futurewei Technologies, Inc. | Scalable storage systems with longest prefix matching switches |
US9536016B2 (en) * | 2013-01-16 | 2017-01-03 | Google Inc. | On-disk multimap |
US9665623B1 (en) * | 2013-03-15 | 2017-05-30 | EMC IP Holding Company LLC | Key-value store utilizing ranged keys in skip list data structure |
US9825857B2 (en) | 2013-11-05 | 2017-11-21 | Cisco Technology, Inc. | Method for increasing Layer-3 longest prefix match scale |
US9442927B2 (en) | 2014-05-07 | 2016-09-13 | Red Hat Israel, Ltd. | Offline generation of compressed radix tree with key sequence skip |
US9361404B2 (en) | 2014-05-07 | 2016-06-07 | Red Hat Israel, Ltd. | Offline radix tree compression with key sequence skip |
US9396286B2 (en) | 2014-05-07 | 2016-07-19 | Red Hat Israel, Ltd. | Lookup with key sequence skip for radix trees |
IL233776B (en) * | 2014-07-24 | 2019-02-28 | Verint Systems Ltd | A system and method for adjusting domains |
US9979650B1 (en) | 2015-03-30 | 2018-05-22 | Juniper Networks, Inc. | Forwarding packets using a probabilistic filter and a grouping technique |
KR20170006742A (ko) * | 2015-07-09 | 2017-01-18 | 한국전자통신연구원 | 소프트웨어 라우터, 그 소프트웨어 라우터에서의 라우팅 테이블 검색 방법 및 라우팅 엔트리 갱신 방법 |
CN107040393B (zh) | 2015-08-21 | 2020-10-09 | 新华三技术有限公司 | 一种路由管理方法和设备 |
US10897483B2 (en) | 2018-08-10 | 2021-01-19 | International Business Machines Corporation | Intrusion detection system for automated determination of IP addresses |
GB2583962B (en) * | 2019-05-16 | 2022-08-31 | Rockley Photonics Ltd | Routing protocol and distributed router |
JP2020201656A (ja) * | 2019-06-07 | 2020-12-17 | ルネサスエレクトロニクス株式会社 | 検索回路 |
US11522796B2 (en) | 2019-09-05 | 2022-12-06 | Arista Networks, Inc. | Routing table selection based on utilization |
WO2023141378A1 (en) * | 2022-01-24 | 2023-07-27 | Salesforce, Inc. | Fast skip-list scan and insert |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU620994B2 (en) | 1989-07-12 | 1992-02-27 | Digital Equipment Corporation | Compressed prefix matching database searching |
US5796966A (en) | 1993-03-01 | 1998-08-18 | Digital Equipment Corporation | Method and apparatus for dynamically controlling data routes through a network |
US5671406A (en) * | 1995-10-18 | 1997-09-23 | Digital Equipment Corporation | Data structure enhancements for in-place sorting of a singly linked list |
US6011795A (en) | 1997-03-20 | 2000-01-04 | Washington University | Method and apparatus for fast hierarchical address lookup using controlled expansion of prefixes |
US6018524A (en) | 1997-09-09 | 2000-01-25 | Washington University | Scalable high speed IP routing lookups |
US6266706B1 (en) * | 1997-09-15 | 2001-07-24 | Effnet Group Ab | Fast routing lookup system using complete prefix tree, bit vector, and pointers in a routing table for determining where to route IP datagrams |
US6061712A (en) | 1998-01-07 | 2000-05-09 | Lucent Technologies, Inc. | Method for IP routing table look-up |
US6067574A (en) | 1998-05-18 | 2000-05-23 | Lucent Technologies Inc | High speed routing using compressed tree process |
US6526055B1 (en) * | 1998-10-20 | 2003-02-25 | Sun Microsystems, Inc. | Method and apparatus for longest prefix address lookup |
IT1305140B1 (it) * | 1998-10-27 | 2001-04-10 | Cselt Centro Studi Lab Telecom | Memoria per la ricerca di informazioni mediante analisi di prefissi inparticolare per la realizzazione di tabelle di instradamento in nodi |
US6237061B1 (en) * | 1999-01-05 | 2001-05-22 | Netlogic Microsystems, Inc. | Method for longest prefix matching in a content addressable memory |
US7027445B1 (en) * | 2000-05-26 | 2006-04-11 | Sun Microsystems, Inc. | Apparatus and method for finding the longest matching prefix in a router |
US7454429B2 (en) * | 2004-02-14 | 2008-11-18 | Alan S Rojer | Declarative Dispatch |
-
2001
- 2001-12-20 US US10/022,210 patent/US7031320B2/en not_active Expired - Fee Related
- 2001-12-21 BR BR0108595-6A patent/BR0108595A/pt not_active IP Right Cessation
- 2001-12-21 CA CA002400343A patent/CA2400343C/en not_active Expired - Fee Related
- 2001-12-21 AU AU2002217593A patent/AU2002217593B2/en not_active Ceased
- 2001-12-21 EP EP01272372.2A patent/EP1344152B1/en not_active Expired - Lifetime
- 2001-12-21 JP JP2002553673A patent/JP3790217B2/ja not_active Expired - Fee Related
- 2001-12-21 WO PCT/KR2001/002237 patent/WO2002052442A1/en active IP Right Grant
- 2001-12-21 CN CNB018054978A patent/CN100428225C/zh not_active Expired - Fee Related
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101133412B (zh) * | 2003-12-10 | 2010-10-27 | 思科技术公司 | 在设备中向预订客户端分发相关路由选择信息库更新 |
CN1633111B (zh) * | 2005-01-14 | 2010-04-28 | 中国科学院计算技术研究所 | 高速网络业务流分类方法 |
CN100530182C (zh) * | 2006-10-17 | 2009-08-19 | 中兴通讯股份有限公司 | 一种通信系统中字符串匹配信息的处理方法 |
CN102299971A (zh) * | 2010-06-25 | 2011-12-28 | 深圳市邦彦信息技术有限公司 | 基于fpga的快速地址查找算法 |
CN103780490A (zh) * | 2012-10-17 | 2014-05-07 | 中兴通讯股份有限公司 | 一种更新路由查找树的方法及装置 |
CN103780490B (zh) * | 2012-10-17 | 2018-03-30 | 中兴通讯股份有限公司 | 一种更新路由查找树的方法及装置 |
CN112134805A (zh) * | 2020-09-23 | 2020-12-25 | 中国人民解放军陆军工程大学 | 基于硬件实现的快速路由更新电路结构及更新方法 |
CN112134805B (zh) * | 2020-09-23 | 2022-07-08 | 中国人民解放军陆军工程大学 | 基于硬件实现的快速路由更新电路结构及更新方法 |
Also Published As
Publication number | Publication date |
---|---|
CA2400343C (en) | 2007-07-24 |
CN100428225C (zh) | 2008-10-22 |
EP1344152A4 (en) | 2009-07-01 |
US7031320B2 (en) | 2006-04-18 |
JP3790217B2 (ja) | 2006-06-28 |
EP1344152B1 (en) | 2015-12-16 |
BR0108595A (pt) | 2002-11-12 |
WO2002052442A1 (en) | 2002-07-04 |
JP2004517519A (ja) | 2004-06-10 |
AU2002217593B2 (en) | 2004-09-09 |
US20020118682A1 (en) | 2002-08-29 |
CA2400343A1 (en) | 2002-07-04 |
EP1344152A1 (en) | 2003-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1404591A (zh) | 执行高速互联网协议路由查找和管理路由选择/转发表的装置和方法 | |
CN1282104C (zh) | 使用tcam对数据流进行选择性路由的方法、系统和装置 | |
CN1148917C (zh) | 用于标识分组应被转发到网络的下一跳的地址的设备及其操作方法 | |
Nilsson et al. | IP-address lookup using LC-tries | |
US7660314B2 (en) | Apparatus and method for multi-protocol route redistribution in a massively parallel router | |
CN1171420C (zh) | 用于在网络中经由最优数据路径进行数据通讯的方法及系统 | |
Ravikumar et al. | EaseCAM: An energy and storage efficient TCAM-based router architecture for IP lookup | |
CN1270728A (zh) | 快速路由查找的方法和系统 | |
US8036126B2 (en) | System and method for compressing internet protocol routing tables | |
CN1859316A (zh) | 数据包传送装置 | |
CN1625869A (zh) | 分组交换多层通信网中的动态路由 | |
CN104580165B (zh) | 智慧协同网络中的一种协作缓存方法 | |
CN1863142A (zh) | 给数据流提供不同的服务质量策略的方法 | |
US6876655B1 (en) | Method for routing with a clue | |
CN108710629B (zh) | 基于命名数据网络的Top-k查询方法及系统 | |
CN1949740A (zh) | 针对bgp负载分担中路由下一跳变化的处理方法 | |
CN1744563A (zh) | 在以太网交换机上实现策略路由的方法 | |
CN1216473C (zh) | 支持多个下一跳的三态内容可寻址存储器查找方法及系统 | |
KR20040077376A (ko) | 필드레벨 트리를 이용한 패킷분류장치 및 방법 | |
CN105207904B (zh) | 报文的处理方法、装置和路由器 | |
CN101047625A (zh) | 一种策略路由装置和方法 | |
RU2233473C2 (ru) | Устройство и способ выполнения высокоскоростного поиска маршрутов протокола интернет и управления таблицами маршрутизации/пересылки | |
CN1477494A (zh) | 一种数据包递归流分类方法 | |
CN1719769A (zh) | 在网络设备中对接收数据包进行分类的方法 | |
CN1753389A (zh) | 波长路由光网络的实时软抢占方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
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: 20081022 Termination date: 20161221 |