CN1780293B - 在有状态会话初始协议服务器上实现过负荷控制的方法 - Google Patents
在有状态会话初始协议服务器上实现过负荷控制的方法 Download PDFInfo
- Publication number
- CN1780293B CN1780293B CN 200410091726 CN200410091726A CN1780293B CN 1780293 B CN1780293 B CN 1780293B CN 200410091726 CN200410091726 CN 200410091726 CN 200410091726 A CN200410091726 A CN 200410091726A CN 1780293 B CN1780293 B CN 1780293B
- Authority
- CN
- China
- Prior art keywords
- uas
- port
- message
- session
- level
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Telephonic Communication Services (AREA)
Abstract
本发明公开了一种在有状态SIP服务器上实现过负荷控制的方法,该方法对UAS定义两级服务端口:一级端口和二级端口。一级端口负责接收会话初始请求消息,二级端口则负责接收后续的事务处理消息。UAS将INVITE消息中To头域的SIP或SPIS类型的统一资源标识所包含的地址信息中的端口内容修改为二级端口后,将其写入响应消息的Contact头域,并将携带二级端口信息的响应消息发送给UAC,从而指定了该会话的后续事务处理均由二级端口接收。这样,在系统过负荷时,服务器只需简单关闭一级端口拒绝新会话初始消息,或只对该端口接收的初始INVITE消息做简单错误处理,即可完成过负荷控制。该方法确保了活动会话的QoS,同时,由于该方法无需进行解析,明显降低了由于额外事务处理给系统性能和时间的损耗造成的不良影响。
Description
技术领域
本发明涉及会话初始协议(SIP)应用技术,尤指一种在有状态SIP服务器上实现过负荷控制的方法。
背景技术
SIP的开发目的是用来帮助提供跨越Internet的高级电话业务。Internet电话正在向一种正式的商业电话模式演进,SIP就是用来确保这种演进实现而需要的下一代网络(NGN)系列协议中重要的一员。
SIP是Internet工程任务组(IETF)标准进程的一部分,它是在诸如简单邮件传送协议(SMTP)和超文本传送协议(HTTP)基础之上建立起来的。它用来建立、修改和终止基于IP网络的用户间的呼叫。为了提供电话业务,SIP还需要结合不同的标准和协议来协同完成。通过Internet实时传输数据的实时传输协议(RTP)和会话描述协议(SDP)是其中两种常用的协议。RTP协议用来承载实时多媒体数据,如语音、视频和文本媒体流等,通过对数据进行编码和分组,使数据能以数据包的形式在Internet上传输。SDP协议用来描述多方能力和编码规则,该能力描述可作为依据来协商会话的特征以确保多方均可参加,如协商媒体数据的编码格式、协商具体的传输协议等。
SIP协议基于类似HTTP协议的请求(Request)/响应(Response)事务模式,每个事务在客户端包括一个调用指定方法或功能的请求,而在服务端则至少有一个响应。
一个SIP会话代表两个用户代理机(User Agent)间保持的一个端到端的SIP联系,其中一端是用户代理客户机(UAC),另一端是用户代理服务器(UAS),一般可通过UAC向UAS发起会话初始请求INVITE或者定制会话SUBSCRIBE等会话初始请求创建。
SIP服务器有多种形态,比如有状态服务器、无状态服务器和重定向服务器。,所谓有状态服务器就是,当会话交互实体之间需要进行多次交互时,需要服务器保存会话或事务状态,能保存会话状态的服务器称为有状态服务器;而无状态服务器不对会话状态进行维护和保存,所有的请求对无状态服务器来讲都可以认为是初始请求,不存在后续交互的问题,无状态服务器仅仅完成转发功能,例如转发服务器。文中提到的UAS就是一种有状态SIP会话服务器。一个有状态SIP会话服务器所能支持的活动会话是有限的,比如能够支持1000个活动会话,当活动会话超过最大限制时,系统触发过负荷控制以使服务器拒绝新的会话发起请求。
目前,一般有状态SIP会话服务器是单端口的,即所有的消息都发送到同一个用户数据报协议(UDP)端口或传输控制协议(TCP)端口。
图1是现有技术基于单端口的有状态SIP会话服务器会话交互流程图,UAC通过UAS提供的端口向UAS发起会话初始请求INVITE,得到UAS响应后,UAC向UAS回复响应确认;当会话结束时,UAC向UAS提供的同一端口发送呼叫结束BYE消息,结束此次会话。假设在此次会话过程中,在会话结束之前,UAC需要改变呼叫属性,如改变媒体传输地址、增加/删除媒体流、保持呼叫,则UAC要向UAS提供的同一端口发起改变会话请求RE-INVITE,在得到UAS的响应后,UAC向UAS回复响应确认。
从图1可以看出,在SIP会话中由于发起端媒体变化或会话超时,UAS需要处理RE-INVITE请求,RE-INVITE消息是活动会话中一个对会话对象更改处理过程。如果某个时刻UAS过负荷,为了不影响现有活动会话,使在提供过负荷控制功能的同时,保证现有活动会话的服务质量(QoS,Quality ofService),现有技术对过负荷的控制有以下两种方法:
第一种方法是在传输层进行过负荷控制,具体是这样做的:若服务器处于过负荷状态,当收到消息时,传输层将检测当前收到的消息是否是会话初始请求,如INVITE或SUBSCRIBE等,如果是,传输层将直接拒绝该会话请求。该方法的过负荷控制处理过程简单,日常运行中基本不会影响服务器性能。
但是,在过负荷情况下,如果发起端媒体变化或会话超时,服务器可能收到RE-INVITE请求。因传输层实际无法分辨RE-INVITE和INVITE,采用第一种方法对过负荷进行控制,服务器会丢弃这些RE-INVITE请求,从而使活动会话的QoS受到影响。
第二种方法是在事务层进行过负荷控制,具体是这样做的:若服务器处于过负荷状态,当收到消息时,传输层并不关心服务器是否过负荷,而直接分发消息给事务层。事务层通过对VIA头域的解析检测消息,以辨别当前收到的消息是转发请求,还是新的会话初始请求。如果发现当前收到的消息不是RE-INVITE请求而是新的INVITE请求,则触发过负荷控制,即拒绝INVITE请求。为了做到这一点,服务器必须对消息结构进行解码,增加对VIA头域的解析。
第二种方法针对过负荷控制,服务器必须执行一些额外的事务处理,这样损耗了一些额外的处理时间,导致整体处理能力可能降低30-40%。尤其是业务量高峰时期,过负荷控制对系统性能和时间的损耗将更加显著,容易造成恶性循环。
从上述两种现有技术对有状态SIP会话服务器过负荷控制的方法,可以看出,提供SIP支持的应用服务器在过负荷的情况,现有第一种方法需要拒绝所有会话请求,从而影响活动会话的QoS;第二种方法需要执行额外的处理,降低系统处理能力,甚至可能会造成整个系统恶性循环。可见,现有技术这两种方法都很难保证系统拥有较好的QoS。
发明内容
有鉴于此,本发明的主要目的在于提供一种在有状态会话初始协议服务器上实现过负荷控制的方法,该方法能够确保活动会话的QoS,同时能明显降低由于额外事务处理给系统性能造成的不良影响。
为达到上述目的,本发明的技术方案具体是这样实现的:
一种在有状态会话初始协议SIP服务器上实现过负荷控制的方法,其特征在于,对UAS设置两级服务端口,该方法具体步骤如下:
A.UAC通过一级端口向UAS发起会话初始请求;
B.UAS收到会话初始请求后,返回携带二级端口信息的响应消息给UAC;
C.UAS通过二级端口与UAC交互,接收当前会话的后续事务处理;
D.用户代理服务器UAS检测到过负荷时,关闭一级端或对一级端口接收到的会话初始请求做简单错误处理。
步骤B所述返回携带二级端口信息具体是:UAS将会话初始请求中To头域的SIP或SPIS类型的统一资源标识所包含的地址信息中的端口内容修改为二级端口后,将修改后的地址信息写入响应消息的Contact头域,并通过响应消息发送给UAC。
所述简单错误处理是UAS向UAC发送错误码。
步骤C所述后续事务处理包括消息响应、响应确认、媒体链接、改变会话、终止会话处理。
由上述技术方案可见,本发明方法是对UAS设置两级服务端口:一级端口和二级端口。一级端口负责接收会话初始请求消息,二级端口则负责接收后续的事务处理消息。UAS通过对INVITE消息中To头域的SIP或SPIS类型的统一资源标识(SIP-URI)所包含的地址信息中的端口内容修改后,将修改后的地址信息写入响应消息的Contact头域,并将携带二级端口的响应信息返回给UAC,使处理后续事务的端口变为二级端口。这样,在系统过负荷时,UAS只需简单关闭一级端口拒绝新会话初始消息,或只对初始INVITE消息做简单错误处理,即可完成过负荷控制,不会影响通过二级端口进行的活动会话。该方法确保了活动会话的QoS,同时,由于该方法无需进行解析,明显降低了由于额外事务处理给系统性能和时间的损耗造成的不良影响。
附图说明
图1是现有技术单端口有状态SIP会话服务器会话交互流程图;
图2是本发明有状态SIP会话服务器会话交互流程图。
具体实施方式
本发明的核心思想是:对UAS定义两级服务端口,并对这两级端口进行分工,一级端口负责接收会话初始请求消息,二级端口则负责接收后续的事务处理消息。UAC通过UAS的一级端口向UAS发起会话初始请求,UAS接收到INVITE消息后,返回携带二级端口信息的响应消息给UAC,这样,后续事务处理,包括UAC发起的RE-INVITE请求,必然指定由二级端口接收。这里,UAS将INVITE消息中To头域的SIP或SPIS类型的统一资源标识所包含的地址信息中的端口内容修改为二级端口后将其写入响应消息的Contact头域,并通过响应消息发送给UAC;当UAC收到携带二级端口信息的Contact头域后,就会通过UAS的二级端口处理UAC与UAS之间的后续事务。本发明在系统过负荷时,只需简单关闭一级端口拒绝新的INVITE请求,或只对初始INVITE消息做简单错误处理,即可拒绝新的INVITE请求,同时也保证了活动会话的QoS。
图2是本发明有状态SIP会话服务器会话交互流程图,假设在此次会话中,UAC需要发起RE-INVITE请求来改变呼叫属性。首先在UAS上设置两级端口:一级端口是服务器对外提供的一个公开地址的端口,这个地址是服务器的对外初始地址。同时设置一级端口的状态平时为开放状态,在系统触发过负荷控制时自动更改为关闭状态,并在过负荷解除后自动更改为开放状态;或者一级端口始终处于开放状态;二级端口是另一个用户地址。参见图2,具体是这样做的:
步骤20:UAC通过UAS一级端口向UAS发起会话初始请求INVITE。
INVITE包含的主要消息如表1所示:
消息名 | 消息内容功能描述 |
To | 指定初始会话服务地址 |
From | 指定UAC地址 |
Contact | 提供后续交互的地址 |
表1
根据会话初始协议RFC3261的约定,事务将根据From头域和To头域等内容寻找对应的会话,在上层模块中处理消息。另外,根据SIP协议,To头域和Contact头域中的SIP或SIPS类型的统一资源标识可以被后续请求消息用来与指定的用户代理实现交互。
步骤21:UAS将INVITE消息中To头域的SIP或SPIS类型的统一资源标识所包含的地址信息中的端口内容修改为二级端口后将其写入响应消息的Contact头域,并通过响应消息由二级端口发送给UAC。
从本步骤中可以看出,UAS用INVITE中To头域的用户名和初始会话服务器IP地址替换了Contact头域中的源地址,并将To头域的SIP或SPIS类型的统一资源标识所包含的地址信息中的端口内容修改为UAS的二级端口。至此,UAC向UAS的后续事务处理将通过UAS的二级端口完成,即通过响应的Contact头域提供后续交互的服务端口为UAS的二级端口。
步骤22:UAC向UAS二级端口发送ACK响应,确认UAC已经接收到对INVITE的最终响应。
步骤23:UAC再次向UAS发起改变会话请求RE-INVITE。请求更新SDP。
由于UAS在之前已经将携带二级端口信息的Contact头域消息响应给了UAC,所以,UAC依据Contact中的地址向UAS的二级端口发起RE-INVITE请求。
步骤24~步骤25:UAS二级端口对改变会话请求响应并得到UAC的响应确认。
如果会话中不需要改变呼叫属性,步骤23~步骤25将不存在。
步骤26~步骤27:会话结束,UAC向UAS二级端口发出BYE消息终止双方的会话并得到UAS的响应。
根据本发明的方法,如果系统检测到UAS过负荷,此时一级端口设置为自动关闭时,UAS将立即关闭一级端口,即UAS设置一级端口此时不对外开放,从步骤23可见,即便关闭了一级端口,也不会影响RE-INVITE消息的接收处理,不会降低活动会话的Qos。而对于新的INVITE消息,由于是通过服务器一级端口发起请求的,所以服务器将全部拒绝接收,从而保证了对服务器过负荷的控制。
如果UAS一级端口设置为始终开放,那么,当系统检测到UAS过负荷时,若有初始INVITE消息进入一级端口,UAS对初始INVITE消息只做简单错误处理,比如UAS向UAC返回错误码“486Busy Here”即可。
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举较佳实施例,对本发明进一步详细说明。
假设UAS设置为:发生过负荷时,UAS一级端口自动关闭;假定设置UAS一级端口地址为:192.0.2.4:Primary-port,设置UAS二级端口地址为:192.0.2.4:Secondary-port,并假定SIP用户alice@huawei.com呼叫SIP用户bob@xcompany.com,参照图2本发明有状态SIP会话服务器会话交互流程图,具体实施如下:
步骤20:UAC根据To头域内容:Bob<sip:bob@huawei.com>,通过UAS一级端口向UAS发起会话初始请求INVITE。
此时,INVITE的主要消息内容见表2所示:
消息名 | 消息内容功能描述 |
To | 指定初始会话服务地址为:Bob<sip:bob@huawei.com> |
From | 指定UAC地址为:Alice<sip:alice@xcompany.com> |
Contact | 提供后续交互的地址为:<sip:alice@pc33.xcompany.com> |
表2
上面的消息中,To头域中的消息:Bob<sip:bob@huawei.com>就是UAS一级端口地址,bob是用户名,比如电话号码等,huawei.com对应IP地址+(端口号)Port,比如:192.0.2.4:Primary-port,即表示UAS的一级端口。
步骤21:UAS将INVITE消息中To头域包含的SIP或SPIS类型的统一资源标识中地址信息的的端口内容修改为二级端口后将其写入响应消息Contact头域,并通过响应消息由二级端口发送给UAC。
响应的主要消息如表3所示:
消息名 | 消息内容功能描述 |
To | 指定初始会话服务地址为:Bob<sip:bob@huawei.com> |
From | 指定UAC地址为:Alice<sip:alice@xcompany.com> |
Contact | 提供后续交互的地址为:<sip:bob@192.0.2.4:Secondary-Port> |
表3
从本步骤中可以看出,Contact头域信息是:
Contact:<sip:bob@192.0.2.4:Secondary-Port>,即在Contact中保存INVITE中To头域的用户名和IP地址和二级端口端口号。这里,用户名为bob,IP地址+Port是192.0.2.4:Secondary-port,即UAS的二级端口。
步骤22:UAC向UAS二级端口发送ACK响应,确认UAC已经接收到对INVITE的最终响应。
步骤23:UAC再次向UAS发起改变会话请求RE-INVITE。请求更新SDP,比如改变呼叫属性。
由于UAS在之前已经将携带二级端口信息的Contact头域消息响应给了UAC,所以,UAC依据Contact中的地址向UAS的二级端口发起请求。
步骤24~步骤25:UAS二级端口对改变会话请求响应并得到UAC的响应确认。
步骤26~步骤27:会话结束,UAC向UAS二级端口发出BYE消息终止双方的会话并得到UAS的响应。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (4)
1.一种在有状态会话初始协议SIP服务器上实现过负荷控制的方法,其特征在于,对用户代理服务器UAS设置两级服务端口,该方法具体步骤如下:
A.用户代理客户机UAC通过一级端口向用户代理服务器UAS发起会话初始请求;
B.用户代理服务器UAS收到会话初始请求后,返回携带二级端口信息的响应消息给用户代理客户机UAC;
C.用户代理服务器UAS通过二级端口与用户代理客户机UAC交互,接收当前会话的后续事务处理;
D.用户代理服务器UAS检测到过负荷时,关闭一级端口或对一级端口接收到的会话初始请求做简单错误处理。
2.根据权利要求1所述的方法,其特征在于,步骤B所述返回携带二级端口信息具体是:用户代理服务器UAS将会话初始请求中To头域的SIP或SPIS类型的统一资源标识所包含的地址信息中的端口内容修改为二级端口后,将修改后的地址信息写入响应消息的Contact头域,并通过响应消息发送给用户代理客户机UAC。
3.根据权利要求1所述的方法,其特征在于,所述简单错误处理是用户代理服务器UAS向用户代理客户机UAC发送错误码。
4.根据权利要求1所述的方法,其特征在于,步骤C所述后续事务处理包括消息响应、响应确认、媒体链接、改变会话、终止会话处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200410091726 CN1780293B (zh) | 2004-11-25 | 2004-11-25 | 在有状态会话初始协议服务器上实现过负荷控制的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200410091726 CN1780293B (zh) | 2004-11-25 | 2004-11-25 | 在有状态会话初始协议服务器上实现过负荷控制的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1780293A CN1780293A (zh) | 2006-05-31 |
CN1780293B true CN1780293B (zh) | 2010-04-28 |
Family
ID=36770401
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200410091726 Expired - Fee Related CN1780293B (zh) | 2004-11-25 | 2004-11-25 | 在有状态会话初始协议服务器上实现过负荷控制的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1780293B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101212418B (zh) * | 2006-12-31 | 2010-05-12 | 华为技术有限公司 | 背靠背用户代理及其传输信息的方法 |
JP4940163B2 (ja) * | 2008-02-05 | 2012-05-30 | 株式会社日立製作所 | 通信ゲートウェイ装置及び中継方法 |
CN108989221B (zh) * | 2018-09-21 | 2021-01-01 | 北京东土科技股份有限公司 | 一种sip消息的传输方法、装置、计算机设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1018687A2 (en) * | 1999-01-05 | 2000-07-12 | Lucent Technologies Inc. | A port manager controller for connecting various function modules |
CN1369991A (zh) * | 2002-04-01 | 2002-09-18 | 北京港湾网络有限公司 | 交换机捆绑端口分流方法及交换机芯片 |
CN1412997A (zh) * | 2001-10-17 | 2003-04-23 | 华为技术有限公司 | 分布式的ip处理模块的实现方法 |
US20040120501A1 (en) * | 2002-12-19 | 2004-06-24 | International Business Machines Corporation | Connection manager for integrating legacy telephony environments and IP networks |
-
2004
- 2004-11-25 CN CN 200410091726 patent/CN1780293B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1018687A2 (en) * | 1999-01-05 | 2000-07-12 | Lucent Technologies Inc. | A port manager controller for connecting various function modules |
CN1412997A (zh) * | 2001-10-17 | 2003-04-23 | 华为技术有限公司 | 分布式的ip处理模块的实现方法 |
CN1369991A (zh) * | 2002-04-01 | 2002-09-18 | 北京港湾网络有限公司 | 交换机捆绑端口分流方法及交换机芯片 |
US20040120501A1 (en) * | 2002-12-19 | 2004-06-24 | International Business Machines Corporation | Connection manager for integrating legacy telephony environments and IP networks |
Also Published As
Publication number | Publication date |
---|---|
CN1780293A (zh) | 2006-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7301913B2 (en) | Transcoding arrangement in a session initiation | |
US7469299B2 (en) | Bridging user agent and a proxy server for supporting network services | |
US7886060B2 (en) | Establishing and modifying network signaling protocols | |
KR100475186B1 (ko) | 접속 설정 프로토콜을 이용한 단말 장치의 등록 방법 | |
US7797433B2 (en) | System, method, and computer program product for resolving addressing in a network including a network address translator | |
JP5363461B2 (ja) | グループ呼機能の問い合わせ | |
US10044767B2 (en) | Method and system to enhance performance of a session initiation protocol network and its elements | |
EP1668865B1 (en) | Network entity for interconnecting sip end-points of different capabilities | |
US20100085959A1 (en) | System and method for achieving interoperability between endpoints operating under different protocols | |
KR20050122227A (ko) | 세션 개시 프로토콜 및 다른 메시지 전달 서비스들 간의상호 동작을 가능하게 하는 시스템 및 방법 | |
EP1672866A1 (en) | Method and system to the instant transfer of multimedia files between mobile radio users within the scope of combinational services | |
US7701971B2 (en) | System and method for providing a compatibility feature in a session initiation protocol (SIP) environment | |
Baset et al. | The Session Initiation Protocol (SIP): An Evolutionary Study. | |
CN1780293B (zh) | 在有状态会话初始协议服务器上实现过负荷控制的方法 | |
Zhang et al. | Implementing SIP and H. 323 signalling as Web Services | |
US20070058611A1 (en) | Method and system to proxy mobile and network originated call sessions | |
Cisco | Chap 1: Overview of the Session Initiation Protocol | |
Chakraborty et al. | VoIP protocol fundamentals | |
US7778274B2 (en) | System and method for providing a compatibility feature in a session initiation protocol (SIP) environment | |
Bhat | Voice Over IP–The SIP Way | |
Cirani et al. | Lightweight Session Initiation for the Internet of Things | |
EP1672867A1 (en) | Method to the fast and reliable transfer of large amount of data between mobile radio users involved in a SIP session | |
EP2059001A1 (en) | Multitype SIP processing element | |
Abouabdalla et al. | SIP–Functionality and structure of the protocol | |
Govindaraju | Session Initiation Protocol and Services |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100428 Termination date: 20131125 |