摘要:介紹了TCP協(xié)議和RTP/RTCP協(xié)議,闡述了服務(wù)質(zhì)量控制的常用方法,為了控制網(wǎng)絡(luò)擁塞、減小延遲、達(dá)到網(wǎng)絡(luò)負(fù)載平衡,針對流媒體提出了三種基于RTP/RTCP協(xié)議的擁塞控制策略。
關(guān)鍵詞:實時傳輸協(xié)議;RTP/RTCP;QoS;擁塞控制;Internet;流媒體
中圖分類號:TP311文獻(xiàn)標(biāo)識碼:A文章編號:1009-3044(2008)36-2612-02
Research of Congestion Control Strategy Based on RTP/RTCP Protocol
ZHANG Hai-jun1,YANG Yin-gen1,WU Ke-jie1,ZHANG Jian-jun2
(College of Computer Information Engineering, Jiangxi Normal University,Nanchang 330022,China)
Abstract: In this article, introduce TCP protocol and RTP/RTCP protocol,introduce methods of the quality of service control. Three kinds of congestion control strategies are presented based on RTP/RTCP about fluid flow.These methods can control network congestion and reduce delay for getting network load balancing.
Key words: the protocol of real-time transmission;RTP/RTCP;QoS;internet;fluid FLOW
1 引言
目前網(wǎng)絡(luò)應(yīng)用非常廣泛,網(wǎng)絡(luò)實時數(shù)據(jù)的傳輸也越來越多:在線視頻、實時監(jiān)控、實時報警等等。因而帶寬資源也顯得十分緊張,網(wǎng)絡(luò)擁塞時常出現(xiàn)。而端到端的實時通信業(yè)務(wù)對于網(wǎng)絡(luò)傳輸又有如下要求:
1) 保證數(shù)據(jù)傳送的實時性;
2) 探測和利用可用帶寬;
3) 為了維護(hù)帶寬使用的公平性和避免網(wǎng)絡(luò)崩潰,實現(xiàn)對通信業(yè)務(wù)的友好性;
4) 降低傳輸過程中的延遲抖動,包括往返時間(Round Trip Time, RTT)和單向傳輸時間的抖動。
為了保證實時數(shù)據(jù)傳輸?shù)牧鲿?、聲音視頻圖像的清晰,本文提出了基于RTP協(xié)議的服務(wù)質(zhì)量動態(tài)反饋控制的一些方法。
1 傳統(tǒng)的TCP協(xié)議和RTP/RTCP協(xié)議
1.1 傳統(tǒng)的TCP協(xié)議
TCP協(xié)議,即傳輸控制協(xié)議[1],該協(xié)議首先要通過三次握手來建立連接,再利用“發(fā)送-等待確認(rèn)-再發(fā)送”機(jī)制來保證數(shù)據(jù)傳輸?shù)目煽啃裕秋@然造成了對寶貴的網(wǎng)絡(luò)資源的嚴(yán)重浪費(fèi),降低了傳輸效率,而且因為這種控制機(jī)制的時延太長,靈活性太差,不能滿足實時的音視頻數(shù)據(jù)的傳輸。但是可以利用TCP協(xié)議中的傳輸控制方法來實現(xiàn)實時數(shù)據(jù)傳輸?shù)目刂啤CP的報文段格式如圖 1所示。
1.2 RTP/RTCP協(xié)議
RTP協(xié)議主要是用來傳輸實時音、 視頻數(shù)據(jù),它包括RTP和RTCP兩種數(shù)據(jù)包。RTP包用于實時數(shù)據(jù)端到端傳輸,RTP包中最大的特點就是其提供了時間戳(即發(fā)送數(shù)據(jù)塊首字節(jié)的創(chuàng)建時間)和序列號,以達(dá)到數(shù)據(jù)的同步和重組。而在RTCP包中含有已發(fā)送的數(shù)據(jù)包的數(shù)量、丟失數(shù)據(jù)包的情況和數(shù)據(jù)包到達(dá)時延抖動等信息,通過該信息可以計算出如下有關(guān)的服務(wù)質(zhì)量參數(shù):數(shù)據(jù)包丟失比、數(shù)據(jù)包時間片丟失比、數(shù)據(jù)包丟失率、數(shù)據(jù)包時間片丟失率、有效數(shù)據(jù)傳輸率、數(shù)據(jù)包傳輸率、吞吐量、吞吐率數(shù)據(jù)包到達(dá)時延抖動、往返傳播時延等等。以監(jiān)視網(wǎng)絡(luò)的服務(wù)質(zhì)量、通信帶寬以及網(wǎng)上傳送的信息。RTP[2]協(xié)議的數(shù)據(jù)包格式如圖 2所示。

