专利名称:用于选择路径计算元件的技术的制作方法
用于选择路径计算元件的技术
本发明涉及计算机网络,更具体而言,涉及选择用于计算通过计算机 网络的路径的路径计算元件。
背景技术:
计算机网络是通过用于在最终节点(例如个人计算机和工作站)之间 传输数据的通信链路和网段互连的节点的地理分布式集合。可获得很多类
型的网络,其类型从局域网(LAN)到广域网(WAN)都可能。LAN通 常通过位于同一总的物理位置(例如建筑物或校园)中的专用私有通信链 路来连接节点。另一方面,WAN通常通过长距离的通信链路来连接地理 上分散的节点,所述长距离的通信链路例如是常见的载波电话线路、光路 径、同步光网络(SONET)或同步数字分级(SDH)链路。因特网是 WAN的一个示例,其连接遍及世界各地的不同的网络,从而提供各种网 络上的节点之间的全球通信。节点通常通过根据预定协议(例如传输控制 协议/因特网协议(TCP/IP))交换离散的数据帧或分组来通过网络通信。 在此上下文中,协议由定义节点如何彼此交互的一组规则构成。
计算机网络可以通过中间节点(例如路由器)进一步互连,从而扩展 每个网络的有效"尺寸"。由于可以证实对互连的计算机网络的大系统的 管理很麻烦,因此可以维护计算机网络的较小群组,作为路由域或自治系 统。 一个自治系统(AS)内的网络通常通过传统的"域内"路由器耦合在 一起,所述"域内"路由器被配置用于执行域内路由协议并且一般受制于 一个公共机构。为了提高路由可扩展性,服务提供商(例如ISP)可以将 AS划分成多个"区域(area)"。但是,可能希望增大能够交换数据的节 点的数目;在此情况下,使用执行域间路由协议的域间路由器来互连各种 AS的节点。还可能希望互连在不同管理域中操作的各种AS。这里使用的连接不同区域或AS的路由器一般被称为边界路由器。在针对区域而非AS 的情况下,由于路由器受制于一个公共机构,因此单个路由器实际上可以 充当一个区域的出口边界路由器和另一区域的入口边界路由器。
域间路由协议的示例是边界网关协议版本4 (BGP),其通过在系统 的相邻域间路由器之间交换路由和可达性信息来在AS之间执行路由。邻 接性(adjacency)是出于交换路由信息消息和提取网络拓扑的目的而在所 选相邻(对等)路由器之间形成的关系。BGP —般基于可靠的传输协议
(例如传输控制协议(TCP))工作,以建立TCP连接/会话。BGP协议 是公知的,并且在1995年3月公布的题为"A Border Gateway Protocol 4 (BGP-4)"的请求注释(RJFC) 1771中对其有大体的描述,据此通过引用 将该RFC 1771结合于此。
域内路由协议或内部网关协议(IGP)的示例是开放最短路径优先
(OSPF)路由协议和中间系统-中间系统(ISIS)路由协议。OSPF和ISIS 协议都基于链路状态技术,因此统称为链路状态路由协议。链路状态协议 定义了路由信息和网络拓扑信息在AS或区域内被交换或处理的方式。该 信息一般针对域内路由器的本地状态(例如路由器的可用接口和可达的邻 居或邻接性)。在ISIS的情形中,该本地状态利用链路状态分组而被交 换,而在OSPF的情形中,信息利用链路状态通告(LSA)而被交换。术 语"LSA"在这里用来总地指代两种信息交换。OSPF协议在1998年4月 的题为"OSPF Version 2"的RFC 2328中有所描述,而ISIS协议在1990 年 12 月的题为 "Use of OSI ISIS for routing in TCP/IP and Dual Environments"的RFC 1195中有所描述,据此通过引用将这两个RFC结 合于此。
多协议标签交换(MPLS)流量工程己被开发,以满足数据联网需 求,例如有保障的可用带宽或快速恢复。MPLS流量工程利用了现代标签 交换技术,以通过标签交换路由器(LSR)的IP/MPLS网络建立带宽有保 障的端对端隧道。这些隧道是一种标签交换路径(LSP)并因此一般被称 为MPLS流量工程(TE) LSP。 MPLS TE的示例可以在2001年12月的题 为"RSVP-TE: Extensions to RSVP for LSP Tunnels"的RFC 3209, 2004年6月的题为"Intermediate-System-to-Intermediate-System (IS-IS) Extensions for Traffic Engineering (TE)"的RFC 3784以及2003年9月的题为"Traffic Engineering (TE) Extensions to OSPF Version 2"的RFC 3630中找到,据此 通过引用将这些文档的全部内容整体上结合于此。
从4立岸T.SR至卩尾端LSR的MPLS 丁E T SP的建立姊M诵衬L^R的网统
的路径的计算。最理想情况下,计算出的路径是以某种量度度量的满足所
有相关LSP流量工程限制的"最短"路径,所述LSP流量工程限制例如是
所需带宽、每条链路的备份绕道隧道和路径中包括的节点的可用性等等。
路径计算可以由头端LSR执行,也可以由作为路径计算元件(PCE)工作 的某个其他实体执行。头端LSR (或PCE)利用其关于网络拓扑和每条链 路上的可用资源的知识来根据LSP流量工程限制执行路径计算。可获得各 种路径计算方法,包括CSPF (受限的最短路径优先)。MPLS TE LSP可 被配置在单个IGP区域内,也可以跨越多个IGP区域或AS。
PCE是有能力计算其在AS或区域中知道的任何节点之间的路径的实 体。PCE之所以特别有用是因为它们更加了解它们的AS或区域内的网络 流量和路径选择,因此可被用于更好的路径计算。头端LSR还可能作为路 径计算客户端(PCC)工作,该PCC被配置用于向PCE发送路径计算请 求并接收带有计算出的路径的响应,该响应可能考虑到了来自其他PCC的 其他请求。重要的是要注意,当一个PCE向另一 PCE发送请求时,它充 当PCC。 PCE传统上对其周围区域或AS外部具有有限的可见性或不具有 可见性。PCC可以通过管理员的预配置或利用PCE发现(PCED)消息 ("通告")而得知PCE的存在,所述PCED消息是从PCE在其区域内 或穿过整个AS发送的,用于通告其服务。
穿越AS边界时出现的一个困难在于头端LSR处的路径计算需要头端 和尾端LSR之间整个网络上的资源和网络拓扑的知识。然而,在穿越AS 边界时,服务提供商通常不彼此共享该信息。头端LSR和任何单个PCE 都不具有足够知识来计算路径。鉴于此,为计算域间TELSP,需要MPLS
流量工程路径计算技术。在计算穿越区域的MPLS流量工程LSP的路径时 会出现类似问题。网络拓扑和资源信息一般不流过区域边界,即使单个服务提供商可以操作所有区域也是如此。
PCE的使用已经适合于创建分布式PCE体系结构,以便扩展MPLS TE LSP穿过AS或区域边界。这种分布式体系结构的示例在2003年9月 18日由Vasseur等人递交的题为"COMPUTING INTER-AUTONOMOUS
SYSTEM MPLS TRAFPTC PNnTNTEER 丁NG LSP PA丁卩S"白々共固》用右、共
同未决的美国专利申请No. 10〃67,574中有所描述,据此通过引用将该专 利申请的内容整体上结合于此。在分布式的PCE体系结构中,计算路径所 需的可见性被扩展到相邻区域和AS之间,从而使得多个PCE能够通过在 保持AS之间的机密性的同时交换虚拟最短路径树(VSPT)来协作计算穿 越多个区域或AS的路径。VSPT可被表示为由"宽松跳(loose hop)"构 成的虚拟链路,它之所以被使用是因为服务提供商可能希望使它们内部的 网络体系结构和设计保持机密。 一种计算VSPT的方法是使用虚拟最短路 径树(VSPT)算法。 一般而言,VSPT是一种压縮路径描述(区域/AS的 入口和出口/目的地点),其通知前一 PCE,可以以某种对相邻区域或AS 保密内部路径细节的方式从一个特定入口到一个特定出口 ,从而到达目的 地。构成VSPT的虚拟链路一般具有针对每个计算出的链路的相关网络成 本。应该注意,在工作在一个公共机构(例如唯一的服务提供商)下的多 个AS的上下文中,这样的虚拟链路还可以指定完整路径。 一组虚拟链路 可被进一步组织(按某些协议)在一个显式路由对象(ERO)内,以辅助 到前一 PCE的压缩路径描述的传输。
在某些区域或AS中,可能希望在同一相邻区域或者AS内使用多个 PCE,来减轻任何一个特定PCE上的负载并且避免任何单点故障。在这种 情形中,PCC可以通过多个PCED通告接收关于存在多于一个PCE的通 知。从而,请求利用VSPT算法计算路径(例如,MPLS域间流量工程 LSP)的PCC首先必须确定其可将其路径计算请求发送到哪个PCE。 PCE 除了向PCC通知其可以充当用于区域间和/或AS间流量工程路径计算的 PCE之外,还可以向PCC通知其路径计算能力,这一般是通过使用类型/ 长度/值(TLV)编码格式实现的。用于指定MPLS流量工程能力的TLV 编码格式的示例在2004年7月公布的"OSPF MPLS Tra迅c EngineeringCapabilities (draft-vasseur-ospf-te-caps.txt)"禾卩 "IS-IS Traffic Engineering Capabilities (draft-vasseur-isis-te-caps.txt)"中有所描述,这两个公开都是由 Vasseur等人作出的,并且都通过引用整体上明确地结合于此。这些计算 能力包括但不限于计算本地路径、区域间路径、多域路径等的能力。
然而,-在存在多个PCE "候选(candidate)"时,PCC不具有足够的 信息来基于PCE的实际可用的路径计算资源来适当地选择一个PCE。这可 能导致很不理想的选择,因为路径计算请求可能被导向过载的PCE,这会 导致增大路径计算时间(从而增大路径建立时间)。在当网络元件故障或 者恢复后大量请求被发送来重路由或者重优化许多路径的情形中尤其如 此。
因此,存在对用来通告PCE的可用路径计算资源的系统和方法,以及 供PCC基于这些资源另行选择最优的PCE的系统和方法的需求。
发明内容
本发明涉及用于高效地选择路径计算元件(PCE)来计算计算机网络 的节点之间的路径的技术。PCE选择技术例如是基于PCE的可用路径计 算资源的动态通告的,该动态通告是利用(i)低通滤波算法来计算这种 资源,和(ii)利用阈值确定来控制这种通告的分发,从而实现的。为 此,该新颖技术使得一个或多个PCE能够通过受控的通告来向路径计算 客户端(PCC)动态发送(通告)它们的可用路径计算资源。另外,该技 术还使得PCC能够基于这些可用资源来高效地选择一个PCE (或者一组 PCE)以服务路径计算请求。
根据本发明一个方面,PCE经由包含在通告中的负载量度来通告其可 用路径计算资源。注意,负载量度是代表例如PCE每秒可处理的请求数 目、请求的平均服务时间、可用处理(CPU)资源等的路径计算资源 (PCR) 。 PCE可能在指定的时间间隔上或者在预定的阈值确定(例如, 预定的低阈值或预定的增大或减小改变速率阈值)得到满足时,才发送这 些通告到PCC,从而反应出可用PCE路径计算资源的实质改变。本发明 的这个方面还包括低通滤波算法和阈值确定之间的相互作用,来限制由所通告的PCR所导致的可能的网络振荡。
在这里所述的示意性实施例中,受控的通告被实现为包含类型/长度/ 值(TLV)编码格式的链路状态通告(LSA),这些LSA通告PCE的各 种能力。根据本发明的另一个方面,新颖的子TLV (sub-TLV)被定义来 携带所通告的PCR。 PCR子TLV优选被包含在LSA的PCE发现 (PCED) TLV内。
响应于接收到动态通告的PCR, PCC基于所通告的PCE的能力和 PCR选择PCE来服务其路径计算请求。之所以考虑所通告的PCE的能 力,是因为并非所有的PCE都能够执行所请求的路径计算。在多个可用 PCE "候选"的情形中,所通告的PCR量度被用来选择适当的PCE来对 请求提供服务。此外,如果PCC请求与一组路径计算请求相联系的多个 路径计算,则这些请求可以在多个可用的PCE候选之间分配,以达到最 优的PCE响应时间。为此,本发明的这方面还提供了新颖的PCE选择算 法,该算法以与PCE候选所通告的PCR比率成比例的方式在PCE候选之 间对该组请求进行高效的负载平衡。
有利地是,该新颖的技术高效地选择了适当的PCE来计算网络节点 之间的路径,例如流量工程(TE)标签交换路径(LSP),从而减少TE LSP的建立时间。TE LSP建立时间对于TE敏感应用一般是关键的,因此 希望减少这些时间。通过选择适当的PCE,或者在多个PCE的情形中在 PCE之间对一组请求进行高效的负载平衡,消除了 PCE过载,从而减少 了所计算的路径的TE LSP建立时间。
通过结合附图参考以下描述,可以更好地理解本发明的以上和其他优
点,附图中类似标号指示相同或功能上类似的元件
图1A是可以根据本发明使用的自治系统的示例性计算机网络的示意 性框图1B是可以根据本发明使用的区域的示例性计算机网络的示意性框
图;图2是可被有利地与本发明一起使用的示例性路由器的示意性框图; 图3是示出了可被有利地与本发明一起使用的编码格式的示意性框
图4是根据本发明的不同的通告路径计算资源(PCR)值的图示; 图5是示出了根据本发明用于确定何时从路径计算元件(PCE)发送 PCR的步骤序列的流程图;以及
图6是示出了根据本发明用于选择一个或多个PCE的步骤序列的流程图。
具体实施例方式
图1A是包括自治系统AS2的示例性计算机网络100a的示意性框 图,其中自治系统AS2与多个其他自治系统AS1、 AS3和AS4互连。自 治系统(AS)在这里被定义为网络内的一组中间节点(例如域内路由 器),它们受制于同一机构并执行一种或多种域内路由协议。虽然每个 AS被示为自治系统,但本领域技术人员将意识到,AS也可被配置为路 由域或其他网络或子网。自治系统AS1包括诸如边界路由器ASBRP和 ASBR2^之类的域内路由器,通过这些边界路由器,通信(例如数据分 组)可分别进入该自治系统和离开该自治系统到AS2的边界路由器 ASBR3和ASBR4。 AS2还包括边界路由器ASBR5,Q ASBR6*,它们分 别与AS3和AS4的边界路由器ASBR7^^和ASBR8^^通信。此外,在 AS1、 AS2、 AS3和AS4内,分别存在示例性的域内路由器A、 B、 C和 D。本领域技术人员将会理解,在AS中可以使用任何数目的路由器,并 且这里的视图是出于简化目的而示出的。
数据分组可以利用预定的网络通信协议在自治系统AS1-AS4之间交 换,所述网络通信协议例如是传输控制协议Z因特网协议(TCP/IP)、用 户数据报协议(UDP)、异步传输模式(ATM)协议、帧中继协议、因 特网分组交换(IPX)协议等等。路由信息可以通过使用链路状态通告 (LSA)或链路状态分组而利用预定的"内部"网关协议(IGP)在AS 内的路由器间被分发,所述IGP例如是传统的距离向量协议或链路状态协议。另外,包含网络路由信息的数据分组可以利用"外部"网关协议在自
治系统AS1-AS4间被交换,所述"外部"网关协议例如是边界网关协议 (BGP)。
图1B是包括区域Al、 A2和A3的示例性计算机网络100b的示意性 框图;其中每个区域分别具有至少一个域内路由器A、 B禾BC。另外;Al 和A2共享边界路由器ABR"和ABR2*,而A2禾Q A3共享ABR3f和 ABR4。这里使用的区域是彼此间共享全部网络拓扑信息但不一定与区域 外的路由器共享全部网络拓扑信息的路由器的集合。这里使用的术语"区 域"还涵盖了术语"级别(level)",其对于采用IS-IS作为IGP的网络 而言具有类似的意义。这些示例都仅仅是代表性的。此外,下面参考AS 间路径计算所描述的技术可以在区域间路径计算的上下文中使用,并且在 某些情况下,参考区域间路径计算描述的技术可被用于AS间路径计算。 本领域技术人员将意识到,在提及自治系统之处都同样可以使用区域。
图2是可作为域内路由器或边界路由器而有利地与本发明一起使用的 示例性路由器200的示意性框图。该路由器包括通过系统总线250互连的 多个网络接口 210、处理器220和存储器240。网络接口 210包含用于通 过耦合到网络100a、 b的物理链路传输数据的机械、电气和信令电路。网 络接口可被配置为利用各种不同的通信协议发送和/或接收数据,所述通 信协议包括TCP/IP、 UDP、 ATM、同步光网络(SONET)、无线协议、 帧中继、以太网、光纤分布数据接口 (FDDI)等等。
存储器2邻包括处理器220和网络接口 210可寻址的多个存储位置。 处理器220可以包括适合于执行软件程序和操纵数据结构的必需的元件或 逻辑。路由器操作系统242通过调用支持在路由器上执行的诸如 PCC/PCE进程245之类的软件进程的网络操作等方式来在功能上组织路由 器,其中所述路由器操作系统242的某些部分通常位于存储器240中并由 处理器执行。本领域技术人员将意识到,可以使用其它处理器和存储器装 置(包括各种计算机可读介质)来存储和执行与这里描述的发明技术相关 的程序指令。
在一个实施例中,这里描述的路由器是实现多协议标签交换(MPLS)并作为标签交换路由器(LSR)工作的IP路由器。在一种简单 的MPLS情形中,在网络的入口处,基于分组的转发等价类向每个传入的 分组分配标签,然后再将分组转发到下一跳路由器。在每个路由器处,通 过使用在传入分组中找到的标签作为参考查阅包括该信息的标签转发表来 确定转发选择和新的替换标签。在网络出口处(或其前一跳),基于传入 的标签来执行转发判决,但是可选地,当分组被发送到下一跳时,没有包 括标签。
以这种方式穿越网络的分组所经过的路径被称为标签交换路径 (LSP) 。 LSP的建立需要路径的计算、沿该路径发送信令,以及沿该路 径修改转发表。MPLS流量工程建立了在某些情况下具有有保障的带宽的 LSP。
虽然这里描述的示例性实施例针对MPLS,但是应该注意,本发明可 以有利地应用到广义MPLS (GMPLS),其不仅与基于分组和信元的网 络相关,还与时分复用(TDM)和光网络相关。GMPLS是公知的,并且 在2004年10月的题为"Generalized Multi-Protocol Label Switching (GMPLS) Architecture"的RFC 3945以及题为"Generalized Multi-Protocol Label Switching (GMPLS) Extensions for Synchronous Optical Network (SONET) and Synchronous Digital Hierarchy (SDH) Control"的RFC 3946中 有所描述,这两个RJFC的内容通过引用被整体上结合于此。
为了计算穿过多个区域或AS的路径,以上引用的美国申请No. 10/767,574描述了在分布式路径计算元件(PCE)体系结构中使用虚拟最 短路径树(VSPT)算法,该申请已被通过引用结合于此。根据VSPT算 法,对于AS间路径计算示例(例如图1A中),PCC (路由器A)首先 向其AS中的已知本地PCE (例如ASBR1*)发送路径计算请求,以计算 到诸如AS3中的路由器C之类的目的地(例如尾端LSR)的路径。作为 示例,图1A和IB中标记了 "*"的边界路由器是能够实现PCE的边界路 由器。本地PCE的地址可以手工配置。或者,PCE可以通过在AS内泛播 (flooding)来通告其自身。根据以上引用结合的Vasseur等人的"OSPF MPLS Tra伍c Engineering Capabilities",路径计算元件发现(PCED)技术可被使用。PCED消息可以包括PCE能力的指示,PCE能力例如是计算本 地路径、区域间路径、AS间路径、多域路径、多样路径等等的能力。在 所示实施例中,通常通过使用类型/长度/值(TLV)编码格式,PCED可 以被包含在传统的OSPF LSA内。
图3是示出了可以有利地与本发明一起使用的TLV编码格式的示意 性框图。TLV编码格式是一种一般的方式,用于在诸如路由器之类的节点 之间传输信息,其中该信息对于一个路由器可能不是完全已知的。TLV "属性"300被用来标识正被传输(传递)的信息的类型(T)、要被传 递的信息的长度(L)和所传递的实际信息的值(V)。长度字段310中 包含的长度(L)参数一般是特定于实现方式的,并且可以表示从属性 300的类型字段305的开头到结尾的长度。但是,长度一般表示值(V) 字段315的长度,而不表示类型(T)或长度(L)字段的长度。
如上所述,TLV编码的格式在通告PCE的能力时被用来在LSA内携 带PCED。 PCED TLV包括在TLV "有效载荷"(例如,值字段315)内 携带的一组无序子TLV,它们定义了 PCE能力。如这里进一步描述的, 根据本发明的一个方面,新颖的子TLV 350被定义来携带新的PCE能 力。
路径计算请求(和响应)可以根据2004年7月Vasseur等人在因特网 草案"RSVP Path Computation Request and Reply Messages"中指定的协议 来执行,该草案通过引用被结合于此,就好像在这里被完整提出一样。随 后路径计算请求被传递到在到达目的地途中的每个AS (AS1、 AS2、 AS3)中的PCE。如本领域技术人员容易设计出的,关于其他PCE地址的 知识可以通过静态配置或BGP通告来获取。应该理解,RSVP的使用仅作 为示例,根据本发明,可以使用其他通信协议。
一旦路径计算请求到达,包含目的地(路由器C)的最终AS (AS3)中的PCE (ASBR7*)就计算VSPT,该VSPT是以目的地为根并 且包括从该目的地到区域的每个边界路由器的满足一组所需限制的最短路 径的集合的最短路径树。这可以利用本领域已知的CSPF (受限最短路径 优先)算法或任何其他合适的算法来计算。最终区域的PCE随后利用虚拟链路(或"宽松跳")将VSPT发送到前一 AS (AS2)的PCE (ASBR5*)。可选地,VSPT以使得AS内部的跳和它们的成本保持机密 的方式使用宽松跳。宽松跳可以具有单个相关成本,该相关成本是内部成 本的组合或代表。如果找到多个相等成本的路径,PCE则可以将它们中的 某些或全部提供给发出请求的PCC。 PCE可能返回多于一条路径的其他 情况包括例如当PCC请求计算多样路径时。这些多样路径可能具有或不 具有相等的成本。
前一 AS中的PCE (ASBR5*)现在重复VSPT算法,并将其接收自 最终PCE (ASBR7*)的VSPT与其自己的AS (AS2)的拓扑(包括AS 间链路)连接起来以计算新路径。该过程在所有AS中重复,直到响应到 达发端PCC (路由器A)为止。出于这个原因,VSPT算法被称为"递归 式后向路径计算"。
当上述过程在发端PCC处完成时,响应中的路径由沿该路径到目的 地的一系列跳组成。注意,只要在网络将被保持机密的情况下,跳就可以 是宽松的。在此情况下,计算出的完整路径可被认为是通过AS的基本路 径,该基本路径只包含每个机密AS的入口和出口点。以下是这种计算出 的路径的内容的示例,也称之为显示路由对象(ERO) : "ASBR1*, ASBR3,ASBR5*(L),ASBR7*,路由器C(L)",其中"(L)"指宽松跳。然 后,PCC可以通过在计算出的路径上(在ERO中)向其区域或AS的出 口边界路由器转发路径建立请求来建立到目的地的隧道(例如LSP)。应 该理解,在区域体系结构中,出口边界路由器是下一区域的入口边界路由 器。该下一边界路由器随后计算到ERO中的下一宽松跳所指定的下一出 口边界的特定路径。该出口边界路由器随后根据ERO重复该过程,直到 再次到达目的地为止,并且根据本领域己知的方法隧道被创建。
本发明涉及用于高效地选择PCE来计算计算机网络的节点之间的路 径的技术。PCE选择技术例如是基于PCE的可用路径计算资源的动态通 告的,该动态通告是利用(i)低通滤波算法来计算这种资源,禾n (ii)利 用阈值确定来控制这种通告的分发,从而实现的。为此,该新颖技术使得 一个或多个PCE能够通过受控的通告来向PCC动态发送(通告)它们的可用路径计算资源。另外,该技术还使得PCC能够基于PCE的能力及其 可用资源来高效地选择一个PCE (或者一组PCE)以服务路径计算请 求。
PCE通告
根据本发明一个方面,PCE经由通告中包含的负载量度通告其可用路 径计算资源。注意,负载量度是代表例如PCE每秒可处理的请求的数 目、请求的平均服务时间、可用处理(CPU)资源等的路径计算资源
(PCR)。重要的是要注意到,针对本发明给出的示例可以使用一种量度 或者另一种量度,并且任何量度都可以以相同的方式被使用,并且仍在本 发明的保护范围内。尽管不是必须的,但是为了易于比较,还是希望在网 络中的每个PCE处都使用相同的PCR量度。
在这里所述的示例性实施例中,受控的通告被实现为包含TLV编码 格式的LSA,这些LSA通告PCE的各种能力。根据本发明的另一个方 面,新颖的子TLV被定义来携带所通告的PCR。 PCR子TLV优选地被包 含在LSA的PCE发现(PCED) TLV内。PCR子TLV具有预定的类型 352和长度354,并且长度354取决于值字段356中包含的PCR的内容。 这些通告与上面讨论的PCED消息类似,并且是动态的,因为随着PCE 工作信息会被刷新。
在初始化(引导)时,PCE不通告任何PCE能力,直到PCE进程 245 (或者在单进程操作系统的情形中是全局进程)可以使其处理器
(CPU)共享为止,以避免在PCE仍处于某个初始化阶段中的同时接收 到路径计算请求。重要的是要注意,这可以通过显式通知来实现,或者通 过利用PCR通告没有可用性来实现。在PCE首次被加载时,系统管理员 可以设置PCE可用性的某些配置,这些配置可被用作PCR负载量度。例 如,在图1A中,ASBR卩可被配置来贡献其20 %的CPU资源用于PCE 进程245。作为示例,该配置可以作为来自ASBR卩的PCR被通告为20 %的CPU可用性,或者被通告为特定的量度(例如,每秒IOO个请求的 可用性)。每个PCE可以被配置为具有不同的资源限额,但重要的是要 注意,每个PCE可能没有相等的资源供分发。换言之,在图1A中,ASBR"和ASBR2^可以都贡献20%的CPU资源,但是对于ASBR2^这可 能仅导致每秒20个请求的可用性,而ASBR卩是每秒100个请求。根据 本发明,在PCE接收来自一个或多个PCC的路径计算请求时,该PCE就 更新量度,并且通告更新后的新的PCR。例如,如果原始PCR是每秒 100个请求可用性;并且每秒接收到20个PCC请求,则新的PCR将是每 秒80个请求可用性。
根据本发明一个方面,PCE采用与低通滤波类似的算法,基于前一 PCR值(PCR—old)和当前PCR值(PCR—new)来确定要通告的当前 PCR的值
PCR= (1—xl) PCR一old+(xl)PCR一new
为了确定在PCR的发送中允许的改变程度,可配置变量、r被使
用,并且可由例如PCE的系统管理员设置。在上式中,xl的范围可以从 0到1。较大的xl的值将导致更精确的PCR和对可用性的更快的反应。 这种较大的值还可能导致振荡,如下所述。较小的xl的值是更保守的方 法,这种方法将导致更平滑的PCR平均。例如,在该式中,使用值为0.2 的xl,同时PCR—old为每秒IOO个请求,PCR—new为每秒80个请求,则 得到
PCR二 (0.8*100) +(0.2*80)
使得
PCR=96
从上可见,使用PCR—old值的80%和PCR—new值的20%,这导致每 秒96个请求的PCR值。这个值的xl产生了对PCR的保守的改变,这是 因为使用了更多的先前的值。本领域技术人员应当理解,上面的式子是示 例,也可以使用其他式子或算法,例如,包括使用不同的PCR_old和 PCR—new的变量,这种等式都在本发明的范围内。
通过发送当前PCR,在PCR被通告时,对等PCC可获知对PCE可用 性的精确度量。在一些情形中,例如在网络针对精度被设计并且被装备来 处理可能发生的任何振荡时,这是一个所希望的特性。振荡可能如何发生 的一个示例如下。假设第一 PCE发送一个通告每秒100个请求的可用性的PCR。在接收到该PCR后,对等PCC可能快速发送99个请求,剩下 仅1个请求的可用性。如果第一 PCE立即发送一个指示其每秒仅可以再 接收一个请求的PCR,则对等PCC可以选择第二 PCE并且重定向它的请 求。在这种有些极端的示例中,第一 PCE将再次具有每秒100个请求的 可用性,而第二 PCE将被请求所淹没,并且该循环将重复进行。在振荡 程度没有那么极端的网络中,这可能是可接受的特征。
但是, 一些网络体系结构可能希望具有有限的PCE选择流量振荡。 太多的振荡可能导致网络控制平面扰动,其中系统的改变速率太快以至于 不能控制和跟上改变,这可能导致网络中的PCE上的不稳定性。为了减 轻这种情况,PCE可能在指定的时间间隔上或者在预定的阈值确定(例 如,预定的低阈值或预定的增大或减小改变速率阈值)得到满足时,才发 送这些通告到PCC,从而反应出可用PCE路径计算资源的实质改变。本 发明的这个方面还包括低通滤波算法和阈值确定之间的相互作用,来限制 由所通告的PCR所导致的可能的网络振荡。
在图4所示的图示中可以看到不同值的xl可以如何影响所通告的 PCR值的示例。在图4中,当前PCR值随时间被示为振荡样式的实线。 根据上述示例式子,对照PCE的实际PCR绘出了 xl的两个独立的值; 0.2被示为虚线,0.6被示为点线。可清楚地看出,0.6的点线更接近地反 映出PCR的实际值,从而产生了基本类似的振荡效果。尽管这是一条更 准确的线,但是一些网络可能未被配备来处理这种振荡。通过使用等于 0.2的xl值,从虚线可见所通告的PCR比实际PCR更平坦并且具有更少 的振荡。应当理解,图4仅作为示例示出,并且当前PCR值线可能不代 表根据本发明中所阐述的PCE选择方法对先前的PCR值的实际网络反 应。
图5是示出了用于确定何时从PCE发送PCR (LSA通告)的步骤序 列的流程图。序列500开始于步骤505然后前进到步骤510,在该步骤 中,PCE进程245执行检查来确定所定时的发送是否到期。应当注意,用
于发送通告的方法可以是在定时的间隔上发送,例如,每毫秒、每秒、每 分钟等。如果所定时的发送到期,则承载PCR的通告在步骤515中被发送。尽管该方法是功能性的,但是其未很好地解决PCR的改变速率。例 如,尽管可能希望更频繁地发送LSA内包含的PCR,但是实现了 IGP (或PCE)的路由器可以被配置为每半小时一次地发送传统的LSA。如 果改变较快并且时间间隔较长,则直到下一次发送为止的延迟可能太慢以 至于不能适应适当的调整。如果改变速率较慢并且时间间隔较短,则通告 可能在网络中产生过多的并且不必要的控制平面扰动。因此,序列500提 供了替换的阈值确定。
具体而言,步骤520到530被提供来补偿PCR值的动态改变。在歩 骤520处,PCE进程245确定低阈值是否得到满足(达到)。如果是,则 PCE在步骤515中发送PCR。达到该低阈值允许PCE迅速发送通知,以 便立即减少接收自PCC的路径计算请求的数目。出于对本领域技术人员 显而易见的原因,在这种情况下不等到PCE无法处理任何其他请求是有 利的。相反,管理员可以挑选代表剩余可用请求的数目的低阈值来防止 PCE利用其100%的可用资源。应当注意,在这种情形或任何情形中, PCE可以发送通告O个剩余资源的PCR,以停止接收任何路径计算请求。 一个这种情形是在上述初始化阶段中。
如果阈值没得到满足,则在步骤525中,PCE进程检查可用资源的减 小是否大于等于预设的减小量、2'。如果该预设的减小量得到满足,则 PCE在步骤515中发送新的PCR。例如,如果前一PCR值是每秒80个请 求,并且x2被设置为25%的改变,则新的PCR为每秒60个请求或者更 少时,PCR被发送。该阈值是有利的,因为它限制了管理员可能确定为不 必要的流量的发送。例如,如果前一PCR是每秒80个请求,并且新PCR 仅减小到每秒79个请求,在可能不希望发送这种PCR值的最小改变。应 当注意,预设的减小量x2也可能被设置为低于前一 PCR的某个量,例如 对于上述示例为每秒20个请求的改变,或者其他改变速率确定。
另一方面,如果在步骤530中可用资源已增大,则PCE进程检査改 变是否大于等于预设的增大量、3,。再次使用上述示例,如果x3被设 置为25%的改变,那么一旦新的PCR值达到每秒IOO个请求或者更大, 则在步骤515中发送新的PCR。同样,预设的增大量也可以被设置为比前一 PCR值大的某个量或者其他改变速率确定。本领域技术人员应当理 解,预设的减小和增大量x2和x3可以被设置为不同的值。例如,可能希 望将预设的减小量设置为比预设的增大量小的百分比,因为与可用资源的 快速增大相比,可能更希望通告可用资源的快速减小,这样作的原因本领 域技术人员都能理解。该序列然后返回到步骤510。 PCE选择
基于动态通告的PCR, PCC基于通告的PCE的能力和PCR,选择 PCE来服务其路径计算请求。之所以考虑所通告的PCE的能力,是因为 并非所有的PCE都能够执行所请求的路径计算。在多个可用PCE "候 选"的情形中,所通告的PCR量度被用来选择适当的PCE来对请求提供 服务。此外,如果PCC请求与一组路径计算请求相联系的多个路径计 算,则那些请求可以在多个可用的PCE候选之间分配,以达到最优的 PCE响应时间。为此,本发明的这方面还提供了新颖的PCE选择算法, 该算法以与PCE候选所通告的PCR比率成比例的方式在PCE候选之间对 该组请求进行负载平衡。
图6是示出了根据本发明用于选择一个或多个PCE的步骤序列的流 程图。序列600开始于步骤605并且继续到步骤610,在该步骤中,PCC 排除某些例如已通告了 O个可用资源的PCE。如果路径计算请求具有PCE 未被配备来处理的特性,则该PCE也可以被排除。例如,某些PCE可能 不能满足路径多样性计算。这种能力一般可以在PCED LSA (通告)中被 通告,如上所述。
一旦从选项中移除了任何不可用的PCE,则在步骤615中PCC进程 245进行检查来确定是否仍有任何PCE候选。如果没有,则在步骤620 中,PCC可以采用用于路径计算的替代装置,例如本领域已知的松散路径 路由或者其他。如果在步骤615中存在至少一个PCE可用,则确定是否 存在要从中选择的多个PCE (步骤625)。如果仅有一个PCE可用,则在 步骤630中该PCE被选择。例如,在图1B中,尽管路由器C可将 ABR3^^或ABR4用作边界路由器,但是仅ABR3^皮配置为PCE。因此, 路由器C仅可以将ABR3付兆选为PCE,所以路由器C或者选择ABR3*,或者不使用PCE。相反,在图1B中,路由器A可以选择ABR卩或 ABR2M乍为PCE来服务到路由器C的路径的请求。重要的是还要注意, 可用PCE还必须能够访问目的地以便成为可行的选项。再参考图IA,可 见如果路由器B试图到达路由器D,则唯一可用的PCE是ASBR6*,因 为-4816115*不能访问包含了目的地路由器D的A入S4。
如果确定出多于一个PCE可用(步骤625),则在步骤635中PCC 计算其希望发送出的路径计算请求的数目。如果请求的数目不等于两个或 更多个请求(即,单个请求),则在步骤640中PCC进程245基于PCR 挑选最佳的PCE。在该步骤中,最佳PCE可能是已通告了具有表明最高 可用性的负载量度(例如,每秒可用请求最高,或者平均请求响应时间最 低等)的PCR的PCE。另一方面,如果请求的数目等于两个或者更多, 则在步骤645中,可以基于所通告的PCR值在多个PCE之间执行负载平 衡,来确定哪些PCE接收哪些请求。例如,如果在图1A中路由器A已接 收到来自PCE ASBR"和ASBR2^勺分别为每秒100个请求的可用性和每 秒50个请求的可用性的PCR,则路由器A以大约与PCR成比例(2:1) 的方式对其到这两个PCE的请求进行负载平衡。在该示例中,如果路由 器A具有12个请求,则其将发送8个到ASBR", 4个至l」ASBR2、如果 请求的数目不成正比例,则可以执行凑整(例如,IO个请求可以被划分 成6个和4个,或者7个和3个,等等)。也可以使用其他的已知的负载 平衡技术,并且这些方法都在本发明的保护范围内。 一旦确定了哪些请求 被发送到哪些PCE,或者如果使用了替换路径计算方法,则该序列在步骤 650结束。PCC然后可以利用上述基于PCE的路径计算协议来获得所期望 的路径。
有利地是,该新颖技术高效地选择了适当的PCE来计算网络节点之 间的路径,例如流量工程(TE)标签交换路径(LSP),从而减少TE LSP的建立时间。TE LSP建立时间对于TE敏感应用一般是关键的,因此 希望减少这些时间。通过选择适当的PCE,或者在多个PCE的情形中在 PCE之间对一组请求进行高效的负载平衡,消除了 PCE过载,从而减少 了计算出的路径的TE LSP建立时间。上面的描述针对本发明的特定实施例。但是,显而易见的是,可以对 所述实施例执行其他变化和修改,同时仍实现本发明的某些或全部优点。 例如,可以明确设想,本发明的教导可被实现为软件(包括具有在计算机 上执行的程序指令的计算机可读介质)、硬件、固件或它们的组合。因 此,这里的描述将仅被视为示例性的,而并非限制本发明的范围。因此, 所附权利要求书的目的是要覆盖落入本发明的精神和范围内的所有这样的
权利要求
1. 一种用于高效地选择一个或多个路径计算元件(PCE)来计算计算机网络的节点之间的路径的方法,该方法包括以下步骤在所述网络中的路径计算客户端(PCC)处接收动态通告的所述PCE的可用路径计算资源;以及基于所述可用资源高效地选择所述一个或多个PCE来服务所述PCC的路径计算请求。
2. 如权利要求1所述的方法,其中,所述路径计算资源作为代表与所 述资源相关的负载量度的路径计算资源(PCR)被动态通告。
3. 如权利要求2所述的方法,其中,所述选择步骤包括基于所通告的 所述PCE的能力和所通告的PCR选择PCE来服务所述路径计算请求的步 骤。
4. 如权利要求3所述的方法,其中,所述选择步骤包括基于所通告的 能力排除不能执行所请求的路径计算的PCE的步骤。
5. 如权利要求3所述的方法,其中,所述选择步骤还包括与所通告的 所述PCE的PCE比率成比例地在一个或多个可用PCE之间分配请求的步 骤。
6. —种用于高效地选择路径计算元件(PCE)来计算计算机网络的节 点之间的路径的方法,该方法包括以下步骤计算所述PCE的可用路径计算资源;经由通告向所述网络中的路径计算客户端(PCC)动态通告所述可用 路径计算资源;以及控制所述通告的分发。
7. 如权利要求6所述的方法,其中,所述可用路径计算资源通过受控 的通告被动态通告。
8. 如权利要求6所述的方法,其中,所述动态通告的步骤还包括生成 代表与所述资源相关的负载量度的路径计算资源(PCR)。
9. 如权利要求8所述的方法,其中,所述负载量度是从包括以下量度的组中选出的所述PCE每秒可处理的请求数,请求的平均服务时间,可用处理(CPU)资源,以及请求的平均计算时间。
10. 如权利要求6所述的方法,其中,所述控制分发的步骤还包括在 指定的时间间隔上将通告发送到所述PCC。
11. 如权利要求6所述的方法;其中,-所述控制分发的步骤还包括在 预定的阈值确定得到满足时将通告发送到所述PCC。
12. 如权利要求11所述的方法,其中,所述确定的阈值是从包括以下 阈值的组中选出的低阈值、增大改变速率的阈值、以及减小改变速率的 阈值。
13. 如权利要求6所述的方法,其中,所述控制分发的步骤还包括利 用低通滤波算法来限制由所动态通告的路径计算资源所导致的可能网络振 荡的步骤。
14. 如权利要求6所述的方法,其中,所述动态通告的步骤还包括将 所述通告实现为包含类型/长度/值(TLV)编码格式的链路状态通告(LSA),所述链路状态通告通告所述PCE的各种能力。
15. 如权利要求14所述的方法,其中,所述实现步骤还包括在所述 TLV内定义子TLV,用于携带所述动态通告的路径计算资源。
16. —种配置来高效地选择一个或多个路径计算元件(PCE)来计算计 算机网络的节点之间的路径的系统,该系统包括网络接口,用来在所述网络中的路径计算客户端(PCC)处接收动态 通告的所述PCE的可用路径计算资源; 处理器;以及PCC进程,其由所述处理器执行,以基于所述可用资源高效地选择所 述一个或多个PCE来服务所述PCC的路径计算请求。
17. —种适于高效地选择一个或多个路径计算元件(PCE)来计算计算 机网络的节点之间的路径的装置,该装置包括用于在所述网络中的路径计算客户端(PCC)处接收动态通告的所述 PCE的可用路径计算资源的装置;以及用于基于所述可用资源高效地选择所述一个或多个PCE来服务所述PCC的路径计算请求的装置。
18. —种用于高效地选择路径计算元件(PCE)来计算计算机网络的节 点之间的路径的装置,该装置包括用于计算所述PCE的可用路径计算资源的装置;用于经由通告向所述网络中的路径计算客户端(PCC)动态通告所述可用路径计算资源的装置;以及用于控制所述通告的分发的装置。
19. 一种包含可执行程序指令的计算机可读介质,所述可执行程序指 令用于高效地选择一个或多个路径计算元件(PCE)来计算计算机网络的 节点之间的路径,所述可执行程序指令包括用于执行以下步骤的程序指在所述网络中的路径计算客户端(PCC)处接收动态通告的所述PCE 的可用路径计算资源;以及基于所述可用资源高效地选择所述一个或多个PCE来服务所述PCC 的路径计算请求。
20. —种包含可执行程序指令的计算机可读介质,所述可执行程序指 令用于高效地选择一个或多个路径计算元件(PCE)来计算计算机网络的 节点之间的路径,所述可执行程序指令包括用于执行以下步骤的程序指计算所述PCE的可用路径计算资源;经由通告向所述网络中的路径计算客户端(PCC)动态通告所述可用 路径计算资源;以及控制所述通告的分发。
全文摘要
一种技术高效地选择路径计算元件(PCE)来计算计算机网络的节点之间的路径。PCE选择技术例如是基于PCE的可用路径计算资源的动态通告的,该动态通告是利用(i)低通滤波算法来计算这种资源,和(ii)利用阈值确定来控制这种通告的分发,从而实现的。为此,该新颖技术使得一个或多个PCE能够通过受控的通告来向路径计算客户端(PCC)动态发送(通告)它们的可用路径计算资源。另外,该技术还使得PCC能够基于这些可用资源来高效地选择一个PCE(或者一组PCE)以服务路径计算请求。
文档编号G06F15/173GK101432720SQ200580031042
公开日2009年5月13日 申请日期2005年11月3日 优先权日2004年11月5日
发明者戴维·D·沃德, 斯特凡诺·B·普雷维蒂, 让·菲利普·瓦瑟尔, 马萨拉杰·斯瓦巴兰 申请人:思科技术公司