摘 要: 為了解決流媒體傳輸擁塞控制機制的不足,,提出了一種基于鏈路延遲抖動趨勢的TFRC改進算法。對傳統(tǒng)的TFRC擁塞控制算法以及鏈路延遲抖動變化趨勢進行了分析,,采用對鏈路擁塞狀況進行預(yù)測的策略,,引入抖動因子來修正TFRC的吞吐量公式,由鏈路延遲抖動的趨勢自適應(yīng)地調(diào)整發(fā)送速率,。仿真實驗結(jié)果表明,,改進算法在保持TCP友好性的前提下,有效提高了流媒體數(shù)據(jù)傳輸?shù)钠交院头€(wěn)定性,。
關(guān)鍵詞: 擁塞控制,;流媒體;TFRC,;TCP友好性
對流媒體數(shù)據(jù)傳輸?shù)膿砣刂蒲芯烤哂兄匾饬x,,在提高流媒體傳輸QoS中起關(guān)鍵性作用。隨著信息化,、網(wǎng)絡(luò)化和多媒體技術(shù)的發(fā)展,,網(wǎng)絡(luò)傳輸?shù)奈募兊迷絹碓酱螅缙趯⑽募螺d到本地再播放的方式已成為網(wǎng)絡(luò)發(fā)展的一個障礙,。在這種情形下對流媒體技術(shù)的研究成為多媒體技術(shù)領(lǐng)域的一個熱點,。流媒體業(yè)務(wù)對速率抖動和延遲的敏感特性決定了傳統(tǒng)的TCP擁塞控制機制對它并不適用;而通常作為流媒體音視頻傳輸層協(xié)議的UDP只能保證盡力傳輸,缺乏相應(yīng)的擁塞控制機制,,一旦發(fā)生網(wǎng)絡(luò)擁塞,,UDP與TCP競爭的不公平性可能導(dǎo)致TCP流的“饑餓”甚至擁塞崩潰的發(fā)生。
針對上述問題,,人們通過引入類似TCP速率控制機制的TCP友好性(TCP Friendly)機制來實現(xiàn)流媒體數(shù)據(jù)流與TCP流共同分享可用帶寬,。TFRC(TCP-Friendly Rate Control)便是其中最具代表性的一種TCP友好協(xié)議。從HANDLEY M等提出TFRC尤其是2003年IETF發(fā)布文檔RFC3448以來[1],,眾多學(xué)者以此為參考對流媒體擁塞控制算法進行了研究和改進,。參考文獻[2]指出TFRC在網(wǎng)絡(luò)狀況好的情況下表現(xiàn)得過于保守,導(dǎo)致帶寬利用率不高,,提出利用模糊邏輯擁塞控制策略(FLC)來調(diào)整視頻發(fā)送速率,,并用遺傳算法優(yōu)化模糊控制規(guī)則,以提高擁塞控制性能,;但模糊化的不確定性和模糊控制規(guī)則的選取都會很大程度地對控制效果產(chǎn)生很大的影響,。參考文獻[3]提出一種基于概率偏差計算超時重傳時間(RTO)的算法,以實際丟包事件概率與最優(yōu)丟包事件概率之間的偏差為依據(jù),,對實時的RTO值進行放大或縮小,,使其更接近當(dāng)前TCP流的RTO來實現(xiàn)更好的TCP友好性。參考文獻[4]提出對TFRC計算公式中丟包率的不同冪級引入權(quán)重系數(shù),,根據(jù)網(wǎng)絡(luò)的擁塞程度在網(wǎng)絡(luò)擁塞嚴重時加大發(fā)送速率,,在擁塞較輕時減少發(fā)送速率,以保證流媒體數(shù)據(jù)傳輸?shù)姆€(wěn)定,,增加了對不同網(wǎng)絡(luò)環(huán)境下如何來確保吞吐率穩(wěn)定性的考慮,。
本文在對TFRC擁塞控制機制分析研究的基礎(chǔ)上,提出一種基于鏈路延遲抖動趨勢的TFRC改進算法TFRC-DJT(TFRC-Delay Jitter Trend),,通過對抖動延遲的計算分析,,并引入抖動因子對吞吐率估值進行調(diào)整,,對鏈路中的擁塞狀況作早期的預(yù)測以提高傳輸?shù)钠椒€(wěn)度和TCP友好性,。
1 TFRC擁塞控制算法
現(xiàn)網(wǎng)中數(shù)據(jù)大部分都為TCP或者UDP的流,由于受Internet異構(gòu)性的影響,,早期的TCP協(xié)議在網(wǎng)絡(luò)擁塞控制方面存在許多不足,。為此,對TCP協(xié)議擁塞控制的研究從20世紀(jì)80年代初開始就未停止過,,從最初的RFC793(TCP-Tahoe)提到擁塞避免算法以來,,TCP協(xié)議歷經(jīng)TCP-Reno、TCP-Vegas,、FAST-TCP和TCP-New-Reno等版本,,擁塞控制算法被不斷改進和完善。尤其是慢啟動和擁塞避免的提出,,以及后來快速重傳和快速恢復(fù)的引入使得TCP協(xié)議的可靠傳輸成為可能[5],。但與此同時,,可靠傳輸是以犧牲時延作為代價的,較大的傳輸延時使其無法直接應(yīng)用于許多像流媒體這樣的實時性業(yè)務(wù)中,。
1.1 流媒體的擁塞控制機制
傳統(tǒng)的流媒體傳輸方式是基于UDP的,,并不具有TCP友好性。UDP流在瓶頸鏈路上容易造成嚴重的資源不公平占用,,甚至出現(xiàn)嚴重的擁塞,,導(dǎo)致數(shù)據(jù)交付延遲、吞吐量下降以及丟棄概率增加等現(xiàn)象的發(fā)生,。在TCP流大約占90%通信量的Internet,,流媒體應(yīng)用必須具備一定的擁塞控制機制來達到TCP友好性[6]。此外,,流媒體數(shù)據(jù)的傳輸會隨著網(wǎng)絡(luò)狀態(tài)的變化而改變,,導(dǎo)致其傳輸狀態(tài)在擁塞的起始狀態(tài)和穩(wěn)定狀態(tài)之間不斷變化,較好的擁塞控制方案還必須考慮應(yīng)對網(wǎng)絡(luò)變化時數(shù)據(jù)傳輸?shù)氖諗刻匦约皞鬏數(shù)钠椒€(wěn)性,,以避免大幅波動,。
現(xiàn)行的大多數(shù)流媒體應(yīng)用的傳輸都是基于C/S和P2P這兩種方式,其中,,P2P的通信按端點的傳輸方式又可以分為單播和組播兩種,。組播是一種有效的單點到多點的數(shù)據(jù)傳輸方式,但由于缺乏合適的擁塞控制機制,,而無法得到ISP(Internet Service Provisor)的廣泛應(yīng)用[7],。單播的擁塞控制一般都是基于源端的,可分為基于模型和基于探測兩種類型,?;谔綔y的方案通過模仿TCP的AIMD行為實現(xiàn)擁塞控制,發(fā)送端不斷探測網(wǎng)絡(luò)的可用帶寬,,將丟包率與某一閾值比較來調(diào)節(jié)發(fā)送速率,;但該方法容易導(dǎo)致速率在短期內(nèi)出現(xiàn)與TCP類似的鋸齒形波動變化?;谀P偷姆桨父鶕?jù)TCP流量模型進行擁塞控制,,其目的是在對擁塞有響應(yīng)的前提下,保持平滑的速率變化,,因此較適合流媒體的傳輸,。
1.2 TFRC算法
TFRC是一種基于模型、通過控制發(fā)送速率的端到端單播TCP友好協(xié)議,。TFRC的目標(biāo)是使流媒體數(shù)據(jù)與TCP共同競爭的網(wǎng)絡(luò)傳輸流(如實時流媒體數(shù)據(jù)流)具有適度的公平性,。在同等條件下,TFRC在網(wǎng)絡(luò)中的發(fā)送速率和TCP的發(fā)送速率應(yīng)基本相同;并且,,通過接收端丟包率的反饋調(diào)整使TFRC具有相對比TCP更好的平滑性,,更適合流媒體對發(fā)送速率平滑性有較高要求的應(yīng)用[8]。TFRC一般具有固定的數(shù)據(jù)包大小,,只需調(diào)整發(fā)送速率來響應(yīng)當(dāng)前擁塞情況,。
TFRC保持對TCP友好性是通過使用Reno-TCP協(xié)議的吞吐量計算公式來實現(xiàn)的,即:
(1)由式(3)計算最新的延遲抖動值ΔDk,,并對前一次計算的平均延遲抖動值J(k-1)進行保存操作,。
(2)由式(4)計算本次的平均抖動延遲J(k)。
(3)將本次平均抖動延遲J(k)與延遲門限值threshold進行比較,,如果J(k)≥threshold,,則按式(5)計算吞吐量估值,即Tk=(1-α)Tx,;如果J(k)<threshold,,則Tk=βTx(k)+(1-β)Tx(k-1)(β取0.875)。
(4)根據(jù)計算的吞吐量估值Tk,,調(diào)整發(fā)送速率,。
(5)接收下一個包,并重復(fù)上述步驟,,直至流媒體分組發(fā)送完成,。
3 實驗仿真與分析
在網(wǎng)絡(luò)仿真軟件NS-2.34下分別對TCP、TFRC和TFRC-DJT進行仿真實驗,,以驗證改進效果,。在NS2目錄下添加TFRC-DJT協(xié)議(需添加5個文件:tfrc_djt.h、tfrc_djt.cc,、tfrc_djt_packet.h,、tfrc_djt_rtable.h和tfrc_djt_rtable.cc),修改makefile文件,,并用make重新編譯NS2,。仿真實驗采用啞鈴型的網(wǎng)絡(luò)拓撲結(jié)構(gòu),如圖1所示,。
由表1可知,,TFRC算法的TFRC流與共存的TCP流的吞吐率比值為2.15,,TFRC-DJT算法的TFRC流與共存的TCP流的吞吐率比值為2.13,,表明TFRC-DJT算法較好地保持了對TCP業(yè)務(wù)流的友好性;TFRC算法的帶寬占用率為68.3%,,TFRC-DJT算法的帶寬占用率為68.1%,,兩者具有相似的帶寬占用率;但TFRC-DJT算法的單向傳輸延遲抖動均值比TFRC算法下降了13.97%。
從圖2可以看出,,TFRC-DJT算法的TFRC流吞吐率及其平滑性均優(yōu)于TFRC算法,。
本文針對TFRC存在的不足提出了一種基于鏈路延遲抖動趨勢的TFRC改進算法,算法對鏈路中的擁塞狀況進行預(yù)測,,引入抖動因子對TFRC吞吐量公式進行修正,,利用鏈路延遲抖動趨勢來調(diào)整發(fā)送速率,并使用類似TCP的加權(quán)平均方案來提高其平穩(wěn)性,,在保持TCP友好性的同時提高了流媒體數(shù)據(jù)傳輸?shù)钠交?,使改進的TFRC算法更適合于實時流媒體業(yè)務(wù)傳輸?shù)囊蟆?br/>參考文獻
[1] HANDLEY M, FLOYD S,, PADHYE J,, et al. RFC 3448, TCP friendly rete control(TFRC):protocol specification[S].2003.
[2] 李紅,,沈未名.基于模糊邏輯的Internet視頻流擁塞控制[J].計算機應(yīng)用研究,,2009,26(5):1871-1874.
[3] 羅作民,,王竟佳,,李兵.基于概率偏差的TFRC-RTO算法[J].計算機工程,2010,,36(21):92-94.
[4] 姜明,,吳春明,張旻,,等.TFRC協(xié)議友好性與平穩(wěn)性改進算法研究[J].電子學(xué)報,,2009,37(8):1723-1727.
[5] 陶洋,,杜軍恒,,武俊.一種自適應(yīng)比例系數(shù)的TCP擁塞控制策略[J].微型機與應(yīng)用,2011,,30(12):58-62.
[6] 肖甫,,王汝傳,孫力娟,,等.基于TCP友好的無線網(wǎng)絡(luò)擁塞控制機制研究[J].計算機科學(xué),,2010,37(7):50-53.
[7] 楊云,,周堅,,陸璐,等.一種TCP-Friendly主動分層組播擁塞控制機制[J].小型微型計算機系統(tǒng),,2007,,28(10):1774-1778.
[8] 甘泉,,薛質(zhì).控制端到端傳輸延遲抖動的改進TFRC算法[J].計算機工程,2008,,34(10):105-107.
[9] 張冰.流媒體業(yè)務(wù)的寬帶接入與擁塞控制技術(shù)研究[D].西安:西安電子科技大學(xué),,2008.