CN101019385B - 在整个设备堆栈中的端口聚合 - Google Patents
在整个设备堆栈中的端口聚合 Download PDFInfo
- Publication number
- CN101019385B CN101019385B CN2005800307269A CN200580030726A CN101019385B CN 101019385 B CN101019385 B CN 101019385B CN 2005800307269 A CN2005800307269 A CN 2005800307269A CN 200580030726 A CN200580030726 A CN 200580030726A CN 101019385 B CN101019385 B CN 101019385B
- Authority
- CN
- China
- Prior art keywords
- grouping
- port
- storehouse
- router
- clauses
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
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
- H04L45/02—Topology update or discovery
- H04L45/04—Interdomain routing, e.g. hierarchical routing
Abstract
本发明涉及用于执行以下操作的技术:在分组转发设备的堆栈中的第一分组转发设备处接收分组;提供具有多个条目的端口聚合表,其中至少一个条目标识与该堆栈中的至少两个分组转发设备相关的多个端口;以及使用该分组和该端口聚合表来选择该堆栈中的分组转发设备的端口,以用于把该分组发送到该堆栈外部的设备。
Description
背景
网络交换机、路由器等等被用来通过在诸如分组的分段中发送信息而在网络上分发信息。一个分组典型地包括“报头”和“有效载荷”,该报头存储用于路由该分组的目的地地址,该有效载荷存储通过网络发送的信息的一部分。为了把分组转发到预定的目的地,某些网络包括一组路由器,该组路由器对于网络设备而言作为单个大路由器出现,其被称作一个堆栈(stack)。通过对路由器进行分组以便产生堆栈,在该堆栈中的各路由器之间共享多种管理功能和操作规则。
附图描述
图1示出用于转发分组的系统的方框图;
图2A示出路由器堆栈的方框图;
图2B示出路由器的方框图;
图2C示出设备矢量;
图3示出转发地址表;
图4示出端口聚合表;
图5示出堆栈设备表;
图6示出设备聚合表。
描述
参考图1,系统100用于在网络102、104(例如局域网(LAN)、广域网(WAN)、因特网等等)与计算机系统106-116之间传输分组,该系统100包括连接在一起以便产生路由器堆栈的3个路由器118、120、122。在这种安排中,路由器118-122被用于产生堆栈以及传送分组,然而,在其他安排中,系统100包括网络交换机、集线器或者其他分组转发设备的堆栈。此外,该堆栈可以包括不同类型的分组转发设备的组合。例如,利用网络交换机和/或路由器的组合产生的堆栈可以被包括在系统100中。
参考图2A,每个计算机系统可以通过物理链接而连接到路由器。一般来说,在路由器和计算机系统之间的特定链接的带宽受到该路由器的容量的限制,更特别地是受到相关端口的特性的限制。为了提高所述堆栈和计算机系统之间的带宽,一个或多个路由器的端口被聚合,从而使其相应的物理链接表现为单个逻辑链接。例如,路由器118的端口2和5可以被聚合,以便提高路由器118和计算机系统106之间的带宽。在另一个例子中,路由器118的端口4、路由器120的端口1和路由器120的端口4被聚合,以便提高该堆栈和计算机系统110之间的带宽。在其他例子中,通过选择多个端口来缩放两个网络(例如网络102、104)之间的逻辑链接的带宽。
在一个例子中,所述堆栈通过路由器118从网络102接收分组流124。一旦接收到之后,包括在分组流124中的各个分组被传送到它们的预定目的地,这是基于每个对应分组的报头数据而确定的。例如,分组1的报头包括表示该分组的目的地是计算机系统112的数据。类似地,分组2包括一个报头,然而该分组预定被传送到计算机系统110和116。在另一个例子中,包括在分组流124中的一个或多个分组的目的地是网络104,以用于传送到一个或多个计算机系统或者其他类型的目的地(例如服务器、个人数字助理(PDA)、蜂窝电话等等)。
参考图2A和2B,为了基于分组的预定目的地在各计算机系统和网络之间传送分组,在所述堆栈中的各路由器之间传递所述分组。例如,为了把分组2传送到计算机系统116,该分组被从路由器118传递到路由器120再到路由器122。分组2被从路由器122传送到计算机系统116,从而离开该堆栈。
当由路由器(例如路由器118)接收到分组时,所述分组被传递到交换机设备(例如交换机设备202),该交换机设备使用存储在路由器的本地存储器中的一个或多个表(例如转发地址表和端口聚合表)确定所述分组的预定目的地以及用来发送每个分组的(一个或多个)适当端口。在每个路由器中的(在下面详细描述的)所述表在整个堆栈中包含完全相同的信息。换句话说,路由器118中的转发地址表所包含的信息与路由器120或路由器122中的转发地址表相同。
如果从堆栈外部的设备(例如网络102、计算机系统106等等)接收到分组的话,由交换机设备202执行分组分类器204,以便确定该分组的目的地。为了确定分组目的地,分组分类器204访问存储在该分组的报头中的数据,并且把该报头中的数据与存储在转发地址表206中的数据相比较,其中该转发地址表206被存储在存储器208(例如随机存取存储器(RAM)、静态RAM(SRAM)、动态RAM(DRAM)、只读存储器(ROM)等等)中,该存储器208被包括在路由器118中。
参考图3,其中示出了转发地址表206的细节。转发地址表206包括用于把目的地地址302(例如计算机系统108、计算机系统110)与转发地址304相比配,该转发地址304由端口号和设备号(例如路由器118的端口3)指定或者由聚合标识符(例如聚合ID2)指定。
如果所述比较结果表明该分组的目的地是通过单个端口连接到其中执行分组分类器204的该路由器的计算机系统(例如连接到路由器118的端口3的计算机系统108),则交换机设备202把该分组直接传递到该端口。
如果分组分类器204的比较结果表明该分组的目的地是通过单个端口连接到该堆栈中的不同路由器的计算机系统(例如连接到路由器122的端口3的计算机系统116),则该分组分类器204产生一个设备矢量并且将该设备矢量插入到该分组的报头中(在下面详细描述)。每个路由器使用该设备矢量来确定所要使用的适当路由器,以便高效地通过所述堆栈发送该分组。通过在进入该堆栈的每个分组中插入设备矢量而减少了分组处理时间,这是由于每个路由器不需要单独地确定在该堆栈中传递的每个分组的目的地。通过减少处理时间,所节省的时钟周期可以被用于所述路由器的其他处理操作。
如果分组分类器204的比较结果表明所述分组的目的地是通过由聚合ID表示的逻辑链接而连接到所述堆栈中的一个或多个路由器的计算机系统(例如通过由聚合ID 2表示的逻辑链接而连接到该堆栈的计算机系统110),该分组分类器204使用该聚合ID从端口聚合表402中取回一个聚合条目。
参考图4,其中示出了端口聚合表402。该端口聚合表402的每个条目包括聚合ID 404(例如聚合ID2)和与该聚合ID 404相关联的一组端口406(例如路由器118的端口4,路由器120的端口1、4,以及路由器122的端口4;统称为“成员端口”)。在一种实现方式中,在端口聚合表402中提供与成员端口406相关的链接状态408。该链接状态408表示物理链接是“上行(UP)”还是“下行(DOWN)”。
由交换机设备202执行的端口选择器210选择所取回的聚合条目的其中一个成员端口406以便把分组引导到该端口。在一种实现方式中,端口选择器210使用一种取决于系统要求和实现方式的负载平衡算法以便在聚合条目的各成员端口406之间分配外出业务量。例如,该负载平衡算法使用基于硬件的散列(hashing)(其具有从所述分组的报头字段导出的散列参数)来平衡各成员端口406上的业务量。在另一个例子中,该负载平衡算法通过由协议软件配置的成员端口转发表来显式地控制到各成员端口406的转发。由于端口聚合表中的聚合条目在整个堆栈中是相同的,因此该负载平衡算法在任何聚合条目上的性能都将导致相同的成员端口选择,而与哪个路由器的端口选择器正在执行所述负载平衡无关。也就是说,如果路由器118中的端口选择器选择把分组引导到路由器120的端口4,那么路由器120中的端口选择器也将选择把该分组引导到路由器120的端口4。
如果由端口选择器210选择的端口连接到其中执行分组分类器204的该路由器(例如路由器118的端口4),则交换机设备202直接把该分组传递到该端口。如果由端口选择器210选择的端口处于所述堆栈内的不同路由器中(例如路由器120的端口4),则该分组分类器204产生一个设备矢量并且把该设备矢量插入到该分组的报头中。该设备矢量标识具有所选端口的路由器,并且被每个路由器使用来确定适当的路由器以便高效地通过该堆栈发送该分组。该分组分类器把该分组发送到分组转发器212。
参考图2A、2B和2C,所述堆栈中的路由器118-122当中的每一个包括6个端口(例如端口1-6),所述端口允许在各路由器之间进行双向分组传输。例如,路由器118中的端口6连接到路由器120中的端口2。类似地,路由器120中的端口6连接到路由器122中的端口1,以用于在任一方向上传输分组。此外,路由器118-122中的特定端口分别连接到计算机系统106-116和网络12、14。例如,路由器118中的端口2、5连接到计算机系统106,路由器118中的端口3连接到计算机系统108,路由器120中的端口1、4和路由器118中的端口4连接到计算机系统110。路由器118中的端口1连接到网络102以用于双向分组传输。在该特定例子中,每个路由器118-122包括用于传输分组的6个端口。然而,在其他安排中,每个路由器118-122包括多于6个端口(例如24个端口、48个端口等等),从而该堆栈的端口聚合比由该堆栈中的3个6端口路由器所产生的18端口聚合更大(例如72个端口、144个端口等等)。但是,路由器118-122当中的一个或多个也可以包括少于6个端口。此外,虽然所述堆栈包括3个路由器118-122,但是在其他安排中,更多或更少的路由器或者其他类型的分组转发设备被连接起来以便产生堆栈并且传送分组。在一些安排中,所述分组转发设备的堆栈以更小的规模被实现。例如,所述分组转发设备的堆栈被实现在一个处理器(例如微处理器、分组处理器等等)或者一组处理器中。
一旦分组进入了路由器118-122的堆栈,诸如图2C的设备矢量230的设备矢量就被插入到该分组的报头中,以便帮助通过该堆栈路由该分组。该设备矢量230是一个条目,其包括用来标识该堆栈中的哪一个或者哪一些路由器需要接收该分组的数据。典型地,该设备矢量230由该堆栈中的首先接收到该分组的第一路由器或者其他类型的分组转发设备(例如网络交换机、集线器等等)插入。例如,由于在该堆栈中所述分组流124由路由器118接收,因此路由器118把设备矢量230插入到包括在该分组流124内的适当的分组(例如分组1、分组2等等)中。或者,如果路由器122从网络104接收到一个或多个分组,则路由器122就是堆栈进入点,并且路由器122把设备矢量230插入到适当的所接收分组中。
由于所述设备矢量被用于在包括于所述堆栈中的各路由器118-122之间引导分组,因此当该分组离开路由器118-122的堆栈时,典型地从该分组中去除该设备矢量。在通过端口3把分组传递到计算机系统116之前,路由器122从该分组中去除设备矢量260。
每个设备矢量包括标识哪一个或者哪一些路由器需要接收该分组的数据,以便把该分组传送到位于该堆栈外部的其预定目的地。由于分组1的预定目的地是计算机系统112,因此需要把该分组从路由器118传输到路由器120,以便将其传送到计算机系统112。因此,被插入到分组1中的设备矢量240标识路由器120的端口5。类似地,由于分组2的预定目的地是计算机系统110和116,因此端口选择器210使用所述负载平衡算法选择了路由器120的端口4,被插入到分组2中的设备矢量250标识路由器120的端口4和路由器122的端口3,以便分别把分组2的拷贝传送到计算机系统110和116。在另一个例子中,如果要把分组从所述堆栈传输到网络104,则所述设备矢量包括标识路由器122的数据,这是由于以网络104为目的地的分组是由路由器122从该堆栈中发送出去的。
设备矢量230被插入到分组中,以便标识需要接收分组从而将其传送到一个或多个计算机系统106-116或者网络102、104的一个或多个特定路由器。设备矢量230包括一系列比特,所述一系列比特被单独指定给所述堆栈中的路由器118-122的其中之一。例如,设备矢量230包括4个比特一组的16个比特,以用来代表包括在该堆栈中的16个路由器或者其他分组转发设备。这里,设备矢量230中的最低有效位232表示所述相关分组是否需要被发送到路由器118,比特234表示该分组是否需要被发送到路由器120。在所述各比特中,比特236表示白分组是否需要被发送到路由器122。由于本例包括3个路由器,因此需要3个比特232-236,以便为每个路由器指定一个比特。然而,由于设备矢量230包括16个比特,因此在其他安排中,剩余的13个比特可以被指定给包括在系统100的堆栈中的附加的分组转发设备。此外,虽然设备矢量230包括16个比特以用于指定给路由器或者其他分组转发设备,但是在其他安排中,设备矢量230可以包括更多或更少的比特。
在本例中,路由器118把设备矢量240插入到分组1中,并且把设备矢量250插入到分组2中。此外,由于分组1预定被传送到计算机112,因此与路由器120相关的比特242被设置到逻辑“1”,以便标识分组1将被传送到路由器120。在识别出比特242被设置到逻辑“1”之后,分组转发器212访问存储器208中的堆栈设备表502,以便确定用来发送该分组的路由器118中的一个或多个特定端口。在本例中,交换机设备202使用堆栈设备表502来确定通过端口6发送分组1,以便将该分组传送到路由器120。类似地,对于分组2,与路由器120相关的比特252也被设置到逻辑“1”,从而表示分组2将被发送到路由器120,以便把该分组传送到计算机系统110。此外,由于分组2是针对计算机系统116,因此设备矢量250中的比特254被设置到逻辑“1”,以便标识该分组需要被发送到路由器122。虽然逻辑“1”被用于标识将接收特定分组的路由器,但是在其他安排中可以颠倒逻辑状态,从而逻辑“0”被存储在适当的设备矢量比特中以便标识将接收分组的该特定路由器。
在接收到具有所插入的设备矢量的分组之后,接收方路由器使用各设备矢量比特来确定该分组的下一个目的地。由于比特242是唯一被设置到逻辑“1”的设备矢量240的比特,因此路由器120相对快速地确定分组1是针对连接到路由器120的其中一个设备(例如计算机系统110和112)。在路由器120处的交换机设备使用存储在路由器120的本地存储器中的一个或多个表确定分组1的预定目的地以及用来发送该分组的适当端口。在这种情况下,存储在分组1的报头中的数据与存储在路由器120中的转发地址表的比较结果表明分组1的目的地是计算机系统112,该计算机系统112连接到路由器120的端口5。交换机设备202把分组1直接传递到端口5。
与分组1类似,被插入到分组2中的设备矢量250具有与路由器120相关的比特252,其也被设置到逻辑“1”。在这种情况下,存储在分组2的报头中的数据与存储在路由器120中的转发地址表的比较结果表明,分组2的目的地是计算机系统110,该计算机系统110通过由聚合ID 2标识的逻辑链接而连接到该堆栈中的多个路由器。路由器120中的分组分类器使用聚合ID 2从端口聚合表中接收一个聚合条目。路由器120中的端口选择器随后使用负载平衡算法选择所接收的聚合条目的其中一个成员端口以便把分组引导到该端口,并且所述交换机设备把分组2传递到所选的成员端口(例如端口4)。
此外,与路由器122相关的比特254也被设置到逻辑“1”,从而标识分组2将被发送到路由器122。典型地,路由器120产生分组2的一个拷贝以便发送到路由器122。在发送分组2的该拷贝之前,设备矢量260被插入到该分组中,以便标识路由器122将把该分组传送到位于该堆栈外部的所连接的设备(例如计算机系统116、网络104等等)。在本例中,由于分组2是针对连接到路由器122的计算机系统116,因此与路由器122相关的比特262被设置到逻辑“1”。
在接收到分组2的所述拷贝之后,路由器122通过访问该分组中的报头数据而识别出分组2预定被传送到计算机系统116。路由器122处的交换机设备使用存储在路由器122的本地存储器中的一个或多个表确定分组2的预定目的地以及用来发送该分组的适当端口。在这种情况下,存储在分组2的报头中的数据与存储在路由器122中的转发地址表的比较结果表明分组2的目的地是计算机系统116,该计算机系统116连接到路由器122的端口3。路由器122处的该交换机设备把该分组直接传递到端口3。
设备矢量260包括作为存储在设备矢量250中的数据的一个子集的数据。特别地,设备矢量250具有被设置到逻辑“1”的两个比特252、254以便标识路由器120和122,而设备矢量260只具有被设置到逻辑“1”的比特262,这是因为路由器120已经把分组2的一个拷贝传送到计算机系统110。
在把分组2发送到计算机系统116之前,路由器120从该分组中去除设备矢量260。类似地,在把分组1传送到计算机系统112以及把分组2传送到计算机系统110之前,分别去除设备矢量240和250,这是由于所述分组将离开该堆栈。此外,由于分组一般不被返回到从中发送所述分组的堆栈设备,因此避免了无限的分组循环。
在本例中,在所述堆栈中的路由器118-122之间传递的分组是从网络102接收的,并且被传送到计算机系统110、112和116,所述计算机系统110、112和116分别连接到路由器120和122。然而,在其他例子中,分组是由堆栈从网络104接收的,或者分组被传送到网络104。此外,可以在其他方向上传递分组,例如,可以从路由器118的端口1把分组发送到网络102。
在交换机设备202上执行的分组分类器204、分组转发器212和端口选择器210典型地被存储在存储器208中。然而,在其他安排中,分组分类器204、分组转发器212和端口选择器210被存储在与交换机设备202通信的存储设备(例如硬盘驱动器、CD-ROM等等)中。此外,在本例中,存储器208与交换机设备202分开。然而,在其他安排中,存储器208可以被包括在交换机设备202中。
参照图5,分别存储在路由器118、120和122中的堆栈设备表502、504和506包括用于把目的地路由器匹配到发送分组的特定端口的数据。例如,存储在路由器118中的堆栈设备表502标识用于把分组发送到路由器120和122的路由器118的端口。通过路由器118中的端口6发送的分组被传送到路由器120,并且从路由器120被发送到路由器122。类似地,存储在路由器120中的堆栈设备表504被用来确定用于把分组发送到路由器118和122的路由器120中的特定端口。特别地,通过经由路由器120的端口2发送分组而把所述分组传送到路由器118,并且通过经由路由器120的端口6发送分组而把所述分组传送到路由器122。此外,存储在路由器122中的堆栈设备表506被用来确定用于把分组发送到路由器118和120的路由器122中的特定端口。特别地,通过路由器122的端口1来发送待传送到路由器118或120的分组。
通过访问被插入在分组中的设备矢量,在接收方路由器中执行的分组转发器212确定哪些比特被设置到逻辑“1”,并且随后使用存储在该路由器中的堆栈设备表502来确定用来发送该分组或者该分组的拷贝的一个或多个特定端口。例如,当路由器118接收到分组1时,分组转发器212访问堆栈设备表502并且确定分组1应被放置在端口1上以便发送到路由器120。典型地,堆栈设备表502-506当中的每一个分别被存储在包括于每个路由器内的存储器中,例如堆栈设备表502被存储在路由器118的存储器208中。然而,在某些安排中,堆栈设备表502-506被存储在与相应的路由器118-122通信的一个或多个存储设备(例如硬盘驱动器、CD-ROM等等)中。
参照图6,分别存储在路由器118、120和122中的设备聚合表602、604和606包括用于把端口与聚合ID相匹配的数据。例如,存储在路由器118中的设备聚合表602把端口4标识为被指定给聚合ID 2,并且把端口5标识为被指定给聚合ID 3。类似地,存储在路由器120中的设备聚合表604把端口1、4标识为被指定给聚合ID 2。此外,存储在路由器122中的设备聚合表606把端口4标识为被指定给聚合ID 2,并且把端口6标识为被指定给聚合ID 3。
由所述交换机设备(例如路由器118的交换机设备202)执行的表代理维护并且更新存储在每个路由器中的端口聚合表和设备聚合表。例如,可以向被指定给特定聚合ID的该组端口中添加端口或者从中去除端口。在一个设备聚合表中所做的任何修改在所述堆栈中被传播开来,并且被反应在所有路由器中的端口聚合表和设备聚合表中。
其他实施例也落在所附权利要求书的范围内。下面的内容是用于说明性的例子,而不意图限制替换方案。可以按照不同的顺序执行本文所描述的技术并且仍然可以获得理想的结果。
Claims (20)
1.一种用于在整个设备堆栈中的端口聚合的方法,包括:
在分组转发设备的堆栈中的第一分组转发设备处接收分组;
提供具有多个条目的端口聚合表,端口聚合表的条目与标识号相关,其中端口聚合表的至少一个条目标识与该堆栈中的至少两个分组转发设备相关的多个端口;
提供具有多个条目的转发地址表,其中转发地址表的至少一个条目标识端口聚合表的条目的标识号;以及
使用该分组和该端口聚合表来选择该堆栈中的分组转发设备的端口,以用于把该分组发送到该堆栈外部的设备。
2.如权利要求1所述的方法,还包括:
使用所述分组和端口聚合表来执行负载平衡操作,以便选择该堆栈中的分组转发设备的所述端口。
3.如权利要求1所述的方法,其中,所选择的端口是所述堆栈中的第一分组转发设备的端口。
4.如权利要求1所述的方法,其中,所选择的端口是所述堆栈中的第二分组转发设备的端口。
5.如权利要求4所述的方法,还包括:
在所述分组中插入标识所述堆栈中的第二分组转发设备的矢量;以及
使用该矢量和堆栈设备表来确定该堆栈中的第一分组转发设备的端口,以用于把该分组发送到该堆栈中的第二分组转发设备。
6.如权利要求5所述的方法,其中,所述矢量包括标识所述堆栈中的第二分组转发设备的比特。
7.如权利要求1所述的方法,其中,第一分组转发设备包括路由器。
8.一种用于在整个设备堆栈中的端口聚合的装置,包括:
用于在分组转发设备的堆栈中的第一分组转发设备处接收分组的部件;
用于提供具有多个条目的端口聚合表的部件,端口聚合表的条目与标识号相关,其中端口聚合表的至少一个条目标识与该堆栈中的至少两个分组转发设备相关的多个端口;
用于提供具有多个条目的转发地址表的部件,其中转发地址表的至少一个条目标识端口聚合表的条目的标识号;以及
用于使用该分组和该端口聚合表来选择该堆栈中的分组转发设备的端口以用于把该分组发送到该堆栈外部的设备的部件。
9.如权利要求8所述的装置,还包括:
用于使用所述分组和端口聚合表来执行负载平衡操作以便选择该堆栈中的分组转发设备的所述端口的部件。
10.如权利要求8所述的装置,其中,所选择的端口是所述堆栈中的第一分组转发设备的端口。
11.如权利要求8所述的装置,其中,所选择的端口是所述堆栈中的第二分组转发设备的端口。
12.如权利要求8所述的装置,还包括:
用于在所述分组中插入标识所述堆栈中的第二分组转发设备的矢量的部件;以及
用于使用该矢量和堆栈设备表来确定该堆栈中的第一分组转发设备的端口以用于把该分组发送到该堆栈中的第二分组转发设备的部件。
13.如权利要求12所述的装置,其中,所述矢量包括标识所述堆栈中的第二分组转发设备的比特。
14.如权利要求8所述的装置,其中,第一分组转发设备包括路由器。
15.一种用于在整个设备堆栈中的端口聚合的系统,包括:
在分组转发设备的堆栈中的第一分组转发设备中的交换机设备,该交换机设备能够执行以下操作:
接收分组;
提供具有多个条目的端口聚合表,端口聚合表的条目与标识号相关,其中端口聚合表的至少一个条目标识与该堆栈中的至少两个分组转发设备相关的多个端口;
提供具有多个条目的转发地址表,其中转发地址表的至少一个条目标识端口聚合表的条目的标识号;以及
使用该分组和该端口聚合表来选择该堆栈中的分组转发设备的端口,以用于把该分组发送到该堆栈外部的设备。
16.如权利要求15所述的系统,其中,所述交换机设备还能够执行 以下操作:
使用所述分组和端口聚合表来执行负载平衡操作,以便选择该堆栈中的分组转发设备的所述端口。
17.如权利要求15所述的系统,其中,所述交换机设备还能够执行以下操作:
在所述分组中插入标识所述堆栈中的第二分组转发设备的矢量;以及
使用该矢量和堆栈设备表来确定该堆栈中的第一分组转发设备的端口,以用于把该分组发送到该堆栈中的第二分组转发设备。
18.一种在分组转发设备的堆栈中的分组转发设备,该设备包括:
用来接收分组的输入端口;
用来传送所接收的分组的一个或多个输出端口;
具有多个条目的端口聚合表,端口聚合表的条目与标识号相关,其中端口聚合表的至少一个条目标识与该堆栈中的至少两个分组转发设备相关的多个端口;
具有多个条目的转发地址表,其中转发地址表的至少一个条目标识端口聚合表的条目的标识号;以及
交换机设备,其能够执行以下操作:
接收分组;以及
使用该分组和该端口聚合表来选择该堆栈中的分组转发设备的端口,以用于把该分组发送到该堆栈外部的设备。
19.如权利要求18所述的分组转发设备,其中,所述交换机设备还能够执行以下操作:
使用所述分组和端口聚合表来执行负载平衡操作,以便选择该堆栈中的分组转发设备的所述端口。
20.如权利要求18所述的分组转发设备,其中,所述交换机设备还能够执行以下操作:
在所述分组中插入标识所述堆栈中的第二分组转发设备的矢量;以及
使用该矢量和堆栈设备表来确定该堆栈中的第一分组转发设备的端口,以用于把该分组发送到该堆栈中的第二分组转发设备。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/890,894 | 2004-07-13 | ||
US10/890,894 US20060013212A1 (en) | 2004-07-13 | 2004-07-13 | Port aggregation across stack of devices |
PCT/US2005/024473 WO2006017209A1 (en) | 2004-07-13 | 2005-07-08 | Port aggregation across stack of devices |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101019385A CN101019385A (zh) | 2007-08-15 |
CN101019385B true CN101019385B (zh) | 2011-11-16 |
Family
ID=34973190
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2005800307269A Expired - Fee Related CN101019385B (zh) | 2004-07-13 | 2005-07-08 | 在整个设备堆栈中的端口聚合 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20060013212A1 (zh) |
EP (1) | EP1774726B1 (zh) |
CN (1) | CN101019385B (zh) |
WO (1) | WO2006017209A1 (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8085772B2 (en) | 2003-12-31 | 2011-12-27 | Intel Corporation | Packet forwarding |
US20050198362A1 (en) * | 2003-12-31 | 2005-09-08 | Navada Muraleedhara H. | Exception packet forwarding |
US7889681B2 (en) * | 2005-03-03 | 2011-02-15 | Cisco Technology, Inc. | Methods and devices for improving the multiple spanning tree protocol |
US7424016B2 (en) * | 2005-04-05 | 2008-09-09 | Cisco Technology, Inc. | Distributing a stream of packets across available output paths within a network |
US7796628B2 (en) * | 2006-12-14 | 2010-09-14 | Inventec Corporation | Expandable exchange apparatus and a backup system thereof |
WO2008137987A1 (en) * | 2007-05-08 | 2008-11-13 | Schlumberger Canada Limited | Determining borehole corrected formation properties |
US9032057B2 (en) * | 2009-04-06 | 2015-05-12 | Brocade Communications Systems, Inc. | Secure stacking setup implementing user interface of stacking device |
US8776207B2 (en) | 2011-02-16 | 2014-07-08 | Fortinet, Inc. | Load balancing in a network with session information |
KR20130057255A (ko) * | 2011-11-23 | 2013-05-31 | 한국전자통신연구원 | 실시간 통계 처리가 가능한 플로우 기반 QoS 라우터 및 그 동작 방법 |
US9559897B2 (en) | 2012-12-21 | 2017-01-31 | Brocade Communications Systems, Inc. | Device ID assignment in a system of devices |
US9148387B2 (en) | 2013-05-10 | 2015-09-29 | Brocade Communications Systems, Inc. | Hardware hash table virtualization in multi-packet processor networking systems |
US9313102B2 (en) | 2013-05-20 | 2016-04-12 | Brocade Communications Systems, Inc. | Configuration validation in a mixed node topology |
US9853889B2 (en) | 2013-05-20 | 2017-12-26 | Brocade Communications Systems, Inc. | Broadcast and multicast traffic reduction in stacking systems |
US10284499B2 (en) | 2013-08-22 | 2019-05-07 | Arris Enterprises Llc | Dedicated control path architecture for systems of devices |
US9185049B2 (en) | 2013-10-31 | 2015-11-10 | Brocade Communications Systems, Inc. | Techniques for simplifying stacking trunk creation and management |
US9577932B2 (en) | 2014-02-12 | 2017-02-21 | Brocade Communications Systems, Inc. | Techniques for managing ternary content-addressable memory (TCAM) resources in heterogeneous systems |
US9692695B2 (en) | 2014-03-27 | 2017-06-27 | Brocade Communications Systems, Inc. | Techniques for aggregating hardware routing resources in a multi-packet processor networking system |
US9692652B2 (en) | 2014-04-03 | 2017-06-27 | Brocade Communications Systems, Inc. | Framework for reliably communicating port information in a system of devices |
US10091059B2 (en) | 2014-12-16 | 2018-10-02 | Arris Enterprises Llc | Handling connections between network devices that support multiple port communication modes |
CN111225230B (zh) * | 2020-02-20 | 2022-10-04 | 腾讯科技(深圳)有限公司 | 一种网络直播数据的管理方法以及相关装置 |
CN114631293A (zh) * | 2020-09-27 | 2022-06-14 | 瞻博网络公司 | 利用灵活算法的标签推导 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6363077B1 (en) * | 1998-02-13 | 2002-03-26 | Broadcom Corporation | Load balancing in link aggregation and trunking |
US6813268B1 (en) * | 1999-05-21 | 2004-11-02 | Broadcom Corporation | Stacked network switch configuration |
GB2361830B (en) * | 2000-04-26 | 2002-01-30 | 3Com Corp | Stackable network units including registers for identifying trunk connection status of stacked units |
EP1195952A1 (en) | 2000-10-09 | 2002-04-10 | Siemens Aktiengesellschaft | A method for congestion control within an IP-subnetwork |
US7274703B2 (en) * | 2002-03-11 | 2007-09-25 | 3Com Corporation | Stackable network units with resiliency facility |
GB0227614D0 (en) * | 2002-11-27 | 2002-12-31 | 3Com Corp | Packet-switched network and network switches having a network layer forwarding by data link switching |
-
2004
- 2004-07-13 US US10/890,894 patent/US20060013212A1/en not_active Abandoned
-
2005
- 2005-07-08 CN CN2005800307269A patent/CN101019385B/zh not_active Expired - Fee Related
- 2005-07-08 WO PCT/US2005/024473 patent/WO2006017209A1/en active Application Filing
- 2005-07-08 EP EP05770072.6A patent/EP1774726B1/en not_active Not-in-force
Also Published As
Publication number | Publication date |
---|---|
WO2006017209A1 (en) | 2006-02-16 |
US20060013212A1 (en) | 2006-01-19 |
EP1774726B1 (en) | 2013-08-21 |
CN101019385A (zh) | 2007-08-15 |
EP1774726A1 (en) | 2007-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101019385B (zh) | 在整个设备堆栈中的端口聚合 | |
CN102771094B (zh) | 分布式路由架构 | |
US11640362B2 (en) | Procedures for improving efficiency of an interconnect fabric on a system on chip | |
CN102763380B (zh) | 用于路由分组的系统和方法 | |
US7054276B2 (en) | System and method for a multicast network messaging service | |
US6947433B2 (en) | System and method for implementing source based and egress based virtual networks in an interconnection network | |
US7352762B2 (en) | Method and system for messaging to a cluster | |
CN102792644B (zh) | 用于路由分组的系统和方法 | |
US6842443B2 (en) | Network switch using network processor and methods | |
US6628615B1 (en) | Two level virtual channels | |
CN103634224B (zh) | 网络中数据传输的方法和系统 | |
US8553683B2 (en) | Three dimensional fat tree networks | |
US7400624B2 (en) | Hashing based messaging approach to a cluster | |
US20020048272A1 (en) | Router implemented with a gamma graph interconnection network | |
US20020051427A1 (en) | Switched interconnection network with increased bandwidth and port count | |
US6853638B2 (en) | Route/service processor scalability via flow-based distribution of traffic | |
JPH09153892A (ja) | ワームホール・ネットワークにおけるメッセージ送達方法およびシステム | |
CN111726299B (zh) | 流量均衡方法及装置 | |
US7489683B2 (en) | Integrated circuit capable of routing multicast data packets using device vectors | |
CN114006863A (zh) | 一种多核负载均衡协同处理方法、装置及存储介质 | |
CN113157445B (zh) | 基于哈希运算和索引值比对的双向报文对称rss处理方法及系统 | |
US7164658B1 (en) | Distribution of data transfer load when transmitting layer-3 datagrams on a layer-2 network | |
CN113079077B (zh) | 基于队列实现的dpdk架构下隧道报文对称rss处理方法及系统 | |
US8625624B1 (en) | Self-adjusting load balancing among multiple fabric ports | |
CN113098794B (zh) | 利用二次分流实现隧道报文对称rss处理的方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20111116 Termination date: 20210708 |
|
CF01 | Termination of patent right due to non-payment of annual fee |