王龍翔,董凱,李小軒,董小社,張興軍,朱正東,王宇菲,張利平
(1.西安交通大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,710049,西安;2.西安美術(shù)學(xué)院信息中心,710065,西安)
當(dāng)前,國(guó)家高性能計(jì)算環(huán)境中存儲(chǔ)資源廣域分散且隔離自治,大型計(jì)算應(yīng)用迫切需要可支持跨域統(tǒng)一訪問、廣域數(shù)據(jù)共享、存儲(chǔ)與計(jì)算協(xié)同的全局?jǐn)?shù)據(jù)空間。因此,我國(guó)擬構(gòu)建跨域虛擬數(shù)據(jù)空間,實(shí)現(xiàn)廣域安全可靠數(shù)據(jù)共享、計(jì)算與存儲(chǔ)高效協(xié)同、跨域多源數(shù)據(jù)聚合處理等關(guān)鍵科學(xué)問題,從而發(fā)揮廣域資源聚合效應(yīng),有效支撐大型計(jì)算應(yīng)用。虛擬數(shù)據(jù)空間的部署環(huán)境包括3個(gè)國(guó)家級(jí)超算中心(廣州、濟(jì)南、長(zhǎng)沙)、兩個(gè)國(guó)家網(wǎng)格南北主節(jié)點(diǎn)(中國(guó)科學(xué)院、上海)。虛擬數(shù)據(jù)空間在線存儲(chǔ)近30 PB,活躍用戶數(shù)超過6 000個(gè),長(zhǎng)期支撐數(shù)值模擬、大數(shù)據(jù)、人工智能等眾多大型計(jì)算應(yīng)用。虛擬數(shù)據(jù)空間存儲(chǔ)數(shù)據(jù)規(guī)模達(dá)到PB級(jí),其上層典型應(yīng)用包括天氣預(yù)報(bào)、全基因組關(guān)聯(lián)分析等。不同超算中心在進(jìn)行跨域節(jié)點(diǎn)數(shù)據(jù)遷移時(shí),規(guī)模通??蛇_(dá)GB級(jí)甚至TB級(jí),對(duì)網(wǎng)絡(luò)傳輸性能提出了挑戰(zhàn)。
為了實(shí)現(xiàn)虛擬數(shù)據(jù)空間可靠數(shù)據(jù)遷移,需要構(gòu)建高效的可靠網(wǎng)絡(luò)傳輸協(xié)議,而擁塞控制是實(shí)現(xiàn)高效可靠傳輸?shù)年P(guān)鍵技術(shù)。虛擬數(shù)據(jù)空間構(gòu)建于廣域網(wǎng)之上,其網(wǎng)絡(luò)環(huán)境復(fù)雜多變,盡管在過去30年中研究者提出了各種各樣的TCP擁塞控制算法(例如NewReno、Cubic等),但是這些算法普遍針對(duì)特定的網(wǎng)絡(luò)環(huán)境,只能按照預(yù)先定義的規(guī)則進(jìn)行擁塞控制,難以適應(yīng)虛擬數(shù)據(jù)空間復(fù)雜多變的網(wǎng)絡(luò)環(huán)境。
NewReno[1]和Cubic[2]使用數(shù)據(jù)包丟失來檢測(cè)擁塞,并在檢測(cè)到擁塞后降低擁塞窗口長(zhǎng)度。Vegas[3]使用延遲、而不是丟包作為擁塞信號(hào),可以解決基于丟包的擁塞控制問題。當(dāng)Vegas檢測(cè)到往返時(shí)延(RTT)超過設(shè)定值時(shí),就會(huì)開始降低擁塞窗口長(zhǎng)度。Westwood[4]改良自NewReno,基于傳輸能力的擁塞控制機(jī)制使用鏈路發(fā)送能力的預(yù)測(cè)作為擁塞控制的依據(jù),通過測(cè)量確認(rèn)字符(ACK)包來確定合適的發(fā)送速度,并以此調(diào)整窗口和慢啟動(dòng)閾值。混合擁塞控制機(jī)制組合兩種擁塞控制機(jī)制,以得到它們各自的優(yōu)勢(shì),進(jìn)而更好地進(jìn)行擁塞控制。Compound[5]、BBR[6]都屬于混合擁塞控制機(jī)制。
傳統(tǒng)擁塞控制機(jī)制使用確定的規(guī)則集對(duì)擁塞窗口及其他相關(guān)參數(shù)進(jìn)行控制,很難適應(yīng)現(xiàn)代網(wǎng)絡(luò)的復(fù)雜性和快速發(fā)展。因此,研究者提出了基于強(qiáng)化學(xué)習(xí)的擁塞控制算法。強(qiáng)化學(xué)習(xí)作為機(jī)器學(xué)習(xí)的研究熱點(diǎn),已經(jīng)廣泛應(yīng)用于無人機(jī)控制[7]、機(jī)器人控制[8]、優(yōu)化與調(diào)度[9-11]以及游戲博弈[12]等領(lǐng)域。強(qiáng)化學(xué)習(xí)的基本思想是構(gòu)造一個(gè)智能體,使智能體與環(huán)境進(jìn)行互動(dòng),通過最大化智能體從環(huán)境中獲得的累計(jì)獎(jiǎng)賞,學(xué)習(xí)到完成目標(biāo)的最優(yōu)策略。相比傳統(tǒng)擁塞控制算法,基于強(qiáng)化學(xué)習(xí)的擁塞控制算法適應(yīng)性好,能自主從網(wǎng)絡(luò)環(huán)境中學(xué)習(xí)新的擁塞控制策略。
文獻(xiàn)[13]提出了一種基于強(qiáng)化學(xué)習(xí)的算法生成擁塞控制規(guī)則,專門針對(duì)多媒體應(yīng)用優(yōu)化體驗(yàn)質(zhì)量。文獻(xiàn)[14]使用強(qiáng)化學(xué)習(xí)算法來自適應(yīng)地更改參數(shù)配置,從而提高了視頻流的體驗(yàn)質(zhì)量。文獻(xiàn)[15]提出了一種自定義的擁塞控制算法Hd-TCP,應(yīng)用深度強(qiáng)化學(xué)習(xí)從傳輸層角度處理高鐵上網(wǎng)絡(luò)頻繁切換引起的網(wǎng)絡(luò)體驗(yàn)較差的情況。文獻(xiàn)[16]利用模型輔助的深度強(qiáng)化學(xué)習(xí)框架提高了虛擬網(wǎng)絡(luò)功能的適用性。文獻(xiàn)[17]主要針對(duì)災(zāi)難性5G毫米波網(wǎng)絡(luò),通過監(jiān)測(cè)節(jié)點(diǎn)的移動(dòng)性信息和信號(hào)強(qiáng)度,并通過預(yù)測(cè)何時(shí)斷開和重新連接網(wǎng)絡(luò)來調(diào)整TCP擁塞窗口長(zhǎng)度。文獻(xiàn)[18]提出了一種基于深度學(xué)習(xí)的5G移動(dòng)邊緣計(jì)算擁塞窗口長(zhǎng)度。文獻(xiàn)[19]基于深度強(qiáng)化學(xué)習(xí),設(shè)計(jì)并開發(fā)了一種針對(duì)命名數(shù)據(jù)網(wǎng)絡(luò)的擁塞控制機(jī)制DRL-CCP。TCP-Drinc[20]是基于深度強(qiáng)化學(xué)習(xí)的無模型智能擁塞控制算法,它從過去的網(wǎng)絡(luò)狀態(tài)和經(jīng)驗(yàn)中獲得特征值,并根據(jù)這些特征值的集合調(diào)整擁塞窗口長(zhǎng)度。TCP-Drinc在吞吐量和RTT之間取得了平衡,比NewReno、Vegas等算法具有更穩(wěn)定、平均的表現(xiàn),但在吞吐量上并沒有明顯的改善。Rax算法[21]使用在線強(qiáng)化學(xué)習(xí),根據(jù)給定的獎(jiǎng)勵(lì)函數(shù)和網(wǎng)絡(luò)狀況維持最佳的擁塞窗口長(zhǎng)度。該算法丟包率較低,但對(duì)比Reno、PCC等算法,吞吐率提升較小。QTCP[22]基于Q-learning進(jìn)行擁塞控制[23],吞吐率有進(jìn)一步提升。Q-learning的核心思想是求出所有狀態(tài)-動(dòng)作對(duì)(s,a)的價(jià)值Q,Q代表了在當(dāng)前狀態(tài)s下選擇a可以獲得的回合內(nèi)預(yù)期獎(jiǎng)勵(lì)值。如果求出了所有狀態(tài)-動(dòng)作對(duì)(s,a)的價(jià)值Q,則只需每次在狀態(tài)s下選擇能使Q最大的動(dòng)作a即可實(shí)現(xiàn)最優(yōu)擁塞控制策略。然而,Q-learning算法存在學(xué)習(xí)速度慢、收斂難的問題。由于Q-learning算法旨在求出所有狀態(tài)-動(dòng)作對(duì)(s,a)的無偏Q,因此需要根據(jù)Bellman方程反復(fù)迭代才能求出Q的準(zhǔn)確值,當(dāng)Q發(fā)生輕微變化時(shí),可能導(dǎo)致訓(xùn)練過程發(fā)生反復(fù)振蕩。當(dāng)Q-learning算法的動(dòng)作空間較大時(shí),Q-learning極易收斂到局部最優(yōu)解,而基于策略梯度的強(qiáng)化學(xué)習(xí)算法則解決了Q-learning算法存在的學(xué)習(xí)速度慢、收斂難等缺陷,策略梯度算法的思想是直接優(yōu)化策略函數(shù),通過梯度上升的方式使策略函數(shù)獲得的獎(jiǎng)勵(lì)值最大。近端策略優(yōu)化(PPO2)是目前最佳的策略梯度算法之一[24],已被OpenAI公司作為默認(rèn)梯度策略算法。
有鑒于此,本文提出了基于PPO2算法的擁塞控制算法TCP-PPO2,該算法可以在學(xué)習(xí)過程快速收斂,實(shí)現(xiàn)虛擬數(shù)據(jù)空間的高效可靠數(shù)據(jù)遷移。與主流擁塞控制算法相比的結(jié)果表明,本文算法在虛擬數(shù)據(jù)空間應(yīng)用環(huán)境中可行有效。
TCP-PPO2算法框架如圖1所示。強(qiáng)化學(xué)習(xí)需要構(gòu)造環(huán)境和智能體。將虛擬數(shù)據(jù)空間網(wǎng)絡(luò)作為環(huán)境,通過觀察環(huán)境中的狀態(tài)信息,構(gòu)造智能體使用的策略函數(shù),生成最優(yōu)控制動(dòng)作,策略函數(shù)采用人工神經(jīng)網(wǎng)絡(luò)進(jìn)行擬合。智能體根據(jù)策略函數(shù)輸出的動(dòng)作對(duì)擁塞窗口長(zhǎng)度進(jìn)行調(diào)節(jié),優(yōu)化虛擬數(shù)據(jù)空間網(wǎng)絡(luò)性能。在生成動(dòng)作并與環(huán)境互動(dòng)后,智能體會(huì)從環(huán)境中收獲獎(jiǎng)勵(lì)值。智能體根據(jù)獎(jiǎng)勵(lì)值評(píng)判所選動(dòng)作的優(yōu)劣,并根據(jù)獎(jiǎng)勵(lì)值更新人工神經(jīng)網(wǎng)絡(luò)參數(shù),使策略函數(shù)能夠生成收獲獎(jiǎng)勵(lì)值更多的動(dòng)作。
圖1 TCP-PPO2算法框架Fig.1 Framework of TCP-PPO2 algorithm
根據(jù)是否求出狀態(tài)概率轉(zhuǎn)移矩陣,可將強(qiáng)化學(xué)習(xí)分為無模型和基于模型兩種類型。
基于模型算法從環(huán)境模型中交互得到樣本,根據(jù)樣本估計(jì)狀態(tài)概率轉(zhuǎn)移矩陣對(duì)環(huán)境進(jìn)行建模。獲得的樣本能夠多次使用,樣本利用率高。根據(jù)狀態(tài)概率轉(zhuǎn)移矩陣能夠更好地設(shè)計(jì)獎(jiǎng)勵(lì)值來引導(dǎo)智能體學(xué)習(xí)。但是,基于模型算法對(duì)環(huán)境的建??赡艽嬖谄?。模型一旦確立,訓(xùn)練好之后,環(huán)境出現(xiàn)新的改變就會(huì)失效,泛化能力差?;谀P退惴ǖ牡湫痛硎莿?dòng)態(tài)規(guī)劃。
無模型算法直接根據(jù)從環(huán)境交互中得到的反饋信息(獎(jiǎng)勵(lì)值)求出最優(yōu)控制策略,而不是求出狀態(tài)概率轉(zhuǎn)移矩陣。該算法泛化能力強(qiáng),但是存在學(xué)習(xí)效率低、收斂慢的問題。這是因?yàn)樵撍惴愃茖h(huán)境作為一個(gè)黑盒進(jìn)行反復(fù)試錯(cuò)求出最優(yōu)控制策略,智能體缺少足夠的指引。Q-learning[23]、PPO2[24]都是典型的無模型算法。
這兩類算法的區(qū)別在于是否能夠求出狀態(tài)概率轉(zhuǎn)移矩陣。對(duì)于本文要研究的虛擬數(shù)據(jù)空間網(wǎng)絡(luò)擁塞控制,求出狀態(tài)概率轉(zhuǎn)移矩陣難度大、代價(jià)高,而且網(wǎng)絡(luò)環(huán)境會(huì)不斷發(fā)生變化,從而導(dǎo)致需要不斷更新狀態(tài)概率轉(zhuǎn)移矩陣。因此,本文采用的是無模型算法,智能體在不了解狀態(tài)概率轉(zhuǎn)移矩陣的情況下求得最優(yōu)擁塞控制策略。
將基于強(qiáng)化學(xué)習(xí)的TCP擁塞控制過程抽象為一個(gè)可部分觀察的馬爾可夫決策過程,定義為五元組{S,A,R,P,γ}。其中:S為所有環(huán)境狀態(tài)的集合,st∈S表示在t時(shí)刻觀察到的狀態(tài),初始狀態(tài)為s0;A為可執(zhí)行動(dòng)作的集合,at∈A表示在t時(shí)刻所采取的動(dòng)作;R為獎(jiǎng)勵(lì)值函數(shù),定義為R(st,at)=E[Rt+1|st,at],表示在t時(shí)刻觀察到狀態(tài)為st、選擇動(dòng)作at后,在t+1時(shí)刻收到獎(jiǎng)勵(lì)Rt+1;P為轉(zhuǎn)移概率矩陣;γ∈[0,1]為折扣因子,是對(duì)未來得到獎(jiǎng)勵(lì)的懲罰比例,折扣因子體現(xiàn)了強(qiáng)化學(xué)習(xí)算法的設(shè)計(jì)思想,即優(yōu)先考慮能夠立刻得到的獎(jiǎng)勵(lì)值,未來得到的獎(jiǎng)勵(lì)值會(huì)按一定比例進(jìn)行衰減。
強(qiáng)化學(xué)習(xí)算法從初始狀態(tài)s0開始,根據(jù)當(dāng)前觀察到的狀態(tài)st,由策略函數(shù)π(at|st)選擇動(dòng)作at,根據(jù)狀態(tài)轉(zhuǎn)移概率P(st+1|st,at)到達(dá)新狀態(tài)st+1,從環(huán)境中得到獎(jiǎng)勵(lì)rt+1。強(qiáng)化學(xué)習(xí)的目標(biāo)是優(yōu)化策略函數(shù)使獎(jiǎng)勵(lì)期望值最大,獎(jiǎng)勵(lì)值期望定義為
(1)
式中T代表結(jié)束時(shí)刻。
強(qiáng)化學(xué)習(xí)算法需要設(shè)計(jì)策略函數(shù)π(at|st),使其能夠在狀態(tài)st下生成執(zhí)行某個(gè)動(dòng)作at的概率。人工神經(jīng)網(wǎng)絡(luò)理論上能夠擬合任意函數(shù),因此目前強(qiáng)化學(xué)習(xí)算法通過人工神經(jīng)網(wǎng)絡(luò)擬合策略函數(shù)π(at|st),神經(jīng)網(wǎng)絡(luò)參數(shù)記作θ。強(qiáng)化學(xué)習(xí)的目標(biāo)是使得每次做出的動(dòng)作都能取得最大獎(jiǎng)勵(lì)值,核心是如何評(píng)判所選擇動(dòng)作的優(yōu)劣。為此,定義優(yōu)勢(shì)函數(shù)
(2)
式中Vφ(st)是狀態(tài)st的值函數(shù),反映了在狀態(tài)st下,預(yù)期本次回合結(jié)束后能夠取得的所有累計(jì)獎(jiǎng)勵(lì)值。優(yōu)勢(shì)函數(shù)反映了在時(shí)刻t選擇動(dòng)作at相對(duì)平均動(dòng)作的優(yōu)勢(shì)。如果保存所有狀態(tài)st和動(dòng)作at對(duì)應(yīng)的價(jià)值vt為二維表格,由于狀態(tài)st取值范圍龐大,會(huì)導(dǎo)致二維表格存儲(chǔ)空間巨大而難以存儲(chǔ)。因此,同樣選擇人工神經(jīng)網(wǎng)絡(luò)對(duì)值函數(shù)Vφ(st)進(jìn)行近似表示。最終,定義強(qiáng)化學(xué)習(xí)的優(yōu)化目標(biāo)函數(shù)
(3)
式(3)函數(shù)的目標(biāo)是通過更新策略函數(shù)參數(shù)θ使得每次做出動(dòng)作都能獲得更大的獎(jiǎng)勵(lì)值。然而,目標(biāo)函數(shù)LMSE存在的問題是如果參數(shù)θ更新幅度過大,會(huì)造成梯度上升時(shí)反復(fù)振蕩而無法快速收斂到最優(yōu)點(diǎn)。為此,PPO2算法重新定義目標(biāo)函數(shù)
Lclip(θ)=
(4)
式中:clip函數(shù)是截?cái)嗪瘮?shù),定義為
clip(r,1-ε,1+ε)=
(5)
rt(θ)為概率比函數(shù),定義為
(6)
rt(θ)反映了參數(shù)更新的變化幅度,rt(θ)越大,則更新參數(shù)幅度越大,反之則越小。
式(3)的目標(biāo)是求得值函數(shù)Vφ(st)的有偏估計(jì),因此采用常用的最小二乘法定義目標(biāo)函數(shù),平方運(yùn)算保證了目標(biāo)函數(shù)非負(fù)性。式(4)中的優(yōu)勢(shì)函數(shù)取值為正時(shí),代表當(dāng)前動(dòng)作獲取的獎(jiǎng)勵(lì)值高于平均值,目標(biāo)函數(shù)優(yōu)化目標(biāo)是讓智能體盡量選擇這類動(dòng)作;優(yōu)勢(shì)函數(shù)為負(fù)時(shí),代表當(dāng)前動(dòng)作獲取的獎(jiǎng)勵(lì)值低于平均值,智能體應(yīng)該避免選擇該動(dòng)作。Lclip(θ)函數(shù)通過截取rt(θ),將其限制在[1-ε,1+ε]之間,從而避免更新波動(dòng)過大。Lclip(θ)函數(shù)示意如圖2所示。當(dāng)優(yōu)勢(shì)函數(shù)L>0時(shí),如果rt(θ)大于1+ε,則將其截?cái)?使其不會(huì)過大。同樣,當(dāng)L<0時(shí),如果rt(θ)小于1-ε,也將其截?cái)?使其不會(huì)過小。Lclip(θ)函數(shù)保證了rt(θ)不會(huì)出現(xiàn)劇烈波動(dòng)。
(a)L>0 (b)L<0圖2 截?cái)嗪瘮?shù)示意Fig.2 Schematic diagram of clip function
PPO2在TRPO算法[24]基礎(chǔ)上進(jìn)一步改進(jìn),兩者都是基于minorize-maximization算法,目標(biāo)是最大化期望獎(jiǎng)勵(lì)η(θ*)。其中,η為折扣獎(jiǎng)勵(lì)函數(shù),θ*為待尋找的最佳策略參數(shù)。在每一次迭代中,找到一個(gè)替代函數(shù)M,M為折扣期望獎(jiǎng)勵(lì)的下界,也是當(dāng)前策略下對(duì)折扣期望獎(jiǎng)勵(lì)的估計(jì)。本文M為目標(biāo)函數(shù)Lclip(θ),其迭代過程如圖3所示。
圖3 PPO2迭代過程示意Fig.3 Schematic diagram of PPO2 iteration process
當(dāng)前策略參數(shù)θk建立折扣獎(jiǎng)勵(lì)函數(shù)η的下界Mk。最優(yōu)化Mk,找到θk+1作為下一個(gè)策略參數(shù)。用θk+1重新估計(jì)下界Mk+1,并重復(fù)這個(gè)過程。由于只有有限個(gè)可能的策略,且每一次迭代的策略都使得新策略更加接近最佳策略,PPO2最終會(huì)收斂到局部或全局最優(yōu)。
為了對(duì)這一過程進(jìn)行證明,定義折扣獎(jiǎng)勵(lì)函數(shù)
(7)
折扣獎(jiǎng)勵(lì)函數(shù)是強(qiáng)化學(xué)習(xí)算法要優(yōu)化的目標(biāo)函數(shù)。
定義函數(shù)
(8)
式中ρπ(s)是狀態(tài)分布,公式為
ρπ(s)=P(s0=s)+γP(s1=s)+γ2P(s2=s)+…
(9)
文獻(xiàn)[25]證明了不等式(10)成立
(10)
式中
(11)
(12)
其中DKL是兩個(gè)策略之間的KL散度。
定義替代函數(shù)M為
(13)
根據(jù)式(10)定義有
η(πi+1)≥Mi(πi+1)
(14)
由于兩個(gè)相同的策略KL散度為0,因此
η(πi)=Mi(πi)=Li(πi)
(15)
從而得到
η(πi+1)-η(πi)≥Mi(πi+1)-Mi(πi)
(16)
如果新的策略函數(shù)πi+1能使得Mi最優(yōu),那么有不等式Mi(πi+1)-Mi(πi)≥0成立,進(jìn)而有
η(πi+1)-η(πi)≥0
(17)
因此,只要不斷尋找能使Mi最優(yōu)的策略就能保證強(qiáng)化學(xué)習(xí)目標(biāo)函數(shù)η在每次迭代中不會(huì)下降,最終收斂到局部或者全局最優(yōu)點(diǎn),即
(18)
文獻(xiàn)[25]指出,式(18)更新幅度過小,導(dǎo)致收斂慢。為增加策略更新幅度,可將優(yōu)化問題轉(zhuǎn)換為
(19)
(20)
新的優(yōu)化問題為
(21)
對(duì)Lπθold(π)展開,并采用重要性采樣進(jìn)行替換,可將優(yōu)化目標(biāo)變化為
(22)
論述PPO2算法的文獻(xiàn)[24]指出,為了算法更加易于實(shí)現(xiàn),可將優(yōu)化目標(biāo)函數(shù)L變?yōu)?/p>
(23)
優(yōu)化問題變?yōu)?/p>
(24)
式(24)仍然滿足不等式(16),因此PPO2可以最終收斂到最優(yōu)點(diǎn)。
選取合理的狀態(tài)st是實(shí)現(xiàn)高效強(qiáng)化學(xué)習(xí)算法的關(guān)鍵,只有觀察到足夠多的信息才能使強(qiáng)化學(xué)習(xí)算法做出正確的動(dòng)作選擇。然而,狀態(tài)信息過多也會(huì)增加計(jì)算量,減慢學(xué)習(xí)速度。因此,本文參考了Cubic等主流TCP算法進(jìn)行決策需要的狀態(tài)參數(shù),設(shè)計(jì)狀態(tài)st。st包含以下參數(shù)。
(1)當(dāng)前相對(duì)時(shí)間tr。定義為從TCP建立連接開始到目前已消耗的時(shí)間。在Cubic等算法中,窗口長(zhǎng)度被設(shè)計(jì)為時(shí)間tr的3次函數(shù)。因此,tr是決定擁塞窗口的重要參數(shù)。
(2)當(dāng)前擁塞窗口長(zhǎng)度。擁塞控制算法需要根據(jù)當(dāng)前擁塞窗口長(zhǎng)度來調(diào)節(jié)窗口新值,如果當(dāng)前擁塞窗口長(zhǎng)度較小,則可以更快的速率增加窗口長(zhǎng)度,如果窗口較大,則停止增加窗口或更緩慢地增加窗口長(zhǎng)度。
(3)未被確認(rèn)的字節(jié)數(shù)。定義為已發(fā)送但還未被接收方確認(rèn)的字節(jié)數(shù)。如果把網(wǎng)絡(luò)鏈路比喻做水管,則未被確認(rèn)的字節(jié)數(shù)可以形象地理解為管道中儲(chǔ)存的水量。該參數(shù)也是擁塞控制算法需要參考的重要參數(shù),如果管道中水量充足,則應(yīng)該停止或減少向管道中注水,如果管道中水量較小,則應(yīng)該向管道中增加注水量,并且可以根據(jù)管道中的水量決定注水速率(擁塞窗口長(zhǎng)度)。
(4)已收到的ACK包數(shù)量。該參數(shù)能夠間接反映擁塞情況,如果收到的ACK包數(shù)量正常,則說明網(wǎng)絡(luò)狀況良好,未發(fā)生擁塞,可以適時(shí)增大擁塞窗口長(zhǎng)度,否則說明網(wǎng)絡(luò)發(fā)生擁塞,應(yīng)該維持或減小擁塞窗口長(zhǎng)度。
(5)RTT。時(shí)延指一個(gè)數(shù)據(jù)包從發(fā)送到接收確認(rèn)包花費(fèi)的總時(shí)間,可形象地理解為數(shù)據(jù)從發(fā)送端到接收端進(jìn)行一次往返的時(shí)間。時(shí)延跟網(wǎng)絡(luò)擁塞情況密切相關(guān),如果網(wǎng)絡(luò)擁塞嚴(yán)重,則時(shí)延會(huì)顯著上升。因此,時(shí)延可以反映網(wǎng)絡(luò)擁塞情況,擁塞控制算法可以根據(jù)時(shí)延對(duì)擁塞窗口進(jìn)行調(diào)節(jié)。
(6)吞吐率。定義為接收方每秒確認(rèn)的數(shù)據(jù)字節(jié)數(shù)。該參數(shù)直接反映了網(wǎng)絡(luò)狀況,吞吐率高說明目前鏈路中已發(fā)送足夠的數(shù)據(jù)包,否則說明當(dāng)前網(wǎng)絡(luò)帶寬剩余較多,可向鏈路中增加發(fā)送數(shù)據(jù)包。
(7)丟失包數(shù)量。丟失包數(shù)量越多說明當(dāng)前網(wǎng)絡(luò)擁塞嚴(yán)重,需要減小擁塞窗口長(zhǎng)度,丟失包數(shù)量少說明當(dāng)前網(wǎng)絡(luò)未發(fā)生擁塞,應(yīng)該增大擁塞窗口長(zhǎng)度。
at為在時(shí)刻t對(duì)擁塞窗口做出的控制動(dòng)作。本文定義動(dòng)作為將擁塞窗口長(zhǎng)度c增加n個(gè)段長(zhǎng)度s′
c=cold+ns′
(25)
式(25)設(shè)計(jì)的思路是提供一個(gè)泛化公式,根據(jù)觀察到的狀態(tài)參數(shù)信息,決定擁塞窗口長(zhǎng)度增長(zhǎng)速率。在不同的網(wǎng)絡(luò)場(chǎng)景下,選擇不同的策略。在高帶寬環(huán)境下,調(diào)節(jié)n>1,使擁塞窗口長(zhǎng)度以指數(shù)速度增長(zhǎng);在低帶寬環(huán)境下,調(diào)節(jié)n=1,使擁塞窗口以線性速度增長(zhǎng);在網(wǎng)絡(luò)發(fā)生擁塞時(shí),調(diào)節(jié)n≤0,保持或減小擁塞窗口長(zhǎng)度,減輕網(wǎng)絡(luò)擁塞壓力。
獎(jiǎng)勵(lì)rt定義為在時(shí)刻t從環(huán)境中收到的獎(jiǎng)勵(lì),設(shè)計(jì)獎(jiǎng)勵(lì)函為
(26)
式中:O為當(dāng)前觀察到的吞吐率,Omax為歷史觀察到的最大吞吐率,兩者的比反映了動(dòng)作at能增加的吞吐率效果;l代表觀察期間的平均時(shí)延,lmin代表歷史中觀察到的最小時(shí)延,兩者的比反映了動(dòng)作at改善的時(shí)延效果;α為權(quán)重因子,屬于超參數(shù),反映了吞吐率和時(shí)延對(duì)獎(jiǎng)勵(lì)的權(quán)重比例。α決定了擁塞控制算法的優(yōu)化目標(biāo)更側(cè)重于吞吐率還是時(shí)延。本文選擇α=0.5以平衡吞吐率和時(shí)延。此外,保存歷史最小吞吐率與最大時(shí)延。當(dāng)觀察到當(dāng)前吞吐率小于等于最小吞吐率或者大于等于最大時(shí)延時(shí),設(shè)置獲得獎(jiǎng)勵(lì)為-10,使智能體避免到達(dá)這兩種極端狀態(tài)。
算法的輸入為網(wǎng)絡(luò)當(dāng)前狀態(tài)st,輸出為新的窗口長(zhǎng)度cnew,偽代碼如下。
輸入:st={擁塞窗口長(zhǎng)度,ACK包數(shù)量,時(shí)延,吞吐率,丟包率}
輸出:調(diào)節(jié)后新?lián)砣翱陂L(zhǎng)度
1.初始化策略參數(shù)θ0=θold=θnew
2.運(yùn)行策略πθk共T個(gè)時(shí)間步,收集{st,at}
3.θold←θnew
7.通過梯度上升法更新參數(shù)θ,使Lclip(θ)最大
8.c=cold+ns′
TCP-PPO2只需存儲(chǔ)神經(jīng)網(wǎng)絡(luò)的參數(shù),本文實(shí)驗(yàn)中構(gòu)建了一個(gè)3層神經(jīng)網(wǎng)絡(luò),因此空間復(fù)雜度為O(1)。TCP-PPO2在做訓(xùn)練和推理時(shí)需要根據(jù)輸入的觀察狀態(tài)由模型計(jì)算得到動(dòng)作值,因此時(shí)間復(fù)雜度與輸入數(shù)據(jù)量成正比,即O(n)。
2.1.1 軟硬件環(huán)境 實(shí)驗(yàn)使用了一臺(tái)高性能服務(wù)器,具體配置如下:①CPU,Intel(R) Xeon(R) Silver 4110 CPU @ 2.10 GHz;②內(nèi)存,32 GB DDR4;③GPU,NVIDIA Titan V;④操作系統(tǒng),Red Hat 4.8.5-28。
通過NS3仿真器模擬了虛擬數(shù)據(jù)空間網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),并實(shí)現(xiàn)了TCP-PPO2算法,與具有代表性的TCP擁塞控制算法Cubic、NewReno和HighSpeed進(jìn)行了對(duì)比。Cubic在Linux內(nèi)核2.6.19版本以后作為默認(rèn)TCP擁塞控制算法;NewReno是經(jīng)典的擁塞控制算法;HighSpeed是面向高速網(wǎng)絡(luò)環(huán)境設(shè)計(jì)的擁塞控制算法。TCP-PPO2時(shí)間步長(zhǎng)設(shè)為0.1 s,一共訓(xùn)練了50萬步,在訓(xùn)練到6萬步以后,獲得的獎(jiǎng)勵(lì)值已趨于穩(wěn)定,表明算法已經(jīng)收斂。
2.1.2 網(wǎng)絡(luò)拓?fù)?實(shí)驗(yàn)用經(jīng)典的啞鈴型網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)模擬了虛擬數(shù)據(jù)空間兩個(gè)超算中心中間的網(wǎng)絡(luò)特點(diǎn)。網(wǎng)絡(luò)拓?fù)淙鐖D4所示。圖中:N1和N2代表兩個(gè)超算中心之間的前端通信節(jié)點(diǎn),負(fù)責(zé)進(jìn)行虛擬數(shù)據(jù)空間網(wǎng)絡(luò)數(shù)據(jù)遷移,N1為數(shù)據(jù)發(fā)送方,N2為數(shù)據(jù)接收方;N1-T1和N2-T2鏈路代表超算中心內(nèi)部網(wǎng)絡(luò)鏈路,平均網(wǎng)絡(luò)帶寬設(shè)置為1 Gb/s,時(shí)延為60 μs,丟包率為0;T1-T2代表廣域網(wǎng)通信鏈路,實(shí)驗(yàn)中設(shè)置平均網(wǎng)絡(luò)帶寬為100 Mb/s,時(shí)延為80 ms,丟包率設(shè)為104。這些參數(shù)設(shè)置來源于虛擬數(shù)據(jù)空間廣域網(wǎng)環(huán)境性能實(shí)測(cè)數(shù)據(jù),盡量模擬了真實(shí)廣域網(wǎng)特點(diǎn)。
圖4 網(wǎng)絡(luò)拓?fù)銯ig.4 Network topology
2.1.3 PPO2參數(shù)設(shè)置 PPO2的主要參數(shù)設(shè)置如下:折扣因子為0.99,學(xué)習(xí)速率為0.000 25,ε為0.2,每次更新運(yùn)行的訓(xùn)練步數(shù)為128。
圖5 吞吐率性能對(duì)比Fig.5 Comparison of throughput performance
圖6 吞吐率累計(jì)概率密度分布對(duì)比Fig.6 Comparison of cumulative probability density distribution of throughput rate
吞吐率為每秒確認(rèn)的全部數(shù)據(jù)包數(shù)量。圖5是吞吐率性能對(duì)比,可以看出,TCP-PPO2的網(wǎng)絡(luò)吞吐率約為HighSpeed和Cubic算法的2倍,約為NewReno算法的3倍。圖6是4種算法吞吐率的累計(jì)概率密度函數(shù)曲線對(duì)比,可以看出:NewReno只有約3%采樣點(diǎn)的吞吐率大于4 MB/s,1%采樣點(diǎn)的吞吐率大于6 MB/s;Highspeed和Cubic有30%采樣點(diǎn)的吞吐率大于4 MB/s,約3%采樣點(diǎn)的吞吐率大于6 MB/s;TCP-PPO2有90%采樣點(diǎn)的吞吐率大于4 MB/s,40%采樣點(diǎn)的吞吐率大于6 MB/s。結(jié)果表明:NewReno這類傳統(tǒng)擁塞控制算法已無法適應(yīng)虛擬數(shù)據(jù)空間的廣域網(wǎng)特點(diǎn),不適合應(yīng)用于虛擬數(shù)據(jù)空間數(shù)據(jù)遷移;Cubic和Highspeed比NewReno具有顯著的性能提升,但是仍未能完全有效利用可用帶寬實(shí)現(xiàn)高速傳輸;TCP-PPO2具有最好的性能,在進(jìn)行一定的學(xué)習(xí)后,能夠充分利用網(wǎng)絡(luò)帶寬實(shí)現(xiàn)虛擬數(shù)據(jù)空間高效數(shù)據(jù)遷移。
圖7 RTT對(duì)比Fig.7 Comparison of RTT
RTT代表一個(gè)數(shù)據(jù)包從發(fā)送到接收到確認(rèn)包的耗費(fèi)時(shí)間,反映了當(dāng)前網(wǎng)絡(luò)延遲狀況。圖7是RTT對(duì)比,可以看出,總體上TCP-PPO2算法的RTT相比其他3種算法的有所上升,這是由于TCP-PPO2算法更加激進(jìn),嘗試?yán)盟锌捎脦?向鏈路中發(fā)送過多數(shù)據(jù)包,造成網(wǎng)絡(luò)擁塞,導(dǎo)致RTT增加,但是TCP-PPO2算法的RTT相比其他3種算法的上升幅度不大。圖8是RTT累計(jì)概率密度函數(shù)對(duì)比,可以看出,TCP-PPO2算法有80%的RTT小于167 ms。由于鏈路本身RTT最小值為160 ms,因此TCP-PPO2算法的大部分RTT相比最小值只增加了4%。
圖8 RTT累計(jì)概率密度分布對(duì)比Fig.8 Comparison of RTT cumulative probability density distribution
對(duì)T1上的隊(duì)列長(zhǎng)度進(jìn)行了采樣,結(jié)果如圖9所示。可以看出,TCP-PPO2算法的隊(duì)列長(zhǎng)度顯著高于其他3種算法的。這是因?yàn)門CP-PPO2算法單位時(shí)間內(nèi)發(fā)送的數(shù)據(jù)包數(shù)量最多,所以在T1路由器上需要緩存的隊(duì)列長(zhǎng)度也最長(zhǎng)。
圖9 隊(duì)列長(zhǎng)度對(duì)比Fig.9 Comparison of queue length
N1向N2發(fā)送數(shù)據(jù)過程中的丟包率如圖10所示??梢钥闯?4種算法的丟包率都接近0.01%,與NS3參數(shù)設(shè)置一致;TCP-PPO2丟包率為0.124%,略高于其他3種算法的。這是因?yàn)門CP-PPO2發(fā)送的數(shù)據(jù)包最多,部分?jǐn)?shù)據(jù)包由于鏈路節(jié)點(diǎn)緩存已滿被丟棄,從而出現(xiàn)丟包現(xiàn)象。
圖10 丟包率對(duì)比Fig.10 Comparison of packet loss rate
圖11 收斂速度對(duì)比Fig.11 Comparison of convergence speed
DQN算法是Q-learning家族的最新研究成果,采用神經(jīng)網(wǎng)絡(luò)對(duì)Q表格進(jìn)行了近似,已應(yīng)用在Alpha Go智能圍棋系統(tǒng)中。本文對(duì)PPO2算法和DQN的收斂速度進(jìn)行了對(duì)比,結(jié)果如圖11所示??梢钥闯?PPO2算法在訓(xùn)練到7萬步以后,收到的獎(jiǎng)勵(lì)值已趨于穩(wěn)定,表明算法已經(jīng)收斂。根據(jù)1.3小節(jié)的收斂性分析,PPO2具有單調(diào)上升性,圖11驗(yàn)證了該結(jié)論,PPO2收到的獎(jiǎng)勵(lì)值隨訓(xùn)練步數(shù)不斷上升,最終趨于穩(wěn)定。DQN算法在訓(xùn)練到42萬步以后仍然反復(fù)振蕩,難以收斂。實(shí)驗(yàn)結(jié)果表明PPO2算法具有更快的收斂速度。
虛擬數(shù)據(jù)空間對(duì)于聚合國(guó)家高性能計(jì)算資源具有重要意義,高效可靠數(shù)據(jù)傳輸是構(gòu)建虛擬數(shù)據(jù)空間的核心技術(shù)。本文針對(duì)主流TCP擁塞控制算法適應(yīng)性差、無法有效利用虛擬數(shù)據(jù)空間網(wǎng)絡(luò)帶寬等問題,提出了一種基于近端策略優(yōu)化算法的TCP擁塞控制算法,用于實(shí)現(xiàn)虛擬數(shù)據(jù)空間高效可靠數(shù)據(jù)遷移。本文得出的主要結(jié)論如下。
(1)提出了基于近端策略優(yōu)化算法的TCP擁塞控制算法,將基于強(qiáng)化學(xué)習(xí)的TCP擁塞控制過程抽象為可部分觀察的馬爾可夫決策過程。通過借鑒主流算法,合理設(shè)計(jì)了狀態(tài)空間、動(dòng)作空間、獎(jiǎng)勵(lì)函數(shù)。
(2)通過NS3仿真實(shí)驗(yàn)對(duì)比得出結(jié)論,TCP-PPO2與HighSpeed、Cubic、NewReno算法相比吞吐率可達(dá)2~3倍以上。
未來將在真實(shí)虛擬數(shù)據(jù)空間系統(tǒng)中測(cè)試TCP-PPO2算法的性能,并針對(duì)測(cè)試性能結(jié)果,進(jìn)一步提出優(yōu)化算法,更好地服務(wù)國(guó)家高性能計(jì)算環(huán)境。
西安交通大學(xué)學(xué)報(bào)2021年5期