CN1341314A - 使用压缩树转发表的网络路由器搜索引擎 - Google Patents

使用压缩树转发表的网络路由器搜索引擎 Download PDF

Info

Publication number
CN1341314A
CN1341314A CN00804339A CN00804339A CN1341314A CN 1341314 A CN1341314 A CN 1341314A CN 00804339 A CN00804339 A CN 00804339A CN 00804339 A CN00804339 A CN 00804339A CN 1341314 A CN1341314 A CN 1341314A
Authority
CN
China
Prior art keywords
address
pointer
layer
tree
field
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
CN00804339A
Other languages
English (en)
Other versions
CN1148917C (zh
Inventor
米楔尔·E·里普曼
儒赛尔·L·赫达
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.)
Peribit Networks Inc
Original Assignee
Redstone Communications Inc
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 Redstone Communications Inc filed Critical Redstone Communications Inc
Publication of CN1341314A publication Critical patent/CN1341314A/zh
Application granted granted Critical
Publication of CN1148917C publication Critical patent/CN1148917C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/742Route cache; Operation thereof

Abstract

网络路由设备在中央路由表(138、140、142)和分配的转发表中使用多层树(144,146,148)数据结构。每个结构的每一层与在所接收分组中出现的一个网络地址的不同字段相关联。每个结构中的指针用于标识下一跳网络的一个地址或者将被寻找下一跳地址的一个下一层树。一个未压缩树路由表使用直接寻址的树以便简化指针的存储和提取,并且下一树指针直接标识下一树。通过将在一层或多层上存储的指针数目减少到基本上为在该层上与网络地址相关的唯一下一跳地址的数目,根据未压缩路由表生成压缩树转发表。单个映射表将一层上的指针值映射到压缩树中下一层上的树的位置。下一跳指针查找逻辑电路(50,52,76,78)根据压缩树的结构执行查找。而且,查找逻辑电路存储和选择性地操作多个转发表以为虚拟路由操作提供支持。

Description

使用压缩树转发表的网络路由器搜索引擎
                    发明背景
本发明涉及数据网络领域,尤其涉及在一个网络中将数据分组从一个源节点择路发送到一个目的节点。
数据网络的一个主要功能是将数据分组或帧从一个源节点择路发送到一个或多个目的网络节点。当一个网络设备接收到一个分组或帧时,该设备检查该分组或帧以确定如何将其转发。在多个中间网络上类似的转发判决是必需的,直到该分组或帧在一个指定目标节点上被接收。这种操作与使用交换技术的网络不同,在使用交换技术的网络中将路由预先建立为“电路”,并且每个网络设备仅在其相关电路上转发每个接收到的分组。路由网络的一个例子是互联网,它使用称作网际协议(IP)的一种协议来通过互联网择路发送数据分组。
对互联网和其它数据网络业务的需求不断增加。因此,诸如在宽带数据信道上承载的IP业务的路由数据业务的数量不断增加,所述宽带数据信道例如是在公用电话系统中用于承载数据和数字话音的公知的T1和T3信号。随着这种路由业务的增加,对可以进行高速转发判决的高吞吐量路由器的需要不断增加。
为了实现将数据分组通过一个网络从一个源节点转发到一个目的节点的任务,数据网络通常使用一个分布式路由程序。网络路由器维护路由表以执行路由功能。当一个分组到达一个路由器时,在分组中包含的地址(例如目的地址)被用于从路由表中提取出一个表目,该表目指示沿着指定路径到目的节点的下一跳(hop)或下一节点。然后,路由器将该分组转发到所指示的下一跳节点。在随后的路由器节点上重复该处理直到该分组到达指定的目的节点。
根据各种分布式路由协议中的任意一种来维护路由器中的路由表。例如,一种公知的路由协议称作ODPF,为“Open Shortest PathFirst(开放最短路径优先)”的缩写。路由器收集相邻节点之间网络链路的工作和停用的相关信息,并根据路由协议在路由器之间传送信息。根据网络条件按照需要创建、更新和删除路由。所有的路由相关信息被共同包含在路由器所维护的路由表中。
一个路由表的表目包括一个诸如目的地址的地址与一个相关的下一跳地址之间的一个由两部分组成的映射(2-part mapping)。目的地址部分通常包括一个子网掩码值,表示一些地址比特将被准确地匹配,而其它的比特则不需要。网际协议(IP)路由表中一个表目的例子如下:
128.4.0.0/16       100.0.0.0
这个表目使用将32比特的IP地址表示为用小数点隔开的四个字节的字符串(最高有效位到最低有效位)的熟知惯例,其中每个字节的数值作为一个十进制的等价值给出。这个表目表示目的地址的最高16个有效比特等于128.4(二进制为1000000 0000100)的任一分组应当被择路发送到IP地址为100.0.0.0(二进制为0110010000000000 00000000 00000000)的网络节点。一个匹配目标地址的例子是128.4.10.9;一个非匹配地址的例子是128.120.0.0。
上述例子表示用于路由目的的IP地址集合的概念。最高16个比特等于128.4的所有IP地址被择路发送到相同的下一跳节点。因为IP地址是32个比特的数值,存在2(32-16)=216=64K个这样的地址。这些地址据称被“集合”在路由表中。显然,较短的子网掩码对应于较大的集合,而较长的子网掩码对应于较小的集合。另外,这种用于一个路由表目的格式也可以用于路由概要,一种由路由协议使用的类似于集合的技术。
从所有可能的目的地址的集合到所有可能的下一跳的集合的映射可以被表示为一个二进制树,其中目的地址的每个比特指示在搜索下一跳时在相应层次上采用哪一个分支。对于一个n比特的地址,需要一个高度为n的树。一个完全填充的树具有在2n个不同搜索路径末端上的2n个不同的叶,其中每一叶对应于一个下一跳的值。然而,表示一组路由表目的树通常包含很少的叶。所需要的叶的数量受路由表中表目数量以及网络地址集合程度的影响。如果网络地址空间被划分成较多的子空间,每个子空间被指定一个不同的路由,则比将网络地址空间划分成较少的具有不同路由的子空间需要更多的叶。大多数网络使用足够的地址集合,以便即使在大网络中,用于在给定节点上路由的映射树也将是“稀疏的”,即不是完全填充的。例如,上面给出的路由表目对应于在树的位置16上的单个叶,并且它覆盖从128.4.0.0到128.4.255.255的64K的地址范围。
在概念上查找下一跳地址的最简单的方式是使用一个常规的随机访问存储器,它具有一个二进制地址输入和与每个唯一的地址值相关的一个数据存储位置。下一跳的值存储在对应于每个地址的存储位置上。通过简单地提取在由所接收分组中包括的地址所指示的存储器位置上所存储的值在存储器中查找下一跳。当一组地址被集合时,例如在上述例子中,由该集合使用的下一跳的值将被复制在存储器中的每一个被集合的地址上。因此,在上述例子中,表目100.0.0.0将出现在这一存储器的从128.4.0.0到128.4.255.255的地址上。
虽然概念上很简单,但是这种方法对于典型的网络地址空间实际上并不可行。根据典型的网络地址长度所需要的存储量过大。例如,完全解码的32比特的IP地址需要4百万个存储位置。而且,当树非常稀疏时,这种方法效率很低。因此,网络路由器通常使用存储和提取树单元的替代方法。
当前许多路由器使用所谓的帕特丽夏(Patricia)树,它表示从目的地址到下一跳的映射。在搜索过程中,以二进制的方式从最高有效比特到最低有效比特遍历一个帕特丽夏树。与上述过分简单的方法相比,帕特丽夏树结构实现高得多的存储效率。然而,最坏情况的搜索可能需要32次存储器访问。因此,使用帕特丽夏树的路由器性能不希望地敏感于网络拓扑结构和地址分配。
路由器中的逻辑分区和功能部件的布局也影响路由器性能。用于当前路由器的普通结构是由一个开关结构互连的线路卡的集合。每个线路卡具有一个或多个端口,每个端口连接到一个相应的物理网络介质。当一个分组到达一个线路卡接口时。线路卡上的转发引擎确定这个分组应当被转发到哪一个端口,然后通过开关结构将该分组转发到相应的线路卡。接收线路卡再将该分组发送到适当的网络段上。转发引擎可以使用执行专用转发软件的通用微处理器来实现,也可以使用专用硬件来实现。当查找速度相对于诸如便于修改的其它因素不重要时,倾向于使用软件方法。当查找速度非常重要时,例如在高速网络使用的线路卡上,倾向于使用硬件方法。
维护在上述类型的路由器中诸如系统控制器的中央部件中的路由信息,并为了每个转发引擎与系统控制器协商以获得用于每个所接收分组的路由,这是公知的。这种方法的优点在于仅路由信息的单个拷贝被保存在路由器,所以可以轻易地更新信息,并将最新更新的信息自动用于确定路由。然而,这种路由器中的系统控制器很快成为瓶颈,尤其因为最近网络业务量的飞速发展。
为了降低容量有限的系统控制器对路由器性能的限制,将路由信息分配在路由器中多个可随意访问的位置上已经变得常见。在一种方法中,在线路卡上使用一个转发表以将每个接收分组的目的地址映射到该分组应当被转发到的端口的标识。该转发表包含来自路由表的信息子集。当出现对路由表的更改时,系统控制器更新各个线路卡上的转发表。分布式转发表的使用增加了路由器中的并行性。而且,如果转发表足够小,它们可以被放入线路卡上的更快的访问存储器中,这进一步增强了性能。
在一些路由器中,转发表是路由表的一个或多个部分的高速缓存拷贝。这种技术使用在网络业务中出现的地址位置。当高速缓存中的使用率高时,大多数的下一跳的查找在线路卡上完成。然而,存在高速缓存中的使用率不能被维持在足够高的水平上的情况。如果高速缓存相对于线路卡在给定时间间隔上接收的不同地址的数量太小,高速缓存可能开始颠簸,当系统颠簸(thrashing)出现时,表目被过早地从高速缓存中反复换出,大大降低了使用率。在高速缓存未实现的每个查找导致延迟,而所需要的表目被从系统控制器中取出。因此,路由器的整体性能被降低。
Degermark(德格码克)等人在标题为“Small Forwarding Tablesfor Fast Routing Lookups(用于快速路由查找的小转发表)”的论文中描述了一种技术,在线路卡中使用包含所有必需的路由信息的小转发表。每个线路卡上的微处理器使用在相应转发表中存储的数据执行一个查找算法。该技术使用表示从目的网络地址到下一跳地址的映射的三层前缀树,并使用前缀树的固有稀疏来实现很高的存储效率。前缀树的第一层与到达路由器的分组的IP地址的比特<31:16>相关。前缀树的第二层和第三层分别与IP地址的比特<15:8>和<7:0>相关。
在Degermark等人的技术中,集合最多共同具有16个最高有效比特的地址的路由表目在第一层树上具有相应的表目,在第二层或者第三层树上不需要空间。集合共同具有17和24之间的最高有效比特的路由表目在第一层和第二层树上都需要空间。对于这些路由表目,第一层树包含指向包括相应叶的第二层树中的块(chunk)的节点表目。对于集合共同具有25和32之间的最高有效比特的路由表目,第二层树中的块包含指向包括叶表目的第三层树中块的节点表目。使用IP地址的相应比特尽可能深地搜索各层以提取所需的下一跳的值。
在Degermark等人的论文中所述的技术实现了很高的存储效率,所以小但完整的转发表可以被存储在每个线路卡上。在前缀树的每一层上,仅使用存储器存储所需要的叶和节点信息;因为树的稀疏导致的空存储很少或者没有。在每一层中的多层映射结构将集合地址映射到由该集合的所有成员使用单个叶或节点表目上。因此,对于一个示范性的路由表目,例如(128.4.0.0/16-100.0.0.0),Degermark转发表将包含单个叶,并且从128.4.0.0到128.4.255.255范围内的每个地址都将被映射到该单个叶的位置上。
虽然在Degermark等人的论文中所述的技术实现了很高的存储效率,这是以复杂性为代价的,特别是在每一层上使用多层映射以根据IP地址的相应比特来提取所需的节点或叶。然而,将希望以更适合于高性能硬件设备的方式来执行下一跳的查找。而且,Degermark等人的论文并未解决当添加、删除或更改路由时可能因为动态网络操作过程中创建和维护各种数据结构的方式所导致的性能问题。实际的路由器必须具有为了跟上路由拓扑结构的改变,根据所遵守的路由协议的指示来再生转发表的一个高效的装置。
                    发明概述
为了实现本发明,公开了网络路由设备以及相关的方法和数据结构,其中实现了用于大量网络数据流的高速路由查找。完整的转发表被有效地存储在每个线路卡的存储器中,并被组织以便简单、快速和有效地执行路由查找。而且,以能够快速和有效地更新转发表的方式来组织中央路由表,以便路由器在维持很高的路由查找速率的同时可以快速地响应网络拓扑结构的改变。
所公开的网络路由器设备使用一种多层前缀树转发表,该表以在硬件上能够进行快速和有效查找的方式来组织。第一层树由网络地址的第一字段来直接寻址,以便仅使用单次存储器查找可以提取一个指针。通过在其它层上提供密集或稀疏树的存储来实现压缩。密集树被直接寻址,以便使用单次存储器访问来实现指针查找。稀疏树被用于存储指针,使用比密集树低的冗余度。稀疏树中指针的数量在与相应地址组相关的唯一路由表目数量的量级上。一个映射表被用于将来自一层上的指针映射到较低的下一层上的树上,以使提取较低层的树所需的存储器访问次数最小。
路由设备保存一个未压缩的多层树路由表以提高效率,使用该表在操作过程中重新创建转发表。为了便于插入和删除,未压缩的树使用指向一个链接列表中所存储的路由表目的指针,或者使用直接指向下一层的树而没有任何映射结构介入的指针。在每一层上的树被直接寻址,以便在单次直接存储器访问中实现每个指针的查找。通过遍历未压缩的树并在遍历过程中对每一个表目执行一组常规操作,以直接的方式生成转发表。以循环的方式根据未压缩路由表的各层生成转发表的各层。
路由设备还使用特定的查找逻辑来高速地执行快速查找。通过提供在每个线路卡上多个转发表的存储和使用以及一个用于为一个给定查找选择适当转发表的协议,路由设备支持所谓的“虚拟”路由器。作为基本路由功能的直接扩展,这些特征使路由设备能够支持多个虚拟网络,大大扩展了所公开设备的可能应用范围。
本发明的其它方面、特征和优点在下述详细说明书中被公开。
                附图的简要说明
