王 卉,占 敖,吳呈瑜,夏雨峰
(浙江理工大學 信息學院,杭州 310018)
隨著無線通信技術和互聯網技術的快速發展,流媒體直播應用得到了迅速的推廣普及。與此同時,在極致的視覺體驗的背后,需要對海量的視頻數據進行快速、準確的傳輸,傳統的流媒體傳輸協議已經滿足不了對于低延時、高畫質的要求。
在傳統TCP協議的基礎上,文獻[1]提出了MP TCP(Multi-path TCP)協議,該協議通過擁塞控制、數據調度技術來實現系統高吞吐量傳輸的要求;文獻[2]提出了流控制傳輸協議(Stream Control Transmission Protocol,SCTP),其是一種在網絡連接之間同時傳輸多個數據流的協議,該協議的特點是安全性高并支持多數據流服務。
為了滿足無誤碼傳輸要求,MPTCP設計了數據調度,重傳等復雜機制,一方面增加了協議的復雜度,另一方面影響了系統帶寬,對于允許少量的丟包,要求高帶寬的音視頻數據傳輸系統是不合適的。然而,UDP協議通過有限次的重傳機制保證數據傳輸的丟包率,相比MPTCP,能夠簡化系統傳輸機制,提升系統傳輸帶寬;文獻[3]提出了基于UDP的傳輸協議,在較小的網絡開銷下,繼承了UDP傳輸實時性的同時,保證了數據的可靠傳輸性。針對大數據量的信息傳輸,文獻[4]提出了一種既能滿足UDP高效性又能降低網絡丟包率和延時的協議,在提高可靠性的基礎上又滿足了實時性的需求。UDP協議在可靠性和實時性上已經取得了較好的成果,但這些方案都是以單鏈路傳輸為背景,利用UDP協議將多鏈路協同通信運用在數據傳輸的研究更是一個全新的方向。
本文提出的MPUDP協議是一種基于UDP多鏈路協同通信的協議,實現多條路徑協作傳輸數據。在此過程中,通過真實數據訓練評估實時的信道狀態信息,對每條路數的數據傳輸進行管理,達到擴大系統傳輸帶寬的目的,其應用模型如圖1所示。多個用戶端將視頻數據推流到聚合推流設備,緊接著發送端(聚合推流設備)與接收端(聚合服務器)建立多個信道的連接,MPUDP協議在異構網絡環境下對不同的信道分配不同的數據量,其異構網絡包括WiFi、4G、5G等多路網絡環境。聚合服務器匯集多路數據,有序發送到用戶服務器,客戶端發出拉流請求,實現在線直播觀看的功能。

圖1 系統應用模型Fig.1 System application scenarios
MPUDP協議是面向連接的數據報協議,與傳統的UDP協議不同,MPUDP協議在兼容UDP協議的基礎上,支持以多路徑數據傳輸的方式,并根據信道性能分配速率,實現信道的高效傳輸。MPUDP系統在發送端和接收端之間存在多條路徑,首先確立發送端和接收端的握手連接,然后發送真實數據進行信道訓練,來獲得信道狀態信息,并且根據信道信息進行速率分配。當接收端出現數據丟包現象,重傳機制保證可靠性。如果當信道連接過程中出現連接錯誤,需要將數據調度到其他信道繼續傳送,最后聚合多路數據后統一排序組合,得到最后的數據幀。由此可見,MPUDP的關鍵工作組件包括訓練機制、速率分配、數據調度、重傳機制,如圖2所示。通過這4種工作組件,設計出滿足負載均衡原則和可靠性原則的MPUDP協議。

圖2 MPUDP的系統模型Fig.2 MPUDP system model
負載均衡原則:
(1)利用訓練機制在數據傳輸的過程中實時監測鏈路性能;
(2)利用速率分配原則,根據訓練結果動態調整鏈路的數據占比,減少不同信道對系統實時性的影響。
可靠性原則:
(1)利用數據調度在信道連接中斷時切換數據傳輸的信道;
(2)利用重傳機制從根源上降低丟包率。
本文設計MPUDP協議主要目標是解決由某條鏈路負載過大等原因引起的鏈路性能等問題,然而協議能否具有可靠性和低延時的特性,主要取決于以下4種工作組件,分別為訓練機制、速率分配、數據調度、重傳機制。
MPUDP協議定義了一系列的數據包和字段,為了說明設計思路,將用到的數據包和重要字段加以說明,見表1。

