賴涵光,李 清,江 勇*
(1.清華大學(xué)深圳國(guó)際研究生院,廣東深圳 518055;2.南方科技大學(xué)未來(lái)網(wǎng)絡(luò)研究院,廣東深圳 518055)
傳輸控制協(xié)議(Transmission Control Protocol,TCP)擁塞控制是網(wǎng)絡(luò)傳輸?shù)膫鹘y(tǒng)問(wèn)題,也是核心問(wèn)題,傳統(tǒng)的TCP 通過(guò)調(diào)整擁塞窗口的方式來(lái)進(jìn)行擁塞控制。而擁塞窗口的調(diào)整主要通過(guò)慢啟動(dòng)、擁塞避免、快速重傳和快速恢復(fù)四個(gè)機(jī)制來(lái)實(shí)現(xiàn),從而在避免擁塞的情況下實(shí)現(xiàn)吞吐量的最大化。
當(dāng)前,在學(xué)術(shù)界和工業(yè)界,人工智能(Artificial Intelligence,AI)的研究與應(yīng)用發(fā)展迅猛,包含機(jī)器學(xué)習(xí)、深度學(xué)習(xí)和深度強(qiáng)化學(xué)習(xí)等人工智能方法正越來(lái)越多地被應(yīng)用于解決各種實(shí)際問(wèn)題,并在人臉識(shí)別、推薦系統(tǒng)、語(yǔ)音識(shí)別、工業(yè)機(jī)器人等一系列領(lǐng)域取得了相當(dāng)顯著的成果。
近年來(lái),許多學(xué)者開(kāi)始將人工智能方法用于TCP 擁塞控制的領(lǐng)域,并取得了一定的成果,但尚無(wú)法達(dá)到替代傳統(tǒng)方法的程度。主要原因在于,基于AI 的擁塞控制方法在不同場(chǎng)景下仍然存在著一定的不足。例如,在基于強(qiáng)化學(xué)習(xí)的擁塞控制算法中,Aurora雖然取得了較好的吞吐量但犧牲了收斂性和公平性,而Orca為了解決收斂性和強(qiáng)化學(xué)習(xí)的可解釋性問(wèn)題,不得不在吞吐量和時(shí)延性能上作出讓步。而對(duì)于目前主流的研究方案,即測(cè)量瓶頸鏈路帶寬和時(shí)延的擁塞控制(congestion control based on measuring Bottleneck Bandwidth and Round-trip propagation time,BBR)、面向性能的擁塞控制(Performance-oriented Congestion Control,PCC)、Copa等相對(duì)輕量級(jí)基于人工智能的擁塞控制方法而言,雖然它們具備一定的可解釋性,且在一定場(chǎng)景下能夠?qū)崿F(xiàn)較高的網(wǎng)絡(luò)性能,但普遍存在TCP 友好性的問(wèn)題,同時(shí)在某些特定場(chǎng)景下性能表現(xiàn)會(huì)出現(xiàn)斷崖式下跌。
本文綜合已有研究方案,針對(duì)輕量級(jí)基于學(xué)習(xí)的擁塞控制算法在某些場(chǎng)景下性能會(huì)出現(xiàn)斷崖式下跌的問(wèn)題,提出一個(gè)基于場(chǎng)景變化的傳輸控制協(xié)議擁塞控制切換方案。首先,在全場(chǎng)景下分析基于學(xué)習(xí)的擁塞控制算法的優(yōu)缺點(diǎn),著重考察它們?cè)诓煌瑘?chǎng)景、維度下的性能指標(biāo);然后,提出基于場(chǎng)景變化的傳輸控制協(xié)議擁塞控制切換方案;最后,在網(wǎng)絡(luò)仿真器3(Network Simulator 3,NS3)平臺(tái)上進(jìn)行仿真實(shí)驗(yàn)以驗(yàn)證其性能,并將實(shí)驗(yàn)結(jié)果與已有方法進(jìn)行對(duì)比。
隨著傳統(tǒng)擁塞控制在吞吐量、時(shí)延、丟包率等指標(biāo)上的表現(xiàn)越來(lái)越不符合用戶的需求,以及近年來(lái)計(jì)算機(jī)算力的提升與人工智能的重新興起,許多研究人員開(kāi)始將機(jī)器學(xué)習(xí)、深度學(xué)習(xí)和強(qiáng)化學(xué)習(xí)等基于人工智能的方法應(yīng)用到擁塞控制研究當(dāng)中,亦取得了一定的成果。而這其中的主流是輕量級(jí)基于學(xué)習(xí)的擁塞控制,所謂“輕量級(jí)”,就是指這其中使用啟發(fā)式算法、效用函數(shù)、梯度下降等未涉及深度學(xué)習(xí)(包括深度強(qiáng)化學(xué)習(xí))的一類擁塞控制算法,這類算法訓(xùn)練時(shí)間短、成本低,因而稱其“輕”。以下簡(jiǎn)要敘述使用該類方法的幾項(xiàng)研究工作。
1.1.1 PCC和PCC-Vivace
PCC 是一個(gè)直接由發(fā)送端觀測(cè)到的性能表現(xiàn)來(lái)決定下一時(shí)刻動(dòng)作的算法。每個(gè)發(fā)送端只觀察其動(dòng)作與性能表現(xiàn)的聯(lián)系,采用能帶來(lái)最佳性能的動(dòng)作。
TCP 硬連接映射需要對(duì)網(wǎng)絡(luò)條件作出假設(shè),但現(xiàn)實(shí)網(wǎng)絡(luò)狀況往往比假設(shè)復(fù)雜得多,且一旦不滿足假設(shè),后續(xù)的動(dòng)作對(duì)性能非常有害(例如窗口減半)。而PCC 使用實(shí)時(shí)數(shù)據(jù),無(wú)任何假設(shè),使用效用函數(shù)來(lái)描述“高吞吐量和低丟失率”。其收斂速度與TCP 相近,且速率方差更小。
下一時(shí)刻的發(fā)送速率由效用函數(shù)u
決定,u
是關(guān)于吞吐量T
和丟包率L
的函數(shù),如式(1)所示:PCC 的控制算法分為以下幾種狀態(tài):
+ε
)r
,另一個(gè)MI 嘗試(1-ε
)r
,r
為原始速率。之后速率調(diào)整回r
并等待結(jié)果。根據(jù)u
函數(shù)算出的結(jié)果,如果兩組的(1+ε
)r
都獲得較好的u
,則選擇之;(1+ε
)r
同理。如果兩組結(jié)果不同,則速率回到r
并重新進(jìn)入決策狀態(tài)并嘗試更大的ε
,ε
最小值為0.01,最大值為0.05。3)速率調(diào)整狀態(tài)。決策狀態(tài)之后得到的速率r
,PCC 會(huì)以越來(lái)越大的幅度來(lái)調(diào)整之。若效用函數(shù)增大,則采用下一時(shí)刻的速率,如式(2)所示:dir
表示±號(hào)。一旦效用函數(shù)變小,則采用r
并重新進(jìn)入決策狀態(tài)。PCC 相較于TCP 的優(yōu)點(diǎn):同一個(gè)PCC 學(xué)習(xí)算法可以適應(yīng)不同的情況,但TCP 不行。從基于延遲變換到基于丟包率,TCP 需要例如active queue management等復(fù)雜機(jī)制,而PCC只需要修改一行代碼而已;PCC 部署時(shí)不需要路由器支持、無(wú)新協(xié)議、不需要接收端的調(diào)整,只修改發(fā)送端,其余與TCP一致。
PCC 存在的問(wèn)題主要在于效用函數(shù)的選擇:是否存在效用函數(shù)收斂到納什均衡同時(shí)TCP 友好(TCP 友好性表示該算法能夠與傳統(tǒng)TCP 流友好共處、公平競(jìng)爭(zhēng))。本文中介紹的效用函數(shù)都不包含時(shí)延,那么包含時(shí)延的效用函數(shù)是否可被證明收斂并且與默認(rèn)效用函數(shù)表現(xiàn)一樣好?這些問(wèn)題都有待解決。
針對(duì)PCC 存在的問(wèn)題,該研究小組之后又發(fā)表了PCC的升級(jí)版PCC-Vivace,在新的效用函數(shù)中引入了時(shí)延:
PCC-Vivace 使用了修改后的同樣是基于梯度上升的速率調(diào)節(jié)算法,并證明了其收斂性,也在實(shí)驗(yàn)中驗(yàn)證了其TCP友好性。
1.1.2 BBR和Copa
與傳統(tǒng)擁塞控制算法顯著不同的是,BBR 算法不以數(shù)據(jù)包丟失或傳輸時(shí)延增加作為識(shí)別網(wǎng)絡(luò)擁塞的標(biāo)準(zhǔn),而是使用帶寬時(shí)延乘積(Bandwidth-Delay Product,BDP)作為識(shí)別指標(biāo),當(dāng)網(wǎng)絡(luò)中的數(shù)據(jù)包總量大于BDP 時(shí),BBR 才認(rèn)為網(wǎng)絡(luò)出現(xiàn)了擁塞。因此,BBR 也被恰如其分地稱為基于擁塞的擁塞控制算法。
在網(wǎng)絡(luò)中可以觀察到這樣的現(xiàn)象:當(dāng)帶寬非常大時(shí),網(wǎng)絡(luò)將被填滿而導(dǎo)致排隊(duì),此時(shí)網(wǎng)絡(luò)延遲必定非常大;反之,當(dāng)網(wǎng)絡(luò)延遲非常小時(shí),網(wǎng)絡(luò)中的數(shù)據(jù)包需要避免排隊(duì)直接轉(zhuǎn)發(fā),此時(shí)帶寬必定會(huì)非常小。因此可以得出結(jié)論:網(wǎng)絡(luò)中的流不可能同時(shí)獲得非常大的鏈路帶寬和非常小的網(wǎng)絡(luò)延遲。根據(jù)這一結(jié)論,BBR 算法對(duì)網(wǎng)絡(luò)容量進(jìn)行周期性的探測(cè),對(duì)一段時(shí)間內(nèi)鏈路帶寬的極大值和網(wǎng)絡(luò)延遲的極小值進(jìn)行交替性的測(cè)量,再將它們的乘積作為擁塞窗口大小,從而就能用擁塞窗口來(lái)表征網(wǎng)絡(luò)容量,使擁塞的識(shí)別更加準(zhǔn)確。
由于BBR 算法特有的測(cè)量擁塞窗口的機(jī)制,它不會(huì)像傳統(tǒng)擁塞控制算法那樣無(wú)限地增加擁塞窗口,也就不會(huì)用盡交換機(jī)節(jié)點(diǎn)的緩存,從而避免了Bufferbloat(緩沖區(qū)溢出)現(xiàn)象的出現(xiàn),進(jìn)一步就可以讓傳輸時(shí)延顯著降低。
另一方面,BBR 算法使用通過(guò)主動(dòng)探測(cè)網(wǎng)絡(luò)容量來(lái)調(diào)節(jié)擁塞窗口的機(jī)制,此種自主調(diào)節(jié)的機(jī)制使BBR 算法可以自行控制流的發(fā)送速率。與之相反的是,傳統(tǒng)擁塞控制算法只完成了將擁塞窗口計(jì)算出來(lái)的工作,而將流的發(fā)送速率完全交由TCP 決定,造成的后果便是在當(dāng)速率接近瓶頸鏈路帶寬時(shí),容易因發(fā)送速率的陡增而使得數(shù)據(jù)包排隊(duì)或數(shù)據(jù)包丟失的現(xiàn)象產(chǎn)生。
BBR 算法的缺陷在于:當(dāng)交換機(jī)節(jié)點(diǎn)的緩存較大時(shí),BBR 的吞吐量表現(xiàn)可能會(huì)遜色于Cubic等相對(duì)激進(jìn)的擁塞控制算法。原因是BBR 算法不會(huì)主動(dòng)去占據(jù)節(jié)點(diǎn)的緩存,而一旦Cubic 流基于其激進(jìn)的速率增加策略,長(zhǎng)時(shí)間占據(jù)隊(duì)列緩存,則很容易導(dǎo)致BBR 算法在鄰近的多個(gè)周期內(nèi)所測(cè)得的網(wǎng)絡(luò)延遲的極小值增大,進(jìn)而導(dǎo)致BBR 流的吞吐量減小。
Copa 算法的整體思路與BBR 類似,都是以端系統(tǒng)采集得到的RTT 信息推測(cè)網(wǎng)絡(luò)狀態(tài)從而進(jìn)行速率調(diào)整。相較于BBR 其優(yōu)勢(shì)在于對(duì)鏈路中隊(duì)列長(zhǎng)度的主動(dòng)且細(xì)粒度的控制,而非基于BDP 的主動(dòng)排空。
Copa 的核心思想在于,當(dāng)一個(gè)流在鏈路中產(chǎn)生排隊(duì)延遲時(shí),給定一個(gè)當(dāng)前擁塞狀態(tài)下的目標(biāo)速率λ
,并控制當(dāng)前速率在該目標(biāo)上下的一定范圍內(nèi)進(jìn)行波動(dòng)。而為了使流在競(jìng)爭(zhēng)時(shí)能同時(shí)滿足高吞吐量和低延遲,文獻(xiàn)[7]對(duì)第i
條流給出了目標(biāo)函數(shù)如式(4)所示:1.1.3 Remy
Winstein 等所探究的問(wèn)題是:TCP 擁塞控制本身是一個(gè)動(dòng)態(tài)的過(guò)程,每一步的選擇都可能造成后面所有反饋的不同,如何能判定一個(gè)擁塞控制是“表現(xiàn)得最好”的?給出的解決辦法是:既然人看不出好不好,那就用機(jī)器預(yù)先算出給定網(wǎng)絡(luò)里每個(gè)決策可能造成的所有后果,選最終評(píng)分最高的,將其一路過(guò)來(lái)的所有決策用來(lái)生成一個(gè)擁塞控制算法,那肯定就是“表現(xiàn)得最好的”。
因此,Winstein 等設(shè)計(jì)了Remy 算法來(lái)算出不同參數(shù)的擁塞控制策略產(chǎn)生的結(jié)果,細(xì)化較優(yōu)結(jié)果的參數(shù)并進(jìn)行優(yōu)化,經(jīng)過(guò)幾輪迭代后,用生成最優(yōu)結(jié)果的所有決策生成最優(yōu)擁塞控制(Congestion Control,CC),就是RemyCC。
Remy 的輸入包括:網(wǎng)絡(luò)的參數(shù),即瓶頸鏈路的速度、網(wǎng)絡(luò)路徑傳輸時(shí)延和多路復(fù)用的程度;發(fā)送端的流量發(fā)送模型,Remy 建模時(shí)把流量變化過(guò)程看作很多對(duì)獨(dú)立的發(fā)送-接收端鏈路隨機(jī)開(kāi)/關(guān)的過(guò)程,每條鏈路開(kāi)的持續(xù)時(shí)間遵循特定的分布;目標(biāo)函數(shù),算法的總得分可以通過(guò)計(jì)算每條流的分?jǐn)?shù)之和得到,鏈路中不同的數(shù)據(jù)流獲得的分?jǐn)?shù)為:
x
是該流的吞吐量,α
表示公平性的重要程度。在Remy 算法中,公平性被定義為:y
表示平均RTT;U
(y
)是RTT 的效用函數(shù);系數(shù)δ
是平衡系數(shù),作用是改變Remy 算法在吞吐量和時(shí)延上的側(cè)重點(diǎn)。文獻(xiàn)[7]把發(fā)送端觀測(cè)到的指標(biāo)用三個(gè)參數(shù)來(lái)表示,統(tǒng)稱memory:ack_ewma 表示確認(rèn)字符(ACKnowledge character,ACK)的到達(dá)間隔的指數(shù)加權(quán)移動(dòng)平均值;send_ewma 表示ACK 的發(fā)送間隔的指數(shù)加權(quán)移動(dòng)平均值;rtt_ratio 表示最新RTT 除以最小RTT。
把發(fā)送端的action(控制擁塞窗口大?。┮灿萌齻€(gè)參數(shù)來(lái)表示:m
≥0 表示擁塞窗口的倍數(shù);b
表示擁塞窗口的增量;r
>0 表示連續(xù)發(fā)送的最小間隔時(shí)間。把一條memory 映射到一條action 的過(guò)程稱為一條rule。一個(gè)完整的擁塞控制策略由很多條rule 構(gòu)成,即一張rule table。Remy 的自動(dòng)搜索過(guò)程就是用貪心算法建立和優(yōu)化這張rule table 的過(guò)程。
以下簡(jiǎn)要描述Remy 算法的主要過(guò)程:首先,通過(guò)迭代修正action,找到最合適的將memory 映射到action 的方法,即最合適的rule;其次,將常用的rule 和不常用的rule 進(jìn)行區(qū)分;在合理的統(tǒng)計(jì)與分類之后,可以生成一個(gè)完整的rule table,即一張統(tǒng)計(jì)了所有映射方式的表格,表格中每個(gè)rule 的action 都是基于當(dāng)前網(wǎng)絡(luò)狀態(tài),對(duì)擁塞窗口大小進(jìn)行最優(yōu)方向上的調(diào)整。同時(shí),在最常用的rule 附近,劃分粒度非常細(xì),而較不常用的rule 其劃分粒度則較粗糙。
Remy 算法存在的問(wèn)題:用Remy 搜索找到的最佳RemyCC,當(dāng)把它用于和生成RemyCC 時(shí)使用的網(wǎng)絡(luò)相似的網(wǎng)絡(luò)上時(shí),效果非常不錯(cuò);一旦用于不同類型網(wǎng)絡(luò)時(shí),效果就不太理想了。這是因?yàn)镽emyCC 只能預(yù)測(cè)它所見(jiàn)過(guò)的網(wǎng)絡(luò)的最優(yōu)決策,一旦遇到?jīng)]見(jiàn)過(guò)的網(wǎng)絡(luò),RemyCC 仍使用本身的預(yù)見(jiàn)方法來(lái)應(yīng)對(duì),就會(huì)顯得不夠靈活。
隨著強(qiáng)化學(xué)習(xí)(Reinforcement Learning)在游戲博弈(圍棋、星際爭(zhēng)霸)、機(jī)器人控制等領(lǐng)域取得卓越成就,有學(xué)者開(kāi)始將強(qiáng)化學(xué)習(xí)用于網(wǎng)絡(luò)擁塞控制的研究。近年來(lái),深度強(qiáng)化學(xué) 習(xí)(Deep Reinforcement Learning),包 含DQN(Deep Q Network)、DDPG(Deep Deterministic Policy Gradient)等算法的出現(xiàn)也為強(qiáng)化學(xué)習(xí)用于擁塞控制提供了強(qiáng)有力的理論武器。
強(qiáng)化學(xué)習(xí)用于擁塞控制方面有其先天優(yōu)勢(shì),首先深度強(qiáng)化學(xué)習(xí)不必依賴于模型,這就增強(qiáng)了其在不可預(yù)測(cè)行為的復(fù)雜網(wǎng)絡(luò)中的適用性;其次它可以處理復(fù)雜的狀態(tài)空間,這與實(shí)際網(wǎng)絡(luò)的情況十分吻合。
但是,使用強(qiáng)化學(xué)習(xí)算法也有其缺點(diǎn),普遍的共性就是訓(xùn)練時(shí)間太長(zhǎng),這會(huì)導(dǎo)致?lián)砣刂频拈_(kāi)銷過(guò)大,以至于無(wú)法被廣泛應(yīng)用于網(wǎng)絡(luò)中。此外,在使用深度強(qiáng)化學(xué)習(xí)這類復(fù)雜算法進(jìn)行擁塞控制時(shí),其收斂性較難保證。
以下簡(jiǎn)要介紹幾項(xiàng)基于強(qiáng)化學(xué)習(xí)進(jìn)行網(wǎng)絡(luò)擁塞控制的工作。
1.2.1 Aurora
Aurora是最早使用強(qiáng)化學(xué)習(xí)方法進(jìn)行網(wǎng)絡(luò)擁塞控制的研究之一,盡管存在著一些不足,其理念仍是具有開(kāi)創(chuàng)性的。
文獻(xiàn)[3]根據(jù)擁塞控制的特點(diǎn)設(shè)計(jì)了強(qiáng)化學(xué)習(xí)智能體的動(dòng)作與狀態(tài)。由于發(fā)送端是通過(guò)調(diào)整發(fā)送速率來(lái)適應(yīng)網(wǎng)絡(luò)擁塞狀況,因此智能體的動(dòng)作也就是發(fā)送端的發(fā)送速率。狀態(tài)空間則由三維向量組成,每個(gè)向量v
包含延遲梯度、延遲比率、發(fā)送比率三個(gè)維度。其中,延遲梯度指的是網(wǎng)絡(luò)延遲關(guān)于時(shí)間的導(dǎo)數(shù),延遲比率表示當(dāng)前MI 的平均延遲與此前MI 中觀測(cè)到的最小平均延遲之比,發(fā)送比率表示發(fā)送端發(fā)送的數(shù)據(jù)包數(shù)量與接收端接收到的數(shù)據(jù)包數(shù)量之比。同時(shí),智能體在決定下一時(shí)刻的動(dòng)作時(shí)需要根據(jù)過(guò)去一段時(shí)間的向量來(lái)觀測(cè)網(wǎng)絡(luò)變化的趨勢(shì),因此t
時(shí)刻的狀態(tài)空間s
為:k
是常數(shù),代表過(guò)去這段時(shí)間的長(zhǎng)度;d
表示選擇從發(fā)送速率到收集到結(jié)果的這一小段延時(shí)。在k
值的選擇上,文獻(xiàn)[3]以MI 為單位進(jìn)行實(shí)驗(yàn),結(jié)果表明,除了在只有1 個(gè)MI 時(shí)算法無(wú)法得出理想的獎(jiǎng)賞值,其余情況即當(dāng)采用2 個(gè)及以上MI 的訓(xùn)練時(shí)長(zhǎng)時(shí),算法都能達(dá)到相似的理想獎(jiǎng)賞值。Aurora 的獎(jiǎng)賞函數(shù)設(shè)計(jì)如下:
π
得出當(dāng)前時(shí)刻的動(dòng)作a
(發(fā)送速率的增加或減少),從而計(jì)算出當(dāng)前時(shí)刻的發(fā)送速率x
:α
是常數(shù),用于減小速率的波動(dòng)。Aurora 存在的問(wèn)題主要有:1)公平性差,在與TCP 流進(jìn)行競(jìng)爭(zhēng)時(shí),會(huì)急劇限制TCP 流的吞吐量,導(dǎo)致算法的TCP 友好性不佳,主要原因在于Aurora 在訓(xùn)練時(shí)會(huì)主動(dòng)學(xué)習(xí)出偶爾丟包的能力,以讓TCP 吞吐量下降從而釋放鏈路帶寬;2)算法的收斂性較差,即收斂時(shí)間過(guò)長(zhǎng)。
1.2.2 Orca
基于學(xué)習(xí)的擁塞控制算法適應(yīng)復(fù)雜網(wǎng)絡(luò)環(huán)境的能力更強(qiáng),因?yàn)椴恍枰獙h(huán)境與動(dòng)作進(jìn)行硬編碼。但文獻(xiàn)[4]認(rèn)為,單純的基于學(xué)習(xí)的擁塞控制也有以下問(wèn)題:1)在未知的網(wǎng)絡(luò)條件下有過(guò)度(Aurora、PCC-Vivace)或過(guò)少(Indigo、Remy)利用帶寬的問(wèn)題;2)收斂到錯(cuò)誤的值(Indigo、Remy)或根本不收斂(Aurora);3)開(kāi)銷即中央處理器(Central Processing Unit,CPU)占用率非常高。
因此,文獻(xiàn)[4]設(shè)計(jì)了一個(gè)實(shí)用的擁塞控制算法框架Orca,將傳統(tǒng)擁塞控制的設(shè)計(jì)與深度強(qiáng)化學(xué)習(xí)技術(shù)結(jié)合起來(lái)。使用強(qiáng)化學(xué)習(xí)的原因:網(wǎng)絡(luò)擁塞控制作為一個(gè)順序的決策制定過(guò)程,與強(qiáng)化學(xué)習(xí)的特性非常吻合。
具體地,Orca 在底層使用傳統(tǒng)TCP 調(diào)節(jié)擁塞窗口的邏輯(文獻(xiàn)[4]中選用Cubic),上層的強(qiáng)化學(xué)習(xí)智能體通過(guò)監(jiān)控獲取網(wǎng)絡(luò)狀態(tài)和底層傳來(lái)的擁塞窗口變化,計(jì)算出新的擁塞窗口。這樣做的好處有:1)能夠持續(xù)探測(cè)帶寬并收斂到正確的值;2)因?yàn)榈讓邮褂脗鹘y(tǒng)TCP,其動(dòng)作調(diào)節(jié)更具可預(yù)測(cè)性(相對(duì)于深度學(xué)習(xí)的不可解釋性而言);3)能夠以更小的開(kāi)銷,即更低的CPU 占用率來(lái)達(dá)到既定目標(biāo);4)相較于其他單純基于強(qiáng)化學(xué)習(xí)的擁塞控制算法,其訓(xùn)練速度更快。
Orca 的獎(jiǎng)賞函數(shù)設(shè)計(jì)來(lái)源于Giessler 等提出的Power指標(biāo),Gail 等證明,當(dāng)Power=Throughput/Delay
取得最大值時(shí),網(wǎng)絡(luò)擁塞狀況達(dá)到最優(yōu),因而Power
也被廣泛應(yīng)用于衡量網(wǎng)絡(luò)擁塞的指標(biāo),Orca 根據(jù)這一指標(biāo)得出式(11)~(13)所示的獎(jiǎng)賞:ζ
是吞吐量和丟包率的平衡系數(shù),代表二者對(duì)總獎(jiǎng)賞的影響程度。同時(shí),由于TCP 調(diào)節(jié)擁塞窗口具有連續(xù)的動(dòng)作空間,Orca 為了減少?gòu)?qiáng)化學(xué)習(xí)中智能體的動(dòng)作空間,設(shè)計(jì)新的cwnd
來(lái)代替底層TCP 的擁塞窗口cwnd
,并通過(guò)式(12)~(14),使得算法可以通過(guò)調(diào)節(jié)α
來(lái)調(diào)節(jié)cwnd
:π
在當(dāng)前狀態(tài)s
下給出動(dòng)作a
,觀測(cè)到獎(jiǎng)賞r
和新?tīng)顟B(tài)s′
,并將這一經(jīng)驗(yàn)(s
,a
,r
,s′
)存儲(chǔ)到Replay Memory 中;Learner 負(fù)責(zé)更新神經(jīng)網(wǎng)絡(luò)模型,每一個(gè)迭代中它從Replay Memory 中隨機(jī)抽取一組經(jīng)驗(yàn)樣本,計(jì)算其梯度并更新TD3 算法中的參數(shù)。Actor 和Learner 的工作在這里是異步進(jìn)行的,如此則Learner 對(duì)模型的更新不會(huì)受阻于Actor(相對(duì)于之前的Actor-Critic 架構(gòu)而言)。實(shí)際訓(xùn)練中,將多個(gè)Actor 放置于不同的物理服務(wù)器中以觀測(cè)不同的環(huán)境,同時(shí)將它們連接到一個(gè)中心化的Learner,并將Replay Memory 與Learner 放置于同一臺(tái)物理機(jī)上。本章主要對(duì)現(xiàn)有較流行的幾種輕量級(jí)基于學(xué)習(xí)的擁塞控制方案在各種場(chǎng)景下的性能進(jìn)行了測(cè)試與結(jié)果對(duì)比。對(duì)照傳統(tǒng)擁塞控制方法,分析出各場(chǎng)景下性能較優(yōu)的擁塞控制方案。
2.1.1 實(shí)驗(yàn)設(shè)置
本文實(shí)驗(yàn)在開(kāi)源仿真模擬器NS3 平臺(tái)上進(jìn)行,在多種帶寬、延遲、隨機(jī)丟包率的場(chǎng)景下,比較吞吐量、時(shí)延、公平性、TCP 友好性等性能指標(biāo)。實(shí)驗(yàn)在DELL ECM PowerEdge R840服務(wù)器上運(yùn)行,其CPU 為Intel Xeon Platinum 8168。
實(shí)驗(yàn)拓?fù)錇槎说蕉送負(fù)?,在指定的鏈路帶寬和網(wǎng)絡(luò)延遲下,由發(fā)送端向接收端發(fā)送一到多條流。默認(rèn)的數(shù)據(jù)包大小為100 b。實(shí)驗(yàn)運(yùn)行時(shí)長(zhǎng)為300 s。
2.1.2 實(shí)驗(yàn)參數(shù)
實(shí)驗(yàn)中使用四種已知的擁塞控制方法,包括三種輕量級(jí)基于學(xué)習(xí)的擁塞控制(BBR、Copa、PCC-Vivace)和作為對(duì)比的傳統(tǒng)擁塞控制方法Cubic。
實(shí)驗(yàn)中使用的網(wǎng)絡(luò)帶寬有1 Mb/s、5 Mb/s、20 Mb/s、100 Mb/s、500 Mb/s;網(wǎng)絡(luò)延遲的設(shè)定有1 ms、10 ms、100 ms、500 ms;實(shí)驗(yàn)中使用四種不同的隨機(jī)丟包率設(shè)定:0%、0.1%、0.5%、1%。
以下各以一種場(chǎng)景為例,展示考察指標(biāo)分別為吞吐量、時(shí)延、公平性、TCP 友好性時(shí)的性能測(cè)試結(jié)果,并進(jìn)行分析。
2.2.1 平均吞吐量與時(shí)延
表1 展示了鏈路帶寬仍為5 Mb/s,網(wǎng)絡(luò)延遲100 ms 時(shí)各擁塞控制算法的平均吞吐量與平均時(shí)延。在該場(chǎng)景下,BBR的平均吞吐量最高,達(dá)到了4.87 Mb/s,但相較于另外三者并無(wú)明顯優(yōu)勢(shì),四者的平均吞吐值非常接近。而在時(shí)延方面,時(shí)延最高者是Cubic,其時(shí)延顯著高出其他三者,比時(shí)延最低的Copa 算法高出了接近30%,BBR 的時(shí)延僅次于Cubic,PCC-Vivace 的時(shí)延達(dá)到了113 ms;Copa 的平均時(shí)延仍最低,約為106 ms。
表1 網(wǎng)絡(luò)帶寬為5 Mb/s 和網(wǎng)絡(luò)延遲為100 ms時(shí)的平均吞吐量與平均時(shí)延Tab 1 Average throughput and average delay with network bandwidth of 5 Mb/s and network delay of 100 ms
從實(shí)驗(yàn)結(jié)果來(lái)看,BBR 在絕大多數(shù)場(chǎng)景下的平均吞吐量都是領(lǐng)先的,原因在于BBR 的帶寬探測(cè)機(jī)制,可以充分利用鏈路中的富余帶寬;隨著隨機(jī)丟包率的增加,PCC-Vivace 的吞吐量不斷下降,原因是PCC-Vivace 在PCC 原始版本的基礎(chǔ)上引入了RTT 梯度來(lái)表征時(shí)延,但對(duì)丟包率的系數(shù)設(shè)置未作改動(dòng),因此在隨機(jī)丟包增加的情況下,為了達(dá)到低時(shí)延,勢(shì)必要犧牲吞吐量;Copa 的平均吞吐量在隨機(jī)丟包0%、0.1%、0.5%時(shí)幾乎都是最低的;Cubic 的吞吐量較高,總體而言僅次于BBR,但在隨機(jī)丟包率增加之后,Cubic 的吞吐量急劇下降,原因是Cubic 是基于丟包的擁塞控制,隨機(jī)丟包會(huì)顯著影響其對(duì)網(wǎng)絡(luò)狀況的判斷從而導(dǎo)致性能的下降。
時(shí)延方面,BBR 在幾乎所有場(chǎng)景下時(shí)延都是最高的;PCC-Vivace 在絕大多數(shù)時(shí)候都是時(shí)延最低的,可見(jiàn)效用函數(shù)中RTT 梯度的引入是卓有成效的;Cubic 的時(shí)延在大多數(shù)情況下都較高,反而是在隨機(jī)丟包率達(dá)到1%時(shí),時(shí)延明顯下降,可能的原因是Cubic 是基于丟包的擁塞控制方法,丟包率對(duì)其時(shí)延的影響遠(yuǎn)大于對(duì)其他方案的影響;Copa 的時(shí)延相對(duì)較低,但在均值附近震蕩的幅度大。
2.2.2 單一方法多條流的公平性
為了測(cè)試同一方案在多條流共存時(shí)分享鏈路帶寬的公平性,實(shí)驗(yàn)中在0 s、40 s、80 s 時(shí)分別發(fā)送一條流,考察這三條流最終是否能夠均分鏈路帶寬,以及均分帶寬并達(dá)到收斂的時(shí)間長(zhǎng)短。
以下以鏈路帶寬為3 Mb/s,網(wǎng)絡(luò)延遲為100 ms,隨機(jī)丟包率0.1%為例,簡(jiǎn)要展示各方案公平性的測(cè)試結(jié)果。
圖1 展示了四種擁塞控制算法的公平性。從圖1 中可以看到:BBR(圖1(a))的三條流帶寬差距較大,無(wú)法實(shí)現(xiàn)公平性;Copa(圖1(c))則實(shí)現(xiàn)了公平性;PCC-Vivace(圖1(b))在大部分時(shí)刻仍能保持公平,個(gè)別時(shí)段帶寬的極差能達(dá)到0.8 Mb/s;Cubic(圖1(d))三條流的帶寬能夠收斂到均值,但帶寬的波動(dòng)幅度比Copa 還要高,在均值上下0.25 Mb/s波動(dòng)。
圖1 隨機(jī)丟包率0.1%時(shí)各方案的公平性Fig.1 Fairness of each scheme with random packet loss rate of 0.1%
2.2.3 TCP友好性
TCP 友好性,即新的擁塞控制方法在與現(xiàn)有的TCP 擁塞控制方案共存時(shí)的性能表現(xiàn),著重關(guān)注其是否擠占TCP 流的帶寬,能否與TCP 友好共存。因此,本文通過(guò)測(cè)試不同擁塞控制方法在與Cubic 競(jìng)爭(zhēng)時(shí)的吞吐量表現(xiàn)來(lái)表征其TCP 友好性。
以下以網(wǎng)絡(luò)延遲1 ms,隨機(jī)丟包率0%為例,擁塞控制算法以BBR 為例,簡(jiǎn)要展示其TCP 友好性隨帶寬變化的結(jié)果。
如圖2 所示,在隨機(jī)丟包為0%時(shí),在網(wǎng)絡(luò)延遲為1 ms 的狀況下,在帶寬為1 Mb/s 時(shí),BBR 搶占Cubic 帶寬的情況非常嚴(yán)重,二者的平均帶寬之比約為3∶1,此時(shí)BBR 的TCP 友好性較差。而在帶寬為5 Mb/s、20 Mb/s、100 Mb/s 時(shí),BBR 與Cubic 能夠在鏈路中友好共存,二者的平均吞吐量之比小于等于1∶1,也就表明BBR 的TCP 友好性較優(yōu)。
圖2 隨機(jī)丟包率0%時(shí)BBR的TCP友好性Fig.2 TCP friendliness of BBR with random packet loss rate of 0%
表2~5 簡(jiǎn)要總結(jié)了各類場(chǎng)景下,根據(jù)所考察的性能指標(biāo)的不同,以三種輕量級(jí)基于學(xué)習(xí)的擁塞控制算法(BBR、PCCVivace、Copa)及作為對(duì)比的Cubic 為備選項(xiàng),應(yīng)選取何種擁塞控制算法,方能在指定場(chǎng)景下達(dá)到網(wǎng)絡(luò)性能的相對(duì)最優(yōu)。
表2 展示了當(dāng)考察的性能指標(biāo)為吞吐量時(shí),各場(chǎng)景下所應(yīng)采用的最優(yōu)擁塞控制算法。
表2 考察吞吐量時(shí)的最優(yōu)擁塞控制算法Tab 2 Optimal congestion control algorithm when focusing on throughput
表3 展示了各場(chǎng)景下所應(yīng)采用的能使時(shí)延最低的擁塞控制算法。其中隨機(jī)丟包率為0%時(shí)列舉了所有可能的鏈路帶寬和網(wǎng)絡(luò)延遲的參數(shù),而隨機(jī)丟包率為0.1%、0.5%、1%時(shí)則以網(wǎng)絡(luò)延遲10 ms 為代表,列舉了所有可能的鏈路帶寬參數(shù)。
表3 考察時(shí)延時(shí)的最優(yōu)擁塞控制算法Tab 3 Optimal congestion control algorithm when focusing on delay
表4 展示了當(dāng)考察的性能為公平性,各場(chǎng)景下所應(yīng)采用的擁塞控制算法。其中,網(wǎng)絡(luò)延遲以100 ms 為代表,列舉了所有的鏈路帶寬和隨機(jī)丟包率的可能參數(shù),其他網(wǎng)絡(luò)延遲的情況下,最優(yōu)擁塞控制算法的選擇與100 ms 幾乎相同。
表4 考察公平性時(shí)的最優(yōu)擁塞控制算法Tab 4 Optimal congestion control algorithm when focusing on fairness
表5 展示了各場(chǎng)景下所應(yīng)采用的能使TCP 友好性最優(yōu)的擁塞控制算法。其中網(wǎng)絡(luò)延遲以1 ms 為代表,列舉了所有鏈路帶寬和隨機(jī)丟包率的可能參數(shù)。
表5 考察TCP友好性時(shí)的最優(yōu)擁塞控制算法Tab 5 Optimal congestion control algorithm when focusing on TCP friendliness
實(shí)際網(wǎng)絡(luò)環(huán)境中,不同應(yīng)用場(chǎng)景的環(huán)境參數(shù)差異非常大。例如,在廣域網(wǎng)中,網(wǎng)絡(luò)帶寬在100 Mb/s 量級(jí),延遲在40 ms 左右;衛(wèi)星網(wǎng)絡(luò)的帶寬則只有10 Mb/s 以內(nèi),延遲則達(dá)到了500 ms;而數(shù)據(jù)中心的帶寬通常達(dá)到了100 Gb/s 以上,而延遲則只有1 ms 級(jí)別。同時(shí),即使在同一應(yīng)用下,網(wǎng)絡(luò)環(huán)境參數(shù)也可能發(fā)生顯著的變化。那么,在網(wǎng)絡(luò)環(huán)境不斷變化時(shí),如果仍只使用單一的擁塞控制方法,勢(shì)必網(wǎng)絡(luò)的性能,例如吞吐量、時(shí)延等,會(huì)受到極大的影響,因此,必須設(shè)計(jì)一個(gè)能夠?qū)W(wǎng)絡(luò)環(huán)境變化進(jìn)行適應(yīng)的擁塞控制方案,針對(duì)特定的性能指標(biāo),能夠比原來(lái)使用單一擁塞控制方法時(shí)有明顯的優(yōu)勢(shì)。
基于此前章節(jié)的分析,各種擁塞控制算法在不同場(chǎng)景下各有優(yōu)劣,尤其在極端條件下這樣的優(yōu)缺點(diǎn)體現(xiàn)得更為顯著,因此本文設(shè)計(jì)一個(gè)根據(jù)場(chǎng)景來(lái)切換擁塞控制方法的方案。具體地,本文通過(guò)對(duì)場(chǎng)景指標(biāo)(帶寬、網(wǎng)絡(luò)延遲、隨機(jī)丟包率)的識(shí)別,選擇當(dāng)前場(chǎng)景下表現(xiàn)較好的擁塞控制方法,而在網(wǎng)絡(luò)環(huán)境發(fā)生顯著變化時(shí),切換到其他備選的擁塞控制方法,以期實(shí)現(xiàn)總體性能的優(yōu)化;并且,方案還應(yīng)考慮與鏈路中的其他流尤其是傳統(tǒng)TCP 流友好的共存,根據(jù)這一指標(biāo)對(duì)方案進(jìn)行相應(yīng)的調(diào)整,在兼顧TCP 友好性的情況下實(shí)現(xiàn)吞吐量最大化、時(shí)延最小化。
3.2.1 方案框架
在實(shí)際網(wǎng)絡(luò)環(huán)境中,各項(xiàng)環(huán)境指標(biāo)是不斷變化的,并且各項(xiàng)指標(biāo)的變化范圍是連續(xù)值而非離散值。然而,不能將無(wú)數(shù)個(gè)連續(xù)的參數(shù)值視為無(wú)數(shù)個(gè)場(chǎng)景,因此,必須要對(duì)連續(xù)的參數(shù)值進(jìn)行一定的離散化,當(dāng)環(huán)境參數(shù)在某個(gè)固定的范圍內(nèi)波動(dòng)時(shí),將其視為同一個(gè)場(chǎng)景,而一旦波動(dòng)超出這個(gè)指定的范圍,則將其識(shí)別為另一個(gè)場(chǎng)景,并由此觸發(fā)擁塞控制方案的切換。
實(shí)踐中,本文在此前的100 多種實(shí)驗(yàn)場(chǎng)景的基礎(chǔ)上,為每一個(gè)場(chǎng)景的鏈路帶寬和網(wǎng)絡(luò)延遲設(shè)定一個(gè)連續(xù)的波動(dòng)范圍,當(dāng)實(shí)際網(wǎng)絡(luò)的帶寬與延遲落在范圍內(nèi)時(shí),將其識(shí)別為特定的場(chǎng)景,而當(dāng)系統(tǒng)監(jiān)測(cè)到實(shí)時(shí)的帶寬或延遲超出了指定范圍時(shí),根據(jù)其所屬的新的范圍,識(shí)別得到下一個(gè)場(chǎng)景,并觸發(fā)擁塞控制方法的切換。
對(duì)于實(shí)時(shí)的帶寬和延遲值所應(yīng)落在的范圍,以帶寬為例,基于前述實(shí)驗(yàn)中各帶寬值正好分別間隔約5 倍,考慮將帶寬值取以5 為底的對(duì)數(shù),當(dāng)實(shí)時(shí)帶寬落在某兩個(gè)前述實(shí)驗(yàn)帶寬值的范圍內(nèi)時(shí),若其超出前一帶寬值在一定范圍內(nèi),則判定為前一帶寬值所對(duì)應(yīng)的場(chǎng)景,否則判定為后一帶寬值所對(duì)應(yīng)的場(chǎng)景。數(shù)學(xué)表達(dá)式如下:將實(shí)時(shí)帶寬設(shè)為B
,前述實(shí)驗(yàn)的離散帶寬值為B
,B
,…,B
,而B
實(shí)際落在了B
與B
之間,即則令
否則有
C
是常數(shù),表示變化的幅度。網(wǎng)絡(luò)延遲的處理方法與帶寬相同,但需要將式(14)中以5 為底的對(duì)數(shù)改為以10 為底的對(duì)數(shù)。擁塞控制決策方式如算法1 所示。算法1 擁塞控制算法決策流程。
輸入 實(shí)時(shí)鏈路帶寬B
,實(shí)時(shí)網(wǎng)絡(luò)延遲D
,實(shí)時(shí)隨機(jī)丟包率L
,閾值C
,帶寬檔位數(shù)n
。輸出 決策后的擁塞控制算法。
C
和決策檔位數(shù)n
輸入擁塞控制決策模塊。擁塞控制決策模塊根據(jù)算法1 求出下一時(shí)刻的擁塞控制算法,傳給流產(chǎn)生模塊。流產(chǎn)生模塊根據(jù)新的擁塞控制算法產(chǎn)生流,并將吞吐量和時(shí)延實(shí)時(shí)回報(bào)給系統(tǒng)。圖3 方案架構(gòu)Fig.3 Scheme architecture
3.2.2 實(shí)驗(yàn)設(shè)置與結(jié)果分析
實(shí)驗(yàn)總時(shí)長(zhǎng)為500 s。設(shè)置初始的鏈路帶寬和網(wǎng)絡(luò)延遲,并設(shè)置帶寬的變化范圍在1 Mb/s~100 Mb/s,延遲的變化范圍為1 ms~500 ms,隨機(jī)丟包率的變化范圍為0%~1%。實(shí)驗(yàn)中設(shè)置對(duì)照組與實(shí)驗(yàn)組,對(duì)照組一直使用初始鏈路帶寬和網(wǎng)絡(luò)延遲下的最優(yōu)擁塞控制方法(以下稱為原方案),實(shí)驗(yàn)組則根據(jù)系統(tǒng)實(shí)時(shí)監(jiān)測(cè)到的當(dāng)前的鏈路帶寬與網(wǎng)絡(luò)延遲,確定其所落在的范圍來(lái)決定所應(yīng)切換的擁塞控制算法。
具體地,本文進(jìn)行3 組實(shí)驗(yàn),實(shí)驗(yàn)時(shí)長(zhǎng)均為500 s,每組實(shí)驗(yàn)除開(kāi)始和結(jié)束的時(shí)刻外,隨機(jī)生成4 個(gè)時(shí)刻,當(dāng)實(shí)驗(yàn)進(jìn)行到這些時(shí)刻時(shí),網(wǎng)絡(luò)環(huán)境參數(shù)即帶寬、延遲和丟包率發(fā)生隨機(jī)的改變,模擬實(shí)際網(wǎng)絡(luò)環(huán)境的變化。3 組實(shí)驗(yàn)起始的鏈路帶寬都為5 Mb/s,網(wǎng)絡(luò)延遲都為10 ms,隨機(jī)丟包率都為0%。在以吞吐量為考察指標(biāo)時(shí),對(duì)照組全程使用Copa 作為擁塞控制算法,而實(shí)驗(yàn)組初始狀態(tài)使用Copa,其后根據(jù)網(wǎng)絡(luò)環(huán)境的變化自行切換擁塞控制算法。若以時(shí)延為考察指標(biāo),則對(duì)照組應(yīng)全程使用PCC-Vivace,實(shí)驗(yàn)組同理,初始狀態(tài)使用PCC-Vivace,之后根據(jù)環(huán)境進(jìn)行切換。實(shí)驗(yàn)中取式(14)中的常數(shù)C
為0.5。實(shí)際實(shí)驗(yàn)過(guò)程中,本文對(duì)于3 組實(shí)驗(yàn)分別都在0 s~500 s隨機(jī)生成4 個(gè)時(shí)刻t
、t
、t
、t
,在這些時(shí)刻,網(wǎng)絡(luò)環(huán)境即鏈路帶寬和網(wǎng)絡(luò)延遲發(fā)生隨機(jī)變化,變化的情況見(jiàn)表6。表6 三組實(shí)驗(yàn)隨機(jī)產(chǎn)生的參數(shù)Tab 6 Randomly generated parameters in 3 sets of experiments
由表6 和算法1,當(dāng)考察指標(biāo)分別為吞吐量和時(shí)延時(shí),得到在4 個(gè)隨機(jī)時(shí)刻切換到的擁塞控制算法,如表7。
表7 四個(gè)隨機(jī)時(shí)刻下3組實(shí)驗(yàn)根據(jù)環(huán)境參數(shù)求得的擁塞控制算法Tab 7 Obtained congestion control algorithm based on environmental parameters at 4 random moments in 3 sets of experiments
根據(jù)以上隨機(jī)生成的環(huán)境參數(shù)和求得應(yīng)切換的擁塞控制算法,運(yùn)行實(shí)驗(yàn)后得到的結(jié)果如下。
圖4(a)是第1 組實(shí)驗(yàn)以吞吐量為性能指標(biāo)的實(shí)驗(yàn)結(jié)果。在8 s、243 s、364 s、445 s 時(shí)網(wǎng)絡(luò)發(fā)生變化。從實(shí)驗(yàn)結(jié)果可以得到,8 s~243 s 這一過(guò)程中由于擁塞控制算法沒(méi)有改變,因此吞吐量沒(méi)有增加。而在243 s~364 s 時(shí),擁塞控制算法切換為BBR,此過(guò)程中本文方案的平均吞吐為44.06 Mb/s,比原方案的43.75 Mb/s 高出了0.7%。此后,在364 s~445 s 這個(gè)過(guò)程中,本文方案的平均吞吐量達(dá)到了6.793 Mb/s,高出原方案的6.681 Mb/s 達(dá)16.8%。而在445 s 到實(shí)驗(yàn)結(jié)束時(shí),本文方案同樣取得了更高的平均吞吐量,為4.88 Mb/s,而原方案為4.762 Mb/s。
時(shí)延如圖4(b)所示,從243 s~364 s 這個(gè)過(guò)程中,本文方案的平均時(shí)延為17.76 ms,比原方案20.73 ms 顯著降低了14.3%。此外,在445 s~500 s 這個(gè)過(guò)程中,本文方案的平均時(shí)延也比原方案低了2.01 ms,降幅達(dá)4.2%。
圖4 第1組實(shí)驗(yàn)中,原方案與本文方案的平均吞吐量和平均時(shí)延比較Fig.4 Comparison of average throughput and average delay between original and proposed schemes in experiment 1
圖5(a)是第2 組實(shí)驗(yàn)以吞吐量為性能指標(biāo)的實(shí)驗(yàn)結(jié)果。從實(shí)驗(yàn)結(jié)果中可以看到,基于場(chǎng)景切換的擁塞控制方案在0 s~178 s 沒(méi)有顯著的優(yōu)勢(shì),但從第178 秒開(kāi)始取得比原方案更高的吞吐量,尤其是從285 s~438 s 時(shí),本文方案328.9 Mb/s的平均吞吐量比原方案的247.8 Mb/s 高出了32.7%。
圖5(b)是第2 組實(shí)驗(yàn)以時(shí)延為性能指標(biāo)的實(shí)驗(yàn)結(jié)果??梢杂^察到,在178 s~285 s 時(shí),本文方案比原方案的平均時(shí)延略增加了10%。但在438 s~500 s 時(shí),基于場(chǎng)景切換的擁塞控制方案的時(shí)延有顯著降低,從原來(lái)的78.3 ms 降為21.18 ms,降幅多達(dá)73%。
圖5 第2組實(shí)驗(yàn)中,原方案與本文方案的平均吞吐量和平均時(shí)延比較Fig.5 Comparison of average throughput and average delay between original and proposed schemes in experiment 2
如圖6(a)所示,在139 s~368 s 這個(gè)過(guò)程中,本文方案切換到的BBR 取得了167.3 Mb/s 的平均吞吐量,比原方案的161.7 Mb/s 高出了3.5%。但從第447 秒到實(shí)驗(yàn)結(jié)束的過(guò)程中,本文方案使用的PCC-Vivace 的平均吞吐量比原方案略低了8 Mb/s。
如圖6(b)所示,基于場(chǎng)景變化的本文方案50 s~447 s 的時(shí)延都有顯著降低,其中50 s~139 s 這一過(guò)程降低的幅度最大,從61.48 ms 降為44.55 ms,降幅達(dá)到了27.5%。在139 s~368 s 以及368 s~447 s 的時(shí)延降低量分別有10.79 ms 和3.62 ms,降幅分別為18.7%和11.3%。
圖6 第3組實(shí)驗(yàn)中,原方案與本文方案的平均吞吐量和平均時(shí)延比較Fig.6 Comparison of average throughput and average delay between original and proposed schemes in experiment 3
從以上實(shí)驗(yàn)中可以得出清晰的結(jié)論:在網(wǎng)絡(luò)環(huán)境隨機(jī)變化的情況下,相較于使用單一擁塞控制方案,基于場(chǎng)景變化的擁塞控制切換方案在吞吐量和時(shí)延上都能取得明顯的性能優(yōu)勢(shì),總吞吐量增幅達(dá)到5%以上,總時(shí)延降幅達(dá)到10%以上。
本文的工作主要分為兩部分:第一部分,對(duì)網(wǎng)絡(luò)環(huán)境參數(shù)如鏈路帶寬、網(wǎng)絡(luò)延遲和隨機(jī)丟包率等通過(guò)枚舉組合出多種網(wǎng)絡(luò)場(chǎng)景,在這些場(chǎng)景下進(jìn)行大量的仿真實(shí)驗(yàn),得到已有的輕量級(jí)基于學(xué)習(xí)的擁塞控制方案在各場(chǎng)景下的性能表現(xiàn),性能指標(biāo)包括方案的吞吐量與時(shí)延,同時(shí)也考慮方案的公平性與TCP 友好性,并對(duì)以上性能表現(xiàn)進(jìn)行比較與總結(jié);第二部分在第一部分的基礎(chǔ)上,提出了一個(gè)基于場(chǎng)景變化的擁塞控制切換方案,從固定切換周期單項(xiàng)環(huán)境參數(shù)的變化、多項(xiàng)環(huán)境參數(shù)的變化,到根據(jù)網(wǎng)絡(luò)環(huán)境參數(shù)變化的幅度觸發(fā)場(chǎng)景的變化,由淺入深地闡述方案的設(shè)計(jì)思路與實(shí)現(xiàn)邏輯,目的是為了逐步模擬實(shí)際網(wǎng)絡(luò)環(huán)境的變化情況。系統(tǒng)在識(shí)別到場(chǎng)景的變化之后切換至更優(yōu)的擁塞控制算法,從而取得更佳的性能表現(xiàn)。利用仿真實(shí)驗(yàn)對(duì)方案的思路進(jìn)行驗(yàn)證。實(shí)驗(yàn)結(jié)果表明,基于場(chǎng)景變化的擁塞控制切換方案在網(wǎng)絡(luò)環(huán)境不斷變化的情況下,能夠比原來(lái)使用單一的擁塞控制算法在吞吐量和時(shí)延上都取得顯著的優(yōu)勢(shì),同時(shí)兼顧TCP 友好性。
未來(lái)的研究勢(shì)必要提高對(duì)場(chǎng)景識(shí)別的精細(xì)程度,當(dāng)前的場(chǎng)景識(shí)別相對(duì)粗糙,雖然實(shí)驗(yàn)中針對(duì)每種擁塞控制方案列舉的場(chǎng)景超過(guò)了100 種,但仍然是許多離散值,需要對(duì)實(shí)際網(wǎng)絡(luò)的場(chǎng)景進(jìn)行近似之后方能采用本文提出的擁塞控制切換方案。而實(shí)際網(wǎng)絡(luò)環(huán)境的場(chǎng)景指標(biāo)都是連續(xù)值,其多樣化程度必然超出了實(shí)驗(yàn)所列舉的范圍,因而必須要提高場(chǎng)景識(shí)別的精細(xì)程度,使其能夠更真實(shí)地反映實(shí)際網(wǎng)絡(luò)狀況。特別地,場(chǎng)景與擁塞控制方案之間的映射關(guān)系也是值得重新思考的。同時(shí),隨著強(qiáng)化學(xué)習(xí)技術(shù)的不斷發(fā)展,當(dāng)其訓(xùn)練的時(shí)間成本與應(yīng)用上的開(kāi)銷下降到可接受范圍內(nèi)時(shí),必然要將強(qiáng)化學(xué)習(xí)的擁塞控制方案加入到備選方案中,屆時(shí)切換方案的成本和難度也會(huì)相應(yīng)增加,而這也是需要努力的方向之一。