过载控制方法、装置和系统转让专利

申请号 : CN201110142441.1

文献号 : CN102811197B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王彪严为魏元

申请人 : 中兴通讯股份有限公司

摘要 :

本发明提供了一种过载控制方法、装置和系统。涉及通信领域,解决了SIP服务器性能下降的问题。该方法包括:SIP服务器在向SIP实体发出的消息中指示该SIP服务器支持的过载控制类型;在所述SIP服务器过载时,根据向所述SIP实体指示的过载控制类型,对所述SIP实体进行过载控制。本发明提供的技术方案适用于SIP系统,实现了多种过载控制方式。

权利要求 :

1.一种过载控制方法,其特征在于,包括:

会话发起协议(SIP)服务器在向SIP实体发出的消息中指示该SIP服务器支持的过载控制类型;

在所述SIP服务器过载时,根据向所述SIP实体指示的过载控制类型,对所述SIP实体进行过载控制;

所述SIP服务器在向SIP实体发出的消息中指示该SIP服务器支持的过载控制类型的步骤之前,还包括:所述SIP实体在向所述SIP服务器发出的消息中表明该SIP实体支持的过载控制类型;

所述SIP实体在发出的消息中,指示该SIP实体支持的过载控制类型具体为:所述SIP实体在发出的消息中携带过载控制类型(OC-type)参数,所述OC-type参数指示该SIP实体支持的过载控制类型。

2.根据权利要求1所述的过载控制方法,其特征在于,所述SIP服务器在向SIP实体发出的消息中指示该SIP服务器支持的过载控制类型具体为:所述SIP服务器在向SIP实体发出的消息中,将所述SIP服务器支持的过载控制类型指示为该SIP实体支持的过载控制类型。

3.根据权利要求1所述的过载控制方法,其特征在于,所述SIP服务器支持的过载控制类型包括:基于速率的过载控制(Rate-based Overload Control)、基于丢失的过载控制(Loss-based Overload Control)、基于窗口机制的过载控制(Window-based Overload Control)、基于信号机制的过载控制(Overload Signal-based Overload Control)和隐式的过载控制(Implicit Overload Control)。

4.根据权利要求3所述的过载控制方法,其特征在于,所述SIP服务器向SIP实体发出的消息中还包括过载控制(OC)参数和过载控制有效(OC-validity)参数;

OC-type指示过载控制类型为Rate-based Overload Control时,OC表示SIP请求发送的速率,OC-validity表示过载控制持续的时间;

OC-type指示过载控制类型为Loss-based Overload Control时,OC表示丢失率,OC-validity表示过载控制持续的时间;

OC-type指示过载控制类型为Window-based Overload Control时,OC表示窗口大小,OC-validity表示过载控制持续的时间;

OC-type指示过载控制类型为Overload Signal-based Overload Control时,在返回的503消息插入OC参数和OC-validity参数,OC表示减少请求的数量,OC-validity表示过载控制持续的时间;

OC-type指示过载控制类型为Implicit Overload Control时,OC和OC-validity无意义。

5.一种过载控制装置,其特征在于,包括:

指示模块,用于在向SIP实体发出的消息中指示SIP服务器支持的过载控制类型;

控制执行模块,用于在所述SIP服务器过载时,根据向所述SIP实体指示的过载控制类型,对所述SIP实体进行过载控制;

所述指示模块,具体用于在发出的消息中携带OC-type参数,所述OC-type参数指示该SIP服务器支持的过载控制类型。

6.根据权利要求5所述的过载控制装置,其特征在于,

所述指示模块,还用于接收所述SIP实体发出的表明该SIP实体支持的过载控制类型的消息,并在向SIP实体发出的消息中,将所述SIP实体支持的过载控制类型指示为该SIP服务器支持的过载控制类型。

7.一种过载控制系统,其特征在于,包括SIP服务器和SIP实体;

所述SIP服务器,用于在向所述SIP实体发出的消息中指示该SIP服务器支持的过载控制类型,在所述SIP服务器过载时,根据向所述SIP实体指示的过载控制类型,对所述SIP实体进行过载控制;

所述SIP实体,用于在向所述SIP服务器发出的消息中表明该SIP实体支持的过载控制类型;

