CN101888330A - 用于提供分组的快速重新路由的方法和装置 - Google Patents
用于提供分组的快速重新路由的方法和装置 Download PDFInfo
- Publication number
- CN101888330A CN101888330A CN2010101781876A CN201010178187A CN101888330A CN 101888330 A CN101888330 A CN 101888330A CN 2010101781876 A CN2010101781876 A CN 2010101781876A CN 201010178187 A CN201010178187 A CN 201010178187A CN 101888330 A CN101888330 A CN 101888330A
- Authority
- CN
- China
- Prior art keywords
- port
- ecmp
- grouping
- fdu
- route
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/24—Multipath
- H04L45/245—Link aggregation, e.g. trunking
-
- 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/28—Routing or path finding of packets in data switching networks using route fault recovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/55—Prevention, detection or correction of errors
- H04L49/557—Error correction, e.g. fault recovery or fault tolerance
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/42—Loop networks
- H04L12/437—Ring fault isolation or reconfiguration
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Abstract
本发明涉及用于提供可以通过网络在多个等值多路径(ECMP)路由之一上转发的分组的快速重新路由的方法、装置和计算机程序产品。由网络元件的数据平面内的转发数据单元(FDU)接收分组。该单播分组在L3被路由,并且可以为该单播分组的下一跳使用ECMP。选择ECMP路由以便将分组转发到目的地端口。在由所述FDU维护的端口状态表内执行查找,以便针对目的地为所述ECMP路由确定处于UP状态的可用本地端口,并且如果没有处于UP的本地端口,则在所述端口状态表中执行查找,以便为所选择的ECMP路由确定处于UP状态的可用远程端口。
Description
与相关申请的交叉引用
本申请要求2009年5月13日提交的美国临时专利申请No.61/178,014的益处,通过引用将其完整结合在此。本申请还涉及与本申请同日提交的代理卷号为AVA10-17、题目为“Method AndApparatus For Maintaining Port State Tables In A Forwarding PlaneOf A Network Element(用于维护网络元件的转发平面内的端口状态表的方法和装置)”的申请。通过引用将上面指出的每个申请的教导和公开完整结合在此。
背景技术
数据通信网络可以包括各种计算机、服务器、节点、路由器、交换机、集线器和代理服务器,以及被耦接和配置为彼此传递数据的其它设备。此处这些设备被称为“网络元件”,并且可以在网络上提供各种网络资源。通过在网络上的通信链路在网络元件之间传递协议数据单元(诸如,分组、信元、帧或段),通过数据通信网络传递数据。特定的协议数据单元可被多个网络元件处理,并且当它在网络上在它的源和它的目的地之间传播时跨越多个通信链路。诸如计算机、电话、蜂窝电话、个人数字助理和其它类型的消费电子产品的主机连接到通信网络,并且通过通信网络传输/接收数据,并且因此,是由通信网络提供的通信服务的用户。
网络元件通常被实现为具有控制网络元件的操作的控制平面(control plane)以及处理流过网络的通信量的数据平面(data plane)。数据平面通常具有线卡集合,所述线卡具有连接到网络上的链路的端口。数据在特定端口处被接收、在数据平面内被交换,并且在一个或多个其它端口处被输出到网络的其它链路上。为了能够迅速地处理数据,通常以硬件实现数据平面,从而使用硬件查找等执行关于如何处理数据的所有判决。
端口可能出于许多原因而失效,包括线卡故障、连接到端口的链路的故障(例如,线路中断)、远端线卡故障等。术语多链路中继线路(或称“多链路聚合主干”)(multi-link trunk,MLT)、链路聚合组(Link Aggregation Group,LAG)和逻辑端口是同义词,并且这些术语被互换地使用。类似地,网络元件内的内部转发数据路径可能失效,这可能导致一个端口或一组端口表现出失效,或者沿着到端口的外部对等端点的逻辑/虚拟连接可能存在某些其它故障。存在端口可能失效的多种原因。
在端口失效的情况下,去往该端口的通信量应当被转向为从替换端口流出,以便能够通过网络恢复连接性。为了最小化对该网络元件所处理的通信量的影响,例如,为了最小化停机时间(down-time)和分组丢失,通信量重新路由越快发生越好。优选地,能够使得通信量在10毫秒(ms)内失效恢复到替换端口是有利的。优选地,在LAG或MLT的情况下,通信量应当散布在其余端口上,而不是从失效端口全部移到特定的指定替换端口,以便防止指定的替换端口的通信量过载。
发明内容
诸如上面解释的常规机制具有各种缺点。一个这种缺点是常规网络元件从故障中恢复所花费的时间量。恢复花费的时间量越长,性能延迟(包括更多的丢弃分组)以及其它端口克服失效端口的加载越长。
本发明的实施例显著地克服了这些缺点,并且提供了可以通过网络在多个等值多路径路由之一上转发的分组的快速重新路由的机制和技术。在一个用于提供可以通过网络在多个等值多路径(ECMP)路由之一上转发的分组的快速重新路由的方法的特定实施例中,该方法包括:由网络元件的数据平面内的转发数据单元(FDU)接收分组,其中单播分组在L3被路由,并且其中可以为所述单播分组的下一跳启用ECMP。该方法还包括:选择ECMP路由以便将该分组转发到目的地端口。该方法还包括:在由FDU维护的端口状态表内执行查找,以便针对所述目的地为所述ECMP路由确定处于UP(上行)状态的可用本地端口,并且如果没有处于UP的本地端口,则在所述端口状态表中执行查找,以便为所选择的ECMP路由确定处于UP状态的可用远程端口。该方法附加地包括:其中当未能为所选择的ECMP路由确定可用端口时,如果可以获得另一个ECMP路由则选择该另一个ECMP路由,并且重复所述在端口状态表内执行查找,直到为该分组找到端口为止。附加地,该方法包括:使用所选择的ECMP路由将分组转发到所述可用端口,或当不可获得ECMP路由时丢弃该分组。
其它实施例包括其上具有计算机可读代码的计算机可读介质,所述计算机可读代码用于提供可以通过网络在多个等值多路径(ECMP)路由之一上转发的分组的快速重新路由。所述计算机可读介质包括:用于由网络元件的数据平面内的转发数据单元(FDU)接收分组的指令,其中该单播分组在L3被路由,并且其中可以为所述单播分组的下一跳启用ECMP。所述计算机可读介质包括:用于选择ECMP路由以便将该分组转发到目的地端口的指令。所述计算机可读介质还包括:用于在由FDU维护的端口状态表内执行查找,以便针对所述目的地为所述ECMP路由确定处于UP状态的可用本地端口,并且如果没有处于UP的本地端口,则在所述端口状态表中执行查找,以便为所选择的ECMP路由确定处于UP状态的可用远程端口的指令。所述计算机可读介质还包括这样的指令,其中当未能为所选择的ECMP路由确定可用端口时,如果可以获得另一个ECMP路由,则选择另一个ECMP路由,并且重复所述在端口状态表内执行查找,直到为该分组找到端口为止。附加地,所述计算机可读介质包括:用于使用所选择的ECMP路由将分组转发到所述可用端口,或当不可获得ECMP路由时丢弃该分组的指令。
其它实施例包括一种计算机化设备(例如,网络元件),其配置为处理此处作为本发明的实施例所公开的所有方法操作。在这些实施例中,该计算机化设备包括存储器系统、处理器、连接这些组件的互连机构中的通信接口。所述存储器系统被编码有一种处理,该处理如此处所解释的提供可以通过网络在多个等值多路径(ECMP)路由之一上转发的分组的快速重新路由,当在处理器上被实施时(例如,当执行时),该处理在所述计算机化设备内按照此处的解释操作,以便执行此处作为本发明的实施例所解释的所有方法实施例和操作。因此,执行或被编程为执行此处解释的处理的任意计算机化设备是本发明的实施例。
此处公开的本发明实施例的其它布置包括执行上面概述和下面详细公开的方法实施例的步骤和操作的软件程序。更具体地,计算机程序产品是一个具有计算机可读介质的实施例,所述计算机可读介质包括编码在其上的计算机程序逻辑,当在计算机化设备内被执行时,提供相关联的操作,用于按照此处的解释提供可以通过网络在多个等值多路径路由之一上转发的分组的快速重新路由。当在具有计算系统的至少一个处理器上被执行时,所述计算机程序逻辑使得所述处理器执行此处作为本发明的实施例指出的操作(例如,方法)。本发明的这些布置通常被作为布置或编码在计算机可读介质上的软件、代码和/或其它数据结构提供,所述计算机可读介质诸如是光学介质(例如,CD-ROM)、软盘或硬盘或其它介质,诸如一个或多个ROM或RAM或PROM芯片内的固件或微代码,或作为专用集成电路(ASIC),或作为一个或多个模块中的可下载的软件映像、共享库等。软件或固件或其它这些配置可被安装在计算机化设备上,以便使得计算机化设备内的一个或多个处理器执行此处作为本发明的实施例解释的技术。在计算机化设备的集合中,诸如,在一组数据通信设备或其它实体内操作的软件处理也可以提供本发明的系统。本发明的系统可分布在若干数据通信设备上的许多软件处理内,或所有处理可以在一组少数的专用计算机上或单独在一个计算机上运行。
应当理解,本发明的实施例可被严格地表达为,诸如,数据通信设备内的软件程序、软件和硬件、或是仅为硬件和/或电路。如此处解释的本发明的特征可被用于数据通信设备和/或用于这种设备的软件系统,所述设备诸如是由新泽西州林克罗夫特市的Avaya公司制造的设备。
注意,本公开中讨论的每个不同特征、技术、配置等可被独立地或组合地执行。因此,本发明可被以许多不同方式表达。
还要注意,此处的概述部分未指出本公开或所提出的发明的每个实施例和/或增加的新颖方面。而是,该概述仅提供对不同实施例和相对于常规技术的相应新颖点的初步讨论。对于本发明的附加细节、元素和/或可能的设想(改变),读者需要参考下面进一步讨论的本公开的具体实施方式部分和相应附图。
附图说明
如附图中所示,从下面对本发明的优选实施例的更具体的描述中,将明了上面的内容,其中类似的附图标记在所有不同视图中指示相同部分。这些图不必是成比例的,而是重点在于示出本发明的原理。
图1是示出了组织节点集群的第一个例子的功能方框图;
图2是示出了组织节点集群的另一个例子的功能方框图;
图3是示出了组织节点集群的另一个例子的功能方框图;
图4是示出了组织节点集群的另一个例子的功能方框图;
图5是示出了组织节点集群的另一个例子的功能方框图;
图6是示出了组织节点集群的另一个例子的功能方框图;
图7是示例通信网络的功能方框图;
图8是示例网络元件的功能方框图;
图9是可用于诸如图8的网络元件的网络元件的示例线卡的功能方框图;
图10是可用于诸如图9的线卡的线卡的示例端口数据库的功能方框图;
图11是示例网络元件集群的功能方框图,示出了节点集群内的数据路径组件之间的端口状态信息流;
图12示出了根据本发明的实施例操作的网络元件的示例计算机系统体系结构;
图13包括根据本发明的实施例,用于为独立端口提供可以通过网络在多个等值多路径路由之一上转发的分组的快速重新路由的方法的流程图;和
图14包括根据本发明的实施例,用于为多链路中继线路端口提供可以通过网络在多个等值多路径路由之一上转发的分组的快速重新路由的方法的流程图。
具体实施方式
网络元件处理数据的方式随时间而发展。例如,两个或更多个物理链路可以在一组网络元件之间延伸,并且被总地用作MLT或LAG。图1示出了由多个链路24a-d连接的两个网络元件(网络元件1和网络元件2)的例子,多个链路24a-d被分组,从而形成多链路中继线路22。具体地,MLT22中的每个链路24a-d可被任意一个网络元件用于向另一个网络元件转发数据。因此,如果网络元件1具有要发送到网络元件2的数据(例如,帧/分组),网络元件1可以从MLT22中选择链路24a-d中的一个,并且在该链路上向网络元件2传输分组。
图2示出了可以互连网络元件的另一种示例方式。具体地,在这个例子中,网络元件1和网络元件2被交换机间中继线路(Inter-SwitchTrunk,IST)26互连,IST26可以是单个链路或它自己可以是多链路中继线路。当多链路中继线路的链路被物理地连接到两个不同的网络元件时,MLT被称为分离的多链路中继线路(Split Multi-Link Trunk,SMLT)。每个网络元件1和2可以具有连接到网络元件3的一个或多个链路,这些链路被组成一组从而形成SMLT23。因此,如果网络元件1具有要发送到网络元件3的数据(例如,帧/分组),网络元件1可以选择连接它的SMLT链路之一,或可以在与交换机间中继线路26相关联的链路之一上传输分组,以便使得网络元件2能够在其与SMLT相关联的链路之一上将数据转发到网络元件3。
图3示出了另一个例子,其中网络元件1不具有连接到SMLT23的任何链路,但是被IST25和26连接到具有被连接到与SMLT相关联的链路的端口的两个其它网络元件(网络元件2和网络元件3)。在这种情况下,如果网络元件1具有要在SMLT上发送的数据,它将选择IST链路之一(注意,每个IST链路自身可以是SMLT),并且将数据转发到网络元件2或3。IST可以是物理的并且在两个网络元件之间直接延伸,或可以是逻辑的并且通过一个或多个中间网络元件在隧道上延伸。
图4示出了另一个例子,其中网络元件1还参与到SMLT23内。在这种情况下,如果网络元件1具有要发送的数据,它可以在其与SMLT23相关联的链路之一上转发数据,或可以在与IST25或26中的一个相关联的链路之一上转发数据,以便使得能够在SMLT23上转发数据。
图5和6示出了在正方形SMLT布置中互连网络元件的另一种方式。在图5所示的布置中,4个网络元件在正方形布置中通过IST25-28互连,并且在图6中,4个网络元件在网状布置中通过IST25-30互连。IST可以是物理的并且在两个网络元件之间直接延伸,或可以是逻辑的并且通过一个或多个中间网络元件在隧道上延伸。
虽然示出了可以互连网络设备的几种示例方式,但是还存在互连网络元件集群的其它方法,并且这组示例的互连体系结构不旨在是无遗漏的。因此,这些例子仅旨在提供互连网络元件的少数方法的代表性例子。一组网络元件在此处被称为集群。
图7示出了示例的通信网络10,其中订户12连接到边缘交换机14。边缘交换机14连接到核心交换机16,核心交换机16通过网络在链路18上转发数据。这些交换机中的每一个可以是物理的路由交换机(rouswitchter)或可以是被连接在一起以便作为集群操作的多个设备。每个链路18可以是MLT,或在路由器/交换机被实现为多个物理设备的情况下,可以是SMLT。从网络路由的角度来看,分组可有多种方式穿过网络。例如,在图7中,边缘交换机A能够通过核心交换机C和D将分组传输到边缘交换机B,或可替换地,可以能够通过核心交换机E和F传输分组。可以使用网络层路由协议确定用于传输分组的路径。
如上所述,取决于互连网络元件的方式,网络元件可以有许多方法转发帧/分组,以便使得帧/分组能够到达其目的地。如此处使用的,术语“集群”用于指在网络层提供节点级弹跳的一个或多个节点。因此,在图1中,网络元件1是一个集群;在图2中,网络元件1和2是一个集群,并且在图3和4中,网络元件1、2和3是一个集群,并且在图5和6中,网络元件1-4是一个集群。如上所述,可以有组织集群中的节点的其它方式。
集群节点之间的逻辑连接此处被称为交换机间中继线路(IST)。IST可以是集群中从一个网络元件延伸到相邻网络元件的物理链路,或可以是逻辑链路,该逻辑链路是穿过集群内的一个或多个中间网络元件的隧道。从非IST端口接收分组的节点被称为本地节点。对于接收到的分组来说,集群内的所有其它节点被称为远程节点。
两个或更多个链路可以组成一组,以便形成多链路中继线路(MLT)。给每个MLT分配一个MLT组ID(MLT-ID),它是集群内的全局值,并且在集群节点中是唯一的。其所有端口成员仅在一个节点上的MLT被称为常规MLT组。其端口成员在两个或更多个节点上的MLT组被称为分离的MLT或SMLT组。
当逻辑端口被实现为MLT或SMLT时,实际上存在能够将分组转发到其在网络上的下一跳的多个物理端口。因此,如果MLT/SMLT的端口之一失效,使得分组被转发到其余端口之一,从而分组可以穿过网络而不是被丢弃是有利的。类似地,不是为MLT/SMLT中的每个端口指定主端口和后备端口,在MLT/SMLT的其余端口上负载共享分组,从而分组可被分布在处于UP的其余端口上是有利的。根据一个实施例,这个处理以硬件实现,从而快速通路(数据平面)可以自动适应单个和多个端口失效,并且自动地以公平的方式在其余端口上重定向分组通信量。
图8示出了可被用作图1-6中任意一个所示的任意网络元件的示例网络元件20的功能方框图。在图8所示的例子中,网络元件包括控制平面31和数据平面32。控制平面具有一个或多个CPU34,并且一般地运行控制处理,诸如路由处理、管理处理等。控制平面对数据平面编程,以便指示数据平面如何在网络上转发数据。
可以使用许多不同的体系结构构造数据平面32,并且图8所示的例子仅是一个这种体系结构的一个例子。在图8所示的例子中,数据平面包括多个线卡36,每个线卡实现连接到网络中的链路的多个物理端口。线卡在这个实施例中被交换机结构40互连,虽然在其它实施例中,线卡可以直接互连,并且以分布式方式执行交换功能。
如图9所示,每个线卡36包括物理地连接到网络上的链路的多个端口38。线卡还包括处理从附接端口接收的分组的一个或多个功能单元42。如此处使用的,处理在进入和外出两个方向上来自附接端口的分组并且进行转发判决的功能单元被称为转发数据路径单元或FDU42。线卡还可以包括CPU44,CPU44与控制平面交互,以便使得控制平面能够将指令编程到FDU42内,并且可选择地编程到线卡上的其它组件内,从而FDU42在网络上正确地处理数据。CPU44还周期地检查FDU42和线卡中的其它组件的状态,以便检测何时出现故障。
每个FDU42维护端口状态数据库46。这个端口状态数据库46维护物理链路状态和其本地和所有远程端口的连接状态。如图10所示,端口状态数据库46包括两个表-本地端口数据表48和远程端口数据表50。本地端口数据表48维护属于本地节点的端口状态,并且远程端口数据表50维护属于集群中的远程端口的端口状态。在MLT组的情况下,FDU将本地节点上的MLT端口成员保持在本地表内,并且将所有其它远程节点上的端口成员保持在远程表内。
当FDU接收到分组时,需要寻找MLT(或SMLT)内的处于UP的端口,以便将分组转发到其在网络上的目的地。如上所述,在MLT上的所有端口都为本地的情况下,FDU将必须确定本地端口中的哪一些处于UP状态,从而不会试图在处于DOWN(下行)的端口上转发分组。类似地,当与MLT相关联的端口不全是本地(例如,SMLT)时,FDU将必须选择与SMLT相关联的分离的物理网络元件上的并且具有UP状态的端口。
根据一个实施例,每个FDU维护它用于维护集群内的每个端口的状态的端口状态数据库46。该数据库维护物理链路状态和其本地和所有远程端口的连接状态。该数据库包括两个表-即,本地表48和远程表50。本地表维护属于本地节点上的所有FDU的端口状态,并且远程表维护集群内的所有远程节点上的所有端口的端口状态。在MLT组的情况下,FDU在本地表内保持本地节点上的MLT端口成员的状态,并且在远程表内保持所有其它远程节点上的MLT端口成员的状态。本地表还维护所有IST端口的状态。当接收到分组时,FDU将使用端口状态数据库确定处于UP的用于该分组的端口,并且将分组转发到该端口以便在网络上输出。
由于端口状态数据库46被FDU42用于确定转发判决,保持更新端口状态表是重要的,从而它包含关于每个端口的状态的当前信息。由于每个线卡具有一个或多个FDU,需要每个FDU(在每个线卡内)与本地网络元件内的所有其它线卡内的FDU以及集群内的其它网络元件内的所有其它FDU同步。
在一个实施例中,每个线卡维护心跳计时器。每次心跳计时器中的一个特定计时器超时时,心跳引擎54产生一个心跳分组,并且将该心跳分组发送到该线卡上的本地FDU42。心跳分组携带有线卡上的所有端口的本地物理链路状态,以便将该线卡上的端口的状态通知给本地FDU。该分组指出全局端口ID(GPID)和网络元件ID。FDU使用这个状态更新其本地端口状态数据库。FDU还将该分组转发到本地节点内的所有其它FDU以及集群内的其它节点上的所有其它FDU。每个FDU使用该分组携带的端口状态来更新其端口状态数据库。
除了维护与收集/报告其自己的端口状态信息相关联的计时器之外,每个线卡/FDU还将维护与本地节点内的所有其它FDU以及集群内的其它节点上的所有其它FDU相关联的一组计时器。每个FDU期望从每个其它本地和远程FDU接收周期心跳分组。因此,为每个FDU(为本地网络元件上的每个FDU和集群内的每个远程网络元件上的每个FDU)维护本地接收计时器。如果相应的接收计时器超时,则检测到FDU故障(本地或远程)。在接收计时器超时之前未接收到心跳分组的情况下,与该FDU相关联的每个端口将被设置为DOWN,从而不向与该FDU相关联的端口发送分组,直到它恢复为止。
心跳分组允许FDU彼此传递状态信息,并且允许每个FDU了解数据平面内的所有端口的状态。如下所述,这允许数据平面自动地针对端口故障进行调整,从而数据可被重定向到处于UP的端口并且远离处于DOWN的端口。所有这些在没有控制平面的干预的情况下发生,并且因此不将特定端口/线卡的故障通知给控制平面。为了使得控制平面能够得知数据平面故障,管理/控制处理器44周期地向其本地FDU42注入心跳分组或从其本地FDU42提取心跳分组。每个注入的心跳分组完整地循环通过目标FDU和相关联的端口,并且然后被提取回到处理器。管理心跳分组穿过进入和外出数据路径两者内的所有功能块。每次控制处理器注入这种属性的管理心跳分组,它开始其相应的接收计时器。如果接收计时器超时,则控制处理器检测到线卡故障。处理器使用这种信息设置将被传递到控制平面30的系统警报。因此,控制平面可以得知数据平面故障。然而,由于数据平面具有自我复原机制以便适应端口故障并且从而重定向通信量,重定向通信量不需要涉及控制平面,并且因此将故障通知控制平面对于通过网络元件的通信量的恢复不是至关重要的。
每个FDU还使用心跳分组确定其端口的状态,在一个实施例中,每个FDU为配置在逻辑/虚拟连接内的每个附接端口维护一对计时器。计时器之一用于产生将在所述连接上被发送的心跳分组。另一个计时器(接收计时器)用于检测连接故障。如果来自该连接的其它端点的心跳分组未被及时接收,该计时器超时。FDU根据心跳分组的到达和接收计时器超时更新其端口状态表。
每个线卡上的每个FDU维护其自己的端口状态表46。这个表维护物理链路状态和其本地端口以及集群内的所有FDU的所有远程端口的连接状态。FDU使用接收到的心跳分组和计时器超时消息(由于连接超时或远程FDU故障)更新该表。该表被划分为两个部分:属于本地节点的端口状态和属于远程节点的端口状态。该端口状态表还维护MLT和SMLT组信息。转发逻辑使用该端口状态表执行下面更详细解释的快速重新路由。
图11示出了4个节点的集群内的端口状态分组的分发,其中黑色箭头表示端口状态分组到集群内的所有FDU的流动。如这个图中所示,产生包含与特定FDU相关联的每个端口的状态的分组1。以左上网络元件的左上线卡内的附图标记1示出这个分组。这个分组将被传递到FDU,从而FDU可以更新其端口状态数据库,以便反映其端口的当前状态。然后该分组将被传递到本地节点内的每个其它FDU(箭头2)。在一个实施例中,这可通过使得交换机结构将该分组广播到本地节点内的所有其它FDU实现。该分组还将被转发到集群内的其它节点(箭头3),从而端口状态可被分发(箭头4)到与集群内的每个节点相关联的每个FDU。当FDU接收到包含端口状态信息的分组时,它使用该信息更新其自己的端口状态数据库。这使得同步集群内所有FDU的端口状态数据库。
集群中可以存在若干网络元件,网络元件中可以存在多个FDU和可以存在由每个FDU支持的多个端口。为了使得每个节点能够保持追踪哪个FDU已经提供了状态分组,并且将特定端口状态分组与特定FDU相关联,可以实现编号方案。优选地,在集群范围内唯一地实现编号方案,从而可以唯一地标识集群内的每个FDU。在一个实施例中,端口状态分组携带关于其每个端口的信息。该分组将指出源节点ID和全局端口ID(GPID)。全局端口ID是使得可以在端口数据库内唯一地标识端口的全局唯一标识符(节点内全局唯一的)。
前面的消息描述FDU如何交换消息以便使得能够在数据路径内的端口之间同步端口状态。在操作中,这种端口状态信息将使得FDU能够为特定的数据分组选择可用端口,并且确信所选择的端口处于UP。当端口成为DOWN时,集群中的FDU将停止选择这些端口,而是选择与下行端口(down port)相关联的MLT/SMLT内的替换端口,以便用于处理该分组。因此,数据路径能够自动地适应端口故障、线卡故障等,以便将分组重新路由到可用的替换端口而不涉及控制平面。因此,可以在网络元件内和在网络元件的集群之间迅速地进行少于10ms的分组重新路由。
当FDU接收到数据分组时,它将读取端口ID、MLT-ID和散列函数,并且将这些值传递到端口状态数据库。端口状态数据库将首先搜索与MLT-ID相关联的并且处于UP的本地端口,并且然后搜索与该MLT相关联并且处于UP的远程端口。在一个实施例中,端口状态表被设计为卸载来自该FDU的端口选择处理。在这个实施例中,FDU将对端口的请求传递到端口状态表,并且端口状态表智能地实现该请求,以便返回保证处于UP的作为MLT/SMLT的一部分的端口,并且相对于远程端口优先使用本地端口。另外,在端口在远程节点上的情况下,端口状态表将检查以便寻找处于UP的IST端口,FDU可以在该端口上将分组转发到远程节点,从而远程节点可以在远程节点上转发分组。因此,端口状态表不仅确定是否存在可用的远程端口,而且还确定是否存在可用的IST端口,FDU可以使用该IST端口将分组传递到远程节点,以便在远程端口上进行转发。
图10示出了可用于卸载来自FDU的端口选择的实施例。在图10的实施例中,端口数据库包括数据库控制逻辑56,数据库控制逻辑56配置为从FDU接收端口选择请求,并且如果存在一个可用端口,则返回该可用端口。端口数据库可能需要对本地和远程端口表进行多个数据库访问操作/调用,以便确定将响应端口选择请求返回哪个端口。数据库控制逻辑,可选择地在FDU的控制下,控制这个处理的执行,以便自动执行选择端口的处理。
数据库控制逻辑可以硬件实现,并且在也以硬件实现的本地和远程表内执行数据访问。当端口失效时,该端口的状态(UP/DOWN)将被反映在端口状态表内。当FDB查找返回作为MLT/SMLT组的一部分的目的地时,FDU将通过数据库控制逻辑向端口状态表执行端口访问操作。因此,不是由FDU从FDB(以控制平面更新,并且因此,相对慢)确定端口,而是FDU使用FDB确定接收方,并且然后使用以硬件实现的端口数据库单独确定用于到达该接收方的端口。这使得能够基于端口的当前状态和MLT组ID动态地确定端口,从而可以为分组从相关联的(MLT)端口组中选择可用端口。这使得网络设备能够适应多个故障(多个端口/链路故障),并且通过将分组从下行端口重新路由到MLT内的保证处于UP的端口快速地进行适应调整。由于端口故障通知跨越集群内的多个网络设备,FDU可以将分组转发到不同节点上的另一个端口,从而可以用类似的方式实现网络设备内以及网络设备之间的端口选择。这使得不仅能够从仅具有本地端口的MLT内进行端口选择,而且使得能够在集群内的不同节点上实现的端口之间实现端口选择,从而可以动态地实现SMLT内的端口选择。另外,由于节点能够从与MLT/SMLT相关联的所有其它端口之间进行选择,来自下行端口的通信量可被散布/分布在MLT/SMLT的其余端口上,而不是被完全转移到特定的替换端口。类似地,可以适应多个端口故障和端口故障组合,而不中断通过节点集群的分组转发,这是由于当接收到分组时,端口状态数据库将能够查找处于UP的任何可用端口,并且返回任何可用端口的值以便由FDU使用。
有时网络可以在网络层(层3)具有冗余,这使得能够建立网络上的冗余路由。一种这样的情况是等值多路径(ECMP),其中存在网络上到特定目的地的两个或更多个等值的路由。在这种情况下,进入FDU将使用散列函数选择ECMP路由中的一个。然后,FDU将使用端口表确定与所选择的ECMP路由相关联的哪个端口处于UP状态。如果没有处于UP状态的端口,则为每个ECMP路由迭代该处理,以便试图寻找可用端口。因此,在ECMP上下文中,如果FDU不能为所选择的ECMP路由选择一个可用端口,则FDU将选择下一个ECMP路由,并且为该ECMP路由执行单播端口选择处理,以便试图从下一个可用ECMP路由寻找一个可用端口。FDU将顺序地或使用再散列分布处理每个ECMP路由,直到定位可用端口为止。如果没有可用端口,该分组将被丢弃。
图12是示出了计算机系统(FDU)110的示例体系结构的方框图,计算机系统(FDU)110执行、运行、解释、操作或以其他方式实施ECMP快速重新路由操作应用140-1和适用于解释此处公开的示例配置的ECMP快速重新路由操作处理140-2。如这个例子中所示,计算机系统110包括互连机构111,诸如耦接存储器系统112、处理器113、输入/输出接口114和通信接口115的数据总线或其它电路。通信接口115使得计算机系统110能够与网络(未示出)上的其它设备(即,其它计算机)通信。
存储器系统112是任意类型的计算机可读介质,并且在这个例子中,被编码有此处解释的ECMP快速重新路由操作应用140-1。ECMP快速重新路由操作应用140-1可被表达为软件代码,诸如支持根据此处描述的不同实施例的处理功能的数据和/或逻辑指令(例如,存储在存储器内或另一计算机可读介质诸如可移动盘上的代码)。在计算机系统110的操作过程中,处理器113通过互连111访问存储器系统112,以便启动、运行、执行、解释或以其他方式实施ECMP快速重新路由操作应用140-1的逻辑指令。以这种方式执行ECMP快速重新路由操作应用140-1产生ECMP快速重新路由操作处理140-2中的处理功能。换言之,ECMP快速重新路由操作处理140-2表示运行时在计算机化设备110内的处理器113之内或之上执行或实施的ECMP快速重新路由操作应用140-1的一个或多个部分或运行时实例(或整个ECMP快速重新路由操作应用140-1)。
注意,此处公开的示例配置包括ECMP快速重新路由操作应用140-1自身(即,为非执行或非运行逻辑指令和/或数据的形式)。ECMP快速重新路由操作应用140-1可被存储在计算机可读介质(诸如软盘)、硬盘、电子的、磁的、光学的或其它计算机可读介质上。ECMP快速重新路由操作应用140-1还可被存储在存储器系统112内,诸如在固件、只读存储器(ROM)内,或在这个例子中,作为可执行代码存储在,例如,随机存取存储器(RAM)内。除了这些实施例,还应当注意,此处的其它实施例包括ECMP快速重新路由操作应用140-1作为ECMP快速重新路由操作处理140-2在处理器113中的执行。本领域的技术人员应当理解,计算机系统110可以包括其它处理和/或软件和硬件组件,诸如这个例子中未示出的操作系统。
在操作过程中,计算机系统100的处理器113通过互连111访问存储器系统112,以便启动、运行、实施、解释或以其他方式执行ECMP快速重新路由应用140-1的逻辑指令。执行ECMP快速重新路由应用140-1产生ECMP快速重新路由处理140-2中的处理功能。换言之,ECMP快速重新路由处理140-2表示计算机系统100内的处理器113之内或之上执行的ECMP快速重新路由应用140-1的一个或多个部分(或整个应用)。
应当注意,除了ECMP快速重新路由处理140-2之外,此处的实施例包括ECMP快速重新路由应用140-1自身(即,非执行或非运行逻辑指令和/或数据)。ECMP快速重新路由应用140-1可被存储在计算机可读介质,诸如软盘、硬盘或光学介质上。ECMP快速重新路由应用140-1还可被存储在存储器类型的系统内,诸如在固件、只读存储器(ROM)内,或在这个例子中,作为可执行代码存储在存储器系统112内(例如,在随机存取存储器或RAM内)。
除了这些实施例,还应当注意,此处的其它实施例包括ECMP快速重新路由应用140-1作为ECMP快速重新路由处理140-2在处理器113中的执行。本领域的技术人员应当理解,计算机系统100可以包括其它处理和/或软件和硬件组件,诸如控制与计算机系统100相关联的硬件资源的分配和使用的操作系统。
图13和14中给出了当前公开的方法的特定实施例的流程图。此处矩形元素代表“处理块”,并且表示计算机软件指令或指令组。可替换地,处理块表示由功能等同电路,诸如,数字信号处理器电路或专用集成电路(ASIC)执行的步骤。这些流程图未给出任何特定编程语言的语法。而是这些流程图示出了本领域的技术人员构造电路或生产计算机软件以便执行根据本发明的所需处理所需要的功能信息。应当注意,未示出许多例程程序元素,诸如循环和变量的初始化以及对临时变量的使用。本领域的普通技术人员将会明了,除非此处另外指出,所描述的特定步骤序列仅是说明性的,并且可被改变而不脱离本发明的精神。因此,除非另外说明,下面描述的步骤不带有顺序含义,当可能时,这些步骤可以任何方便的或所希望的顺序执行。
现在参考图13,示出了用于提供可以通过网络在多个等值多路径路由之一上转发的分组的快速重新路由的方法200的特定实施例。方法200以处理块202开始,处理块202公开了以网络元件的数据平面内的转发数据单元(FDU)接收单播分组,并且其中所述单播分组在L3被路由,并且其中可以为所述单播分组的下一跳启用ECMP。处理块204说明选择ECMP路由以便将该分组转发到目的地端口。如处理块206所示,做出目的地端口是独立端口还是MLT组的判定。当在FDU处接收到分组时,例如,通过使用散列函数确定优选的ECMP路由。然后,为该ECMP路由确定目的地端口。
处理块208说明在FDU维护的端口状态表中执行查找,以便针对目的地为所述ECMP路由确定处于UP状态的可用本地端口,并且如果没有本地端口处于UP状态,则在端口状态表中执行查找,以便为所选择的ECMP路由确定处于UP状态的可用远程端口。当针对一个ECMP路由的目的地端口是独立端口时,FDU将该目的地端口传递到数据库控制逻辑,以便确定该独立端口处于UP状态还是DOWN状态。如果该独立端口处于UP,则FDU将在该端口上转发分组。
处理块210公开了如果未能为所选择的ECMP路由确定可用端口,如果可以获得另一个ECMP路由,则选择该另一个ECMP路由,并且重复所述在端口状态表内执行查找,直到为该分组找到端口为止。如果该端口处于下行状态,FDU挑选另一个ECMP路由,这得到另一个目的地端口,并且将为每个ECMP路由进行迭代,直到找到端口或耗尽所有ECMP路由为止。处理块212说明使用所述ECMP路由将所述分组转发到所述可用端口。处理块214说明确定不可以获得其它ECMP路由,则丢弃所述分组。
图13的方法200详细说明了目的地端口是独立端口时的处理,而图14示出的方法详细说明了当目的地端口是MLT组时的处理。现在参考图14,示出了方法300的特定实施例,其中目的地端口是MLT组。方法300以处理块302开始,处理块302公开了当目的地端口是MLT组时,则从所述分组中所选择的字段产生散列值,以便确定MLT端口成员。如果与特定ECMP路由相关联的目的地端口是MLT组,则使用从该分组中所选择的字段产生的散列值挑选MLT端口成员。
处理块304说明使用MLT组ID和散列值确定处于UP状态的端口成员。然后,使用该组ID和散列值在本地端口状态表中进行查找。如果本地端口中的一个处于UP,则分组将被发送到该端口。
处理块306说明确定本地表中的所有端口成员是否都处于下行,并且当所有端口成员处于下行时,从远程表中确定MLT端口。处理块308公开了为从远程表中选择的端口成员确定处于UP状态的IST。如果本地表内的所有端口成员都处于下行,FDU使用远程表,以便检查是否有任何远程端口成员处于UP。如果该检查成功了,FDU将分组发送到适当的IST连接。处理块310说明在该IST上将分组转发到该远程端口。如果远程表中的所有端口成员都处于下行,则FDU挑选另一个ECMP路由,这得到另一个目的地端口。然后,FDU重复端口选择处理。如果为每个可用ECMP路由的进行所有尝试都失败了,则丢弃该分组。
借助于上述方法和装置,提供可以通过网络在多个等值多路径路由之一上转发的分组的快速重新路由。
与一个或多个处理器集成在一起的一个或多个设备或计算机系统可以包括,例如,一个或多个个人计算机、一个或多个工作站(例如,Sun、HP)、一个或多个个人数字助理(PDA)、一个或多个手持设备,诸如一个或多个蜂窝电话、一个或多个膝上计算机、一个或多个手持计算机或能够与一个或多个处理器集成在一起的可以按照此处的规定操作的一个或多个另一设备。因此,此处提供的设备不是无遗漏的,并且被提供用于说明而不是作为限制。
可以理解,对“微处理器”和“处理器”的引用或“微处理器”和“处理器”包括可以在一个或多个独立和/或分布式环境中通信的一个或多个微处理器,并且因此被配置为通过有线或无线通信与其它处理器通信,其中这种一个或多个处理器可被配置为在可以是类似设备或不同设备的一个或多个处理器控制的设备上操作。因此,对这些术语“微处理器”或“处理器”的使用可被理解为包括中央处理单元、算数逻辑单元、专用集成电路(IC)和/或任务引擎,提供这些例子用于说明而不是作为限制。
另外,除非另外指明,对存储器的引用可以包括一个或多个处理器可读和可访问的存储器元件和/或组件,它们可以在以处理器控制的设备之内,在以处理器控制的设备之外,和/或可使用各种通信协议通过有线或无线网络被访问,并且除非另外指明,可被安排为包括外部和内部存储器设备的组合,其中基于应用,这些存储器可以是邻近的和/或分开的。因此,可以理解对数据库的引用包括一个或多个存储器联合体,其中这些引用可以包括商业上可获得的数据库产品(例如,SQL、Informix、Oracle)并且还有私有数据库,并且还可以包括用于关联存储器的其它结构,诸如链接、队列、图、树,提供这些结构用于说明而不是作为限制。
除非另外规定,对网络的引用可以包括一个或多个内联网和/或互联网以及虚拟网络。根据上述内容,此处对微处理器指令或微处理器可执行指令的引用可被理解为包括可编程硬件。
除非另外说明,对单词“大体上”的使用可被认为包括精确的关系、状态、布置、取向和/或其它特性,以及如本领域的技术人员所理解的对它们的偏离,所述偏离的程度以不会本质上影响公开的方法和系统为准。
在本发明的整个公开中,对修饰名词的冠词(“一个”)的使用可被理解为是出于方便而使用的,并且除非特别指出,包括一个或多于一个所修饰的名词。
除非此处另外规定,被描述为和/或以其他方式在图中被描绘为与其它元件、组件、模块和/或其部分通信、相关联和/或基于其它元件、组件、模块和/或其部分的元件、组件、模块和/或其部分可被理解为以直接和/或间接的方式与其它元件、组件、模块和/或其部分通信、相关联和/或基于其它元件、组件、模块和/或其部分。
虽然已经以特定实施例描述了方法和系统,所述方法和系统不限于此。显然根据上述教导可以明了许多修改和变形。本领域的技术人员可以做出对此处描述和说明的细节、材料和部件布置的许多附加改动。
已经描述了本发明的优选实施例,本领域的普通技术人员现在将会明了可以使用结合有这些概念的其它实施例。另外,被包括为本发明的一部分的软件可被包含在包括计算机可用介质的计算机程序产品内。例如,这种计算机可用介质可以包括其上存储有计算机可读程序代码段的可读存储器设备、诸如硬盘驱动器、CD-ROM、DVD-ROM或计算机盘。计算机可读介质还可以包括其上以数字或模拟信号承载有程序代码段的光学的、有线的或无线的通信链路。因此,本发明不应被局限于描述的实施例,而是仅由所附权利要求书的精神和范围限制。
Claims (10)
1.一种提供可以通过网络在多个等值多路径(ECMP)路由之一上转发的分组的快速重新路由的方法,所述方法包括以下步骤:
由网络元件的数据平面内的转发数据单元(FDU)接收单播分组,其中所述单播分组在L3被路由,并且其中可以为所述单播分组的下一跳启用ECMP;
选择ECMP路由以便将所述分组转发到目的地端口;
在由所述FDU维护的端口状态表内执行查找,以便针对所述目的地为所述ECMP路由确定处于上行状态的可用本地端口,并且如果没有处于上行的本地端口,则在所述端口状态表中执行查找,以便为所选择的ECMP路由确定处于上行状态的可用远程端口;和
如果未能为所选择的ECMP路由确定可用端口时,如果可以获得另一个ECMP路由,则选择该另一个ECMP路由,并且重复所述在端口状态表内执行查找,直到为所述分组找到端口为止。
2.如权利要求1所述的方法,还包括使用所述ECMP路由将所述分组转发到所述可用端口。
3.如权利要求1所述的方法,还包括确定不再存在可用的ECMP路由,则丢弃所述分组。
4.如权利要求1所述的方法,其中所述选择ECMP路由以便将所述分组转发到目的地端口包括确定所述目的地端口是独立端口还是MLT组。
5.如权利要求4所述的方法,其中当所述目的地端口是MLT组时,则从所述分组中所选择的字段产生散列值,以便确定MLT端口成员。
6.如权利要求5所述的方法,还包括使用所述MLT组ID和所述散列值确定处于上行状态的端口成员。
7.如权利要求6所述的方法,还包括确定本地表内的所有端口成员是否都处于下行,并且当所述所有端口成员都处于下行时,则从远程表中确定MLT端口。
8.如权利要求7所述的方法,还包括为从所述远程表中选择的端口成员确定处于上行状态的IST。
9.如权利要求8所述的方法,还包括在所述IST上将所述分组转发到所述远程端口。
10.一种网络元件,包括:
存储器;
处理器;
通信接口;
耦接所述存储器、处理器和通信接口的互连机构;和
其中,所述存储器被编码有用于提供可以通过网络在多个等值多路径(ECMP)路由之一上转发的分组的快速重新路由的应用,当在处理器上被执行时,所述应用提供用于处理信息的处理,所述处理使得所述网络元件执行如下操作:
由网络元件的数据平面内的转发数据单元(FDU)接收单播分组,其中所述单播分组在L3被路由,并且其中可以为所述单播分组的下一跳启用ECMP;
选择ECMP路由以便将所述分组转发到目的地端口;
在由所述FDU维护的端口状态表内执行查找,以便为针对目的地为所述ECMP路由确定处于上行状态的可用本地端口,并且如果没有处于上行的本地端口,则在所述端口状态表中执行查找,以便为所选择的ECMP路由确定处于上行状态的可用远程端口;和
如果未能为所选择的ECMP路由确定可用端口,如果可以获得另一个ECMP路由,则选择该另一个ECMP路由,并且重复所述在端口状态表内执行查找,直到为所述分组找到端口为止。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17801409P | 2009-05-13 | 2009-05-13 | |
US61/178,014 | 2009-05-13 | ||
US12/772,528 | 2010-05-03 | ||
US12/772,528 US8351429B2 (en) | 2009-05-13 | 2010-05-03 | Method and apparatus for providing fast reroute of a packet that may be forwarded on one of a plurality of equal cost multipath routes through a network |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101888330A true CN101888330A (zh) | 2010-11-17 |
CN101888330B CN101888330B (zh) | 2014-12-17 |
Family
ID=42676846
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010178187.6A Active CN101888330B (zh) | 2009-05-13 | 2010-05-13 | 用于提供分组的快速重新路由的方法和装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8351429B2 (zh) |
EP (1) | EP2252015B1 (zh) |
CN (1) | CN101888330B (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102164094A (zh) * | 2011-05-30 | 2011-08-24 | 北京星网锐捷网络技术有限公司 | 多链路流量重分配的方法和装置 |
CN102404234A (zh) * | 2011-12-26 | 2012-04-04 | 杭州华三通信技术有限公司 | 流量转发方法和设备 |
CN102752187A (zh) * | 2011-04-21 | 2012-10-24 | 中兴通讯股份有限公司 | 弹性网络接口的实现方法和系统 |
CN103856406A (zh) * | 2012-11-29 | 2014-06-11 | 国际商业机器公司 | 用于在分布式网络交换机中的路由表管理的系统和方法 |
WO2014166385A1 (en) * | 2013-04-09 | 2014-10-16 | International Business Machines Corporation | Fabric multipathing based on dynamic latency-based calculations |
WO2016095439A1 (zh) * | 2014-12-18 | 2016-06-23 | 中兴通讯股份有限公司 | 基于等价多路径ecmp的报文传输方法及装置 |
CN104205754B (zh) * | 2012-12-14 | 2017-04-19 | 英特尔公司 | 通过分组循环进行网络拥塞管理 |
CN107634905A (zh) * | 2016-07-19 | 2018-01-26 | 南京中兴新软件有限责任公司 | 堆叠系统中数据转发方法及装置 |
US9893874B2 (en) | 2013-07-18 | 2018-02-13 | International Business Machines Corporation | Fabric multipathing based on dynamic latency-based calculations |
CN109391549A (zh) * | 2017-08-07 | 2019-02-26 | 特拉维夫迈络思科技有限公司 | 使用一致性哈希进行ecmp路由 |
CN112187636A (zh) * | 2020-09-22 | 2021-01-05 | 锐捷网络股份有限公司 | Ecmp路由的存储方法及装置 |
CN112187642A (zh) * | 2019-11-27 | 2021-01-05 | 谷歌有限责任公司 | 自适应路由的加权带宽分配 |
CN114884868A (zh) * | 2022-05-10 | 2022-08-09 | 杭州云合智网技术有限公司 | 基于ecmp组的链路保护方法 |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8873377B2 (en) * | 2009-11-18 | 2014-10-28 | Juniper Networks, Inc. | Method and apparatus for hitless failover in networking systems using single database |
JP5533112B2 (ja) * | 2010-03-24 | 2014-06-25 | 富士通株式会社 | 監視装置,監視方法および監視プログラム |
US8634417B2 (en) * | 2011-06-02 | 2014-01-21 | Avaya Inc. | Method and apparatus providing selective flow redistribution across Multi Link Trunk/Link Aggregation Group (MLT/LAG) after port member failure and recovery |
US20130083660A1 (en) * | 2011-10-03 | 2013-04-04 | Cisco Technology, Inc. | Per-Group ECMP for Multidestination Traffic in DCE/TRILL Networks |
US8750120B2 (en) | 2011-10-26 | 2014-06-10 | International Business Machines Corporation | Confirmed delivery of bridged unicast frames |
CN102904825B (zh) * | 2012-09-27 | 2016-08-03 | 杭州华三通信技术有限公司 | 一种基于Hash的报文传输方法和设备 |
US9825807B2 (en) * | 2012-11-30 | 2017-11-21 | Cisco Technology, Inc. | Determining multicast root nodes in a telecommunications network |
US8891516B2 (en) | 2013-01-15 | 2014-11-18 | International Business Machines Corporation | Extended link aggregation (LAG) for use in multiple switches |
US9319240B2 (en) * | 2013-09-24 | 2016-04-19 | Ciena Corporation | Ethernet Ring Protection node |
US9548960B2 (en) | 2013-10-06 | 2017-01-17 | Mellanox Technologies Ltd. | Simplified packet routing |
WO2015106216A1 (en) * | 2014-01-10 | 2015-07-16 | Fox Broadcasting Company | Method and apparatus for precisely source-timed network flow switching |
US9571400B1 (en) | 2014-02-25 | 2017-02-14 | Google Inc. | Weighted load balancing in a multistage network using hierarchical ECMP |
US10075365B2 (en) | 2014-08-27 | 2018-09-11 | Raytheon Company | Network path selection in policy-based networks using routing engine |
US9894005B2 (en) | 2015-03-31 | 2018-02-13 | Mellanox Technologies, Ltd. | Adaptive routing controlled by source node |
US9973435B2 (en) | 2015-12-16 | 2018-05-15 | Mellanox Technologies Tlv Ltd. | Loopback-free adaptive routing |
US10819621B2 (en) | 2016-02-23 | 2020-10-27 | Mellanox Technologies Tlv Ltd. | Unicast forwarding of adaptive-routing notifications |
US10178029B2 (en) * | 2016-05-11 | 2019-01-08 | Mellanox Technologies Tlv Ltd. | Forwarding of adaptive routing notifications |
US10200294B2 (en) | 2016-12-22 | 2019-02-05 | Mellanox Technologies Tlv Ltd. | Adaptive routing based on flow-control credits |
CN110710172A (zh) * | 2017-03-29 | 2020-01-17 | 芬基波尔有限责任公司 | 在接入节点组内多路复用分组喷射的无阻塞的任意到任意数据中心网络 |
US10686729B2 (en) | 2017-03-29 | 2020-06-16 | Fungible, Inc. | Non-blocking any-to-any data center network with packet spraying over multiple alternate data paths |
CN110710139A (zh) | 2017-03-29 | 2020-01-17 | 芬基波尔有限责任公司 | 具有光置换器的无阻塞全网状数据中心网络 |
CN108390780B (zh) * | 2018-02-11 | 2021-04-20 | 北京百度网讯科技有限公司 | 用于处理信息的方法和装置 |
US10644995B2 (en) | 2018-02-14 | 2020-05-05 | Mellanox Technologies Tlv Ltd. | Adaptive routing in a box |
CN110034973B (zh) * | 2018-12-19 | 2022-12-13 | 锐捷网络股份有限公司 | 基于网络设备的转发映射表维护方法及装置 |
US11005724B1 (en) | 2019-01-06 | 2021-05-11 | Mellanox Technologies, Ltd. | Network topology having minimal number of long connections among groups of network elements |
US11496354B2 (en) * | 2020-06-16 | 2022-11-08 | Ciena Corporation | ECMP fast convergence on path failure using objects in a switching circuit |
US11575594B2 (en) | 2020-09-10 | 2023-02-07 | Mellanox Technologies, Ltd. | Deadlock-free rerouting for resolving local link failures using detour paths |
US11411911B2 (en) | 2020-10-26 | 2022-08-09 | Mellanox Technologies, Ltd. | Routing across multiple subnetworks using address mapping |
US11870682B2 (en) | 2021-06-22 | 2024-01-09 | Mellanox Technologies, Ltd. | Deadlock-free local rerouting for handling multiple local link failures in hierarchical network topologies |
US11765103B2 (en) | 2021-12-01 | 2023-09-19 | Mellanox Technologies, Ltd. | Large-scale network with high port utilization |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000072531A1 (en) * | 1999-05-24 | 2000-11-30 | Broadcom Corporation | Apparatus and method for distributing a load across a trunk group |
US6535489B1 (en) * | 1999-05-21 | 2003-03-18 | Advanced Micro Devices, Inc. | Method and apparatus in a network switch for handling link failure and link recovery in a trunked data path |
CN1874314A (zh) * | 2005-06-02 | 2006-12-06 | 美国博通公司 | 一种从中继组中选择故障转移端口的网络设备及方法 |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6185214B1 (en) * | 1997-09-11 | 2001-02-06 | 3Com Corporation | Use of code vectors for frame forwarding in a bridge/router |
US6856627B2 (en) * | 1999-01-15 | 2005-02-15 | Cisco Technology, Inc. | Method for routing information over a network |
US6731599B1 (en) * | 1999-07-01 | 2004-05-04 | Nortel Networks Limited | Automatic load sharing-trunking |
US6888792B2 (en) * | 2000-12-07 | 2005-05-03 | Intel Corporation | Technique to provide automatic failover for channel-based communications |
US7076594B2 (en) * | 2000-12-22 | 2006-07-11 | Cisco Technology, Inc. | Apparatus and method for preventing one way connectivity loops in a computer network |
JP3967141B2 (ja) * | 2002-01-28 | 2007-08-29 | 富士通株式会社 | フレーム中継システムおよびフレーム中継装置 |
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 |
US7606927B2 (en) * | 2003-08-27 | 2009-10-20 | Bbn Technologies Corp | Systems and methods for forwarding data units in a communications network |
JP4428184B2 (ja) * | 2004-10-04 | 2010-03-10 | 株式会社日立製作所 | 検索テーブル高速切替方式およびパケット転送装置 |
ES2383613T3 (es) * | 2005-10-05 | 2012-06-22 | Nortel Networks Limited | Formación de puentes del estado de enlaces de proveedores |
US7593400B2 (en) * | 2006-05-19 | 2009-09-22 | Corrigent Systems Ltd. | MAC address learning in a distributed bridge |
JP5086585B2 (ja) * | 2006-08-11 | 2012-11-28 | アラクサラネットワークス株式会社 | ネットワーク中継装置 |
JP4908969B2 (ja) * | 2006-08-25 | 2012-04-04 | アラクサラネットワークス株式会社 | パケットを中継する装置および方法 |
JP4923908B2 (ja) * | 2006-09-21 | 2012-04-25 | 富士通株式会社 | パケット転送装置およびパケット転送方法 |
US7710963B1 (en) * | 2007-04-05 | 2010-05-04 | Juniper Networks, Inc. | Binary trees for multicast traffic |
US7826348B2 (en) * | 2007-04-26 | 2010-11-02 | Cisco Technology, Inc. | Multicast fast reroute |
JP4862743B2 (ja) * | 2007-05-17 | 2012-01-25 | 日本電気株式会社 | ノード、通信方法およびノード用プログラム |
US7936764B1 (en) * | 2008-04-09 | 2011-05-03 | Extreme Networks, Inc. | Method for optimizing IP route table size through IP route aggregation |
US8121032B2 (en) * | 2008-05-30 | 2012-02-21 | Cisco Technology, Inc. | Efficient convergence of grouped VPN prefixes |
KR100994127B1 (ko) * | 2008-08-28 | 2010-11-15 | 한국전자통신연구원 | 이더넷 스위치의 성능 향상을 위한 패킷 처리 방법 |
US8102848B1 (en) * | 2008-11-19 | 2012-01-24 | Force10 Networks, Inc. | Multicast high availability enhancements for faster convergence |
US8165122B2 (en) * | 2009-05-26 | 2012-04-24 | Alcatel Lucent | System and method for converting unicast client requests into multicast client requests |
US8472438B2 (en) * | 2010-04-23 | 2013-06-25 | Telefonaktiebolaget L M Ericsson (Publ) | Efficient encapsulation of packets transmitted on a packet-pseudowire over a packet switched network |
-
2010
- 2010-05-03 US US12/772,528 patent/US8351429B2/en active Active
- 2010-05-13 CN CN201010178187.6A patent/CN101888330B/zh active Active
- 2010-05-13 EP EP10162775A patent/EP2252015B1/en not_active Not-in-force
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6535489B1 (en) * | 1999-05-21 | 2003-03-18 | Advanced Micro Devices, Inc. | Method and apparatus in a network switch for handling link failure and link recovery in a trunked data path |
WO2000072531A1 (en) * | 1999-05-24 | 2000-11-30 | Broadcom Corporation | Apparatus and method for distributing a load across a trunk group |
CN1874314A (zh) * | 2005-06-02 | 2006-12-06 | 美国博通公司 | 一种从中继组中选择故障转移端口的网络设备及方法 |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102752187A (zh) * | 2011-04-21 | 2012-10-24 | 中兴通讯股份有限公司 | 弹性网络接口的实现方法和系统 |
CN102164094A (zh) * | 2011-05-30 | 2011-08-24 | 北京星网锐捷网络技术有限公司 | 多链路流量重分配的方法和装置 |
CN102164094B (zh) * | 2011-05-30 | 2014-04-23 | 北京星网锐捷网络技术有限公司 | 多链路流量重分配的方法和装置 |
CN102404234A (zh) * | 2011-12-26 | 2012-04-04 | 杭州华三通信技术有限公司 | 流量转发方法和设备 |
WO2013097649A1 (en) * | 2011-12-26 | 2013-07-04 | Hangzhou H3C Technologies Co., Ltd. | Traffic routing |
CN102404234B (zh) * | 2011-12-26 | 2015-05-20 | 杭州华三通信技术有限公司 | 流量转发方法和设备 |
CN103856406A (zh) * | 2012-11-29 | 2014-06-11 | 国际商业机器公司 | 用于在分布式网络交换机中的路由表管理的系统和方法 |
CN103856406B (zh) * | 2012-11-29 | 2018-04-06 | 联想企业方案(新加坡)有限公司 | 用于在分布式网络交换机中的路由表管理的系统和方法 |
CN104205754B (zh) * | 2012-12-14 | 2017-04-19 | 英特尔公司 | 通过分组循环进行网络拥塞管理 |
US9360885B2 (en) | 2013-04-09 | 2016-06-07 | International Business Machines Corporation | Fabric multipathing based on dynamic latency-based calculations |
WO2014166385A1 (en) * | 2013-04-09 | 2014-10-16 | International Business Machines Corporation | Fabric multipathing based on dynamic latency-based calculations |
US9893874B2 (en) | 2013-07-18 | 2018-02-13 | International Business Machines Corporation | Fabric multipathing based on dynamic latency-based calculations |
WO2016095439A1 (zh) * | 2014-12-18 | 2016-06-23 | 中兴通讯股份有限公司 | 基于等价多路径ecmp的报文传输方法及装置 |
CN107634905A (zh) * | 2016-07-19 | 2018-01-26 | 南京中兴新软件有限责任公司 | 堆叠系统中数据转发方法及装置 |
CN109391549A (zh) * | 2017-08-07 | 2019-02-26 | 特拉维夫迈络思科技有限公司 | 使用一致性哈希进行ecmp路由 |
CN112187642A (zh) * | 2019-11-27 | 2021-01-05 | 谷歌有限责任公司 | 自适应路由的加权带宽分配 |
US11765072B2 (en) | 2019-11-27 | 2023-09-19 | Google Llc | Weighted bandwidth allocation for adaptive routing |
CN112187636A (zh) * | 2020-09-22 | 2021-01-05 | 锐捷网络股份有限公司 | Ecmp路由的存储方法及装置 |
CN112187636B (zh) * | 2020-09-22 | 2022-08-16 | 锐捷网络股份有限公司 | Ecmp路由的存储方法及装置 |
CN114884868A (zh) * | 2022-05-10 | 2022-08-09 | 杭州云合智网技术有限公司 | 基于ecmp组的链路保护方法 |
CN114884868B (zh) * | 2022-05-10 | 2024-04-12 | 云合智网(上海)技术有限公司 | 基于ecmp组的链路保护方法 |
Also Published As
Publication number | Publication date |
---|---|
US8351429B2 (en) | 2013-01-08 |
CN101888330B (zh) | 2014-12-17 |
EP2252015A1 (en) | 2010-11-17 |
US20100290458A1 (en) | 2010-11-18 |
EP2252015B1 (en) | 2012-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101888330A (zh) | 用于提供分组的快速重新路由的方法和装置 | |
CN101888331B (zh) | 用于提供单播分组的快速重新路由的方法和装置 | |
CN101888332B (zh) | 用于提供快速重新路由的方法和转发数据单元 | |
CN101888333B (zh) | 用于在网络元件的转发平面内保持端口状态表的方法和装置 | |
CN101888307B (zh) | 用于本地实现端口选择的方法和装置 | |
CN102347905B (zh) | 一种网络设备及其转发信息更新方法 | |
CN102364900B (zh) | 一种irf系统中基于frr的数据传输方法和设备 | |
CN104025513A (zh) | 数据中心网络中的控制层级 | |
EP3213441B1 (en) | Redundancy for port extender chains | |
WO2013017017A1 (en) | Load balancing in link aggregation | |
CN105915467A (zh) | 一种面向软件定义的数据中心网络流量均衡方法及装置 | |
US20170237654A1 (en) | Fast failover recovery in software defined networks | |
WO2017113929A1 (zh) | 一种软件定义网络中控制转发设备集群的方法及控制器 | |
Wang et al. | Designing efficient high performance server-centric data center network architecture | |
CN101986727B (zh) | 网络按需距离矢量多播路由协议的多路径改进方法和装置 | |
US9866428B2 (en) | Fabric switchover for systems with control plane and fabric plane on same board | |
CN110213162B (zh) | 一种面向大规模计算机系统的容错路由方法 | |
CN102647424B (zh) | 一种数据传输方法及其装置 | |
CN105991426A (zh) | 一种负荷分担中链路的管理方法和装置 | |
CN101764820A (zh) | Gr场景的链路状态数据库信息同步方法、装置及系统 | |
CN101325456B (zh) | 一种光网络中处理te链路降级的方法 | |
Zhu et al. | Action based proactive node failure protection mechanism for openflow | |
CN103339904B (zh) | 通信系统、控制设备、转发节点和通信控制方法 | |
CN116633777A (zh) | 一种sdn交换机部署方法、装置、设备及存储介质 | |
CN115226044A (zh) | 一种nfv网络中的多播路由方法及系统 |
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 |