表1 數據包含義描述Tab.1 Packet meaning description
其中,訓練數據包的幀結構見表2,Channel_Length:信道發送數據長度;Frame_Length:發送幀長數據,表示一幀數據包括多少個數據信號S,最大值為2 047,如果出現2 047,則丟棄數據包;Sequence:添加數據序列,保證為:0、1、…,Channel_Length。

表2 訓練信號包結構Tab.2 Structure of training signal package
其中,訓練數據回復包的幀結構見表3。

表3 訓練回復包結構Tab.3 Structure of training reply package
Loss_Len:丟包數量;Num_Loss:丟包序列號,每兩個Byte表示一個序列號;SeqV:接收數據排序值。
4種工作機制原理設計及功能顯示各不相同。
3.2.1 訓練機制
MPUDP算法協議的基礎就是訓練機制,訓練機制的目的是檢測各鏈路的信道性能。
首次發送訓練信號,該信號為確定的模擬信號,利用已知信號對未知信道進行快捷的信道質量評估。在數據傳輸過程中,訓練序列為實際的媒體數據,利用邊發送媒體數據邊訓練信道的機制來提升實時信道傳輸性能。發送端發送數據給接收端,接收端返回接收時間、丟包率和數據順序到發送端,發送端根據接收完畢時間和發送時間計算得到,按照信道的丟包率和數據順序以及往返時延三要素判斷信道性能,并將信道分為5個等級,信道性能從好到差依次為C、C、C、C、C,見表4。

表4 信道等級分類標準Tab.4 Standard of channel classification
其中,表示數據長度;為判定的加權因子;、為規定完成數據的時間差();、為特定丟包率數值()。當按序接收時,則表示為式(1):

按照表4的分類標準對信道性能分類,依據訓練結果對不同等級的信道進行數據包分配,為下一步速率分配提供基礎。
3.2.2 速率分配
MPUDP算法協議的核心就是速率分配策略,利用對多路徑鏈路傳輸的信道性能進行速率分配,實現鏈路之間數據傳輸量的“動態”平衡。發送端采用多鏈路開發,優化通信流程,隨時嘗試在多條路徑之間保持負載均衡。
發送訓練信號后,若信道被判定為同一等級的情況,按信道數量等額分配數據包;若信道判定為不同信道性能等級,采用差額速率分配數據,提高數據傳輸的吞吐量。當最差信道被判定為C標準時,傳輸系統停止該信道的數據傳輸;當最差信道被判定為C標準時,信道性能歸一化速率v表示為式(2):


x表示等級為C的信道數量,以此類推;x、x、x分別表示等級為C、C、C的信道數量;表示的是各類信道等級的權重。當最差信道被判定為C標準時,信道性能歸一化速率v表示為式(3):


若最差信道性能降為C標準,則信道性能歸一化速率v表示為式(4):


在訓練的過程中,當出現未達要求的信道在訓練時通過了信道訓練要求,即達到C、C標準時,增加10%的速率在該信道傳輸,并在下一次的訓練中,加入該信道協作調整最差信道,達到信道性能,實現閉環提升的功能。
3.2.3 數據調度
在數據傳輸過程中鏈路發送端處在訓練信號、數據信號和發送數據+訓練信號過程中,鏈路出現中斷情況時,進一步影響鏈路的可靠性和傳輸速率。
為保證鏈路數據的傳輸速率,需要在鏈路中啟用數據調度的工作機制,將發送在異常鏈路的數據分發到其他鏈路中。具體實現:發送過程中當出現數據幀鏈路錯誤,MPUDP協議將未傳輸數據包分配到其他良好信道上傳送,其速率分配遵循上述的速率分配原則。例如:數據傳輸時有3個并行信道,分別為C、C和C,在信道傳輸過程中,信道C發生錯誤,數據調度將其數據速率分配到其他信道中。在信道沒有發生錯誤的情況下,各信道按照式(5)原則:

其中,V表示信道C的分配速率;V表示信道C的分配速率;V表示信道C的分配速率。
當信道C連接斷開,信道C和C歸一化傳輸速率為公式(6):


