摘要:介紹了TCP協議和RTP/RTCP協議,闡述了服務質量控制的常用方法,為了控制網絡擁塞、減小延遲、達到網絡負載平衡,針對流媒體提出了三種基于RTP/RTCP協議的擁塞控制策略。
關鍵詞:實時傳輸協議;RTP/RTCP;QoS;擁塞控制;Internet;流媒體
中圖分類號:TP311文獻標識碼: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 引言
目前網絡應用非常廣泛,網絡實時數據的傳輸也越來越多:在線視頻、實時監控、實時報警等等。因而帶寬資源也顯得十分緊張,網絡擁塞時常出現。而端到端的實時通信業務對于網絡傳輸又有如下要求:
1) 保證數據傳送的實時性;
2) 探測和利用可用帶寬;
3) 為了維護帶寬使用的公平性和避免網絡崩潰,實現對通信業務的友好性;
4) 降低傳輸過程中的延遲抖動,包括往返時間(Round Trip Time, RTT)和單向傳輸時間的抖動。
為了保證實時數據傳輸的流暢、聲音視頻圖像的清晰,本文提出了基于RTP協議的服務質量動態反饋控制的一些方法。
1 傳統的TCP協議和RTP/RTCP協議
1.1 傳統的TCP協議
TCP協議,即傳輸控制協議[1],該協議首先要通過三次握手來建立連接,再利用“發送-等待確認-再發送”機制來保證數據傳輸的可靠性,但是顯然造成了對寶貴的網絡資源的嚴重浪費,降低了傳輸效率,而且因為這種控制機制的時延太長,靈活性太差,不能滿足實時的音視頻數據的傳輸。但是可以利用TCP協議中的傳輸控制方法來實現實時數據傳輸的控制。TCP的報文段格式如圖 1所示。
1.2 RTP/RTCP協議
RTP協議主要是用來傳輸實時音、 視頻數據,它包括RTP和RTCP兩種數據包。RTP包用于實時數據端到端傳輸,RTP包中最大的特點就是其提供了時間戳(即發送數據塊首字節的創建時間)和序列號,以達到數據的同步和重組。而在RTCP包中含有已發送的數據包的數量、丟失數據包的情況和數據包到達時延抖動等信息,通過該信息可以計算出如下有關的服務質量參數:數據包丟失比、數據包時間片丟失比、數據包丟失率、數據包時間片丟失率、有效數據傳輸率、數據包傳輸率、吞吐量、吞吐率數據包到達時延抖動、往返傳播時延等等。以監視網絡的服務質量、通信帶寬以及網上傳送的信息。RTP[2]協議的數據包格式如圖 2所示。

圖1 TCP的報文段格式

圖2 RTP 協議數據包格式

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

圖4 TCP傳輸控制模型圖

圖5 IP 網絡控制模型圖
5 IP在服務質量動態控制中的重要作用
TCP擁塞控制本質上是一種基于信源的擁塞控制方法,實現在端系統中。顯然這種擁塞控制方法在網絡擁塞發生到感知到擁塞后采取控制行動之間存在著比較大的延遲,在傳輸數據不太大的情況下,很可能傳遞擁塞信息的反饋在數據傳輸完后才到達發送源端。因為IP[6-7]擁塞控制在網絡中實現,因而可以及時感知到網絡擁塞的發生,采取控制行為。而且在IP擁塞控制中,可以區分不同的發送源端產生的數據流,可以在路由器中通過隊列調度方案,接受或丟棄不同發送源端產生的數據,從而也實現帶寬的公平性。IP控制模型如圖5所示。
6 結束語
該文針對Internet 中實時多媒體通信系統提出了三種擁塞控制方法,這有助于解決網絡擁塞控制和QoS控制等多媒體通信技術問題。根據源端和接收端的實際情況和網絡運行狀況,有針對性的選擇某種或某幾種控制方法的組合,可以使音、視頻播放的傳輸達到最佳效果。這些控制方法曾用于設計與實現:機房實時視頻監視系統、智能綜合安防監控系統和基于RTP/RTCP的手機報警系統。
參考文獻:
[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,Fredeirck 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.