梁皓,駱新全
(1.中國傳媒大學新媒體研究院,北京100024;2.中國傳媒大學信息工程學院,北京 100024)
流媒體是一種網(wǎng)絡傳輸音頻、視頻和多媒體文件的形式,其優(yōu)點是采用流式傳輸方式,用戶不必像下載方式那樣要等到整個文件全部下載完之后播放和觀看,而是只需經(jīng)過幾秒到幾十秒的啟動延時就能播放,此時媒體文件的剩余部分將在后臺繼續(xù)下載。實時流媒體可以接受一定程度的丟包,但是要求較低的時延,因此大多數(shù)系統(tǒng)中采用UDP協(xié)議作為流媒體的傳輸協(xié)議。然而,UDP協(xié)議不能提供擁塞控制等相關(guān)服務,不能保證流傳輸?shù)目煽啃浴D壳爸С至髅襟w傳輸?shù)膮f(xié)議主要有實時傳輸協(xié)議RTP(Real-Time Transport Protocol)、實時傳輸控制協(xié)議RTCP(Real-Time Transport Control Protocol)等。RTP/RTCP協(xié)議可以輔助UDP協(xié)議,解決流媒體傳輸中的擁塞問題。RTCP協(xié)議可提供服務質(zhì)量的信息反饋,如發(fā)送包數(shù)、發(fā)送字節(jié)數(shù)、累計丟包數(shù)、到達時間間隔抖動等。服務器可以利用RTCP包中所包含的信息動態(tài)地改變傳輸速率,甚至改變有效載荷類型。
本文旨在研究基于RTP/RTCP協(xié)議的媒體流擁塞控制方法,在現(xiàn)有的AIMD算法基礎(chǔ)上提出一種有記憶擁塞功能、能動態(tài)改變加性因子與乘性因子的自適應AIMD算法,進一步提高流傳輸?shù)钠椒€(wěn)性。
網(wǎng)絡擁塞是一種持續(xù)過載的網(wǎng)絡狀態(tài),此時用戶對網(wǎng)絡資源的需求超過了其固有的容量。擁塞會增加丟包率,引起數(shù)據(jù)傳輸延時嚴重影響帶寬、緩存和吞吐量等網(wǎng)絡資源的利用率,甚至有可能使整個系統(tǒng)發(fā)生崩潰。如圖1所示,Knee稱為膝點,Cliff稱為崖點。網(wǎng)絡的響應時間隨著網(wǎng)絡負載的增加而增加,在網(wǎng)絡負載到達膝點之前,網(wǎng)絡吞吐量及網(wǎng)絡性能都增加較快;當網(wǎng)絡負載超過膝點時,吞吐量增長變得緩慢,性能開始下滑;而一旦超過了崖點,吞吐量迅速下降,網(wǎng)絡發(fā)生擁塞。因此使用適當?shù)膿砣刂茩C制非常重要。擁塞控制是指在網(wǎng)絡發(fā)生擁塞或即將擁塞的狀況下,采用適當?shù)牟呗曰驒C制,保持網(wǎng)絡在正常的狀態(tài)下工作。
圖1 負載與響應時間、吞吐量、性能的關(guān)系
目前在網(wǎng)絡傳輸領(lǐng)域中經(jīng)常采用的擁塞控制方法分為基于窗口型和基于速率型兩種方式。
(1)基于窗口的擁塞控制
基于窗口的擁塞控制是指發(fā)送端或者接收端使用一個擁塞窗口來控制網(wǎng)絡狀態(tài),窗口越大則數(shù)據(jù)發(fā)送速率越快。在網(wǎng)絡空閑時適當?shù)卦龃蟠翱?,當檢測到網(wǎng)絡擁塞時則減少窗口的尺寸?;诖翱诘膿砣刂瓶梢杂行У谋苊饩W(wǎng)絡擁塞的發(fā)生,TCP協(xié)議就是通過這種擁塞控制方法。但其中的重傳機制及延時抖動等問題限制了面向?qū)崟r流媒體業(yè)務的應用。
(2)基于速率的擁塞控制
基于速率的擁塞控制是指根據(jù)某些指示網(wǎng)絡擁塞的反饋機制動態(tài)地調(diào)整速率傳輸率,從而達到擁塞控制的目的。這種方法更適合流媒體應用,是目前網(wǎng)絡視頻流式傳輸中主要采用的一種擁塞控制機制。常用的調(diào)整發(fā)送端速率的機制有基于探測的算法和基于模型的算法。在基于探測的控制算法中,發(fā)送端不斷地探測網(wǎng)絡的可用帶寬,隨時調(diào)節(jié)發(fā)送速率。此類算法容易實現(xiàn),但是容易造成傳輸速率的波動性?;谀P偷乃惴ㄊ歉鶕?jù)丟包率、往返時間差等為參數(shù)的TCP吞吐量模型來計算發(fā)送端的最大傳輸速率,發(fā)送端以此計算結(jié)果為依據(jù)來對自身的發(fā)送速率進行調(diào)整,速率控制更平滑,但計算量較大。其中AIMD算法是一種常用的基于探測的算法,它可以根據(jù)報文的丟失情況周期地調(diào)整發(fā)送速率。
AIMD算法是一種常用的基于控制發(fā)送端速率的方法。根據(jù)文獻[3]的描述AIMD 擁塞控制方法采用加性增大乘性減小的策略:根據(jù)丟包率的大小,將網(wǎng)絡分為網(wǎng)絡空閑及網(wǎng)絡阻塞兩種狀態(tài),當網(wǎng)絡空閑時,按常量增加發(fā)送速率;當網(wǎng)絡發(fā)生擁塞時,乘性減小發(fā)送速率。假設(shè)為最大傳輸速率,Rmin為用戶可接受的最低質(zhì)量的發(fā)送速率,Ploss為RTCP 包中統(tǒng)計的丟包率,Pmax為最大丟包率,R發(fā)送速率,α為加性因子,β為乘性因子。算法表示為:
if(Ploss≤Pmax) //網(wǎng)絡空閑
R=min(R+α,Rmax);
else //網(wǎng)絡阻塞
R=max(R×β,Rmin);
此算法實現(xiàn)簡單,能較快速地使用網(wǎng)絡中的有效資源,并且當網(wǎng)絡擁塞時能急劇地降低發(fā)送速率,減輕網(wǎng)絡擁塞程度。但是AIMD算法會使發(fā)送速率變動得過于頻繁,導致傳輸質(zhì)量下降。因此文獻[4][5]對原有的AIMD算法進行了改進。首先在改變發(fā)送速率之前,對RTCP包反饋的丟包率進行平滑處理,同時改變網(wǎng)絡劃分方法,在原算法的基礎(chǔ)上增加網(wǎng)絡適中狀態(tài),此狀態(tài)下發(fā)送速率不做改變。改進的算法為:
Ploss=(1-η)×Ploss+η×Pnew
if(Ploss≤Pmin) //網(wǎng)絡空閑
R=min(R+α,Rmax);
else if(Ploss≥Pmax) //網(wǎng)絡擁塞
R=max(R×β,Rmax);
else //網(wǎng)絡適中
R=R;
其中Pnew為接收到的最新丟包率,η(0<η<1)為平滑系數(shù),Pmin、Pmax為丟包率閥值且滿足0 本文在現(xiàn)有AIMD算法基礎(chǔ)上做了改進,提出一種含記憶參數(shù)的自適應控制算法,進一步降低RTP流的抖動。該算法增加了記憶功能,記錄下網(wǎng)絡第一次進入擁塞狀態(tài)時的發(fā)送速率及丟包率,作為改變發(fā)送速率的參數(shù)。具體的算法描述如下: (1)RTP流進入網(wǎng)絡后,首先按照加性增大乘性減小的方式控制發(fā)送端的發(fā)送速率,α與β的值均為常數(shù),用α0、β0表示。 (2)當網(wǎng)絡第一次進入擁塞狀態(tài)時,記錄此時的丟包率Pc及發(fā)送速率Rc。本文借鑒文獻[5]中的算法,將擁塞記憶速率Rc和當前速率R之差,與擁塞記憶速率Rc和擁塞記憶丟包率Pc之積進行比較,以此判斷R與Rc是否接近。在網(wǎng)絡空閑狀態(tài)下,當R與Rc相差較大即滿足Rc-R>Rc×Pc時,α仍為設(shè)定的常數(shù)α0,不做改變;當R與Rch較為接近即Pc-R≤Rc×Pc時,速率增量α隨當前發(fā)送速率R的增大而減小,使曲線更平滑。 (3)在網(wǎng)絡擁塞狀態(tài)下,根據(jù)當前速率和R與Rc的大小比較來決定的取值。當R≥Rc時,β為常數(shù)β0;當R 綜上所述,算法可表示為: Ploss=(1-η)×Ploss+η×Pnew if(Ploss≤Pmin){ //網(wǎng)絡空閑 R=min(R+α,Rmax); } else if(Ploss≥Pmax){ //網(wǎng)絡擁塞 R=max(R×β,Rmin); } else //網(wǎng)絡適中 R=R; 通過算法的記憶功能,在網(wǎng)絡空閑狀態(tài)下,且當前速率與擁塞速率相差較大時,以常數(shù)較快地增長;當傳輸速率增長至網(wǎng)絡接近擁塞時,減小加性因子能有效遏制增長速度。在網(wǎng)絡擁塞狀態(tài)下,先以常數(shù)做為乘性因子迅速降低發(fā)送速率,當接近網(wǎng)絡適中狀態(tài)時根據(jù)發(fā)送速率對乘性因子進行處理,適當增大乘性因子。以上改進算法自適應地改變加性因子和乘性因子,減少因網(wǎng)絡狀況突變引起的RTP流抖動,提高傳輸質(zhì)量。 RTP協(xié)議為數(shù)據(jù)提供實時端對端傳送服務,RTCP協(xié)議用來監(jiān)控服務質(zhì)量,RTP與RTCP協(xié)議聯(lián)合使用適用于流媒體傳輸。本文引入一種改進的自適應流媒體擁塞控制算法,在AIMD算法基礎(chǔ)上增加了記憶擁塞功能、以及能依據(jù)傳輸速率自適應改變的動態(tài)加性因子與乘性因子,經(jīng)驗證能提高數(shù)據(jù)流的平穩(wěn)性。 [1]張麗娟,楊曉萍,等.基于自適應參數(shù)設(shè)置AIMD算法[J].吉林大學學報(信息科學版),2010,28(1) : 77-83. [2]胡書衛(wèi).H.264流媒體無線傳輸研究實現(xiàn)及其在嵌入式視頻監(jiān)控中的應用[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 視頻流式傳輸擁塞控制研究與實現(xiàn)[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.4 改進的自適應AIMD算法
5 總結(jié)