一种基于RTCP的自适应流媒体拥塞控制算法

2014-09-12 11:04梁皓骆新全
关键词:包率速率传输

梁皓,骆新全

(1.中国传媒大学新媒体研究院,北京100024;2.中国传媒大学信息工程学院,北京 100024)

1 引言

流媒体是一种网络传输音频、视频和多媒体文件的形式,其优点是采用流式传输方式,用户不必像下载方式那样要等到整个文件全部下载完之后播放和观看,而是只需经过几秒到几十秒的启动延时就能播放,此时媒体文件的剩余部分将在后台继续下载。实时流媒体可以接受一定程度的丢包,但是要求较低的时延,因此大多数系统中采用UDP协议作为流媒体的传输协议。然而,UDP协议不能提供拥塞控制等相关服务,不能保证流传输的可靠性。目前支持流媒体传输的协议主要有实时传输协议RTP(Real-Time Transport Protocol)、实时传输控制协议RTCP(Real-Time Transport Control Protocol)等。RTP/RTCP协议可以辅助UDP协议,解决流媒体传输中的拥塞问题。RTCP协议可提供服务质量的信息反馈,如发送包数、发送字节数、累计丢包数、到达时间间隔抖动等。服务器可以利用RTCP包中所包含的信息动态地改变传输速率,甚至改变有效载荷类型。

本文旨在研究基于RTP/RTCP协议的媒体流拥塞控制方法,在现有的AIMD算法基础上提出一种有记忆拥塞功能、能动态改变加性因子与乘性因子的自适应AIMD算法,进一步提高流传输的平稳性。

2 拥塞控制

2.1 拥塞控制的作用

网络拥塞是一种持续过载的网络状态,此时用户对网络资源的需求超过了其固有的容量。拥塞会增加丢包率,引起数据传输延时严重影响带宽、缓存和吞吐量等网络资源的利用率,甚至有可能使整个系统发生崩溃。如图1所示,Knee称为膝点,Cliff称为崖点。网络的响应时间随着网络负载的增加而增加,在网络负载到达膝点之前,网络吞吐量及网络性能都增加较快;当网络负载超过膝点时,吞吐量增长变得缓慢,性能开始下滑;而一旦超过了崖点,吞吐量迅速下降,网络发生拥塞。因此使用适当的拥塞控制机制非常重要。拥塞控制是指在网络发生拥塞或即将拥塞的状况下,采用适当的策略或机制,保持网络在正常的状态下工作。

图1 负载与响应时间、吞吐量、性能的关系

2.2 拥塞控制的方法

目前在网络传输领域中经常采用的拥塞控制方法分为基于窗口型和基于速率型两种方式。

(1)基于窗口的拥塞控制

基于窗口的拥塞控制是指发送端或者接收端使用一个拥塞窗口来控制网络状态,窗口越大则数据发送速率越快。在网络空闲时适当地增大窗口,当检测到网络拥塞时则减少窗口的尺寸。基于窗口的拥塞控制可以有效的避免网络拥塞的发生,TCP协议就是通过这种拥塞控制方法。但其中的重传机制及延时抖动等问题限制了面向实时流媒体业务的应用。

(2)基于速率的拥塞控制

基于速率的拥塞控制是指根据某些指示网络拥塞的反馈机制动态地调整速率传输率,从而达到拥塞控制的目的。这种方法更适合流媒体应用,是目前网络视频流式传输中主要采用的一种拥塞控制机制。常用的调整发送端速率的机制有基于探测的算法和基于模型的算法。在基于探测的控制算法中,发送端不断地探测网络的可用带宽,随时调节发送速率。此类算法容易实现,但是容易造成传输速率的波动性。基于模型的算法是根据丢包率、往返时间差等为参数的TCP吞吐量模型来计算发送端的最大传输速率,发送端以此计算结果为依据来对自身的发送速率进行调整,速率控制更平滑,但计算量较大。其中AIMD算法是一种常用的基于探测的算法,它可以根据报文的丢失情况周期地调整发送速率。

3 AIMD算法描述

AIMD算法是一种常用的基于控制发送端速率的方法。根据文献[3]的描述AIMD 拥塞控制方法采用加性增大乘性减小的策略:根据丢包率的大小,将网络分为网络空闲及网络阻塞两种状态,当网络空闲时,按常量增加发送速率;当网络发生拥塞时,乘性减小发送速率。假设为最大传输速率,Rmin为用户可接受的最低质量的发送速率,Ploss为RTCP 包中统计的丢包率,Pmax为最大丢包率,R发送速率,α为加性因子,β为乘性因子。算法表示为:

if(Ploss≤Pmax) //网络空闲

R=min(R+α,Rmax);

else //网络阻塞

R=max(R×β,Rmin);

