趙 夙 王 偉 朱曉榮 倪欽崟
(南京郵電大學江蘇省無線通信重點實驗室 南京 210003)
隨著超高清視頻直播、無人駕駛、虛擬現實等高速率業務的不斷興起,人們對帶寬、時延的要求不斷提高。利用多種異構網絡實現并發傳輸成為一種有效的解決方案,該方案已經成為目前的研究熱點。一方面,未來的網絡將是5G,4G,Wifi等多種網絡共存的異構網絡,任何單一的網絡將無法隨時隨地滿足用戶高速率業務需求,文獻[1]對5G網絡中異構網絡應用場景以及未來的研究趨勢進行了討論。另一方面,隨著智能硬件的不斷普及,越來越多的終端設備配備有多種類型的網絡接口,使得一個用戶終端同時具有訪問目標通信節點的多條鏈路,實現多路徑并行傳輸,極大地提高傳輸速率。
多路徑并行傳輸在有線網絡中的應用已經相對成熟。然而,在無線網絡環境中,由于無線鏈路本身具有動態性和不可靠性,加上終端的移動性導致無線網絡狀況復雜多變,多路徑傳輸不可避免地會產生隊頭阻塞、緩沖區擁塞、不必要的快速重傳、接收亂序等現象,嚴重影響了傳輸效率,降低傳輸性能。
目前已有大量文獻深入研究了多路徑傳輸問題[2–10]。多路徑并行傳輸可以在應用層、傳輸層、網絡層等網絡協議棧的各個層面實施。目前研究較多的主要是在傳輸層實現,而現有的傳輸層協議并不支持多路徑傳輸,因此需要對現有的傳輸協議進行擴展,其中較為典型的是對TCP及流控制傳輸協議SCTP(Stream Control Transmission Protocol)[11]的擴展。目前主要的改進版本有pTCP(parallel TCP)[12], mTCP(TCP on multicore system)[13],MPTCP(MultiPath TCP)[14]等。基于擴展的傳輸協議,大量文獻針對無線網絡場景下不同業務需求進行了研究,提出了各種不同的算法。文獻[2]針對異構無線網絡環境,使用SCTP進行多宿主高清視頻通信,在多個無線接入網絡進行單個高清視頻流的端到端傳輸。文獻[3]提出了一種新穎的質量感知自適應并發多路徑傳輸解決方案CMT-QA,通過實時感知多路徑的通信狀態,根據路徑處理能力的不同,將SCTP數據包分發到不同路徑上。文獻[4]提出了一種基于軟件定義網絡的分段路由多徑傳輸方案以滿足實時交互式多媒體業務對帶寬和低端到端傳輸時延的要求。文獻[5]建立了路徑吞吐量與不同丟包率和延遲的擬合關系,并提出了路徑加權算法CMT-PW。
針對數據包亂序問題,將網絡編碼和多路徑傳輸相結合,可以有效解決接收端數據包亂序問題。文獻[6]針對異構車聯網場景提出了一種BigNum網絡編碼方案,該編碼方案在編碼靈活性和編解碼效率之間有了更好的折中。文獻[7]提出了一種網絡編碼感知的多路徑路由協議NCAnt,通過最大化重編碼機會實現可靠的端到端傳輸。文獻[8]提出了一種基于網絡編碼的多路徑并發傳輸解決方案CMTNC,該方案避免了數據重新排序以減輕緩沖區阻塞,但編碼時延較大。文獻[9]針對傳統網絡編碼的缺點,提出了一種新穎的基于管道網絡編碼的MPTCP-PNC,但是該方案中分組大小的確定并不能根據網絡狀況實時動態調整。文獻[10]提出了一種基于強化學習的多路徑擁塞控制方法Smart-CC,該算法采用異步強化學習框架學習擁塞規則,發送方通過觀察環境來自適應地調整子流的擁塞窗口,但是該方案并不能解決數據包亂序問題。
從以上文獻可以看出,現有的研究主要通過數據包的合理調度和擁塞控制來解決數據包的亂序問題,但是只能減少數據包亂序,并不能從根本上解決亂序問題。因此,本文將強化學習和網絡編碼相結合,采用網絡編碼技術打破數據包序列號和交付順序之間的強約束關系,基于強化學習,通過與環境交互,學習出最優的網絡編碼策略,從而解決了異構無線鏈路多路徑傳輸存在的亂序問題,有效提升系統吞吐量。
本文的系統架構如圖1所示,分為發送端、異構無線網絡環境和接收端3個部分。主要包含以下5個模塊:強化學習模塊、數據包分組模塊、網絡編碼模塊、基于路徑質量分發模塊以及網絡解碼模塊。其中,強化學習模塊主要用于獲取最優的編碼策略;數據包分組模塊基于強化學習模塊的結果對數據包進行分組;網絡編碼模塊對數據包進行網絡編碼;基于路徑質量分發模塊根據路徑的網絡狀況將編碼數據包分發到路徑緩存中,通過多路徑異構無線網絡環境,將數據包發送到接收端;網絡解碼模塊對接收的數據包進行解碼,解碼完成后遞交上層應用。

