专利名称:一种在ip子网中用于拥塞控制的方法
1.本发明试图解决哪种技术问题?路由器和链路上的短期拥塞。
2.迄今为止如何解决此问题?试图通过预告业务量负载并相应规划网络来避免拥塞。此方法不是自适应的,故而不适合于短期的或不能预告的负载波动。结果,要通过形成大大超过所需尺寸的网络来避免整个问题。
3.本发明用哪种方法来解决上述的技术问题?过载路由器的相邻路由器在一出现过载时就得到通知,要求它们采取措施来缓解过载的交换。下面会描述可行的措施。
此方法是自适应的,即它可以适应不同的负载状况而不必预先告知。
此方法反应迅速。
拥塞一消除,系统就返回其初始状态。即路由保持不变。
本发明在路由器之间建立非常简单的通信。
本发明提供一种在IP网络中用于自适应拥塞控制的机制。即,一种动态而迅速地适应各种负载状况的拥塞控制。从传统电话网络可以知道动态拥塞控制的优势。但是,不能把它们简单地转移到IP网络中,因为IP协议的构建没有并入这种机制。并入动态的拥塞控制需要像本发明这样的创新的附件。
下述步骤能够实现我们的目标-对每个路由器检测并评估过载。例如,利用拥塞等级。
-在过载路由器及其相邻路由器之间产生一个非常简单的信息交换。这是通过把现有的协议模块结合起来并使用开发的消息来实现的。
-产生一种机制以解释拥塞信息。此机制使用源于传统电话网络机制的思想(12)。
-作为对-正确解释的-信息的反应,产生一种机制以降低过载。业务量被重定向经过先前建立的备选路径(没有重新路由!)。其实现是通过使用现有的协议模块。
把上述四个步骤结合起来构成一种能迅速并动态地对变化的负载状况进行反应的自适应算法。信息的交换和解释独立于网络拓扑结构。此算法唯一依赖路由信息的部分是降低过载的实际措施。当网络拓扑结构改变时必须对这些部分进行修改。因此,只要网络保持不变,则此算法就是完全动态的。
于是,本发明适于控制短期负载波动。对于短期负载波动不可能进行耗时的“重路由”。而且,在非长期的情况下也不希望“重路由”。
从下面的详细描述和所附附图会更明了本发明及其实现。
在IP网络中部署一种用于自动拥塞控制的MPLS系统1 IP网络中的业务量工程-当前状态1.1利用TCP的端到端拥塞控制与IP网络相关的特性包括■简单性■尽力而为服务■不可靠性简单性意味着对链路进行互连的路由器主要作为转发设备。即,它们仅向下一跳发送IP分组而不执行任何其他任务。路由意味着确定一组IP地址的下一跳并把此结果加入到路由表中。路由很少执行,例如只是周期性地进行。
尽力而为服务意味着不保证QOS等级,即既不保证最大时延又不保证最小吞吐量。
在没有有关必须保证的可靠性等级协定的意义上,IP网络是“不可靠的”。良好的可靠性等级通常是通过对于正常业务量而言超过尺寸的网络来实现的,这样能承受业务量峰值。
由于这种IP网络的设计,所以拥塞的主要原因是业务量峰值。即,在某一特定时刻必须传输比系统所能承受的更多的IP分组。通常假设带宽是瓶颈而路由器不是。
当拥塞出现时,路由器丢弃IP分组。它们不可能选择属于特定TCP(或者UDP)连接的分组。在接收端通过TCP或例如UDP的其它上层协议检测到分组的丢失。TCP的反应是减小窗口大小,从而降低业务量速率。这意味着可能为实时应用所禁止的质量损失。
如果路由器丢弃分组,或者缓冲器中分组的数量超过给定阀值,则它检测到拥塞。然后拥塞路由器向被弃分组所属的主机地址发送“源抑制消息”。对于主机,TCP可能会或者不会通过减小窗口大小(就像它已经检测到分组丢失一样)来进行反应。源抑制消息是ICMP消息,于是相邻的路由器能够解释它。但是,一种简单的“转发设备”即使检测到拥塞,也没有减轻邻近路由器业务量的办法。
TCP仅在端系统中运行。因此,传统IP网络中的拥塞控制是端到端控制。受影响的系统部分除了丢弃分组之外无法自我保护。
1.2拥塞控制和MPLS随着MPLS(多协议标签交换)的引入,从而可能采用更有效和更直接的方法来控制拥塞。
1.2.1什么是MPLS?MPLS是一种在协议栈中直接位于IP下方的协议。运行MPLS的路由器称为“标签交换路由器”(LSR)。
在一个具有标签交换路由器(LSR)的IP子网中,对IP分组进行“交换”而非“转发”。如果IP分组必须从子网一侧的某一路由器上走到另一侧的另一“标签边缘路由器”,则引导此分组沿着预定的路径经过网络。为此,在转发等价类(FEC)中它们被聚集在一起。
对属于某一FEC的分组进行标记。即,基于IP头所携带的信息以及由“标签边缘路由器”(LER)所维护的本地路由信息,在入口处对IP分组进行分类。然后对每个分组都插入一个具有标签的MPLS头。在MPLS使能的域中,每个LSR都会使用此标签来查找其转发表,再相应地转发分组。入标签被出标签所取代。在MPLS使能的子网内部,转发分组不涉及IP。在MPLS域的出口处去除MPLS头。
一个标签对应例如一个ATM信元头。由此产生的机制是一种改进的转发方案,并且速度很快。但是除了速度,它还可能进行负载分布。去往MPLS域另一端的同一路由器的分组可能分在不同的FEC中,因此它们经过不同的路径。由于在中间阶段可以通过重新标记或者改变转发表来改变整个FEC或者部分FEC,从而开放了路径控制的领域。
图1表示了一种用于MPLS使能的IP子网的协议栈和结构。
MPLS使用信令协议来建立路径。例如资源预留协议(RSVP)或者标签分配协议(LDP)。
在建立路径之前,必须找到它。这可以通过基于约束的路由(CBR)来实现。CBR计算符合约束条件以及网络拓扑的路径。这种约束条件的一个重要的例子是带宽要求。约束条件类似于分配到每条路径的属性。其中之一是可预留的带宽(它是所涉及链路的(最小)可预留带宽)。属性信息在MPLS域中由增强的IGP(内部网关协议)来传播。
对于在线CBR,路由器可以在任意给定的时刻计算标签交换路径(LSP)。离线CBR由离线服务器来完成。
1.2.2MPLS的拥塞控制-当前状态拥塞避免如果网络管理员对业务量有明确的了解,从而能够选择足够的属性,则利用MPLS和CBR,可以最佳使用带宽的方式来选择路径。显而易见,这是此概念的缺陷,因为网络管理员通常不可能有这种深入了解。他们可能更新“重新优化”路径的选择(LSP路由)。但是,这不是一个动态过程,必须人工触发或者周期性地执行。
于是就此而言,在MPLS使能的网络中拥塞控制意味着拥塞预防。一种尝试是在路由器之间明智地建立多条路径,从而根据期望的业务量在这些路径上分摊负载。这里没有动态适应拥塞的机制。唯一的例外在于链路故障。链路故障可以触发LSP的重新优化。然后沿着备份LSP路由业务量。
2 ACCIP在MPLS使能的IP网络中的自动拥塞控制-建议下面建议的目的在于在一个MPLS使能的IP子网中引入动态拥塞控制。如果不能通过明智地建立路径来避免拥塞,则下面的机制会通过重定向业务量至备选路径而对拥塞作出反应。为避免语句烦琐,我们称之为ACCIP(IP网络中的自动拥塞控制)。ACCIP反应迅速,因为不必计算备选路径。如果过载停止,则此系统返回到它的初始状态,即这些路径保持不变。
于是,ACCIP适于对短期负载变化和业务量峰值作出反应。在这种情况下不希望重路由(即使有人能及时将其实现),因为峰值不代表典型的负载状况。
它还把重点从纯粹的链路拥塞转移到路由器拥塞和链路拥塞的结合上来。
路由器也可能拥塞。例如,路由器容量在下面这些情况下会下降■禁止“困境(hot potato)”路由,■路由/转发表过于复杂,■路由器管理过多路径,
■路由器忙于计算路由表,■路由器忙于计算/确定LSP。
2.1一种在路由器或链路拥塞的情况下调整网络使用的动态过程在下面这节,我们建议一种确定拥塞并自动对其进行反应的机制。
ACCIP机制包括4个主要步骤1.检测并评估过载。或者是路由器本身发生过载,或者是在输出链路上检测到过载。
2.通知与过载路由器相邻的路由器。
3.相邻节点解释此信息。
4.相邻路由器以重定向业务量进行反应。
实现步骤1至4有多种途径。我们现在提出每个步骤的建议。
2.1.1步骤1检测并评估过载■每个路由器(LSR)通过观测中心处理器的负载、主要队列等来确定其负载状态以及进入的队列。
■每个路由器观测输出队列来检测链路拥塞。
■计算对于路由器容量的过载等级,例如用一种类似于EWSD中STATOR的算法[5]。
■如果检测到链路拥塞,则计算链路拥塞等级。
■对这两种情况,等级的适当选择可能是0~7(4比特),0~10(8比特)。
2.1.2步骤2通知相邻路由器■向相邻路由器发送这些等级。其实现可以通过所谓的源抑制消息进行,即一种现在用于向被弃IP分组的源主机发送拥塞信息的ICMP消息。就此而言,抑制消息仅由被弃IP分组的源主机中TCP来解释,但是,抑制消息是ICMP消息,从而是IP的组成部分。因此,它们可以由路由器来解释。
■另一种交换拥塞信息的可能性是通过IGP,即内部网关协议。但是这可能造成信息传输的泛滥。(IGP在管理域内使信息泛滥。)■链路拥塞等级应当随着去往某个链路的输入业务量的标签一起发送。于是,邻接节点可以确定哪个业务量造成过载。
■相邻路由器接收抑制消息并提取拥塞信息。
■它们并不进一步传播拥塞信息。否则可能出现环路。
2.1.3在邻接节点解释信息■信息传输不会完美。其中会有延迟,甚至含有拥塞信息的消息也会丢失。而且,由于IP业务量的不规则特性,拥塞变化可能非常突然。因此我们建议使用1中所述算法来在相邻路由器上从所传的等级重新构建拥塞,并平滑强烈的振荡。这些算法的其中一种评估在特定时间段中收到的所有拥塞等级。此结果再次映射到拥塞等级,这会用于确定适当的反应。这些“反应等级”不必采用与所传拥塞等级相同的值。例如,所传的拥塞等级0~7可能映射成反应等级0~8。
■链路拥塞等级必须与路由器拥塞等级区别对待。如果某个路由器本身发生拥塞,则所有导向此路由器的业务量会造成过载。如果某一路由器的某一输出链路发生拥塞,则仅有经过此链路的业务量会造成过载,并且必须分离。
2.1.4步骤4在邻接节点重定向业务量步骤1~3没有利用MPLS。MPLS能够重定向特定业务量的各部分,使其流经各备选路径,从而实现负载分配。传统的重路由会重定向所有的业务量,使其流经一个备选路径,在本方案中并不期望这样。
■在链路拥塞的情况下,测到它的路由器本身可能把此链路上业务量的适当部分导向一个备选路径。这部分可能对应链路拥塞等级。于是,在相邻路由器上必须降低负载之前,可能已消除了过载状况。
■相邻路由器试图把去往拥塞路由器的业务量降低对应反应等级的特定百分比(例如,0-0%、1-10%、2-20%、...、10-100%)。即,每个相邻路由器沿着备选LSP转发该百分比的分组。在计算LSP时必须计算备选的路由/路径。在链路拥塞的情况下,仅分离那些注定经由此链路的业务量。应当注意的是,对于链路拥塞和路由器拥塞,其备选路径可以不同。
■像实时业务量等时延敏感的业务量不应被重定向,以避免进一步的时延和抖动。在入口路由器上应对其进行不同的标记。于是与拥塞路由器相邻的路由器可以区别时延敏感的业务量和时延不敏感的业务量,前者正常转发,而后者被重定向。另一选择是标记低优先级的业务量(例如来自低费用的客户),在业务量绝对超过时甚至可能把它们丢弃。
■为实现这点,入口路由器除了基本的转发和路由功能之外还必须具有附加功能。它必须能够解释某些来自像UDP和TCP等高层协议的信息(如端口号)。
■备选路径不必满足第一选择路径所要满足的所有需求。例如,备选路径可能具有较窄的带宽。这是可以接收的,因为它可能从不承载第一选择路径的全部业务量。此外可能具有多条可以分配业务量的备选路径。
■如果下一跳也是拥塞路由器,则不能使分组重定向通过某备选路径。这也解决在备选路径上2跳之外的拥塞路由器的问题。中间路由器会发现去往此路由器的输出队列溢出,因此发现链路拥塞。沿着路径再往下的拥塞不会被发现,因为拥塞等级不会进一步在网络上传播。
■如果拥塞状况改变,则相邻路由器自动调整重定向业务量的百分比来与之适应。如果拥塞停止,则业务量完全返回到第一选择路径。
■特别对于1中的平滑过程以及在拥塞路径上的禁止重定向,忙乱的业务量重定向不太可能造成不稳定性或者本身的大量负载。不过如果出现这种情况,我们建议使用定时器来延迟反应。此定时器必须确定一个适当值。
显而易见,此建议取决于几个基本的假设我们假设MPLS域中的整体网络容量充足。即,尽管此系统整体上可以处理此业务量,但单个路由器或者链路可能发生拥塞。这个假设可能由于在入口处标记低优先级的业务量而有所削弱,因为它们可能被丢弃而非重定向。
拥塞是由短期的业务量分配变化造成的,并通过短期的路径调整对其进行处理,当重新建立了“正常”的业务量状况后会取消这些短期的路径调整。备选路径必须存在,否则网络不能对拥塞作出反应。在“正常”业务量情况中各MPLS路径的选择可以认为是合适的。否则,要通过重路由在长期的基础上对其作出改动。
ACCIP使用MPLS作为一种手段来沿着备选路径快速地重定向部分业务量。在IP网络中提供这种服务的任何协议或现有协议的改进都可能组合本文件所建议的自动拥塞控制算法。但是,MPLS是目前作者唯一知道的这样的机制。
ACCIP在对等实体中即在不分层的网络中意义重大。在分层的系统中,需要用MPLS进行自动拥塞控制的路由器可能被组合在一起,并用对于CBR已知的“颜色”标记来标出。
信息交换被限制在直接相邻的路由器之间,以便降低算法的复杂度。因此,它可能不会对每种负载状况作出最佳调整,但是它能够快速反应。
2.2网络群示例图2表示了一个业务量重定向的网络拓扑示例。从路由器2到5的缺省路由经过路由器1,反之亦然(粗线)。路由器1发生了过载。它通知其相邻路由器-路由器2和5。然后,路由器2可以使用经过路由器3和4的备选路由(虚线)使定向到路由器5的业务量绕行。同样,路由器5可能经由路由器5和4来空出路由器1。
3词汇表和参考文献词汇表
参考文献1共同未决的国际专利WO 99/38341,1999.7.22共同未决的欧洲专利EP 0 932 313 A1,1999.7.283RFC792,互联网控制消息协议4RFC896,何时发送ICMP源抑制消息5Daisenberger、Oehlerich和Wegmann的Two concepts foroverload regulation in SPC switching systemsSTATOR and Tail(对于SPC交换系统中过载控制的两个概念STATOR和Tail,电信杂志1988年5月306~313页
权利要求
1.一种在IP子网中用于拥塞控制的方法,所述IP子网包括多个路由器用来路由业务量经过所述IP子网,所述方法包括以下步骤-一个路由器检测到过载,-所述路由器向相邻路由器通知所述过载,-所述相邻路由器解释所述过载信息,并确定适当的反应来减小所述过载,-所述相邻路由器执行所述的适当反应。
2.如权利要求1中定义的方法,其中所述的适当反应是通过把一定业务量的各部分重定向经过备选路径来执行的。
3.一种在IP子网中的路由器,所述路由器包括-用于检测过载的检测装置,-用于向相邻路由器通知所述过载的通知装置。
4.一种在IP子网中的路由器,所述路由器包括-控制装置,用于解释从相邻路由器接收到的过载信息并确定减小所述过载的适当反应,-执行装置,用于执行所述的适当反应。
5.如权利要求4中定义的路由器,其中所述的执行装置通过把一定业务量的各部分重定向经过备选路径来执行所述的适当反应的。
全文摘要
本发明解决了路由器和链路上的拥塞问题。过载路由器的相邻路由器在一出现过载时就得到通知,要求它们采取措施来缓解过载的交换。描述了可行的措施。
文档编号H04L12/56GK1423879SQ01808093
公开日2003年6月11日 申请日期2001年10月1日 优先权日2000年10月9日
发明者G·克斯特尔 申请人:西门子公司