APP下载

SIP信令过载控制算法优化研究

2019-02-14毛新农金东方刘邦魁

数字通信世界 2019年1期
关键词:代理服务器重传队列

史 建,毛新农,金东方,刘邦魁

(中国电子科技集团公司第三十研究所,成都 610000)

在使用UDP等无连接的传输协议的SIP网络进行报文发送时,出现丢包后,SIP设计了对应的重传机制。但是当重传的请求较多时,会导致网络的阻塞,降低网络的性能。本文将设计一种随机优化算法来避免网络性能的降低,对网络过载进行优化。

1 SIP交互介绍

SIP(Session Initiation Protocol,会话初始协议)是一种应用层协议,在各种多媒体应用中维护各种会话,是诸如在线电话等应用的基础。在一般的SIP交互中,用户代理发出一个报文后申请建立一个会话;SIP代理服务器接到请求后转发报文、检查参数并且返回对应的信息,并维护会话通道的有效。一般而言,代理服务器需要接收至少7次报文,SIP协议类似于HTTP协议,可以提高应用服务的开发效率。

SIP 的一个重要特点是它不定义要建立的会话的类型,而只定义应该如何管理会话。有了这种灵活性,也就意味着SIP可以用于众多应用和服务中,包括交互式游戏、音乐和视频点播以及语音、视频和 Web 会议。SIP消息是基于文本的,因而易于读取和调试。同时针对SIP建立新的应用服务更加简单,对于设计人员而言也更加直观。SIP如同电子邮件客户机一样重用 MIME 类型描述,因此与会话相关的应用程序可以自动启动。SIP 重用几个现有的比较成熟的 Internet 服务和协议,如 DNS、RTP、RSVP等。不必再引入新服务对 SIP 基础设施提供支持,因为该基础设施很多部分已经到位或现成可用。

2 过载控制算法优化

在SIP网络中,代理服务器对各类SIP消息及数据进行转发,承载了较大的压力。随着网络负载的上升,代理服务器出现报文丢失的概率会增加,而这种情况又会引发SIP的重传机制,导致更大的网络阻塞,甚至影响整个网络的服务。

为了解决这种问题,一般的处理办法是使用503(Service Unavailable)报文返回给发送端,503报本代表服务端不可用,客户端收到该报文后一般会阻止发送端重传报文。通过这种方式虽然能够降低网络的负载,但这样也会引起服务波动较为剧烈的情况出现,引发应用中断,导致服务性能的波动较大。本文针对该问题设计一种随机优化算法来平滑报文过载的处理效率,改善网络的性能。

随机优化算法的核心思想是在代理服务器上设置两个缓冲队列。Tmax和Tmin代表队列的缓冲能力。而当数据达到代理服务器时,根据计算得到队列的长度Q,根据当前的Q来判断拒绝服务的概率P,如果P大于一定的值,则返回503报文,拒绝进行服务。当有新的数据包达到后,如果Q小于Tmin,代表服务器目前处于正常状态,可以进行服务,从而将数据插入到缓冲队列,等到转发。而当Q大于Tmax时,代表服务器已经处于过载状态,此时直接拒绝服务。而当Q位于Tmax和Tmin之间时,按照下式进行概率P的计算:

为了能够平滑队列的移动窗口,设置Q=Q(1-w)+wq。w是加权系数,用于动态调整队列的长度。通过设置w参数,可以有效的对队列进行平滑,改善网络效率。P0为初始的概率大小,也就是当Q=Tmin的概率大小。算法的效率同Tmax和Tmin两个参数也有一定的关系,Tmax较大则需要服务器提供较大的缓冲资源,而如果该值较小则可能导致过多报文被拒绝,最终降低服务的性能。Tmin较小的时候一旦报文到达服务器,则需要进行随机概率的判断,需要耗费一定的计算资源。而如果该值较大,缓冲队列需要更多的存储资源来提供服务。程序实现核心代码如图1所示:

