趙 夙 王 偉 朱曉榮 倪欽崟
(南京郵電大學江蘇省無線通信重點實驗室 南京 210003)
隨著超高清視頻直播、無人駕駛、虛擬現(xiàn)實等高速率業(yè)務(wù)的不斷興起,人們對帶寬、時延的要求不斷提高。利用多種異構(gòu)網(wǎng)絡(luò)實現(xiàn)并發(fā)傳輸成為一種有效的解決方案,該方案已經(jīng)成為目前的研究熱點。一方面,未來的網(wǎng)絡(luò)將是5G,4G,Wifi等多種網(wǎng)絡(luò)共存的異構(gòu)網(wǎng)絡(luò),任何單一的網(wǎng)絡(luò)將無法隨時隨地滿足用戶高速率業(yè)務(wù)需求,文獻[1]對5G網(wǎng)絡(luò)中異構(gòu)網(wǎng)絡(luò)應(yīng)用場景以及未來的研究趨勢進行了討論。另一方面,隨著智能硬件的不斷普及,越來越多的終端設(shè)備配備有多種類型的網(wǎng)絡(luò)接口,使得一個用戶終端同時具有訪問目標通信節(jié)點的多條鏈路,實現(xiàn)多路徑并行傳輸,極大地提高傳輸速率。
多路徑并行傳輸在有線網(wǎng)絡(luò)中的應(yīng)用已經(jīng)相對成熟。然而,在無線網(wǎng)絡(luò)環(huán)境中,由于無線鏈路本身具有動態(tài)性和不可靠性,加上終端的移動性導(dǎo)致無線網(wǎng)絡(luò)狀況復(fù)雜多變,多路徑傳輸不可避免地會產(chǎn)生隊頭阻塞、緩沖區(qū)擁塞、不必要的快速重傳、接收亂序等現(xiàn)象,嚴重影響了傳輸效率,降低傳輸性能。
目前已有大量文獻深入研究了多路徑傳輸問題[2–10]。多路徑并行傳輸可以在應(yīng)用層、傳輸層、網(wǎng)絡(luò)層等網(wǎng)絡(luò)協(xié)議棧的各個層面實施。目前研究較多的主要是在傳輸層實現(xiàn),而現(xiàn)有的傳輸層協(xié)議并不支持多路徑傳輸,因此需要對現(xiàn)有的傳輸協(xié)議進行擴展,其中較為典型的是對TCP及流控制傳輸協(xié)議SCTP(Stream Control Transmission Protocol)[11]的擴展。目前主要的改進版本有pTCP(parallel TCP)[12], mTCP(TCP on multicore system)[13],MPTCP(MultiPath TCP)[14]等?;跀U展的傳輸協(xié)議,大量文獻針對無線網(wǎng)絡(luò)場景下不同業(yè)務(wù)需求進行了研究,提出了各種不同的算法。文獻[2]針對異構(gòu)無線網(wǎng)絡(luò)環(huán)境,使用SCTP進行多宿主高清視頻通信,在多個無線接入網(wǎng)絡(luò)進行單個高清視頻流的端到端傳輸。文獻[3]提出了一種新穎的質(zhì)量感知自適應(yīng)并發(fā)多路徑傳輸解決方案CMT-QA,通過實時感知多路徑的通信狀態(tài),根據(jù)路徑處理能力的不同,將SCTP數(shù)據(jù)包分發(fā)到不同路徑上。文獻[4]提出了一種基于軟件定義網(wǎng)絡(luò)的分段路由多徑傳輸方案以滿足實時交互式多媒體業(yè)務(wù)對帶寬和低端到端傳輸時延的要求。文獻[5]建立了路徑吞吐量與不同丟包率和延遲的擬合關(guān)系,并提出了路徑加權(quán)算法CMT-PW。
針對數(shù)據(jù)包亂序問題,將網(wǎng)絡(luò)編碼和多路徑傳輸相結(jié)合,可以有效解決接收端數(shù)據(jù)包亂序問題。文獻[6]針對異構(gòu)車聯(lián)網(wǎng)場景提出了一種BigNum網(wǎng)絡(luò)編碼方案,該編碼方案在編碼靈活性和編解碼效率之間有了更好的折中。文獻[7]提出了一種網(wǎng)絡(luò)編碼感知的多路徑路由協(xié)議NCAnt,通過最大化重編碼機會實現(xiàn)可靠的端到端傳輸。文獻[8]提出了一種基于網(wǎng)絡(luò)編碼的多路徑并發(fā)傳輸解決方案CMTNC,該方案避免了數(shù)據(jù)重新排序以減輕緩沖區(qū)阻塞,但編碼時延較大。文獻[9]針對傳統(tǒng)網(wǎng)絡(luò)編碼的缺點,提出了一種新穎的基于管道網(wǎng)絡(luò)編碼的MPTCP-PNC,但是該方案中分組大小的確定并不能根據(jù)網(wǎng)絡(luò)狀況實時動態(tài)調(diào)整。文獻[10]提出了一種基于強化學習的多路徑擁塞控制方法Smart-CC,該算法采用異步強化學習框架學習擁塞規(guī)則,發(fā)送方通過觀察環(huán)境來自適應(yīng)地調(diào)整子流的擁塞窗口,但是該方案并不能解決數(shù)據(jù)包亂序問題。
從以上文獻可以看出,現(xiàn)有的研究主要通過數(shù)據(jù)包的合理調(diào)度和擁塞控制來解決數(shù)據(jù)包的亂序問題,但是只能減少數(shù)據(jù)包亂序,并不能從根本上解決亂序問題。因此,本文將強化學習和網(wǎng)絡(luò)編碼相結(jié)合,采用網(wǎng)絡(luò)編碼技術(shù)打破數(shù)據(jù)包序列號和交付順序之間的強約束關(guān)系,基于強化學習,通過與環(huán)境交互,學習出最優(yōu)的網(wǎng)絡(luò)編碼策略,從而解決了異構(gòu)無線鏈路多路徑傳輸存在的亂序問題,有效提升系統(tǒng)吞吐量。
本文的系統(tǒng)架構(gòu)如圖1所示,分為發(fā)送端、異構(gòu)無線網(wǎng)絡(luò)環(huán)境和接收端3個部分。主要包含以下5個模塊:強化學習模塊、數(shù)據(jù)包分組模塊、網(wǎng)絡(luò)編碼模塊、基于路徑質(zhì)量分發(fā)模塊以及網(wǎng)絡(luò)解碼模塊。其中,強化學習模塊主要用于獲取最優(yōu)的編碼策略;數(shù)據(jù)包分組模塊基于強化學習模塊的結(jié)果對數(shù)據(jù)包進行分組;網(wǎng)絡(luò)編碼模塊對數(shù)據(jù)包進行網(wǎng)絡(luò)編碼;基于路徑質(zhì)量分發(fā)模塊根據(jù)路徑的網(wǎng)絡(luò)狀況將編碼數(shù)據(jù)包分發(fā)到路徑緩存中,通過多路徑異構(gòu)無線網(wǎng)絡(luò)環(huán)境,將數(shù)據(jù)包發(fā)送到接收端;網(wǎng)絡(luò)解碼模塊對接收的數(shù)據(jù)包進行解碼,解碼完成后遞交上層應(yīng)用。
圖1 系統(tǒng)架構(gòu)圖
強化學習通過智能體與環(huán)境不斷地交互學習出最優(yōu)的策略,已經(jīng)被用于解決各種各樣的問題。本文采用表現(xiàn)非常優(yōu)異的異步強化學習算法A3C[15]算法,該算法通過異步學習框架,每個智能體和環(huán)境交互,分別計算神經(jīng)網(wǎng)絡(luò)損失函數(shù)的梯度,然后更新公共的神經(jīng)網(wǎng)絡(luò)。同時,智能體每隔一段時間從公共神經(jīng)網(wǎng)絡(luò)獲取參數(shù),指導(dǎo)自己與環(huán)境的交互過程。通過多個智能體不斷地與環(huán)境交互,使得模型收斂更加迅速。
圖2 A3C強化學習示意圖
網(wǎng)絡(luò)編碼最基本的編碼方式是對原始數(shù)據(jù)包進行線性組合。假設(shè)源節(jié)點有K個大小相同的數(shù)據(jù)包P1,P2,...,PK,則采用線性編碼方式得到的編碼數(shù)據(jù)包為
表1 基于A3C的自適應(yīng)編碼決策算法(算法1)
管道網(wǎng)絡(luò)編碼[9]采用“從一到全部”的漸進編碼策略對數(shù)據(jù)包進行線性編碼,編碼矩陣是一個下三角矩陣。而管道網(wǎng)絡(luò)編碼分組大小和冗余大小的確定是根據(jù)網(wǎng)絡(luò)參數(shù)值計算得出的,在網(wǎng)絡(luò)參數(shù)值測量估計不準確的情況下,所得結(jié)果并不是最優(yōu),且實時性不足。本文在管道網(wǎng)絡(luò)編碼的基礎(chǔ)上提出了自適應(yīng)網(wǎng)絡(luò)編碼方案,首先根據(jù)強化學習模塊獲取的N和R值,網(wǎng)絡(luò)編碼模塊對接收到的數(shù)據(jù)包進行網(wǎng)絡(luò)編碼,遵循“從一到全部”的漸進編碼策略。在發(fā)送方和接收方約定編碼矩陣,編碼系數(shù)不需要攜帶在數(shù)據(jù)包中,以減輕編碼數(shù)據(jù)包的大小,節(jié)省帶寬資源。同時,在數(shù)據(jù)包中設(shè)置了不同的標志位,以區(qū)分該數(shù)據(jù)包是編碼數(shù)據(jù)包還是冗余編碼包,根據(jù)不同的標志從對應(yīng)的矩陣選擇編解碼系數(shù)。由于編碼分組的大小N和分組內(nèi)冗余數(shù)據(jù)包大小R是由強化學習模塊根據(jù)網(wǎng)絡(luò)狀況學習出的最優(yōu)策略,所以該編碼方案是一種自適應(yīng)的網(wǎng)絡(luò)編碼方案。
如圖3所示,Gk表 示第k個分組,Pk表 示第k個原始數(shù)據(jù)包,Ck表 示編碼完成的第k個數(shù)據(jù)包。對于編碼分組G1, 編碼分組大小N=3,冗余大小R=1,表示將3個數(shù)據(jù)包作為1組進行編碼,同時還需要一個冗余包C3(圖中深灰色表示)。假設(shè)數(shù)據(jù)包C3在傳輸過程中由于網(wǎng)絡(luò)原因造成數(shù)據(jù)包丟失,由于在發(fā)送端增加了冗余包C3,接收端仍可以恢復(fù)原始數(shù)據(jù)包,從而有效避免數(shù)據(jù)包的重傳。同時,對于接收方來說,即使數(shù)據(jù)包亂序到達,只要收到足夠數(shù)量的數(shù)據(jù)包即以可恢復(fù)原始的數(shù)據(jù)包,而不關(guān)心數(shù)據(jù)包的序列號。因此,網(wǎng)絡(luò)編碼打破了數(shù)據(jù)包序列號和交付順序之間的強約束關(guān)系。本文采用的數(shù)據(jù)包編碼矩陣Cp以及冗余數(shù)據(jù)包編碼矩陣Cr定義為
圖3 自適應(yīng)網(wǎng)絡(luò)編碼示意圖
基于Opnet仿真軟件,搭建的仿真拓撲如圖4所示,多模終端通過WiMax和WLAN兩條鏈路發(fā)起視頻會議,遠程服務(wù)器通過兩條鏈路傳輸視頻流,最后在多模終端處進行合并,鏈路參數(shù)配置如表4所示。
表4 仿真參數(shù)設(shè)置
圖4 仿真拓撲圖
表2 自適應(yīng)編碼算法(算法2)
表3 基于路徑質(zhì)量的數(shù)據(jù)包分發(fā)算法(算法3)
表5 多流并發(fā)環(huán)境參數(shù)
表6 A3C算法參數(shù)
如圖5所示,黑色實線表示分組大小N,灰色虛線表示分組內(nèi)冗余數(shù)據(jù)包大小R。由于初始時刻網(wǎng)絡(luò)狀況未知,在仿真中將分組大小設(shè)置為15,分組內(nèi)冗余的數(shù)據(jù)包大小設(shè)置為1。而在t=1時刻,由于網(wǎng)絡(luò)狀況較差,需要調(diào)整分組大小和分組內(nèi)冗余數(shù)據(jù)包大小,從圖中可以看出,分組大小的值為13,而分組內(nèi)冗余數(shù)據(jù)包大小為3。在迭代過程中,根據(jù)網(wǎng)絡(luò)狀況動態(tài)調(diào)整分組大小和分組內(nèi)冗余數(shù)據(jù)包大小,以適應(yīng)不同的網(wǎng)絡(luò)狀況。
圖5 決策結(jié)果示意圖
本文采用兩條鏈路并發(fā)傳輸視頻,吞吐量對比如圖6所示。圖6(a)對多路徑與單路徑傳輸吞吐量進行對比,可以發(fā)現(xiàn)多路徑傳輸可以獲得較高的吞吐量;圖6(b)黑色實線表示自適應(yīng)網(wǎng)絡(luò)編碼方案總吞吐量,深灰色虛線表示管道網(wǎng)絡(luò)編碼方案MPTCPPNC總吞吐量,淺灰色虛線表示無網(wǎng)絡(luò)編碼方案總吞吐量。從圖中可以看出,自適應(yīng)網(wǎng)絡(luò)編碼方案相比于無網(wǎng)絡(luò)編碼方案能夠獲得較高的吞吐量。由于采用了網(wǎng)絡(luò)編碼,接收端只要接收足量的數(shù)據(jù)包就可以解碼出原始的數(shù)據(jù)包。而不采用網(wǎng)絡(luò)編碼算法時,由于接收端存在亂序現(xiàn)象,可能產(chǎn)生隊頭阻塞現(xiàn)象,使得發(fā)送方降低發(fā)送速率,從而導(dǎo)致吞吐量的不合理的下降。而本文提出的自適應(yīng)網(wǎng)絡(luò)編碼方案相比管道網(wǎng)絡(luò)編碼方案,吞吐量有一定的提升,兩者變化趨勢相同,而自適應(yīng)網(wǎng)絡(luò)編碼方案能夠快速應(yīng)對網(wǎng)絡(luò)的變化。
圖6 吞吐量對比圖
傳輸完成時間隨數(shù)據(jù)包個數(shù)變化如圖7所示,其中黑色實線表示采用自適應(yīng)網(wǎng)絡(luò)編碼方案,灰色虛線表示不采用網(wǎng)絡(luò)編碼方案。從圖中可以看出,隨著傳輸?shù)臄?shù)據(jù)包個數(shù)增加,采用自適應(yīng)網(wǎng)絡(luò)編碼方案完成視頻傳輸所需要的時間較小,而當數(shù)據(jù)包個數(shù)較少時,不采用網(wǎng)絡(luò)編碼方案所需傳輸時間較小,因為編碼存在一定時延。
圖7 傳輸完成時間隨數(shù)據(jù)包個數(shù)變化圖
接收方緩存時間對比如圖8所示,其中黑色實線表示采用自適應(yīng)網(wǎng)絡(luò)編碼方案、深灰色虛線表示不采用網(wǎng)絡(luò)編碼方案、淺灰色虛線表示管道網(wǎng)絡(luò)編碼。從圖中可以看出,采用自適應(yīng)網(wǎng)絡(luò)編碼方案相比不采用網(wǎng)絡(luò)編碼算法能夠更快地獲得較大的緩存大小。自適應(yīng)網(wǎng)絡(luò)編碼在7 s左右達到最大值(本文緩沖區(qū)容量設(shè)置為50 s),管道網(wǎng)絡(luò)編碼在9 s左右達到最大值,而不采用網(wǎng)絡(luò)編碼方案在12 s左右達到緩沖最大值,之后緩沖區(qū)大小一直保持在50 s左右。
圖8 接收方緩存時間對比圖
本文主要研究了異構(gòu)網(wǎng)絡(luò)環(huán)境下多路徑并發(fā)傳輸問題,針對異構(gòu)無線網(wǎng)絡(luò)環(huán)境中多路徑并發(fā)傳輸存在的數(shù)據(jù)包亂序問題,提出了一種基于自適應(yīng)網(wǎng)絡(luò)編碼的異構(gòu)無線鏈路并發(fā)傳輸控制算法。首先,強化學習模塊通過智能體與環(huán)境的不斷交互學習出最優(yōu)的編碼策略,獲取最優(yōu)編碼分組大小和冗余大小。基于最優(yōu)的編碼策略對數(shù)據(jù)包進行編碼傳輸,接收方不斷接收編碼的數(shù)據(jù)包,然后對數(shù)據(jù)包進行解碼。最后,通過Opnet網(wǎng)絡(luò)仿真數(shù)據(jù)對本文所提方法進行仿真,相比無網(wǎng)絡(luò)編碼方案以及管道網(wǎng)絡(luò)編碼方案,本文所提的自適網(wǎng)絡(luò)編碼算法能夠獲取更高的吞吐量。仿真結(jié)果表明,相比管道網(wǎng)絡(luò)編碼方案提高了10%左右的吞吐量,通過冗余編碼解決了數(shù)據(jù)包的亂序問題,從而有效提升網(wǎng)絡(luò)吞吐量,同時可以快速填滿視頻緩沖區(qū),一直維持較高的緩沖時間。本文采用的網(wǎng)絡(luò)編碼算法沒有考慮數(shù)據(jù)包內(nèi)容之間的關(guān)聯(lián)性,未來可以與視頻編碼相結(jié)合,進一步提高編碼效率。