图1是根据本发明原理的网络路由器设备的方框图;
图2是图1的网络路由器设备中用户接口线路卡的方框图;
图3是图1的路由器中用于一个核心网络的接口线路卡的方框图;
图4是一个示意图,表示在图2的用户接口线路卡中如何处理从网络接收到的数据;
图5是一个示意图,表示在图3的核心网络接口线路卡中如何处理从网络接收到的数据;
图6是一个示意图,表示如何根据在图1的网络路由器设备所接收的分组中出现的目的地址来获得转发地址;
图7是图1的网络路由器设备中系统控制器中路由表的未压缩树数据结构表示法的示意图;
图8是图2和3的线路卡中转发表的压缩树数据结构表示法的示意图;
图9是图2和3的线路卡中地址解析逻辑和地址解析存储器的方框图;
图10是图9的地址解析存储器的存储器分配图,表示如何在其中存储多个压缩树数据结构,例如图8的压缩树数据结构;
图11是一个示意图,表示图8的压缩树数据结构被存储在地址解析存储器和由图9的地址解析逻辑访问的方式;
图12至14是流程图,表示如何根据图7的未压缩树生成图8的压缩树;和
图15是图9的地址解析存储器的一部分的存储器分配图,表示其中存储的单个压缩树数据结构的一部分的详细结构。
                    本发明的详细描述