圖1 系統架構圖
強化學習通過智能體與環境不斷地交互學習出最優的策略,已經被用于解決各種各樣的問題。本文采用表現非常優異的異步強化學習算法A3C[15]算法,該算法通過異步學習框架,每個智能體和環境交互,分別計算神經網絡損失函數的梯度,然后更新公共的神經網絡。同時,智能體每隔一段時間從公共神經網絡獲取參數,指導自己與環境的交互過程。通過多個智能體不斷地與環境交互,使得模型收斂更加迅速。


圖2 A3C強化學習示意圖




網絡編碼最基本的編碼方式是對原始數據包進行線性組合。假設源節點有K個大小相同的數據包P1,P2,...,PK,則采用線性編碼方式得到的編碼數據包為

表1 基于A3C的自適應編碼決策算法(算法1)

管道網絡編碼[9]采用“從一到全部”的漸進編碼策略對數據包進行線性編碼,編碼矩陣是一個下三角矩陣。而管道網絡編碼分組大小和冗余大小的確定是根據網絡參數值計算得出的,在網絡參數值測量估計不準確的情況下,所得結果并不是最優,且實時性不足。本文在管道網絡編碼的基礎上提出了自適應網絡編碼方案,首先根據強化學習模塊獲取的N和R值,網絡編碼模塊對接收到的數據包進行網絡編碼,遵循“從一到全部”的漸進編碼策略。在發送方和接收方約定編碼矩陣,編碼系數不需要攜帶在數據包中,以減輕編碼數據包的大小,節省帶寬資源。同時,在數據包中設置了不同的標志位,以區分該數據包是編碼數據包還是冗余編碼包,根據不同的標志從對應的矩陣選擇編解碼系數。由于編碼分組的大小N和分組內冗余數據包大小R是由強化學習模塊根據網絡狀況學習出的最優策略,所以該編碼方案是一種自適應的網絡編碼方案。
如圖3所示,Gk表 示第k個分組,Pk表 示第k個原始數據包,Ck表 示編碼完成的第k個數據包。對于編碼分組G1, 編碼分組大小N=3,冗余大小R=1,表示將3個數據包作為1組進行編碼,同時還需要一個冗余包C3(圖中深灰色表示)。假設數據包C3在傳輸過程中由于網絡原因造成數據包丟失,由于在發送端增加了冗余包C3,接收端仍可以恢復原始數據包,從而有效避免數據包的重傳。同時,對于接收方來說,即使數據包亂序到達,只要收到足夠數量的數據包即以可恢復原始的數據包,而不關心數據包的序列號。因此,網絡編碼打破了數據包序列號和交付順序之間的強約束關系。本文采用的數據包編碼矩陣Cp以及冗余數據包編碼矩陣Cr定義為

圖3 自適應網絡編碼示意圖


基于Opnet仿真軟件,搭建的仿真拓撲如圖4所示,多模終端通過WiMax和WLAN兩條鏈路發起視頻會議,遠程服務器通過兩條鏈路傳輸視頻流,最后在多模終端處進行合并,鏈路參數配置如表4所示。

表4 仿真參數設置