此時,C、C兩信道幫助斷開信道C成功發送該數據幀。以該方法為核心,數據調度可以避免斷開鏈路的丟包率,從而加強信道傳輸的可靠性。
3.2.4 重傳機制
在數據傳輸階段,如果信道出現丟包現象,該機制能夠有效減少丟包率,提高數據可靠性。
在信道連接過程中,與TCP協議握手機制類似,MPUDP協議通過3次握手的機制建立連接,區別在于MPUDP協議收發兩端需要確認雙方的IP地址及端口號。在發送數據過程中,發送端將每包數據連續編號,接收端建立緩沖區,對接收數據包重新進行序號排列。如果接收端檢測到沒有丟包,則按照數據序號全部移出緩存區;如果接收端檢測到丟包,接收端將未接收到的數據包信息(即丟包數量Loss_Len和丟包序列號Num_Loss數據包)反饋給發送端,發送端重新發送指定的數據信息,并保持丟包數據始終在原本信道上進行重傳,最大重傳次數為3次,超過重傳次數,停止該幀信息傳輸,進入下一幀數據傳輸,即允許適當的丟包率來改善系統吞吐量,此重傳機制適用于海量數據傳輸,如:音視頻傳輸系統。
以上4種工作組件設計成一種兼具可靠性和數據傳輸效率的MPUDP協議,并在系統的發送和接收的過程也充分利用了上述4種工作組件。
MPUDP協議是一種提供可靠機制、面向連接的數據流傳輸協議。MPUDP的協議算法設計見表5,MPUDP的4種工作機制建立起多路徑傳輸以及如何實現數據包的合理分配的過程。發送端分別發送數據請求包,訓練信號和數據信號,接收端對多條發送結果進行反饋,并不斷通過訓練情況實時提升信道傳輸速率。

表5 MPUDP的協議算法設計Tab.5 Protocol design of MPUDP
實驗仿真環境的搭建為:實驗室有線路由器與交換機通過網線相連,無線路由器與有線路由器通過網線相連,有線路由器可對無線路由器設置不同的傳輸帶寬,兩客戶端與無線路由器進行無線信道連接,服務端電腦與有線路由器通過光纖連接。為評估設計系統的可靠性與高效性,需利用仿真環境實現基于MPUDP協議在多種情況下的網絡傳輸的實驗仿真。為研究多鏈路協同傳輸,在兩條傳輸鏈路中分別采用UDP和MPUDP傳輸協議,兩臺電腦作為客戶端A、B分別使用UDP、MPUDP協議協同傳輸同一份大文件,客戶端C作為接收端,接收兩客戶端發送過來的文件。
UDP協議是傳統流媒體服務器協議;MPTCP協議表示多鏈路數據傳輸協議;MPUDP是本文設計的多路徑協作傳輸協議,3種通信協議對實時鏈路帶寬的吞吐量,如圖3所示。MPUDP協議在進行數據傳輸時,與UDP、MPTCP協議相對比,吞吐量在不同丟包率情形下都有不同程度的提高。在丟包率為0%的情況下,MPUDP協議由于自身的協作特性,在滿足要求的情況下,能夠實現較高的吞吐量;MPTCP協議由于協議高精準度的要求,必須滿足0%的丟包率,但由于協議特性缺少自適應的算法,在吞吐量上不敵MPUDP協議;在丟包率為0%的情況下,UDP協議的吞吐量最低,而隨著丟包率要求的降低,UDP和MPUDP協議的吞吐量也在穩步提升。

圖3 模擬信道在不同算法協議下的吞吐量Fig.3 Throughput of analog channel under different algorithm protocols
MPUDP協議和UDP協議在不同丟包率要求下的吞吐量如圖4所示,在MPUDP協議中,運用了多鏈路協作運輸,這相比于UDP的單信道傳輸在信道傳輸速率上有了近鏈路數目倍的提高。

圖4 模擬信道在不同丟包率情況下的吞吐量Fig.4 Throughput of analog channel under different packet loss rate
本文分別對MPUDP訓練機制、速率分配、重傳機制、數據調度進行了設計及優化。通過訓練獲得每條鏈路信道傳輸帶寬進行數據分配傳輸,達到多條鏈路協作傳輸視頻的能力。在允許少量丟包的情況下,改善系統數據的傳輸帶寬,適用于音視頻傳輸的應用場景。實驗仿真表明:在丟包率較小的情形下,MPUDP協議相較于UDP協議在模擬信道的吞吐量上都有了近鏈路數目倍的增長。