专利名称::网络负载平衡和过载控制的制作方法
技术领域:
:本发明一般而言涉及通信网络,更具体而言涉及用在基于会话初始协议(SIP)的网络(例如IP多媒体子系统(IMS)网络)和其他类型的通信网络中的负载平衡和过载控制技术。
背景技术:
:会话初始协议(SIP)正在迅速成反馈为用于在通信网络中的用户之间建立、^修改和终止多々某体会话的事实上的信令协议。在J.Rosenberg等人的"SIP:SessionInitiationProtocol,"InternetEngineeringTaskForce(IETF)RFC3261,June2002中对SIP进行了描述,该文献^皮结合于此以作参考。对于IP多媒体子系统(IMS)也采用了SIP,其是用于第三代合作伙伴项目(3GPP)所定义的移动和固定服务的下一代核心网络架构。处理和转发SIP消息的网络元件在SIP术语中被称为代理服务器,而在IMS术语中被称为呼叫会话控制功能(CSCF)。3GPP定义了三类CSCF元件作为与用户的接口的代理CSCF(P-CSCF),提供与不同管理域中的其他服务器接口的询问CSCF(I-CSCF),以及处理注册、执行策略并提供与应用服务器的接口的服务CSCF(S-CSCF)。这样的网络元件在此被称作SIP/IMS服务器,以及包括这些和其他网络元件的信令网络被称作基于SIP的网络。为了在基于SIP的网络中实现高级别的性能,重要的是在这些网络元件上均匀地分配业务负载。遗憾的是,常规的负载平衡技术常常不能很好地适合在SIP上下文中使用,并且可能无法提供期望的性能级别。在基于SIP的网络中的相关问题涉及过载控制。与其他网络元件一样,SIP/IMS服务器在业务需要超出其可用资源(例如其可用的处理资源)时可能会超载。即使在过量供应的情况下,过载也仍然可能因为各种原因而发生,这些原因包括由于"快闪"效应而导致的临时性业务波动、节点或链路故障、差的路由、由于维护和拒绝服务攻击而导致的业务转移等。目前已经开发了多种技术来解决通信网络中的过载控制。这些技术例如包括基于M/M/1排队系统的过载控制、以及为了在7号信令系统(SS7)上下文中使用而开发的过载控制技术。遗憾的是,这些和其他的常规过载控制技术无法解决过载对SIP性能的定量影响,并且无法提供特定的方法来处理基于SIP的网络中的过载,这在消息传送服务和信令拓朴方面常常更加复杂。因此,显然需要改进的负载平衡和过载控制技术,特别是在基于SIP的网络中。
发明内容本发明在说明性实施例中提供用于在基于SIP的网络或其他类型的通信网络中进行负载平衡和过载控制的改进的技术。根据本发明的一个方面,提供一种负载平衡技术,其中第一服务器接收来自网络的下游服务器的反馈信息,该下游服务器至少包括与第一服务器和目标服务器之间的相应的第一和第二路径相关联的第一和第二下游服务器,该反馈信息包括用于相应的下游服务器的拥塞量度。该拥塞量度例如可以是处理器利用率量度、消息处理负载、緩冲区占用率量度、消息处理延迟、或者任何其他类型的指示拥塞的信息、或者其组合。该反馈信息可以在一个或多个SIP100响应消息中从下游服务器被传送到第一服务器,该消息例如可以被编码在扩展报头中。第一服务器中的消息路由过程基于接收到的反馈信息来进行调整,以便补偿下游服务器的拥塞量度之间的不平衡性。所述调整在说明性实施例中是动态的,以便确保该消息路由过程记录普遍的网络状况,由此改善网络中的容量利用率。上述反馈信息的接收以及相关联的消息路由过程的调整可以在网络中的每个服务器处进行重复。换句话说,相对于网络的其他服务器,每一个所述服务器都可以作为第一服务器来工作。该反馈信息可以包括在第一服务器与目标服务器之间的第一或第二路径中的多个服务器的拥塞量度当中的最高拥塞量度。第一和第二下游服务器之一可以是目标服务器本身或第一服务器的最近的相邻服务器。例如,通过调整规定了将要在第一和第二路径上进行路由的给定消息集的相对百分比的路由信息,可以调整该消息路由过程。该路由信息至少可以包括存储在路由表或其他合适的数据结构中的、用于相应的笫一和第二路径的第一和第二路由概率。根据本发明的另一方面,提供一种过载控制技术,其中第一服务器接收来自网络的至少一个下游服务器的反馈信息,该下游服务器与在第一服务器和目标服务器之间的路径相关联,该反馈信息包括下游服务器的拥塞量度。基于该反馈信息,第一服务器产生封锁消息以用于递送到用户代理。该下游服务器可以是目标服务器本身或第一服务器的最近的相邻服务器。所述第一服务器可以是网络的入口服务器、或作为下游服务器的最近的上游邻居的核心网络服务器。同样,以上与第一服务器相关联的操作可以在网络的其他服务器处进行重复。因此,负载平衡和过载控制技术可以以分布式方式来实施,而无需集中式控制器。本发明的负载平tf和过载控制技术既可以单独使用,也可以组合使用。本发明的说明性实施例将这两种技术进行组合,以便提供在此被称为"过载安全SIP"或OS-SIP的增强型通信协议。有利的是,OS-SIP避免了由常规SIP通常显示出的拥塞崩溃问题,同时还提供更高的容量以及减少的振铃延迟和呼叫建立时间。因此,OS-SIP产生了显著的性能改进,并且提供了不依赖于业务负载的高可靠性服务。根据附图和后面的详细描述,本发明的这些和其他的特征和优点将变得更明显。图1是在其中实施本发明的实施例的基于SIP的网络的一部分的简化方框图。图2是说明基于SIP的网络的网络元件之间的呼叫流程的图。图3是作为基于SIP的网络中的所提供的负载的函数的吞吐量的曲线图,其说明与常规SIP技术相关联的拥塞崩溃状况。图4是图1网络的特定一个服务器的示例性排队系统的简化方框图。图5示出本发明的说明性实施例中的基于SIP的网络的示例性拓朴。图6和图7说明在具有图5所示的类型的拓朴的、基于SIP的网络中对下一跳负载平4軒技术的实施。图8说明在基于SIP的网络中对基于目标的负载平衡技术的示例性实施。图9是说明下一跳负载平衡技术与基于目标的负载平衡技术之间的差异的图。图10示出在基于目标的负载平衡中使用反馈信息的实例。图11和图12说明利用了相应的本地过载控制方法和入口过载控制方法的过载控制。图13示出作为基于SIP的网络中的所提供的负载的函数的吞吐量的曲线图,其说明本发明的说明性负载平衡和过载技术避免拥塞崩溃状况(例如图3所示的拥塞崩溃状况)的方式。图14示出作为基于SIP的网络中的所提供的负载的函数的振铃延迟的曲线图,其说明本发明的说明性负载平衡和过载技术可以避免可能由于使用常规SIP技术而导致的过多延迟的方式。具体实施例方式下面将结合示例性的基于SIP的网络以及相关联的负载平衡和过载控制技术来说明本发明。然而应该理解,本发明既不限于与说明性实施例的特定负载平衡或过载控制技术一起使用,也不限于与任何特定类型的网络或其他通信网络一起使用。所公开的技术适合与多种其他系统一起使用以及在众多可选应用中使用。图1示出在其中实施本发明的实施例的基于SIP的网络100的一部分。所示的网络100的该部分包括通信路径,该通信路径包括与第一终端用户相关联的用户代理客户端(UAC)102、第一服务器104、第二服务器106、以及与第二终端用户相关联的用户代理服务器(UAS)108。在网络100中,终端用户由称作用户代理(UA)的相应逻辑实体来处理。每一个这种UA都包括UAC和UAS。为了使说明清楚,图1所示的网络100的该部分是大大简化的,并且典型的这种网络将包括为许多用户代理服务的多个服务器。此外,如在此所用的术语"路径"打算被广义地解释成包含涉及网络的多个服务器的任何通信布置,并且不应被视作需要任何特定类型的链路建立或通信协议。因此,给定路径可以(但不是必须)根据通信协议来建立。从UAC到UAS的SIP消息被称为请求,而在相反方向上的SIP消息被称为响应。在这个特定实例中,与UAC102相对应的第一终端用户表示发送请求(例如发起呼叫)的主叫方,而与UAS108相对应的第二终端用户是接收来自主叫方的请求并且相应地做出响应的被叫方。所述请求和响应通过相应的实线110和虚线112来示出。显然,乂人UAC到UAS的给定请求可以遍历多个服务器,其主要目的是将消息路由得更接近于终端用户。服务器可以依靠域名系统(DNS)来从与电子邮件地址类似的SIP地址中解析IP地址。SIP协议被构造成多个层。底层是当前可以利用用户数据报协议(UDP)或传输控制协议(TCP)的传输(TR)层。事务层是SIP的心脏,其使用了传输层的服务并且将消息从一个SIP实体通过基于IP的网络可靠地递送到另一个SIP实体,该基于IP的网络如先前所述通常包含图中未明确示出的多个服务器。特别地,事务层提供消息重传,将响应匹配于请求,并且便于超时。该事务层包括客户端事务(CT)和服务器事务(ST)部分。客户端事务接收来自其上层的请求,并且将这些请求可靠地传送到其对等服务器事务,所述上层是事务用户或核心。客户端事务依靠定时器和重传来确保其对等体接收到消息。服务器事务从传输层接收消息,并且将这些消息递送到其核心。另外,服务器事务还通过向其对等客户端事务传送适当响应来提供对重传的过滤。该客户端事务与服务器事务之间的交互由一组有限状态机(FSM)来管S。在基于SIP的网络100中,存在两种类型的服务器,即无状态服务器104和有状态服务器106。无状态服务器不包含事务层。它的功能仅仅是将消息转发到下一跳。另一方面,有状态服务器终止事务层,并且因此也可以产生附加消息。例如,一旦接收到来自其上游邻居的请求,有状态服务器就可以产生针对多个目的地的多个请求,以便确定用以联系终端用户的适当位置,这种技术被称作"分叉(forking)"。图2是说明基于SIP的网络(例如图1的网络100)的网络元件之间的呼叫流程的图。在本实例中,^_设用UAA表示的第一UA向用UAB表示的第二UA发起呼叫。UAA与UAB之间的消息经过两个服务器,这两个服务器被表示为服务器A和服务器B。当UAA向UAB发起呼叫时,UAA通常向为UAA的域服务的出站服务器(服务器A)发送包含UAB的SIP地址的INVITE(邀请)请求。INVITE请求还包含SIP所需的其他相关信息、以及承载会话所需的附加信息(例如媒体和编解码器类型)。一旦接收到INVITE请求,服务器A就有可能执行DNS查询(未示出),以便定位为UAB服务的入站服务器(服务器B)。然后,服务器A将INVITE请求转发到服务器B。另外,服务器A还向UAA发送一个100Trying(尝试)响应,以便指示正在进4亍INVITE处理。假设INVITE请求因为服务器B拥塞而丢失。如果传输层不可靠(例如UDP),那么在服务器A处的事务层将由缺少100Trying而检测到所述丟失,并且重传INVITE请求。最终,当INVITE请求到达目的地时,UAB用一个180Ringing(振铃)响应来做出响应。如果被叫方决定应答该呼叫,则向主叫方发送一个200OK响应,而主叫方可以通过返回ACK来确认200OK(确认)响应。这时,承载信道被建立,并且可以开始在主叫方与被叫方之间的通信或其他数据传送。在会话的结尾,任一方都可以通过发送BYE(再见)请求来终止该会话。在本实例中,UAA通过发送BYE请求来终止该会话,该BYE请求通过来自UAB的200OK响应来确认。现在将参考图3来描述在基于SIP的网络变得过载时可能出现的拥塞崩溃问题。SIP消息丢失能够发生主要是因为在IP传输网络中或在服务器处的拥塞。在既传送控制业务又传送数据业务的良好设计的网络中,由于对SIP业务给予的优先级很可能高于对更加主要但不大关键的尽力而为数据业务给予的优先级,因此,IP传输网络中的SIP消息丟失预计可能会^f艮低。这例如可以通过使用如在S.Blake等人的"Anarchitecturefordifferentiatedservices,"IETFRFC2475,Dec.1998中描述的有差别服务来完成。因此预计,在基于SIP的网络中,由于服务器拥塞而导致的消息丢失很可能起到更为突出的作用。SIP使用了用A到K表示的各种定时器来确保消息的可靠递送。当服务器拥塞时,这些定时器可以触发更多重传,这可能导致更严重的拥塞。图3说明在服务器未经受过载控制时作为所提供的负载的函数的服务器的呼叫吞吐量性能的实例。该曲线图利用在服务器处两个消息緩沖区大小来说明(B=1000条消息和B=30000条消息)。可以观察到,当没有过载控制时,在所提供的负载超出服务器的容量时,呼叫吞吐量会显著降低。而且,呼叫吞吐量性能随着消息緩沖区大小的增大而恶化。这种特性与数据业务的拥塞崩溃是一致的。例如可以参见J.Nagle的"CongestioncontrolinIP/TCPinternetworks,"IETFRFC896,Jan.1984。本发明提供了避免图3中所示的拥塞崩溃问题的技术。在一个说明性实施例中,这些技术既包含负载平衡技术又包含过载控制技术。然而将会认识到,在此描述的负载平衡和过载控制技术可以相互分开地使用。也就是,本发明的给定实施例可以只实施负载平衡而不实施过载控制,反之亦然。现在将描述适合与本发明结合使用的多种示例性过载控制算法。为了说明的目的,这些算法被描述成在单个服务器而不是在服务器的网络上工作。这些算法中的前两种算法(被称为占用率算法(OCC)和接受率算法)的常规方面分别在下面的文献中被描述1990年11月27曰以B.L.Cyr等人的名义颁发的题为"Loadbalancingandoverloadcontrolinadistributedprocessingtelecommunicationsystem,,的美国专利No.4,974,256,以及S.Kasera等人的"Fastandrobustsignalingoverloadcontrol,"InternationalConferenceonNetworkProtocols,2001。然而,这些算法迄今为止尚未适合用在SIP上下文中。所要描述的最后的过载控制算法是一种改进版本的接受率算法,我们已经确定这种算法特别很好地适合在基于SIP的网络中提供过载控制。应该理解,本发明的实施例可以使用占用率算法、接受率算法、改进的接受率算法、或另一种过载控制算法。在占用率算法中,对服务器的呼入由变量/控制,该变量/表示被接受的呼叫的百分率(fraction)。因此,新呼叫被接受的概率是/,或者等同于其被封锁的概率是1/。在将这种算法应用于SIP上下文的过程中,INVITE请求可以以概率/被接受,同时只要服务器中的消息緩冲区未满,那么其他消息就始终被接受。根据当前系统过载状况,占用率算法的目标是动态调整/以便保持高的呼叫吞吐量。该过栽状况是以处理器利用率p为基础的,该处理器利用率々每r秒就被周期性地探查一次。在每第n个探查的时期(epoch)中,平均处理器利用率^(")就被更新,并且与目标利用率p,进行比较。平均利用率可以作为在先前A个时期上的移动平均值(ma)来计算》(")=丄2::=^+1^),或者可以通过指数加权的移动平均值(EWMA)来计算3(")二(l一/讽w—i)十肿),其中0</<1。占用率算法的基本思想是在3</^的情况下增大/,否则减小/。令/(")表示在当前时期"中最近更新的/,而/("-l)表示在时期"-l中更新的/。在每一个时期中更新/的算法被描述如下。1,如果-/("-1)>11),其他,其中厶m表示被接受的业务的最小百分率的阈值。乘法因子^由下式给出其中0_定义了/在从一个时期到下一个时期中最大可能的乘法增加。在上述S.Kasera等人的参考文献中表明,因为p无法超出1,因此,当系统过载时,占用率算法不能将/减小10%以上,因此该算法在突然业务波动的情况下可能反应太慢。接受率算法的基本思想是使用3来代替》,其中5表示系统中的平均呼叫接受率。目标接受率"^可以被设置为=//Aarg,其中//是系统呼叫传送容量,其可以用;^5/》来估计。建议由EWMA来更新",叫,其中所述EWMA与5相比具有更平滑的平均值。所述接受率算法使用了下列乘法因子—"雄/s已经认识到,占用率算法和接受率算法的常规实施的问题在于,它们没有考虑到系统中未完成的工作。特别地,如果3="^,那么/(")=/("-1),这独立于消息队列内容。代之以,当5二a,叫时,如果队列内容过高,则希望减小/("),如果队列内容过低,则希望增大/(")。第二个观察结果是,对于要比较的变量与目标参数之间相同量的差(正的或负的)而言,上述算法增大/(")往往会多于减小/(")。因此,对于改进的接受算法如下修改^。<formula>formulaseeoriginaldocumentpage12</formula>其中《是以消息的数量为单位、在每一次消息到来时使用EWMA更新的平均队列长度,^arg是队列目标,以及N是每个呼叫的平均消息数量。在每次消息到来时对平均队列长度的更新可以被视为一种类型的事件驱动的更新。这种事件驱动的更新的其他实例在S.Floyd等人的"Randomearlydetectiongatewaysforcongestionavoidance,"IEEETransactionsonNetworking,Vol.1,No.4,pp.397-413,Aug.1993中进行了描述。为了评估前述的过载控制算法在SIP环境中的性能,可以模拟一个实施SIP的整个事务层的服务器,例如图1的有状态服务器106。特别地,当处理新的请求或响应时,一个客户端事务一皮创建,并且其状态随后由FSM管理。在SIP中有四种类型的FSM,这取决于该消息是请求还是响应以及该消息类型是INVITE还是非INVITE。图4示出可以在有状态服务器(例如图1的服务器106)中实施的排队系统400的结构。该系统400包括消息緩沖区402、定时器緩冲区404、以及作为中央处理器(CPU)被说明性示出的处理器406。用于无状态服务器的等效系统不具有定时器緩沖区,因为无状态服务器充当转发器。如果存在可用空间,则输入的INVITE消息在消息緩冲区中排队。我们采用了FIFO排队规则,尽管当然可以使用其他规则。CPU406为处于队列最前面的消息提供服务,从而执行必要的FSM,产生到下一跳的消息,并且有可能启动定时器。这些定时器被放置在根据其启动(firing)时间排序的定时器队列中。当定时器启动时,其相关联的上下文被排列到消息緩沖区中,并且该定时器的复位版本在定时器緩沖区中被重新排队。终止的定时器简单地离开系统。如果封锁了新呼叫,那么服务器产生一个500响应。图5示出基于SIP的网络的拓朴的一个可能实例,其示出服务器的布置,其中每一个服务器用一个小圆来表示。该网络包括被表示为服务器1和2的核心服务器,以及被表示为服务器3、4、5、6和7的入口/出口服务器。每一个入口/出口服务器与多个未示出的UA相耦合,并且与核心服务器1和2相耦合。下面参考图6-8、11和12,将使用具有这种类型的拓朴的网络来说明本发明的负载平衡和过载控制技术。在评估具有图5所示的拓朴的、基于SIP的网络的性能的过程中,假设无限数目的UA根据泊松过程而以A个呼叫/秒的集合速率发起端到端呼叫。给定的一对UA之间的所有消息遍历经过多个服务器,其中每一个服务器都具有如图4所述的排队系统。我们使用与图2的呼叫流程类似的呼叫流程,只是重传完全由SIPFSM管理。下面在表l中列出可以在过载控制算法中使用的参数值的实例。应该认识到,这些特定值仅仅作为说明性实例被给出,并且在其他实施例中可以使用其他的值、参数集和过载控制算法。此外,在描述说明性实施例的过程冲在此做出的上述假设和其他假设不应该被解释成限制本发明。本发明可以在这些^艮设中的一个或多个不适用的可选实施例中^皮实施。<table>tableseeoriginaldocumentpage13</column></row><table>表l:用于过载控制算法的示例参数值现在将在本发明的说明性实施例中描述在基于SIP的网络或其他类型的网络中使用的多种过载控制技术。存在多种可以被用来通过使用别的常规SIP消息来通知过载的方法。一种方法是通过把503ServiceUnavailable(服务不可用)响应从过载服务器发送到其上游的相邻服务器来提供关于过载服务器的通知。该响应可以经由Retry-After(稍后重试)报头字段来声明过载服务器将为不可用的时间量。一旦接收到这条消息,无论请求的目的地如何,上游相邻服务器都不将在给定的持续时间内向过载服务器发送任何其他请;见这;机制对过载做出的反l是糟i、的:因为503J应通常使得大量业务被转移到其他备选服务器,而这又导致别处的过载。如果其他服务器也实施相同的机制,那么过载很可能将从一个服务器振荡到另一个服务器。另一个可以-故用来通知过载的消息是500ServerInternalError(服务器内部错误)。与本质上是全局性的503响应不同,500响应仅仅局部适用于给定的呼叫。为了控制过载,响应于INVITE请求而最有效地应用500响应,以便拒绝新的呼叫。一种可选方法是不显性发送指示过载的通知消息,而是简单地丢弃INVITE请求以便封锁新呼叫。由于这种方法可能会导致大量重传,所以该方法通常可能无法^艮好地工作。另一个重要问题是关于发起过载通知的服务器的位置。最简单的方法是由每一个过载服务器自主地发起通知,这种方法在此被称为本地过载控制。在图11中示出一个实例,其中服务器S6通过向上游发送500响应来使用其自身的本地信息以便拒绝呼叫,正如下面将进一步详细地描述的那样。这种方法的优点在于,它仅仅使用本地信息来做出决定。然而,这种方法会消耗附加资源来封锁呼叫,而这会使过载服务器恶化。另一种称为入口过载控制的方法是向上游传播每一个目标的过载状态信息,例如经由100Trying响应中的新报头。转发该信息的每一个服务器将其自身的过载状态值与接收到的下游过载状态值进行比较,并且向上游传播这两个过载状态值中的最大值。对于给定的目标而言,入口服务器根据过载状态信息来决定接受还是封锁新呼叫。在图12中示出一个将要在下面更详细描述的实例。入口过载控制防止网络核心中的资源被浪费地消耗在被封锁的呼叫上。然而,由于可能存在到给定目标的多条路由,因此这种方法可能难以实现。解决这个问题的一种方法是在可能的路由中选取最大过载状态。介于前两种方法之间的第三种方法被称为倒数第二(penultimate)过载控制。这里,处于过载服务器之前的服务器是封锁新呼叫的服务器。再次参考图11,示出其中倒数第二个服务器是服务器S4的实例。因此,这种方法还使过载服务器不必消耗附加资源。然而,这种方法需要更智能的消息交换,以便通知何时开始和停止拒绝呼叫。如上所述,本发明的说明性实施例可以同时结合负载平衡和过载控制技术。现在将参考图6-10来更详细地描述示例性负载平衡技术,之后参考图11和图12来进一步描述示例性过载控制技术。最后将参考图13和图14来描述可归因于所述负载平衡和过载控制技术的组合使用的性能增强的说明。现在参考图6和图7,说明一种在此被称为下一跳负载平衡的方法。在所示的基于SIP的网络中,如所示,UA600与服务器S1、S2、S5和S6相耦合。这些服务器是入口/出口服务器,例如在图5的示例性拓朴中所示的服务器。服务器S1、S2、S5和S6中的每一个都被耦合到核心服务器S3和S4。因此,图6和图7以及图8、图11和图12中所示的网络具有图5所示的类型的拓朴。同样,该网络拓朴仅仅是示例性的,并且所描述的技术可以以直截了当的方式适合于众多可选拓朴。在下一跳负载平衡方法中,每一个服务器根据从其下游邻居接收的拥塞反馈信息来独立且动态地调整针对其下游邻居的路由概率。例如,如图6所示,服务器Sl具有两条把SIP请求消息发送到与S5相连的UA的路由,即通过下游服务器S3和S4。一旦接收到来自Sl的SIPINVITE消息,下一跳S3和S4就可以通过将这个信息附着于100Trying消息来周期性通告其拥塞量度,所述100Trying消息响应于INVITE而被传回到S1。在图6的实例中,S3通告其拥塞量度是利用率u=0.2,而S4独立地通告u=0.6作为其拥塞量度。虽然本实例中的拥塞量度是利用率量度,但是也可以使用多种其他类型的拥塞量度。因此,如在此所用的术语"拥塞量度"打算被概括性解释以便包含例如处理器利用率量度、消息处理负载、緩沖区占用率量度、消息处理延迟、或任何其他类型的指示拥塞的信息、以及这种量度或信息的组合。根据从S3和S4接收的反馈信息,Sl调整其路由概率,其目的是均衡在S3和S4处的拥塞量度。在图7中示出路由概率的这种调整,该图说明最终导致在核心服务器S3和S4处的负载平衡状况的路由概率的变化。更具体地说,响应于表明服务器S4具有高于服务器S3的利用率的反馈信息,服务器Sl调整其路由概率,使得将给定消息路由到服务器S4的概率例如是0.4,而将给定消息路由到服务器S3的概率例如是0.6。这种调整将往往会增大路由到服务器S3的消息的数量,同时减少路由到服务器S4的消息的数量,从而导致如所示的负载平衡状况。在这里将可以在本发明的给定实施例中使用的另一种负载平衡方法称为基于目标的负载平衡。图8说明应用于基于SIP的网络的这种方法,该网络包括如先前描述的那样布置的服务器Sl到S6。该方法使用了沿着从下游服务器到目标服务器的路径的拥塞信息。特别地,拥塞量度表示从下游服务器到目标服务器的最坏拥塞量度。在该图中可以看出,服务器S3、S4和S5分别具有利用率0.2、0.6以及0.3。在服务器Sl与目标服务器S5之间示出两条路径,一条路径经由服务器S3,另一条路径经由服务器S4。对经由S3到达S5的路径来说,最大利用率是S5利用率0.3,因此该利用率作为反馈信息而被传播回到Sl。同样,对经由S4到达S5的路径来说,最大利用率是S4利用率0.6,因此该利用率作为反馈信息而被传播回到Sl。然后,服务器Sl对其路由概率进行相应调整,以便产生负载平衡状况。在图9中说明上述的下一跳负载平衡技术与基于目标的负载平衡技术之间的差异。在本实例中,源服务器S经由具有相关联的路由概率ql和q2的第一和第二路径将消息路由到目标服务器T。所述第一或上部路径经过具有相应利用率0.2和0.6的服务器901和902。所述第二或下部路径经过具有相应利用率0.5和0.1的服务器903和904。在下一跳负载平衡方法中,由于服务器903的利用率值0.5高于服务器901的利用率值0.2,因此,在服务器S处的路由概率ql和q2将被调整,以使在路由概率q2将被减小的同时路由概率ql将被增大,直至在服务器901和服务器903处的利用率值变得基本上相等,也就是负载平衡。在基于目标的负载平衡方法中,第一和第二路径中的最高利用率值分别是服务器902的利用率值0.6以及服务器903的利用率值0.5。由于第一路径的最高利用率值高于第二路径的最高利用率值,因此,在服务器S处的路由概率ql和q2将被调整,以便在减小路由概率ql的同时将增大路由概率q2,直至产生负载平衡状况。可以看出,这两种方法可以为同一组的服务器利用率值产生不同的路由概率结果。虽然在某些条件下执行下一跳负载平衡不如执行基于目标的负载平衡那样好,但是与基于目标的负载平衡相比,下一跳负载平衡实施起来更简单。图10说明可以通过网络传播反馈信息并将其存储在给定节点处的;洛由表1000中的方式。在本实例中,网络包括源节点和附加节点i、j、k、1、m、n、r、s以及z,它们具有相应的利用率0.1、0.1、0.2、0.5、0.3、0.4、0.4、0.3以及0.1。从a到z的^各径可以遍历下列路由(1)(a,i,k,m,n,z),(a,i,k,m,r,z),(a,i,k,1,k,m,n,z),(a,j,…,s,z)等等。特别地,如果路径沿着(a,i,k,m,n,z)前进,那么从i返回到a的反馈信息是0.4。如果路径沿着(a,i,k,1,k,m,n,z)前进,那么从i返回到a的反馈信息是0.5。这种路径差异是由于在SIP中所允许的螺旋。根据先前所述的基于目标的负载平衡方法,节点a与节点z之间的上部路径的最高利用率的范围是0.4到0.5,而节点a与节点z之间的下部路径的最高利用率是0.3。这个反馈信息通过网络被传播回到节点a,在那里该信息被存储在路由表1000中。可以使用各种方法来规定上部路径的单个拥塞量度值。一种简单的方法是对上部路径拥塞量度采用最坏情况值0.5。为了使说明清楚,该路由表被大大地简化,但是通常包含用于下述的列目标节点,指示到目标的特定路径的经由节点,特定路径的最高利用率,以及路由概率。当然,在实施本发明的过程中可以使用多种可选路由表格式。如下是在被表示为服务器,'的给定服务器内分布式负载平衡算法的一个可能实例,其中所述实例可以在实施上述的下一跳或基于目标的负载平衡方法的过程中被使用令(6/)-从/经由下一跳y(目的地是目标d)的业务的百分率令",(司=服务器所观察到的经由y(到目标d)的"已平滑,,利用率在每一次更新时,计算Axy(rf)=(CA-"^(rf)),其中t/i=S"讽然后,新的业务分配由下式给出在本实例中,、(力值通常对应于先前所述的路由概率。该算法可以在每一个服务器处周期性地执行,例如每T秒。对于本领域技术人员来说,用于实施在此描述的下一跳或基于目标的负载平衡方法的其他合适的算法将是显而易见的。如上所述,现在将参考图11和图12来说明先前描述的本地的、倒数第二和入口过载控制技术。虽然在此已经描述了这些过载技术,但是现在将参考特定实例来对其进行进一步的描述以便说明负载平衡技术,其中所述特定实例涉及简化的基于SIP的网络,该网络具有与图6-8中所使用的类似的配置。首先参考图11,说明本地过载控制技术。在本实例中,基于SIP的网络包括如在图6-8的实例中那样的UA和互连的服务器Sl-S6。可以看出,服务器S6已经变得过载,因此该服务器在本地拒绝新的呼叫。在本实例中,被用来通知过载的机制是先前所述的500ServerInternalError消息。如上所述,该500响应但J又局部适用于*合定呼叫,并且响应于INVITE请求而被最有效地应用。因此,这种方法仅仅利用了本地信息,但是在拒绝呼叫的过程中消耗附加的本地资源。此外,图11还说明可选的倒数第二过载控制方法,有利的是,该方法使过载服务器S6免于执行与产生500响应相关联的附加处理。这通过在服务器S4处而不是在过载服务器S6处拒绝呼叫来实现。因此,S4将需要来自其下游邻居S6的信息。图12示出入口过载控制方法,其中在入口节点处拒绝新呼叫,所述入口节点在所示实例中是服务器S2。反馈信息从服务器S6通过网络进行传播,该反馈信息表明在服务器S6处以利用率值0.95的形式的过载状况。服务器S2利用该信息来拒绝被定向到服务器S6的新呼叫。有利的是,当呼叫被封锁时,这种入口过载控制方法防止网络核心中的资源浮皮不必要地消身毛。然而,该方法利用了^各径信息,该路径信息在一些实施中可能不能容易地获得。从前面的描述中显而易见的是,结合图6-12的实例所描述的说明性实施例利用反馈信息来提供负载平衡和过载控制。根据本发明一个方面的这个反馈信息以及相关联的负载平衡和过载控制技术提供一种增强类型的SIP,其在此被称作"过载安全SIP"或OS-SIP。应该指出,虽然OS-SIP使用了负载平衡和过载控制二者,但是其他实施例可以使用或负载平衡或过载控制,而不是使用二者。图13和图14分别示出作为所提供的负载的函数的吞吐量和振铃延迟的曲线图,从而将常规SIP的性能与OS-SIP的性能进行比较。这些曲线图是为图6-8、11和12所示的类型的示例性的基于SIP的网络而产生的,其中六个服务器Sl-S6如这些图所示被互连。假设基础IP网络是无拥塞的,并且呼叫是依照泊松过程到达的。假设失败的呼叫以概率0.1被重试。此外,假设呼叫保持时间以150秒为均值进行指数分布,并且假设振铃-应答延迟是以3秒为均值均勻分布的。来自服务器Sl和S2的路由概率分别由(ql,q2)和(q3,q4)给出,其中在一开始,ql=q3=0.4并且q2=q4=0.6。用于服务器的相对加速因子是Sl=0.6,S2=0.6,S3=0.6,S4=0.3,S5=0.5以及S6二0.5。此外在本实例中,假设所有服务器都是有状态的。现在参考图13,示出作为所提供的负载的函数的吞吐量的曲线图,从而将常规或"简单"SIP与OS-SIP进行对比。常规SIP的吞吐量遵循实曲线,并且在本实例中在大约每秒800个呼叫时显示出拥塞崩溃问题。OS-SIP的性能由虛曲线示出。容易看出,由于使用了过载控制,因此OS-SIP避免了常规SIP所显示出的拥塞崩溃问题。此外,OS-SIP相对于常规SIP显示出容量增加,达到大约每秒IOOO个呼叫的最大吞吐量。这个增加的容量归因于使用了如在此所述的负载平衡技术。图13中的曲线图表明,OS-SIP产生了显著的性能改进,并且提供了不依赖于业务负载的高可靠性服务。参考图14,进一步明显的是,OS-SIP相对于常规SIP还在振铃延迟方面提供了很大改进。更具体地说,即使在业务负载变得繁重时,OS-SIP也确保可接受的延迟性能。同样,将会认识到,上述说明性实施例的特定参数、假设、网络拓朴和其他特征仅仅是作为示例被给出的。虽然在此描述的技术与基于SIP的网络(例如IMS网络)一起使用是特别有用的,但是该技术也可以应用于使用了多种不同通信协议中的任何一种的多种其他类型的通信网络。对于本领域技术人员来说,在所附权利要求书的范围内的这些实施例以及众多的其他可选实施例都将是显而易见的。权利要求1.一种在包括多个服务器的网络中路由消息的方法,所述方法包括以下步骤在第一服务器中接收来自所述网络的下游服务器的反馈信息,所述下游服务器至少包括第一和第二下游服务器,所述第一和第二下游服务器与在所述第一服务器和目标服务器之间相应的第一和第二路径相关联,所述反馈信息包括用于所述相应的下游服务器的拥塞量度;以及在所述第一服务器中基于所接收的反馈信息来调整消息路由过程,以便补偿在所述下游服务器的拥塞量度之间的不平衡性。2.权利要求l所述的方法,其中,所述反馈信息包括在所述第一服务器与所述目标服务器之间的所述第一和第二路径中的同一个路径上的多个服务器的拥塞量度当中的最高拥塞量度。3.权利要求l所述的方法,其中,所述第一和第二下游服务器之一是所述目标服务器。4.权利要求l所述的方法,其中,所述第一和第二下游服务器中的至少一个是所述第一服务器的最近的相邻服务器。5.权利要求l所述的方法,其中,在所述第一服务器中基于所述反馈信息来调整消息路由过程的所述步骤还包括对规定了将要在所述第一和第二路径上进行路由的给定消息集的相对百分比的路由信息进行调整。6.—种用于在网络中路由消息的设备,包括所述网络的第一服务器,其被配置成接收来自所述网络的下游服务器的反馈信息,所述下游服务器至少包括第一和笫二下游服务器,所述第一和第二下游服务器与在所述笫一服务器和目标服务器之间相应的第一和第二路径相关联,所述反馈信息包括用于所述相应的下游服务器的拥塞量度;其中所述第一服务器还被配置成基于所接收的反馈信息来调整消息路由过程,以便补偿在所述下游服务器的拥塞量度之间的不平衡性。7.—种在包括多个服务器的网络中路由消息的方法,所述方法包括以下步骤在第一服务器中接收来自所述网络的至少一个下游服务器的反馈信息,所述下游服务器与在所述第一服务器和目标服务器之间的路径相关联,所述反馈信息包括用于所述下游服务器的拥塞量度;以及在所述第一服务器中基于所述反馈信息来产生封锁消息以用于递送到用户代理。8.权利要求7所述的方法,其中,所述反馈信息包括在所述第一服务器与所述目标服务器之间的所述路径上的多个服务器的拥塞量度当中的最高拥塞量度。9.权利要求7所述的方法,其中,所述下游服务器是所述第一服务器的最近的相邻服务器。10.—种用于在网络中路由消息的设备,包括所述网络的第一服务器,其被配置成接收来自所述网络的至少一个下游服务器的反馈信息,所述下游服务器与在所述第一服务器和目标服务器之间的路径相关联,所述反馈信息包括用于所述下游服务器的拥塞量度;其中所述第一服务器还被配置成基于所述反馈信息来产生封锁消息以用于递送到用户代理。全文摘要公开了在基于SIP的网络或者包括多个服务器的其他类型的网络中使用的负载平衡和过载控制技术。在负载平衡技术中,第一服务器接收来自至少第一和第二下游服务器的反馈信息,所述第一和第二下游服务器与在第一服务器和目标服务器之间相应的第一和第二路径相关联,该反馈信息包括用于相应的下游服务器的拥塞量度。第一服务器基于所接收的反馈信息来动态调整消息路由过程,以便补偿下游服务器的拥塞量度之间的不平衡性。在过载控制技术中,第一服务器使用从至少一个下游服务器接收的反馈信息来产生封锁消息,以用于递送到用户代理。文档编号H04L12/56GK101416453SQ200780011725公开日2009年4月22日申请日期2007年3月30日优先权日2006年3月31日发明者I·维亚亚,V·希尔特申请人:卢森特技术有限公司