王蕊,周慧,趙海茹,趙盛萍
(玉溪師范學院,云南玉溪,653100)
近年來,隨著計算機網絡技術的發展,數據業務呈爆炸式增長。實時流媒體業務、社交網絡、云計算、移動應用等需要消費高帶寬的應用層出不窮,特別是實時流媒體業務,根據中國互聯網絡信息中心(CNNIC)于2021年2月發布的中國互聯網絡發展狀況統計報告顯示[1]:截至2020年12月,視頻和語音等對流量要求較大的實時流媒體服務增長迅速,我國網絡視頻用戶規模達9.27億,較2020年3月增長7633萬,占網民整體的93.7%。其中短視頻用戶規模為8.73億,較2020年3月增長1.00億,占網民整體的88.3%。實時流媒體技術必然對經濟、對人們的日常工作以及生活產生深遠的影響。
雖然現有技術能滿足人們對網絡視頻業務的基本需求,但是有限的帶寬成為了高質量實時流媒體傳輸的瓶頸。而利用終端的多個網路接口,實現終端之間的多路徑并行傳輸,將網路資源有效聚合,可以解決目前網路帶寬不足的情況。圖1給出了一個簡單的基于多路傳輸的示例,移動終端可以通過多條可用路徑,同時與媒體服務器進行通信。

圖1 多接口環境下多路數據傳輸場景
目前傳輸層多路并行傳輸協議主要有由流控制傳輸協議SCTP擴展而來的CMT-SCTP和多路徑傳輸控制協議MPTCP。
SCTP被首先提出[2]。SCTP并不支持多路并行傳輸,但支持多宿主的特性,能在端到端建立多條連接。2004年由特拉華大學的PLE實驗室(Protocol Engineering Laboratory,PEL)提出了對SCTP的擴展CMT-SCTP[3],以支持多路徑并行傳輸。CMT-SCTP結合了TCP 和UDP在實時流媒體傳輸上的優勢,具有選擇性有序傳輸和分流的特性,但是CMT-SCTP不兼容現有網絡和應用,因此并沒有被大規模地部署商用。
2011年1月,IETF相繼公布了MPTCP相關RFC文檔[4]。MPTCP是對TCP的擴展,目的是以資源共享的方式,把數據流分發到多條子流上以提高網絡資源利用率。MPTCP是面向連接的傳輸層協議,可靠性好,并且與現有的TCP協議兼容,MPTCP使用多路并行傳輸能夠很好的實現帶寬聚合。但是使用MPTCP傳輸實時流媒體也存在TCP協議的傳輸數據平滑性不夠好、包重傳機制增加數據包的延遲抖動和亂序等問題。
在2011年,法國LIP6實驗室首先提出了并行多路徑UDP(Multipath UDP,MPUDP),但是近年來國內外基于MPUDP的研究成果鳳毛麟角,即使有MPUDP方面的研究,也并未針對實時流媒體傳輸做出優化。
IETF組織于1999年提出并且制定了MPTCP標準。MPTCP作為標準TCP的擴展協議,可用支持傳輸層端到端的多路徑并行傳輸。MPTCP在功能上可分為路徑管理、包調度、子流接口和擁塞控制四個方面。把以上這些功能組合在一起,路徑管理發現主機之間的多條路徑;包調度接著接收發往網絡應用的數據流,并進行必要的操作(如:在片段發送至子流之前,把數據分割為連接級的片段并且添加連接級的序列號);子流添加自己的序列號,再把片段傳遞至網絡;接收子流重排序數據(如有必要),并把它傳遞包調度模塊,執行連接級重新排序;最后把數據傳送到應用層。擁塞控制作為包調度的一部分,控制報文段的發送速率。
MPTCP是標準TCP的擴展,本身就具有相應的流量控制、擁塞控制和差錯控制機制,并且能夠保證傳輸的TCP友好性;更重要是MPTCP為多路并行傳輸的方式,對于端到端的傳輸速率、帶寬和吞吐量上都有很大提高,更適合于實時流媒體的傳輸。不過,使用MPTCP協議用于實時流媒傳輸仍然存在和TCP協議一樣的不足:
(1)TCP的發送速率乘性減小的特性使得在傳輸實時流媒體過程中速率陡降,大大影響實時流媒體傳輸的平滑性。
(2)包重傳機制增加數據包的延遲抖動和亂序的可能,增加了網絡開銷,降低了實時流媒體的播放質量。
(3)并行多路徑傳輸流媒體,并行傳輸大量數據,如果不能有效控制,接收端緩存會造成大量的溢出。
考慮到現存的互聯網體系結構及新的互聯網傳輸的需求。提出了一個基于Tng(下一代傳輸層)思想的多路徑UDP體系結構,多路徑UDP與UDP協議體系結構的對比如圖2所示,該結構通過對現有互聯網體系結構的兼容及擴展,能夠有效支持多路徑UDP傳輸實時流媒體的高性能目標。由圖2可以看出多路徑UDP通過保留UDP的語義方式保證了對應用層的兼容性,通過單條的UDP子流保證了面向網絡層的兼容性。

