基于链路利用率的分段路由流量工程的制作方法

文档序号:22260196发布日期:2020-09-18 14:26阅读:155来源:国知局
基于链路利用率的分段路由流量工程的制作方法

本公开内容总体上涉及联网系统和方法。更具体地,本公开内容涉及基于链路利用率的分段路由(sr)流量工程(sr-te)。



背景技术:

分段路由(sr)是一种实现源路由范式的技术。数据包报头包括称为段的功能标识符的栈,其定义了要应用于数据包的功能的有序列表。段能够表示拓扑的或基于服务的任何指令。段能够具有sr节点的本地语义或sr域内的全局语义。这些功能包括但不限于要连续应用于数据包的转发行为,尤其是经由一系列明确列举的节点(域唯一节点段)和链路(邻接段)的基于目的地的单播转发等等。sr使得能够强制流通过任何拓扑路径和服务链,同时仅在sr域的入口节点处维持每个流状态。例如,在日期为2017年12月20日并且题目为“segmentroutingarchitecture”的互联网工程任务组(ietf)草案draft-ietf-spring-segment-routing-14中描述分段路由,其内容通过引用并入本文(可在tools.ietf.org/html/draft-ietf-spring-segment-routing-14在线获取)。分段路由的特别吸引人之处在于它减少了在核心网络中安装和维持任何端到端(e2e)路径状态的需要。只有特定流的入口节点需要保持被应用为该流的每个数据包的报头的段栈,以限定其通过网络的路由。这使得分段路由特别适合于由软件定义网络(sdn)模型控制。

分段路由能够在不改变转发平面的情况下直接应用于多协议标签交换(mpls)。段被编码为mpls标签。段的有序列表被编码为标签的栈。要处理的段在栈的顶部。段完成后,相关标签从栈弹出。分段路由还能够应用于互联网协议(ip)v6架构,其具有新型路由扩展报头—例如,于2015年7月公布的draft-previdi-6man-segment-routing-header(可在tools.ietf.org/html/draft-previdi-6man-segment-routing-header-07在线获取)的文档,其全部内容通过引用并入本文。段被编码为ipv6地址。段的有序列表在路由扩展报头中被编码为ipv6地址的有序列表。路由扩展报头中的指针指示了要在沿着通过网络的路径的任何点上处理的段。段完成后,指针递增。分段路由还能够应用于以太网,例如ieee802.1及其变体。sr有各种优势,包括例如可扩展的端到端策略、易于并入ip和sdn架构、操作简便、在分布式智能、集中优化和基于应用程序的策略创建之间的的平衡等等。

此外,分段路由能够包括流量工程,例如在流量工程的分段路由策略draft-filsfils-spring-segment-routing-policy-04.txt(2017年12月)(可在tools.ietf.org/html/draft-filsfils-spring-segment-routing-policy-04在线获取)中所描述的,其内容通过引用并入本文。同样,分段路由(sr)使得头端节点能够沿着任何路径引导数据包流。中间的每个流状态由于源路由而被消除。头端节点被认为将流引导到分段路由策略(sr策略)中。在sr策略中引导的数据包的报头增加了与该sr策略相关联的段的有序列表。



技术实现要素:

在基于链路利用率的分段路由流量工程(sr-te)方面尚无已知的工作,也就是说,在耗尽/拥塞下为新的/现有服务确定新的sr隧道,并且当出现未充分利用时,重新组合现有服务以消除空sr隧道。基于利用率的sr-te的缺点之一在于要执行全局优化流量工程可能需要中央智能,例如sdn控制器。启用基于利用率的sr-te而不需要集中控制将是有利的。

在一个实施例中,用于网络中的分段路由(sr)流量工程(sr-te)的方法包括在标签边缘路由器(ler)处接收链路利用率测量结果,其中链路利用率测量结果由一个或更多个标签交换路由器(lsr)泛洪;以及,响应于基于接收到的链路利用率测量结果而检测到与ler处的sr隧道相关联的一个或更多个链路上的拥塞和未充分利用中的一者或更多者,在ler处执行一个或更多个操作以实现拥塞的缓解和未充分利用的重新优化中的一者或更多者。该方法还能够包括,响应于检测到充分利用,确定避免充分利用的和/或拥塞的链路的最短sr隧道。sr隧道的状态通过在ler处分配的标签栈仅维持在ler处,其中标签栈包括节点分段id(sid)和邻接sid中的一个或更多个。分段id通过内部网关协议(igp)泛洪,并且网络中的每个节点考虑链路利用率测量结果来确定到每个其他节点的最短路径,其中一个或更多个操作能够包括使用邻接sid偏离sr隧道的最短路径。

链路利用率测量结果能够通过具有附加语义的现有内部网关协议(igp)流量工程(te)扩展来泛洪以确定拥塞。当最大可预留带宽大于或等于最大带宽时能够确定拥塞。响应于ler检测到拥塞,一个或更多个操作能够包括丢弃在与sr隧道相关联的一个或更多个服务上的多余流量。响应于ler检测到拥塞,一个或更多个操作能够包括确定另一个sr隧道,并且将一个或更多个服务移动到另一个sr隧道。响应于ler检测到未充分利用,一个或更多个操作能够包括将一个或更多个服务移动到sr隧道并且消除一个或更多个其他sr隧道。该方法还能够包括,响应于检测到拥塞而基于ler与拥塞链路之间的距离来实现定时器设置;以及如果拥塞仍然存在,则在定时器期满之后实现一个或更多个操作。链路利用率测量结果能够基于多个服务等级进行管理,所述多个服务等级用于对sr隧道上的服务进行优先级排序。

