用于会话发起协议处理元件的突发业务平滑的装置和方法

文档序号:7683095阅读:114来源:国知局

专利名称::用于会话发起协议处理元件的突发业务平滑的装置和方法
技术领域
:本申请一般涉及改进的数据处理系统和方法。更具体而言,本申请针对的是一种用于会话发起协议(SIP)信令元件的突发业务平滑(bursttrafficsmoothing)的系统和方法。
背景技术
:会话发起协议(SIP)是一种应用层控制(信令)协议,其用于创建、修改和终止与一个或多个参与者的会话。这些会话包括因特网电话呼叫(也称为"电话通信(telephony)")、多媒体分发、多媒体^i义等(参见可从www.ietf.org/rfc/rfc3261.txt处的IETFSIP工作组获得的RFC3261)。2000年11月,SlP被接受为第三代^ft伙伴关系项目(3GPP)信令协议以及IP多媒体子系统(IMS)体系结构的永久元件。与H.323和其它协议一起,SIP被广泛用作基于IP的话音传输(VoIP)的信令协议。SIP是寻址中枢,且地址^皮表示为各种类型的URL/URI,例如H.323地址、E.164电话号码、电子邮件型地址等。SIP客户机惯常使用传输控制协议(TCP)和用户数据报协议(UDP)端口5060来连接至SIP服务器以及数据网络中的其它SIP端点。SIP主要用于建立和拆断话音或视频呼叫。然而,其可以用于在其中需要^"发起的任何应用中,例如事件预约和通知、终端移动性等。所有的话音/视频通信均通过单独的会话协议(通常是实时传输协议(RTF))来完成。SIP的促成目的是提供一种信令和呼叫建立协议,用于基于网际协议(IP)的通信,其可以支持出现在公共交换电话网络(PSTN)中的呼叫处理功能和特征的超集。SIP通过其自己并不定义这些特征,因为其焦点在于呼叫建立和信令。然而,已经将其设计成使得能够在称为代理服务器和用户代理的网络元件中构建这样的特征。这些是准许包括拨号、使电话振铃、收听回铃声或忙音等在内的常见电话类操作的特征。启用了SIP的电信网络还可以实现出现在7号信令系统(SS7)中的很多较为先进的呼叫处理特征,尽管这两个协议本身非常不同。SS7是高度集中式协议,其特征在于高度复杂的中央网络体系结构和哑端点(即常规电话手机)。SIP是对等协议。如此,其仅需要非常简单并且因而高度可扩缩的核心网,且智能分布至网络边缘,即嵌于端点中(以石更件或软件构建的终接设备)。在通信端点中(即,在网络的边缘)实现SIP特征,这与在网络中实现的常规SS7特征形成对比。SIP与若干其它的协议一致工作,并且仅涉及通信会话的信令部分。SIP充当会话描述协议(SDP)的载体,会话描述协议(SDP)描述会话的媒体内容,例如,要使用什么IP端口、正使用的编解码器等。在典型使用中,SIP"会话,,是实时传输协议(RTP)的简单分组流。RTP是用于实际话音或视频内容本身的载体。虽然SIP提供了一种非常有用的通信协议,通过其可以实现多媒体通信,例如VoIP或视频通信,但是关于丢失通信,SIP仍可能发生问题。也就是说,当SIP服务器正在处理的SIP业务超过了SIP服务器的调度队列可以处理的最大业务量时,SIP会话便开始发生丢失,即通信丟失。举例来说,如通常所知的,数据通信常常易受业务突发(即在短时间内数据传输的大量增加)的影响。当SIP业务经历突发时,SIP服务器的调度队列可能变得过栽,并且结果是,可能丢失SIP业务数据分组并且因此丢失SIP通信。为了对这样的突发进行补偿,虑及在最大M估计考虑下所预期的突发负载来对SIP环境(即SIP服务器的调度队列、SIP服务器数等)进行皿估计。如果当前配置不能够处理SIP业务的最大预期突发,则必须添加附加的SIP服务器系统。然而,在系统运作的大多数时候,并不利用用于处理业务突发的额外容量。因而,存在增加整个系统成本的浪费的资源。
发明内容说明性实施例提供了一种用于^发起协议(SIP)元件的突发业务平滑的系统和方法。说明性实施例的机制使用SIP用户数据报协议(UDP)重传特性,结合可测网^J员失以及系统负载特性,自适应地平滑UDP突发业务,从而改进SIP通信的处理。利用说明性实施例的机制,较少的SIP服务器或处理器能够处理比过度4M尝业务突发的已知系统中要高的、显示周期性业务突发的平均负栽。使用说明性实施例的机制的结果是,业务突发不再是配置SIP系统中主要的规模估计考虑,因为通过说明性实施例的平滑机制较好地处理了业务突发。给定具有指定"突发性(burstiness)"的特定TCP/UDP负载分布(profile),可以预先计算使用说明性实施例的机制时"突发性"变得如何平滑,并且可以使用"突发性"的该平滑性作为规^莫估计SIP系统中的因素。如以上所提及的,SIP客户机惯常使用传输控制协议(TCP)和用户数据报协议(UDP)来连接至SIP服务器以及数据网络中的其它SIP端点。UDP是因特网协议组的核心协议之一。使用UDP,联网计算机上的程序可以彼此发送短消息(有时称为数据报)。UDP并不提供TCP所提供的可靠性和排序保证。UDP数据报可能无序到达或者在没有通知的情况下遗失。在没有检查是否每个分组均实际到达的开销的情况下,出于很多轻便或时间敏感的目的,UDP更快并且更有效。此外,UDP的无状态特性对于向来自于大量客户机的小查询进行应答的服务器来说是有用的。UDP通常用于广播(向本地网络上的所有设备发送)和多播(向所有订户发送)。使用UDP的常见网络应用包括域名系统(DNS)、流媒体应用、基于IP的话音传输(VoIP)、普通文件传送协议(TFTP)以及联机游戏。关于i兌明性实施例,利用UDP数据才艮的特性来确定在SIP服务器的SIP调度队列变得过载的情况下,丢弃哪些数据分组。也就是说,SIP调度队列可以接受两类SIP消息TCP和UDP消息。由于TCP消息一旦被接受到所述调度队列中,其决不会被另一SIP元件重传,尽可能地在所述调度队列中保存TCP消息是重要的。从所述调度队列中舍弃任何TCP消息都可能导致某种通信失败。然而,利用UDP,由于其重传特性,存在将重传任何给定UDP消息的良好机会。利用说明性实施例,调度队列SIP容器测量在低负载时间(即,调度队列负载或长度《小于预定门限)时的平均UDP分组丟失,以便获得对网络质量w的测量,其中w是范围在0到1内的网络分组丢失。所述网络质量表示遍及所述容器的操作环境,有多可能丢失单个UDP分组。所述SIP服务器可以计算任何给定UDP分组是超时之前最后传输的一个的可能性,即范围在0到1内的SIP重传率/,而不需要明确知道该分组是否是重传的。该计算可以基于已知的SIPTl、T2和6铲T1请求超时计时器(在SIP规范中对其进行了描述)。举例来说,如果T1和T2要求协议给予7次重传,那么任何给定UDP分组均具有7次中1次的机会成为在对于给定消息超时之前最后传输的一个。然而,这^fa设客户机总是实现该协议所要求的重传数。所述容器可以利用指定的容许丢弃消息率rf,其可以与应用可靠性要求相关。可以将该指定的容许丢弃消息率输入所述容器,可以以任何适于本领域的普通技术人员确定的方式来确定其值。举例来说,可以将容许丢弃消息率提供为J=0.99999,意味着需要成功处理所有消息中的99.999%。给定已知的当前调度队列长度以及已知的最大固定调度队列大小,所述容器可以测量队列有多满,即作为从0到1的度量的调度队列负载《。可以将这些参数,《,w,/和rf,馈送给指定函数/(《,",/,力,其给出了对于已知队列负栽(或长度)、网络分组丟失、SIP重传率,以及容许丢弃消息率,所述容器将保留任何给定UDP分组的概率。举例来说,该指定函数可以采取/(《)-(l-《)Ac的形式,其中c〈l并且依赖于",/和J。该函数导致当调度队列上的负载增加时更频繁地丢弃UDP分組。适当利用该函数,任何输入TCP分組便被插入到所述调度队列,因为丢弃TCP分组自动地使通信失败。所述调度队列容器可以生成范围在0到1内的随机数r。所述容器然后可以在给定即时调度队列负载或长度《以及固定的w,/和rf值的情况下计算/^,w,/,力的值。如果N/,则可以保留任何输入UDP分組,并且将其插入到所述调度队列。如果/>/,那么丟弃UDP分组,因为已经在统计上确定这样l故的话将不会导致不可接受数目的通信失败。应当注意,并不对每一确定都计算/0的值,而是可以提供查找表,并且将其存储在存储器中,用于在对关于是丢弃还是保留UDP分纽进行确定时使用。有效地,函数/(《,",/,rf)规定了在给定已知有关网络、SIP协议、调度队列负载以及可靠性需求的情况下,应当以什么概率跳过对分组的处理,因为希望(在"确定度的情况下)在请求超时之前会处理对所述分组的重传。利用该函数,在假设稍后(当估计可能有较少负栽时)将会看到对这些UDP分组的重传的情况下,当调度队列负栽增加时,UDP分组被更为积极地丢弃。因为丢弃行为是基于已知因素而自适应改变的,可以控制对请求的处理基于操作需求将完全失败的风险。总之,使用说明性实施例的机制,可以减少处理具有突发行为的SIP业务所需要的物理系统数。因此,说明性实施例改善了所感知的系统性能,并且减少了处理稍孩t具有尖脉沖时刻(spikymoment)的还算恒定的负栽所必须的系统数。在一个说明性实施例中,提供了一种用于管理调度队列的方法。所述方法可以包括基于所述调度队列的当前负载,确定丢弃函数值(dropfunctionvalue);评估所述丢弃函数值,以便确定是否将要丟弃一个或多个数据分组;以及如果所述评估指示将要丢弃一个或多个数据分组,则丢弃笫一类型的一个或多个数据分组。可以总是将第二类型的数据分组添加到所述调度队列,而不管所述评估是否指示将要丢弃一个或多个数据分组。所述第一类型的数据分组可以是用户数据净艮协议(UDP)数据分组,并且所述第二类型的数据分组可以是传输控制协议(TCP)数据分组。可以在M发起协议(SIP)容器中实现所述方法。评估所述丟弃函数值可以包括生成随机或伪随机值,将所述随机或伪随机值与所述丟弃函数值进行比较,以及如果所述随机或伪随机值具有关于所述丢弃函数值的预定关系,则确定将要丟弃一个或多个数据分组。所述预定关系可以是所述随机或伪随机值大于所述丢弃函数值。可以使用在一个或多个网络损失和系统负载特性参数上操作的丢弃函数来确定所述丟弃函数值.可以将所述网络损失特性参数测量为在调度队列长度小于预定门限的时间点处的平均分组丢失。可以动态地确定所迷系统负载特性参数。所述丟弃函数可以指定对于确定的调度队列长度,SIP容器将保留任何给定用户数据才艮协议(UDP)分组的概率。所述丢弃函数可以导致在所述系统负栽增加时更加频繁地丟弃UDP分组。可以基于所述调度队列的当前负载、网络质量值、重传率值和容许丟弃率值的函数来确定所述丢弃函数值。举例来说,所述丟弃函数可以是其中,《是所述调度队列的当前负载,并且其中Wl且c依赖于所述网络质量值、所述重传率值和所迷容许丢弃率值。响应于确定所述调度队列过栽或临近过载的状态指示,可以实现所述方法。基于所述调度队列的当前负载确定所述丢弃函数值可以包括基于所述调度队列的当前负栽,在一个或多个查找表数据结构上进行查找操作。在其它的说明性实施例中,提供了一种计算积艰序产品,其包括具有计算机可读程序的计算机可用介质。当在计算设备上执行时,所述计算机中的各种操作和组合。在另一说明性实施例中,提供了一种装置。所述装置可以包括处理器以及耦合于所述处理器的存储器。所述存储器可以包括这样的指令,即当由所述处理器执4亍时,该指令使得所述处理器实现以上关于方法说明性实施例所概括的操作中的各种操作和組合。鉴于以下对本发明的示例性实施例的详细描述,本发明的这些以及其它的特征和优点将得以描述,或者对于本领域的普通技术人员来说将变得显而易见。当结合附图阅读时,通过参照以下对说明性实施例的详细描述,将最好地理解本发明以及其优选的使用模式、进一步的目的和优点,在附图中图1是描绘了可以在其中实现说明性实施例的方面的示例性分布式数据处理系统的图形表示的示例图;图2是可以在其中实现说明性实施例的方面的示例性数据处理系统的框图;图3是SIP体系结构的示例框图,该SIP体系结构可以随图l的分布式数据处理环境一起利用,并且其可以利用图2的数据处理设备;图4是说明了一个说明性实施例的主要操作组件的操作的示例框图;以及图5是概括了一个说明性实施例的示例性操作的流程图,该操作用于关于过栽条件管理SIP容器的调度队列。具体实施方式说明性实施例提供了一种用于在数据处理系统的^发起协议(SIP)元件中进行突发业务平滑的系统和方法。如此,说明性实施例的机制尤其非常适合于在分布式数据处理环境中使用,在该分布式数据处理环境中,数据是通过一个或多个数据网络在计算设备之间传输的。作为用于理解说明性实施例的细节的上下文,下文提供了图l和图2作为可以在其中实现说明性实施例的方面的分布式数据处理环境的例子。此后提供了对说明性实施例的较为详细的描述。现参照附图,并且特别参照图1至图2,提供了可以在其中实现本发明的说明性实施例的数据处理环境的示例图。应当理解图1至图2仅是示例性的,并不打算主张或暗示关于可以在其中实现本发明的实施例或方面的环境的任何限制。可以在不背离本发明的精神和范围的情况下,对所描述的环境进行很多修改。图1描述了可以在其中实现说明性实施例的方面的示例性分布式数据处理系统的图形表示。分布式数据处理系统100可以包括在其中可以实现说明性实施例的方面的计算机的网络。分布式数据处理系统ioo含有至少一个网络102,其是用于在分布式数据处理系统100内连在一起的各种设备和计算机之间提供通信链路的介质。网络102可以包括诸如有线、无线通信链路或光缆的连接。在所描述的例子中,服务器104和服务器106与存储单元108—起连接至网络102。另外,客户机IIO、112和114也连接至网络102。这些客户机IIO、112和114可以是,例如个人计算机、网络计算机等。在所描述的例子中,服务器104向客户机110、112和114提供诸如引导文件、操作系统映像以及应用之类的数据。在所描绘的例子中,客户机110、112和114AJJ良务器104的客户机。分布式数据处理系统100可以包括附加的服务器、客户机和未示出的其它设备。在所描述的例子中,分布式数据处理系统100是具有网络102的因特的全世界的网络和网关的集合。处于因特网核心的是主节点或主计算机之间的高速数据通信线路的主干线,其包括路由数据和消息的成千上万的商业、政府、教育和其它的计算机系统。当然,分布式数据处理系统IOO还可以实现成包括许多不同类型的网络,举例来说,例如内联网、局域网(LAN)、广域网(WAN)等。如以上所述,图l意在举例,并不作为对本发明的不同实施例的体系结构限制,并且因此,不应当将图l中所示出的特定元件认为是关于可以在其中实现本发明的说明性实施例的环境的限制。应当理解,关于下文所描述的说明性实施例,服务器104和服务器106实际上可以构成用于实现SIP处理环境的多个服务器计算i殳备。举例来说,服务器104可以包括充当负载平衡器的第一组一个或多个服务器计算设备,其耦合于充当SIP代理的笫二组一个或多个服务器计算设备,以及充当SIP应用服务器和数据存储计算设备的第三组一个或多个服务器计算设备。下文将关于图3较为详细地描述这样的安排的例子。现参照图2,其示出了可以在其中实现说明性实施例的方面的示例性数据处理系统的框图。数据处理系统200是诸如在图1中提供为服务器104或106的计算机这样的计算机的例子,举例来说,可以在其中安置实现本发明的说明性实施例的过程的计算机可用代码或指令。在所描绘的例子中,数据处理系统200采用包括北桥和存储控制器集线器(NB/MCH)202以及南桥和输>^/输出(I/O)控制器集线器(SB/ICH)204在内的集线器体系结构。处理单元206、主存储器208以及图形处理器210连接至NB/MCH202。图形处理器210可以通过加速图形端口(AGP)连接至NB/MCH202。在所描绘的例子中,局域网(LAN)适配器212连接至SB/ICH204。音频适配器216、键盘和鼠标适配器220、调制解调器222、只读存储器(ROM)224、硬盘驱动(HDD)226、CD-ROM驱动230、通用串行总线(USB)端口和其它通信端口232,以及PCI/PCIe设备234通过总线238和总线240连接至SB/ICH204。PCI/PCIe设备可以包括,例如,以太网适配器、附加卡(add-incards)以及用于笔记本计算机的PC卡。PCI使用卡式总线控制器,而PCIe并不使用。ROM224可以是,例如,闪速二进制输^J输出系统(BIOS)。HDD226和CD-ROM驱动230通过总线240连接至SB/ICH204。HDD226和CD-ROM驱动230可以使用,例如,集成驱动器电子电樹IDE)或串行高级技术配件(SATA)接口。超级1/0(SIO)设备236可以连接至SB/ICH204。操作系统在处理单元206上运行。该操作系统协调并提供对图2中的数据处理系统200内的各种组件的控制。作为客户机,操作系统可以是市售的操作系统,例如MicrosoftWindowsXP(Microsoft和Windows是孩吏软^^司在美国、其它国家或二者的商标)。面向对象的编程系统,例如Java编程系统,可以结合操作系统运行并且从在数据处理系统200上执行的JavaTM程序或应用向操作系统提供调用(Java是SunMicrosystems公司在美国、其它国家或二者的商标)。作为服务器,数据处理系统200可以是,例如IBMeServerTMpSeries计算机系统、运行高级交互执行程序(厶仅@)操作系统或1^11^@操作系统(eServer、pSeries和AIX是国际商业机器公司在美国、其它国家或二者的商标,而LINUX是LinusTorvalds在美国、其它国家或二者的商标)。数据处理系统200可以是在处理单元206中包括多个处理器的对称多处理器(SMP)系统。可选地,可以采用单处理器系统。用于操作系统、面向对象的编程系统以及应用或程序的指令位于诸如HDD226之类的存储设备上,并且可以将这些指令加载到主存储器208给处理单元206执行。用于本发明的说明性实施例的过程可以由处理单元206使用计算机可用程序代码来实现,举例来说,计算机可用程序代码可以位于诸如主存储器208、ROM224的存储器中,或者在例如一个或多个外围设备226和230中。诸如图2中所示出的总线238或总线240的总线系统可以包括一个或多个总线。当然,可以使用在依附于构造或体系结构的不同組件或设备之间提供数据传递的任何类型的通信构造或体系结构来实现总线系统。诸如图2的调制解调器222或网络适配器212之类的通信单元可以包括用于发送和接收数据的一个或多个设备。存储器可以是,例如主存储器208、ROM224或诸如在图2中的NB/MCH202中找得到的高速緩存。本领域的普通技术人员可以理解,图1和图2中的硬件可以取决于实现而变化。除了图1和图2中所描绘的硬件之外,或者代替图1和图2中所描绘的硬件,还可以使用其它内部硬件或外围设备,例如闪速存储器、等效非易失性存储器或光盘驱动等。另外,在不背离本发明的精神和范围的情况下,除了先前所提及的SMP系统外,还可以将说明性实施例的过程应用于多处理器数据处理系统。此外,数据处理系统200可以采取多个不同的数据处理系统中的任何一个的形式,包括客户机计算设备、服务器计算设备、平板计算机、膝上型计算机、电话或其它通信设备、个人数字助理(PDA)等。在一些说明性例子中,数据处理系统200可以是,例如,配备有闪速存储器以提供用于存储操作系统文件和/或用户生成的数据的非易失性存储器的便携式计算设备。本质上,数据处理系统200可以是没有体系结构限制的任何已知的或以后开发的数据处理系统。图3是SIP体系结构的示例框图,该SIP体系结构可以随图1的分布式数据处理环境一起利用,并且其可以利用图2的数据处理设备。举例来说,图3中所示出的服务器计算设备可以是图1中的服务器104和106的一部分,如先前所提及的。提供图3作为可以在其中实现说明性实施例的示例性方面的SIP体系结构的一个例子,且并不打算规定或暗示关于可以在其中实现本发明的SIP体系结构的类型的任何限制。如图3中所示,SIP体系结构包括多个边缘组件,其包括一个或多个负载平衡器系统310-312,以及一个或多个SIP/Web代理系统320-328。负载平衡器系统310-312耦合于一个或多个数据网络330以及一个或多个SlP/Web代理系统320-328。SlP/Web代理系统320-328进一步耦合于一个或多个SIP应用系统340-348。通过经由一个或多个数据网络330向负载平衡器系统310-312以及从负载平衡器系统310-312到SIP/Web代理系统320-328发送和接收SIP和/或超文本传输协议(HTTP)消息,SIP客户机350-356可以与SIP应用系统340-348进行通信。可以在SIP体系结构内的位置处提供诸如防火墙360-362的各种安全机制,以确保SIP应用系统340-348的数据以及SIP应用的完整性。SIP客户机350-356连接至SIP应用系统340-348,以便参与例如即时消息接发、呈现以及Web会议活动。此外,在一些应用中,SIP客户机350-356可以连接至SIP应用系统340-348,以〗更实现基于IP的话音传输(VoIP)通信。任何类型的多媒体通信均可以使用SIP以及图3中所示出的SIP体系结构或类似这样的体系结构来实现。负栽平衡器系统310-312可以操作为网络调度器,其接收来自SIP客户机350-356的TCP连接,并且将其分发经过SIP/Web代理系统320-328。在网络部署中,管理员可以将一个或多个负载平衡器系统310-312的地址和端口号指定为SIP应用系统340-348监听地址和端口。SIP客户机350-356可以使用负载平衡器系统310-312地址来通过负载平衡器系统310-312连接至SIP应用系统340-348的SIP/Web4戈理系统320-328。通常,当在SIP应用系统340-348上部署SIP应用时,结合SIP容器来部署该SIP应用。SIP容器包括SIPservlet(小服务程序),其实现到SIP应用系统340-348的后端SIP应用的SIP信令。SIP容器检查从SIP/Web代理系统320-328接收的SIP消息,并且将这些消息路由至适当的SIPservlet。类似地,SIP容器将已经由后端SIP应用处理的消息路由出站到适当的SIP客户机350-356或SIP/Web代理系统320-328。当SIP容器接收到来自SIP/Web代理系统320-328的SIP消息时,SIP容器检查该SIP消息,并且取决于SIP消息,将该消息路由至含于SIP容器中的若干SIPservlet之一。SIPservlet解释该SIP消息并且然后与后端SIP服务器应用进行交互,以确保该消息得到正确处理。SIP/Web代理系统320-328操作为在SIP应用系统340-348中所提供的SIP容器与SIP客户机350-356之间的中介物。使用SIP应用系统340-348的SIP应用的所有SIP客户机350-356通过SIP/Web代理系统320-328建立SIP连接,并且通过SIP/Web代理系统320-328将数据传输到SIP容器中。负栽平衡器系统310-312用于在SIP/Web代理系统320-328上分布负载。当SIP/Web代理系统320-328被启动时,其读取用于SIP体系结构的配置信息,以便确定所有SIP容器的位置并且然后建立与每个SIP容器的单个持续的TCP连接。SIP/Web代理系统320-328多路复用其从多个SIP客户机连捲接收到的所有SIP数据,并且通过其与SIP容器维持的各个单物理连接将该数据转发至SIP容器,该安排将客户机连接处理负载置于SIP/Web代理并且释放了SIP容器,从而集中于处理SIP数据的任务。SIP/Web代理系统320-328是无状态的,因为其在多路复用数据以及将数据转发至SIP容器之前实现了对输入SIP消息的最小逻辑处理。SIP/Web代理系统320-328进一步维持和监控SIP容器与其SIP客户机350-356之间的亲合关系(affinityrelationship),以便可以将入站和出站消息路由至SIP客户机350-356。该功能性确保将消息正确路由至与网络部署环境中不同的SIP应用系统340-348相连的用户。为了支持消息路由,所有的SIP/Web代理系统320-328均访问相同的亲和性表格数据结构(affinitytabledatastructure)。该亲和性表格数据结构对于每个SIP客户机记录SIP客户机到SIP应用系统连接。当SIP/Web代理系统320-328接收到来自SIP客户机350-356的消息时,SIP/Web代理系统320-328读取接受方的SIP地址或统一资源标识符(URI),并且在亲和性表格数据结构中查找接受方,以确定必须向其路由请求以便抵达请求的接受方的SIP容器。在^"持续期间,SIP/Web代理系统320-328维持SIP容器与其SIP客户机350-356之间的亲和性。因而,对于给定接受方URI,在SIP/Web代理系统320-328确定了必须向其路由消息的SIP容器之后,对于该URI,SIP/Web代理系统320-328继续将所有消息路由至相同的SIP容器,直到会话结束。在可从www.ietf.org/rfc/rfc3261.txt处的IETF获得的RFC3261中可以找到关于SIP容器、SIP代理、SIPservlet、SIP应用以及SIP体系结构的其它元件的更多信息。考虑该体系结构,说明性实施例提供了一种用于^^C^协议(SIP)元件的突发业务平滑的系统和方法。说明性实施例的机制使用SIP用户数据报协议(UDP)重传特性,结合可测量网络损失和系统负载特性,自适应地平滑UDP突发业务以改进对SIP通信的处理。利用说明性实施例的机制,较少的SIP应用系统340-348(即SIP服务器或处理器)能够处理比在过度补偿业务突发的已知系统中要高的、显示周期性业务突发的平均负载。作为使用说明性实施例的机制的结果,业务突发不再是配置SIP系统中主要的规3莫估计考虑,因为通过说明性实施例的平滑机制较好地处理了业务突发。给定具有指定"突发性"的特定TCP/UDP负载分布,可以预先计算使用说明性实施例的机制时"突发性"变得如何平滑,并且可以使用"突发性"的该平滑性作为规^莫估计SIP系统中的因素。如以上所提及的,SIP客户机350-356惯常使用传输控制协议(TCP)和用户数据报协议(UDP)来连接至SIP应用系统340-348以及数据网络中的其它SIP端点。UDP是因特网协议组的核心协议之一。使用UDP,联网计算机上的程序可以彼此发送短消息(有时称为数据报)。关于说明性实施例,利用UDP数据报的特性来确定在SIP应用系统340-348的SIP调度队列变得过栽的情况下,丟弃哪些数据分组。也就是说,SIP调度队列可以接受两类SIP消息TCP和UDP消息。由于TCP消息一_24皮接受到SIP应用系统340-348的调度队列中,其决不会被另一SIP元件(例如,SIP/Web代理系统320-328或SIP客户机350-356)重传,尽可能地在调度队列中保存TCP消息是重要的。从调度队列中舍弃任何TCP消息都可能导致某种通信失败。然而,利用UDP,由于其重传特性,存在将重传任何给定UDP消息的良好机会。说明性实施例将该重传特性利用到一种机制中,用于在当SIP应用系统的业务显示尖脉冲(spike)或突发期间丢弃分组,从而使得最小化丟弃通信的数目。图4是说明了一个说明性实施例的主要操作组件的操作的示例框图。如图4中所示,主要操作组件包括SIP应用实例410、关联的SIP容器420、调度队列430,以及调度队列管理引擎440。如所示,调度队列管理引擎440可以是SIP容器420提供来管理调度队列430的服务。SIP应用实例410通过调度队列430和SIP容器420接收来自SIP客户机的SIP消息。通过SIP/Web代理系统将SIP消息置于调度队列430中,用于由提供SIP消息给SIP应用实例410的SIP容器420来处理。调度队列管理引擎440通过确定调度队列是否过载或者处于过载的预定容限内,以及当检测到这样的过栽或临近过载条件时丟弃UDP分组,从而管理调度队列430上的负载。调度队列管理引擎440适应于所测量的网络质量和调度队列的负栽M。此外,调度队列管理引擎440的操作是可基于所允许的丢弃消息率和SIP超时计时器值的设置来配置的。利用说明性实施例,调度队列SIP容器测量在低负载时间(即,调度队列负载或长度《小于预定门限)时的平均UDP分组丢失,以便获得对网络质量w的测量,其中w是范围在0到1内的网络分组丢失。网络质量表示遍及容器的操作环境,有多可能丢失单个UDP分组。举例来说,调度队列管理引擎440可以监控调度队列430的调度队列负载或长度《,并且将负栽或长度《与预定门限进行比较。当g的值小于该预定门限时,调度队列管理引擎440可以测量网络质量w。为了测量网络质量,仅需要确定数据分组的丢失率。取决于特定的实现,可以以多种不同的方式实现这样的测量。在一个说明性实施例中,可以通过跟踪SIP服务器每隔多久没有看到其所期望的重传来实现这样的测量。举例来说,假设最初应当传输UDP请求并且然后在500ms、1000ms和2000ms进行重传。进一步假设SIP服务器仅看到在单次传输之后1000ms的重传,以及最后在此后1000ms的重传。该SIP服务器可以推断丢弃了500ms的重传。相对于当前网络负载比较丢弃率提供了对网络质量n的估计。在其它的说明性实施例中,可以利用经验测量或保守估计来获得该参数。用于确定网络质量w参数的其它机制对于借鉴了本公开的本领域普通技术人员来说将是显而易见的,并且在不背离本发明的精神和范围的情况下,可以与说明性实施例一起获得利用。SIP容器420的调度队列管理引擎440可以计算任何给定UDP分组是超时之前最后传输的一个的可能性,即可以计算范围在0到1内的SIP重传率/。可以在不需要明确知道任何特定的UDP分組是否是重传的情况下进行这样的计算。该计算可以基于SIPT1、T2和6^T1请求超时计时器。T1和T2计时器的设置可以是管理员可配置的。举例来说,如果T1和T2要求SIP给予7次重传,那么任何给定UDP分组均具有7次中1次的机会成为在对于给定消息超时之前最后传输的一个。然而,这假设SIP客户机总是实现该协议所要求的重传数。SIP容器420的调度队列管理引擎440可以利用指定的容许丢弃消息率J,其可以与应用可靠性要求相关。可以将该指定的容许丢弃消息率d输入SIP容器420作为由管理员等所设置的参数,可以以任何适于本领域的普通技术人员确定的方式来确定其值。举例来说,可以将容许丢弃消息率提供为J=0.99999,意味着需要成功处理所有消息中的99.999%。SIP容器420的调度队列管理引擎440可以进一步确定当前调度队列430长度,并且可以进一步配备最大固定调度队列大小,即在SIP体系结构的配置中所设置的参数。利用该信息,SIP容器420可以测量调度队列有多满,即作为从O到1的度量的调度队列负载《。举例来说,基于从可以在SIP应用服务器中维护的配置数据结构460获得的信息,可以获得或计算这些員,《,",/和"。可以通过SIP容器420的调度队列管理引擎440将这些M馈送给指定的丢弃函数/^,",/,力,其给出了对于已知的调度队列430负载(或长度)、网络分组丢失、SIP重传率和容许丢弃消息率,SIP容器420将保留任何给定UDP分组的概率。举例来说,该指定丢弃函数可以采取/(《)=(1-《)的形式,其中W1并且依赖于《,/和么该函数导致当调度队列上的负载增加时更频繁地丟弃UDP分组。当然,这仅仅是可以用来在突发负载下实现所期望的SIP容器420操作的丢弃函数的一个例子。在不背离本发明的精神和范围的情况下,可以利用其它的函数。适当利用丢弃函数,SIP容器420的调度队列管理引擎440会自动地将任何输入TCP分组^调度队列,因为丢弃TCP分组自动地使通信失败。然而,SIP容器420的调度队列管理引擎440可以生成在0到1范围内的随机数r,其用于确定是否丟弃UDP分组。调度队列管理引擎440可以在给定即时调度队列负载或长度《、网络质量w,以及固定的/和d值的情况下计算/(《,",/,^/)的值。如果K/,则可以保留任何的输入UDP分组,并且将其插入到调度队列430中。如果那么舍弃UDP分组,因为已经在统计上确定这样做的话将不会导致不可接受数目的通信失败。在优选的说明性实施例中,举例来说,可以对每个输入UDP分组确定一次随机数r。另外,还可以对每个输入UDP分组评估一次函数/,并且对每个UDP分组进行/和/的比较。然而,应当理解,在其它的说明性实施例中,可以按照比每个输入UDP分组一次要多或少的频率实现r和/的值以及比较。应当注意,并不对每一确定都计算yo的值,而是可以提供查找表数据结构470,并且将其存储在存储器中,用于在对关于是丢弃还是保留UDP分组进行确定时4吏用。可以通过维持w,/和rf固定以及使用调度队列负载或长度《作为到查找表中的索引来确定/0值。可以进一步提供多个查找表数据结构470,例如,每个预定的w值用一个。因而,可以基于确定的w值来选择特定的查找表数据结构470,并且然后通过《值来进行索引。因而,假设调度队列430当前处于过栽或临近过栽状态,当在SIP容器420中接收到分组时,通过查看分组头部的字段,调度队列管理引擎440首先确定该分组是TCP还是UDP分组。如果分组是TCP分组,则自动地将分组添加到调度队列430。如果分组是UDP分组,则计算或查找函数y^,,/,力的值,并且生成随机数。如果随机数小于/(《,",/,fiO的值,那么将UDP分组添加到调度队列430。如果随机数大于/(《,《,/,f/)的值,那么舍弃UDP分组。应当理解,/^,w,A^)的值基于当前调度队列负载、网络质量、重传率,以及容许丢弃率。因而,对关于是否舍弃UDP分组的确定是可通过管理员配置的,并且还适应于当前网络和调度队列条件。有效地,函数/(《,/1,/,</)规定了在给定已知有关网络、SIP协议、调度队列负载以及可靠性需求的情况下,应当以什么概率跳过对分組的处理,因为希望(在d确定度的情况下)在请求超时之前会处理对分组的重传。利用该函数,在假设稍后(当估计可能有较少负载时)将会看到对这些UDP分組的重传的情况下,当调度队列负载增加时,UDP分组,皮更为积极地丟弃。因为丢弃行为是基于已知因素而自适应改变的,可以控制对请求的处理基于操作需求将完全失败的风险。总之,使用说明性实施例的机制,可以减少处理具有突发行为的SIP业务所需要的物理系统数。因此,说明性实施例改善了所感知的系统性育&,并且减少了处理稍微具有尖脉冲时刻的还算恒定的负栽所必须的系统数。图5是概括了一个说明性实施例的示例性操作的流程图,该操作用于关于过载条件管理SIP容器的调度队列。可以理解到,可以通过计算枳4呈序指令实现流程图说明的每个块,以及流程图说明中块的组合。可以将这些计算机程序指令提供给处理器或其它可编程数据处理装置来产生机器,从而使得在该处理器或其它可编程数据处理装置上执行的指令创建用于实现流程图块中所指定的功能的装置。还可以将这些计算机程序指令存储在可以指导处理器或其它可编程数据处理装置以特定方式运4亍的计算才几可读存储器或存储介质中,从而使得存储在计算机可读存储器或存储介质中的指令产生包括实现流程图块中所指定的功能的指令装置在内的制品。因此,流程图说明中的块支持用于实现指定功能的装置的组合、用于实现指定功能的步骤的组合,以及用于实现指定功能的程序指令装置。还应当理解,通过实现指定功能或步骤的基于专用硬件的计算机系统,或者通过专用硬件和计算机指令的组合,可以实现流程图说明中的每个块,以及流程图说明中块的组合。如图5中所示,该操作开始于SIP容器的调度队列管理引擎确定调度队列的当前负载(步骤510)。调度队列管理引擎确定调度队列是否处于过载状态或临近过载状态(步骤520)。如果不是,则该操作终止,但却可以在稍后的时间(例如,随后在评估调度队列的负载的时间)被重新启动。否则,如果调度队列处于过载状态或临近过载状态,则调度队列管理引擎启动UDP分組丢弃处理(步骤530)并且等待分组到达(步骤540)。当分組到达SIP容器中时(步骤550),调度队列管理引擎确定该分组是TCP分组还是UDP分组(步骤560)。如果分组是TCP分組,则将分组添加到调度队列(步骤570)。如果分组是UDP分组,则通过计算、查找表等确定丢弃函数A《,w,/,^)的值(步骤580)。对丢弃函数值的确定可以基于如在步骤510中所确定的调度队列的当前负载、如先前在调度队列上低负载期间所确定的网络质量、重传率(其可以是固定值),以及容许丢弃率(其也可以是固定值)。调度队列管理引擎然后可以生成随机或伪随机数r(步骤590)。调度队列管理引擎将该随机或伪随机数f与丢弃函数值/进行比较(步骤600),并且确定是否满足f与/之间的预定条件,例如,r</、P/等(步骤610)。如果满足预定条件,那么调度队列管理引擎将UDP分组添加到调度队列(步骤620)。否则,如果不满足预定制中,则丢弃UDP分组(步骤630)。调度队列管理引擎然后可以确定是否是重新评估调度队列的负载M的时间(步骤640)。如果是的话,则该操作可以返回到步骤510。可以基于计时器条件、用户输入,或者用于通知调度队列管理引擎重新评估调度队列的负栽条件的任何其它合适的事件来进行这样的确定。如果不是重新评估调度队列的负载!Ht的时间,则调度队列管理引擎可以确定是否已经发生停止条件(步骤650)。该停止条件可以是,例如,指示调度队列管理引擎中止其操作的用户输入。如果已经发生了停止条件,则该操作终止。否则,如果还未发生停止条件,则该操作返回到步骤540并且等待下一数据分组。因而,说明性实施例的机制允许在过载或临近过载条件期间(例如可能在业务突发期间经历的),在将TCP分組自动添加到调度队列时丢弃UDP分组。UDP分組的重传特性使得很可能任何给定的被丢弃UDP分组将具有高可能性被重传,并且因而通过实现说明性实施例的机制,少量通信会丢失。应当理解,在不背离本发明的精神和范围的情况下,可以对上述机制进行很多修改。举例来说,虽然以上根据其中输入参数为《,",/和J的函数/描述了说明性实施例,但是,除了这些已经描述的输入参数之外,或者代替这些已经描述的输入参数,还可以利用其它的输入参数。这样的其它输入W:可以基于,例如,配置时间或动态计算的设置。在某些条件下,以上机制可能导致TCP分组引起的UDP分组处理不足(starvation)。也就是说,在特定的条件下,可能丟弃大多数的UDP分组,并且因而UDP分组处理不会按需常常发生。可以采用各种机制来确保不遇到这样的UDP分组处理不足。举例来说,可以通过调度队列管理引擎来维持所丟弃的UDP分组数的计数,并且当该计数达到预定门限时,可以中止UDP分组丢弃,可以将加权因子应用于丢弃函数计算来減少UDP分组丢弃,等等。此外,应当考虑到,仅仅因为在当前时间SIP容器的调度队列的负载达到特定的值并不意味着在发生UDP分組的下一重传时将是这一相同的《值。因而,将负载历史(即《值历史或对比于时间的《)模型合并到调度队列管理引擎可能是有益的。在简单的实现中,可以利用在特定时间周期上的《值的平均。然而,在其它实现中,可以将对于负载历史的较为复杂的确定及其对是否丢弃UDP分组的影响合并到说明性实施例的机制中。举例来说,将负载历史合并到说明性实施例的机制中的一些方法可以包括在负载中包括变化率(例如,负载相对于时间的一阶、二阶等导数)。其它方法可以合并日历/挂钟时间(walltime),例如对于业务来说,星期一的午餐时可能尤其不好,并且因而可能需要使用说明性实施例的机制进行较为积极的平滑。此外,在其它的方法中,可以从其它相关系统合并负载信息,例如,SIP容器可能知道其可以处理的负载,但是其使用的相关媒体服务器却不能够如此,并且因而SIP容器可以平滑负载来掩护(shelter)媒体服务器。在其它方法中,可以在说明性实施例的机制中包括来自非SIP消息的负栽考虑,例如,对于面向Web服务的系统,SIP容器可以更为积极地平滑SIP业务,因为其正经历Web服务业务尖脉冲。在上述每种方法中,可以以对于本领域普通技术人员将易于显而易见的方式来聚集每种方法的常见可访问运行时特性,并且可以将其输入说明性实施例的函数/,以便确定所需要的平滑。作为进一步的修改,虽然已经将调度队列管理引擎描述为SIP容器的一部分并且直接^作于SIP容器的调度队列,但^_说明性实施例并不限于此。相反,可以将调度队列管理引擎合并到例如SIP体系结构的负载平衡层。因而,可以将调度队列管理引擎的功能性合并到负载平衡器系统或SIP代理,只要调度队列管理引擎仍访问SIP容器的即时负载的知识,例如通过从SIP容器到负载平衡器系统或SIP代理的通知消息。应当理解,说明性实施例可以采取全硬件实施例、全软件实施例或者既含有硬件元素又含有软件元素的实施例的形式。在一个示例性实施例中,以软件实现说明性实施例的机制,其包括但不限于固件、常驻软件、微码等。此外,说明性实施例可以采取可访问于计算机可用或计算机可读介质的计算机程序产品的形式,该计算机可用或计算机可读介质提供由计算机或任何指令执行系统使用的或者与计算机或任何指令执行系统结合使用的程序代码。对于该描述来说,计算机可用或计算机可读介质可以是能够容纳、存储、通信、传播或传送由指令执行系统、装置或设备使用的或者与指令执行系统、装置或设备结合使用的程序的任何装置。介质可以是电子、磁性、光学、电磁、红外或半导体系统(或装置或设备)或者传播介质。计算机可读介质的例子包括半导体或固态存储器、磁带、可装卸计算,盘、随机访问存储器(RAM)、只读存储器(ROM)、硬磁盘和光盘。光盘的当前的例子包括只读光盘存储器(CD-ROM)、读/写光盘(CD-R/W)和DVD。适于存储和/或执行程序代码的数据处理系统可以包括通过系统总线直接地或间接地耦合于存储元件的至少一个处理器。存储元件可以包括在程序代码的实际执行期间所使用的局部存储器、大容量存储器,以及为了减少在执行期间必须从大容量存储器检索代码的次数而提供对至少一些程序代码的临时存储的高速緩冲存储器。输/v/输出或I/0设备(包括但不限于键盘、显示器、指点设备等)可以直接地或者通过插入I/O控制器耦合于系统。网络适配器也可以耦合于系统,从而使得数据处理系统能够通过介入专用或公用网络耦合于其它的数据处理系统或远程打印机或存储设备。调制解调器、电缆调制解调器和以太网卡正是几种当前可用类型的网络适配器。已经出于说明和描述的目的给出了对本发明的描述,且并不旨在以所公开的形式穷举或限制本发明。对本领域的普通技术人员来说,很多修改和变形将是显而易见的。选择和描述实施例是为了最好地解释本发明的原理、实际应用,以及使本领域的普通技术人员能够针对适于预期的特定用途的各种实施例以及各种修改来理解本发明。权利要求1.一种在数据处理系统中用于管理调度队列的方法,其包括基于所述调度队列的当前负载,确定丢弃函数值;评估所述丢弃函数值,以便确定是否将要丢弃一个或多个数据分组;以及如果所述评估指示将要丢弃一个或多个数据分组,则丢弃第一类型的一个或多个数据分组,其中,总是将第二类型的数据分组添加到所述调度队列,而不管所述评估是否指示将要丢弃一个或多个数据分组。2.根据权利要求1的方法,其中评估所述丟弃函数值包括生成随机或伪随机值;将所述随机或伪随机值与所述丢弃函数值进行比较;以及如果所述随机或伪随机值具有关于所述丢弃函数值的预定关系,则确定将要丢弃一个或多个数据分组。3.根据权利要求2的方法,其中所迷预定关系是所述随机或伪随机值大于所述丢弃函数值。4.根据权利要求1的方法,其中在^^发起协议容器中实现所述方法。5.根据权利要求l的方法,其中使用在一个或多个网络损失和系统负载特性参数上操作的丢弃函数来确定所述丢弃函数值。6.根据权利要求5的方法,其中将所述网^^员失特性Wt测量为在调度队列长度小于预定门限的时间点处的平均分组丟失,并且其中,动态地确定所述系统负载特性参数。7.根据权利要求5的方法,其中所述丢弃函数指定了对于确定的调度队列长度,M发起协议容器将保留任何给定用户数据报协议分组的概率,并且其中,所述丟弃函数导致在所述系统负载增加时更加频繁地丢弃用户数据报协议分组。8.根据权利要求1的方法,其中基于所述调度队列的当前负栽、网络质量值、重传率值和容许丟弃率值的函数来确定所述丢弃函数值。9.根据权利要求8的方法,其中所述函数是<formula>formulaseeoriginaldocumentpage3</formula>其中,《是所述调度队列的当前负载,并且其中Wl且c依赖于所述网络质量值、所述重传率值和所述容许丢弃率值。10.根据权利要求l的方法,其中所述第一类型的数据分组是用户数据报协议数据分组,并且所迷第二类型的数据分组是传输控制协议数据分组。11.根据权利要求l的方法,其中响应于确定所述调度队列过载或临近过载的状态指示,实现所述方法。12.根据权利要求l的方法,其中基于所述调度队列的当前负载确定丢弃函数值包括基于所述调度队列的当前负载,在一个或多个查找表数据结构上进行查找操作。13.—种计算机程序产品,其包括具有计算机可读程序的计算机可用介质,其中,当在计算设备上执行时,所述计算机可读程序使得所述计算设备实现权利要求1至12中任何一项的方法。14.一种装置,其包括处理器;以及耦合于所述处理器的存储器,其中所迷存储器包括指令,当由所述处理器执行时,所述指令^f吏得所述处理器基于所述调度队列的当前负载,确定丢弃函数值;评估所述丢弃函数值,以便确定是否将要丢弃一个或多个数据分组;以及如果所述评估指示将要丢弃一个或多个数据分组,则丢弃第一类型的一个或多个数据分组,其中,总是将第二类型的数据分组添加到所述调度队列,而不管所述评估是否指示将要丢弃一个或多个数据分组。15.根据权利要求14的装置,其中所述指令使得所述处理器通过以下操作来评估所述丟弃函数值生成随机或伪随机值;将所述随机或伪随机值与所述丢弃函数值进行比较;以及如果所述随机或伪随机值具有关于所述丢弃函数值的预定关系,则确定将要丢弃一个或多个数据分组。16.根据权利要求15的装置,其中所述预定关系是所述随机或伪随机值大于所述丟弃函数值。17.根据权利要求14的装置,其中由所述处理器执行所述指令作为^"发起协议容器的一部分。18.根据权利要求14的装置,其中使用在一个或多个网^4员失和系统负载特性参数上操作的丟弃函数来确定所述丢弃函数值。19.根据权利要求18的装置,其中将所述网络损失特性参数测量为在调度队列长度小于预定门限的时间点处的平均分组丟失,并且其中,动态地确定所述系统负载特性参数。20.根据权利要求18的装置,其中所述丟弃函数指定了对于确定的调度队列长度,M发起协议容器将保留任何给定用户数据才艮协议分组的概率,并且其中,所述丢弃函数导致在所述系统负栽增加时更加频繁地丢弃用户数据报协议分組。21.根据权利要求14的装置,其中基于所述调度队列的当前负载、网络质量值、重传率值和容许丢弃率值的函数来确定所述丢弃函数值。22.根据权利要求14的装置,其中所述第一类型的数据分組是用户数据报协议数据分组,并且所述第二类型的数据分组是传输控制协议数据分组。23.根据权利要求14的装置,其中响应于确定所述调度队列过载或临近过载的状态指示,由所述处理器执行所述指令。24.根据权利要求14的装置,其中所述指4^f吏得所述处理器通过基于所述调度队列的当前负载在一个或多个查找表数据结构上进行查找操作,从而基于所述调度队列的当前负栽来确定丟弃函数值。全文摘要本发明提供了一种用于会话发起协议(SIP)处理元件的突发业务平滑的装置和方法。调度队列管理引擎确定所接收的分组是传输控制协议(TCP)还是用户数据报协议(UDP)分组。如果所述分组是TCP分组,则自动将所述分组添加到所述调度队列。如果所述分组是UDP分组,则生成丢弃函数f的值,并且生成随机或伪随机数r。如果r与f具有预定关系,那么将所述UDP分组添加到所述调度队列,否则舍弃所述UDP分组。所述f的值基于当前调度队列负载、网络质量、重传率和容许丢弃率。因而,对关于是否丢弃UDP分组的确定是可通过管理员配置的,并且还可适应于当前网络和调度队列条件。文档编号H04L12/56GK101247333SQ20081000570公开日2008年8月20日申请日期2008年2月3日优先权日2007年2月16日发明者A·佩尔曼,M·A·吉尔菲克斯,R·A·琼斯,R·D·乌尔里奇申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1