图1表示一个路由器10,包括下一个系统控制器卡12、多个DS3卡14和一个OC3卡16。如本领域公知的,缩写DS3表示数据速率近似为45Mb/s的复用数字信号,代表28个复用DS1信号或672个64Kb/s的DS0信号。DS3和DS1也分别被称作“T3”和“T1”。缩写“OC3”表示一个155Mb/s的光载波信令协议。卡14和16连接到一个互连总线18以使卡能够交换数据。DS3卡被连接到在图1中被表示为“用户段”20的DS3网络段。每个卡14被连接到三个DS3段,将这些段标记为用于每个卡14的0、1和2。OC3卡16被连接到表示为“核心网络段”22的一个OC3段。如段20和22的名字所表示的,路由器10将数据网络中的中间层次位置上使用。例如,路由器10在经客户段20可到达的多个客户和经核心网络段22可到达的较少的大业务量中长距离数据通信设备之间传输分组。
在一种公知的方式中,通常根据由国际标准化组织(ISO)颁布的公知的7层开放系统互连(OSI)模型的原理,以分层的方式执行段20和22上的通信。下面的说明使用根据该模型的描述术语。具体地,设备10主要工作在OSI模型的最低三层上,从下至上为物理层、数据链路层和网络层。在网络层上,设备10使用网际协议(IP)在各个源网络节点和目的网络节点之间择路发送数据报(尽管IP并不严格地遵守OSI模型)。如下所述,在第二层上,设备10使用包括点到点协议(PPP)、帧中继和异步传输模式(ATM)的多种协议。如下所述,设备10还在物理层上使用多种协议。
在物理层上,每个客户段20使用工作在大约45Mbps上的信道化T3协议。信道化T3信号包括28个DS1信道,每个DS1信道工作在1.544Mbps上,并且每个DS1信道承载24个“DS0”信道,每个DS0信道工作在最高64Kbps上。如下文更详细地描述的,这些信道在路由出现的网络层上被分配给更高层的“电路”。核心网络段22使用155Mb/s的OC3光信令。如下所述,OC3业务同样被分配给更高层的“电路”。
系统控制器12执行多种操作以支持路由器10的整个操作。由系统控制器12执行的一种操作是管理网络层上的路由功能。系统控制器12维护一个很大的路由数据库,称作路由表,它用于使设备10能够进行如何转发在段20或22上接收到的分组的相关判决。路由表反映路由器10所知的整个网络的总体拓扑结构。系统控制器12与网络中的相邻路由器通信以交换拓扑相关信息,从而使路由表跟上网络拓扑的变化。因而,例如当在一个网络段上配置一个新节点时,该信息被广播到整个网络以使每个路由器更新其路由器。
如上所述,设备10使用路由表中的信息以进行如何转发一个分组的相关判决。以下面将更加详细描述的一种方式,设备10将信息排列在路由表中,并以路由判决采取在卡14和16中查找的形式的方式在卡14、16之间分配信息。系统控制器12并不陷于逐个查找的基础,而是不断地更新和分配路由信息以使每个卡14和16独立地执行查找。查找以很高的速率进行,所以设备10有效地支持大量的要求高数据速率的用户。作为其路由相关操作的一部分,系统控制器12确定何时必须更新卡14和16上的路由信息,并重新生成信息和将其广播给这些卡。信息以并不干扰卡14和16上的查找操作的方式被广播。
图1所示的结构将是代表性的。在可选的实施例中,可能存在不同数量的客户接口卡14和/或核心接口卡16。而且,这些卡可以根据其它的协议工作。在一些实施例中,图1所示的分离的功能单元可以在物理上以其它的方式排列,例如在单个电路板上。
图2表示DS3卡14的结构。高层数据链路控制(HDLC)控制器30将一个DS3数据流(例如如图所示的DS3数据流0)作为HDLC帧发送给一个客户段20,并从其接收。HDLC控制器30经总线34连接到分组装拆逻辑电路32。DS3卡14还包括一个DS3转发控制器36,它和转发控制器存储器38和总线收发信机40一起被连接到总线42。桥接电路44提供总线34上的设备和总线42上的设备之间的通信路径。上述设备是与一个DS3数据流相关的逻辑接口单元46的一部分,在这种情况下如所示的是数据流0。卡14包含三个这样的单元46以连接到图1的三个DS3客户网络段20。
每个接口单元46中的收发信机40被连接到提供到地址解析逻辑电路50的通信的另一总线48,地址解析逻辑电路50又连接到地址解析存储器52。接口控制器54具有相关的接口控制器存储器56,并经收发信机58与总线48通信。
图3表示OC3卡16的结构。分组流逻辑电路60向核心网络段22发送OC3数据流,并从其接收OC3数据流。OC3数据在分组存储器62中被缓冲。分组流逻辑电路60与连接到图1的互连总线18的分组装拆逻辑电路64相连接。分组流逻辑电路60还经总线70与一个OC3转发控制器66和相关的转发控制器存储器68相连接。收发信机72被连接在总线70和提供到地址解析逻辑电路76的通信的另一总线74之间,地址解析逻辑电路76又连接到地址解析存储器78。地址解析逻辑电路76和地址解析存储器在结构上与它们在图2中的对应部件50和52系统,但如下所述其功能略微不同。OC3卡16还包含一个接口控制器80和相关的接口控制器存储器82;接口控制器80经收发信机84与总线74通信。
图4表示DS3卡14上网络数据业务的处理。处理被分层执行,在到DS3网络段20的接口上和到内部互连总线18的接口上使用协议堆栈。在到DS3网络段20的接口上,HDLC和DS3逻辑电路90发送和接收DS3帧92。HDLC和DS3逻辑电路90是图2的HDLC控制器30的一部分。HDLC和DS3逻辑电路90将所接收的DS3帧92转换成HDLC帧94,并将输出的HDLC帧94转换成DS3帧92以在DS3段20上传输。如图4所示,DS3帧92包括多个DS0信道。逻辑90由接口控制器54编程以使多组DS0信道96相关。在接收侧上,逻辑90根据每组相关信道96形成HDLC帧94。在发送侧上,逻辑90将HDLC帧94划分成多个DS0信道以在DS3段20上传输。
HDLC和DS3逻辑90还根据所接收的HDLC帧94生成PPP帧100,并将输出PPP帧100转换成HDLC帧以在DS3段20上传输。每个PPP帧100对应于HDLC帧94的负荷部分102。
PPP逻辑104从所接收的PPP帧100提取IP帧或分组106,并将IP帧106提供给IP逻辑108。PPP逻辑104还为将在DS3段20上传输的IP帧106生成输出PPP帧100。IP逻辑108执行多种网络层任务,例如帧的转发或择路、用于业务质量支持的帧分类和用于网络管理目的的统计收集。帧转发功能部分地由IP逻辑108执行,和部分地由OC3卡16上类似的IP逻辑来执行。对于从DS3段20接收到的目的地为OC3段22的IP帧,IP逻辑108执行“入口(ingress)”处理,而OC3卡16上的IP逻辑执行“出口(egress)”处理。对于在另一方向上传送的IP帧,OC3卡16上的IP逻辑执行入口处理,而IP逻辑108执行出口处理。在任一种情况下,入口IP逻辑将一个路由标记110添加给IP帧106以由出口IP逻辑以下述方式使用。
图1的互连总线18使用ATM数据链路协议在系统10中的各个卡14和16之间传输数据。因此,为了内部通信,IP逻辑108连接到ATM适配层(AAL)逻辑112,该逻辑112使用ATM适配层5(AAL5)协议来通过互连总线18执行帧116的传输。如图所示,帧116包括内嵌的IP帧106、路由标记110和AAL5尾部114。AAL逻辑112连接到ATM数据链路逻辑118,该逻辑118将每个帧116作为多个ATM信元119在互连总线18上传输。
PPP逻辑104、IP逻辑108、AAL逻辑112和ATM数据链路逻辑118分布在图2所示的多个部件之中,包括转发控制器36、转发控制器存储器38、分组装拆逻辑电路32、地址解析逻辑电路50和地址解析存储器52。下面将更详细地描述这些部件的操作。
图5图示在OC3卡16上的帧处理。由ATM数据链路逻辑120和AAL接口逻辑121执行到/从互连总线18的帧的传输。AAL逻辑121连接到IP逻辑122,该逻辑122是DS3卡14上IP的逻辑108的对应逻辑。AAL逻辑124和ATM数据链路和OC3逻辑126一起执行IP逻辑122和OC3段22之间的接口。如图所示,AAL逻辑124使用包括内嵌的IP帧106和AAL尾部132的帧130在OC3段22上通信。ATM数据链路和OC3逻辑126在数据链路层上将帧130作为多个ATM信元134传输。ATM信元在物理层上在出现在OC3段22上的帧137内的信道136中传输。
ATM数据链路逻辑120、AAL逻辑121、IP逻辑122和ATM电路逻辑124主要由图3的OC3转发控制器66、转发控制器存储器68、地址解析逻辑电路76和地址解析存储器来实现。ATM数据链路和OC3逻辑126主要由图3的分组流逻辑电路60、分组存储器62和分组装拆逻辑电路64实现。
图6图示网络设备10对将所接收的帧发送到指定下一跳节点的一个IP目标地址的总体处理。目的地址用于在转发表139中查找下一跳的索引,所述转发表139驻留在入口线路卡14或16的地址解析存储器52或78中。下一跳的索引用于从全局IP接口表141总提取一个表目,全局IP接口表141的每个表目表示网络设备10所知的几百个IP接口中的一个IP接口。全局IP接口表141提供一个ATM数据链路标识符和一个远程IP索引,这两个值都与所查找出的表目所表示的IP接口相关。ATM数据链路标识符标识IP帧应当被转发到的网络设备10中的一个TAM数据链路逻辑块120。远程IP索引用于与一个源IP接口标识符(标识在其上接收到IP帧的接口)一起形成路由标记110。如先前所述,路由标记110被添加给所接收的IP帧,并由入口侧的IP逻辑传送给出口侧的IP逻辑。
如图6所示,在出口侧上,来自路由标记110的远程IP索引被用于从一个本地IP接口表143中提取出一个表目。逐个表目包含IP帧应当被转发到其上的一个第二层接口的标识符。该标识符是下一跳的“地址”。在图示的实施例中,来自本地IP接口表143的第二层接口标识符用VPI和VCI值来标识一个ATM连接。然而,在可选的实施例中,这个标识符可以采用其它的各种形式。例如,在出口侧是一个以太网接口的实施例中,第二层标识符是IP帧应当被转发到的一个以太网节点的MAC地址。根据地址解析协议(ARP)从用于存储地址关联的一个表格中提取MAC地址。
应当注意在这一点上在此所述的查找技术可以用于支持网络设备10的除了路由之外的操作特性。从转发表139中提取出的索引可以标识一个可选路由列表,而不是单个路由。这个特性被称作“等成本多路径”。该索引可以根据诸如在所接收的分组中包含的源地址的一个地址来标识将要执行的特定的业务质量(QOS)处理。全局IP接口表141可以被视为一个特殊类型的全局转发等价分类表,它包含如何处理所接收的分组的有关信息。
图7图示由图1的系统控制器12为了路由目的维护的路由表的结构。为了与下面描述的“压缩树”相区别,图7所示的总体结构在此被称作“未压缩”树。
路由表包含多个路由表目,划分成如下的多个组:子网掩码长度为16或更少的第一层路由表目;子网掩码长度介于17和24之间的第二层路由表目;和子网掩码长度介于25和32之间的第三层路由表目。
每个路由表目138、140和142包括一个关键字和一个“下一跳”地址。关键字包括一个目的IP地址值和一个子网掩码值(在每个路由表目的顶部用X.X.X.X的形式一同表示)。下一跳的地址是一个IP地址(在每个路由表目的底部用X.X.X.X的形式表示),该地址是目的地址与该关键字匹配的帧应当被转发到的一个网络的地址。
除了将路由表目粗分成第1、2和3层之外,还根据它们的关键字地址值和子网掩码长度进一步组织路由表目。当多个路由表目具有相同的关键字地址值时,这些表目被集合成一个链接列表。每个链接列表以子网掩码长度递减的顺序来排列,这也是递减顺序特性。
三个不同层上的子树索引到路由表目138、140和142。第一层上的单个树144包括到第一层路由表目138的指针。第一层的树144包括由IP地址比特[31:16]即IP地址的16个最高有效比特索引的216或64K个指针存储位置。第一层树140的一部分在图7中图示,包括位置128.63到128.68。第二层上的多个树146包括到第二层路由表目140的指针。每个第二层的树146包括由IP地址比特[15:8]索引的28或256个指针存储位置。类似地,第三层上的多个树148包括到第三层路由表目142的指针。每个第三层的树148包括由IP地址比特[7:0]索引的28或256个指针存储位置。
第一层树144中的每个指针存储位置包含一个指针或者表示该位置为空的一个空(null)值。另外,每个位置包括在指针存在时描述指针类型的附加比特。每个指针指向一个相应的路由表目,并且每个路由表目可以是如上所述的路由表目的链接列表的一部分。一个指针可以指向一个路由表目,其关键字地址值等于存储该指针的位置索引。这种指针被称作“实叶”指针,并且这种状态用设置为1称作“实叶”的一个比特来表示。一个指针可以替代到一个路由表目的指针,该路由表目的关键字地址值并不等于该指针的索引,但是根据子网掩码是与该索引的最佳匹配。这些指针称作“填充叶”指针,如用被设置为零的“实叶”比特所表示的。在图7中,一个填充指针和相关路由表目之间的路径用一条虚线来表示。
称作“下一树”比特的一个附加比特用于表示该指针是否是指向一个第二层树146的“下一树”指针。当必须不仅仅检查最高16个IP地址比特以确定下一跳时,下一树指针被存储在第一层树140中。这种情况由最高16个IP地址比特等于下一树指针的地址的第二层路由表目140或者第三层路由表目142的出现来表示。该下一树指针是用于解码IP地址比特[15:8]的第二层树146的地址。因而,无论何时在一次查找过程中从第一层树144中提取出下一树指针,对第二层树146的第二次查找必然出现。
提供一种机制用于标识在第一层树144中给定指针位置上的路由表目和下一树。在图示的实施例中,这通过提供与每个第二层树146关联的一个特殊指针149来实现。第一层树144中的指针指向第二层树146,指针149指向第一层路由表目138。应当说明还有其它的方式来实现第一层树中的表目之间和第一层路由表目138和第二层树146之间所需要的关联。例如,两个指针可以被存储在第一层表目中,或者每个路由表目138可以在需要时选择指向第二层树146。然而,所示例的方法具有有效存储的优点,因为仅当第一层树144中的指针指向第二层树146时需要用于第二指针的空间。
每个第二层树146包含256个存储位置,每个位置包含空值或者指针值。类似于第一层树144,每个指针可以指向下一个树或者直接指向一个路由表目,路由表目指针可以是“实叶”或“填充叶”指针。当必须不仅检查最高24个IP地址比特来确定下一跳时,在第二层树146中使用下一树指针。下一树指针是用于解码IP地址比特[7:0]的第三层树148的地址。以类似于上述用于第二层树146和第一层路由表目138的方式,在第三层树148中使用特殊指针149指向第二层路由表目140。
每个第三层树148还包括256个存储位置,每个位置包含空值或指针值。以类似于第一层和第二层树144和146的方式,第三层树148中的叶指针可以是实指针或者填充指针。在第三层树148中没有下一树指针,因为在示例性的实施例中,不存在解码IP地址的其它层。
以下述方式来维护图7所示的未压缩树中的信息。图1的系统控制器根据路由协议来添加和删除路由表目。当添加一个路由表目时,首先确定是否必须为该路由表目创建一个新的第三层树148和/或第二层树146。这取决于子网掩码的长度和对于关键字地址与相应字段中新路由表目的关键字地址匹配的其它路由表目来说第三层或第二层树是否已经存在。如果没有这样的一个或多个树存在,则为新的路由表目创建新的第三层和/或第二层树。用于每个新树的新树指针被保存在下一个更高层次的树上。如果存在与该新的下一树指针的位置相关的路由表目,将特殊指针149放置在该新树中。
在所需要的所有新树已经被创建后,检查对应于新路由表目的关键字的树中的位置。根据子网掩码的长度,这可以是第一层树144、第二层树146或者第三层树148中的一个位置。如果该位置为空或者包含一个填充指针,则将指向该新路由表目的一个新的实叶指针放置在该位置中。如果该位置已经包含一个实叶指针,则将该新路由表目插入到该实叶指针所指向的链接列表中。根据递减的子网掩码长度,以维持排列次序的方式插入该路由表目。
一旦已经为新路由表目添加一个实叶指针,则检查由新路由表目覆盖的IP地址范围内的所有的树位置。根据子网掩码长度,填充指针被放置在新路由表目是最佳匹配的那些位置上。必须在由新路由表目覆盖的地址范围中的第一层树144以及任一第二层树146或第三层树148中完成这些处理。在一些情况下,填充指针可以从该树中的一层指向更高的一层。在图7中图示了一个例子,其中第三层树148-1中的多个指针指向关键字是128.63.40.0/22的第二层路由表目。
当删除一个路由表目时,通过存在的话,从该表目驻留的链接列表中删除该表目。如果作为删除的结果,在链接列表中不再有任何路由表目,则如果存在其它的次最佳匹配,该树中的实叶指针用指向该其它的次最佳匹配的一个填充指针来替代,否则将其删除。然后,检查由被删除的路由表目覆盖的IP地址范围内的所有树位置。对于具有一个指向被删除路由表目的填充指针的那些位置,如果存在其余的次最佳匹配,则修改填充指针使其指向该次最佳位置,否则将其删除。
例如,如果从图7的路由表中删除路由表目128.64.0.0/14,位置128.65、128.66和128.67上的填充指针将被修改以指向路由表目128.64.0.0/10。如果路由表目128.64.0.0/10被删除,则位置128.68至128.127中的所有指针将被删除。在此覆盖范围中的第二层和第三层的树也被检查,并适当地修改填充指针。
当第三层树148不再包含任何实叶指针时,将其删除,和当第二层树不再包含任何实叶指针或者下一树的指针时,将其删除。当一个树被删除时,根据需要修改其余的更高层中的指针。例如,如果第二层树146-n被删除,第一层树144中位置128.68上的指针将被修改以直接指向表目128.64.0.0/10,并且“下一树”比特将被设置为零。
图8图示图6的转发表139的结构,该转发表在图1的每个接口卡14和16上使用。转发表139被存储在图2的DS3卡14上的地址解析存储器52中和图3的OC3卡16上的地址解析存储器78中。以下述方式从图7的未压缩树路由表中提取图8的转发表139中的信息。转发表139包括树结构,并且通常比图7的未压缩树结构小。因此,转发表139被称作一个“压缩树”转发表。
类似于未压缩树,压缩树被划分成分别与IP地址比特[31:16]、[15:8]和[7:0]关联的三层。在第一层上,单树150具有64K个16比特表目。每个条目的一个比特是一个类型比特,其余的15个比特过程一个指针值。用于空表目的指针值是一个空值。对于非空表目,类型比特表示该指针是“下一跳”指针NH还是“下一树”指针NT。
每个下一跳指针NH包含图6的全局IP接口表141中一个表目的地址。如上所述,从全局IP接口表141中提取的表目被用于形成路由标记110,该路由标记110又用于获得所接收的IP帧将被转发到以到达指定的下一跳节点的接口的标识符。如下面将要讨论的,在可选的实施例中,从压缩树中提取出的指针可以提供到其它类型表中的索引,以指示将要执行的其它类型的处理,例如QOS处理。
每个下一树指针NT包含一个到第二层下一树表152中的索引。第二层下一树表2中的每个表目包含一个24比特的指针字段和一个8比特的大小字段。24比特的指针字段包含一个指向第二层压缩树154的NT指针。每个第二层压缩树154可以是一个“密集”树占用的256个指针表目,或者是一个“稀疏”树占用的32个或更少的表目。8比特的大小字段表示多少个NH或NT指针被存储在第二层压缩树中。以下述方式使用大小信息以从第二层压缩树154中提取指针。
使用包括24比特NT指针的第二层下一树表152在第二层压缩树的访问中提供了一个间接性的层次。虽然这种间接性需要附加延时,如下文将更详细地描述的,它提供了在图2和图3的地址解析存储器52和78中分配存储空间时所想要的灵活性。
当多于32个下一跳或者下一树指针被存储在第二层树中时,这些指针被存储在一个“密集”第二层压缩树154中。每个密集第二层压缩树154包含256个16比特的表目,与第一层树150中的相同,每个非空表目包括一个类型比特和一个15比特的NH/NT指针。通过直接解码IP地址比特[16:8]来提取密集第二层树154中的表目。
当32或更少的下一跳或下一树指针被存储在第二层树中时,这些指针被存储在一个“稀疏”第二层压缩树154中以节省存储空间。每个稀疏第二层树154包含以四递增的从4到32个位置。每个非空表目包含一个类型比特、一个15比特的NH/NT指针和一个索引标记,该标记表示该NT/NH指针应当用于的IP地址比特[15:8]的最大值。以索引标记递增的顺序存储这些表目。在一个下一跳的查找中,以下述方式搜索表目的索引标记,以根据所接收帧的目标IP地址来提取正确的NT/NH指针。
第二层树154中的NT指针指向第三层下一树表158中的表目,该表158类似于第二层下一树表152。第三层下一树表158中的NT指针指向第三层压缩树160,该压缩树160可以是密集的或稀疏的。除了第三层压缩树160中的所有非空指针是NH指针之外,这些树类似于它们在第二层上的对应树154,所以不需要一个类型比特。
在图8的压缩树结构中,通过利用IP地址空间的确定分区的优点,可以实现更高的存储效率。例如,存在一个在IP地址224.0.0.0上的公知的多播地址空间和在该多播空间之上的所谓的“E类”地址空间。不需要为这些地址在第一层树150中分配空间,所以可以降低第一层树150的大小。
图9表示图2和图3的地址解析逻辑电路50、76和地址解析存储器52、78的结构。每个地址解析逻辑块50、76包括四个端口P0至P3。对于每个端口,存在相应的输入FIFO170和输出FIFO172。图2和3的转发控制器36和66将32比特的目标IP地址写入端口输入FIFO170以初始化下一跳的查找。下一跳的索引在相应的输出FIFO172中被返回。在地址解析逻辑电路50和76中在一个给定时间上可能存在等待中的多个查找,尽管一旦开始,每个查找的执行仅需要极短的时间。以循环的方式来仲裁来自不同端口P0至P3的查找请求,仅当对于该端口有足够的空间将结果存储在输出FIFO172中时,才执行在一个给定端口上请求的一个查找。
来自给定输入FIFO170的目标IP地址经一个端口复用器176被传送给一个关键字寄存器174。一个层复用器178用于根据执行查找所在的层来选择IP地址的比特:
层      1         2        3
IP地址  [31:16]  [15:8]  [7:0]
层复用器178的输出被提供给加法器180用于形成一个24比特的地址,该地址用于访问相关的地址解析存储器52或78。这一地址通过地址复用器182到达连接到相关存储器52或78的地址输入的一个存储器地址寄存器184。
来自地址解析存储器52或78的输出被提供给一个小的层/基址指针的高速缓存186,其用法如下所述,还提供给一个小的输入缓冲器RAM188。RAM188的输出被提供给加法器180和返回下一跳寄存器190,该返回下一跳寄存器190向输出FIFO提供输入。RAM188的输出还与层复用器178的输出一起提供给比较逻辑电路192,比较逻辑电路192由搜索空值逻辑电路194使用以执行在第二层和第三层上的搜索。
地址解析逻辑电路50和76还包含使外部设备能够直接读取和写入地址解析存储器52和78的元件。这一特性由图2和图3的接口控制器54和80使用以在从图1的系统控制器12接收到更新后的压缩树时,将其存储在地址解析存储器52和78中。支持这些特性的元件是输入地址寄存器196、输入数据寄存器198、三态缓冲器200和输出寄存器202。可以在搜索进行时执行更新后的压缩树的存储,以便不因为更新压缩树的需要降低搜索带宽。
虽然如图所示,地址解析逻辑电路50和76包含单个搜索控制器194,在可选的实施例中,可以希望包括多个搜索控制器以实现更高的并行性,和因而更高的查找速率。另一选择是使用多个地址解析存储器和相关的查找逻辑电路以实现更高的并行性。
图10图示地址解析存储器52和78的存储器分配图。前8Kb被用于存储最多512个16字节的层指针块210。其余的16Mb的存储空间被分配以存储压缩转发表139,每个转发表139与512个层指针块210中对应的一个相关。每个层指针块210包含用于访问相应转发表139的下述各项:第一层指针214、T2基址指针216、第二层指针218、T3基址指针220和第三层指针222。这些项的使用如下所述。在可选实施例中,可以希望具有更多或者更少的地址解析存储器52和78,并为层指针块210的存储分配更多或者更少的空间。
图11图示在一个下一跳查找中将层/基址指针块210中的指针用于访问一个转发表139中的表目的方式。在一次查找中,将层指针块210存储在图9的层指针块(LPB)高速缓存186中,并将指针提供给加法器180以计算树表目在地址解析存储器52或78中的地址。一旦开始一次查找,层指针块210可能已经被存储在LPB高速缓存186中,在这种情况下查找继续使用所存储的层指针块210。在一些情况下,查找请求指示层指针块210应当被从地址解析存储器52和78中读取并存储在LPB高速缓存186中。层指针块210必须被重新装载,例如,只要相应的转发表139已经被图1的系统控制器12更新,以及当不是在用于前一查找的转发表139上,而是在一个不同的转发表139上完成一次查找时。在这些情况的每一种情况下,查找请求包含一个值,该值表示应当使用512个层指针块210中的哪一个。选择多个指针块210之一的能力是一种能够支持多个虚拟路由器的特性。分配不同的层指针块210由不同的虚拟路由器使用,并且每个虚拟路由器标识将用于其路由查找的层指针块210。
在查找的第一层上,第一层指针214选择转发表139的第一层压缩树150。IP地址比特[31:16]提供第一层树150中一个表目的索引。该表目可以是一个NH指针,在这种情况下不需要进一步的搜索。然而,如果该表目是一个NT指针,则在第二层上执行进一步的搜索。
在第二层上,来自第一层树150的NT指针被用作到转发表的第二层下一树表152的一个索引,由来自层指针块210的第二层指针218指向其基址。第二层下一树表152中的NT指针被添加给来自层指针块210的T2基本地址216以获得第二层树154的基本地址。该NT指针指向第二层压缩树154。如果大小被指示大于32,侧第二层树154是一个密集树(在图11中未图示),IP地址比特[15:8]被用于直接查找第二层MH/NT指针。然而,如果大小是32或者更小,则第二层树154是一个稀疏树,并且IP地址比特[15:8]被用于以下述方式执行稀疏树154的搜索。
第二层树154的表目可以包含一个NH指针,在这种情况下不需要进一步的搜索。然而,如果该表目包含一个NT指针,则执行在第三层上的进一步搜索。以类似于第二层的方式进行对转发表第三层的访问,使用来自层指针块210的T3基本地址220和第三层指针222、从第二层树154提取出的NT指针和大小和第三层下一树表158和第三层树160。第三层上的搜索关键字由IP地址比特[7:0]组成,并保证所提取的指针是一个NH指针。
以下述方式搜索稀疏第二层树154和第三层树160。如果稀疏树的大小是16或者更小,则执行十六个表目的线性搜索。图9的RAM188、比较逻辑电路192和搜索控制逻辑电路194被配置以同时比较搜索关键字和四个树表目。因此,当必须检查所有的16个表目时,16个表目的一次线性查找至多需要四次存储器访问。当树大小在十七和三十二个表目之间时,所执行的第一步是比较搜索关键字和第十三个表目。如果搜索关键字小于第十三个表目,则执行前十三个表目的线性搜索。如果搜索关键字大于或等于第十三个表目,则执行第十三到第三十二个表目的线性搜索。具有大于或等于搜索关键字的第一个表目是所要的表目。该表目中的指针是所要的到下一层的NH指针或NT指针,如表目的类型比特所指示的。
图12至14表示根据图7的相应未压缩树路由表来创建图8的压缩树转发表139的方式。图15表示在创建过程中驻留在系统控制器12中的压缩树转发表139的一个示例性的部分。在路由器10的操作过程中由系统控制器定期地重新创建和分配转发表139。频繁地进行这种计算以将帧沿着旧路由发送的次数降到最少。
作为图12处理中的第一步230,从未压缩第一层树144中提取出一个表目。一个方便的开始位置是表目0,它对应于IP地址[31:16]=0.0。对于每个非空表目,在步骤232上测试下一个树(NEXTTREE)比特。如果下一个树比特为假,表示该表目是一个叶指针,则在步骤234上将一个NH指针放在第一层压缩树150中的相应表目内。NH指针是图6的全局IP接口表141中一个表目的地址,该表目用于与第一层路由表目138中所存储的IP地址对应的接口,由被处理的第一层表目指向路由表目138。
如果第一层未压缩树144中表目的下一树比特为真,则在步骤236创建第二层下一树154。将参考图13描述这个处理。
在执行步骤234或236之后,在步骤238确定是否已经处理来自第一层未压缩树144的所有表目。如果没有,该程序返回步骤230以处理下一个表目。否则,完成创建压缩树转发表139的处理。
在压缩处理中未遍历(traverse)特殊指针149。由该特殊指针149指向的路由表目也由与第一层下一树表目之下的第二层或第三层树中的路由相关的填充叶来指向,因而在那些第二层和/或第三层树的压缩过程中被处理。
图13表示创建第二层压缩树154的处理。该处理是一个“双通路”处理,如分别用步骤240至250和步骤252至262所示的循环来表示的。在第一通路中,在步骤242上为第二层未压缩树146的每个表目检查下一树(NT)标记。如果NT为真,表示第二层未压缩树146中的指针包含一个下一树指针,则在步骤244上,将一个下一树占位符添加到用于在第一通路过程中累计压缩表目的一个临时列表中。如果NT标记为非,表示该表目包含一个下一跳(NEXT HOP(NH))指针,则在步骤246上,确定NH指针是否与在临时列表中已经存储的任一NH指针相同。如果不同,则在步骤248上将该NH指针添加给临时列表。第一通路的结果是临时列表的创建,由于仅包含每个不同NH指针的唯一拷贝,该列表是第二层未压缩树146的压缩版本。
然后,该处理进入第二通路,其中实际创建压缩的第二层树154。在步骤252上,执行动作以准备第二层压缩树154。根据在第一通路中创建的临时列表的大小,确定要创建的压缩第二层树应当是稀疏的还是密集的。如果临时列表中表目的数量大于32,则分配用于一个256表目密集树的存储空间。否则,分配用于一个稀疏树154的存储空间。为稀疏树154分配的存储空间是等于或大于临时列表中表目数量的四个表目的倍数。在第二层树已经被创建之后,将一个NT表目放置在指向新分配的压缩第二层树154的第一表目的第二层下一树表152中。而且,一个NT表目被放置指向第二层下一树表152中该NT表目的第一层压缩树150中。
然后,该处理前进到步骤254,其中从在第一通路过程中创建的临时列表提取出一个表目。在步骤256,确定这是否是一个下一树(NT)占位符。如果不是(即该表目是一个NH指针),则在步骤258上该NH指针被拷贝到第二层压缩树154。如果被创建的第二层压缩树是一个密集树,则将NH指针放置在索引与来自未压缩树146的NH指针相同的位置上。如果被创建的第二层压缩树是一个稀疏树,则和指示NH指针应当被用于的IP[15:8]最大值的索引I一起,将NH指针放置在稀疏树中。以索引值I1、I2等递减的顺序来存储稀疏树中的表目。
如果在步骤256中,确定表目是一个下一树占位符,则该处理前进到步骤260,其中建立一个新的第三层压缩树160。下面将参考图14描述这一处理。在步骤262确定最后一个临时表目已经被处理之后,完成图13的处理,图12的处理在步骤238重新开始。
图14图示创建第三层压缩树160的处理,该处理类似于上述用于第二层树的处理。因为在所示的实施例中,在第三层之下没有其它层,在第三层中不需要下一树表目。在从步骤264至270的第一通路中,该处理创建不同NH指针的一个压缩临时列表,然后在步骤272至280中创建第三层树160。如在第二层树146中的情况,由图14的处理创建的第三层压缩树可以是密集的或稀疏的。用于每种情况的处理类似于第二层上的相应情况。
图12至图14所示的处理具有循环特性,这在图15所示的示范性结果存储器分配表中被说明。在存储器中,单个第一层压缩树150继之以第一个第二层压缩树154-1,该第二层压缩树又继之以与先前的第二层压缩树154-1中的表目相关的一个或多个第三层压缩树160-I。对于在该转发表中存在的所有第二层和第三层压缩树,这种模式不断重复。这一部分继之以第二层下一树表152和第三层下一树表158。在已经创建图15的转发表139之后,将其分配到线路卡14和16中,并以上述模式使用以为输入分组确定下一跳的地址。
在图15的左侧图示对应于层指针块210中指针的地址的助记标记。在图示的实施例中,T2基址指针216和T3基址指针220具有相同的值。在可选的实施例中,可以希望分开第二层树和第三层树,在这种情况下,将便于将相应的不同值用于T2和T3基址指针。
虽然通过消除冗余的“下一跳”信息,参考图12-15所述的处理实现了压缩,在可选实施例中也可以使用略微不同的创建压缩树的方法以实现其它目的。例如,可以希望检查指针值和消除冗余指针。在这样一种实施例中,如果多个路由表目具有相同的下一跳的值,在压缩树中可能存在冗余的下一跳的信息。另外,可以希望测试非冗余的路由表中的其它信息,并存储压缩表中不同的冗余表目以便获得非冗余的信息。例如,两个不同的地址可以映射到相同的下一跳的值,但是具有不同的业务质量参数。在这种情况下,对于在压缩树中存储不同的表目将是有用的。尽管两个表目都映射到相同的接口标识符,它们将映射到不同组的QOS参数,因而导致不同的QOS处理。
尽管在图示的实施例中,压缩和未压缩的树都被划分成三个层次,在可选的实施例中可以希望将这些树划分成不同数量的层次。具体地说,可以希望为超过32比特的网络地址使用更多的层次。还可以希望将网络地址的不同字段与树的各层相关。例如,在一种可选实施例中,比特[31:20]可以与第一层相关,比特[19:8]可以与第二层相关,和比特[7:0]可以与第三层相关。在其它的可选实施例中,可以希望相对于各层打乱地址字段。例如,将第一层与中间地址字段或较低的地址字段而非较高的地址字段相关可能是有利的。
已经描述了使用压缩树转发表进行网络路由的方法和设备。对于本领域的普通技术人员来说,在不脱离在此公开的发明原理的情况下,显然可以对上述方法和设备进行修改和变化。因此,应当认为本发明应当仅由权利要求书的范围和精神来限制。