所述SIP服务器,还用于在向SIP实体发出的消息中,将所述SIP服务器支持的过载控制类型指示为该SIP实体支持的过载控制类型。

说明书 :

过载控制方法、装置和系统

技术领域

[0001] 本发明涉及通信领域,尤其涉及一种SIP系统中的过载控制方法、装置和系统。

背景技术

[0002] 近年来,Internet得到了飞速发展与普及应用,作为其核心技术的IP协议体系在数据网络架构中统治地位已得到了广泛认同。会话发起协议(SIP)是目前对等IP通信最流行的协议。其遵循因特网一贯坚持的简练、开放、兼容和可扩展等原则,并充分注意到因特网开放而复杂的网络环境下的安全问题。SIP协议充分考虑了对传统公共电话网的各种业务,包括IN业务和ISDN业务的支持。
[0003] SIP协议中有两个要素,SIP客户端和SIP服务器(server)。SIP客户端是呼叫的终端系统元素,SIP服务器则是处理与多个呼叫相关联信令的网络设备。在SIP网络中,每个用户由SIP通用资源标识符(URI)唯一标识,而用户的IP地址则是用于路由来自注册服务器的SIP信令。
[0004] SIP服务器过载(overload)表示SIP服务器没有足够的资源去处理所有到来的SIP消息。由于过载时有部分SIP请求会被拒绝,而SIP客户端在请求被拒绝后,如果不进行过载控制,SIP客户端将会持续不断的发送re-invite请求,从而导致SIP服务器的负载变大,继续丢弃新的SIP请求,最终使得SIP服务器的应用吞吐量至0。
[0005] 因此,SIP过载控制的目的在于使得SIP服务器在过载期间,可以以接入其容量上限的吞吐量进行操作,即最大限度的利用SIP服务器的吞吐能力。
[0006] SIP协议提供了有限的过载控制机制,如响应code 503(服务不可用),但是此机制不能完全阻止SIP服务器的过载,并且其不能阻止拥塞崩溃。实际上,SIP服务器的开启/关闭(ON/OFF)可能导致业务在SIP服务器间摆动(即向SIP服务器发送的请求被拒绝后再向其他的SIP服务器请求),从而增加整个系统的工作压力。
[0007] SIP过载控制分为两种:显式的过载控制和隐式的过载控制。其中,显式的过载控制主要是指SIP服务器能够指定其接收流量的大小;隐式的过载控制主要是通过SIP服务器选择性的丢弃某些SIP请求,来提示SIP请求发送端该SIP服务器已经过载。
[0008] 一般情况下,显式的过载控制包括以下5种方式:
[0009] 1)基于速率的过载控制(Rate-based Overload Control)
[0010] 主要是限制上游SIP实体(如SIP客户端或者SIP服务器)发往下游SIP服务器服务请求的速率,当过载发生时,SIP服务器能够限制每一个上游SIP实体每秒最多只能往下游SIP服务器发送X条请求。SIP服务器可以为不同的SIP实体指定不同的速率标准。
[0011] 2)基于丢失的过载控制(Loss-based Overload Control)
[0012] 主要是限制上游SIP实体发送至下游SIP服务器请求的数目,当过载发生时,SIP服务器能够对每一个上游SIP实体进行限制,缩减上游SIP实体X%的请求,受到限制的上游SIP实体必须重定向或者拒绝目的至该SIP服务器X%的流量。
[0013] 3)基于窗口机制的过载控制(Window-based Overload Control)
[0014] 主要是借鉴了TCP协议中的滑动窗口机制,下游SIP服务器允许上游SIP实体发送一定数量的SIP请求,在请求被处理后才能向后滑动窗口。
[0015] 4)基于信号机制的过载控制(Overload Signal-based Overload Control)[0016] 主要是向发送端返回503(服务不可用)信号来通知上游SIP实体,服务器已经过载,需要上游SIP实体减少发送的请求数量以避免触发更多的503消息。但是这个503消息头域中不包含Retry-after字段,以此来避免下游SIP服务器完全放弃该请求。
[0017] 5)关闭/开启过载控制(On/OffOverload Control)
[0018] 主要是通过SIP服务器选择性的关闭某些SIP请求,向其上游SIP实体返回包括Retry-after字段的503消息,来让上游SIP实体重定向此请求,这种方法在5种过载控制方法中效率最低。
[0019] 目前的SIP协议还存在以下问题:
[0020] 目前SIP协议中只实现了基于丢失的过载控制,对于其他的显式的过载控制方式并没有做出相应的支持,使得SIP服务器无法有效应对各种突发的过载情况,从而导致SIP服务器性能的急剧下降。