圖1 TCP的報文段格式

圖2 RTP 協(xié)議數(shù)據(jù)包格式

圖3 數(shù)據(jù)傳輸控制模型
常用的RTCP包有五種:發(fā)送方報告包(SR),接受者報告包(RR),源描述包(SDES),站點離開系統(tǒng)報告包(BYE)和特殊應(yīng)用包(APP)。
2 常用服務(wù)質(zhì)量控制方法
一般的分布式流媒體實時應(yīng)用環(huán)境中,網(wǎng)絡(luò)和終端資源在多個應(yīng)用之間競爭共享。在不保證服務(wù)質(zhì)量的分組/包交換網(wǎng)絡(luò)上,網(wǎng)路帶寬等資源的波動較大,因此流媒體應(yīng)用具有連續(xù)調(diào)整資源需求和適應(yīng)不同資源狀況的能力。這對具有不同服務(wù)質(zhì)量等級要求的應(yīng)用更為重要。
服務(wù)質(zhì)量控制目的是根據(jù)實際情況對流媒體實時應(yīng)用做出相應(yīng)的調(diào)整,以獲得盡可能好的服務(wù)質(zhì)量,主要的控制方法有三種:
1) 許可控制(AdmissionControl)
分布式流媒體實時應(yīng)用環(huán)境中,網(wǎng)路帶寬和媒體服務(wù)器資源(如CPU、內(nèi)存、磁盤訪問速度等)所能支持的客戶端應(yīng)用程序數(shù)目有限。服務(wù)器必須采用某種許可控制算法,判斷新用戶加入媒體會話后是否會妨礙已被服務(wù)用戶的服務(wù)質(zhì)量。如果加入后所有用戶的服務(wù)質(zhì)量都可以得到保證,則允許新用戶加入;否則,應(yīng)該拒絕該用戶的加入。許可控制的基礎(chǔ)是對當(dāng)前可利用資源的估計和對即將加入用戶的資源需求的預(yù)測。目前公認(rèn)的控制策略有三種:基于確定性的策略、基于統(tǒng)計性的策略和基于預(yù)測的策略。
2) 資源預(yù)留(Resource Reservation)
資源預(yù)留的核心思維式,在發(fā)送端和接收端之間的各個節(jié)點上為用戶預(yù)保留足夠的資源以保證端到端服務(wù)質(zhì)量。由于預(yù)測某一媒體流的確切特征通常是不可能的,所以系統(tǒng)在預(yù)留資源時常常過多或過少。資源預(yù)留不足時會導(dǎo)致服務(wù)質(zhì)量得不到保證;而預(yù)留過多則導(dǎo)致資源利用率較低。此外。資源預(yù)留機(jī)制必須由發(fā)送端和接收端之間的所有網(wǎng)絡(luò)節(jié)點支持,這個目前是不可能的,因此資源預(yù)留目前處在實驗階段。
3) 應(yīng)用程序自適應(yīng)控制(Application Adaptive Control)
應(yīng)用程序的自適應(yīng)控制即根據(jù)網(wǎng)絡(luò)帶寬等資源的實際情況,通過采用動態(tài)調(diào)整流媒體應(yīng)用的資源需求等策略,以保持可接受的服務(wù)質(zhì)量等級。對于不保證服務(wù)質(zhì)量的分組/包交換網(wǎng)絡(luò),自適應(yīng)控制在網(wǎng)絡(luò)狀況波動時給流媒體實時應(yīng)用提供了較大的彈性。自適應(yīng)控制首先需要對服務(wù)質(zhì)量和資源狀況進(jìn)行監(jiān)測,監(jiān)測所得到的信息通過適當(dāng)?shù)耐緩椒答伣o媒體源端,源端和目的端根據(jù)監(jiān)測所得到的信息采取適當(dāng)策略,動態(tài)保證應(yīng)用的服務(wù)質(zhì)量。自適應(yīng)控制的最大優(yōu)點是不改變現(xiàn)有網(wǎng)絡(luò)的基礎(chǔ)體系結(jié)構(gòu),將服務(wù)質(zhì)量控制工作交由網(wǎng)絡(luò)應(yīng)用程序來完成。雖然該方法控制較弱,但它具有動態(tài)控制服務(wù)質(zhì)量和適應(yīng)性較強(qiáng)的特點,在不保證服務(wù)質(zhì)量的分組交換網(wǎng)絡(luò)上較好的實現(xiàn)了帶寬共享,因而在現(xiàn)有因特網(wǎng)上具有廣泛的應(yīng)用前景。
3 利用RTP/RTCP進(jìn)行傳輸控制
遠(yuǎn)程網(wǎng)絡(luò)傳輸不可靠性主要表現(xiàn)在:
1) 數(shù)據(jù)包“亂序到達(dá)”,先發(fā)送數(shù)據(jù)包有可能后到;
2) 在Internet環(huán)境下,網(wǎng)絡(luò)傳輸帶寬變動會引起發(fā)送的數(shù)據(jù)包丟失;
3) 數(shù)據(jù)包到達(dá)的時延過大而產(chǎn)生抖動會引起數(shù)據(jù)的失真。
RTP/RTCP能很好的解決上述問題。發(fā)送端和接收端應(yīng)遵循以下步驟:
1) 在接受端緩沖區(qū)中依靠RTP包中的序列號來調(diào)整到達(dá)數(shù)據(jù)包的順序,使之與發(fā)送時的數(shù)據(jù)順序一致。
2) 分析RTCP控制包。
3) 評估網(wǎng)絡(luò)狀態(tài)。采用某種判斷依據(jù),評估實際的網(wǎng)絡(luò)擁塞狀況,以決定是否對帶寬需求進(jìn)行動態(tài)控制以改善服務(wù)質(zhì)量。
4) 調(diào)整所需帶寬。如接收端用戶可以設(shè)置可接受的最大和最小帶寬。
為了改進(jìn)遠(yuǎn)程視頻傳輸系統(tǒng)的穩(wěn)定性[3],建立一個傳輸控制模型,這樣可通過網(wǎng)絡(luò)狀況的反饋及時調(diào)整采樣頻率以及編碼格式以適應(yīng)當(dāng)前的網(wǎng)絡(luò)傳輸要求。RTCP利用主要的兩種控制包SR和RR反饋的信息如數(shù)據(jù)包丟失比、數(shù)據(jù)包丟失率、吞吐量和吞吐率、數(shù)據(jù)包到達(dá)時延抖動J(interarrival jitter)和往返傳播時延等來調(diào)節(jié)實時傳輸,并調(diào)整系統(tǒng)的打包格式、發(fā)包速率來保證流暢地傳輸數(shù)據(jù)和清晰地播放視頻。圖3 是數(shù)據(jù)傳輸控制模型示意圖。
4 TCP在服務(wù)質(zhì)量動態(tài)控制中的重要作用
前面通過對RTCP包中的參數(shù)監(jiān)測,從而實現(xiàn)對服務(wù)質(zhì)量的動態(tài)控制。在上面的分析比較,我們知道相對于新型協(xié)議RTP/RTCP,TCP不適合實時音視頻數(shù)據(jù)的傳輸。但是RTP協(xié)議可以利用TCP來實現(xiàn)數(shù)據(jù)傳輸?shù)男碌目刂?,從而使?shù)據(jù)傳輸?shù)男Ч麜谩_@種控制方法也是很獨特、新穎。
因為利用RTCP雖然可以實現(xiàn)數(shù)據(jù)傳輸?shù)目刂疲蚱渲饕窃谠炊撕徒邮斩酥g的參數(shù)交流,從而只能大概、初略的估計線路的阻塞程度,從而調(diào)整發(fā)送速率。隨著計算機(jī)網(wǎng)絡(luò)的迅速發(fā)展,擁塞控制機(jī)制的目標(biāo)從單獨地避免擁塞趨向于怎樣有效地利用網(wǎng)絡(luò)資源。RTCP中的控制將丟包和傳輸延遲的增長作為網(wǎng)絡(luò)出現(xiàn)擁塞的指示,沒有依賴于網(wǎng)絡(luò)的中間節(jié)點。在實際網(wǎng)絡(luò)中,引起網(wǎng)絡(luò)擁塞的因素是很多的:可能由于中間節(jié)點隊列溢出引起丟包,也可能是由于設(shè)備故障或者鏈路干擾導(dǎo)致節(jié)點校驗錯誤引起丟包;可能由于中間節(jié)點隊列長度增長引起延遲增加,也可能由于傳輸路徑很長(如衛(wèi)星鏈路)或者鏈路層數(shù)據(jù)包重傳引起延遲增加。因此,利用TCP協(xié)議,可以采用很多擁塞控制機(jī)制來保證服務(wù)質(zhì)量。大部分TCP擁塞控制協(xié)議和增強(qiáng)版本的焦點都集中在窗口管理機(jī)制上。而基于這些協(xié)議調(diào)節(jié)窗口所利用的反饋信息,可以大致地將其劃分為3類[4-5]:
基于丟包反饋地協(xié)議(loss-based congestion avoidance ,簡稱 LCA );
基于路徑延時反饋地協(xié)議(delay-based congestion avoidance ,簡稱DCA);
基于顯式反饋的協(xié)議(ECN(explicit congestion notification )-like algorithms)。
即在源端發(fā)送一些TCP探測包,經(jīng)過中間網(wǎng)絡(luò)節(jié)點,到達(dá)接收端,接收端再發(fā)送TCP數(shù)據(jù)包,與源端進(jìn)行交流,從而達(dá)到傳輸控制。TCP用于RTP傳輸控制如圖4所示。