此算法实现简单,能较快速地使用网络中的有效资源,并且当网络拥塞时能急剧地降低发送速率,减轻网络拥塞程度。但是AIMD算法会使发送速率变动得过于频繁,导致传输质量下降。因此文献[4][5]对原有的AIMD算法进行了改进。首先在改变发送速率之前,对RTCP包反馈的丢包率进行平滑处理,同时改变网络划分方法,在原算法的基础上增加网络适中状态,此状态下发送速率不做改变。改进的算法为:

Ploss=(1-η)×Ploss+η×Pnew

if(Ploss≤Pmin) //网络空闲

R=min(R+α,Rmax);

else if(Ploss≥Pmax) //网络拥塞

R=max(R×β,Rmax);

else //网络适中

R=R;

其中Pnew为接收到的最新丢包率,η(0<η<1)为平滑系数,Pmin、Pmax为丢包率阀值且满足0

4 改进的自适应AIMD算法

本文在现有AIMD算法基础上做了改进,提出一种含记忆参数的自适应控制算法,进一步降低RTP流的抖动。该算法增加了记忆功能,记录下网络第一次进入拥塞状态时的发送速率及丢包率,作为改变发送速率的参数。具体的算法描述如下:

(1)RTP流进入网络后,首先按照加性增大乘性减小的方式控制发送端的发送速率,α与β的值均为常数,用α0、β0表示。

(2)当网络第一次进入拥塞状态时,记录此时的丢包率Pc及发送速率Rc。本文借鉴文献[5]中的算法,将拥塞记忆速率Rc和当前速率R之差,与拥塞记忆速率Rc和拥塞记忆丢包率Pc之积进行比较,以此判断R与Rc是否接近。在网络空闲状态下,当R与Rc相差较大即满足Rc-R>Rc×Pc时,α仍为设定的常数α0,不做改变;当R与Rch较为接近即Pc-R≤Rc×Pc时,速率增量α随当前发送速率R的增大而减小,使曲线更平滑。

(3)在网络拥塞状态下,根据当前速率和R与Rc的大小比较来决定的取值。当R≥Rc时,β为常数β0;当R

综上所述,算法可表示为:

Ploss=(1-η)×Ploss+η×Pnew

if(Ploss≤Pmin){ //网络空闲

R=min(R+α,Rmax);

}

else if(Ploss≥Pmax){ //网络拥塞

R=max(R×β,Rmin);

}

else //网络适中

R=R;

通过算法的记忆功能,在网络空闲状态下,且当前速率与拥塞速率相差较大时,以常数较快地增长;当传输速率增长至网络接近拥塞时,减小加性因子能有效遏制增长速度。在网络拥塞状态下,先以常数做为乘性因子迅速降低发送速率,当接近网络适中状态时根据发送速率对乘性因子进行处理,适当增大乘性因子。以上改进算法自适应地改变加性因子和乘性因子,减少因网络状况突变引起的RTP流抖动,提高传输质量。

5 总结

RTP协议为数据提供实时端对端传送服务,RTCP协议用来监控服务质量,RTP与RTCP协议联合使用适用于流媒体传输。本文引入一种改进的自适应流媒体拥塞控制算法,在AIMD算法基础上增加了记忆拥塞功能、以及能依据传输速率自适应改变的动态加性因子与乘性因子,经验证能提高数据流的平稳性。

[1]张丽娟,杨晓萍,等.基于自适应参数设置AIMD算法[J].吉林大学学报(信息科学版),2010,28(1) : 77-83.

[2]胡书卫.H.264流媒体无线传输研究实现及其在嵌入式视频监控中的应用[D].上海:上海大学,2009.

[3]Da peng Wu,Yiwei Thomas Hou,Wenwu Zhu,etal.OnEnd-to-EndArchitecture for TransportingMPEG-4Video over the Internet[J].IEEE Transon Circuits and Systems for Video Technology,2000,10( 6) .

[4]董振亚.MPEG- 4 视频流式传输拥塞控制研究与实现[D].长沙:国防科技大学,2003.

[5]唐成.基于RTP的MPEG-4视频传输研究[D].西安:西安建筑科技大学,2004.

[6]余兆钗,刘维娜.基于RTP/RTCP的拥塞控制算法的研究[J].福建电脑,2007,(10) : 98.

[7]张晓蕾,谭晓林,等.基于RTCP 的流媒体拥塞控制算法研究[J].河北科技大学学报,2008,29(4) : 305-307.

[8]Schulzrinne H,Casner S.RTP: A Transport Protocol for Real-Time Applications[S].RFC3550,2003.

猜你喜欢
包率速率传输
支持向量机的船舶网络丢包率预测数学模型
一种基于喷泉码的异构网络发包算法*
化学反应的速率和限度考点分析
电磁线叠包率控制工艺研究
牵引8K超高清传输时代 FIBBR Pure38K
“化学反应的速率与限度”知识与能力提升
基于同轴传输的网络传输设备及应用
关于无线电力传输的探究
IEEE 802.15.4协议无线传感器网络干扰测试∗
支持长距离4K HDR传输 AudioQuest Pearl、 Forest、 Cinnamon HDMI线