在另一个实施例中,被配置为执行sr流量工程(sr-te)的分段路由(sr)网络中的标签边缘路由器(ler)包括被配置为接收链路利用率测量结果的电路,其中链路利用率测量结果由一个或更多个标签交换路由器(lsr)泛洪;以及被配置为响应于基于接收到的链路利用率测量结果而检测到与sr隧道相关联的一个或更多个链路上的拥塞和未充分利用中的一者或更多者,来执行一个或更多个操作以实现拥塞的缓解和未充分利用的重新优化中的一者或更多者的电路。sr隧道的状态通过在ler处分配的标签栈仅维持在ler处,其中标签栈包括节点分段id(sid)和邻接sid中的一个或更多个。

链路利用率测量结果能够通过具有附加语义的现有内部网关协议(igp)流量工程(te)扩展泛洪以提供带宽利用率。响应于检测到拥塞,一个或更多个操作能够包括丢弃在与sr隧道相关联的一个或更多个服务上的多余流量。响应于检测到拥塞,一个或更多个操作能够包括确定另一个sr隧道并且将一个或更多个服务移动到另一个sr隧道。响应于检测到未充分利用,一个或更多个操作能够包括将一个或更多个服务移动到sr隧道并且消除一个或更多个其他sr隧道。响应于检测到拥塞,ler还能够包括被配置为基于ler与拥塞链路之间的距离来实现定时器设置的电路,其中如果拥塞仍然存在,则被配置为执行一个或更多个操作的电路在定时器期满之后执行一个或更多个操作。链路利用率测量结果能够基于多个服务等级进行管理,所述多个服务等级用于对sr隧道上的服务进行优先级排序。

在另外的实施例中,被配置为执行sr流量工程(sr-te)的分段路由(sr)网络中的标签交换路由器(lsr)包括被配置为测量在与lsr相关联的邻接链路上的链路利用率的电路;以及被配置为利用现有内部网关协议(igp)流量工程(te)扩展将所测量的链路利用率泛洪到sr网络中的其他节点的电路,其中所泛洪的测量的链路利用率被一个或更多个标签边缘路由器(ler)用于实现一个或更多个sr隧道上的拥塞的缓解和所述一个或更多个sr隧道上的未充分利用的重新优化中的一者或更多者。

附图说明

本文参照各种附图示出和描述了本公开内容,在附图中,在适当时,相似的附图标记用于表示相似的系统部件/方法步骤,并且在附图中:

图1是示出节点之间的节点分段的分段路由(sr)网络的网络图;

图2是示出两个节点之间的邻接分段的sr网络的网络图;

图3是示出用于组合的分段的节点分段和邻接分段的组合的sr网络的网络图;

图4是示出分段路由中的中间系统到中间系统(is-is)的泛洪和段的安装的sr网络的网络图;

图5是用于示出sr-流量工程(te)系统和方法的各种节点的网络的网络图;

图6是示出到节点d的最短sr隧道的网络的网络图;