圖2 多路徑UDP與UDP體系結構對比
多路徑UDP為了有效地處理下層的多個UDP子流,必須實現以下關鍵技術:
(1)路徑管理。使用主機間存在的多個IP地址,為主機發送可選地址信號,實現子流的新建、添加和刪除。在設計路徑管理機制時,如果多條路徑同時傳輸時,有一條路徑性能較差,時延較大,則會引起嚴重亂序。因此,使用多條路徑全部進行傳輸不如使用較少的性能優的路徑進行傳輸。
(2)數據調度。一個GOP中只有一個I 幀,I幀含有重建圖像的恢復信息,所占的信息量比較大,直接關系到是否整個GOP 幀的恢復。P幀是采用運動補償的方法傳輸它與前面I幀或是P幀的差值及運動矢量(預測誤差),只有通過I幀中的預測值和預測誤差求和之后才能構建P幀。B幀是通過前面I幀或是P幀和后面的P幀來進行重建,因此他們之間的優先級I≥P≥B。在傳輸的過程,對這三類的不同幀數據應該采用不同可靠性質的傳輸方式。因此,可提出一種基于實時流媒體編碼幀優先級的數據調度策略,旨在保證關鍵幀的可靠到達,提高實時流媒體的解碼有效性,滿足實時視頻數據的時延敏感性和數據相關性。研究內容主要包括:1)測量路徑的帶寬和RTT;2)評估子路徑的擁塞狀態;3)綜合考慮編碼幀的優先級和相關性,對實時流媒體數據序列中不同幀采取不同的傳輸策略
(3)接收端緩存排序。對到達接收端的數據進行合理排序并遞交至應用層。多路徑UDP為基于UDP并行多路徑傳輸技術,對于傳統的UDP技術“盡力而為”的特性,數據到達傳輸層后直接遞交至應用層,由應用層來完成數據的排序任務,該策略的有優勢是可提高實時流媒體傳輸的實時性,但對于多路徑實時流媒體傳輸,如果繼續沿用單路徑UDP的傳輸策略,將會影響實時流媒體傳輸的實時性,因為將大量亂序的實時流媒體數據的排序任務交由應用來完成,增大了應用層緩存的壓力,主動丟包,從而影響實時流媒體業務的服務質量??紤]到并行多路徑實時流媒體數據量大、允許丟包并且實時性要求高的特點,提出了一種新的排序策略,該策略能在減小接收端應用層緩存亂序的同時,最好地滿足實時流媒體數據傳輸的實時性需求。
本文提出了用于流媒體傳輸的兩種多路徑傳輸協議。多路徑TCP和多路徑UDP均能利用多路徑傳輸優勢提高流媒體傳輸的帶寬和可靠性。但通過進一步分析可知,多路徑TCP由于是面向連接的傳輸層協議,面向連接雖然可靠性好,但不可避免地增加了許多的開銷和時延,如確認、流量控制及連接管理等機制,大大降低了傳輸效率?;诙嗦窂絋CP存在的問題,我們進一步提出了網絡開銷較少的多路徑UDP協議,并對其系統框架及關鍵技術進行介紹。為了進一步驗證多路徑UDP的有效性,下一步在NS3上搭建多路徑UDP環境及實現相關關鍵技術算法,評估多路徑UDP協議用于流媒體傳輸時網絡的性能。