圖4 仿真拓撲圖

表2 自適應編碼算法(算法2)

表3 基于路徑質量的數據包分發算法(算法3)


表5 多流并發環境參數

表6 A3C算法參數
如圖5所示,黑色實線表示分組大小N,灰色虛線表示分組內冗余數據包大小R。由于初始時刻網絡狀況未知,在仿真中將分組大小設置為15,分組內冗余的數據包大小設置為1。而在t=1時刻,由于網絡狀況較差,需要調整分組大小和分組內冗余數據包大小,從圖中可以看出,分組大小的值為13,而分組內冗余數據包大小為3。在迭代過程中,根據網絡狀況動態調整分組大小和分組內冗余數據包大小,以適應不同的網絡狀況。

圖5 決策結果示意圖
本文采用兩條鏈路并發傳輸視頻,吞吐量對比如圖6所示。圖6(a)對多路徑與單路徑傳輸吞吐量進行對比,可以發現多路徑傳輸可以獲得較高的吞吐量;圖6(b)黑色實線表示自適應網絡編碼方案總吞吐量,深灰色虛線表示管道網絡編碼方案MPTCPPNC總吞吐量,淺灰色虛線表示無網絡編碼方案總吞吐量。從圖中可以看出,自適應網絡編碼方案相比于無網絡編碼方案能夠獲得較高的吞吐量。由于采用了網絡編碼,接收端只要接收足量的數據包就可以解碼出原始的數據包。而不采用網絡編碼算法時,由于接收端存在亂序現象,可能產生隊頭阻塞現象,使得發送方降低發送速率,從而導致吞吐量的不合理的下降。而本文提出的自適應網絡編碼方案相比管道網絡編碼方案,吞吐量有一定的提升,兩者變化趨勢相同,而自適應網絡編碼方案能夠快速應對網絡的變化。

圖6 吞吐量對比圖
傳輸完成時間隨數據包個數變化如圖7所示,其中黑色實線表示采用自適應網絡編碼方案,灰色虛線表示不采用網絡編碼方案。從圖中可以看出,隨著傳輸的數據包個數增加,采用自適應網絡編碼方案完成視頻傳輸所需要的時間較小,而當數據包個數較少時,不采用網絡編碼方案所需傳輸時間較小,因為編碼存在一定時延。

圖7 傳輸完成時間隨數據包個數變化圖
接收方緩存時間對比如圖8所示,其中黑色實線表示采用自適應網絡編碼方案、深灰色虛線表示不采用網絡編碼方案、淺灰色虛線表示管道網絡編碼。從圖中可以看出,采用自適應網絡編碼方案相比不采用網絡編碼算法能夠更快地獲得較大的緩存大小。自適應網絡編碼在7 s左右達到最大值(本文緩沖區容量設置為50 s),管道網絡編碼在9 s左右達到最大值,而不采用網絡編碼方案在12 s左右達到緩沖最大值,之后緩沖區大小一直保持在50 s左右。

圖8 接收方緩存時間對比圖
本文主要研究了異構網絡環境下多路徑并發傳輸問題,針對異構無線網絡環境中多路徑并發傳輸存在的數據包亂序問題,提出了一種基于自適應網絡編碼的異構無線鏈路并發傳輸控制算法。首先,強化學習模塊通過智能體與環境的不斷交互學習出最優的編碼策略,獲取最優編碼分組大小和冗余大小。基于最優的編碼策略對數據包進行編碼傳輸,接收方不斷接收編碼的數據包,然后對數據包進行解碼。最后,通過Opnet網絡仿真數據對本文所提方法進行仿真,相比無網絡編碼方案以及管道網絡編碼方案,本文所提的自適網絡編碼算法能夠獲取更高的吞吐量。仿真結果表明,相比管道網絡編碼方案提高了10%左右的吞吐量,通過冗余編碼解決了數據包的亂序問題,從而有效提升網絡吞吐量,同時可以快速填滿視頻緩沖區,一直維持較高的緩沖時間。本文采用的網絡編碼算法沒有考慮數據包內容之間的關聯性,未來可以與視頻編碼相結合,進一步提高編碼效率。