基於多流的重傳策略論文
基於多流的重傳策略論文
摘 要 在本篇論文中,針對現有RTP/UDP在傳輸流媒體的不足,我提出了一種新的傳輸技術:MSSR-RTP(Multiple Stream Selective Retransmission-Realtime Transmission Protocol,多流選擇性重傳實時傳輸協議)應用層協議,然後利用這個協議建立了在Internet中傳輸H.264/AVC架構體系。在實際專案中成功應用,並顯示出其很好的網路特性以及TCP友好特性。
關鍵詞 RTP/RTCP;多流;選擇性重傳
現有的Internet網的“盡力傳輸模式”並不能很好的滿足Qos的需求,大家都在不斷尋求解決方案,著名的Diffserv體系和Intserv體系都是在IP網路中研究Qos提出的,但由於與現有網路的相容性以及兩者體系架構的複雜性,其到目前都沒能應用到實際Internet網路中,在對網路有特殊Qos需求的流媒體領域,如何在現有網路體系中最大限度的解決延時,延遲抖動,丟包等問題一直是大家研究的熱點。目前的主流解決方案中:RTP/UDP架構在一定程度上解決問題,但其存在不足,針對它的不足,我提出了MSSR-RTP應用層協議,利用這個協議建立了MSSR-RTP/UDP的架構體系。
1 介紹
在Internet上的流媒體應用越來越廣泛,但現有的傳輸層UDP和TCP協議都不能很好的支援流媒體的傳輸,其主要原因跟壓縮技術和現有的網路體系架構有關。目前在流媒體領域的主流解決方案是:RTP/UDP[1],即在UDP層上封裝RTP層,透過應用層來加強和改善多媒體資料在Internet傳輸上的效能。但目前這個方案仍有不足,我們以目前的主流影片壓縮演算法:H.264/AVC[2]為例:
a.RTP沒有分優先權的欄位。
H.264/AVC有3種類型的幀(依據不同的軟體,其提供的幀型別可能更多):I幀,進行幀內獨立編碼,可以看作參考幀;P幀,為前向預測幀,參考前面的I幀和P幀進行編碼,採用運動補償預測幀間誤差;B幀編碼依賴於前面的和後面的I或P幀。在傳輸中I幀和P幀資料出現錯誤,接收端影片流回顯質量會受到嚴重影響。特別是I幀資料,透過實際專案的測試發現,I幀的丟失將使畫面出現破圖,並且出現動畫效果,畫面不夠流暢。同時,由於網路資源限制,我們又不能把所有影片資料同樣對待,必須對其分類,使得關鍵資料能得到最大限度保障,而一些不重要的資料就不需要進行重傳以減輕網路負擔,但RTP機制並沒提供對資訊分類的功能。在我提出的模型中,利用多流的特點,為每個流設定重傳時間,在重傳時間內的資料進行重傳,超過重傳時間的資料進行丟棄,透過這種方法達到對不同優先權的資料進行分類處理。
b.RTP無法滿足分片的需要。
由於影片資料幀通常很大,如果不進行分片的話,分片和重組將給路由器和目的主機增加了額外的負擔。花費額外的精力去建立資料報分片和分片重組。由於這個原因,需要將分片保持為最小,這裡透過將應用層的資料段限制在一個較小的範圍內實現。由於所有IP支援的資料鏈路協議的MTU都被認為至少有576位元組,所以可以使用548位元組的MSS、8位元組的UDP資料段頭部和20位元組的IP資料報報頭的分片方法。
c.無法透過RTP/RTCP來提供擁塞控制和流量管理。
網路資源的公平共享提出了要終端提供擁塞控制以防止網路惡化。為了防止接收端被資料“淹沒”,也需要傳送端提供流量管理的功能,但標準RTP機制沒有提供這種功能。
針對現有架構的不足,提出一種在RTP基礎上進行擴充套件的體系:MSSR-RTP/UDP。利用在終端增加多流技術,分片/重組功能,增加CWND/RWND變數對現有的不足進行改進。
2 體系架構
根據H.264/AVC和現有Internet的特點,我擴充套件了RTP/RTCP的功能,提出了MSSR-RTP(Multiple stream selective retransmission-Realtime transmission protocol)模型,其圖如圖1。
系統的研究物件是H.264/AVC,它為網路開發者提供的是I,P,B幀,我把每一幀作為一個傳送物件,取名:ADU(Application Data Unit應用程式資料單元)。由於通常影片資料都很大,需要進行分片。分片後透過控制模組新增MSSR-RTP頭資訊,並把封裝後的資料放入快取,在傳送方,無論資料屬於哪個流,都放入同一個快取中。最後由排程中心將資料調入傳輸層,然後傳送到接收方,接收方透過重組分片,收集丟失資料,依據流的特性,將需要重傳的資料透過MSSR-RTCP回饋到傳送方,進行資料重傳。如果一幀的每個分片都到達接收端,則重組為一幀資料上傳給解碼器。
2.1 MSSR-RTP,MSSR-RTCP的頭格式以及流結構
圖2是MSSR-RTP的頭格式,作為對標準RTP的擴充,有其新特點。頭部資訊中,順序號是用於分片重組的。流序號表示分片是屬於哪個流的。流順序號表示在一個流中的順序號,如果一個大的ADU分片,那不同片擁有相同的.流順序號。ADU長度是表示此分片對應的ADU的長度。ADU偏移量是表示此分片在對應的ADU中的偏移量。
圖3是MSSR-RTCP的頭格式。MSSR-RTCP是在流媒體傳輸中與MSSR-RTP協同工作的協議。MSSR-RTCP定期傳送供控制模組使用的傳送端或則接收端的統計報告。包括髮送分組數、丟失分組數、間隔到達的抖動等。對於每個正在傳送的RTP分組,傳送方會建立並傳送RTCP傳送方報告分組,在本體系中,與標準的RTCP一致。對於每個正在接收RTP分組的接收方,作為對標準RTCP的擴充套件,MSSR-RTCP還提供了RWND欄位和ACK GAP欄位,前者用於在傳送端進行流量控制,後者用於進行重傳。省略部分與標準RTCP一致,參考文獻[1]。
圖4是流資料結構。作為我提出的結構的核心,它是決定屬於此流的資料的重傳時間,對於流媒體,它並不需要所有的資料都到達,對於某些延遲超過設定的時間的幀並不需要重傳,這是由流媒體自身特點決定,並且,比其傳統單流,可以避免頭阻塞。
2.2 資料傳輸以及重傳策略
ADU傳到MSSR-RTP層,會首先進行分片處理,然後由控制模組加上MSSR-RTP報頭,由排程策略進行資料傳送,傳送的資料依據其所在流的重傳時間決定傳送後是否放入快取。如果重傳時間不為0,傳送後將快取,如果重傳時間為0,則傳送後就丟棄。快取的資料依據MSSR-RTCP回饋進行重傳和移除。其資料傳輸示意圖如下:
圖5 資料傳輸
伺服器端透過函式SR_CREATE建立埠,然後呼叫函式SR_LISTEN進行偵聽,客戶端一旦需要接收資料,透過呼叫函式SR_CONNECT與伺服器端建立連線,連線建立後將使用兩個埠,一個埠用於傳輸帶有MSSR-RTP頭的影片資料,另一個用於傳輸MSSR-RTCP控制資訊。
資料傳送規則如下:
a. 如果傳送出去未被確認的資料已經達到或者超過CWND的時候,資料傳送者不能再傳送任何資料到網路中。
b. 當RWND為0的時候,資料傳送者不能再傳送任何資料到網路中。當未被確認的資料未超過CWND的時候,資料傳送者必須保證有一個包在網路中未被確認。
c. 當選擇傳送資料的時候,重發的資料要比新資料優先。
透過以上的資料傳送規則,能夠進行擁塞控制與流量控制,滿足對網路資源公平共享的原則,同時也能防止大量影片資料“淹沒”接收端。
重傳規則如下:
a. 超時重傳。
b. 接收端透過MSSR-RTCP回饋指示重傳。
超時重傳的原理與TCP中採用的方法一樣,RTT的時間計算採用Karn’S演算法,參考文獻[3]。
3 接收端丟失判斷和重傳策略
依據H.264/AVC的網路特點,我們只對I幀資料進行資料重傳,並且依據實際專案對實時性的不同要求設定流中重傳時間大小。
使用MSSR-RTP,接收端透過到達包的MSSR-RTP頭部資訊來判斷包的丟失。透過順序號,如果沒發生資料丟失,則順序號必定是連續的。如果不連續,則說明發生丟失。對於需要重傳的流中,由於需要時間資訊來決定是否需要重傳,因此必須要知道丟失的分片的時間資訊,由於I幀資料量大,通常化分成幾十上百個片,所以可以透過發現在同一個I幀中其他分片(它們擁有相同的流順序號)來找出丟失分片的時間資訊。
a. 一個幀中的分片的丟失判斷:透過在流中重組ADU的時候來檢測,如果發現順序號不連續,則說明有分片丟失。這時候的重傳策略由這個幀所在的流決定。時間資訊透過缺失此順序號但有相同流順序號的那些分片提供。
b. 一個幀中的開始分片的丟失判斷:透過在流中重組ADU的時候來檢測。這時透過重組ADU發現找不到偏移量為0的分片知道有開始分片丟失。這時候的重傳策略由這個幀所在的流決定。時間資訊透過缺失此順序號的但有相同流順序號那些分片提供。
c. 一個幀中的結尾分片的丟失判斷:在重組ADU時,透過發現ADU長度和重組後長度不相等,但順序號是連續的,則說明一個幀中的結尾分片的丟失,時間資訊透過在同一個ADU的其它分片(即:有相同流順序號的那些分片)提供。這時候的重傳策略由這個幀所在的流決定。
d. 一個幀中的所有分片丟失判斷:在重組ADU時,透過發現不連續的流順序號說明有一個幀中的所有分片丟失。這種情況,我們將不重傳此幀的任何資料。原因是因為I幀資料量大,分片多,全部丟失可能性很小和重傳整個I幀代價昂貴。
4 結論語
此體系架構已經應用在為重慶某集團開發的“重大危險源實時影片監控系統”中,透過實際測試,發現其有很好的網路適應性以及TCP友好特性,並且效能比其傳統的RTP/UDP有比較多的改善。
參考文獻
[1] Henning Schulzrinne’s RTP site,
http://www.cs.columbia.edu/~hgs/rtp/,1999
[2] M.-T. Sun and A. R. Reibman, Compressed Video Over Networks.Marcel Dekker Inc., 2001
[3] Karn,P., and C.Partridge.1987.Improving round-trip time estimates in reliable transport protocols. Presentation. SIGCOMM’87