CN101496348B - 用于标签交换数据流量的多径转发的技术 - Google Patents
用于标签交换数据流量的多径转发的技术 Download PDFInfo
- Publication number
- CN101496348B CN101496348B CN200780028014.2A CN200780028014A CN101496348B CN 101496348 B CN101496348 B CN 101496348B CN 200780028014 A CN200780028014 A CN 200780028014A CN 101496348 B CN101496348 B CN 101496348B
- Authority
- CN
- China
- Prior art keywords
- label
- packet
- output network
- network interface
- node
- 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
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/50—Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
-
- 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/14—Routing performance; Theoretical aspects
Abstract
一种用于在跨越多个路径的通信网络中对标签交换数据流量进行多径转发以使得与特定标签交换路径(LSP)相关联的流量在网络中的相同路径上被转发的技术。与分组相关联的输入标签用于选择等价多径(ECMP)技术。该等价多径(ECMP)技术用于从多个接口中识别分组可以在其上被转发的接口。与该分组相关联的输入标签用于识别用于该分组的输出标签和分组可以在其上被转发的多个接口。该分组的标签栈中的标签被散列以产生哈希值。然后,该哈希值被用来从多个接口中识别分组在其上被转发的接口。输出标签被置于分组中,并且该分组在所识别的接口上被转发。
Description
相关申请的交叉引用
本申请是2006年7月31日递交的美国专利申请第11/496,256号的继续申请。上述申请的全部教导通过引用被结合于此。
背景技术
通信网络是地理上分布的节点和网段的集合,节点由通信链路进行互连,网段用于在通信单元(终端节点)之间传送通信(例如,数据、语音、视频),所述通信单元例如是个人计算机、某些电话机、个人数字助理(PDA)、视频单元等。许多类型的通信网络都可用,所述类型范围从局域网(LAN)到广域网(WAN)。LAN通常连接位于诸如大楼或者校园的同一普通的地理位置中的专门的私有通信链路上的节点。另一方面,WAN通常连接在诸如公共载波电话线的长距离通信链路上的大量地理上散布的节点。互联网是WAN的示例,其连接遍布世界的网络,提供各种网络上的节点之间的全球通信。这些节点通常通过根据诸如传输控制协议/网际协议(TCP/IP)的预定的协议交换不连续的帧或者数据分组而在网络中进行通信。在该上下文中,协议是定义节点如何相互交互的一组规则。
通信网络可以包括一系列中间节点(例如,路由器),所述中间节点被配置为携带通信经过网络到终端节点。路由器是通常被配置为在网络中的各种节点之间“路由”诸如分组的数据的一类中间节点。路由在层3(L3)中被执行,层3是开放系统互联参考模型(OSI-RM)的网络层。
路由器常常维护转发信息库(FIB),转发信息库(FIB)通常被配置为保存路由器用来确定如何转发数据以到达其目的地的路由信息(例如,L3地址)和接口信息。典型的FIB是被组织为包含一个以上条目的表格的数据结构,其中每个条目包含目的地节点的L3目的地地址和关于可以经过其到达目的地节点的路由器上的接口的接口信息。包含与FIB中的条目的目的地地址相匹配的目的地地址的数据(例如,数据分组)被路由器转发到由匹配条目指定的接口,以在一条路径上被转发到目的地节点。
路由器可以执行一个以上路由协议,这些路由协议使得路由器能够路由分组并且与网络中的其它路由器交换路由信息。这些路由器常常使用该信息去配置(例如,计算)它们的FIB。这些路由协议可以包括诸如路由信息协议(RIP)的距离矢量协议和诸如中间系统对中间系统(IS-IS)协议和开放最短路径优先(OSPF)协议的链路状态协议。
路由信息通常以广告消息的形式在路由器之间被交换。例如,执行IS-IS协议的节点使用被称为链路状态分组(LSP)的广告消息来交换路由信息。同样,执行OSPF协议的节点使用被称为链路状态广告(LSA)的广告消息来交换路由信息。获取广告消息的路由器可以使用包含在广告消息中的信息来更新其FIB。
某些通信网络采用多协议标签交换(MPLS)技术来将数据分组沿着从源到目的地的路径传送穿越通信网络。MPLS是用于在通信网络中提供对流量流(数据流)的有效指定、路由、转发和交换的公知技术。与所述流相关联的数据流量经由被称为标签交换路径(LSP)的路径而被携带通过网络。LSP是通信网络中由在沿着从源到目的地的路径的每个节点处的标签序列定义的路径。可以在数据传输之前或者在检测到某一数据流时建立LSP。在2001年1月的请求注解(Request for Comments,RFC)3031的互联网工程任务组(Internet Engineering Task Force,IETF)第1-61页中E.Rosen等人的“Multiprotocol Label Switching Architecture(多协议标签交换结构体系)”中描述了MPLS。
支持MPLS的网络通常称为MPLS网络。在MPLS网络中,MPLS分组通常由被称为标签交换路由器(LSR)和标签边缘路由器(LSR)的专门的路由器处理。LSR和LSR两者都参与LSP的建立和基于所建立的LSP的数据流量的高速交换。LER是在MPLS网络边缘进行操作并且提供到网络的接入的路由器。LSR通常是包括MPLS网络的核心并且沿着LER之间的路径交换MPLS分组的高速路由器。
MPLS使用确定流量如何沿着LSP被交换(转发)的标签。所述标签通常驻留在MPLS分组的层2(L2)和L3头之间。标签通常包括标签字段、实验字段、“S”字段和生存时间(TTL)字段。标签字段保存该标签的值。实验字段持有为实验使用而预留的值。在一些MPLS实现中,该字段持有代表与该标签相关联的服务类别(CoS)的值。“S”字段持有这样的值,该值指示该标签是否在包含在MPLS分组中的标签的栈(以下将进一步描述)的底部。TTL字段指示与该标签相关联的“生存时间”值。
MPLS分组包含具有一个以上标签的栈,该栈有时也被称为分组的MPLS标签栈。MPLS标签栈包括底部标签,并且可选地包括一个以上附加标签。用于底部标签的“S”比特通常被设置成为1的值,以指示该标签是在该栈的底部。用于附加标签的“S”比特通常被设置成为0的值,以指示这些标签不在该栈的底部。
MPLS分组中的每个标签与转发等价类(FEC)相关联。FEC指示在转发分组时如何处理分组。与同样的FEC相关联的分组在被转发到它们的目的地时一般都经过同样的处理。换言之,FEC描述可以按照同样的方式被转发的一组分组;即,它们可以被绑定到同样的MPLS标签。
标签通常只在特定的本地节点有意义。因此,对于特定的FEC,与FEC相关联的标签在不同的节点处可以不同。例如,一个节点可以将标签值“45”关联到特定的FEC,而另一节点可以将标签值“52”与同一FEC关联。
如上所述,LSP被配置为携带流量数据流。数据流是指从特定的源传送到特定的目的地的数据流(例如,数据分组)。包括数据流的数据分组通常具有同样的源和同样的目的地地址。在MPLS中,数据流在LSP上被逐跳传送经过网络。在沿LSP的每个节点处,在MPLS分组的MPLS标签栈的顶部标签通常被用于确定分组采用哪条路径到沿LSP的下一跳。
在一些情况中,可能存在两条路径,属于不同流的分组可以采用这两条路径来达到下一跳。在此,可以采用负载均衡技术来对来自穿越这两条路径的各种数据流的流量进行“负载均衡”。一种用于对穿越多条路径的MPLS流量进行均衡的常用技术是IP等价多径(ECMP)负载均衡技术。
IP ECMP适合于对属于可以采用多条路径达到其下一跳的多个流的IP型分组进行负载均衡。负载均衡通常是通过根据包含在分组中的源和目的地地址而选择所述路径之一并且在所选择的路径上转发该分组来完成的。在典型的IP ECMP实现中,通过散列(hash)包含在分组的IP头中的源地址和目的地址比特的某一组合而选择所选择的路径,当在数据链路层观察时,分组的IP头通常包含在分组的有效载荷部分中。然后,根据散列结果选择用于该分组的路径。
某些IP ECMP实现在应用IP ECMP技术之前尝试检查流量以确保其确实是基于IP的流量。在此,分组的网络层头的第一半位元组(nibble)通常被检查以确定其是否包含“4”或“6”的值,“4”或“6”分别指示该分组是IP版本4(IPv4)型分组和IP版本6(IPv6)型分组。如果该分组在分组的网络层头的第一字节中包含这些值中的任一个,则该分组被认为是IP分组并且IP ECMP技术被应用来确定到它下一跳的分组路径。
附图说明
如附图中所示,从以下对本发明优选实施例的更具体的说明,本发明的以上和其它目的、特征和优点将显而易见,在附图中,不同视图中的同样的标号是指相同部件。图不一定成比例,重点在于说明本发明的原理。
图1是可以与本发明一起使用的示例性通信网络的框图;
图2是可以与本发明一起使用的中间节点的框图;
图3是可以与本发明一起使用的监控器引擎(supervisor engine)的框图;
图4是可以与本发明一起使用的示例性多协议标签交换(MPLS)数据分组的框图;
图5是可以与本发明一起使用的标签转发信息库(LFIB)的框图;
图6是根据本发明的一个方面的可以用于处理MPLS分组的步骤序列的流程图。
具体实施方式
以下是本发明优选实施例的说明。
应当注意,在此所述的本发明的说明性实施例被描述为使用多协议标签交换(MPLS)结构体系来转发数据流量。在2001年1月的请求注解(RFC)3031第1-61页的E.Rosen等人的“Multiprotocol Label SwitchingArchitecture(多协议标签交换结构体系)”中描述了可以与本发明一起使用的MPLS结构体系版本,其可以从互联网工程任务组(IETF)获得,并且通过引用结合于此,如同在此做了全面阐述。在1998年4月的RFC2328第1-244页的J.Moy的“OSPF Version 2(OSPF版本2)”中描述了在此引用的等价多径(Equal Cost Multiple Path,ECMP)技术版本,其可以从IETF获得,并且通过应用结合于此,如同在此做了全面阐述。应当注意,其它数据流量转发体系结构、负载均衡技术和标签交换协议可以适于利用本发明。
上述用于MPLS流量负载均衡的网际协议(IP)ECMP方法的一个问题是:虽然其可以将IP型流量处理好,但不可以将某些非IP流量处理得很好。例如,非IP数据分组在其被解析为假定的网络层头的第一半位元组的位置处的有效载荷中碰巧具有“4”或“6”的值时,这样的非IP数据分组可能使得IP ECMP被应用于选择用于这些分组的路径。这进而可能使得相关的分组在不同路径上被转发到目的地。在不同路径上转发相关分组可能使得这些分组“顺序错误”地或者过不稳定地到达它们的目的地,这可能使得应用失败。
本发明通过以下方式克服了这些缺点:提供一种与跨越多个路径的通信网络中的对标签交换流量进行负载均衡相关的技术,以使得与特定的标签交换路径(label-switched path,LSP)相关联的流量在单个路径上被转发通过网络。根据本技术的一个方面,定义了新的转发等价类(FEC),其使得ECMP被应用于分组而不考虑这些分组是否包含IP头。ECMP被根据与包含在这些分组中的标签相关联的FEC而应用于这些分组。这些标签被用于从多个ECMP技术中选择用于识别用于这些分组的接口的ECMP技术。在此,可以通过与用于选择ECMP技术的一个以上标签相关联的FEC的语义来建立ECMP技术。
所选择的ECMP技术可以被配置为从数据分组的有效载荷部分之外的部分中包含的信息来识别用于该数据分组的输出接口。例如,分组中的MPLS标签栈中的MPLS标签可以被散列以产生哈希值。然后,该哈希值可以被用来从多个接口中识别(选择)分组将在其上被转发的接口。
图1是可以与本发明一起使用的示例性通信网络100的框图。网络100包括耦合以形成节点互联网络的帧中继装置130、边缘节点140和中间节点200。这些联网的节点通过根据预先定义的一组网络协议交换数据分组而进行通信,所述网络协议例如是MPLS协议、传输控制协议/网际协议(TCP/IP)、帧中继(FR)和以太网。
帧中继装置130a和130b是传统的帧中继装置,被配置为处理帧中继流量。数据流量作为经由标签交换路径(LSP)而穿越网络100的一串MPLS分组而从一个帧中继装置130经过网络100流到另一个帧中继装置130。
中间节点200a至200d和边缘节点140a、140b配置为形成MPLS网络。具体而言,边缘节点140a和140b是传统的边缘节点(例如,路由器),被配置为实现MPLS标签交换边缘路由器(LER)。同样地,中间节点200a至200d是传统的中间节点(例如,路由器),被配置为实现MPLS标签交换路由器(LSR)。此外,如以下将要描述的,中间节点200a至200d被配置为根据在此所述的技术的多个方面进行标签交换流量负载均衡。
在网络100中,每个LSP包括一串标签并且被绑定到特定的转发等价类(FEC)。因此,每个与LSP关联的标签被绑定到LSP的FEC。此外,在网络100中,标签、LSP和FEC信息由用户说明性地定义,并且被使用诸如公知的标签分布协议(LDP)的分布协议而分布在LER和LSR之间。在2001年1月的RFC 3036第1-132页的L.Aanersson等人的“LDPSpecification(LDP规范)”中描述了可以与本发明一起使用的LDP版本,其可以从IETF获得,并且通过应用全部结合于此,如同在此做了全面阐述。
图2是可以和本发明一起使用的中间节点200的高级框图。中间节点200包括由背板220互连的一个以上线卡(line card)210和监控器引擎卡300。节点200被配置为执行各种传统的层2(L2)和层3(L3)交换和路由功能。在此使用的L2和L3分别是指开放系统互联参考模型(OSI-RM)的数据链路层和网络层。节点200还可以被配置为支持各种协议组合,所述协议例如包括开放最短路径优先(OSPF)、中间系统对中间系统(IS-IS),TCP/IP、以太网、异步传输模式(ATM)和FR。可以和本发明一起使用的合适的中间节点包括可从加利福尼亚州的圣何塞(SanJose)的思科系统公司获得的思科7600系列路由器。
背板220包括诸如被配置为互连各种卡并且允许数据和信号在这些卡之间进行传输的总线的互连。线卡210将中间节点200与网络100进行连接(接合)并且允许数据分组使用诸如ATM、以太网和FR的各种协议而经由物理端口205在中间节点200和网络100之间进行传输。在这端,线卡210包括合并信号的、电子的和机械的特性的传统的接口电路和交换电路,需要用它们来接合网络100的物理介质和运行在该介质上的协议。
线卡210还包含一个以上网络接口(未示出),它们是与一个以上物理端口205关联的说明性逻辑实体。通过特定端口205从网络100接收到的分组与该端口的网络接口相关联并且由中间节点200进行处理,如同它们是由网络接口接收到的一样。同样,去往网络100的分组与用于将这些分组“路由”到(与该网络接口相关联的)特定的物理端口205以传送到网络100的网络接口相关联。应当注意,在本发明的其它实施例中,网络接口是被配置为将分组传送到网络的物理实体。
根据本发明的各个方面,监控器引擎300包括被配置为这样的逻辑,其管理节点200、执行诸如MPLS的各种协议并且执行包括处理MPLS分组的其它功能。图3是可以与本发明一起使用的监控器引擎300的高级框图。
监控器引擎300包括接口逻辑360、分组缓冲器350、系统控制器330、处理器320和存储器340。接口逻辑360将监控器引擎300与背板220进行接合,并且使得数据能够在背板220和监控器引擎300之间进行传送。分组缓冲器350是这样的存储器,其包括能够存储由接口逻辑360获取并且由处理器320处理的数据分组(例如,MPLS分组)的高速随机存取存储器(RAM)装置。系统控制器330耦合到处理器320、存储器340和分组缓冲器350,并且包括被配置为使得处理器320能够访问(例如,读,写)存储器340和分组缓冲器350中所包含的存储位置的电路。处理器320包括这样的处理逻辑,该处理逻辑被配置为实现执行计算机可执行指令并且操纵存储器340中所包含的数据的传统的中央处理单元(CPU)。
存储器340是包括诸如动态RAM(DRAM装置)的随机存取存储器(RAM)装置的计算机可读介质。存储器340包含由处理器320使用的计算机可读指令和数据结构,这些计算机可读指令和数据结构包括实现本发明的各个方面的计算机可执行指令和数据结构。具体而言,存储器340包括操作系统342、路由服务344、流量工程服务346和标签转发信息库(LFIB)500。
操作系统342是传统的操作系统,其包括被配置为支持处理器320中的进程(例如,路由服务344,流量工程服务346)的执行的计算机可读指令和数据结构。具体而言,操作系统342被配置为执行各种传统的操作系统功能,例如,使得进程能够被安排以便在处理器320上执行和提供对诸如存储器340的各种资源的控制访问。路由服务344是包括实现诸如OSPF和IS-IS的各种路由协议的计算机可执行指令和数据结构的软件进程。这些功能可以被配置为管理FIB(未示出),FIB例如包括用于对由监控器引擎300处理的分组做出各种转发决策的数据。根据本发明的各个方面,流量工程服务346是包括这样的计算机可执行指令和数据结构的软件进程,这些计算机可执行指令和数据结构被配置为实现MPLS结构体系的各个方面和为由节点200处理的MPLS分组确定路径。
应当注意,可以全部或者部分使用硬件和/或软件的某一组合来实现由中间节点200执行的功能,所述功能包括实现本发明的各个方面的功能。还应当注意,实现本发明各个方面的计算机可执行指令和/或计算机数据可以存储在其它计算机可读介质中,所述其它计算机可读介质例如是易失性存储器、非易失性存储器、闪存、可移除盘、不可移除盘等。此外,应当注意,诸如无线信号、在电线上携带的电信号、在光纤上携带的光信号等的各种电磁信号可以被编码为例如在通信网络中携带实现本发明的各个方面的计算机可执行指令和/或计算机数据。
图4是可以和本发明一起使用的示例性MPLS数据分组400的框图。分组400包括具有数据链路层头410的非有效载荷部分、包括一个以上MPLS标签实体420的MPLS栈440和具有MPLS有效载荷字段430的有效载荷部分。数据链路层头410持有数据链路头(例如,以太网分组的头)。有效载荷字段430持有与分组相关联的有效载荷数据。该有效载荷数据可以包括网络层头(例如,IP头)。
每个MPLS标签条目420还包括标签字段422、实验(EXP)字段424、“栈底”指示符(“S”)字段426和生存时间(TTL)字段428。标签字段422持有代表MPLS标签的值,MPLS标签用于沿着通信网络100中的路径(LSP)交换分组。EXP字段424持有实验信息。该字段可以被配置为持有代表与标签422相关联的服务类别(CoS)的值。“S”字段持有指示条目420是否位于MPLS栈440的底部的值。说明性地,该字段中值为1指示条目420在MPLS栈440的底部并且值为0指示条目420不在栈440的底部。TTL字段428持有代表与MPLS标签条目420相关联的存活时间的值。
MPLS栈440被组织为具有底部标签420,并且可选地具有一个以上附加标签条目420。在分组400中,底部标签条目420紧在有效载荷字段430之前。如果有附加标签条目420的话,附加标签条目420位于底部标签条目420和数据链路层头410之间。在栈440的最顶部处的标签420被认为是栈440的顶部的标签420。
LFIB 500是这样的数据结构,所述数据结构包含说明性地被用于识别用于由中间节点200处理的MPLS分组400的接口的信息。图5是可以和本发明一起使用的LFIB 500的框图。LFIB 500说明性地被组织为这样的表格,所述表格包括一个以上条目510,其中,每个条目510包括输入标签字段515、ECMP选择字段525和输出接口列表指针字段545。每个条目510被“绑定到”特定的FEC。
输入标签字段515持有代表包含在分组的标签栈440的MPLS标签条目420中的标签422的值。如以下将要进一步描述的,输入标签字段515的内容用于将条目510与由中间节点200处理的分组400进行关联。ECMP选择字段525持有指定要被用于选择用于分组400的输出网络接口的ECMP技术的值。ECMP技术可以是可被用于选择用于网络100中所处理的分组的输出网络接口的多种ECMP技术中的一种。并且,可以根据标签栈中包含的一个以上标签的值来从多种技术中选择ECMP技术。每种技术可以通过与用于选择ECMP技术的一个以上标签相关联的一个以上FEC的语义而建立。说明性地,根据输入标签515的值来选择选择字段525中所代表的ECMP技术,并且根据与输入标签515中所包含的标签相关联的FEC的语义来建立该ECMP技术。输出接口列表指针545持有指向输出接口列表550的值。
每个输出接口列表550是这样的数据结构,其说明性地被组织为配置成持有一个以上条目570的表格。每个条目570包含输出标签字段575和输出接口字段580。输出标签575持有代表被置于输出分组的标签栈440中的标签422的值,以将分组400捆绑到被绑定到与分组400相关联的条目510的FEC。输出接口字段580持有代表可以用来将分组400传送到通信网络100中的下一跳的网络接口的值。
可操作地,在线卡210处经由端口205通过中间节点200接收到的MPLS数据分组400与该端口的网络接口相关联。分组400被传送到监控器引擎300,监控器引擎300通过在LFIB 500中查找与该数据分组相关联的条目510并从与条目510相关联的信息中选择输出标签和输出接口来识别用于分组400的输出标签和输出接口,等等。
说明性地,分组的标签栈400的最顶部的标签条目420中的标签422被与LFIB 500中的条目510的输入标签515进行比较,以定位其输入标签515与该分组的标签422匹配的条目510。与匹配条目570相关联的输出接口列表550被检测,以确定其是否包含不止一个条目570。如果列表550只包含一个条目570,则选择该条目570用于分组400。否则,如果列表550包含多个条目570,则匹配条目510的ECMP选择字段525被检测,以确定如何生成用于在接口列表550中选择用于分组400的条目570的哈希值。
如果ECMP选择字段525指示(例如,如在RFC 2328中所述的)传统的IP ECMP技术被用于生成哈希值,则根据传统的IP ECMP技术生成哈希值(例如,从分组400的有效载荷部分430中包含的源地址和目的地址生成哈希值)。如果ECMP选择字段525指示应用IP ECMP技术之外的ECMP技术来生成哈希值,则包含在该数据分组的非有效载荷部分中的信息(例如,分组的标签栈440中的一个以上标签)被用于生成哈希值。
说明性地,分组的栈440中包含的MPLS标签条目420的标签422(例如,栈的底部处的标签条目420中的标签422)被散列以生成哈希值。所产生的哈希值作为用于输入接口列表550的索引被用于选择用于分组400的条目570。
然后,所选择的条目570的输出标签575和输出网络接口580被用作用于分组400的所识别的输出标签和所识别的输出网络接口。通常,分组的标签栈440的最顶部标签422由所识别的输出标签575替换,并且分组400被转发到所识别的输出接口580中代表的网络接口以将分组转发到通信网络100中它的下一跳。与网络接口关联的端口205将分组400传送到网络100。
图6是根据本发明一个方面的用于处理MPLS分组400的步骤序列的流程图。序列从步骤605开始并且进行到步骤610,在步骤610,接收来自网络的MPLS分组400。接着,在步骤620,如上所述,中间节点200识别用于分组400的输出标签。在步骤630,如上所述,所识别的输出标签被置于分组的标签栈440的顶部。在步骤640,如上所述,识别用于分组400的输出网络接口。在步骤650,分组经由所识别的到网络100中它的下一跳的网络接口而被转发到网络100。序列在步骤695结束。
例如,参考图1和6,假定非IP数据分组要在从边缘节点140a延伸到边缘节点140b的LSP上从帧中继装置130a被发送到帧中继装置130b。还假定,LSP与FEC相关联,该FEC使得在LSP上传送的MPLS分组400根据本发明的各个方面被转发。
帧中继装置130a将分组转发到网络100并且该分组由边缘节点140a接收。边缘节点140a将该分组封装为MPLS分组400并且将该分组在LSP上转发到节点140b。具体而言,边缘节点140a将MPLS标签条目420置于分组的栈440中,分组的栈440包含以传统的方式与LSP的FEC相关联的标签422。然后,边缘节点140将分组400转发给中间节点200a。
中间节点200a在端口205处接收来自网络100的MPLS分组400(步骤610)。该分组与端口的网络接口相关联并且经由背板220被转发到监控器引擎300。接口逻辑360接收分组400并且将它置于分组缓冲器350中。如上所述,处理器320经由系统控制器330访问该分组并且识别用于该分组的输出标签(步骤620)。然后,如上所述,处理器320将所识别的输出标签置于分组的标签栈440中(步骤630),并且识别要使用包含在分组的标签栈440中的标签422而将该分组传送到网络的输出网络接口(步骤640)。标签查找提供与该分组相关联的FEC类型的语义。这进而影响对分组的ECMP处置。
注意,该分组可能在将分组转发到中间节点200b的网络接口上或者在将分组转发到中间节点200c的网络接口上被转发。如上所述,中间节点200a说明性地通过以下方式选择接口以将分组400携带到它的下一跳(即,节点200b或节点200c):散列包含在分组的标签栈440中的标签422以生成哈希值,并且使用该哈希值在到节点200b的接口和到节点200c的接口之间进行选择。
假定选择了到节点200b的网络接口。然后,分组400被转发到所选择的网络接口,所选择的网络接口经由端口205将分组400转发到节点200b(步骤650)。具体而言,处理器320指导接口逻辑360将分组400经由背板220转发到与该网络接口相关联的线卡210。线卡210使用与该网络接口相关联的端口205将分组400置于网络100中。
分组400被传送到接收分组400、如上所述处理该分组并且将该分组转发给节点200d的节点200b。200d接收分组400并且如上所述处理该分组并且将其转发到节点140b。节点140b接收分组400并且将该分组转发给帧中继装置130b。因此,装置130b最终接收该分组并对其进行处理。
应当注意,上述说明将MPLS分组描述为正在由监控器引擎300进行处理。这并不意欲是对本发明的限制。在本发明的其它实施例中,上述处理发生在线卡210上或者在网络接口210和监控器引擎的某种组合中。在此,线卡210可以包含LFIB 500和被配置为根据本发明的各个方面处理标签交换分组的处理逻辑。例如,如上所述,本处理逻辑可以被配置为识别用于标签交换分组的输出接口(例如,端口205)和输出标签。此外,如上所述,该处理逻辑可以被配置为将所识别的输出标签置于标签交换分组中并且将该分组转发到所识别的输出接口。
尽管已经参考本发明的优选实施例具体示出和描述了本发明,但是,本技术领域技术人员将理解,在不脱离所附权利要求所包括的本发明的范围的情况下可以在形式和细节上做出各种更改。
Claims (21)
1.一种用于在通信网络中转发数据分组的方法,所述方法包括:
在所述通信网络的节点处,接收包含标签栈的数据分组,所述标签栈具有一个以上用于在所述通信网络中的路径上交换所述数据分组的标签,其中,所述节点包括多个输出网络接口,所述多个输出网络接口用于所述数据分组向多个目的地节点中的一个目的地节点的转发中;
根据包含在所述标签栈中的一个以上所述标签的值来从多种等价多径ECMP技术中选择一种ECMP技术,以识别所述节点上的用于所述数据分组向所选目的地节点的转发中的所选输出网络接口;
使用所选择的ECMP技术来识别用于所述数据分组向所选目的地节点的转发中的所选输出网络接口;以及
利用所选输出网络接口来将所述数据分组转发到所选目的地节点。
2.根据权利要求1所述的方法,其中,所选择的ECMP技术被用于基于所述数据分组中除有效载荷部分之外的部分中所包含的信息来识别所述所选输出网络接口。
3.根据权利要求2所述的方法,还包括:
散列包含在所述标签栈中的一个以上所述标签以产生哈希值;和
使用该哈希值来识别所述所选输出网络接口。
4.根据权利要求3所述的方法,其中,用于产生所述哈希值的一个以上标签是处于所述标签栈的底部的标签。
5.根据权利要求3所述的方法,还包括:
使用所述哈希值来识别用于所述数据分组的输出标签;和
将所述输出标签置于所述标签栈中。
6.根据权利要求3所述的方法,还包括:
在标签转发信息库LFIB中查找与所述数据分组相关联的条目,所述标签转发信息库具有一个以上条目,每个条目与多个输出网络接口相关联;和
使用所述哈希值从与所述条目相关联的多个输出网络接口中识别所述所选输出网络接口。
7.根据权利要求1所述的方法,其中,所选择的ECMP技术是通过与用于选择所述ECMP技术的一个以上标签相关联的一个以上转发等价类FEC的语义而建立的。
8.根据权利要求7所述的方法,其中,所选择的ECMP技术被用于从所述数据分组中除有效载荷部分之外的部分中所包含的信息来识别所述所选输出网络接口。
9.根据权利要求1所述的方法,其中,所述数据分组是多协议标签交换MPLS数据分组,并且所述标签栈中一个以上标签是MPLS标签。
10.一种通信网络中的中间节点,包括:
网络接口,被配置为接收包含标签栈的数据分组,所述标签栈具有一个以上用于在通信网络中的路径上交换数据分组的标签;和
多个输出网络接口,所述多个输出网络接口用于所述数据分组向多个目的地节点中的一个目的地节点的转发中;
处理逻辑,被配置为:
(a)根据包含在所述标签栈中的一个以上标签的值来从多种等价多径ECMP技术中选择一种ECMP技术,以识别所述节点上的用于所述数据分组向所述目的地节点的转发中的所选输出网络接口;
(b)使用所选择的ECMP技术来识别用于所述数据分组向所述目的地节点的转发中的所选输出网络接口;以及
(c)利用所选输出网络接口来将所述数据分组转发所选目的地节点。
11.根据权利要求10所述的中间节点,其中,所述所选择的ECMP技术被用于基于所述数据分组中除有效载荷部分之外的部分中所包含的信息来识别所述所选输出网络接口。
12.根据权利要求11所述的中间节点,其中,所述处理逻辑还被配置为:
(a)散列包含在所述标签栈中的一个以上标签以产生哈希值;和
(b)使用该哈希值来识别用于所述数据分组的所述所选输出网络接口。
13.根据权利要求12所述的中间节点,其中,用于产生所述哈希值的所述一个以上标签是处于所述标签栈的底部的标签。
14.根据权利要求12所述的中间节点,其中,所述处理逻辑还被配置为:
(a)使用所述哈希值来识别用于所述数据分组的输出标签;和
(b)将所述输出标签置于所述标签栈中。
15.根据权利要求12所述的中间节点,还包括:
标签转发信息库LFIB,所述标签转发信息库具有一个以上条目,每个条目与多个输出网络接口相关联;并且
其中,所述处理逻辑还被配置为:
(a)在与所述数据分组相关联的LFIB中查找条目,和
(b)使用所述哈希值来从与所述条目相关联的多个输出网络接口中识别所述所选输出网络接口。
16.根据权利要求10所述的中间节点,其中,所选择的ECMP技术是通过与用于选择所述ECMP技术的一个以上标签相关联的一个以上转发等价类FEC的语义而建立的。
17.根据权利要求16所述的中间节点,其中,所选择的ECMP技术被用于从所述数据分组的除有效载荷部分之外的部分中所包含的信息来识别所述所选输出网络接口。
18.一种通信网络中的设备,包括:
用于在所述通信网络中的节点处接收包含标签栈的数据分组的装置,所述标签栈具有一个以上用于在通信网络中的路径上交换数据分组的标签,其中,所述节点包括多个输出网络接口,所述多个输出网络接口用于所述数据分组向多个目的地节点中的一个目的地节点的转发中;
用于根据包含在所述标签栈中的一个以上标签的值来从多种等价多径ECMP技术中选择一种ECMP技术以识别所述节点上的用于所述分组向所选目的地节点的转发中的所选输出网络接口的装置;
用于使用所选择的ECMP技术来识别用于所述分组向所选目的地节点的转发中的所选输出网络接口的装置;以及
用于利用所选输出网络接口来将所述数据分组转发到所选目的地节点的装置。
19.根据权利要求18所述的设备,其中,所选择的ECMP技术被用于从所述数据分组的除有效载荷部分之外的部分中所包含的信息来识别所述所选输出网络接口。
20.根据权利要求19所述的设备,还包括:
用于散列包含在所述标签栈中的一个以上标签以产生哈希值的装置;和
用于使用该哈希值来识别所述所选输出网络接口的装置。
21.根据权利要求20所述的设备,还包括:
用于在标签转发信息库LFIB中查找与所述数据分组相关联的条目的装置,所述标签转发信息库具有一个以上条目,每个条目与多个接口相关联;和
用于使用所述哈希值从与所述条目相关联的多个输出网络接口中识别所述所选输出网络接口的装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/496,256 US8718060B2 (en) | 2006-07-31 | 2006-07-31 | Technique for multiple path forwarding of label-switched data traffic |
US11/496,256 | 2006-07-31 | ||
PCT/US2007/016995 WO2008016558A2 (en) | 2006-07-31 | 2007-07-27 | Technique for multiple path forwarding of label-switched data traffic |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101496348A CN101496348A (zh) | 2009-07-29 |
CN101496348B true CN101496348B (zh) | 2014-11-26 |
Family
ID=38986214
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200780028014.2A Expired - Fee Related CN101496348B (zh) | 2006-07-31 | 2007-07-27 | 用于标签交换数据流量的多径转发的技术 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8718060B2 (zh) |
EP (1) | EP2047645B1 (zh) |
CN (1) | CN101496348B (zh) |
WO (1) | WO2008016558A2 (zh) |
Families Citing this family (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7596139B2 (en) | 2000-11-17 | 2009-09-29 | Foundry Networks, Inc. | Backplane interface adapter with error control and redundant fabric |
US7649885B1 (en) * | 2002-05-06 | 2010-01-19 | Foundry Networks, Inc. | Network routing system for enhanced efficiency and monitoring capability |
US20120155466A1 (en) | 2002-05-06 | 2012-06-21 | Ian Edward Davis | Method and apparatus for efficiently processing data packets in a computer network |
US7187687B1 (en) | 2002-05-06 | 2007-03-06 | Foundry Networks, Inc. | Pipeline method and system for switching packets |
US6901072B1 (en) | 2003-05-15 | 2005-05-31 | Foundry Networks, Inc. | System and method for high speed packet transmission implementing dual transmit and receive pipelines |
US7817659B2 (en) * | 2004-03-26 | 2010-10-19 | Foundry Networks, Llc | Method and apparatus for aggregating input data streams |
US8730961B1 (en) | 2004-04-26 | 2014-05-20 | Foundry Networks, Llc | System and method for optimizing router lookup |
US8448162B2 (en) * | 2005-12-28 | 2013-05-21 | Foundry Networks, Llc | Hitless software upgrades |
US8238255B2 (en) | 2006-11-22 | 2012-08-07 | Foundry Networks, Llc | Recovering from failures without impact on data traffic in a shared bus architecture |
US7978614B2 (en) | 2007-01-11 | 2011-07-12 | Foundry Network, LLC | Techniques for detecting non-receipt of fault detection protocol packets |
US8509236B2 (en) * | 2007-09-26 | 2013-08-13 | Foundry Networks, Llc | Techniques for selecting paths and/or trunk ports for forwarding traffic flows |
CN101741709B (zh) * | 2008-11-06 | 2012-08-22 | 华为技术有限公司 | 建立标签交换路径的方法、系统及网络节点 |
US9246801B1 (en) | 2008-12-12 | 2016-01-26 | Juniper Networks, Inc. | Transmitting packet label contexts within computer networks |
CN101442494B (zh) * | 2008-12-16 | 2011-06-22 | 中兴通讯股份有限公司 | 一种实现快速重路由的方法 |
CN101478499B (zh) * | 2009-01-08 | 2012-01-04 | 清华大学深圳研究生院 | 一种多协议标签交换网络中的流量分配方法及装置 |
US8644315B2 (en) * | 2009-06-04 | 2014-02-04 | Cisco Technology, Inc. | Label distribution protocol label filtering |
US8599850B2 (en) | 2009-09-21 | 2013-12-03 | Brocade Communications Systems, Inc. | Provisioning single or multistage networks using ethernet service instances (ESIs) |
US8619587B2 (en) * | 2010-01-05 | 2013-12-31 | Futurewei Technologies, Inc. | System and method to support enhanced equal cost multi-path and link aggregation group |
CN102136957B (zh) * | 2010-01-25 | 2014-03-12 | 华为技术有限公司 | 一种标签交换路径监控的实现方法、装置和系统 |
US8619584B2 (en) * | 2010-04-30 | 2013-12-31 | Cisco Technology, Inc. | Load balancing over DCE multipath ECMP links for HPC and FCoE |
US8804719B2 (en) | 2010-06-29 | 2014-08-12 | Cisco Technology, Inc. | In-band multicast trace in IP and MPLS networks |
CN102143041B (zh) * | 2010-07-02 | 2014-03-26 | 华为技术有限公司 | 一种网络流量分担的方法、装置及系统 |
CN101888344B (zh) * | 2010-07-28 | 2012-07-25 | 福建星网锐捷网络有限公司 | 一种实现路由泛洪的方法、装置及交换机 |
US8873389B1 (en) * | 2010-08-09 | 2014-10-28 | Chelsio Communications, Inc. | Method for flow control in a packet switched network |
EP2429127B1 (en) * | 2010-09-10 | 2013-06-19 | Alcatel Lucent | Method of enabling a packet loss measurement in a packet transport network |
US8761377B2 (en) | 2011-02-01 | 2014-06-24 | Cisco Technology, Inc. | Routing contact center interactions |
BR112013020722A2 (pt) * | 2011-02-17 | 2016-10-18 | Rockstar Consortium Us Lp | funções de cálculo de próximo salto para redes de pacotes comutados de múltiplos caminhos de custos iguais |
US8634418B2 (en) * | 2011-07-01 | 2014-01-21 | Juniper Networks, Inc. | Providing extended administrative groups in computer networks |
US8842775B2 (en) * | 2011-08-09 | 2014-09-23 | Alcatel Lucent | System and method for power reduction in redundant components |
US9461777B2 (en) | 2011-11-21 | 2016-10-04 | Qualcomm Incorporated | Hybrid networking system with seamless path switching of streams |
US9077562B2 (en) | 2012-06-08 | 2015-07-07 | Cisco Technology, Inc. | System and method for layer-2 multicast multipathing |
CN102801614B (zh) * | 2012-07-17 | 2016-04-27 | 杭州华三通信技术有限公司 | 一种等价路由的收敛方法和网络设备 |
US9178837B2 (en) | 2012-07-17 | 2015-11-03 | Cisco Technology, Inc. | System and method for layer-2 network routing |
US9722943B2 (en) * | 2012-12-17 | 2017-08-01 | Qualcomm Incorporated | Seamless switching for multihop hybrid networks |
US9467367B2 (en) * | 2013-03-15 | 2016-10-11 | Cisco Technology, Inc. | Universal labels in internetworking |
CN104144120A (zh) * | 2013-05-07 | 2014-11-12 | 杭州华三通信技术有限公司 | 转发信息配置方法及装置 |
US9094323B2 (en) * | 2013-06-26 | 2015-07-28 | Cisco Technology, Inc. | Probe packet discovery of entropy values causing specific paths to be taken through a network |
US10708182B2 (en) * | 2013-07-26 | 2020-07-07 | Cisco Technology, Inc. | MPLS LSP connectivity test when the initiator address is unknown |
US9444754B1 (en) | 2014-05-13 | 2016-09-13 | Chelsio Communications, Inc. | Method for congestion control in a network interface card |
US9819573B2 (en) | 2014-09-11 | 2017-11-14 | Microsoft Technology Licensing, Llc | Method for scalable computer network partitioning |
US9544225B2 (en) | 2014-09-16 | 2017-01-10 | Microsoft Technology Licensing, Llc | Method for end point identification in computer networks |
CN105791145B (zh) * | 2014-12-18 | 2019-10-25 | 南京中兴新软件有限责任公司 | 基于等价多路径ecmp的报文传输方法及装置 |
CN104580002B (zh) * | 2015-01-14 | 2017-07-28 | 盛科网络(苏州)有限公司 | 大流负载均衡转发方法及装置 |
US9819577B2 (en) * | 2015-05-29 | 2017-11-14 | Cisco Technology, Inc. | Adjusting control-plane allocation of packet processing resources |
US10958559B2 (en) | 2016-06-15 | 2021-03-23 | Juniper Networks, Inc. | Scaled inter-domain metrics for link state protocols |
CN108123871B (zh) * | 2016-11-28 | 2021-10-26 | 中兴通讯股份有限公司 | 等价多路径ecmp处理方法及装置 |
CN108259346B (zh) | 2017-01-25 | 2020-08-04 | 新华三技术有限公司 | 一种等价路由表项建立方法和装置 |
CN106603401B (zh) * | 2017-02-16 | 2019-09-13 | 迈普通信技术股份有限公司 | 快速重路由方法和装置 |
CN109428821B (zh) * | 2017-08-31 | 2021-06-11 | 阿里巴巴集团控股有限公司 | 服务器、管理互备设备路由的方法和存储介质 |
US10999183B2 (en) | 2019-08-12 | 2021-05-04 | Juniper Networks, Inc. | Link state routing protocol adjacency state machine |
US11431618B2 (en) | 2019-09-19 | 2022-08-30 | Nokia Solutions And Networks Oy | Flexible path encoding in packet switched networks |
US11677658B2 (en) * | 2019-09-19 | 2023-06-13 | Nokia Solutions And Networks Oy | Packet routing based on common node protection |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6724722B1 (en) * | 1999-03-19 | 2004-04-20 | Lucent Technologies Inc. | Managing congestion and potential traffic growth in an information network |
US6751190B1 (en) | 1999-05-18 | 2004-06-15 | Cisco Technology, Inc. | Multihop nested tunnel restoration |
US7082102B1 (en) * | 2000-10-19 | 2006-07-25 | Bellsouth Intellectual Property Corp. | Systems and methods for policy-enabled communications networks |
US7212526B2 (en) * | 2002-01-18 | 2007-05-01 | Hitachi, Ltd. | Method and apparatus for composing virtual links in a label switched network |
US7974284B2 (en) * | 2003-06-27 | 2011-07-05 | Broadcom Corporation | Single and double tagging schemes for packet processing in a network device |
US6925081B2 (en) | 2003-07-11 | 2005-08-02 | Cisco Technology, Inc. | MPLS device enabling service providers to control service levels in forwarding of multi-labeled packets |
US7568047B1 (en) * | 2004-04-30 | 2009-07-28 | Nortel Networks Limited | Method and apparatus for adaptive service label management |
JP4598462B2 (ja) * | 2004-09-16 | 2010-12-15 | 富士通株式会社 | L2−vpnサービスを提供するプロバイダ網、及びエッジルータ |
US9306831B2 (en) * | 2005-02-14 | 2016-04-05 | Cisco Technology, Inc. | Technique for efficient load balancing of TE-LSPs |
-
2006
- 2006-07-31 US US11/496,256 patent/US8718060B2/en not_active Expired - Fee Related
-
2007
- 2007-07-27 CN CN200780028014.2A patent/CN101496348B/zh not_active Expired - Fee Related
- 2007-07-27 WO PCT/US2007/016995 patent/WO2008016558A2/en active Application Filing
- 2007-07-27 EP EP07810896.6A patent/EP2047645B1/en active Active
Also Published As
Publication number | Publication date |
---|---|
EP2047645A4 (en) | 2011-10-19 |
CN101496348A (zh) | 2009-07-29 |
WO2008016558A3 (en) | 2009-04-16 |
EP2047645B1 (en) | 2013-09-11 |
US20080025309A1 (en) | 2008-01-31 |
WO2008016558A2 (en) | 2008-02-07 |
US8718060B2 (en) | 2014-05-06 |
EP2047645A2 (en) | 2009-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101496348B (zh) | 用于标签交换数据流量的多径转发的技术 | |
US20220376987A1 (en) | Segment routing: pce driven dynamic setup of forwarding adjacencies and explicit path | |
US10218610B2 (en) | MPLS segment routing | |
CN1973486B (zh) | 在采用受保护链路的数据网络中避免微环的方法和装置 | |
Ash et al. | Path computation element (PCE) communication protocol generic requirements | |
EP2659634B1 (en) | System and method for computing point-to-point label switched path crossing multiple domains | |
US9699087B2 (en) | System and method for reporting out-of-resources (OOR) conditions in a data network | |
US8462788B2 (en) | Method, system and network node for setting up a label switching path | |
CN108667681A (zh) | 用于多路径路由的路由跟踪 | |
TW201519603A (zh) | 在電腦網路中進行封包的多路徑路由選擇的裝置及其方法 | |
US20140269737A1 (en) | System, method and apparatus for lsp setup using inter-domain abr indication | |
Phung et al. | Internet acceleration with lisp traffic engineering and multipath tcp | |
EP4252399A1 (en) | Methods, apparatus and system for creating sr policy using path computation element protocol | |
CN103004149B (zh) | 用于在网络中确定等值路径的方法、网络装置和系统 | |
Marian et al. | Packet routing and information distribution in Multiprotocol Label Switching |
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: 20141126 Termination date: 20210727 |
|
CF01 | Termination of patent right due to non-payment of annual fee |