图1 核心算法代码

当报文请求到达服务器后,根据当前的队列情况进行判断,如果队列已经满了,则拒绝该报文的服务,如果队列相对空闲,则将报文加入处理队列。如果队列不为空,则计算拒绝的概率,根据计算得到的概率选择不同的服务方式。

3 仿真分析

为对算法进行仿真,设置缓冲长度为100,将w的取值变为0.7,同时取P0为1.6,Tmax=80,Tmin=25。在n为1000个节点的网络下进行仿真。为对比结果,采用堵塞时直接返回503报文的方式进行对比。可以看到在对任意单位时间的阻塞进行仿真以后,在随机优化算法下阻塞状态平均持续时间大概为0.09秒,而非阻塞状态下的平均持续时间为0.26秒,连接较为稳定。而在进入阻塞状态后,当报文数降到42后,SIP得以恢复,吞吐量有了明显的改善。整个网络的平均拒绝率为0.081,有效的提高了网络的服务率。

改变Tmax=100,Tmin=15。在n为1000个节点的网络下进行仿真。可以看到在对任意单位时间的阻塞进行仿真以后,在增加队列长度的情况下下阻塞状态平均持续时间大概为0.07秒,而非阻塞状态下的平均持续时间为0.34秒,连接较为稳定。而在进入阻塞状态后,当报文数降到50后,SIP得以恢复,吞吐量有了明显的改善。整个网络的平均拒绝率为0.061,有效的提高了网络的服务率。但是网络的资源的占比有了16%的上升。通过设置不同的缓冲队列参数可以有效的对网络的情况进行优化。不同参数设置下系统负载率和网络时延的对比如下:

图2 不同参数下网络延时与负载率关系图

如图2所示,随着队列长度的不同,系统的表现有一定的差异,而且同缓冲队列的长度相比系统的性能提升并非成正比增长,而是在Tmax与Tmin之间得到平衡。

为分析不同的P0参数对网络性能的影响,并且为了比较原有算法和优化后的算法在不同队列长度下的对比,本文使用不同的参数值进行仿真,得到下图的仿真结果图:

图3 不同初始概率及算法对比效果图

左图是在不同的初始概率P0下,算法占用缓存与概率密度的关系图。可以看到初始概率较大的情况下,占用缓存的分布较为平缓。根据概率密度分布可以算出,测试评价拒绝服务的概率大概为P=0.085。对于加权系数w进行仿真后发现,当w过小时,队列增长较缓,负载率很难有效控制。而当w较大时,队列增加较快,可能导致资源浪费,当w取值范围在[0.4,0.8]之间时系统的稳定性较好。

右图对比了优化后的算法,在不同的缓冲队列下负载率的变化。可以看到随着缓存队列长度的增加,随机优化算法的表现要优于原算法,随着缓存长度的增加,优化效果的表现越来越好。

4 结束语

本文分析了SIP网络出现拥塞的原因,由于代理服务器在丢失报文后会引发SIP的重传服务,而在网络拥堵的情况下,报文的重传可能导致网络的进一步拥堵。本文针对这种情况提出了一种基于队列的缓冲随机优化算法,来提升网络的性能。通过缓冲队列的设置,根据队列的资源使用情况,使用随机算法来决定是否拒绝服务,从而达到稳定网络的服务效率,提升网络性能的目的。通过对优化后的算法进行仿真,验证了该算法的有效性。

猜你喜欢

代理服务器重传队列
适应于WSN 的具有差错重传的轮询服务性能研究
基于TDMA的wireless HART网络多路径重传算法
队列里的小秘密
基于多队列切换的SDN拥塞控制*
无线网络中基于网络编码与Hash查找的广播重传研究
地铁信号系统中代理服务器的设计与实现
在队列里
面向异构网络的多路径数据重传研究∗
丰田加速驶入自动驾驶队列
防火墙技术与校园网络安全的研究