Claims (14)

1.一种转发表,用于标识分组应当被转发到的网络的下一跳的地址,该转发表包括第一层表,该表的表目可以由分组地址字段的地址比特的第一字段直接寻址,和第二层表,该表的表目可以由分组地址字段的地址比特的第二字段联合寻址,第一层表格为一些分组有效地提供(i)表示下一跳网络地址的下一跳索引,这些分组地址的地址比特的第一字段足以确定下一跳地址,和(ii)为另一些分组提供到第二层表的一个指针,这些分组地址的地址比特不足以确定下一跳地址;第二层表为一些分组有效地提供表示下一跳网络地址的一个下一跳索引,这些分组地址的地址比特的第一和第二字段足以确定下一跳地址。
2.根据权利要求1的转发表,还包括第三层表,该表的表目可由来自分组地址字段的地址比特的第三字段联合寻址,并且其中第二层表为一些分组有效地提供到第三层的一个指针,这些分组地址的地址比特的第一和第二字段不足以确定下一跳的地址,并且第三层表为另一些分组有效地提供表示下一跳地址的一个下一跳索引,这些分组地址的地址比特的第一、第二和第三字段足以确定下一跳的地址。
3.根据权利要求2的转发表,还包括在一个或多个附加层的每层上的一个表格,每个表格的表目可由来自分组地址字段的地址比特的对应附加字段联合寻址,其中每个表格为一些分组有效地提供到下一层中表格的一个指针,这些分组地址的第一字段到相应附加字段的地址比特不足以确定下一跳的地址,并且每个表格为另一些分组有效地提供表示下一跳地址的一个下一跳索引,这些分组地址的第一字段到相应附加字段的地址比特足以确定下一跳地址。
4.根据权利要求1的转发表,其中第二层表是一个稀疏第二层表,包含比该地址第二字段的唯一值的数目更少的表目,并且还包括可由来自分组地址字段的地址比特的第二字段直接寻址的一个密集第二层表,并且其中(i)第一层表根据分组地址字段的第一字段有效地提供到稀疏和密集第二层表的指针,(ii)当由用于一个给定分组的第一层表提供到稀疏第二层表的一个指针时,稀疏第二层表提供表示下一跳地址的一个下一跳索引,和(iii)当由用于一个给定分组的第一层表提供到密集第二层表的一个指针时,密集第二层表提供表示下一跳地址的一个下一跳索引。
5.根据权利要求4的转发表,其中密集第二层表中存储位置的数目等于第二地址字段唯一值的数目,在密集第二层表中存储的指针数目大于或者等于一个第一数,该第一数远小于第二地址字段唯一值的数目,在稀疏第二层表中存储的指针数目小于第一数,稀疏第二层表中存储位置的数目是足以存储在稀疏第二层表中存储的指针数目的一个存储块大小的最小倍数。
6.根据权利要求5的转发表,其中第二地址字段的唯一值数目是256,第一数目是32。
7.根据权利要求4的转发表,还包括一个第三层表,该表的表目可由来自分组地址字段的地址比特的第三字段联合寻址,并且其中一个第二层表为一些分组有效地提供到第三层表的一个指针,这些分组地址的地址比特的第一和第二字段不足以确定下一跳地址,第三层表为另一些分组有效地提供表示下一跳地址的一个下一跳索引,这些分组地址的地址比特的第一、第二和第三字段足以确定下一跳地址。
8.根据权利要求1的转发表,还包括附加第二层表,每个表的表目可由来自分组地址字段的地址比特的第二字段联合寻址,并且其中第一层表根据分组地址字段的第一字段有效地选择提供到一个不同第二层表的指针,并且当由用于一个给定分组的第一层表提供到一个第二层表的一个相应指针时,每个第二层表提供表示下一跳地址的一个下一跳索引。
9.根据权利要求4的转发表,还包括一个映射表,有效地将第一层表中的每个指针映射到一个对应的第二层表。
10.一种操作一个网络设备的方法,包括步骤:
建立并维护一个未压缩多层树路由表,路由表的每层包含可由所接收分组的一个地址字段的一对应字段直接寻址的至少一个表格,每个表有效地提供一个指针,该指针表示分组将要转发到的下一跳网络的地址,每个表中唯一指针值的数目远小于表中的指针数目;和
根据未压缩路由表定期地创建一个更新压缩多层树转发表,并将更新转发表分配给网络设备中的转发控制器,以便转发控制器在发送网络设备所接收的分组时使用,压缩转发表在一层或多层上包含至少一个表,每个表格使用与唯一指针值的数量基本相同的指针数目来反映与未压缩路由表的对应表格相同的转发信息。
11.一种用于确定数据分组将被转发到的网络的下一跳地址的数据结构,每个数据分组包括一个地址字段,该地址字段包含表示该分组最终要被发送到的网络节点的一个地址,该数据结构包括:
多个路由表目,每个路由表目包含一个关键字地址、一个子网掩码和一个下一跳地址,该下一跳地址是地址在子网掩码值所示最高有效比特位置的数目上与关键字地址匹配的分组将被转发到的一个网络的地址,根据子网掩码值将路由表目划分成至少两类,以便第一类路由表目包括子网掩码值不大于第一数的第一层路由表目,和第二类路由表目包括子网掩码值大于第一数和不大于第一数和第二数之和的第二层路由表目,第二层路由表被进一步划分成组以便每组中的路由表目的关键字地址在最高有效比特位置的第一数上彼此匹配;和
多个指针,这些指针与分组地址相关并根据指针相关的地址字段被划分成至少两类,第一类指针是与包含地址的第一数目的最高有效地址比特的第一字段相关的第一层指针,第二类指针是与包含地址的第二数目的次最高有效地址比特的第二子字段相关的第二层指针,第一层指针被安排在由地址的第一字段索引的第一层树中,第二层指针根据与第二层指针相关的第二层路由表目的组被划分成多个第二层树,每个第二层树由地址的第二字段索引,第一层和第二层上的指针包括实叶指针和填充叶指针,每个实叶指针指向一个相关的路由表目,该表目具有一个等于该数据结构中指针索引的关键字地址值,每个填充叶指针指向一个相关的路由表目,其关键字地址值根据子网掩码值最佳匹配填充叶指针的索引,在第一层上的指针包括下一树指针,每个下一树指针指向一个相应的第二层树,该第二层树包含一个指针,该指针指向其关键字地址等于该数据结构中下一树指针的索引的一个路由表目。
12.一种用于确定数据分组将被转发到下一跳网络的地址的数据结构,每个数据分组包括一个地址字段,该地址字段包括表示该分组将被最终转发到的网络的地址,该数据结构包括多个指针,这些指针与分组的地址相关,并根据这些指针相关的地址字段被划分成两类或多类,第一类指针是与第一字段相关第一层指针,该第一字段包含该地址的第一数目的最高有效地址比特,第一层指针被排列在由地址的第一字段索引的第一层二进制树中,第二类指针是与第二子字段相关的第二层指针,该第二子字段包含该地址的第二数目的次最高有效地址比特,第二层指针被划分成多个第二层二进制树,每个第二层二进制树由该地址的第二字段索引,第一层指针包括下一跳指针和下一树指针,每个下一跳指针标识一些分组将被发送到的一个网络的地址,这些分组地址的第一字段等于第一层二进制树中的下一跳指针的索引,每个下一树指针标识一个第二层二进制树,该二进制树应当用于确定一些分组应当被转发到的一个网络的地址,这些分组的第一字段等于第一层二进制树中下一树指针的索引,每个第二层二进制树包括下一跳指针,每个指针标识一些分组应当被转发到的一个网络的地址,这些分组地址的第二字段等于第二层二进制树中下一跳指针的索引,并且其第一字段等于第一层二进制树中下一树指针的索引,所述第一层二进制树标识包含下一跳指针的第二层树。
13.一种操作一个网络设备的方法,包括步骤:
在网络设备中的一个中央控制器上建立并维护一个多层树路由表,该路由表的每一层包含由所接收分组的一个地址字段的相应字段索引的一个或多个二进制树,每个二进制树中的每个位置包含到一个路由表目的指针,该路由表目标识一些分组应当被发送到的一个下一跳网络的地址,这些分组的地址包含该指针的索引值,与每个二进制树相关的路由表目数量通常小于指针数目,所以一个给定二进制树中的多个指针通常指向相同的路由表目;和
根据未压缩路由表定期地创建一个更新压缩多层树转发表,并将该更新转发表分配给网络设备中的转发控制器,以由转发控制器在发送由网络设备接收的分组时使用,压缩转发表包含在一层或多层上的二进制树,每个二进制树反映与路由表的对应二进制树相同的转发信息,该二进制树使用的指针数目与对应二进制树相关的唯一路由表目的数目基本上相同。
14.用于确定数据分组应当被转发到的下一跳网络地址的设备,包括:
一个存储器,用于存储多个层指针块和多个转发表,每个转发表包含与数据分组的地址字段的一个或多个字段的值相关的数据结构,该数据结构包含标识一些数据分组应当转发到的下一跳网络的地址,这些数据分组的地址子字段包含与该数据结构相关的值,每一层的指针块与对应的一个不同的转发块相关,并包含标识相关转发表中数据结构的指针;
一个或多个输入缓冲器有效地接收下一跳地址查找请求,每个查找请求包含在执行查找时将使用的一个地址和一个层指针块的标识符;
连接到输入缓冲器的选择逻辑电路,该选择逻辑电路有效地在下述各项中选择:(i)不同输入缓冲器中的查找请求;(ii)在每个请求中包含地址和层指针块标识符;和(iii)在每个请求中包含的地址字段;
连接到存储器的一个高速缓存,一旦开始查找,该高速缓存在查找期间有效地存储从存储器中提取的一个层指针块;
连接到存储器的一个存储器输入缓冲器,该存储器输入缓冲器有效地存储在查找过程中从存储器提取出的多个转发表数据结构表目;
寻址逻辑电路,其输入连接到选择逻辑电路、高速缓存和存储器输入缓存器,寻址逻辑电路根据(i)由选择逻辑电路选择的值、(ii)在高速缓存中存储的值和(iii)在存储器输入缓存器中存储的值来计算层指针块在存储器中的地址和转发表数据结构表目在存储器中的地址,寻址逻辑电路还有效地将所计算的地址提供给存储器以从其中提取层指针块和转发表;
比较逻辑电路,其输入连接到选择逻辑电路和存储器输入缓冲器,在一次查找期间,该比较逻辑电路有效地比较由选择逻辑电路选择的一个数值和在存储器输入缓冲器中存储的一个或多个转发表数据结构表目;和
连接到存储器输入缓冲器的一个或多个输出缓冲器,每个输出缓冲器与一个相应的输入缓冲器相连,每个输出缓冲器有效地存储在相连的输入缓冲器中所接收请求的查找结果,并作为对查找请求的响应提供该结果,每个查找表的结果包括来自存储器输出缓冲器中存储的一个选定转发表数据结构表目的下一跳地址,选定表目是作为匹配由选择逻辑电路选择的值由比较逻辑电路指示的表目。
CNB008043396A 1999-02-26 2000-02-23 用于标识分组应被转发到网络的下一跳的地址的设备及其操作方法 Expired - Fee Related CN1148917C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/259,064 1999-02-26
US09/259,064 US6192051B1 (en) 1999-02-26 1999-02-26 Network router search engine using compressed tree forwarding table