发明内容

[0021] 本发明提供了一种过载控制方法、装置和系统,解决了SIP服务器性能下降的问题。
[0022] 一种过载控制方法,包括:
[0023] SIP服务器在向SIP实体发出的消息中指示该SIP服务器支持的过载控制类型;
[0024] 在所述SIP服务器过载时,根据向所述SIP实体指示的过载控制类型,对所述SIP实体进行过载控制。
[0025] 优选的,所述SIP服务器在向SIP实体发出的消息中指示该SIP服务器支持的过载控制类型的步骤之前,还包括:
[0026] 所述SIP实体在向所述SIP服务器发出的消息中表明该SIP实体支持的过载控制类型。
[0027] 优选的,所述SIP服务器在向SIP实体发出的消息中指示该SIP服务器支持的过载控制类型具体为:
[0028] 所述SIP服务器在向SIP实体发出的消息中,将所述SIP服务器支持的过载控制类型指示为该SIP实体支持的过载控制类型。
[0029] 优选的,所述SIP实体在发出的消息中,指示该SIP实体支持的过载控制类型具体为:
[0030] 所述SIP实体在发出的消息中携带过载控制类型(OC-type)参数,所述OC-type参数指示该SIP实体支持的过载控制类型。
[0031] 优选的,所述SIP服务器支持的过载控制类型包括:
[0032] Rate-based Overload Control、Loss-based Overload Control、Window-basedOverload Control、Overload Signal-based Overload Control和隐式的过载控制(Implicit Overload Control)。
[0033] 优选的,所述SIP服务器向SIP实体发出的消息中还包括过载控制(OC)参数和过载控制有效(OC-validity)参数;
[0034] OC-type指示过载控制类型为Rate-based Overload Control时,OC表示SIP请求发送的速率,OC-validity表示过载控制持续的时间;
[0035] OC-type指示过载控制类型为Loss-based Overload Control时,OC表示丢失率,OC-validity表示过载控制持续的时间;
[0036] OC-type指示过载控制类型为Window-based Overload Control时,OC表示窗口大小,OC-validity表示过载控制持续的时间;
[0037] OC-type指示过载控制类型为Overload Signal-based Overload Control时,在返回的503消息插入OC参数和OC-validity参数,OC表示减少请求的数量,OC-validity表示过载控制持续的时间;
[0038] OC-type指示过载控制类型为Implicit Overload Control时,OC和OC-validity无意义。
[0039] 本发明还提供了一种过载控制装置,包括:
[0040] 指示模块,用于在向SIP实体发出的消息中指示SIP服务器支持的过载控制类型;
[0041] 控制执行模块,用于在所述SIP服务器过载时,根据向所述SIP实体指示的过载控制类型,对所述SIP实体进行过载控制。
[0042] 优选的,所述指示模块,具体用于在发出的消息中携带OC-type参数,所述OC-type参数指示该SIP服务器支持的过载控制类型。
[0043] 优选的,所述指示模块,还用于接收所述SIP实体发出的表明该SIP实体支持的过载控制类型的消息,并在向SIP实体发出的消息中,将所述SIP实体支持的过载控制类型指示为该SIP服务器支持的过载控制类型。
[0044] 本发明还提供了一种过载控制系统,包括SIP服务器和SIP实体;
[0045] 所述SIP服务器,用于在向所述SIP实体发出的消息中指示该SIP服务器支持的过载控制类型,在所述SIP服务器过载时,根据向所述SIP实体指示的过载控制类型,对所述SIP实体进行过载控制。
[0046] 优选的,所述SIP实体,用于在向所述SIP服务器发出的消息中表明该SIP实体支持的过载控制类型;
[0047] 所述SIP服务器,还用于在向SIP实体发出的消息中,将所述SIP服务器支持的过载控制类型指示为该SIP实体支持的过载控制类型。
[0048] 本发明提供了一种过载控制方法、装置和系统,SIP服务器在向SIP实体发出的消息中指示该SIP服务器支持的过载控制类型,在所述SIP服务器过载时,根据向所述SIP实体指示的过载控制类型,对所述SIP实体进行过载控制,实现了全部SIP过载控制类型的过载控制,提高了过载控制效率,解决了SIP服务器性能下降的问题。

