盧光全 李建波 呂志強(qiáng)
(青島大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院 山東 青島 266071)
隨著互聯(lián)網(wǎng)規(guī)模和網(wǎng)絡(luò)應(yīng)用的不斷增加,網(wǎng)絡(luò)擁塞現(xiàn)象日益顯著。盡管高帶寬的網(wǎng)絡(luò)鏈路能夠在一定程度上滿足網(wǎng)絡(luò)服務(wù)的需求,提高吞吐量和降低延遲等,但更高端的硬件資源價(jià)格昂貴且沒有從本質(zhì)上解決網(wǎng)絡(luò)擁塞問題。更可行的是對高層的擁塞控制協(xié)議進(jìn)行設(shè)計(jì)或改進(jìn)。隨著計(jì)算機(jī)網(wǎng)絡(luò)路由協(xié)議算法的不斷創(chuàng)新,許多網(wǎng)絡(luò)擁塞控制協(xié)議被提出[1-3]。其中TCP NewReno擁塞控制協(xié)議是業(yè)界的主流,但由于其基于規(guī)則的設(shè)計(jì)模式,它在動態(tài)變化的網(wǎng)絡(luò)環(huán)境中未能更好地均衡吞吐量和時(shí)延。在網(wǎng)絡(luò)構(gòu)建的過程中上述規(guī)則被定義為“事件-動作”,即在面對丟包或者擁塞時(shí)此類網(wǎng)絡(luò)協(xié)議只能根據(jù)單一的映射關(guān)系選擇固定“動作”,盡管這一“動作”會降低網(wǎng)絡(luò)吞吐量等性能指標(biāo)。這些網(wǎng)絡(luò)協(xié)議也未能根據(jù)網(wǎng)絡(luò)的過去經(jīng)驗(yàn)對擁塞窗口做出動態(tài)的自適應(yīng)調(diào)整,僅僅是在特定場景和特定假設(shè)下達(dá)到網(wǎng)絡(luò)性能的次優(yōu)化。
基于規(guī)則的協(xié)議主要存在兩個(gè)問題:
(1) 當(dāng)網(wǎng)絡(luò)環(huán)境發(fā)生變化時(shí),這些基于規(guī)則的協(xié)議不能動態(tài)地對新的網(wǎng)絡(luò)環(huán)境更好地適應(yīng)。即不同的網(wǎng)絡(luò)環(huán)境存在不同的帶寬、延遲和網(wǎng)絡(luò)拓?fù)?。因?適用于特定網(wǎng)絡(luò)下的TCP擁塞控制協(xié)議很難甚至無法在另一個(gè)網(wǎng)絡(luò)中起作用。
(2) 在構(gòu)建網(wǎng)絡(luò)的時(shí)候,人為地建立標(biāo)準(zhǔn)性的假設(shè),在這些假設(shè)之上成立規(guī)則。
擁塞控制算法在保證應(yīng)用數(shù)據(jù)進(jìn)行可靠傳輸中起著重要的作用。但是,網(wǎng)絡(luò)環(huán)境是復(fù)雜且動態(tài)變化的,鏈路的信息具有非透明性,這對設(shè)計(jì)擁塞控制算法提出了更高的挑戰(zhàn)。如圖1所示,通信雙方的通信鏈路帶寬不均衡。當(dāng)以1 Mbit/s從S向R發(fā)送數(shù)據(jù)時(shí),超過鏈路所提供的最大帶寬,在M處會發(fā)生擁塞,導(dǎo)致網(wǎng)絡(luò)性能變差甚至崩塌。此時(shí)S就會減小擁塞窗口,降低其發(fā)送速率。NewReno遇到此類問題時(shí)執(zhí)行固定的AIMD規(guī)則,在網(wǎng)絡(luò)出現(xiàn)擁塞時(shí),擁塞窗口的大小默認(rèn)縮減至原始值的1/2,這種設(shè)計(jì)浪費(fèi)了網(wǎng)絡(luò)資源,從而嚴(yán)重降低了網(wǎng)絡(luò)的性能。
圖1 鏈路帶寬不均衡
深度強(qiáng)化學(xué)習(xí)通過挖掘網(wǎng)絡(luò)歷史經(jīng)驗(yàn)為處理網(wǎng)絡(luò)擁塞提供了新模式。TRL-CC可以有效地克服上述問題,從而學(xué)習(xí)到一個(gè)較成功的策略,最終實(shí)現(xiàn)智能化擁塞控制。TRL-CC通過利用歷史經(jīng)驗(yàn)實(shí)現(xiàn)擁塞控制智能化和擺脫基于規(guī)則的模式。在這種情況下,每個(gè)發(fā)送方作為一個(gè)代理,代理與網(wǎng)絡(luò)環(huán)境直接進(jìn)行交互,代理不需要了解網(wǎng)絡(luò)的全部信息,它只需要觀測網(wǎng)絡(luò)環(huán)境的狀態(tài)(例如:往返時(shí)間(RTT)、吞吐量、擁塞窗口等)。一次TCP會話建立到會話結(jié)束稱為一個(gè)片段。在一個(gè)片段內(nèi)的每個(gè)時(shí)間步,代理通過接收網(wǎng)絡(luò)環(huán)境的狀態(tài)選擇一個(gè)合適的動作,此時(shí)的動作會被反饋給環(huán)境并且影響環(huán)境的下個(gè)狀態(tài),同時(shí)代理將得到執(zhí)行這一動作帶來的回報(bào),目的是最大化未來折扣累積回報(bào)。
通過上述對傳統(tǒng)TCP擁塞控制問題的描述,本文提出一種基于深度強(qiáng)化學(xué)習(xí)的智能化擁塞控制方案TRL-CC。盡管沒有必要說明,TRL-CC建立在NewReno之上。對TRL-CC研究的主要貢獻(xiàn)如下:
(1) TRL-CC利用時(shí)序卷積網(wǎng)絡(luò)對歷史經(jīng)驗(yàn)進(jìn)行時(shí)序上因果關(guān)系處理,并結(jié)合強(qiáng)化學(xué)習(xí)選取合適的動作對擁塞窗口進(jìn)行調(diào)整。據(jù)我們了解,盡管在這之前存在基于強(qiáng)化學(xué)習(xí)的擁塞控制方案,同時(shí)它們也利用歷史經(jīng)驗(yàn)學(xué)習(xí)網(wǎng)絡(luò)環(huán)境以達(dá)到目標(biāo)(例如:高吞吐量、低延遲等)。但是,它們僅僅是把過去經(jīng)驗(yàn)直接作為輸入,未考慮歷史經(jīng)驗(yàn)中存在的隱式關(guān)系。利用當(dāng)前的網(wǎng)絡(luò)狀況跟過去一段時(shí)間內(nèi)的網(wǎng)絡(luò)情況有著密切聯(lián)系這一隱式條件,TRL-CC可以學(xué)習(xí)到更優(yōu)的策略來實(shí)現(xiàn)智能化的擁塞控制。所以該方案是首次利用歷史經(jīng)驗(yàn)在時(shí)序上的因果關(guān)系并結(jié)合強(qiáng)化學(xué)習(xí)實(shí)現(xiàn)擁塞控制。
(2) TRL-CC在實(shí)現(xiàn)智能化的擁塞控制方案時(shí),對往返時(shí)間進(jìn)行量化。擁塞窗口通過結(jié)合量化往返時(shí)間進(jìn)行自適應(yīng)動態(tài)調(diào)整。
(3) 本文考慮到環(huán)境執(zhí)行動作到代理收到執(zhí)行這一動作的回報(bào)存在延遲。所以,TRL-CC在學(xué)習(xí)過程中對Q函數(shù)的更新做了修改。代理用t+1時(shí)刻的回報(bào)代替t時(shí)刻的回報(bào)。
(4) TRL-CC通過NS-3[4]仿真,并且與TCP NewReno以及基于強(qiáng)化學(xué)習(xí)的擁塞控制(RL-CC)方案作比較,表明TRL-CC能夠更好地學(xué)習(xí)網(wǎng)絡(luò)狀況,同時(shí)在性能方面較NewReno和RL-CC有著顯著的提升。
在有線和無線網(wǎng)絡(luò)中,TCP是被廣泛探討的話題。同時(shí),擁塞控制是網(wǎng)絡(luò)中最基本的問題。多年來,許多端到端擁塞控制理論被提出。例如,Reno[5]根據(jù)返回的確認(rèn)字符(ACK)信息調(diào)整擁塞窗口,在低帶寬、低時(shí)延的網(wǎng)絡(luò)中可以發(fā)揮出優(yōu)勢。但是在高帶寬延時(shí)網(wǎng)絡(luò)中,RTT很大,擁塞窗口增長慢,導(dǎo)致帶寬利用率降低。Cubic[6]使用cubic函數(shù)調(diào)整擁塞窗口,其優(yōu)點(diǎn)在于只要沒檢測到丟包,就不會主動降低發(fā)送速率,可以最大程度地利用網(wǎng)絡(luò)剩余帶寬。但這也將會成為其短板。Vegas[7]將時(shí)延作為擁塞出現(xiàn)的信號。如果RTT超過了預(yù)期的值則開始減小擁塞窗口。還有包括BBR[8]、Compound TCP[9]等端到端的擁塞控制協(xié)議。這些協(xié)議都有各自獨(dú)特的設(shè)計(jì),它們使用固定的函數(shù)或者規(guī)則調(diào)整擁塞窗口的變化。對于上述傳統(tǒng)的擁塞控制協(xié)議,固定規(guī)則策略限制了它們適應(yīng)現(xiàn)代網(wǎng)絡(luò)的復(fù)雜性和快速變化。更重要的是,這些擁塞控制協(xié)議不能從歷史經(jīng)驗(yàn)中學(xué)習(xí)。
同時(shí),研究者們已經(jīng)利用機(jī)器學(xué)習(xí)方法來解決傳統(tǒng)TCP協(xié)議的局限性。例如,Remy[10]使用機(jī)器學(xué)習(xí)的方式生成擁塞控制算法模型,針對不同網(wǎng)絡(luò)狀態(tài)采用不同的方式調(diào)整擁塞窗口。它通過離線方式進(jìn)行訓(xùn)練,通過輸入各種參數(shù)(如瓶頸鏈路帶寬、時(shí)延等),反復(fù)調(diào)節(jié)目標(biāo)函數(shù)使其達(dá)到最優(yōu),最終會生成一個(gè)網(wǎng)絡(luò)狀態(tài)到調(diào)節(jié)方式的映射表。當(dāng)訓(xùn)練的網(wǎng)絡(luò)模型假設(shè)與實(shí)際網(wǎng)絡(luò)的假設(shè)一致時(shí),Remy可以很好地工作。但是當(dāng)實(shí)際網(wǎng)絡(luò)假設(shè)發(fā)生改變時(shí),Remy的性能會下降。它的映射表是在訓(xùn)練時(shí)計(jì)算得出的,與傳統(tǒng)的TCP及其變種一樣,它無法適應(yīng)不斷變化的網(wǎng)絡(luò)環(huán)境,每當(dāng)網(wǎng)絡(luò)環(huán)境發(fā)生變化時(shí),它必須重新計(jì)算映射表。PCC[11]摒棄基于規(guī)則的模式,可以快速適應(yīng)網(wǎng)絡(luò)中不斷變化的條件。它不斷地通過“微型實(shí)驗(yàn)”積極尋找更優(yōu)的發(fā)送速率。但是,貪婪地尋找更優(yōu)的發(fā)送速率會讓其陷入局部最優(yōu)的地步。并且,它的性能需要依靠準(zhǔn)確的時(shí)鐘。不論是Remy還是PCC,它們都把網(wǎng)絡(luò)環(huán)境視為黑匣子,拋棄了傳統(tǒng)的基于規(guī)則的設(shè)計(jì)模式,專注于尋找可以達(dá)到最好性能的發(fā)送速率改變規(guī)則。但是,它們都沒有利用先前的經(jīng)驗(yàn)。
近來,許多研究者利用強(qiáng)化學(xué)習(xí)和網(wǎng)絡(luò)擁塞控制結(jié)合,這一結(jié)果能夠更好地解決TCP擁塞控制問題。QTCP[12]是把Q-learning與擁塞控制結(jié)合得到的在線學(xué)習(xí)方案。它可以較好地適應(yīng)新的網(wǎng)絡(luò)環(huán)境,擺脫傳統(tǒng)的基于規(guī)則的設(shè)計(jì)原理,從經(jīng)驗(yàn)中學(xué)習(xí)網(wǎng)絡(luò)狀況以獲得更好的性能(例如,高吞吐量、低時(shí)延)。并且提出一種廣義的Kanerva編碼函數(shù)逼近算法。TCP-Drinc[13]與深度強(qiáng)化學(xué)習(xí)結(jié)合,把多個(gè)觀測狀態(tài)通過深度卷積網(wǎng)絡(luò)處理,然后加入LSTM再對特征進(jìn)行深層次的提取,最終通過一個(gè)全連接網(wǎng)絡(luò)選擇動作,來決定如何調(diào)整擁塞窗口的大小。它也是一種從過去的經(jīng)驗(yàn)中學(xué)習(xí)合適的策略以適應(yīng)網(wǎng)絡(luò)環(huán)境動態(tài)變化的擁塞控制方案。盡管QTCP和TCP-Drinc都是從過去的經(jīng)驗(yàn)中學(xué)習(xí),但都未曾考慮歷史經(jīng)驗(yàn)中的因果關(guān)系。
擁塞控制的目標(biāo)是多個(gè)發(fā)送方可以公平地共享一個(gè)瓶頸鏈路帶寬,不會引起網(wǎng)絡(luò)的崩塌。每個(gè)發(fā)送方包含一個(gè)有限大小的擁塞窗口(cwnd),維持發(fā)送數(shù)據(jù)的多少,以保證注入網(wǎng)絡(luò)的數(shù)據(jù)包不會引起網(wǎng)絡(luò)擁塞。TCP擁塞控制協(xié)議及其變種不斷地被提出。TCP NewReno通過AIMD規(guī)則來維持整擁塞窗口。AIMD主要包含三個(gè)步驟:
(1) 慢開始:cwnd=cwnd+1(每個(gè)ACK都被發(fā)送方收到)。
(2) 擁塞避免:cwnd=cwnd+1/cwnd(每個(gè)ACK都被發(fā)送方收到)。
(3) 快恢復(fù):cwnd=cwnd/2(收到三次重復(fù)ACKs)。
圖2為TCP NewReno流的擁塞窗口(包的數(shù)量)隨時(shí)間的變化。它通過AIMD規(guī)則控制擁塞窗口變化。一個(gè)TCP會話建立時(shí),發(fā)送方并不知道擁塞窗口應(yīng)該取多大的值適合當(dāng)前的網(wǎng)絡(luò)狀況,所以數(shù)據(jù)包剛注入網(wǎng)絡(luò)時(shí)擁塞窗口會快速提升到某個(gè)值((1) 慢開始),盡管這種策略被稱為慢開始,但是擁塞窗口呈指數(shù)增長。TCP設(shè)置了一個(gè)慢開始門限限制擁塞窗口無限增加。發(fā)送方根據(jù)確認(rèn)字符判斷網(wǎng)絡(luò)出現(xiàn)擁塞,進(jìn)入擁塞避免階段((2) 擁塞避免),擁塞窗口增長緩慢(在接收到每個(gè)確認(rèn)信息ACK)。直到鏈路發(fā)生丟包或發(fā)送方收到三個(gè)重復(fù)冗余ACK,進(jìn)入第三階段((3) 快恢復(fù)),跳過慢開始階段直接進(jìn)入擁塞避免。AIMD原理說明TCP過程將會收斂到一個(gè)同時(shí)滿足效率和公平性的平衡點(diǎn)上,也表明多個(gè)流在共享一個(gè)鏈路時(shí)最終能得到收斂[14]。
圖2 NewReno流擁塞窗口
當(dāng)一個(gè)網(wǎng)絡(luò)的拓?fù)浜蛥?shù)發(fā)生改變時(shí),網(wǎng)絡(luò)需要重新被規(guī)劃以充分利用瓶頸鏈路帶寬和降低往返時(shí)間。事實(shí)上,在保證充分利用帶寬和降低往返時(shí)間的前提下,本文提出基于強(qiáng)化學(xué)習(xí)的TRL-CC通過學(xué)習(xí)歷史經(jīng)驗(yàn)達(dá)到自適應(yīng)動態(tài)規(guī)劃網(wǎng)絡(luò)目的。強(qiáng)化學(xué)習(xí)包含兩個(gè)實(shí)體:代理和環(huán)境。通常情況下,深度強(qiáng)化學(xué)習(xí)用于解決馬爾可夫決策問題(MDP)。但在本文中,網(wǎng)絡(luò)內(nèi)部信息并不透明,代理不能完全了解網(wǎng)絡(luò)信息。因此,本文對網(wǎng)絡(luò)環(huán)境建模為部分可觀測馬爾可夫問題(POMDP)。
沒有先驗(yàn)知識的代理通過學(xué)習(xí)得到最優(yōu)策略π(a|st),通常情況,策略π(a|st)是通過狀態(tài)空間S到動作空間A映射,定義為:
π(a|st)S→A
(1)
代理根據(jù)當(dāng)前狀態(tài)st隨機(jī)或根據(jù)式(1)固定地選取動作at并從環(huán)境中獲得回報(bào)r(st,at),目的是最大化長期累積折扣回報(bào),被定義為:
Rt=r(st,at)+γ·Rt+1
(2)
式中:γ∈[0,1]表示折扣因子。
即使在相同的環(huán)境中,當(dāng)策略發(fā)生變化時(shí),累計(jì)回報(bào)也會發(fā)生改變。這是因?yàn)槔塾?jì)回報(bào)取決于選取的動作。此時(shí),需要計(jì)算代理在狀態(tài)st下執(zhí)行動作at后獲得的累計(jì)回報(bào),這得以從Q函數(shù)體現(xiàn),被定義為:
Qπ(st,at)=Est+1[rt+γQπ(st+1,at+1)|st,at]
(3)
在一個(gè)TCP會話建立時(shí),有許多的狀態(tài)變量可以描述網(wǎng)絡(luò)情況,例如往返時(shí)間TRT和最小往返時(shí)間TRT,min、上次發(fā)包的時(shí)間、慢開始的閾值、擁塞窗口大小、連續(xù)兩次發(fā)包的擁塞窗口的差值、平均往返時(shí)間、收到確認(rèn)信息的總和、在一個(gè)時(shí)間間隔內(nèi)接收到的平均確認(rèn)信息、網(wǎng)絡(luò)吞吐量等。選取只與代理目標(biāo)相關(guān)的特征并做預(yù)處理是必要的,因?yàn)槟芨玫亟忉屇P汀?/p>
數(shù)據(jù)包傳輸時(shí),通過最小往返時(shí)間可以估計(jì)出鏈路的傳輸時(shí)延,但是鏈路可能會發(fā)生動態(tài)變化。因此,最小延遲比vRTT=TRT,min/TRT也作為衡量網(wǎng)絡(luò)狀況特征,它表示在動態(tài)變化的鏈路中數(shù)據(jù)的傳播時(shí)延所占的比例。同時(shí),數(shù)據(jù)包的傳輸過程中需要考慮隊(duì)列延遲,把dRTT=TRT-TRT,min作為隊(duì)列延遲的估計(jì)。此外,返回確認(rèn)信息表明在一次數(shù)據(jù)傳輸過程,接收方收到數(shù)據(jù)包還是丟失數(shù)據(jù)包,一定程度上可以反映網(wǎng)絡(luò)情況,所以確認(rèn)信息(ACK)也作為一個(gè)特征。
通過上述討論,下一步定義TRL-CC的狀態(tài)空間。在一個(gè)TCP會話期間,代理對觀測狀態(tài)處理之后,我們考慮以下特征:(1) 擁塞窗口大小,用w表示;(2) 一次發(fā)包時(shí)間內(nèi)的吞吐量(tp);(3) 往返時(shí)間(TRT);(4)TRT,min和TRT之比υRTT;(5)TRT和TRT,min兩者之間的差值dRTT;(6) 發(fā)送數(shù)據(jù)包后返回的確認(rèn)字符,用τACK表示。因此,狀態(tài)空間定義為:
S=[s1,s2,…,sk]
(4)
其中st表示為:
st=[w(t),tp(t),RTT(t),υRTT(t),dRTT(t),τACK(t)]
(5)
代理選取式(5)中的s1,s2,…,sk這K個(gè)歷史經(jīng)驗(yàn)作為時(shí)序卷積網(wǎng)絡(luò)的輸入,提取時(shí)序上隱式的因果關(guān)系。最終,代理把提取的隱式特征壓成一維張量作為DQN的輸入。
代理通過在動態(tài)變化網(wǎng)絡(luò)中學(xué)習(xí)合適的策略,處理每個(gè)觀測狀態(tài)后選擇合適的動作,構(gòu)成<狀態(tài),動作>對,并將動作映射為擁塞窗口的改變。如表1所示,擁塞窗口調(diào)整的狀態(tài)空間A,共有5個(gè)動作。代理結(jié)合往返時(shí)間的量化對擁塞窗口做動態(tài)改變。本文參考文獻(xiàn)[15]對往返時(shí)間均勻量化為M個(gè)區(qū)間,如式(6)所示。
Δμ=(TRT,max-TRT,min)/M
(6)
式中:Δμ稱為乘性因子,擁塞窗口隨乘性因子做不定的改變。代理預(yù)測的任何一個(gè)動作對改變擁塞窗口滿足式(7):
表1 擁塞窗口改變規(guī)則
回報(bào)是指代理在每個(gè)時(shí)間步選取動作后作用于環(huán)境中,然后從環(huán)境中獲得的評價(jià)性響應(yīng)。回報(bào)取值通過效用函數(shù)得到映射。TRL-CC的效用函數(shù)目標(biāo)是最大化吞吐量且最小化延遲。因此,效用函數(shù)的定義如下:
Utilityt=α×log(tp(t))-βlog(RTT(t))
(8)
式中:α、β代表吞吐量、往返時(shí)間的權(quán)重,且α+β=1。式(8)表明應(yīng)該努力地最大化吞吐量的同時(shí)最小化延遲。
盡管效用函數(shù)是模型要實(shí)現(xiàn)的目標(biāo),但值得注意的是,代理僅僅采用式(8)作為回報(bào)函數(shù),代理可能持續(xù)選擇相同的動作,使得效用函數(shù)一直是最大化,但網(wǎng)絡(luò)的性能并不一直是最優(yōu)的。為了能夠更好地均衡吞吐量和往返時(shí)間。本文采用時(shí)間步t和t+TRT連續(xù)時(shí)間的效用函數(shù)值之差來定義效用函數(shù),如下:
U=Ut+TRT-Ut
(9)
表2中,ε表示兩個(gè)連續(xù)效用值差值的容忍度。當(dāng)連續(xù)的兩個(gè)效用函數(shù)值的差大于ε,代理會得到一個(gè)正的回報(bào)值,反之亦然。
表2 效用函數(shù)回報(bào)
隨著機(jī)器學(xué)習(xí)和深度學(xué)習(xí)在視頻流[16-18]、流量預(yù)測[19-20]等方面的成功發(fā)展,這促使本文利用深度學(xué)習(xí)對擁塞控制做進(jìn)一步研究,尋找一個(gè)智能化的擁塞控制方案。TRL-CC的設(shè)計(jì)如圖3所示,它可以從歷史經(jīng)驗(yàn)中隱式學(xué)習(xí)和預(yù)測未來網(wǎng)絡(luò)情況。它大致可以分為三部分:(1) 對網(wǎng)絡(luò)實(shí)行控制和決策的代理;(2) 執(zhí)行代理選擇的動作并對這些動作做出標(biāo)準(zhǔn)性評價(jià)的環(huán)境;(3) 存放歷史經(jīng)驗(yàn)的緩沖區(qū)。
圖3 TRL-CC模型
本文對傳統(tǒng)的強(qiáng)化學(xué)習(xí)策略做了改進(jìn)。首先,每過一個(gè)往返時(shí)間,緩沖區(qū)更新一次。數(shù)據(jù)以元組(st,at,rt,st+TRT)的形式存放在緩沖區(qū)中。TRL-CC利用時(shí)序卷積網(wǎng)絡(luò)提取歷史經(jīng)驗(yàn)中隱式的關(guān)系作為輸入,每次選取K個(gè)歷史經(jīng)驗(yàn)。最后,t時(shí)刻的回報(bào)經(jīng)過TRT才會被代理收到。本文考慮這一延遲,改變了Q函數(shù)的更新方式。通過這些改進(jìn),DQN可以從歷史經(jīng)驗(yàn)中更好地學(xué)習(xí)。
在定義了狀態(tài)、動作空間、回報(bào)函數(shù)和TRL-CC方案設(shè)計(jì)之后,現(xiàn)在介紹代理的設(shè)計(jì)如圖4所示。代理將時(shí)序上連續(xù)的K個(gè)歷史經(jīng)驗(yàn)作為輸入,并且輸出是動作空間中的下一個(gè)動作。
圖4 代理設(shè)計(jì)(FC:全連接層;A:動作空間)
在單獨(dú)使用強(qiáng)化學(xué)習(xí)實(shí)現(xiàn)擁塞控制時(shí),僅僅是把過去經(jīng)驗(yàn)直接作為輸入。盡管可以得到比傳統(tǒng)模型好的效果,但RL-CC卻忽略了歷史經(jīng)驗(yàn)中隱式的因果關(guān)系。文獻(xiàn)[21]中提到時(shí)序卷積網(wǎng)絡(luò)(TCN)在處理時(shí)序上的序列時(shí)是一個(gè)非常有前景的方法。在t時(shí)刻,代理從緩沖區(qū)中選取t時(shí)刻之前的K個(gè)連續(xù)的歷史經(jīng)驗(yàn)作為TCN的輸入。TCN的卷積網(wǎng)絡(luò)層層之間是有因果關(guān)系的,意味著不會“遺漏”歷史信息的情況發(fā)生。而且它使用大量的空洞卷積擴(kuò)大感受野,可獲得更長的歷史信息。網(wǎng)絡(luò)參數(shù)的丟棄概率是0.3。最后,代理通過兩個(gè)全連接網(wǎng)絡(luò)來計(jì)算最合適的動作的Q函數(shù)值。
在圖4中,代理使用全連接層網(wǎng)絡(luò)計(jì)算每個(gè)動作的Q函數(shù)值時(shí),采用的是Softmax激活函數(shù),定義如下:
代理選取最大概率的動作Ai計(jì)算對應(yīng)的Q函數(shù)值。
在實(shí)現(xiàn)擁塞控制時(shí),在每個(gè)時(shí)間步t,代理會接收到來自環(huán)境的狀態(tài)向量st,基于策略π(st)選擇動作at。并且在下一個(gè)時(shí)間t+TRT,代理收到標(biāo)量值回報(bào)r(st,at),表示在時(shí)間步t執(zhí)行動作at的回報(bào)。但是,環(huán)境執(zhí)行動作at的回報(bào)被代理在時(shí)間t+TRT收到,這表明在學(xué)習(xí)中存在延遲τ。在強(qiáng)化學(xué)習(xí)中,像這樣的延遲大多都被忽略掉。然而,對于擁塞控制來說,它對維持網(wǎng)絡(luò)穩(wěn)定有著重要的作用。出于此原因,TRL-CC在學(xué)習(xí)過程中對Q函數(shù)(式(3))的更新做了修改。代理把rt+1作為動作at的回報(bào)。因此,在時(shí)間t+1開始時(shí),修改Q函數(shù)的更新方式為:
Qπ(st,at)←rt+1+γQπ(st+2,at+2)
(10)
式中:Q函數(shù)利用神經(jīng)網(wǎng)絡(luò)進(jìn)行近似。
式中:ω表示神經(jīng)網(wǎng)絡(luò)權(quán)重,將代理得到的觀測狀態(tài)通過時(shí)序神經(jīng)網(wǎng)絡(luò)進(jìn)行處理后和權(quán)重作為神經(jīng)網(wǎng)絡(luò)的輸入,然后通過迭代和學(xué)習(xí)得到近似的Q函數(shù)。
在神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練時(shí),假設(shè)式(11)成立,由此定義損失函數(shù)為:
本文利用NS-3仿真網(wǎng)絡(luò)環(huán)境,如圖5所示,在路由器1和路由器2之間有著大小為B的頸鏈路帶寬,設(shè)置最小往返時(shí)間為80 ms,這是一種典型的啞鈴狀網(wǎng)絡(luò)模型。有N個(gè)發(fā)送方和N個(gè)接收方,多個(gè)發(fā)送方共同競爭一個(gè)瓶頸鏈路,每個(gè)發(fā)送方都是一個(gè)獨(dú)立的代理。代理每次訓(xùn)練50個(gè)片段,每個(gè)片段為800 s。如果代理在TRT時(shí)間間隔內(nèi)沒有接收到確認(rèn)字符,則會用上一時(shí)刻的觀測狀態(tài)。
圖5 網(wǎng)絡(luò)拓?fù)?/p>
為了驗(yàn)證TRL-CC的性能,選擇兩個(gè)基準(zhǔn)方案NewReno、RL-CC進(jìn)行對比。本文主要專注于吞吐量和往返時(shí)間兩方面的性能。
本節(jié)評估本文提出的TRL-CC方案的性能。首先它與傳統(tǒng)的擁塞控制算法NewReno、未考慮時(shí)序特征的基于強(qiáng)化學(xué)習(xí)的擁塞控制方案進(jìn)行對比。隨后通過實(shí)驗(yàn)分析歷史經(jīng)驗(yàn)K的取值。最后,TRL-CC不做任何改變的部署在高帶寬網(wǎng)絡(luò)進(jìn)行實(shí)驗(yàn)分析。
4.2.1TRL-CC性能
圖6是代理在進(jìn)行20個(gè)片段的訓(xùn)練后得到的擁塞窗口和往返時(shí)延以及吞吐量的變化曲線。它包含代理學(xué)習(xí)的三個(gè)過程:(1) 隨機(jī)探索;(2) 隨機(jī)學(xué)習(xí);(3) 收斂階段。擁塞窗口的變化符合式(7),在圖6(a)和圖6(b)中可以看出擁塞窗口是通過往返時(shí)延量化的。標(biāo)注①之間是隨機(jī)探索過程,代理以一定概率隨機(jī)選取動作,隨機(jī)選擇動作的概率為0.1。在代理學(xué)習(xí)的過程中隨機(jī)選擇概率會減小,但是最終它不會為零,因?yàn)槊鎸討B(tài)變化的網(wǎng)絡(luò)保持一定的概率探索環(huán)境是有必要的。標(biāo)注②之間是隨機(jī)學(xué)習(xí)過程,代理通過學(xué)習(xí)到的策略選擇合適的動作,然后結(jié)合效用函數(shù)確保代理達(dá)到收斂階段(標(biāo)注③),最終往返時(shí)延收斂到最小往返時(shí)延附近波動。
(a) 擁塞窗口的變化
(b) 往返時(shí)延的變化
(c) 吞吐量的變化圖6 TRL-CC方案性能
通過圖6(c)可以看出,盡管代理在學(xué)習(xí)過程中使得擁塞窗口自適應(yīng)減小(發(fā)包數(shù)量減少),但是吞吐量卻一直保持穩(wěn)定。這也進(jìn)一步說明TRL-CC在減小延遲的同時(shí)也能充分利用瓶頸鏈路帶寬,提高鏈路利用率。
4.2.2對比實(shí)驗(yàn)
此節(jié)主要通過從吞吐量和延遲方面進(jìn)行比較,展示TRL-CC在吞吐量和延遲方面具有良好的性能。主要以下面三個(gè)擁塞控制方法進(jìn)行比較:
(1) TCP NewReno:如今廣泛應(yīng)用的經(jīng)典擁塞控制算法之一。
(2) RL-CC:基于強(qiáng)化學(xué)習(xí)的擁塞控制方案,沒有利用歷史經(jīng)驗(yàn)在時(shí)序上的關(guān)系。將其作為TRL-CC的對比實(shí)驗(yàn)。
(3) TRL-CC:在RL-CC的基礎(chǔ)之上,考慮過去經(jīng)驗(yàn)在時(shí)序上的因果關(guān)系。即此刻的網(wǎng)絡(luò)情況與之前某段時(shí)間內(nèi)的網(wǎng)絡(luò)情況是有聯(lián)的。利用時(shí)序卷積網(wǎng)絡(luò)提取網(wǎng)絡(luò)中潛在的關(guān)系,對未來網(wǎng)絡(luò)情況做更好的規(guī)劃。
從圖7(a)可以看出,NewReno的時(shí)延上下浮動劇烈且時(shí)延較其他兩者相對較高。在圖7(b)中,NewReno的吞吐量存在波動且不能保持穩(wěn)定。這主要是因?yàn)镹ewReno中固定的AIMD規(guī)則,當(dāng)代理觀測到有包丟失時(shí),擁塞窗口減半。而另一方面,在TCP連接剛建立時(shí),RL-CC方案隨機(jī)探索階段時(shí)延波動大、收斂較慢,同時(shí)吞吐量的穩(wěn)定性比較差。TRL-CC較RL-CC可以學(xué)習(xí)到控制網(wǎng)絡(luò)行為更優(yōu)的策略,時(shí)延可以快速收斂且在最小往返時(shí)間附近波動,吞吐量保持相對穩(wěn)定。主要原因是,歷史經(jīng)驗(yàn)中存在時(shí)序上隱式關(guān)系,這種關(guān)系一旦被提取利用,代理就可以更好地結(jié)合過去經(jīng)驗(yàn)和現(xiàn)在的網(wǎng)絡(luò)情況,并對未來網(wǎng)絡(luò)情況做好規(guī)劃。
(a) 三個(gè)算法的往返時(shí)間
(b) 三個(gè)算法的吞吐量
(c) 平均往返時(shí)間
(d) 平均吞吐量圖7 TRL-CC、NewReno、RL-CC比較
通過圖7(a)和圖7(b),得到了圖7(c)和圖7(d)??梢赃M(jìn)一步看出,TRL-CC無論在時(shí)延還是吞吐量方面,它的性能較于前兩者都是最好的。這是因?yàn)樗脷v史經(jīng)驗(yàn)中潛在的因果關(guān)系,并且得以從效用函數(shù)中體現(xiàn)。TRL-CC在吞吐量方面較NewReno提升32.8%,較RL-CC提升8.5%,瓶頸帶寬鏈路得到了充分利用;較NewReno時(shí)延降低41.3%,較RL-CC時(shí)延降低12%。
TRL-CC不僅在吞吐量和延遲方面達(dá)到了較高的性能,而且相較于其他兩個(gè)方案更均衡吞吐量和時(shí)延,更加具有魯棒性。
4.2.3K取值分析
在考慮過去經(jīng)驗(yàn)時(shí),過去經(jīng)驗(yàn)選取數(shù)量(K)對擁塞控制有著很大影響。此節(jié)對歷史經(jīng)驗(yàn)K取值進(jìn)行比較,同時(shí)取不同K值的方案也與NewReno以及RL-CC作對比,結(jié)果如圖8所示。
(a) K取不同值的往返時(shí)間對比
(b) K取不同值的吞吐量對比
(c) 平均往返時(shí)間
(d) 平均吞吐量圖8 K取值不同對網(wǎng)絡(luò)影響
正如圖8(a)所示,當(dāng)K=64和K=128時(shí),延遲波動較小且在最小往返時(shí)間附近,相對較小。反觀K=16和K=32時(shí),盡管時(shí)延在NewReno和RL-CC下面浮動,但卻幾乎沒有收斂到最小往返時(shí)間附近。這種原因有兩種:(1) 在定義狀態(tài)空間時(shí),代理加入了隊(duì)列延遲這一特征;(2) 關(guān)鍵是時(shí)序卷積網(wǎng)絡(luò)處理較長時(shí)間的歷史經(jīng)驗(yàn),它能夠存儲更長時(shí)間的信息,代理可以從更豐富的信息中學(xué)習(xí),使隊(duì)列延遲一直保持較小值。另一方面,圖8(b)表示吞吐量的變化,K取值大(K=64 128),吞吐量變化保持穩(wěn)定。結(jié)果表明,歷史經(jīng)驗(yàn)K越大時(shí),TRL-CC方案的性能越優(yōu)。同時(shí),通過圖8(a)和圖8(b),TRL-CC通過效用函數(shù)均衡了吞吐量和往返時(shí)間。最后,柱狀圖(圖8(c)、圖8(d))進(jìn)一步詮釋了上述結(jié)論。
4.2.4高帶寬網(wǎng)絡(luò)
本節(jié)把在瓶頸鏈路帶寬2 Mbit/s、最小往返時(shí)間為80 ms訓(xùn)練好的模型直接部署到網(wǎng)絡(luò)瓶頸鏈路帶寬為20 Mbit/s、最小往返時(shí)間為80 ms的網(wǎng)絡(luò)中。每個(gè)片段的訓(xùn)練時(shí)間仍然是800 s。
在網(wǎng)絡(luò)發(fā)生變化時(shí),圖9表示三種擁塞控制方案的自適應(yīng)性。NewReno因基于規(guī)則的設(shè)計(jì),不能從歷史經(jīng)驗(yàn)中學(xué)習(xí),導(dǎo)致它在面對網(wǎng)絡(luò)變化時(shí)表現(xiàn)出很差的性能甚至使網(wǎng)絡(luò)出現(xiàn)崩塌。TRL-CC在面對網(wǎng)絡(luò)變化時(shí)仍然可以從歷史經(jīng)驗(yàn)中學(xué)習(xí)到最優(yōu)策略,具有更好的魯棒性。如圖9(a)所示,隨著瓶頸鏈路帶寬的增大(與2 Mbit/s相比),往返時(shí)間變小。這是由于帶寬變大時(shí)隊(duì)列延遲降低,這顯然是合理的。圖9(b)是相應(yīng)的吞吐量隨模擬時(shí)間的變化,當(dāng)歷史經(jīng)驗(yàn)K取值較大時(shí),代理在學(xué)習(xí)過程中會謹(jǐn)慎。這是因?yàn)榇砭C合“考慮”歷史經(jīng)驗(yàn),避免出現(xiàn)網(wǎng)絡(luò)性能下降。歷史經(jīng)驗(yàn)K取值越大、延遲越小且在最小往返時(shí)間附近波動;吞吐量也越穩(wěn)定。
(a) 鏈路帶寬為20 Mbit/s的往返時(shí)間
(b) 鏈路帶寬為20 Mbit/s的吞吐量
(c) 平均往返時(shí)間
(d) 平均吞吐量圖9 鏈路帶寬發(fā)生變化時(shí)性能對比
圖9(c)和圖9(d)表明,TRL-CC較NewReno吞吐量提升25.8%,較RL-CC吞吐量提升8.3%。另一方面,TRL-CC較NewReno延遲降低33%,比RL-CC降低15%。最終,在變化的網(wǎng)絡(luò)中,TRL-CC的自適應(yīng)性更好,仍然能保持最優(yōu)性能。
本文提出智能化的擁塞控制方案。不像傳統(tǒng)的基于規(guī)則的擁塞控制協(xié)議,它通過量化往返時(shí)間控制擁塞窗口自適應(yīng)動態(tài)變化。雖然RL-CC通過學(xué)習(xí)過去經(jīng)驗(yàn)對未來網(wǎng)絡(luò)進(jìn)行規(guī)劃,取得了較好的效果。但TRL-CC通過時(shí)序卷積網(wǎng)絡(luò)處理過去經(jīng)驗(yàn)在時(shí)序上存在的因果關(guān)系,這使得該方案較RL-CC更具有魯棒性,在吞吐量和往返時(shí)間方面取得更好的性能。
首先,本文在瓶頸鏈路帶寬較小的網(wǎng)絡(luò)中部署TRL-CC。TRL-CC較NewReno和RL-CC(未考慮過去經(jīng)驗(yàn)在時(shí)序上存在的因果關(guān)系)在吞吐量和延遲方面達(dá)到了更好的性能。在平均吞吐量方面,TRL-CC比NewReno提升32.8%,比RL-CC提升8.5%。同時(shí)TRL-CC的時(shí)延比NewReno降低41.3%,比RL-CC降低了12%。然后,把訓(xùn)練好的TRL-CC遷移到高帶寬網(wǎng)絡(luò)環(huán)境中,不需要再次訓(xùn)練。通過實(shí)驗(yàn)分析,TRL-CC的吞吐量比NewReno和RL-CC分別提升25.8%和8.3%;延遲降低33%和15%。最終,本文對歷史經(jīng)驗(yàn)K取值進(jìn)行探討,發(fā)現(xiàn)代理“考慮”歷史經(jīng)驗(yàn)越多時(shí),TRL-CC越可以更好地均衡吞吐量和時(shí)延。