Publications (2)

Publication Number Publication Date
CN1341314A true CN1341314A (zh) 2002-03-20
CN1148917C CN1148917C (zh) 2004-05-05

Family

ID=22983357

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB008043396A Expired - Fee Related CN1148917C (zh) 1999-02-26 2000-02-23 用于标识分组应被转发到网络的下一跳的地址的设备及其操作方法

Country Status (7)

Country Link
US (1) US6192051B1 (zh)
EP (1) EP1155537B1 (zh)
CN (1) CN1148917C (zh)
AU (1) AU759929B2 (zh)
CA (1) CA2363963C (zh)
IL (1) IL144795A0 (zh)
WO (1) WO2000051298A1 (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100352233C (zh) * 2002-12-10 2007-11-28 中兴通讯股份有限公司 路由表的组织与查找方法
CN100366008C (zh) * 2003-05-29 2008-01-30 华为技术有限公司 构造路由表及用其查找路由项的方法
CN100375463C (zh) * 2004-07-02 2008-03-12 中国科学院计算技术研究所 一种使用分段压缩表实现最长前缀地址路由查找的方法
CN100388717C (zh) * 2002-08-27 2008-05-14 华为技术有限公司 在三层网络中查找路由下一跳的方法
CN100401723C (zh) * 2005-10-13 2008-07-09 华为技术有限公司 一种快速索引方法
CN101895592A (zh) * 2010-08-31 2010-11-24 上海交通大学 基于树状拓扑地址分配的路由寻址方法
CN1469600B (zh) * 2002-07-15 2010-11-24 华为技术有限公司 一种互联网协议报文转发过程中快速重选路由的方法
CN101132364B (zh) * 2007-08-23 2012-02-29 新动力(北京)建筑科技有限公司 控制网络中数据寻址和转发的方法及系统
CN105516023A (zh) * 2014-09-24 2016-04-20 华为技术有限公司 一种报文转发方法和装置
CN108965136A (zh) * 2018-07-16 2018-12-07 清华大学 基于空间网络层次化ip编址的转发方法及装置
CN112787898A (zh) * 2020-12-29 2021-05-11 美的集团股份有限公司 设备数据通信方法、装置、电子设备及存储介质
CN113141304A (zh) * 2021-04-15 2021-07-20 中国科学院计算机网络信息中心 一种面向虚拟化路由器的多转发表压缩及查找方法与系统

Families Citing this family (345)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6101180A (en) * 1996-11-12 2000-08-08 Starguide Digital Networks, Inc. High bandwidth broadcast system having localized multicast access to broadcast content
US6370571B1 (en) 1997-03-05 2002-04-09 At Home Corporation System and method for delivering high-performance online multimedia services
US7529856B2 (en) * 1997-03-05 2009-05-05 At Home Corporation Delivering multimedia services
US7050456B1 (en) 1998-12-04 2006-05-23 Tekelec Methods and systems for communicating signaling system 7 (SS7) user part messages among SS7 signaling points (SPs) and internet protocol (IP) nodes using signal transfer points (STPs)
US6496510B1 (en) * 1997-11-14 2002-12-17 Hitachi, Ltd. Scalable cluster-type router device and configuring method thereof
DE69829645T2 (de) * 1998-05-01 2006-03-09 Hewlett-Packard Development Co., L.P., Houston Verfahren zur Änderung von dynamischen Entscheidungsbäume
EP0954140B1 (en) 1998-05-01 2003-10-29 Hewlett-Packard Company, A Delaware Corporation Method of managing dynamic decision trees
DE19833931C2 (de) * 1998-07-28 2000-06-15 Siemens Ag Verfahren zum Übermitteln von Datenpaketen an mehrere Empfänger in einem heterogenen Kommunikationsnetz
US6308219B1 (en) * 1998-07-31 2001-10-23 Cisco Technology, Inc. Routing table lookup implemented using M-trie having nodes duplicated in multiple memory banks
US6385649B1 (en) * 1998-11-06 2002-05-07 Microsoft Corporation Routers and methods for optimal routing table compression
US7002988B1 (en) * 1998-12-04 2006-02-21 Tekelec Methods and systems for communicating SS7 messages over packet-based network using transport adapter layer interface
US6584102B1 (en) * 1998-12-21 2003-06-24 At&T Corp. Communication network apparatus and method
US6810042B1 (en) * 1999-01-04 2004-10-26 Cisco Technology, Inc. Method of queuing traffic to many destinations covering a wide range of transmission speeds while minimizing buffer size
US6667967B1 (en) 1999-05-14 2003-12-23 Omninet Capital, Llc High-speed network of independently linked nodes
US6628623B1 (en) * 1999-05-24 2003-09-30 3Com Corporation Methods and systems for determining switch connection topology on ethernet LANs
US6643706B1 (en) * 1999-06-29 2003-11-04 Cisco Technology, Inc. Scaleable route redistribution mechanism
TW431094B (en) * 1999-07-16 2001-04-21 Via Tech Inc Memory access of Ethernet
US6678274B1 (en) * 1999-07-30 2004-01-13 Riverstone Networks, Inc. Method and system for managing forwarding tables
US7159030B1 (en) * 1999-07-30 2007-01-02 Intel Corporation Associating a packet with a flow
JP2001060969A (ja) * 1999-08-23 2001-03-06 Nec Corp 高速ip経路検索システム及び方法
US6772220B1 (en) * 1999-09-29 2004-08-03 International Business Machines Corporation Next hop command level addressing and routing
US6697380B1 (en) * 1999-12-07 2004-02-24 Advanced Micro Devices, Inc. Multiple key lookup arrangement for a shared switching logic address table in a network switch
US6711153B1 (en) * 1999-12-13 2004-03-23 Ascend Communications, Inc. Route lookup engine
US6463067B1 (en) * 1999-12-13 2002-10-08 Ascend Communications, Inc. Submission and response architecture for route lookup and packet classification requests
US6697873B1 (en) * 1999-12-20 2004-02-24 Zarlink Semiconductor V.N., Inc. High speed MAC address search engine
US6775284B1 (en) * 2000-01-07 2004-08-10 International Business Machines Corporation Method and system for frame and protocol classification
US6581106B1 (en) * 2000-01-13 2003-06-17 Pierluigi Crescenzi Fast address lookup in routing tables
US6931003B2 (en) * 2000-02-09 2005-08-16 Bookline Flolmstead Llc Packet prioritization protocol for a large-scale, high speed computer network
US7039641B2 (en) * 2000-02-24 2006-05-02 Lucent Technologies Inc. Modular packet classification
US6643269B1 (en) * 2000-03-03 2003-11-04 Luminous Networks, Inc. Routing switch automatically identifying network topology
US8380854B2 (en) 2000-03-21 2013-02-19 F5 Networks, Inc. Simplified method for processing multiple connections from the same client
US7343413B2 (en) 2000-03-21 2008-03-11 F5 Networks, Inc. Method and system for optimizing a network by independently scaling control segments and data flow
JP4236364B2 (ja) * 2000-04-04 2009-03-11 富士通株式会社 通信データ中継装置
US6574195B2 (en) * 2000-04-19 2003-06-03 Caspian Networks, Inc. Micro-flow management
US7113581B2 (en) * 2000-04-21 2006-09-26 Tekelec Methods and systems for providing dynamic routing key registration
US6826561B2 (en) * 2000-05-22 2004-11-30 Broadcom Corporation Method and apparatus for performing a binary search on an expanded tree
US6813645B1 (en) * 2000-05-24 2004-11-02 Hewlett-Packard Development Company, L.P. System and method for determining a customer associated with a range of IP addresses by employing a configurable rule engine with IP address range matching
US7318091B2 (en) * 2000-06-01 2008-01-08 Tekelec Methods and systems for providing converged network management functionality in a gateway routing node to communicate operating status information associated with a signaling system 7 (SS7) node to a data network node
US6954459B1 (en) * 2000-06-16 2005-10-11 International Business Machines Corporation Method for forwarding broadcast packets in a bridged IP network
US7966421B2 (en) * 2000-06-21 2011-06-21 SAtech Group, A.B. Limited Liability Company Method and apparatus for logically expanding the length of a search key
US6697363B1 (en) * 2000-06-28 2004-02-24 Alcatel Canada Inc. Method and apparatus for longest matching prefix determination in a communication network
US7111071B1 (en) * 2000-06-29 2006-09-19 Intel Corporation Longest prefix match for IP routers
US7373425B2 (en) * 2000-08-22 2008-05-13 Conexant Systems, Inc. High-speed MAC address search engine
US6985963B1 (en) * 2000-08-23 2006-01-10 At Home Corporation Sharing IP network resources
US7487232B1 (en) 2000-09-13 2009-02-03 Fortinet, Inc. Switch management system and method
US7574495B1 (en) * 2000-09-13 2009-08-11 Fortinet, Inc. System and method for managing interworking communications protocols
US7444398B1 (en) 2000-09-13 2008-10-28 Fortinet, Inc. System and method for delivering security services
US7111072B1 (en) * 2000-09-13 2006-09-19 Cosine Communications, Inc. Packet routing system and method
US8250357B2 (en) 2000-09-13 2012-08-21 Fortinet, Inc. Tunnel interface for securing traffic over a network
US7272643B1 (en) 2000-09-13 2007-09-18 Fortinet, Inc. System and method for managing and provisioning virtual routers
US7389358B1 (en) * 2000-09-13 2008-06-17 Fortinet, Inc. Distributed virtual system to support managed, network-based services
US20020089937A1 (en) * 2000-11-16 2002-07-11 Srinivasan Venkatachary Packet matching method and system
JP4151217B2 (ja) * 2000-12-15 2008-09-17 沖電気工業株式会社 データグラム転送装置
US7007100B1 (en) * 2000-12-20 2006-02-28 Nortel Networks Limited Method for synchronization of multicast routing table changes with a plurality of multicast routing protocols
US7106732B2 (en) * 2000-12-27 2006-09-12 Mosaid Technologies Incorporated Default route coding
US6680916B2 (en) 2001-01-22 2004-01-20 Tut Systems, Inc. Method for using a balanced tree as a base for a routing table
US7009974B1 (en) * 2001-04-18 2006-03-07 Force10 Networks, Inc. Method and apparatus for updating addresses in network processing device
JP4484190B2 (ja) * 2001-04-19 2010-06-16 インターナショナル・ビジネス・マシーンズ・コーポレーション ルーター探索システム、ルーター探索方法、及びルーター探索プログラム
US20020161823A1 (en) * 2001-04-25 2002-10-31 Fabio Casati Dynamically defining workflow processes using generic nodes
US7003582B2 (en) * 2001-06-20 2006-02-21 International Business Machines Corporation Robust NP-based data forwarding techniques that tolerate failure of control-based applications
US7181547B1 (en) 2001-06-28 2007-02-20 Fortinet, Inc. Identifying nodes in a ring network
KR100421414B1 (ko) * 2001-07-23 2004-03-09 한국전자통신연구원 다중 탐색 트리의 노드 구조를 이용한 트리 검색 및업데이트 방법
US6985483B2 (en) * 2001-07-31 2006-01-10 North Carolina State University Methods and systems for fast packet forwarding
US7290059B2 (en) * 2001-08-13 2007-10-30 Intel Corporation Apparatus and method for scalable server load balancing
KR20030018269A (ko) * 2001-08-27 2003-03-06 한국전자통신연구원 라우터 시스템에서 캐쉬 포워딩 테이블을 이용한 인터넷프로토콜 주소 룩업 제어 장치 및 그 방법
KR100418562B1 (ko) * 2001-09-06 2004-02-14 주식회사 기지소프트 다중전송을 위한 중계경로 생성방법
US8532127B2 (en) * 2001-10-19 2013-09-10 Juniper Networks, Inc. Network routing using indirect next hop data
US7035256B1 (en) * 2001-10-31 2006-04-25 Redback Networks Inc. Method and apparatus for a routing information base
US7058724B1 (en) * 2001-11-02 2006-06-06 Cisco Technology, Inc. Arrangement for routing a received signaling message based on a selected summary route in an SS7 network
US7389360B1 (en) * 2001-11-05 2008-06-17 Juniper Networks, Inc. Context switched route lookup key engine
US6901395B2 (en) * 2001-11-05 2005-05-31 Qualcomm Incorporated Method and apparatus for preferred roaming list compression
US7007101B1 (en) * 2001-11-09 2006-02-28 Radisys Microware Communications Software Division, Inc. Routing and forwarding table management for network processor architectures
US8045565B1 (en) 2001-11-20 2011-10-25 Brookline Flolmstead Llc Method and apparatus for an environmentally hardened ethernet network system
US7106740B1 (en) * 2002-01-02 2006-09-12 Juniper Networks, Inc. Nexthop to a forwarding table
US7221684B1 (en) 2002-01-08 2007-05-22 Cisco Technology, Inc. Increasing network efficiency using packet compression and decompression
EP1331793A1 (en) * 2002-01-24 2003-07-30 Alcatel Canada Inc. Method for distributing aggregate route information
EP1481514B1 (en) * 2002-03-04 2008-06-25 Operax AB A method for providing topology awareness information within an ip network
US7190696B1 (en) * 2002-03-05 2007-03-13 Force10 Networks, Inc. System and method for distributing packets among a plurality of paths to a destination
US7187694B1 (en) 2002-03-29 2007-03-06 Pmc-Sierra, Inc. Generic packet parser
US7280527B2 (en) * 2002-05-13 2007-10-09 International Business Machines Corporation Logically grouping physical ports into logical interfaces to expand bandwidth
US7203192B2 (en) 2002-06-04 2007-04-10 Fortinet, Inc. Network packet steering
US7177311B1 (en) * 2002-06-04 2007-02-13 Fortinet, Inc. System and method for routing traffic through a virtual router-based network switch
US7161904B2 (en) * 2002-06-04 2007-01-09 Fortinet, Inc. System and method for hierarchical metering in a virtual router based network switch
US7376125B1 (en) 2002-06-04 2008-05-20 Fortinet, Inc. Service processing switch
US7340535B1 (en) 2002-06-04 2008-03-04 Fortinet, Inc. System and method for controlling routing in a virtual router system
US7184437B1 (en) * 2002-07-17 2007-02-27 Juniper Networks, Inc. Scalable route resolution
US6907039B2 (en) * 2002-07-20 2005-06-14 Redback Networks Inc. Method and apparatus for routing and forwarding between virtual routers within a single network element
JP4048861B2 (ja) * 2002-07-23 2008-02-20 日本電気株式会社 アドレス検索装置
US7096383B2 (en) 2002-08-29 2006-08-22 Cosine Communications, Inc. System and method for virtual router failover in a network routing system
US7266120B2 (en) * 2002-11-18 2007-09-04 Fortinet, Inc. System and method for hardware accelerated packet multicast in a virtual routing system
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
US7099881B2 (en) * 2002-12-06 2006-08-29 Stmicroelectronics, Inc. Method for increasing average storage capacity in a bit-mapped tree-based storage engine by using remappable prefix representations and a run-length encoding scheme that defines multi-length fields to compactly store IP prefixes
KR100918733B1 (ko) * 2003-01-30 2009-09-24 삼성전자주식회사 포워딩정보를 동적으로 관리하는 분산구조라우터 및 그방법
AU2003900991A0 (en) * 2003-03-03 2003-03-20 Intelliguard I.T. Pty. Ltd. A firewall system
US20040179555A1 (en) * 2003-03-11 2004-09-16 Cisco Technology, Inc. System and method for compressing data in a communications environment
US7330467B2 (en) 2003-03-26 2008-02-12 Altera Corporation System and method for centralized, intelligent proxy driver for a switch fabric
US7571156B1 (en) 2003-03-28 2009-08-04 Netlogic Microsystems, Inc. Network device, storage medium and methods for incrementally updating a forwarding database
US7426518B2 (en) * 2003-03-28 2008-09-16 Netlogic Microsystems, Inc. System and method for efficiently searching a forwarding database that is split into a bounded number of sub-databases having a bounded size
US7325059B2 (en) * 2003-05-15 2008-01-29 Cisco Technology, Inc. Bounded index extensible hash-based IPv6 address lookup method
US7437354B2 (en) * 2003-06-05 2008-10-14 Netlogic Microsystems, Inc. Architecture for network search engines with fixed latency, high capacity, and high throughput
US7596595B2 (en) * 2003-06-18 2009-09-29 Utah State University Efficient unicast-based multicast tree construction and maintenance for multimedia transmission
US20050018683A1 (en) * 2003-07-21 2005-01-27 Zhao Yigiang Q. IP address storage technique for longest prefix match
US7460516B1 (en) 2003-07-30 2008-12-02 Cisco Technology, Inc. System and method for compressing communication flows in a network environment
US7487255B2 (en) * 2003-08-14 2009-02-03 Hewlett-Packard Development Company, L.P. Routing cache management with route fragmentation
US7720095B2 (en) 2003-08-27 2010-05-18 Fortinet, Inc. Heterogeneous media packet bridging
US7702882B2 (en) * 2003-09-10 2010-04-20 Samsung Electronics Co., Ltd. Apparatus and method for performing high-speed lookups in a routing table
US7372843B1 (en) 2003-09-23 2008-05-13 Cisco Technology, Inc. System and method for compressing information flows in a network environment
US7852836B2 (en) * 2003-11-19 2010-12-14 Cray Inc. Reduced arbitration routing system and method
US7733793B1 (en) 2003-12-10 2010-06-08 Cisco Technology, Inc. System and method for suppressing silence data in a network environment
US7308505B2 (en) * 2003-12-17 2007-12-11 International Business Machines Corporation Method, system and program product for facilitating forwarding of data packets through a node of a data transfer network using multiple types of forwarding tables
US7457315B1 (en) 2003-12-23 2008-11-25 Cisco Technology, Inc. System and method for compressing information in a communications environment
US7590070B1 (en) 2004-02-03 2009-09-15 Cisco Technology, Inc. System and method for discretionary multiplexing and compressing in a communications environment
DE102004006102B4 (de) * 2004-02-06 2005-12-08 Oliver Bartels Datenverarbeitungseinrichtung zur schnellen Suche von Datenworten
US7564381B1 (en) 2004-02-16 2009-07-21 Cisco Technology, Inc. System and method for code-based compression in a communications environment
US7440460B2 (en) * 2004-03-05 2008-10-21 Samsung Electronics Co., Ltd. Apparatus and method for forwarding mixed data packet types in a high-speed router
US7564841B2 (en) * 2004-03-05 2009-07-21 Samsung Electronics Co., Ltd. Apparatus and method for performing forwarding table searches using consecutive symbols tables
US8300824B1 (en) 2004-04-08 2012-10-30 Cisco Technology, Inc. System and method for encrypting data using a cipher text in a communications environment
US7454396B2 (en) * 2004-04-27 2008-11-18 International Business Machines Corporation Method for compressing multi-field rule specifications
US7412431B2 (en) * 2004-04-27 2008-08-12 International Business Machines Corporation Method for managing multi-field classification rules relating to ingress
US7366728B2 (en) * 2004-04-27 2008-04-29 International Business Machines Corporation System for compressing a search tree structure used in rule classification
US7599371B1 (en) 2004-06-09 2009-10-06 Cisco Technology, Inc. System and method for optimizing data transport in a communications system
US7532647B2 (en) * 2004-07-14 2009-05-12 Tekelec Methods and systems for auto-correlating message transfer part (MTP) priority and internet protocol (IP) type of service in converged networks
US7362721B1 (en) 2004-07-28 2008-04-22 Cisco Technology, Inc. System and method for providing fault and error tolerant communications in a network environment
US7646773B2 (en) * 2004-08-02 2010-01-12 Extreme Networks Forwarding database in a network switch device
US7764673B1 (en) 2004-08-04 2010-07-27 Cisco Technology, Inc. System and method for implementing a variable size codebook for compression in a communications environment
US20060047714A1 (en) * 2004-08-30 2006-03-02 Mendocino Software, Inc. Systems and methods for rapid presentation of historical views of stored data
US7664983B2 (en) * 2004-08-30 2010-02-16 Symantec Corporation Systems and methods for event driven recovery management
US7363316B2 (en) 2004-08-30 2008-04-22 Mendocino Software, Inc. Systems and methods for organizing and mapping data
US7570662B2 (en) * 2004-09-21 2009-08-04 Cisco Technology, Inc. System and method for multiplexing, fragmenting, and interleaving in a communications environment
US7499419B2 (en) 2004-09-24 2009-03-03 Fortinet, Inc. Scalable IP-services enabled multicast forwarding with efficient resource utilization
US7808904B2 (en) * 2004-11-18 2010-10-05 Fortinet, Inc. Method and apparatus for managing subscriber profiles
US20070115979A1 (en) * 2004-11-18 2007-05-24 Fortinet, Inc. Method and apparatus for managing subscriber profiles
JP2006262336A (ja) * 2005-03-18 2006-09-28 Fujitsu Ltd フレーム転送方法及び装置
US7778278B2 (en) * 2005-03-28 2010-08-17 Cisco Technology, Inc. System and method for implementing dynamic suppression and recreation of suppressed data in a communications environment
US8089964B2 (en) * 2005-04-05 2012-01-03 Cisco Technology, Inc. Transporting multicast over MPLS backbone using virtual interfaces to perform reverse-path forwarding checks
US7403501B2 (en) * 2005-05-03 2008-07-22 Cisco Technology, Inc. System and method for implementing suppression in a communications environment
US7642936B2 (en) * 2005-05-24 2010-01-05 Cisco Technology, Inc. System and method for determining whether to dynamically suppress data in a communications environment
US7630998B2 (en) * 2005-06-10 2009-12-08 Microsoft Corporation Performing a deletion of a node in a tree data storage structure
US7477651B2 (en) * 2005-07-01 2009-01-13 Cisco Technology, Inc. System and method for implementing quality of service in a backhaul communications environment
US20070058539A1 (en) * 2005-08-17 2007-03-15 Cisco Technology, Inc. System and method for implementing suppression for asynchronous transfer mode (ATM) adaptation layer 2 (AAL2) traffic in a communications environment
US8223666B2 (en) * 2005-08-23 2012-07-17 Cisco Technology, Inc. Method of constructing a forwarding database for a data communications network
US7969995B2 (en) * 2005-08-23 2011-06-28 Cisco Technology, Inc. Method and apparatus for constructing a forwarding database for a data communications network
US7551609B2 (en) * 2005-10-21 2009-06-23 Cisco Technology, Inc. Data structure for storing and accessing multiple independent sets of forwarding information
US7675851B2 (en) * 2005-11-16 2010-03-09 Cisco Technology, Inc. System and method for synchronizing a back-up device in a communications environment
US7694068B1 (en) 2005-12-08 2010-04-06 Netlogic Microsystems, Inc. Re-entrant processing in a content addressable memory
US7929571B2 (en) * 2006-01-12 2011-04-19 Cisco Technology, Inc. System and method for implementing a preemptive retransmit for error recovery in a communications environment
US20070171825A1 (en) * 2006-01-20 2007-07-26 Anagran, Inc. System, method, and computer program product for IP flow routing
US8547843B2 (en) * 2006-01-20 2013-10-01 Saisei Networks Pte Ltd System, method, and computer program product for controlling output port utilization
US7668920B2 (en) * 2006-03-01 2010-02-23 Fortinet, Inc. Electronic message and data tracking system
US8934486B2 (en) * 2006-03-16 2015-01-13 Cisco Technology, Inc. System and method for implementing multicast over a label-switched core network
KR101255857B1 (ko) * 2006-03-16 2013-04-17 리서치 파운데이션 오브 더 시티 유니버시티 오브 뉴욕 트리-안내 분산 링크 스테이트 라우팅 방법
US7817629B2 (en) * 2006-05-12 2010-10-19 Agere Systems Inc. Methods and apparatus for performing network operations on packets of data in response to content of particular user-specified protocol header fields
US8000238B2 (en) * 2006-08-04 2011-08-16 Cisco Technology, Inc. System and method for detecting and regulating congestion in a communications environment
US7944823B1 (en) 2006-09-01 2011-05-17 Cisco Technology, Inc. System and method for addressing dynamic congestion abatement for GSM suppression/compression
US8005116B2 (en) * 2006-11-16 2011-08-23 Cisco Technology, Inc. System and method for mitigating the effects of bit insertion in a communications environment
US8040823B2 (en) * 2007-01-08 2011-10-18 Industrial Technology Research Institute Method and system for network data transmitting
US7830873B1 (en) * 2007-01-09 2010-11-09 Marvell Israel (M.I.S.L.) Ltd. Implementation of distributed traffic rate limiters
US7904642B1 (en) 2007-02-08 2011-03-08 Netlogic Microsystems, Inc. Method for combining and storing access control lists
US7991910B2 (en) 2008-11-17 2011-08-02 Amazon Technologies, Inc. Updating routing information based on client location
US8028090B2 (en) 2008-11-17 2011-09-27 Amazon Technologies, Inc. Request routing utilizing client location information
US8024634B2 (en) * 2007-08-07 2011-09-20 Cisco Technology, Inc. System and method for implementing a subrate recovery for lost packets in a communications environment
US8447831B1 (en) 2008-03-31 2013-05-21 Amazon Technologies, Inc. Incentive driven content delivery
US8156243B2 (en) 2008-03-31 2012-04-10 Amazon Technologies, Inc. Request routing
US7962597B2 (en) 2008-03-31 2011-06-14 Amazon Technologies, Inc. Request routing based on class
US8533293B1 (en) 2008-03-31 2013-09-10 Amazon Technologies, Inc. Client side cache management
US7903666B1 (en) * 2008-03-31 2011-03-08 Extreme Networks, Inc. Method and system for compressing route entries in a route table based on equal-cost multi-paths (ECMPs) matches
US7970820B1 (en) 2008-03-31 2011-06-28 Amazon Technologies, Inc. Locality based content distribution
US8606996B2 (en) * 2008-03-31 2013-12-10 Amazon Technologies, Inc. Cache optimization
US8321568B2 (en) * 2008-03-31 2012-11-27 Amazon Technologies, Inc. Content management
US8601090B1 (en) * 2008-03-31 2013-12-03 Amazon Technologies, Inc. Network resource identification
US8806053B1 (en) 2008-04-29 2014-08-12 F5 Networks, Inc. Methods and systems for optimizing network traffic using preemptive acknowledgment signals
CN101594339B (zh) * 2008-05-29 2012-07-04 华为技术有限公司 管理和查询映射信息的方法、设备及通信系统
US9407681B1 (en) 2010-09-28 2016-08-02 Amazon Technologies, Inc. Latency measurement in resource requests
US7925782B2 (en) 2008-06-30 2011-04-12 Amazon Technologies, Inc. Request routing using network computing components
US9912740B2 (en) 2008-06-30 2018-03-06 Amazon Technologies, Inc. Latency measurement in resource requests
US8392613B2 (en) * 2008-07-03 2013-03-05 Nokia Corporation Network address assignment
US8331369B2 (en) 2008-07-10 2012-12-11 At&T Intellectual Property I, L.P. Methods and apparatus to distribute network IP traffic
US8286176B1 (en) 2008-09-29 2012-10-09 Amazon Technologies, Inc. Optimizing resource configurations
US8117306B1 (en) 2008-09-29 2012-02-14 Amazon Technologies, Inc. Optimizing content management
US8051166B1 (en) 2008-09-29 2011-11-01 Amazon Technologies, Inc. Service provider optimization of content management
US7865594B1 (en) 2008-09-29 2011-01-04 Amazon Technologies, Inc. Managing resources consolidation configurations
US7930393B1 (en) 2008-09-29 2011-04-19 Amazon Technologies, Inc. Monitoring domain allocation performance
US8122124B1 (en) 2008-09-29 2012-02-21 Amazon Technologies, Inc. Monitoring performance and operation of data exchanges
US8316124B1 (en) 2008-09-29 2012-11-20 Amazon Technologies, Inc. Managing network data display
US8396066B1 (en) * 2008-10-07 2013-03-12 BCK Networks, Inc. Routing table for non-uniform random neighbor selection
US8566444B1 (en) 2008-10-30 2013-10-22 F5 Networks, Inc. Methods and system for simultaneous multiple rules checking
US8073940B1 (en) 2008-11-17 2011-12-06 Amazon Technologies, Inc. Managing content delivery network service providers
US8122098B1 (en) 2008-11-17 2012-02-21 Amazon Technologies, Inc. Managing content delivery network service providers by a content broker
US8521880B1 (en) 2008-11-17 2013-08-27 Amazon Technologies, Inc. Managing content delivery network service providers
US8065417B1 (en) 2008-11-17 2011-11-22 Amazon Technologies, Inc. Service provider registration by a content broker
US8732309B1 (en) 2008-11-17 2014-05-20 Amazon Technologies, Inc. Request routing utilizing cost information
US8060616B1 (en) 2008-11-17 2011-11-15 Amazon Technologies, Inc. Managing CDN registration by a storage provider
CN101404612B (zh) * 2008-11-20 2012-05-23 杭州华三通信技术有限公司 实现数据流硬件转发的方法和系统以及网络路由设备
US7917618B1 (en) * 2009-03-24 2011-03-29 Amazon Technologies, Inc. Monitoring web site content
US8521851B1 (en) 2009-03-27 2013-08-27 Amazon Technologies, Inc. DNS query processing using resource identifiers specifying an application broker
US8756341B1 (en) 2009-03-27 2014-06-17 Amazon Technologies, Inc. Request routing utilizing popularity information
US8688837B1 (en) 2009-03-27 2014-04-01 Amazon Technologies, Inc. Dynamically translating resource identifiers for request routing using popularity information
US8412823B1 (en) 2009-03-27 2013-04-02 Amazon Technologies, Inc. Managing tracking information entries in resource cache components
US8782236B1 (en) 2009-06-16 2014-07-15 Amazon Technologies, Inc. Managing resources using resource expiration data
US8565247B2 (en) 2009-08-19 2013-10-22 Brocade Communications Systems, Inc. Techniques for efficiently updating routing information upon shortest path tree computation
US8397073B1 (en) 2009-09-04 2013-03-12 Amazon Technologies, Inc. Managing secure content in a content delivery network
US8873563B2 (en) * 2009-09-21 2014-10-28 Brocade Communications Systems, Inc. Techniques for next-hop optimization
US10157280B2 (en) 2009-09-23 2018-12-18 F5 Networks, Inc. System and method for identifying security breach attempts of a website
US8433771B1 (en) 2009-10-02 2013-04-30 Amazon Technologies, Inc. Distribution network with forward resource propagation
US9313047B2 (en) 2009-11-06 2016-04-12 F5 Networks, Inc. Handling high throughput and low latency network data packets in a traffic management device
US8868961B1 (en) 2009-11-06 2014-10-21 F5 Networks, Inc. Methods for acquiring hyper transport timing and devices thereof
US10721269B1 (en) 2009-11-06 2020-07-21 F5 Networks, Inc. Methods and system for returning requests with javascript for clients before passing a request to a server
US8331371B2 (en) 2009-12-17 2012-12-11 Amazon Technologies, Inc. Distributed routing architecture
US8331370B2 (en) * 2009-12-17 2012-12-11 Amazon Technologies, Inc. Distributed routing architecture
US8325730B2 (en) * 2009-12-17 2012-12-04 Amazon Technologies, Inc. Distributed routing architecture
US9495338B1 (en) 2010-01-28 2016-11-15 Amazon Technologies, Inc. Content distribution network
US8438330B2 (en) 2010-05-17 2013-05-07 Netlogic Microsystems, Inc. Updating cam arrays using prefix length distribution prediction
US9491085B2 (en) 2010-05-24 2016-11-08 At&T Intellectual Property I, L.P. Methods and apparatus to route control packets based on address partitioning
US8699484B2 (en) 2010-05-24 2014-04-15 At&T Intellectual Property I, L.P. Methods and apparatus to route packets in a network
US9141625B1 (en) 2010-06-22 2015-09-22 F5 Networks, Inc. Methods for preserving flow state during virtual machine migration and devices thereof
US10015286B1 (en) 2010-06-23 2018-07-03 F5 Networks, Inc. System and method for proxying HTTP single sign on across network domains
US8908545B1 (en) 2010-07-08 2014-12-09 F5 Networks, Inc. System and method for handling TCP performance in network access with driver initiated application tunnel
US8347100B1 (en) 2010-07-14 2013-01-01 F5 Networks, Inc. Methods for DNSSEC proxying and deployment amelioration and systems thereof
US9083760B1 (en) 2010-08-09 2015-07-14 F5 Networks, Inc. Dynamic cloning and reservation of detached idle connections
US8756272B1 (en) 2010-08-26 2014-06-17 Amazon Technologies, Inc. Processing encoded content
US8630174B1 (en) 2010-09-14 2014-01-14 F5 Networks, Inc. System and method for post shaping TCP packetization
US8886981B1 (en) 2010-09-15 2014-11-11 F5 Networks, Inc. Systems and methods for idle driven scheduling
US8463909B1 (en) 2010-09-15 2013-06-11 F5 Networks, Inc. Systems and methods for managing server resources
US8804504B1 (en) 2010-09-16 2014-08-12 F5 Networks, Inc. System and method for reducing CPU load in processing PPP packets on a SSL-VPN tunneling device
US9003035B1 (en) 2010-09-28 2015-04-07 Amazon Technologies, Inc. Point of presence management in request routing
US8819283B2 (en) 2010-09-28 2014-08-26 Amazon Technologies, Inc. Request routing in a networked environment
US8938526B1 (en) 2010-09-28 2015-01-20 Amazon Technologies, Inc. Request routing management based on network components
US10958501B1 (en) 2010-09-28 2021-03-23 Amazon Technologies, Inc. Request routing information based on client IP groupings
US9712484B1 (en) 2010-09-28 2017-07-18 Amazon Technologies, Inc. Managing request routing information utilizing client identifiers
US8930513B1 (en) 2010-09-28 2015-01-06 Amazon Technologies, Inc. Latency measurement in resource requests
US8924528B1 (en) 2010-09-28 2014-12-30 Amazon Technologies, Inc. Latency measurement in resource requests
US10097398B1 (en) 2010-09-28 2018-10-09 Amazon Technologies, Inc. Point of presence management in request routing
US8577992B1 (en) 2010-09-28 2013-11-05 Amazon Technologies, Inc. Request routing management based on network components
US8468247B1 (en) 2010-09-28 2013-06-18 Amazon Technologies, Inc. Point of presence management in request routing
WO2012058486A2 (en) 2010-10-29 2012-05-03 F5 Networks, Inc. Automated policy builder
US9554276B2 (en) 2010-10-29 2017-01-24 F5 Networks, Inc. System and method for on the fly protocol conversion in obtaining policy enforcement information
US8660118B2 (en) * 2010-11-19 2014-02-25 Extreme Networks, Inc. Methods, systems, and computer readable media for next hop scaling
WO2012068579A2 (en) 2010-11-19 2012-05-24 Extreme Networks, Inc. Methods, systems, and computer readable media for next hop scaling with link aggregation
US8605726B2 (en) * 2010-11-19 2013-12-10 Extreme Networks, Inc. Methods, systems, and computer readable media for next hop scaling with link aggregation
US8452874B2 (en) 2010-11-22 2013-05-28 Amazon Technologies, Inc. Request routing processing
US8626950B1 (en) 2010-12-03 2014-01-07 Amazon Technologies, Inc. Request routing processing
US9391949B1 (en) 2010-12-03 2016-07-12 Amazon Technologies, Inc. Request routing processing
US8627467B2 (en) 2011-01-14 2014-01-07 F5 Networks, Inc. System and method for selectively storing web objects in a cache memory based on policy decisions
CN102075429B (zh) * 2011-01-21 2014-12-17 北京邮电大学 一种基于就近原则的虚拟网络映射方法
US10135831B2 (en) 2011-01-28 2018-11-20 F5 Networks, Inc. System and method for combining an access control system with a traffic management system
CN102075402B (zh) * 2011-02-12 2013-06-05 华为技术有限公司 虚拟网络映射处理方法和系统
US10467042B1 (en) 2011-04-27 2019-11-05 Amazon Technologies, Inc. Optimized deployment based upon customer locality
US8503464B2 (en) 2011-05-20 2013-08-06 Brocade Communications Systems, Inc. Techniques for efficiently updating routing information
US9378560B2 (en) 2011-06-17 2016-06-28 Advanced Micro Devices, Inc. Real time on-chip texture decompression using shader processors
US9246819B1 (en) 2011-06-20 2016-01-26 F5 Networks, Inc. System and method for performing message-based load balancing
US9237124B2 (en) * 2011-07-14 2016-01-12 Marvell Israel (M.I.S.L) Ltd. Scaling of virtual machine addresses in datacenters
CN102546232B (zh) * 2011-11-03 2014-12-17 北京邮电大学 一种多拓扑虚拟网络映射方法
US9270766B2 (en) 2011-12-30 2016-02-23 F5 Networks, Inc. Methods for identifying network traffic characteristics to correlate and manage one or more subsequent flows and devices thereof
US8904009B1 (en) 2012-02-10 2014-12-02 Amazon Technologies, Inc. Dynamic content delivery
US10230566B1 (en) 2012-02-17 2019-03-12 F5 Networks, Inc. Methods for dynamically constructing a service principal name and devices thereof
US9172753B1 (en) 2012-02-20 2015-10-27 F5 Networks, Inc. Methods for optimizing HTTP header based authentication and devices thereof
US9231879B1 (en) 2012-02-20 2016-01-05 F5 Networks, Inc. Methods for policy-based network traffic queue management and devices thereof
US10021179B1 (en) 2012-02-21 2018-07-10 Amazon Technologies, Inc. Local resource delivery network
CN102624597B (zh) * 2012-03-09 2014-12-17 北京邮电大学 一种双向排序的虚拟网络映射方法
US9083743B1 (en) 2012-03-21 2015-07-14 Amazon Technologies, Inc. Managing request routing information utilizing performance information
US10623408B1 (en) 2012-04-02 2020-04-14 Amazon Technologies, Inc. Context sensitive object management
US10097616B2 (en) 2012-04-27 2018-10-09 F5 Networks, Inc. Methods for optimizing service of content requests and devices thereof
US9338095B2 (en) 2012-05-01 2016-05-10 F5 Networks, Inc. Data flow segment optimized for hot flows
US9154423B1 (en) 2012-05-01 2015-10-06 F5 Networks, Inc. Minimize SYN-flood issues with flow cache while maintaining performance
US9525632B1 (en) 2012-05-01 2016-12-20 F5 Networks, Inc. Minimize recycle SYN issues for split TCP hot flows to improve system reliability and performance
US9154551B1 (en) 2012-06-11 2015-10-06 Amazon Technologies, Inc. Processing DNS queries to identify pre-processing information
US9203771B1 (en) 2012-07-23 2015-12-01 F5 Networks, Inc. Hot service flow hardware offloads based on service priority and resource usage
US9525659B1 (en) * 2012-09-04 2016-12-20 Amazon Technologies, Inc. Request routing utilizing point of presence load information
US9135048B2 (en) 2012-09-20 2015-09-15 Amazon Technologies, Inc. Automated profiling of resource usage
US9323577B2 (en) 2012-09-20 2016-04-26 Amazon Technologies, Inc. Automated profiling of resource usage
US9049148B1 (en) 2012-09-28 2015-06-02 Juniper Networks, Inc. Dynamic forwarding plane reconfiguration in a network device
US10205698B1 (en) 2012-12-19 2019-02-12 Amazon Technologies, Inc. Source-dependent address resolution
US10375155B1 (en) 2013-02-19 2019-08-06 F5 Networks, Inc. System and method for achieving hardware acceleration for asymmetric flow connections
US9294391B1 (en) 2013-06-04 2016-03-22 Amazon Technologies, Inc. Managing network computing components utilizing request routing
US10187317B1 (en) 2013-11-15 2019-01-22 F5 Networks, Inc. Methods for traffic rate control and devices thereof
US9268855B2 (en) * 2014-01-08 2016-02-23 Cavium, Inc. Processing request keys based on a key size supported by underlying processing elements
US10877951B2 (en) 2014-01-22 2020-12-29 International Business Machines Corporation Network control software notification and invalidation of static entries
US10419267B2 (en) 2014-01-22 2019-09-17 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Network control software notification with advance learning
US10015143B1 (en) 2014-06-05 2018-07-03 F5 Networks, Inc. Methods for securing one or more license entitlement grants and devices thereof
US9667535B2 (en) * 2014-06-11 2017-05-30 Level 3 Communications, Llc Multi-peer routing in a network
US11838851B1 (en) 2014-07-15 2023-12-05 F5, Inc. Methods for managing L7 traffic classification and devices thereof
US10122630B1 (en) 2014-08-15 2018-11-06 F5 Networks, Inc. Methods for network traffic presteering and devices thereof
US10182013B1 (en) 2014-12-01 2019-01-15 F5 Networks, Inc. Methods for managing progressive image delivery and devices thereof
US20170316048A1 (en) * 2014-12-08 2017-11-02 Nec Europe Ltd. Method and system for filtering data series
US10097448B1 (en) 2014-12-18 2018-10-09 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
US10033627B1 (en) 2014-12-18 2018-07-24 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
US10091096B1 (en) 2014-12-18 2018-10-02 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
US11895138B1 (en) 2015-02-02 2024-02-06 F5, Inc. Methods for improving web scanner accuracy and devices thereof
US10225326B1 (en) 2015-03-23 2019-03-05 Amazon Technologies, Inc. Point of presence based data uploading
US9887932B1 (en) 2015-03-30 2018-02-06 Amazon Technologies, Inc. Traffic surge management for points of presence
US9887931B1 (en) 2015-03-30 2018-02-06 Amazon Technologies, Inc. Traffic surge management for points of presence
US9819567B1 (en) 2015-03-30 2017-11-14 Amazon Technologies, Inc. Traffic surge management for points of presence
US10834065B1 (en) 2015-03-31 2020-11-10 F5 Networks, Inc. Methods for SSL protected NTLM re-authentication and devices thereof
US10505818B1 (en) 2015-05-05 2019-12-10 F5 Networks. Inc. Methods for analyzing and load balancing based on server health and devices thereof
US11350254B1 (en) 2015-05-05 2022-05-31 F5, Inc. Methods for enforcing compliance policies and devices thereof
US9832141B1 (en) 2015-05-13 2017-11-28 Amazon Technologies, Inc. Routing based request correlation
US10616179B1 (en) 2015-06-25 2020-04-07 Amazon Technologies, Inc. Selective routing of domain name system (DNS) requests
US10097566B1 (en) 2015-07-31 2018-10-09 Amazon Technologies, Inc. Identifying targets of network attacks
US9794281B1 (en) 2015-09-24 2017-10-17 Amazon Technologies, Inc. Identifying sources of network attacks
US9742795B1 (en) 2015-09-24 2017-08-22 Amazon Technologies, Inc. Mitigating network attacks
US9774619B1 (en) 2015-09-24 2017-09-26 Amazon Technologies, Inc. Mitigating network attacks
US10270878B1 (en) 2015-11-10 2019-04-23 Amazon Technologies, Inc. Routing for origin-facing points of presence
US10257307B1 (en) 2015-12-11 2019-04-09 Amazon Technologies, Inc. Reserved cache space in content delivery networks
US10049051B1 (en) 2015-12-11 2018-08-14 Amazon Technologies, Inc. Reserved cache space in content delivery networks
US10348639B2 (en) 2015-12-18 2019-07-09 Amazon Technologies, Inc. Use of virtual endpoints to improve data transmission rates
US11757946B1 (en) 2015-12-22 2023-09-12 F5, Inc. Methods for analyzing network traffic and enforcing network policies and devices thereof
US10404698B1 (en) 2016-01-15 2019-09-03 F5 Networks, Inc. Methods for adaptive organization of web application access points in webtops and devices thereof
US10797888B1 (en) 2016-01-20 2020-10-06 F5 Networks, Inc. Methods for secured SCEP enrollment for client devices and devices thereof
US11178150B1 (en) 2016-01-20 2021-11-16 F5 Networks, Inc. Methods for enforcing access control list based on managed application and devices thereof
US10075551B1 (en) 2016-06-06 2018-09-11 Amazon Technologies, Inc. Request management for hierarchical cache
US10791088B1 (en) 2016-06-17 2020-09-29 F5 Networks, Inc. Methods for disaggregating subscribers via DHCP address translation and devices thereof
US10110694B1 (en) 2016-06-29 2018-10-23 Amazon Technologies, Inc. Adaptive transfer rate for retrieving content from a server
US10284457B2 (en) * 2016-07-12 2019-05-07 Dell Products, L.P. System and method for virtual link trunking
CN107770062A (zh) * 2016-08-16 2018-03-06 北京金山云网络技术有限公司 一种数据包发送方法、装置及网络架构
US9992086B1 (en) 2016-08-23 2018-06-05 Amazon Technologies, Inc. External health checking of virtual private cloud network environments
US10033691B1 (en) 2016-08-24 2018-07-24 Amazon Technologies, Inc. Adaptive resolution of domain name requests in virtual private cloud network environments
US11005977B2 (en) * 2016-08-31 2021-05-11 Viavi Solutions Inc. Packet filtering using binary search trees
US10469513B2 (en) 2016-10-05 2019-11-05 Amazon Technologies, Inc. Encrypted network addresses
US11063758B1 (en) 2016-11-01 2021-07-13 F5 Networks, Inc. Methods for facilitating cipher selection and devices thereof
US10505792B1 (en) 2016-11-02 2019-12-10 F5 Networks, Inc. Methods for facilitating network traffic analytics and devices thereof
US10831549B1 (en) 2016-12-27 2020-11-10 Amazon Technologies, Inc. Multi-region request-driven code execution system
US10372499B1 (en) 2016-12-27 2019-08-06 Amazon Technologies, Inc. Efficient region selection system for executing request-driven code
US10938884B1 (en) 2017-01-30 2021-03-02 Amazon Technologies, Inc. Origin server cloaking using virtual private cloud network environments
US11496438B1 (en) 2017-02-07 2022-11-08 F5, Inc. Methods for improved network security using asymmetric traffic delivery and devices thereof
US10791119B1 (en) 2017-03-14 2020-09-29 F5 Networks, Inc. Methods for temporal password injection and devices thereof
US10812266B1 (en) 2017-03-17 2020-10-20 F5 Networks, Inc. Methods for managing security tokens based on security violations and devices thereof
US10931662B1 (en) 2017-04-10 2021-02-23 F5 Networks, Inc. Methods for ephemeral authentication screening and devices thereof
US10503613B1 (en) 2017-04-21 2019-12-10 Amazon Technologies, Inc. Efficient serving of resources during server unavailability
US10972453B1 (en) 2017-05-03 2021-04-06 F5 Networks, Inc. Methods for token refreshment based on single sign-on (SSO) for federated identity environments and devices thereof
US11343237B1 (en) 2017-05-12 2022-05-24 F5, Inc. Methods for managing a federated identity environment using security and access control data and devices thereof
US11122042B1 (en) 2017-05-12 2021-09-14 F5 Networks, Inc. Methods for dynamically managing user access control and devices thereof
US11075987B1 (en) 2017-06-12 2021-07-27 Amazon Technologies, Inc. Load estimating content delivery network
US10447648B2 (en) 2017-06-19 2019-10-15 Amazon Technologies, Inc. Assignment of a POP to a DNS resolver based on volume of communications over a link between client devices and the POP
CN107391600A (zh) * 2017-06-30 2017-11-24 北京百度网讯科技有限公司 用于在内存中存取时序数据的方法和装置
US11122083B1 (en) 2017-09-08 2021-09-14 F5 Networks, Inc. Methods for managing network connections based on DNS data and network policies and devices thereof
US10742593B1 (en) 2017-09-25 2020-08-11 Amazon Technologies, Inc. Hybrid content request routing system
US10592578B1 (en) 2018-03-07 2020-03-17 Amazon Technologies, Inc. Predictive content push-enabled content delivery network
US11658995B1 (en) 2018-03-20 2023-05-23 F5, Inc. Methods for dynamically mitigating network attacks and devices thereof
US11044200B1 (en) 2018-07-06 2021-06-22 F5 Networks, Inc. Methods for service stitching using a packet header and devices thereof
CN110753133B (zh) * 2018-07-23 2022-03-29 华为技术有限公司 处理地址的方法和网络设备
SE1851342A1 (en) * 2018-10-29 2020-04-30 Telia Co Ab A method and an apparatus for routing data packets in a network topology
US10862852B1 (en) 2018-11-16 2020-12-08 Amazon Technologies, Inc. Resolution of domain name requests in heterogeneous network environments
US11025747B1 (en) 2018-12-12 2021-06-01 Amazon Technologies, Inc. Content request pattern-based routing system
WO2020236634A1 (en) * 2019-05-17 2020-11-26 Tencent Technology (Shenzhen) Company Limited Method and apparatus for device-to-device interconnected local area network
US11288244B2 (en) * 2019-06-10 2022-03-29 Akamai Technologies, Inc. Tree deduplication

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5842224A (en) * 1989-06-16 1998-11-24 Fenner; Peter R. Method and apparatus for source filtering data packets between networks of differing media
AU620994B2 (en) * 1989-07-12 1992-02-27 Digital Equipment Corporation Compressed prefix matching database searching
EP0556148B1 (en) 1992-01-10 1998-07-22 Digital Equipment Corporation Scheme for interlocking a line card to an address recognition engine
GB9326476D0 (en) * 1993-12-24 1994-02-23 Newbridge Networks Corp Network
US5412654A (en) * 1994-01-10 1995-05-02 International Business Machines Corporation Highly dynamic destination-sequenced destination vector routing for mobile computers
US5870739A (en) * 1996-09-20 1999-02-09 Novell, Inc. Hybrid query apparatus and method
US6011795A (en) * 1997-03-20 2000-01-04 Washington University Method and apparatus for fast hierarchical address lookup using controlled expansion of prefixes
US5946679A (en) * 1997-07-31 1999-08-31 Torrent Networking Technologies, Corp. System and method for locating a route in a route table using hashing and compressed radix tree searching
US6061712A (en) * 1998-01-07 2000-05-09 Lucent Technologies, Inc. Method for IP routing table look-up
US6052683A (en) * 1998-02-24 2000-04-18 Nortel Networks Corporation Address lookup in packet data communication networks

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1469600B (zh) * 2002-07-15 2010-11-24 华为技术有限公司 一种互联网协议报文转发过程中快速重选路由的方法
CN100388717C (zh) * 2002-08-27 2008-05-14 华为技术有限公司 在三层网络中查找路由下一跳的方法
CN100352233C (zh) * 2002-12-10 2007-11-28 中兴通讯股份有限公司 路由表的组织与查找方法
CN100366008C (zh) * 2003-05-29 2008-01-30 华为技术有限公司 构造路由表及用其查找路由项的方法
CN100375463C (zh) * 2004-07-02 2008-03-12 中国科学院计算技术研究所 一种使用分段压缩表实现最长前缀地址路由查找的方法
CN100401723C (zh) * 2005-10-13 2008-07-09 华为技术有限公司 一种快速索引方法
CN101132364B (zh) * 2007-08-23 2012-02-29 新动力(北京)建筑科技有限公司 控制网络中数据寻址和转发的方法及系统
CN101895592A (zh) * 2010-08-31 2010-11-24 上海交通大学 基于树状拓扑地址分配的路由寻址方法
CN101895592B (zh) * 2010-08-31 2012-08-29 上海交通大学 基于树状拓扑地址分配的路由寻址方法
CN105516023A (zh) * 2014-09-24 2016-04-20 华为技术有限公司 一种报文转发方法和装置
CN108965136A (zh) * 2018-07-16 2018-12-07 清华大学 基于空间网络层次化ip编址的转发方法及装置
CN112787898A (zh) * 2020-12-29 2021-05-11 美的集团股份有限公司 设备数据通信方法、装置、电子设备及存储介质
CN113141304A (zh) * 2021-04-15 2021-07-20 中国科学院计算机网络信息中心 一种面向虚拟化路由器的多转发表压缩及查找方法与系统

Also Published As

Publication number Publication date
CA2363963C (en) 2007-04-24
AU3705000A (en) 2000-09-14
CA2363963A1 (en) 2000-08-31
EP1155537A4 (en) 2006-09-20
WO2000051298A8 (en) 2001-03-29
WO2000051298B1 (en) 2000-11-16
EP1155537A1 (en) 2001-11-21
IL144795A0 (en) 2002-06-30
US6192051B1 (en) 2001-02-20
CN1148917C (zh) 2004-05-05
AU759929B2 (en) 2003-05-01
EP1155537B1 (en) 2018-10-03
WO2000051298A1 (en) 2000-08-31

Similar Documents

Publication Publication Date Title
CN1148917C (zh) 用于标识分组应被转发到网络的下一跳的地址的设备及其操作方法
Nilsson et al. IP-address lookup using LC-tries
US6819670B1 (en) Data packet routing for mobile networks
US6243720B1 (en) Address translation method and system having a forwarding table data structure
CN100444563C (zh) 用于交换节点的分类方法和标记方法
US5842224A (en) Method and apparatus for source filtering data packets between networks of differing media
US5490258A (en) Associative memory for very large key spaces
CN1150725C (zh) 减少存储器访问次数的网络包发送查询的方法和装置
JP4156112B2 (ja) 高速検索方法及び高速検索装置
US6792423B1 (en) Hybrid longest prefix match and fixed match searches
EP1168723B1 (en) Method and apparatus for longest matching prefix determination in a communication network
US6778532B1 (en) Packet relaying apparatus and high speed multicast system
CN1317189A (zh) 网络分组交换系统和方法
CN1270728A (zh) 快速路由查找的方法和系统
US20120320921A1 (en) Packet routing and switching device
CN1859316A (zh) 数据包传送装置
CN1774900A (zh) 有界索引可扩展的基于散列的IPv6地址查找方法
CN1520110A (zh) 对转发信息进行动态管理的分布式路由器及其方法
CN1404591A (zh) 执行高速互联网协议路由查找和管理路由选择/转发表的装置和方法
CN1564989A (zh) Mac地址高速搜索引擎
CN1277386C (zh) 弹性分组多环互连网络自动拓扑发现的实现方法
US7330469B2 (en) Internet protocol address lookup system and method using three-layer table architecture
EP1533956A2 (en) Dynamic forwarding of data packets using binary search
JP2009518916A (ja) ソート装置及び方法
US20010015976A1 (en) Table-type data retrieval mechanism, packet processing system using the same, and table-type data retrieval method for said packet processing system

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
ASS Succession or assignment of patent right

Owner name: ZHUNI PUER NETWORK LIMITED

Free format text: FORMER OWNER: REDSTONE COMMUNICATIONS INC.

Effective date: 20030403

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20030403

Address after: American California

Applicant after: Junipur Network Co. Ltd.

Address before: Massachusetts, USA

Applicant before: Redstone Communications Inc.

C14 Grant of patent or utility model
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: American California

Patentee after: Peribit Networks Inc.

Address before: American California

Patentee before: Junipur Network 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: 20040505

Termination date: 20190223