图7是示出在作为入口标签交换路由器(lsr)的节点a与作为出口lsr的节点d之间的第一伪线(pw#1)的创建的网络的网络图;

图8是示出在pw#1的创建和运行之后的链路利用率测量和泛洪的网络的网络图;

图9是示出在作为入口lsr的节点e与作为出口lsr的节点d之间的第二伪线(pw#2)的创建的网络的网络图;

图10是示出在pw#2的创建和运行之后的链路利用率测量和泛洪的网络的网络图;

图11是示出在作为入口lsr的节点f与作为出口lsr的节点d之间的第三伪线(pw#3)的创建的网络的网络图;

图12是示出在pw#3的创建和运行之后的链路利用率测量和泛洪的网络的网络图;

图13是示出在作为入口lsr的节点a与作为出口lsr的节点d之间的第四伪线(pw#4)的创建的网络的网络图;

图14是示出在下一最短sr隧道上在pw#4的创建和运行之后的链路利用率测量和泛洪的网络的网络图;

图15是示出pw#2的删除的网络的网络图;

图16是示出在最短sr隧道上在pw#2的删除之后的链路利用率测量和泛洪的网络的网络图;

图17是示出在pw#2的删除之后的pw#4的重新优化的网络的网络图;

图18是示出在最短sr隧道上在pw#4的重新优化之后的链路利用率测量和泛洪的网络的网络图;

图19是示出情景1的网络的网络图,在情景1中,lsr不报告拥塞带宽,因此入口lsr不对拥塞做出反应;

图20是示出情景2的网络的网络图,在情景2中,lsr报告拥塞带宽,并且入口lsr不执行任何操作;

图21是示出情景3的网络的网络图,在情景3中,lsr报告拥塞带宽,并且入口lsr丢弃多余流量;

图22是示出情景4的网络的网络图,在情景4中,lsr报告拥塞带宽,并且入口lsr将服务/pw移动到备用隧道/路径;以及

图23是针对网络中的分段路由(sr)流量工程(sr-te)的过程的流程图。

具体实施方式

本公开内容涉及当链路被填满或拥塞时用于引导流量的基于链路利用率的分段路由(sr)流量工程(sr-te)。具体地,描述了包括sr中的路由扩展以检测耗尽和/或拥塞的系统和方法。该系统和方法模仿在mpls-te、通用mpls(gmpls)、光信号和路由协议(osrp)(来自ciena公司)等网络中主流的、但在sr网络中不可能的路由决策。也就是说,sr隧道不被用信号通知,因此不能以与mpls-te、gmpls、osrp隧道/连接相同的方式在网络中被呼叫接纳控制和路由。此外,路由扩展能够解释为确定存在链路拥塞,并且允许通过将服务移动到新的sr隧道或其他sr隧道来对这样的拥塞做出反应。类似地,当sr隧道未充分利用时,服务能够从这样的隧道中移出,并且空隧道被消除。这种行为称为流量工程(te),即针对新的服务或由于沿着现有sr隧道的拥塞而确定新的sr隧道,并且相反地,当发生未充分利用时服务重新平衡,并且空的sr隧道从网络中消除。

注意,术语“确定”和“消除”用于代替源路由的sr技术中的“建立”和“终止”,sr隧道不被用信号通知,并且在除了入口标签路由器(标签边缘路由器(ler))之外的任何标签交换路由器(lsr)上均不维持sr隧道状态,并且这样的sr隧道状态反映在数据包报头中。

在等价多路径(ecmp)路由的情况下,sr沿着一条或多条最短路径本地建立从源(入口)lsr到目的地(出口)lsr的sr隧道,并且所有数据包都遵循这样的路径。最短是从te度量(成本、延迟、距离等)的角度来看。当随着越来越多的服务例如伪线(pw)被添加到sr隧道而使得最短路径被填满或拥塞时,则需要确定沿着非最短路径的另一个sr隧道和绑定到这样的sr隧道的未来服务。这类似于传统的分布式控制平面,例如mpls-te或gmpls,其中建立了隧道标签交换路径(lsp),并且可能基于添加pw时的利用而沿着最短路径进行扩容,直到沿着这样的路径的容量被填满或耗尽,在该情况下,沿着下一最短路径建立附加隧道lsp。类似地,osrp沿着最短路径路由其子网连接(snc),但是当链路沿着这样的路径耗尽带宽时,ospr将在下一最短路径上路由后续的snc。

本质上,该系统和方法试图模仿mpls-te、gmpls、osrp类路由,但是要在sr的情况下。然而,sr中的路由比mpls-te、gmpls、osrp等中的更复杂,因为sr不使用信令协议,即sr隧道在网络中不被用信号通知,因此对链路的sr隧道的呼叫接纳控制不可能以与mpls-te、gmpls隧道或osrpsnc相同的方式进行。由于缺少信令协议,引导sr隧道的唯一方法是依赖于诸如软件定义网络(sdn)的集中控制方法来预先确定sr隧道并且将它们的状态安装在ler上,或者基于链路带宽利用率做出分布式决策,这是本文所描述的方法。

注意,在拥塞的情况下,如果这样的拥塞没有减弱,则可能需要将一些现有服务从“最短”sr隧道移动到“下一最短”sr隧道。这也意味着,当在从网络中移除服务时“最短”sr隧道变得未充分利用时,则需要将现有服务从“下一最短”sr隧道移动到“最短”sr隧道,并且可能消除“下一最短”sr隧道。

该系统和方法依赖于sr中的现有路由扩展来检测如下的耗尽和/或拥塞。也就是说,现有扩展必须使用附加语义例如负的未预留带宽进行扩展。入口lsr保持分配给sr隧道的服务(例如,pw)并且保持服务利用率。优选地,服务还能够指示预期带宽利用率,但是这完全不是必需的,并且入口lsr可以使用预期带宽利用率来确定哪些服务可能“行为不当”并且因此导致拥塞,并且确定这样的服务应该分配给哪个sr隧道,而不需要等待潜在的拥塞发生。

lsr能够被配置为测量链路利用率,并且通过带有te扩展(例如ospf-te(rfc3630)、isis-te等)的内部网关协议(igp)使其泛洪。接收节点应用以下逻辑。对于第一选项:

最大可预留带宽大于最大带宽——如果(未预留带宽<(最大可预留带宽-最大带宽))则拥塞带宽=最大可预留带宽-未预留带宽。

对于第二选项:

最大可预留带宽等于最大带宽——如果(未预留带宽<0)则拥塞带宽=绝对值(未预留带宽)。

在前述示例中,为了便于说明,使用了第二选项,但是第一选项更可能用于实现,因为负的未预留带宽意味着拥塞。

当检测到耗尽时,则新的服务路由到新的sr隧道上,并且当检测到拥塞时,则一些现有服务能够移动到新的sr隧道或其他现有sr隧道。当检测到未充分利用时,服务能够在sr隧道之间移动,并且空sr隧道被消除。

在一个实施例中,该系统和方法能够以分布式方式工作,并且因此用作sdn的全局最优机制的备份机制。也就是说,分布式机制能够自动路由sr流量以消除/避免拥塞,并且等待sdn指令来优化网络带宽利用率。

分段路由概述

图1至图4是示出通过网络10的分段路由(sr)的网络图。网络10包括节点12a、12b、12c、12d、12m、12n、12o、12p、12z。分段路由(sr)使得任何节点能够为每个流选择任何路径(显式的或从内部网关协议(igp)的基于目的地的最短路径树(spt)计算得出的)。该路径不依赖于逐跳信令技术(既不是标签分发协议(ldp)也不是资源预留协议(rsvp))。其仅依赖于由is-is路由协议通告的一组“段”。这些段充当能够组合在一起以形成期望路径的拓扑子路径。

在分段路由中有两种基本的分段形式:节点和邻接。图1图示了示出在节点12a、12b、12c、12d、12z之间的节点分段的网络10。节点分段表示到节点的最短路径。节点分段通常是多跳最短路径。在图1中,数据包被发送到节点12z,即转发等价类(fec)z,并且被注入到任何位置的顶部标签为“65”的数据包将通过最短路径到达节点12z。在图1中,在最终链路上启用倒数第二跳弹出(php)。图2图示了示出在节点12c、12o之间的邻接分段的网络10。邻接分段表示与节点的特定邻接。例如,节点12c分配本地标签,例如“9003”,节点12c例如通过简单的子类型长度值(tlv)扩展在is-is中通告邻接标签“9003”,并且节点12c是在其转发表中安装邻接分段以供数据平面使用的唯一节点。因此,在节点12c处注入的具有标签“9003”的数据包强制通过在节点12c、12o之间的链路。邻接分段能够在铺设流量工程干线时使用。

图3图示了示出用于组合的分段的节点分段和邻接分段的组合的网络10。分段路由主要使用节点分段和用于流量工程的邻接分段。也就是说,sr包括两种类型的段id(sid)——节点sid和邻接sid。在mpls的情况下,sid等同于mpls标签。在图3中,去往节点12z的数据包在节点12a处注入,在节点12a处,对于到节点12z的节点分段将标签添加为“65”、对于节点12c、12o之间的邻接分段将标签添加为“68”、以及对于到节点12c的节点分段将标签添加为“62”。图3中所示的标签栈表示在相关联的交换机的出口端口上传输的栈。在节点12c处,弹出标签“62”(假设禁用倒数第二跳弹出),并且看到标签“68”,因此数据包采用在节点12c、12o之间的邻接分段。在节点12o处,弹出标签“68”,并且对于节点12z的节点分段看到标签“65”。在节点12z处,弹出标签“65”,以揭示去往节点12z的数据包。

图4图示了示出分段路由中的is-is泛洪和段的安装的网络10。例如,图4包括由is-is泛洪和自动安装的节点分段14和邻接分段16。节点sid和邻接sid通过igp(例如ospf、is-is)泛洪,并且默认情况下,网络中的每个节点均计算到每个其他节点的最短路径并对数据路径进行编程,并且数据路径限定sr隧道。通过将节点sid(标签)压入数据包,这样的数据包能够沿着最短路径转发到发起这样的节点sid的节点。邻接sid(标签)能够用于偏离最短路径。限定sr隧道的单个标签或多个标签(标签栈)仅需要出现在这样的隧道的入口lsr(ler)上。在传送lsr上的网络中间有零sr隧道状态。隧道状态仅在入口ler上并且也在以标签栈(深度为1、2等)的形式的数据包中。

值得注意的是,分段路由具有出色的规模,节点12中的每个安装了n+a个转发信息库(fib)条目,其中n是域中节点的数量,并且a是附接到每个节点的邻接分段的数量。网络10中的每个节点12例如比rsvp-te更有效地缩放。状态位于每个数据包中,而不在路由器中。与运行rsvp-te的mpls相比,缩放是按每个节点n+a个标签的顺序进行的,这需要总计n^2条路径被信号通知用于点对点连接的全网格,其中很大一部分将需要每个核心路由器上的状态。

sr源于简化包括配置、管理和故障排除的网络操作的期望。sr起源于解决困扰mpls控制平面的可扩展性和复杂性问题,即主要是信令(标签分发协议(ldp)/rsvp-te)。

基于链路利用率的sr-te

图5是用于示出sr-te系统和方法的各种节点12a-12f的网络20的网络图。节点12a-12f能够分类为lsr或ler。lsr仅基于标签执行路由,并且是sr隧道的中间节点。ler(也能够称为入口lsr或出口lsr)在sr隧道的入口或出口处运行。

此外,sr-te系统和方法包括入口lsr(ler),其维护对sr隧道的服务(例如,pw)分配和服务利用率。所有lsr测量链路利用率,并且通过带有te扩展的igp对该链路利用率进行泛洪,该te扩展例如使用2003年9月的rfc3630“trafficengineering(te)extensionstoospfversion2(ospf版本2的流量工程(te)扩展)”,或2008年10月的rfc5307“is-isextensionsinsupportofgeneralizedmulti-protocollabelswitching(gmpls)(rfc5307“支持通用多协议标签交换(gmpls)的is-is扩展)”,每个的内容通过引用并入本文。因此,每个节点12a-12f具有sr隧道利用率的可见性。利用这个泛洪后的利用率数据,每个节点12a-12f能够确定哪些sr隧道拥塞、充分利用、未充分利用等。

此外,用于确定拥塞带宽的两个选项包括:

选项1:最大可预留带宽大于最大带宽:

如果(未预留带宽<(最大可预留带宽-最大带宽))则

拥塞带宽=最大可预留带宽-未预留带宽

选项2:最大可预留带宽等于最大带宽:

如果(未预留带宽<0)则

拥塞带宽=绝对值(未预留带宽)

在图5中,有a、b、c、d、e、f的节点sid和1、2、3、4的邻接sid。每个sr隧道的所有lsr节点均被配置为泛洪利用率,这例如在图5中示出为值m=x,其中m是每个链路和该链路上的相关联的sr隧道的链路te度量,以及u=y,其中u是y的未预留/未使用带宽。y的值是带宽值的变量,其能够基于当前链路利用率随时间变化。m=x反映了链路te度量,其通常不随时间变化,并且可以指链路的距离、成本、延迟。m=x和u=y均用于确定最短路径。在此,在图5中,所有链路均显示u=100和变化的m的值,例如10、20或30。

图6是示出到节点12d的最短sr隧道30的网络20的网络图。最短sr隧道30通过节点sid的igp泛洪自动创建。图7是示出在作为入口lsr的节点12a与作为出口lsr的节点12d之间的第一伪线(pw#1)32的创建的网络20的网络图。例如,创建pw#132,将入口lsr指定为节点12a,并且将出口lsr指定为节点12d,pw标签分配为1000,并且预期带宽可选地提供为50。节点12a将pw#132分配给到节点12d的最短sr隧道30,在这种情况下,该最短sr隧道从节点12a到节点12b到节点12c到节点12d。在物理链路中的每个上u=100时,则能够支持预期带宽为50的pw#132。一旦创建,用于pw#132的数据34利用具有节点sidd和pw标签1000的标签栈36提供给sr隧道30。图8是示出在pw#132的创建和运行之后的链路利用率测量和泛洪的网络20的网络图。如图8所示,由于pw#132,在节点12a、12b、12c、12d之间的所有链路上u=50。

图9是示出在作为入口lsr的节点12e与作为出口lsr的节点12d之间的第二伪线(pw#2)38的创建的网络20的网络图。例如,创建pw#238,将入口lsr指定为节点12e,并且将出口lsr指定为节点12d,pw标签分配为2000,并且预期带宽可选地提供为30。节点12e将pw#238分配给到节点12d的最短sr隧道30,在这种情况下,该最短sr隧道从节点12e到节点12c到节点12d。这是因为在这些链路中的每个上u=100或50,因此能够支持预期带宽为30的pw#238。一旦创建,用于pw#238的数据40利用具有节点sidd和pw标签2000的标签栈42提供给sr隧道30。图10是示出在pw#238的创建和运行之后的链路利用率测量和泛洪的网络20的网络图。如图10所示,在与pw#132和pw#238相关联的链路上,u=50、70或20。

图11是示出在作为入口lsr的节点12f与作为出口lsr的节点12d之间的第三伪线(pw#3)44的创建的网络20的网络图。例如,创建pw#344,将入口lsr指定为节点12f,并且将出口lsr指定为节点12d,pw标签分配为3000,并且预期带宽可选地提供为20。节点12f将pw#344分配给到节点12d的最短sr隧道30,在这种情况下,该最短sr隧道从节点12f到节点12c到节点12d。这是因为在这些链路中的每个上u=100或20,因此能够支持预期带宽为20的pw#344。一旦创建,用于pw#344的数据46利用具有节点sidd和pw标签3000的标签栈48提供给sr隧道30。图12是示出在pw#344的创建和运行之后的链路利用率测量和泛洪的网络20的网络图。如图12所示,在与pw#132、pw#238和pw#344相关联的链路上,u=50、70、80或0。具体地,现在节点12c、12d之间的链路被充分利用,即零未预留/未使用带宽。

图13是示出在作为入口lsr的节点12a与作为出口lsr的节点12d之间的第四伪线(pw#4)50的创建的网络20的网络图。例如,创建pw#450,将入口lsr指定为节点12a,并且将出口lsr指定为节点12d,pw标签分配为4000,并且预期带宽可选地提供为20。节点12a基于与pw#132、pw#238和pw#344相关联的链路利用率的泛洪而获知到节点12d的sr隧道30被充分利用(在节点12c与12d之间的链路上,即u=0)。因此,节点12a确定,对于pw#450,节点12d需要新的sr隧道52,即sr隧道52是到节点12d的下一最短sr隧道。节点12a将pw#450分配给到节点12d的下一最短sr隧道52,在这种情况下,该下一最短sr隧道从节点12a到节点12b到节点12f到节点12d。这是因为在这些链路中的每个上u=100或50,因此能够支持预期带宽为20的pw#450。一旦创建,用于pw#450的数据54利用具有节点sidf、邻接sid2(以沿着sr隧道52引导)和pw标签4000的标签栈56提供给sr隧道52。

图14是示出在下一最短sr隧道52上的pw#450的创建和运行之后的链路利用率测量和泛洪的网络20的网络图。如图14所示,在与pw#132、pw#238、pw#344和pw#450相关联的链路上,u=0、30、50、70或80。同样,在节点12c、12d之间的链路仍被充分利用。

图15是示出pw#238的删除的网络20的网络图。在节点12e处接收到删除pw#238的请求,并且节点12e删除pw#238。图16是示出在最短sr隧道30上的pw#238的删除之后的链路利用率测量和泛洪的网络20的网络图。注意,此时,在节点12c、12d之间的链路不再被充分利用,即u=30。

图17是示出在pw#238的删除之后的pw#450的重新优化的网络20的网络图。在图16中的泛洪之后,节点12a现在能够确定到节点12d的最短sr隧道30未充分利用,即u=30。因此,不再需要在下一最短sr隧道52上提供pw#450,因为其能够在最短sr隧道30上被支持。节点12a通过利用具有节点sidd和pw标签4000的新的标签栈58提供数据54来将pw#450从下一最短sr隧道52移动到最短sr隧道30,使得pw#450-1现在在最短sr隧道30上。图18是示出在最短sr隧道30上的pw#450-1的重新优化之后的链路利用率测量和泛洪的网络20的网络图。因此,在将pw#4移动到最短sr隧道之后,非最短sr隧道被消除。

链路拥塞

图5至图18中的前述示例假设预先提供并保持预期带宽利用率。实际上,能够超过预期带宽利用率,或者可能未提供预期带宽利用率。为此,有三种情况需要考虑:

情况1包括服务(例如,pw)在被配置时指示预期带宽利用率,但是发送比指示的流量更多的流量,并且多余流量在入口lsr处被标记为可丢弃(例如,黄色)。

情况2包括服务(例如,pw)在被配置时指示预期带宽利用率,但是发送比指示的流量更多的流量,并且多余流量在入口lsr处未被标记为可丢弃(例如,黄色)。

情况3包括服务(例如,pw)在被配置时未指示预期带宽利用率,但是现在在lsr处发生有链路拥塞。

对于情况1,可丢弃(例如,黄色)流量能够在拥塞链路处被相关联的lsr丢弃。策略能够定义为:(1)在lsr处,当可丢弃流量被丢弃时,是否通过路由扩展在泛洪中报告为拥塞带宽,(2)在入口lsr(ler)处,是否对丢弃可丢弃流量的拥塞带宽的路由报告做出反应,以及(3)入口lsr(ler)的反应策略能够是(i)不执行任何操作,(ii)丢弃导致拥塞的多余流量,或(iii)将服务/pw移动到备用隧道/路径。

对于情况2,不可丢弃(例如,绿色)流量在拥塞链路处被相关联的lsr丢弃,即因为没有标记为可丢弃的流量并且存在多余流量。这样的拥塞总是能够被相关联的lsr通过路由扩展在泛洪中报告为拥塞带宽。入口lsr(ler)策略能够包括(i)不执行任何操作或(ii)将服务/pw移动到备用隧道/路径。

对于情况3,不可丢弃(例如,绿色)流量在拥塞链路处被相关联的lsr丢弃。这样的拥塞总是能够被相关联的lsr通过路由扩展在泛洪中报告为拥塞带宽。入口lsr(ler)策略能够包括(i)不执行任何操作或(ii)将服务/pw移动到备用隧道/路径。

基于这三种情况和相关联的策略,能够考虑以下四种情景。在情景1中,lsr不报告拥塞带宽,因此入口lsr(ler)不对拥塞做出反应。在情景2中,相关联的lsr报告拥塞带宽,并且入口lsr(ler)不执行任何操作。在情景3中,相关联的lsr报告拥塞带宽,并且入口lsr(ler)丢弃多余流量。最后,在情景4中,相关联的lsr报告拥塞带宽,并且入口lsr(ler)将服务/pw移动到备用隧道/路径。

图19是示出情景1的网络20的网络图,其中lsr不报告拥塞带宽,因此入口lsr不对拥塞做出反应。此处,在最短sr隧道30上的pw#450-1的预期带宽为20,但是实际带宽为40,多余流量被标记为可丢弃(例如,黄色)。多余流量被节点12c(lsr)丢弃,但是即使实际利用率为u=-10,在节点12c、12d之间的链路上的利用率也通告为u=0。

图20是示出情景2的网络20的网络图,其中lsr报告拥塞带宽,并且入口lsr不执行任何操作。此处,类似于图19,在最短sr隧道30上的pw#450-1的预期带宽为20,但是实际带宽为40,多余流量被标记为可丢弃(例如,黄色)。多余流量被节点12c(lsr)丢弃。在节点12c、12d之间的链路上的利用率通告为u=-10,表示拥塞为10。然而,节点12a(入口lsr)不采取操作。

图21是示出情景3的网络20的网络图,其中lsr报告拥塞带宽,并且入口lsr丢弃多余流量。同样,类似于图19和图20,在最短sr隧道30上的pw#450-1的预期带宽为20,但是实际带宽为40,多余流量被标记为可丢弃(例如,黄色)。然而,不是由节点12c(lsr)丢弃流量,而是由于多余流量向在节点12c、12d之间的链路上的u=-10的节点12a提供泛洪利用率。节点12a采取操作以将pw#450-1流量减少10,因此实际带宽现在是30而不是40(然而预期带宽仍为20)。

图22是示出情景4的网络20的网络图,其中lsr报告拥塞带宽,并且入口lsr(ler)将服务/pw移动到备用隧道/路径。同样,这是与图19至图21相似的情景,除了此处节点12a被配置为确定下一最短sr隧道52并且将pw#450-1移动到下一最短sr隧道52,而不是继续使用最短sr隧道30。

确定对哪些服务采取操作

当lsr通告拥塞带宽时,需要具有用于入口lsr(ler)的机制来确定对哪些服务采取操作以缓解拥塞。以下描述了一种示例机制。当ler从lsr接收拥塞带宽通告时,ler将定时器设置为基于ler与lsr的距离而设置的值。例如,定时器可以是:

时间值=(lsr距离ler的跳数)-1

例如,如果通告lsr距离ler2跳,则ler将定时器设置为1个时间单位例如秒,并且如果通告lsr距离ler6跳,则ler将定时器设置为5个时间单位。注意,如果ler与通告lsr邻接,则其时间值=0,即不启动定时器。

当定时器期满(或未启动)时,该ler将对正在经过sr隧道的其服务/pw采取操作,该sr隧道上经过拥塞链路,并且修剪多余流量或将这样的服务/pw移动到另一个sr隧道,或采取其他缓解拥塞的操作。在这种机制背后的想法是,应该给更接近拥塞链路的ler缓解拥塞的机会。也就是说,首先距离(邻接)带有拥塞链路的lsr为1跳的所有ler将试图减少拥塞,如果它们不能减少拥塞,则距离为2跳的ler将试图减少拥塞,如果它们不能减少拥塞,则距离为3跳的ler将试图减少拥塞等等。

这样的机制称为“半径机制”,因为ler在增加(或作为另一种选择而减小)距离拥塞链路的距离(半径)时被要求采取措施来缓解拥塞。本领域技术人员将认识到还能够使用其他机制。

sr隧道上的优先化的pw

先前的示例均假设服务(例如,pw)属于同一等级。然而,pw能够是不同的等级,例如,类类型、diffserv等级、服务质量(qos)、exp位等——统称为服务等级。链路处的数据包流量处理通常在每个服务等级的基础上进行,即如果到达的数据包流量多于能够通过链路传输的数据包流量,则可以丢弃较低的服务等级流量,以更高的服务等级流量取代。

链路利用率测量能够在每个服务等级的基础上进行,并且使用现有te扩展进行泛洪,即未预留带宽可以指示8个服务等级(0至7,其中0是最高的,7是最低的)中的每个服务等级的可使用带宽量,并且负的未预留带宽值可以表示被丢弃的某些服务等级数据包流量的量。例如:

未预留带宽[0]=100→服务等级0可使用100个单位带宽

未预留带宽[1]=80→服务等级1可使用80个单位带宽

未预留带宽[2]=-10→服务等级2的10个单位带宽被丢弃

以上示例泛洪可以用于容量为100个单位带宽的链路,其中,20个单位由服务等级1数据包流量使用,并且90个单位由服务等级2流量使用。该链路被10个单位带宽拥塞,并且属于服务等级2的相当于10个单位带宽的数据包流量被丢弃。

每个服务等级的链路利用率泛洪将使得所有lsr均能够按服务等级知道链路带宽利用率/使用情况,并且使得能够智能地确定何时以及哪些pw的流量应该在ler处丢弃或从一个sr隧道移动到另一个sr隧道以缓解拥塞,例如,当较低的服务等级流量在沿着其路由的特定链路处被丢弃时(在该较低的服务等级处的未预留带宽值对于该链路是负的),则属于这样的较低的服务等级的pw应该丢弃其多余流量或被移动到不通过拥塞链路的另一个sr隧道。

sr隧道内的pw的这样的基于优先化/服务等级的处理类似于可用于其隧道lsp的诸如mpls-te和gmpls的分布式控制平面的抢占能力。注意,在mpls-te和gmpls中,隧道lsp是被抢占的(以及所有包含的服务/pw),在sr-te中,sr隧道内的服务/pw通常是被抢占的。这是因为在sr-te中,网络内实际上没有建立sr隧道(网络中没有状态,而仅在ler处有状态),因此网络中实际上没有可以抢占的。

抢占被委托给存在sr隧道状态的ler,但是这是保持pw到sr隧道绑定的地方,因此抢占实际上是pw而不是sr隧道的功能,即pw(全部或部分)从当前sr隧道中取消映射,并且重新映射到不同的sr隧道。注意,还可以抢占整个sr隧道,即在隧道ler处重新定义sre隧道标签栈。

sr-te过程

图23是用于网络中的分段路由(sr)流量工程(sr-te)的过程100的流程图。过程100包括在标签边缘路由器(ler)处接收链路利用率测量结果,其中链路利用率测量结果由一个或更多个标签交换路由器(lsr)泛洪(步骤102);以及,响应于基于接收到的链路利用率测量结果而检测到与ler处的sr隧道相关联的一个或更多个链路上的拥塞和未充分利用中的一者或更多者,在ler处执行一个或更多个操作以实现拥塞的缓解和未充分利用的重新优化中的一者或更多者(步骤104)。

sr隧道的状态通过在ler处分配的标签栈仅维持在ler处,并且标签栈包括节点分段id(sid)和邻接sid中的一个或更多个。标签通过内部网关协议(igp)泛洪,并且网络中的每个节点确定到每个其他节点的最短路径,并且一个或更多个操作能够包括使用邻接sid偏离sr隧道的最短路径。链路利用率测量结果能够通过现有内部网关协议(igp)流量工程(te)扩展来泛洪,并且这样的链路利用率将使得能够计算满足sr隧道的带宽限制的最短路径。

响应于ler检测到拥塞,一个或更多个操作能够包括丢弃在与sr隧道相关联的一个或更多个服务上的多余流量。响应于ler检测到拥塞,一个或更多个操作还能够包括确定另一个sr隧道并且将一个或更多个服务移动到另一个sr隧道。响应于ler检测到未充分利用,一个或更多个操作能够包括将一个或更多个服务移动到sr隧道并且消除一个或更多个其他sr隧道。

过程100还能够包括,响应于检测到拥塞,基于ler与拥塞链路之间的距离而实现定时器设置(步骤106);以及如果拥塞仍然存在,则在定时器期满之后实现一个或更多个操作(步骤108)。链路利用率测量结果能够基于多个服务等级来进行管理,所述多个服务等级用于对sr隧道上的服务进行优先级排序。

在另一个实施例中,被配置为执行sr流量工程(sr-te)的分段路由(sr)网络中的标签边缘路由器(ler)包括:被配置为接收链路利用率测量结果的电路,其中链路利用率测量结果由一个或更多个标签交换路由器(lsr)泛洪;以及被配置为响应于基于接收到的链路利用率测量结果而检测到与sr隧道相关联的一个或更多个链路上的拥塞和未充分利用中的一者或更多者而执行一个或更多个操作以实现拥塞的缓解和未充分利用的重新优化中的一者或更多者的电路。

sr隧道的状态通过在ler处分配的标签栈仅维持在ler处,其中标签栈包括节点分段id(sid)和邻接sid中的一个或更多个。标签通过内部网关协议(igp)泛洪,并且网络中的每个节点确定到每个其他节点的最短路径,并且一个或更多个操作能够包括使用邻接sid偏离sr隧道的最短路径。链路利用率测量结果通过现有内部网关协议(igp)流量工程(te)扩展来泛洪,并且这样的链路利用率将使得能够计算出满足sr隧道的带宽限制的最短路径。

响应于检测到拥塞,一个或更多个操作能够包括丢弃在与sr隧道相关联的一个或更多个服务上的多余流量。响应于检测到拥塞,一个或更多个操作还能够包括确定另一个sr隧道并且将一个或更多个服务移动到另一个sr隧道。响应于检测到未充分利用,一个或更多个操作能够包括将一个或更多个服务移动到sr隧道并且消除一个或更多个其他sr隧道。

ler还能够包括被配置为响应于检测到拥塞而基于ler与拥塞链路之间的距离来实现定时器设置的电路,其中如果拥塞仍然存在,则被配置为执行一个或更多个操作的电路在定时器期满之后执行一个或更多个操作。链路利用率测量结果能够基于多个服务等级来进行管理,所述多个服务等级用于对sr隧道上的服务进行优先级排序。

在另外的实施例中,被配置为执行sr流量工程(sr-te)的分段路由(sr)网络中的标签交换路由器(lsr)包括:被配置为测量在与lsr相关联的邻接链路上的链路利用率的电路;以及被配置为利用现有内部网关协议(igp)流量工程(te)扩展将所测量的链路利用率泛洪到sr网络中的其他节点的电路,其中所泛洪的测量的链路利用率被一个或更多个标签边缘路由器(ler)用于实现一个或更多个sr隧道上的拥塞的缓解和所述一个或更多个sr隧道上的未充分利用的重新优化中的一者或更多者。sr隧道的状态通过在ler处分配的标签栈仅维持在相关联的ler处,并且标签栈包括节点分段id(sid)和邻接sid中的一个或更多个。

总之,该系统和方法包括(使用任何技术)测量sr网络中的链路利用率并且通过现有igpte扩展(最初是为基于cac的信令协议开发的,这在sr中是不存在的)泛洪这样的测量结果。这样的泛洪后的测量结果的接收方ler能够就以下方面做出明智的决策:(i)链路是否沿着状态维持在这样的ler上的sr隧道拥塞,并且因此需要采取操作来缓解拥塞;(ii)链路是否沿着状态维持在这样的ler上的sr隧道未充分利用,并且因此由这样的sr隧道承载的pw/服务的重新优化能够进行,以将这样的pw/服务移动到“更好的”sr隧道并且消除不需要的sr隧道;(iii)当现有sr隧道填满时,计算并定义新的sr隧道(标签栈);(iv)以及其他操作。

将意识到的是,本文描述的一些实施例可以包括一个或更多个通用的或专业的处理器(“一个或更多个处理器”),例如微处理器;中央处理单元(cpu);数字信号处理器(dsp):定制处理器,例如网络处理器(np)或网络处理单元(npu)、图形处理单元(gpu)等;现场可编程门阵列(fpga);等等,以及唯一存储的程序指令(包括软件和固件),所述程序指令用于控制上述处理器以与某些非处理器电路结合来实现本文描述的方法和/或系统的一些、大部分或全部功能。可替选地,一些或全部功能可以由没有存储程序指令的状态机实现,或者在一个或更多个专用集成电路(asic)中实现,其中每个功能或某些功能的一些组合实现为定制逻辑或电路。当然,可以使用前述方法的组合。对于本文描述的一些实施例,硬件中的并且可选地具有软件、固件及其组合的相应的设备能够被称为“被配置或适配成如下的电路”、“被配置或适配成如下的逻辑”等:如本文针对各种实施例所述,对数字信号和/或模拟信号执行一组操作、步骤、方法、处理、算法、功能、技术等。

此外,一些实施例可以包括非暂态计算机可读存储介质,其具有存储在其上的用于对计算机、服务器、装置、设备、处理器、电路等进行编程的计算机可读代码,所述计算机、服务器、装置、设备、处理器、电路中的每个可以包括用于执行本文所述和要求的功能的处理器。这样的计算机可读存储介质的示例包括但不限于硬盘、光学存储设备、磁性储存设备、rom(只读存储器)、prom(可编程只读存储器)、eprom(可擦除可编程只读存储器)、eeprom(电可擦除可编程只读存储器)、闪存等。当存储在非暂态计算机可读介质中时,软件能够包括由处理器或设备(例如,任何类型的可编程电路或逻辑)执行的指令,该指令响应于这样的执行而使得处理器或设备如本文针对各种实施例所述执行一组操作、步骤、方法、处理、算法、功能、技术等。

尽管已经参考优选实施例及其具体示例在本文中说明和描述了本公开内容,但是对于本领域技术人员而言将明显的是,其他实施例和示例可以执行相似的功能和/或获得相似的结果。所有这样的等效实施例和示例均在本公开内容的精神和范围内,从而被考虑并且旨在由所附权利要求书覆盖。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1