圖4 TCP傳輸控制模型圖

圖5 IP 網(wǎng)絡(luò)控制模型圖
5 IP在服務(wù)質(zhì)量動態(tài)控制中的重要作用
TCP擁塞控制本質(zhì)上是一種基于信源的擁塞控制方法,實現(xiàn)在端系統(tǒng)中。顯然這種擁塞控制方法在網(wǎng)絡(luò)擁塞發(fā)生到感知到擁塞后采取控制行動之間存在著比較大的延遲,在傳輸數(shù)據(jù)不太大的情況下,很可能傳遞擁塞信息的反饋在數(shù)據(jù)傳輸完后才到達(dá)發(fā)送源端。因為IP[6-7]擁塞控制在網(wǎng)絡(luò)中實現(xiàn),因而可以及時感知到網(wǎng)絡(luò)擁塞的發(fā)生,采取控制行為。而且在IP擁塞控制中,可以區(qū)分不同的發(fā)送源端產(chǎn)生的數(shù)據(jù)流,可以在路由器中通過隊列調(diào)度方案,接受或丟棄不同發(fā)送源端產(chǎn)生的數(shù)據(jù),從而也實現(xiàn)帶寬的公平性。IP控制模型如圖5所示。
6 結(jié)束語
該文針對Internet 中實時多媒體通信系統(tǒng)提出了三種擁塞控制方法,這有助于解決網(wǎng)絡(luò)擁塞控制和QoS控制等多媒體通信技術(shù)問題。根據(jù)源端和接收端的實際情況和網(wǎng)絡(luò)運(yùn)行狀況,有針對性的選擇某種或某幾種控制方法的組合,可以使音、視頻播放的傳輸達(dá)到最佳效果。這些控制方法曾用于設(shè)計與實現(xiàn):機(jī)房實時視頻監(jiān)視系統(tǒng)、智能綜合安防監(jiān)控系統(tǒng)和基于RTP/RTCP的手機(jī)報警系統(tǒng)。
參考文獻(xiàn):
[1] Misra V, Gong W B, Towsley D. Fluid-based Analysis of a Network of AQM Routers Supporting TCP Flows with an Application to RED[C]. Proc. of ACM/SIGCOMM,2000:151-160.
[2] Schulzrinne H,Casner S,F(xiàn)redeirck R et a1.RTP:A Transport Protocol for Real—TimeApplications[S].RFC 1889,1996.
[3] H.Sehulzrine.RTP Profile for Audio and Video Conferences with Minimal Control.RFC1890,IETF,1996.2-10.
[4] Kim M S,Won Y J, Hong W J. Characteristic Analysis of Internet Traffic from the Perspective of Flows[J].ComputerCommunications, 2006,29(10):1639-1652.
[5] Bas turk E,BirmanA. Design and Implement of A QoS Capable Switch-router. Computer Networks and ISDN Systems,1999,31(1/2):19-32.
[6] Liu J,Li B,Zhang Y Q.A Hybrid Adaptation Protocol for TCP-friendly Layered Multicast and Its Optimal Rate Allocation[M].IEEE Press,2002:1520-1530.
[7] Floyd S, Jacobson V. Random Early Detection Gateways for Congestion Avoidance[J].IEEE/ACM Transactions on Networking,1993,1(4):397-413.