章廣梅,張建豐,王煒發(fā),李 勇
(中國電子科技集團(tuán)公司第七研究所,廣州 510310)
隨著通信及網(wǎng)絡(luò)技術(shù)的發(fā)展,用戶終端設(shè)備往往配置了多個(gè)網(wǎng)絡(luò)接口,以支持不同的網(wǎng)絡(luò)接入技術(shù)。與此同時(shí),隨著虛擬現(xiàn)實(shí)、實(shí)時(shí)直播等新技術(shù)的發(fā)展,用戶對(duì)高網(wǎng)絡(luò)帶寬和低端到端傳輸時(shí)延的需求越來越高。為了實(shí)現(xiàn)多鏈路傳輸,互聯(lián)網(wǎng)工程任務(wù)組(The Internet Engineering Task Force,IETF)提出了多路徑傳輸控制協(xié)議(Multipath Transmission Control Protocol,MPTCP)。MPTCP協(xié)議作為傳統(tǒng)傳輸控制協(xié)議(Transmission Control Protocol,TCP)的擴(kuò)展,與現(xiàn)有的網(wǎng)絡(luò)架構(gòu)和協(xié)議兼容,向上仍然為應(yīng)用層提供TCP套接字,向下采用標(biāo)準(zhǔn)TCP協(xié)議進(jìn)行子流的數(shù)據(jù)傳輸,為用戶提供了透明的多路徑利用能力。與只使用單路徑進(jìn)行數(shù)據(jù)傳輸?shù)腡CP協(xié)議相比,使用MPTCP協(xié)議進(jìn)行多路徑傳輸?shù)闹饕獌?yōu)勢有:聚合每個(gè)接口的帶寬,提高了傳輸帶寬;應(yīng)用于無線網(wǎng)絡(luò)時(shí),可在用戶移入或移出覆蓋范圍時(shí)添加或刪除鏈接,而不會(huì)中斷端到端的TCP連接;終端可根據(jù)業(yè)務(wù)需求和網(wǎng)絡(luò)狀況,選擇合適的一個(gè)或多個(gè)網(wǎng)絡(luò)接口進(jìn)行數(shù)據(jù)傳輸,對(duì)動(dòng)態(tài)變化的接口特性有更好的適應(yīng)能力。基于以上優(yōu)勢,MPTCP協(xié)議在多路徑傳輸中具有重要的意義,并已應(yīng)用于多種網(wǎng)絡(luò)場景。
但是,在某些異構(gòu)多鏈路網(wǎng)絡(luò)環(huán)境下,由于不同鏈路之間在帶寬、往返時(shí)延(Round-Trip Time,RTT)、丟包率等服務(wù)指標(biāo)上存在較大的差異,每條鏈路的傳輸效率各不相同,如果MPTCP調(diào)度策略不考慮異構(gòu)網(wǎng)絡(luò)下各種復(fù)雜因素的影響依然進(jìn)行理想情況下的調(diào)度,會(huì)面臨隊(duì)頭阻塞、帶寬利用率低下、應(yīng)用延遲增高、吞吐量下降等諸多問題,直接導(dǎo)致MPTCP傳輸性能的下降。在調(diào)度策略與網(wǎng)絡(luò)環(huán)境嚴(yán)重不匹配的情況下,基于多鏈路的MPTCP傳輸性能甚至?xí)陀诨趩捂溌返腡CP傳輸性能。因此,如何制定合理的調(diào)度策略,對(duì)MPTCP數(shù)據(jù)包進(jìn)行調(diào)度,使多鏈路傳輸為用戶提供更高的帶寬、更低的端到端時(shí)延并最大化網(wǎng)絡(luò)資源利用率成為網(wǎng)絡(luò)通信領(lǐng)域重要的課題。
近年來,國內(nèi)外研究者致力于從多個(gè)方面優(yōu)化MPTCP的數(shù)據(jù)調(diào)度,利用啟發(fā)式方法或強(qiáng)化學(xué)習(xí)算法等,提出了不少優(yōu)秀的MPTCP調(diào)度方法[1-3]。本文首先介紹了MPTCP的基本功能和數(shù)據(jù)調(diào)度中面臨的主要問題,然后從調(diào)度策略針對(duì)的不同優(yōu)化目標(biāo)著手,系統(tǒng)地整理和比較了近年來關(guān)于MPTCP非對(duì)稱多鏈路傳輸調(diào)度方法的相關(guān)工作,對(duì)其擬解決的主要問題和研究方法進(jìn)行了對(duì)比分析,最后對(duì)各個(gè)方法進(jìn)行了總結(jié)。
MPTCP的設(shè)計(jì)必須遵守應(yīng)用程序的兼容性和網(wǎng)絡(luò)的兼容性。其中,應(yīng)用程序的兼容性是指只要可以運(yùn)行在TCP環(huán)境下,就可以在沒有任何修改的情況下,運(yùn)行于MPTCP環(huán)境;網(wǎng)絡(luò)的兼容是指MPTCP兼容其他協(xié)議。MPTCP位于傳輸層和應(yīng)用層之間,負(fù)責(zé)為應(yīng)用層提供標(biāo)準(zhǔn)TCP接口以及各個(gè)TCP子流的管理。MPTCP的基本功能有路徑管理、數(shù)據(jù)包調(diào)度、子流接口和擁塞控制,它們之間的關(guān)系如圖1所示。
圖1 MPTCP處理流程
數(shù)據(jù)調(diào)度機(jī)制是MPTCP的一個(gè)關(guān)鍵組件,數(shù)據(jù)調(diào)度算法的性能直接影響到MPTCP的傳輸性能。尤其是在鏈路性能指標(biāo)差異較大的異構(gòu)網(wǎng)絡(luò)環(huán)境下,MPTCP進(jìn)行多路徑數(shù)據(jù)傳輸會(huì)面臨隊(duì)頭阻塞、帶寬利用率低下、應(yīng)用延遲增高、吞吐量下降等諸多問題,直接導(dǎo)致傳輸性能下降。
為了保證數(shù)據(jù)可靠傳輸,MPTCP和傳統(tǒng)的TCP協(xié)議相同,需要將亂序的數(shù)據(jù)包先存儲(chǔ)在MPTCP接收端的緩沖區(qū)內(nèi),直到可以使其重新排序的數(shù)據(jù)包到達(dá)才將它們一起提交給上層應(yīng)用。然而,在異構(gòu)網(wǎng)絡(luò)環(huán)境下,同時(shí)使用的多條鏈路往往帶寬、時(shí)延各項(xiàng)指標(biāo)都不同[4],因此在發(fā)送端按順序調(diào)度的各個(gè)數(shù)據(jù)包無法按照順序到達(dá)接收端,如果某條鏈路未確認(rèn)其數(shù)據(jù)包,那么MPTCP的發(fā)送窗口將停止滑動(dòng),導(dǎo)致所有MPTCP發(fā)送鏈路阻塞,稱為隊(duì)頭阻塞(Head-of-Line Blocking,HoL)問題。隊(duì)頭阻塞問題是MPTCP接收端無序緩沖區(qū)增長惡化后的結(jié)果,會(huì)導(dǎo)致吞吐量下降,嚴(yán)重影響MPTCP的傳輸性能。在異構(gòu)網(wǎng)絡(luò)環(huán)境下,鏈路之間的差異越大,MPTCP受隊(duì)頭阻塞問題影響,傳輸性能的下降也越嚴(yán)重。雖然可以通過增大接收端緩沖區(qū)來緩解隊(duì)頭阻塞問題,但這樣既消耗了資源也不能為實(shí)時(shí)的數(shù)據(jù)傳輸帶來性能提升。
目前在Linux內(nèi)核中實(shí)現(xiàn)的三種MPTCP數(shù)據(jù)包調(diào)度算法為輪詢算法、最小傳輸時(shí)延算法(minimum Round-Trip Time,MinRTT)和冗余算法。調(diào)度算法會(huì)顯著影響MPTCP傳輸性能:輪詢算法將應(yīng)用層傳入的數(shù)據(jù)分為一個(gè)個(gè)數(shù)據(jù)包,以輪詢的方式將數(shù)據(jù)包分配給各個(gè)可用子流進(jìn)行發(fā)送;MinRTT算法依據(jù)每個(gè)可用子流的往返時(shí)延大小順序來分配數(shù)據(jù)包,優(yōu)先給往返時(shí)延最小的子流分配數(shù)據(jù)包,直至數(shù)據(jù)包填滿了該子流的擁塞窗口,然后將數(shù)據(jù)包分配給往返時(shí)延次小的子流;冗余算法將需要發(fā)送的數(shù)據(jù)包復(fù)制多份,分配給每一個(gè)可用的子流,提高了傳輸?shù)聂敯粜圆⑶医档土藗鬏敃r(shí)延,但發(fā)送了大量冗余的數(shù)據(jù)包,增大了網(wǎng)絡(luò)負(fù)載。
隨著網(wǎng)絡(luò)環(huán)境日益復(fù)雜,網(wǎng)絡(luò)服務(wù)質(zhì)量要求日益增高,這三種數(shù)據(jù)包調(diào)度算法難以滿足復(fù)雜的異構(gòu)網(wǎng)絡(luò)環(huán)境和應(yīng)用場景。研究者針對(duì)不同的應(yīng)用場景和優(yōu)化目標(biāo),提出了多種MPTCP數(shù)據(jù)包調(diào)度算法。
由于鏈路之間的質(zhì)量差異,高質(zhì)量鏈路發(fā)送的數(shù)據(jù)包需要在接收端緩沖區(qū)等待低質(zhì)量鏈路的數(shù)據(jù)包到達(dá),然后進(jìn)行重新排序。頻繁的數(shù)據(jù)包重新排序?qū)?dǎo)致MPTCP性能的下降。如表1所示,為了減少數(shù)據(jù)包的重新排序,現(xiàn)有方法通常是基于不同的指標(biāo)預(yù)測數(shù)據(jù)包到達(dá)接收端的時(shí)間來確定如何在發(fā)送端進(jìn)行數(shù)據(jù)包的調(diào)度,使得所有數(shù)據(jù)包盡可能有序地到達(dá)接收端,從而避免數(shù)據(jù)包的重新排序。
表1 減少數(shù)據(jù)包重新排序的方案
表1(續(xù))
很多MPTCP數(shù)據(jù)調(diào)度算法以提升吞吐量為目標(biāo),這適用于較長的數(shù)據(jù)密集型流(例如繁重的大象流),因?yàn)閭鬏斶@些數(shù)據(jù)流,性能通常受吞吐量限制。然而,相對(duì)應(yīng)的細(xì)流(Thin Flow)作為交互應(yīng)用程序(例如在線游戲、SSH和控制連接)的主要來源,是長期運(yùn)行的連接,每個(gè)往返時(shí)間僅有幾個(gè)數(shù)據(jù)包。這些細(xì)流通常具有嚴(yán)格的等待時(shí)間要求,不同于吞吐量敏感的應(yīng)用程序。因此,如表2所示,也有很多研究者針對(duì)時(shí)延敏感的應(yīng)用場景,通過減少數(shù)據(jù)包到達(dá)接收端的時(shí)間來優(yōu)化MPTCP的傳輸性能。
表2 減少數(shù)據(jù)包到達(dá)時(shí)間的方案
MPTCP在異構(gòu)網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)傳輸時(shí),當(dāng)鏈路之間質(zhì)量差異較大時(shí)很容易出現(xiàn)快鏈路等待慢鏈路,導(dǎo)致其利用率不足甚至低于單路徑TCP傳輸帶寬的問題。如表3所示,研究者們從此角度出發(fā),以提高快鏈路利用率為目標(biāo),以此來優(yōu)化MPTCP在異構(gòu)網(wǎng)絡(luò)中的傳輸性能。
表3 提高快鏈路利用率的方案
隨著近年來計(jì)算能力的提高、機(jī)器學(xué)習(xí)和人工智能領(lǐng)域的發(fā)展,將機(jī)器學(xué)習(xí)技術(shù)用于計(jì)算機(jī)網(wǎng)絡(luò)優(yōu)化研究的工作越來越多,其中,以強(qiáng)化學(xué)習(xí)(Reinforcement Learning,RL)為主的機(jī)器學(xué)習(xí)算法能夠有效地解決連續(xù)決策問題,受到了研究者們的廣泛關(guān)注[30]。文獻(xiàn)[31-32]將卷積神經(jīng)網(wǎng)絡(luò)與傳統(tǒng)RL中的Q-learning[33]法相結(jié)合,提出了深度Q網(wǎng)絡(luò)(Deep Q Network,DQN)模型,用于處理基于視覺感知的控制任務(wù)?;谏疃葟?qiáng)化學(xué)習(xí)(Deep Reinforcement Learning,DRL)的MPTCP數(shù)據(jù)包調(diào)度框架如圖2所示,盡管相關(guān)研究還在起步階段,但如表4所示,已取得了優(yōu)于啟發(fā)式數(shù)據(jù)包調(diào)度算法的成果。
圖2 基于RL的MPTCP傳輸模型框架
表4 與強(qiáng)化學(xué)習(xí)相結(jié)合的方案
隨著MPTCP在異構(gòu)網(wǎng)絡(luò)中應(yīng)用的增加以及5G、強(qiáng)化學(xué)習(xí)、SDN等新興技術(shù)的發(fā)展,人們對(duì)網(wǎng)絡(luò)服務(wù)的需求標(biāo)準(zhǔn)會(huì)越來越高,范圍會(huì)越來越廣,而目前MPTCP數(shù)據(jù)調(diào)度與這些新技術(shù)的結(jié)合還不夠成熟,未來還需要進(jìn)一步加強(qiáng)多路徑傳輸優(yōu)化和新興技術(shù)的融合。
3GPP提出了 5G 的 3 個(gè)典型應(yīng)用場景,即增強(qiáng)移動(dòng)寬帶、海量機(jī)器通信和超高可靠低時(shí)延通信。在此背景下的多路徑傳輸?shù)难芯恐攸c(diǎn)在于更快的下載、更低的數(shù)據(jù)傳輸成本以及不同接口之間的無縫切換,尤其是無線接口(例如WiFi和蜂窩網(wǎng)絡(luò))。例如,為了滿足高帶寬、低時(shí)延的應(yīng)用需求,與5G相結(jié)合的MPTCP調(diào)度算法的一個(gè)優(yōu)化方向是實(shí)現(xiàn)高速率和低時(shí)延的雙重目標(biāo);為了滿足海量設(shè)備同時(shí)聯(lián)網(wǎng)的要求,MPTCP調(diào)度算法也必須考慮到能耗消耗的問題,如何權(quán)衡低能耗需求與海量連接密度需求之間的關(guān)系[40],實(shí)現(xiàn)無線設(shè)備的效用最大化也是未來MPTCP調(diào)度算法優(yōu)化的一大挑戰(zhàn)。隨著 5G 網(wǎng)絡(luò)的普及,在大帶寬和低時(shí)延業(yè)務(wù)實(shí)現(xiàn)過程中如何應(yīng)用MPTCP將是一個(gè)系統(tǒng)級(jí)的研究熱點(diǎn)。
與啟發(fā)式算法只能依靠固定的網(wǎng)絡(luò)參數(shù)進(jìn)行數(shù)據(jù)包調(diào)度不同,基于強(qiáng)化學(xué)習(xí)的MPTCP數(shù)據(jù)包調(diào)度可以通過獲取當(dāng)前環(huán)境中的有用信息進(jìn)行學(xué)習(xí)。相比于傳統(tǒng)的啟發(fā)式算法,基于深度強(qiáng)化學(xué)習(xí)的數(shù)據(jù)包調(diào)度算法可以充分考慮同構(gòu)和異構(gòu)網(wǎng)絡(luò)環(huán)境的性質(zhì)、權(quán)衡多種服務(wù)質(zhì)量指標(biāo)并且適應(yīng)動(dòng)態(tài)變化的網(wǎng)絡(luò)環(huán)境?;谏疃葟?qiáng)化學(xué)習(xí)的MPTCP數(shù)據(jù)包調(diào)度優(yōu)化研究還在起步階段,盡管已取得了一些優(yōu)于啟發(fā)式數(shù)據(jù)包調(diào)度算法的成果,但如何設(shè)計(jì)合理的獎(jiǎng)勵(lì)函數(shù)、加快模型收斂等也是MPTCP調(diào)度算法優(yōu)化的挑戰(zhàn)。隨著深度學(xué)習(xí)算法及智能硬件的發(fā)展,強(qiáng)化學(xué)習(xí)同MPTCP的結(jié)合是多路徑傳輸調(diào)度研究的重要趨勢和熱點(diǎn)。
大多數(shù)調(diào)度程序只使用端到端路徑屬性(例如延遲和帶寬)來制定調(diào)度決策,然而,底層鏈路的動(dòng)態(tài)變化以及上層應(yīng)用對(duì)網(wǎng)絡(luò)服務(wù)指標(biāo)的不同需求等這些因素都會(huì)給端到端的多路徑傳輸中的數(shù)據(jù)調(diào)度帶來影響。因此,只依靠傳統(tǒng)的傳輸層信息無法最大限度地發(fā)揮多鏈路傳輸?shù)膬?yōu)勢。如何通過結(jié)合其他層的相關(guān)參數(shù)進(jìn)行有效利用,進(jìn)一步提升MPTCP的傳輸性能是調(diào)度算法重要優(yōu)化方向。利用物理層、鏈路層、網(wǎng)絡(luò)層以及應(yīng)用層的相關(guān)信息,通過跨層調(diào)度來提升多路徑傳輸?shù)男阅苁嵌嗦窂絺鬏斦{(diào)度研究的重要手段和趨勢。