附图说明

[0049] 图1为本发明的实施例一提供的一种过载控制方法的流程图;
[0050] 图2为本发明的实施例二中SIP服务器和SIP实体在正常状态下的交互流程示意图;
[0051] 图3为本发明的实施例二中SIP服务器在过载情况下与SIP实体的交互流程示意图;
[0052] 图4为本发明的实施例三提供的一种过载控制装置的结构示意图。

具体实施方式

[0053] 目前SIP协议中只实现了基于丢失的过载控制,对于其他的显式的过载控制方式并没有做出相应的支持,使得SIP服务器无法有效应对各种突发的过载情况,从而导致SIP服务器性能的急剧下降。
[0054] 为了解决上述问题,本发明的实施例提供了一种过载控制方法、装置和系统。下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
[0055] 首先结合附图,对本发明的实施例一进行说明。
[0056] 本发明实施例提供了一种过载控制方法,使用该方法完成SIP系统内的过载控制流程如图1所示,包括:
[0057] 步骤101、SIP服务器在向SIP实体发出的消息中指示该SIP服务器支持的过载控制类型;
[0058] 本步骤中,具体的,SIP服务器在向SIP实体(如该SIP服务器上游的SIP客户端或SIP服务器)在发出的消息中携带过载控制类型(OC-type)参数,所述OC-type参数指示该SIP服务器支持的过载控制类型。
[0059] 目前定义的基于丢失的过载控制方式是通过在SIP Via消息头中增加新的参数实现,通过这些参数在邻居SIP实体间传送过载控制信息。具体增加的参数如下:
[0060] OC:此参数提供双重目的,其一,在由SIP实体在发往请求至下游SIP服务器的消息中插入,参数表明SIP实体支持过载控制;其二,当下游SIP服务器收到请求,发送响应时,下游SIP服务器将在响应消息中表明其期望的丢失率;
[0061] OC-validity:在下游SIP服务器向上游SIP实体发送的响应消息中携带本参数,本参数表明上游SIP实体减少负载的持续时间;
[0062] OC-seq:在下游SIP服务器向上游SIP实体发送的响应消息中插入本参数,是一个可选参数,表明关联OC的参数的序列号。
[0063] 例如:
[0064] SIP/2.0100Trying
[0065]   Via:SIP/2.0/TLS pl.example.net;
[0066]     branch=z9hG4bK2d4790.1;received=192.0.2.111;
[0067]     OC=20;OC-validity=500;OC-seq=1282321615.781
[0068] 表明丢失率是20%,减少20%负载,减少负载的持续时间为500ms。
[0069] 本发明实施例中,在SIP via消息头中增加新的参数OC-type,通过该OC-type参数来表示SIP服务器支持的过载控制类型。
[0070] 如:
[0071] OC-type=00;表示Rate-based Overload Control。
[0072] OC-type=01;表示Loss-based Overload Control。
[0073] OC-type=02;表示Window-based Overload Control。
[0074] OC-type=03;表示Overload Signal-based Overload Control。
[0075] OC-type=10;表示Implicit Overload Control。
[0076] OC-type字段可以插入在任何Response消息中(包括provisional,successand failure),也可以插入在任何的Request消息中。SIP服务器可以在任何时候更新OC,OC-type和OC-validity,但是在过载发生时必须进行更新。为了防止产生重复消息,必须在更新的时候同步更新OC-seq字段。
[0077] SIP服务器在via头域中插入的OC-type字段在经过下游SIP实体时会被剥离,并且不转发(SIP服务器发送给SIP)给临近的SIP节点。因此SIP的过载反馈控制机制是基于Hop-to-Hop的,即下一跳的节点不支持过载控制。
[0078] 优选的,根据不同的OC-type,本发明的实施例还重新定义了OC,OC-validity的含义,包括两种情形:
[0079] 1、请求中有OC时,OC表示其支持过载控制的意思,遵从draft-gurbani-sOC-overload-control-02中的描述;
[0080] 2、当请求或响应中有OC-type时,OC表示丢失率。
[0081] 上述定义使得三个字段能够相互协调,完成一定的功能。
[0082] 例如,OC-type=00时,OC表示SIP请求发送的速率,OC-validity表示持续的时间;
[0083] OC-type=01时,OC表示丢失率,OC-validity表示持续的时间;
[0084] OC-type=02时,OC表示窗口大小,OC-validity表示持续的时间;
[0085] OC-type=03时,在返回的503消息插入,OC表示减少请求的数量,OC-validity表示持续的时间;
[0086] OC-type=10时,OC和OC-validity无意义。
[0087] 当SIP实体接收到SIP服务器发出的携带有OC相关参数的消息后,记录接收到消息发出方的SIP服务器的地址和端口号,然后更新本地的OC-type,OC,OC-validity值。在过载控制下的SIP实体需遵守OC-type、OC和OC-validity值的限制。
[0088] 步骤102、在所述SIP服务器过载时,根据向所述SIP实体指示的过载控制类型,对所述SIP实体进行过载控制。
[0089] 可选的,SIP实体对接收到的携带有OC相关参数的消息时,可对该消息进行转发,但需要对OC相关参数进行剥离处理,如步骤103:
[0090] 步骤103、所述SIP服务器上游的SIP实体在接收到所述SIP服务器发出的携带有OC-type参数的消息时,剥离所述消息的OC-type参数,转发剥离后的所述消息;
[0091] 本步骤中,SIP实体要转发一个SIP请求时,首先根据SIP URI去查找DNS来确定下一跳SIP服务器的地址,当找到下一跳SIP服务器的地址时,必须查看本地是否有关于该SIP服务器的过载控制参数。如果本地对过载控制参数设置有一定时器,则需要查看过载控制参数设置是否已过期,若OC没有过期,并且服务器此时正处于过载状态,那么SIP实体必须要根据OC算法来决定是否将该SIP请求发送至下一跳SIP服务器。
[0092] 优选的,在SIP实体转发消息时,将过载控制的相关参数剥离。在SIP服务器指明某一或某些参数可以被转发时,也可在转发时保留相应参数。
[0093] 此外,在SIP实体向SIP服务器发送的消息中,亦可以携带OC-type参数以表明本SIP实体支持的过载控制类型。这样,SIP服务器在向SIP实体指示过载控制类型时,就会参考SIP实体支持的过载控制类型。
[0094] 下面结合附图,对本发明的实施例二进行说明。
[0095] 本发明实施例提供了一种SIP系统中的过载控制方法。
[0096] 首先,对SIP服务器和SIP实体在正常状态下的交互流程进行说明。图2是SIP服务器和SIP实体在正常状态下的交互流程示意图。正常情况下,SIP服务器的处理能力为20000/s,一个SIP实体的数据流量在5000/s左右,突发情况下可能达到10000/s。具体流程如下:
[0097] 1、SIP实体在加入IP网络时,向下游的SIP服务器发送的request请求中,加入OC字段。
[0098] 2、SIP服务器在接收到SIP实体的OC字段后,在Response字段中插入自身所支持的过载控制类型,在本例中SIP Entity1 OC-type=00,SIP Entity2OC-type=01,SIP Entity3则没有流量控制。
[0099] 图3是SIP服务器在过载情况下与SIP实体的交互流程示意图。假设系统环境采用基于速率的过载控制方法,那么SIP服务器在过载时,将会在向下游的SIP实体发送的请求中插入OC-type、OC、OC-validity等参数。下游的SIP实体在接收到SIP服务器的SIP请求后必须根据OC中的字段,将自身发往该SIP服务器的请求速率降低为OC字段中的值,并持续OC-validity所限制的时长。具体过程如下:
[0100] 1、SIP Entity1和SIP Entity2向SIP Sever发送request请求。
[0101] 2、由于此时服务器已经过载,因此SIP Sever在向SIP Entity1发送的response消息中插入OC-type=00,OC=5000/s,OC-validity=5000ms。
[0102] 3、此时SIPEntity1的流量为7000/s,由于SIP服务器的限定流量为5000/s所以,SIP Entity1将剩余的2000/s流量发往另一个SIP服务器。
[0103] 4、SIP Sever对SIP Entity2使用的过载控制方式是基于丢失的过载控制方式,因此OC-type=01,OC=10%,OC-validity=1000ms。
[0104] 5、此时SIP Entity2须将自身10%的流量重定向到另外的服务器,或者拒绝这些请求,为了客户公平性,被拒绝的请求必须是系统随机抽取的。
[0105] 6、对于不支持OC控制的SIP Entity3,SIP服务在过载时可以采取直接拒绝请求的方式。
[0106] 下面结合附图,对本发明的实施例三进行说明。
[0107] 本发明实施例提供了一种过载控制装置,其结构如图4所示,包括:
[0108] 指示模块401,用于在向SIP实体发出的消息中指示SIP服务器支持的过载控制类型;
[0109] 控制执行模块402,用于在所述SIP服务器过载时,根据向所述SIP实体指示的过载控制类型,对所述SIP实体进行过载控制。
[0110] 优选的,所述指示模块401,具体用于在发出的消息中携带OC-type参数,所述OC-type参数指示该SIP服务器支持的过载控制类型。
[0111] 优选的,所述SIP服务器支持的过载控制类型包括:
[0112] Rate-based Overload Control、Loss-based Overload Control、Window-basedOverload Control、Overload Signal-based Overload Control和Implicit OverloadControl。
[0113] 优选的,所述指示模块401,还用于接收所述SIP实体发出的表明该SIP实体支持的过载控制类型的消息,并在向SIP实体发出的消息中,将所述SIP实体支持的过载控制类型指示为该SIP服务器支持的过载控制类型。
[0114] 本发明实施例还提供了一种过载控制系统,包括SIP服务器和SIP实体;
[0115] 所述SIP服务器,用于在向所述SIP实体发出的消息中指示该SIP服务器支持的过载控制类型,在所述SIP服务器过载时,根据向所述SIP实体指示的过载控制类型,对所述SIP实体进行过载控制。
[0116] 优选的,所述SIP实体,用于在向所述SIP服务器发出的消息中表明该SIP实体支持的过载控制类型;
[0117] 所述SIP服务器,还用于在向SIP实体发出的消息中,将所述SIP服务器支持的过载控制类型指示为该SIP实体支持的过载控制类型。
[0118] 本发明的实施例所提供的过载控制装置和系统,能够与本发明的实施例提供的一种过载控制方法相结合,SIP服务器在向SIP实体发出的消息中指示该SIP服务器支持的过载控制类型,在所述SIP服务器过载时,根据向所述SIP实体指示的过载控制类型,对所述SIP实体进行过载控制,实现了全部SIP过载控制类型的过载控制,提高了过载控制效率,解决了SIP服务器性能下降的问题。仅需要在SIP服务器发出的请求或响应消息中加入过载控制参数,不需要改变现有消息交互流程,在提高SIP服务器性能的同时,有效的控制了实现成本。
[0119] 本领域普通技术人员可以理解上述实施例的全部或部分步骤可以使用计算机程序流程来实现,所述计算机程序可以存储于一计算机可读存储介质中,所述计算机程序在相应的硬件平台上(如系统、设备、装置、器件等)执行,在执行时,包括方法实施例的步骤之一或其组合。
[0120] 可选地,上述实施例的全部或部分步骤也可以使用集成电路来实现,这些步骤可以被分别制作成一个个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
[0121] 上述实施例中的各装置/功能模块/功能单元可以采用通用的计算装置来实现,它们可以集中在单个的计算装置上,也可以分布在多个计算装置所组成的网络上。
[0122] 上述实施例中的各装置/功能模块/功能单元以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。上述提到的计算机可读取存储介质可以是只读存储器,磁盘或光盘等。
[0123] 任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求所述的保护范围为准。