徐 嘯,顧玲麗,陳建平,傅啟明,3,陸 悠,3
(1.蘇州科技大學(xué)電子與信息工程學(xué)院,江蘇蘇州 215009;2.蘇州科技大學(xué)江蘇省建筑智慧節(jié)能重點(diǎn)實(shí)驗(yàn)室,江蘇蘇州 215009;3.蘇州科技大學(xué)天平學(xué)院電子與信息工程學(xué)院,江蘇 蘇州 215011)
隨著智慧城市的快速發(fā)展,實(shí)時(shí)監(jiān)控、遠(yuǎn)程控制、虛擬現(xiàn)實(shí)等應(yīng)用對(duì)帶寬、時(shí)延、丟包率等網(wǎng)絡(luò)性能提出了更高要求。傳統(tǒng)的單一接入技術(shù)受限于有限的網(wǎng)絡(luò)資源以及資源利用的不均衡性,很難滿足需求,因此,能充分利用網(wǎng)絡(luò)資源的多路徑傳輸技術(shù)成為了當(dāng)前的研究熱點(diǎn)[1]。與傳統(tǒng)的單路徑傳輸技術(shù)相比,端到端多路徑傳輸技術(shù)主要利用終端上的多種接入方式(如WiFi、WLAN、蜂窩網(wǎng)絡(luò)接口)以及兩端之間的多條可達(dá)路徑,實(shí)現(xiàn)端到端多條路徑并行傳輸數(shù)據(jù),進(jìn)一步提高對(duì)網(wǎng)絡(luò)資源的利用并滿足應(yīng)用需求[2]。多路徑傳輸本質(zhì)是在源節(jié)點(diǎn)與宿節(jié)點(diǎn)之間的多條可達(dá)路徑中選取合適的路徑并分配子流進(jìn)行并行傳輸,所以多路徑路由是實(shí)現(xiàn)高效傳輸?shù)年P(guān)鍵因素[3]。由于不同路徑間的實(shí)際狀況存在差異,路由與子流分配的協(xié)同也會(huì)對(duì)多路徑傳輸性能造成較大影響,因此多路徑路由和子流分配成為當(dāng)前多路徑傳輸研究的重點(diǎn)。
針對(duì)上述問(wèn)題,研究人員提出許多不同的解決方案。在多路徑路由方面,解決方案主要分為兩類。第一類方案是根據(jù)路由可達(dá)性進(jìn)行多路徑路由計(jì)算,為不同子流選擇互不相交的路徑,避免出現(xiàn)不同子流共用瓶頸路徑的問(wèn)題。例如文獻(xiàn)[4]提出的算法以最短路徑為依據(jù),依次選擇多條互不相交的短路徑作為多路徑傳輸路徑。文獻(xiàn)[5]采用類似的選路算法,根據(jù)需求選出k條節(jié)點(diǎn)不相交或鏈路不相交路徑。文獻(xiàn)[6]在選出k條不相交路徑的同時(shí)要求最小帶寬路徑最大。第二類方案在選路的同時(shí)考慮鏈路負(fù)載。文獻(xiàn)[7-8]在選路時(shí)以鏈路負(fù)載為依據(jù),優(yōu)先選擇負(fù)載較輕的路徑。文獻(xiàn)[9]選擇帶寬較大且相互帶寬差異較小的路徑進(jìn)行傳輸。文獻(xiàn)[10]在進(jìn)行路由選擇的同時(shí)考慮上層業(yè)務(wù)的需求,根據(jù)傳輸任務(wù)的優(yōu)先級(jí)進(jìn)行選路和分配資源。上述工作從不同角度實(shí)現(xiàn)了多路徑路由,在一定程度上提高多路徑傳輸性能。但這些多路徑路由大多數(shù)是靜態(tài)的,無(wú)法根據(jù)實(shí)時(shí)網(wǎng)絡(luò)狀態(tài)及時(shí)調(diào)整路由。除上述針對(duì)多路徑路由問(wèn)題的解決方案外,也有許多從子流分配角度入手提高多路徑傳輸效率的工作。等價(jià)多路徑(Equal-Cost Multi-Path,ECMP)路由算法是一種較早提出的解決方案[11-12],但僅將子流均勻地分配給多條可選路徑,并未考慮不同路徑的網(wǎng)絡(luò)狀態(tài)[13-14]。文 獻(xiàn)[15]提出加 權(quán)多路 徑(Weight-Cost Multi-Path,WCMP)路由策略對(duì)多路徑路由進(jìn)行改進(jìn),按不同路徑的帶寬為多路徑路由分配不同的子流,但其參考的帶寬為靜態(tài)值,由于網(wǎng)絡(luò)的動(dòng)態(tài)變化,其分配決策不一定能確保是最優(yōu)的。根據(jù)路徑長(zhǎng)度及懲罰性指數(shù)函數(shù),DEFT 算法在最短路徑與長(zhǎng)路徑上分配流量[16],以此突破等價(jià)多路徑平均分配子流的限制,但其與最短路徑機(jī)制不兼容,限制在實(shí)際網(wǎng)絡(luò)中的應(yīng)用。
子流分配工作的最大問(wèn)題是子流分配決策往往取決于靜態(tài)的鏈路狀態(tài),缺少對(duì)網(wǎng)絡(luò)狀態(tài)動(dòng)態(tài)變化的感知,無(wú)法實(shí)時(shí)發(fā)現(xiàn)當(dāng)前負(fù)載較輕的路徑[17]。因此,也有研究人員在子流分配過(guò)程中考慮流量的動(dòng)態(tài)特征,如軟件定義混合路由(Software-defined Hybrid Routing,SHR)算法依據(jù)網(wǎng)絡(luò)中長(zhǎng)流與短流的分布特點(diǎn)[18-19],在軟件定義網(wǎng)絡(luò)(Software Defined Network,SDN)架構(gòu)支撐下[20-21],通過(guò)控制器感知流的截止時(shí)間及網(wǎng)絡(luò)轉(zhuǎn)發(fā)節(jié)點(diǎn)的等待隊(duì)列長(zhǎng)度,對(duì)網(wǎng)絡(luò)中的長(zhǎng)流進(jìn)行優(yōu)化調(diào)度,短流則由交換節(jié)點(diǎn)根據(jù)帶寬狀態(tài)隨機(jī)選路。MLF 算法[22]考慮長(zhǎng)流、短流的分布特點(diǎn),依據(jù)鏈路剩余帶寬和哈希運(yùn)算對(duì)長(zhǎng)流進(jìn)行調(diào)度,在此基礎(chǔ)上為短流分配剩余帶寬最大的路徑。這些方法雖然考慮到長(zhǎng)流、短流的動(dòng)態(tài)特點(diǎn),通過(guò)有側(cè)重調(diào)度來(lái)優(yōu)化多路徑傳輸,但這種將流量區(qū)分進(jìn)而分別調(diào)度的做法會(huì)導(dǎo)致路由與子流分配相互缺少協(xié)同,影響多路徑傳輸性能。除此之外,也有研究從網(wǎng)絡(luò)全局負(fù)載角度入手解決子流分配問(wèn)題,例如文獻(xiàn)[23]提出一種負(fù)載均衡算法,設(shè)計(jì)多路徑路由模型,以鏈路可用帶寬作為輸入,從全網(wǎng)角度確定傳輸路徑和子流分配。文獻(xiàn)[24]則基于全局資源視圖設(shè)計(jì)擁塞控制機(jī)制,同樣以鏈路帶寬利用率為依據(jù),為流量分配合適的路徑,并可以實(shí)時(shí)調(diào)整傳輸速率。但這兩種算法側(cè)重點(diǎn)為網(wǎng)絡(luò)負(fù)載均衡,缺乏依據(jù)網(wǎng)絡(luò)狀態(tài)實(shí)時(shí)調(diào)整路由和子流分配的能力。
在網(wǎng)絡(luò)動(dòng)態(tài)變化環(huán)境下,當(dāng)前多路徑傳輸機(jī)制在多路徑路由、子流分配以及兩者協(xié)同方面的局限性主要有:1)在路由方面缺少實(shí)時(shí)、智能的方法,能夠自適應(yīng)依據(jù)網(wǎng)絡(luò)狀態(tài)變化實(shí)時(shí)調(diào)整多路徑傳輸所使用的路由,因此在網(wǎng)絡(luò)負(fù)載變化較大時(shí),很難及時(shí)調(diào)整傳輸路徑;2)子流分配缺乏與多路徑路由的協(xié)同。在已有多路徑路由信息的基礎(chǔ)上,根據(jù)鏈路帶寬等狀態(tài)指標(biāo),按固定或動(dòng)態(tài)調(diào)整子流的分配、傳輸速率等,較少根據(jù)網(wǎng)絡(luò)實(shí)時(shí)狀態(tài)動(dòng)態(tài)地與路由協(xié)同決策。因此,子流分配調(diào)度無(wú)法充分配合路由的變化,從而限制多路徑傳輸?shù)男阅?,不能充分發(fā)揮多路徑傳輸優(yōu)勢(shì)。
本文引入在線學(xué)習(xí)思路[25],利用SDN 提供的集中控制以及網(wǎng)絡(luò)一致性狀態(tài)視圖等方面優(yōu)勢(shì),提出一種智能多路徑路由及子流分配協(xié)同算法。采用Q-learning 設(shè)計(jì)多路徑路由算法使傳輸路由和子流分配能夠相互協(xié)同和在線更新,并通過(guò)Q-value 的回環(huán)消除方法,提高算法收斂速度。
端到端多路徑傳輸拓?fù)洌ㄟx用智能路由場(chǎng)景下經(jīng)典的NSFNet[26]拓?fù)洌┤鐖D1 所示,在網(wǎng)絡(luò)環(huán)境下源節(jié)點(diǎn)A、宿節(jié)點(diǎn)B之間存在傳輸任務(wù),節(jié)點(diǎn)A與B之間的網(wǎng)絡(luò)拓?fù)淙鐖D1 所示存在多條可達(dá)路徑。在路由和子流分配方面,根據(jù)網(wǎng)絡(luò)實(shí)時(shí)運(yùn)行狀態(tài)描述節(jié)點(diǎn)A與B之間多路徑傳輸?shù)臎Q策問(wèn)題,尋找A與B之間的多條路徑,并在路徑中合理分配子流,以滿足網(wǎng)絡(luò)性能指標(biāo)。
圖1 端到端多路徑傳輸拓?fù)銯ig.1 End-to-end multi-path transmission topology
為方便后續(xù)算法描述和討論,給出如下定義:
定義1(圖、源節(jié)點(diǎn)、宿節(jié)點(diǎn)、轉(zhuǎn)發(fā)節(jié)點(diǎn)、邊、鄰接矩陣)如圖1 所示的網(wǎng)絡(luò)拓?fù)渲?,網(wǎng)絡(luò)鏈路、轉(zhuǎn)發(fā)節(jié)點(diǎn)、發(fā)送和接收端可以用無(wú)向圖G=(V,E,c(v),m,n)表示。其中:V={A,B,V*}為網(wǎng)絡(luò)中節(jié)點(diǎn)集合,代表傳輸層設(shè)備;A表示源節(jié)點(diǎn);B表示宿節(jié)點(diǎn);集合V*={v1,v2,…,vi}表示轉(zhuǎn)發(fā)節(jié)點(diǎn)。E為網(wǎng)絡(luò)中邊集合,代表鏈路,c(vi)代表集合V*中的轉(zhuǎn)發(fā)節(jié)點(diǎn)vi的容量,并且m和n分別表示圖G中節(jié)點(diǎn)數(shù)和邊數(shù)。為了便于討論,用n行n列的鄰接矩陣D表示無(wú)向圖G,如式(1)所示。當(dāng)節(jié)點(diǎn)i與節(jié)點(diǎn)j是鄰居節(jié)點(diǎn)時(shí),Dij和Dji都為1,否則為0。
定義2(路由、鄰居節(jié)點(diǎn)、下一跳節(jié)點(diǎn)選擇)在網(wǎng)絡(luò)傳輸過(guò)程中,路由規(guī)定了流量從源節(jié)點(diǎn)到宿節(jié)點(diǎn)的路徑。在圖1 中,傳輸路徑A、v1、v7、v9、B為源節(jié)點(diǎn)A到宿節(jié)點(diǎn)B的一個(gè)路由。定義F(v)為路由中轉(zhuǎn)發(fā)節(jié)點(diǎn)v的鄰居節(jié)點(diǎn)。例如,F(xiàn)(v7)={v1,v6,v9}。由于轉(zhuǎn)發(fā)節(jié)點(diǎn)v需從鄰居節(jié)點(diǎn)F(v)中選取一個(gè)節(jié)點(diǎn)作為下一跳節(jié)點(diǎn)和組成路由的一部分,因此定義下一跳節(jié)點(diǎn)選擇,將其描述為nnext=R(v,B),其中v(v∈V*)為定義1 中討論的轉(zhuǎn)發(fā)節(jié)點(diǎn),B為定義1 中討論的的宿節(jié)點(diǎn),nnext(nnext∈F(v))表示路由算法為轉(zhuǎn)發(fā)節(jié)點(diǎn)v上待轉(zhuǎn)發(fā)流量分配的下一跳節(jié)點(diǎn)。在此基礎(chǔ)上,由源節(jié)點(diǎn)A到宿節(jié)點(diǎn)B的傳輸路徑由多個(gè)下一跳節(jié)點(diǎn)通過(guò)nnext=R(v,B)迭代生成,過(guò)程如下:v1=R(A,B),v7=R(v1,B),v9=R(v7,B),B=R(v9,B),最終形成傳輸路徑A、v1、v7、v9、B。
定義3(傳輸任務(wù)、子流)對(duì)于一個(gè)端到端多路徑傳輸任務(wù)(Task),T={Tid,Tsrc,Tdst,Tsize}四元組表示,如圖1 拓?fù)渲蠥到B的傳輸任務(wù)可表述為:Tid為任務(wù)編號(hào),源節(jié)點(diǎn)Tsrc=A,宿節(jié)點(diǎn)Tdst=B,Tsize表示傳輸任務(wù)大小。對(duì)于任務(wù)(Task)在多路徑傳輸中產(chǎn)生的子流(Subflow),S={Sid,Ssrc,Sdst,Ssize,Spnode,Snnode}六元組表示,Sid表示子流的編號(hào),Ssrc=A表示源節(jié)點(diǎn),Sdst=B表示宿節(jié)點(diǎn),Ssize表示子流大小,Spnode(Spnode∈V*)表示子流當(dāng)前所在的轉(zhuǎn)發(fā)節(jié)點(diǎn),Snnode=R(Spnode,B)表示路由算法為子流分配的下一跳節(jié)點(diǎn)。
定義4(節(jié)點(diǎn)負(fù)載)在網(wǎng)絡(luò)運(yùn)行過(guò)程中,隨著新任務(wù)和舊任務(wù)的完成,網(wǎng)絡(luò)負(fù)載都處于不斷變化的過(guò)程中。本文定義L(v)為節(jié)點(diǎn)v的負(fù)載,并通過(guò)節(jié)點(diǎn)負(fù)載的變化表示網(wǎng)絡(luò)負(fù)載變化。例如,對(duì)于轉(zhuǎn)發(fā)節(jié)點(diǎn)v,L(v)=50%表示節(jié)點(diǎn)v的當(dāng)前負(fù)載占其負(fù)載能力的50%。
考慮到多路徑傳輸對(duì)路由實(shí)時(shí)調(diào)整能力的需求,引入強(qiáng)化學(xué)習(xí)中的Q-learning 算法,建立面向在線學(xué)習(xí)的多路徑路由模型。
強(qiáng)化學(xué)習(xí)作為機(jī)器學(xué)習(xí)的一個(gè)重要分支,區(qū)別于有監(jiān)督學(xué)習(xí)和無(wú)監(jiān)督學(xué)習(xí),其通過(guò)Agent 不斷地與環(huán)境交互,可以在線學(xué)習(xí)到解決問(wèn)題的最優(yōu)策略。經(jīng)典強(qiáng)化學(xué)習(xí)模型如圖2 所示,主要包括Agent、環(huán)境、動(dòng)作、狀態(tài)、獎(jiǎng)賞元素。在多路徑路由問(wèn)題中,經(jīng)典模型每個(gè)智能體Agent(代表路由中的轉(zhuǎn)發(fā)節(jié)點(diǎn))感知當(dāng)前所處環(huán)境狀態(tài)St(待轉(zhuǎn)發(fā)流量的目標(biāo)節(jié)點(diǎn)),根據(jù)策略(路由選擇策略)選擇動(dòng)作at(選擇下一跳節(jié)點(diǎn))執(zhí)行,環(huán)境在動(dòng)作at的作用下返回獎(jiǎng)賞Rt(從轉(zhuǎn)發(fā)節(jié)點(diǎn)到達(dá)下一跳節(jié)點(diǎn)的傳輸時(shí)延)并到達(dá)下一狀態(tài),不斷重復(fù)此過(guò)程直到任務(wù)結(jié)束。
圖2 強(qiáng)化學(xué)習(xí)基本模型Fig.2 Basic model of reinforcement learning
本文的路由算法主要基于強(qiáng)化學(xué)習(xí)中Q-learning算法,該算法是一種經(jīng)典的off-policy 的TD 控制算法,同時(shí)也是一種基于狀態(tài)動(dòng)作值函數(shù)的算法,如式(2)所示:
其中:a為學(xué)習(xí)速率,決定對(duì)之前訓(xùn)練效果的保留程度;γ為折扣因子,決定對(duì)未來(lái)獎(jiǎng)賞的重視程度。初始化時(shí)算法需建立一個(gè)Q 值表(Q-table),初始值設(shè)置為0。在學(xué)習(xí)過(guò)程中,假設(shè)時(shí)刻t,Agent 所處狀態(tài)為St(算法輸入),采取動(dòng)作at(算法響應(yīng)事件)遷移至下一狀態(tài)St+1,并獲得立即獎(jiǎng)賞Rt,根據(jù)式(2)更新Q 值表。通過(guò)不斷迭代,最終收斂至最優(yōu)狀態(tài)動(dòng)作值函數(shù),并依此獲得最優(yōu)動(dòng)作策略。
基于上述理論,強(qiáng)化學(xué)習(xí)在路由選擇上的模型如圖3 所示,每個(gè)節(jié)點(diǎn)都有相應(yīng)的Q-table 作為該節(jié)點(diǎn)的下一跳節(jié)點(diǎn)選擇策略。其中,Q-table 的行代表狀態(tài),即宿節(jié)點(diǎn),列代表動(dòng)作,即流量在該節(jié)點(diǎn)可選擇的鄰居節(jié)點(diǎn)。結(jié)合1.1 節(jié)中下一跳節(jié)點(diǎn)選擇的定義,以圖3 為例,形如nnext=R(v1,v4)的路由選擇策略描述如下,對(duì)于位于轉(zhuǎn)發(fā)節(jié)點(diǎn)v1且宿節(jié)點(diǎn)為v4的待轉(zhuǎn)發(fā)流量,從節(jié)點(diǎn)v1對(duì)應(yīng)的Q-table 中選取宿節(jié)點(diǎn)v4所在的行,通過(guò)ε-greedy 策略根據(jù)該行中Q-value 值從鄰居節(jié)點(diǎn)F(v1)中選取某節(jié)點(diǎn)nnext作為下一跳節(jié)點(diǎn)。
圖3 基于強(qiáng)化學(xué)習(xí)的路由模型Fig.3 Routing model based on reinforcement learning
在Agent 更新方面,以k為宿節(jié)點(diǎn)的流量完成從本節(jié)點(diǎn)i到下一跳節(jié)點(diǎn)j的傳輸后,將這一段傳輸時(shí)延作為Agent 執(zhí)行動(dòng)作后從環(huán)境獲得的立即獎(jiǎng)賞r,并更新節(jié)點(diǎn)i的Q-table,如式(3)所示:
其中:r為流量在節(jié)點(diǎn)執(zhí)行轉(zhuǎn)發(fā)后獲得的立即獎(jiǎng)賞,即流量從節(jié)點(diǎn)i到節(jié)點(diǎn)j的傳輸時(shí)延;Qj(k,n)為節(jié)點(diǎn)j的Q-table 中表示宿節(jié)點(diǎn)為k且下一跳節(jié)點(diǎn)為n的Q-value 值。
本文算法采用基于時(shí)間片段的控制反饋機(jī)制,Agent 在每個(gè)時(shí)間片段內(nèi)根據(jù)網(wǎng)絡(luò)狀態(tài)給出路由決策,并根據(jù)反饋更新策略??紤]到算法建立在對(duì)網(wǎng)絡(luò)實(shí)時(shí)狀態(tài)數(shù)據(jù)的獲取和分析基礎(chǔ)之上,其在部署和實(shí)施時(shí)一方面需要準(zhǔn)確感知網(wǎng)絡(luò)整體的狀態(tài)視圖信息,另一方面也需要網(wǎng)絡(luò)具備邏輯集中的決策能力以及決策中心到各個(gè)相關(guān)節(jié)點(diǎn)的統(tǒng)一部署和管控能力。因此,本文算法選擇面向SDN 架構(gòu)的控制框架。
在控制框架中,決策等核心功能置于控制器,通過(guò)SDN 下的網(wǎng)絡(luò)視圖功能獲得網(wǎng)絡(luò)狀態(tài)。當(dāng)決策結(jié)果轉(zhuǎn)化為流表后,通過(guò)SDN 的流表將功能下發(fā)至轉(zhuǎn)發(fā)節(jié)點(diǎn)執(zhí)行??蚣芫唧w工作流程是在每個(gè)時(shí)間片段內(nèi),網(wǎng)絡(luò)根據(jù)上一個(gè)時(shí)間片段生成的策略執(zhí)行流量轉(zhuǎn)發(fā);然后采集網(wǎng)絡(luò)狀態(tài)信息,交由控制框架在原來(lái)基礎(chǔ)上迭代計(jì)算,生成新的控制策略并將其轉(zhuǎn)化為流表,通過(guò)SDN 下發(fā)到網(wǎng)絡(luò)用于下一個(gè)時(shí)間片段執(zhí)行,以此類推,構(gòu)成閉環(huán)反饋。多路徑路由及子流分配協(xié)同控制框架如圖4 所示。
圖4 多路徑路由及子流分配協(xié)同控制框架Fig.4 Multi-path routing and subflow allocation cooperative control framework
在控制框架工作流程的基礎(chǔ)上,構(gòu)建多路徑路由及子流分配協(xié)同控制框架,由網(wǎng)絡(luò)狀態(tài)信息處理模塊、協(xié)同控制智能決策模塊以及控制策略生成和部署模塊組成。其中,算法部署于SDN 控制器,由協(xié)同控制智能決策模塊與控制策略生成和部署模塊協(xié)同實(shí)現(xiàn)??刂瓶蚣苤懈髂K作用如下:
1)網(wǎng)絡(luò)狀態(tài)信息處理模塊具有網(wǎng)絡(luò)狀態(tài)感知功能和策略反饋更新功能。網(wǎng)絡(luò)狀態(tài)感知功能通過(guò)基于SDN 的信息采集及策略部署交互接口獲取全局的網(wǎng)絡(luò)狀態(tài)視圖得到來(lái)自轉(zhuǎn)發(fā)節(jié)點(diǎn)的狀態(tài)感知信息,如網(wǎng)絡(luò)節(jié)點(diǎn)負(fù)載、網(wǎng)絡(luò)拓?fù)涞龋怨┢渌K實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)的優(yōu)化控制。策略反饋更新功能通過(guò)獲取已完成傳輸任務(wù)的反饋信息對(duì)策略進(jìn)行更新。
2)協(xié)同控制智能決策模塊具備數(shù)據(jù)預(yù)處理功能和協(xié)同決策功能。數(shù)據(jù)預(yù)處理功能是將相關(guān)網(wǎng)絡(luò)信息抽象成傳輸任務(wù)T={Tid,Tsrc,Tdst,Tsize}、Q-table、鄰居節(jié)點(diǎn)F(v)、無(wú)向圖G=(V,E,c(v),m,n)作為算法的輸入。協(xié)同決策功能根據(jù)輸入為傳輸任務(wù)提供子流分配方案和傳輸路徑,并將其交由后續(xù)模塊下發(fā)至網(wǎng)絡(luò)中。
3)控制策略生成和部署模塊具備流表生成功能和流表下發(fā)功能。流表生成功能是根據(jù)前一模塊生成的路由及子流分配決策生成路由轉(zhuǎn)發(fā)流表。然后流表下發(fā)功能通過(guò)基于SDN 的信息采集及策略部署交互接口將其下發(fā)到傳輸網(wǎng)絡(luò)。
基于上述框架及模塊工作流程,將算法與SDN兩者優(yōu)勢(shì)相互結(jié)合,實(shí)現(xiàn)路由集中控制與快速更新,有利于充分發(fā)揮多路徑傳輸?shù)膬?yōu)勢(shì)。
在路由方面,本文設(shè)計(jì)基于Q-learning 的多路徑路由選擇算法,通過(guò)在線學(xué)習(xí)實(shí)現(xiàn)路由策略的實(shí)時(shí)更新?;趫D1 所示的拓?fù)洌瑥脑垂?jié)點(diǎn)A到宿節(jié)點(diǎn)B的多條傳輸路徑生成過(guò)程如圖5 所示。
圖5 多路徑路由選擇算法Fig.5 Multi-path routing selection algorithm
從圖5 可以看出,傳輸任務(wù)在源節(jié)點(diǎn)根據(jù)網(wǎng)絡(luò)接口數(shù)拆分成多個(gè)子流。在傳輸路徑選擇上,通過(guò)1.1 節(jié)中定義nnext=R(v,B)為轉(zhuǎn)發(fā)節(jié)點(diǎn)v上宿節(jié)點(diǎn)為B的待轉(zhuǎn)發(fā)流量提供下一跳節(jié)點(diǎn)。當(dāng)傳輸任務(wù)每個(gè)子流都成功完成傳輸時(shí),認(rèn)為任務(wù)傳輸成功,并且將從流量出發(fā)到最后一個(gè)子流到達(dá)宿節(jié)點(diǎn)的總時(shí)間作為任務(wù)完成時(shí)間。若子流在傳輸過(guò)程中出現(xiàn)路由回環(huán)或節(jié)點(diǎn)過(guò)載,則認(rèn)為任務(wù)傳輸失敗。
在任務(wù)傳輸成功后,根據(jù)式(3)更新子流經(jīng)過(guò)的節(jié)點(diǎn)的Q-table,并將更新后的Q-table 和nnext=R(v,B)作為算法輸出用于后續(xù)的傳輸任務(wù)。通過(guò)不斷迭代上述過(guò)程,算法最終能使Agent 學(xué)習(xí)到較好的策略。
對(duì)于多路徑傳輸,只進(jìn)行路由選擇優(yōu)化是不夠的,還需要路由與子流分配策略相互協(xié)同,才能更大地發(fā)揮多路徑傳輸?shù)膬?yōu)勢(shì)。正確的分配方式為資源充裕的路徑分配相對(duì)多的流量,以此為資源緊張的路徑減輕傳輸壓力。因此提出路由協(xié)同的子流分配算法。
以1.1 節(jié)中的問(wèn)題描述及定義為背景,路由協(xié)同的子流分配算法首先根據(jù)宿節(jié)點(diǎn)B和源節(jié)點(diǎn)A的不同接 口,從A的Q-table 中取對(duì)應(yīng)的Q-value 為QA(B,v1)、QA(B,v2)和QA(B,v3);其次分別將Q-value 取倒數(shù)。最終將傳輸流量按的比例分配給每一個(gè)接口。
路由協(xié)同的子流分配算法的優(yōu)化效果由Q-value 性質(zhì)決定。在強(qiáng)化學(xué)習(xí)模型中,動(dòng)作的好壞能通過(guò)Q-value 值反映。因此,在本文模型中能通過(guò)源節(jié)點(diǎn)不同接口對(duì)應(yīng)的Q-value 值衡量其所在路徑傳輸能力的好壞,并且兩者關(guān)系呈負(fù)相關(guān)。由于在路由與子流分配兩方面的決策都基于Q-value 進(jìn)行,兩者共同計(jì)算,并且Q-value 隨著傳輸任務(wù)的完成而更新,因此,通過(guò)提出路由協(xié)同的子流分配方法能實(shí)現(xiàn)兩者相互協(xié)同與在線優(yōu)化。在將2.1 節(jié)算法結(jié)合本方法后,可形成多路徑路由與子流分配協(xié)同決策算法。以圖1 拓?fù)錇槔惴ㄔ敿?xì)偽代碼見(jiàn)算法1。
算法1多路徑路由與子流分配協(xié)同決策算法
輸入傳輸任務(wù)T={Tid,Tsrc,Tdst,Tsize}、Q-table、鄰居節(jié)點(diǎn)F(v)、無(wú)向圖G=(V,E,c(v),m,n)
輸出下一跳節(jié)點(diǎn)選擇R(v,B)、Q-table
1.從源節(jié)點(diǎn)A 的Q-table 中獲取子流分配比例,1/QA(B,v1),1/QA(B,v2),1/QA(B,v3)
2.根據(jù)Task 所在源節(jié)點(diǎn)A 的網(wǎng)絡(luò)接口數(shù)以及子流分配比例生成對(duì)應(yīng)的n 個(gè)子流Si={Sid,Ssrc,Sdst,Ssize,Spnode,Snnode},n=3,i≤3
3.WHILE 傳輸任務(wù)的子流沒(méi)有完成傳輸路徑生成
4.IF 子 流Si={Sid,Ssrc,Sdst,Ssize,Spnode,Snnode}(Sid≤n)在 節(jié)點(diǎn)Spnode待轉(zhuǎn)發(fā)
5.Snnode=R(Spnode,B),Snnode∈F(Spnode)
6.將Snnode記入子流Si的傳輸路徑
7.END IF
8.END WHILE
9.將傳輸策略轉(zhuǎn)化為流表下發(fā)到網(wǎng)絡(luò),并獲取根據(jù)流表進(jìn)行傳輸?shù)姆答佇畔?/p>
10.根據(jù)式(3)和反饋信息更新Q-table
11.return R(v,B)、Q-table
在以上算法中,第1 步為子流分配,第4 步到第7步為子流的路由選擇,第9 步將選出的路徑通過(guò)SDN 下發(fā)到轉(zhuǎn)發(fā)節(jié)點(diǎn)。在轉(zhuǎn)發(fā)完成后,算法第10 步將對(duì)Agent 中的Q-table 進(jìn)行更新,并在第11 步輸出R(v,B)、Q-table 用于后續(xù)傳輸任務(wù)的決策。
在實(shí)際網(wǎng)絡(luò)運(yùn)行環(huán)境下,轉(zhuǎn)發(fā)節(jié)點(diǎn)在執(zhí)行算法1時(shí)僅基于ε-greedy 策略生成下一跳節(jié)點(diǎn),在某些情況下會(huì)導(dǎo)致回環(huán)問(wèn)題,即一系列轉(zhuǎn)發(fā)節(jié)點(diǎn)的下一跳節(jié)點(diǎn)匯聚成完整路由時(shí)出現(xiàn)循環(huán),例如在拓?fù)鋱D1中,生成路徑A、v1、v7、v9、v12、v5、v4、v6、v7、v9、B。從長(zhǎng)遠(yuǎn)分析,這類結(jié)果在迭代訓(xùn)練中會(huì)由于傳輸任務(wù)時(shí)延過(guò)長(zhǎng),導(dǎo)致獎(jiǎng)賞值降低而被修改,但對(duì)于執(zhí)行這個(gè)選擇的傳輸任務(wù)而言,會(huì)出現(xiàn)傳輸失敗問(wèn)題。因此,有必要根據(jù)網(wǎng)絡(luò)路由有效性、準(zhǔn)確性和穩(wěn)定性要求,在上文算法1 基礎(chǔ)上增加回環(huán)消除的方法。
由1.2節(jié)中所提的路由模型可知,Agent根據(jù)Q-value選擇下一跳節(jié)點(diǎn)并生成路徑。因此,將Q-value與路由回環(huán)掛鉤,根據(jù)回環(huán)路徑對(duì)Q-value做出懲罰,從而使Agent傾向選擇正確路徑。同時(shí),需要為傳輸任務(wù)提供備用路徑,防止路由回環(huán)導(dǎo)致傳輸失敗?;谝陨纤悸?,提出一種基于Q-value 的回環(huán)消除方法。
1)為傳輸任務(wù)提供備用路徑。如果Agent 選擇的節(jié)點(diǎn)導(dǎo)致路由回路,則將這一次傳輸任務(wù)視為失敗,終止本次迭代和路徑生成,傳輸任務(wù)直接選擇由Dijkstra 算法生成的備用路徑A、v3、v8、B來(lái)確保其完成傳輸。
2)在式(3)基礎(chǔ)上引入懲罰系數(shù)β(β>1)構(gòu)造式(4)。一旦轉(zhuǎn)發(fā)節(jié)點(diǎn)的下一跳選擇導(dǎo)致回環(huán)出現(xiàn),則直接設(shè)置一個(gè)預(yù)定的高時(shí)延閾值作為學(xué)習(xí)模型的獎(jiǎng)賞值(此時(shí)節(jié)點(diǎn)實(shí)際采用備用路徑進(jìn)行傳輸),然后根據(jù)式(4)更新相應(yīng)的Q-value。在懲罰系數(shù)β作用下,以放大Q-value 值的方式主動(dòng)改變Agent 的選路傾向,使得Agent 在迭代過(guò)程中更傾向于不選擇帶回環(huán)的路徑,從而保證算法在迭代過(guò)程中迅速摒棄會(huì)導(dǎo)致回環(huán)的策略。
結(jié)合式(4)對(duì)算法1 進(jìn)行改進(jìn),提出無(wú)回環(huán)的多路徑路由及子流分配協(xié)同決策算法,該算法是針對(duì)多路徑路由及子流分配所提的最終算法。
算法2無(wú)回環(huán)的多路徑路由及子流分配協(xié)同決策算法(改進(jìn)算法)
輸入傳輸任務(wù)T={Tid,Tsrc,Tdst,Tsize}、Q-table、鄰居節(jié)點(diǎn)F(v)、無(wú)向圖G=(V,E,c(v),m,n)
輸出下一跳節(jié)點(diǎn)選擇R(v,B)、Q-table
1.為v1、v2、v33 個(gè)不同網(wǎng)絡(luò)接口分配子流,比例按從源節(jié)點(diǎn)A 的Q-table 中獲取 的Q-value 的 倒數(shù):1/QA(B,v1),1/QA(B,v2),1/QA(B,v3)
2.根據(jù)TASK 所在源節(jié)點(diǎn)A 的網(wǎng)絡(luò)接口數(shù)以及子流分配比例生成對(duì)應(yīng)的n 個(gè)子流Si={Sid,Ssrc,Sdst,Ssize,Spnode,Snnode},n=3,i≤3
3.設(shè)置子流Si的回環(huán)標(biāo)志fi=false
4.WHILE 傳輸任務(wù)的子流沒(méi)有完成傳輸路徑生成
5.IF 子流Si={Sid,Ssrc,Sdst,Ssize,Spnode,Snnode}(Sid<=n)在節(jié)點(diǎn)Spnode待轉(zhuǎn)發(fā)
6.Snnode=R(Spnode,B)
7.IF Snnodenot in pathiand Snnodein Fi(Spnode):
8.將Snnode記入子流Si的路徑pathi,F(xiàn)i(Spnode)remove Snnode
9.ELSE
10.出現(xiàn)回環(huán),子流Si停止生成路徑,fi=true
11.END IF
12.END IF
13.END WHILE
14.將傳輸策略轉(zhuǎn)化為流表下發(fā)到網(wǎng)絡(luò),并獲取根據(jù)流表進(jìn)行傳輸?shù)姆答佇畔ⅰ?/p>
15.FOR i in range(n):
16.IF fi=false:
17.對(duì)子流Si根據(jù)式(3)更新Q-table
18.ELSE
19.對(duì)子流Si根據(jù)式(4)更新Q-table
20.END IF
21.END FOR
22.return Route(v,B)、Q-table
為消除回環(huán)方法對(duì)算法的影響,在圖1 的拓?fù)渖喜捎盟惴? 的思路,設(shè)定源節(jié)點(diǎn)為節(jié)點(diǎn)A,宿節(jié)點(diǎn)為節(jié)點(diǎn)B,以不限制回環(huán)出現(xiàn)的基于強(qiáng)化學(xué)習(xí)的多路徑傳輸方法為對(duì)比方法(算法1),觀察算法改進(jìn)前后在任務(wù)傳輸成功率上的差異。不同回環(huán)處理下任務(wù)傳輸成功率對(duì)比如圖6 所示。從圖6 可以看出,在迭代前期,采用回環(huán)消除方法的算法2 的任務(wù)傳輸成功率能保持在一個(gè)較高的水平,并且能迅速收斂,避免出現(xiàn)更多回環(huán)。與此相反,允許回環(huán)算法1 的任務(wù)傳輸成功率在前期處于一個(gè)較低的值,并且收斂速度緩慢。經(jīng)過(guò)大量迭代后其任務(wù)傳輸成功率依舊存在波動(dòng),無(wú)法完全避免回環(huán)。因此,在采用基于Q-value 的回環(huán)消除方法后,不僅可以加快任務(wù)傳輸成功率的收斂速度,還能提高路由決策的準(zhǔn)確性,最終實(shí)現(xiàn)完全避免回環(huán)的出現(xiàn),使算法更貼合應(yīng)用場(chǎng)景。
圖6 不同回環(huán)處理下任務(wù)傳輸成功率對(duì)比Fig.6 Comparison of task transmission success rate under different loopback processing
基于江蘇省建筑智慧節(jié)能重點(diǎn)實(shí)驗(yàn)室,設(shè)計(jì)端到端多路徑傳輸控制網(wǎng)絡(luò)實(shí)驗(yàn)床進(jìn)行實(shí)驗(yàn),網(wǎng)絡(luò)環(huán)境拓?fù)淙鐖D7 所示。網(wǎng)絡(luò)環(huán)境中有轉(zhuǎn)發(fā)節(jié)點(diǎn)12 臺(tái),主機(jī)2 臺(tái),服務(wù)器1 臺(tái)。轉(zhuǎn)發(fā)節(jié)點(diǎn)采用支持安裝OpenvSwitch 的主機(jī)模擬SDN 網(wǎng)絡(luò)轉(zhuǎn)發(fā)設(shè)備,使其能采集包括鏈路負(fù)載、帶寬使用率、緩沖區(qū)長(zhǎng)度等網(wǎng)絡(luò)狀態(tài)信息上傳至控制中心,接收控制中心下發(fā)的傳輸決策并執(zhí)行;服務(wù)器C 則安裝FloodLight 作為SDN 網(wǎng)絡(luò)控制器,獲取轉(zhuǎn)發(fā)節(jié)點(diǎn)的狀態(tài)信息,同時(shí)部署本文控制機(jī)制進(jìn)行傳輸決策,并將決策結(jié)果部署至傳輸節(jié)點(diǎn)。主機(jī)A 和B 為網(wǎng)絡(luò)接入點(diǎn),通過(guò)模擬生成傳輸流量作為傳輸任務(wù)的發(fā)起者和接收者。在硬件方面,實(shí)驗(yàn)主機(jī)配置2.9 GHz Intel Core i5 處理器,8 GB 內(nèi)存,并安裝Ubuntu19.10 版本操作系統(tǒng)。編程語(yǔ)言采用python,版本為3.7.1,編輯器采用Visual Studio Code。
圖7 實(shí)驗(yàn)網(wǎng)絡(luò)環(huán)境拓?fù)銯ig.7 Experimental network environment topology
本實(shí)驗(yàn)流量的生成基于泊松分布模型計(jì)算。在網(wǎng)絡(luò)負(fù)載方面采用分級(jí)方式表示,按當(dāng)前網(wǎng)絡(luò)負(fù)載占網(wǎng)絡(luò)總?cè)萘康陌俜直葘⒕W(wǎng)絡(luò)負(fù)載分為無(wú)負(fù)載、25%負(fù)載、50%負(fù)載、75%負(fù)載4 個(gè)等級(jí)。按接入節(jié)點(diǎn)的鏈路數(shù)量將節(jié)點(diǎn)緩沖區(qū)劃分成3 個(gè)等級(jí),分別為12 MB、16 MB、32 MB。此外,實(shí)驗(yàn)假設(shè)流量傳輸不受鏈路影響,設(shè)置鏈路帶寬為1 000 MB。在數(shù)據(jù)統(tǒng)計(jì)方面,忽略背景流量,將丟包率轉(zhuǎn)化為任務(wù)傳輸成功率作為性能指標(biāo),設(shè)置時(shí)延的統(tǒng)計(jì)單位為ms,吞吐量的統(tǒng)計(jì)單位為MB。實(shí)驗(yàn)的相關(guān)參數(shù)設(shè)置如表1 所示。
表1 實(shí)驗(yàn)參數(shù)設(shè)置Table 1 Experimental parameters setting
采用的對(duì)照實(shí)驗(yàn)有:算法1 使用傳統(tǒng)最短路徑進(jìn)行數(shù)據(jù)傳輸;算法2 使用基于強(qiáng)化學(xué)習(xí)的Q-routing 進(jìn)行數(shù)據(jù)傳輸;算法3 使用等價(jià)多路徑傳輸轉(zhuǎn)發(fā)算法ECMP 進(jìn)行數(shù)據(jù)傳輸。
針對(duì)多路徑路由及子流分配協(xié)同算法在不同網(wǎng)絡(luò)負(fù)載下的訓(xùn)練情況進(jìn)行實(shí)驗(yàn),記錄訓(xùn)練過(guò)程中時(shí)延的變化,通過(guò)每輪迭代間傳輸時(shí)延的變化觀察算法的收斂情況。此外,設(shè)定一個(gè)閾值,當(dāng)時(shí)延波動(dòng)小于閾值時(shí),認(rèn)為時(shí)延仍處于穩(wěn)定狀態(tài)。算法在訓(xùn)練時(shí)針對(duì)不同網(wǎng)絡(luò)負(fù)載下的時(shí)延收斂情況如圖8 所示。從圖8 可以看出,在無(wú)負(fù)載、25%負(fù)載、50%負(fù)載、75%負(fù)載網(wǎng)絡(luò)情況下,隨著訓(xùn)練不斷進(jìn)行,傳輸時(shí)延不斷降低,在迭代次數(shù)為20~40趨于穩(wěn)定。此時(shí),認(rèn)為算法收斂到最優(yōu)值。因此,該算法具有良好的收斂性。
圖8 在不同網(wǎng)絡(luò)負(fù)載下算法時(shí)延收斂對(duì)比Fig.8 Delay convergence comparison of algorithm under different network loads
為驗(yàn)證多路徑路由及子流分配協(xié)同算法在網(wǎng)絡(luò)動(dòng)態(tài)運(yùn)行時(shí),能否根據(jù)網(wǎng)絡(luò)狀態(tài)實(shí)時(shí)計(jì)算多路徑路由并與子流分配協(xié)同,從而提高傳輸性能。本文從時(shí)延、任務(wù)傳輸成功率、吞吐量3 個(gè)性能指標(biāo),分別統(tǒng)計(jì)在靜態(tài)網(wǎng)絡(luò)負(fù)載下與動(dòng)態(tài)網(wǎng)絡(luò)負(fù)載下本算法的性能表現(xiàn)以及與對(duì)比算法之間的差異。在靜態(tài)網(wǎng)絡(luò)負(fù)載下,實(shí)驗(yàn)根據(jù)3.2 節(jié)中的設(shè)計(jì),按百分比劃分網(wǎng)絡(luò)負(fù)載,在強(qiáng)度相同的網(wǎng)絡(luò)負(fù)載下對(duì)比不同算法間的差異。在動(dòng)態(tài)網(wǎng)絡(luò)負(fù)載下,初始網(wǎng)絡(luò)負(fù)載強(qiáng)度設(shè)置為低負(fù)載,并在迭代過(guò)程中使某一節(jié)點(diǎn)負(fù)載變高(選取節(jié)點(diǎn)v8發(fā)生負(fù)載變動(dòng)),對(duì)比各算法在網(wǎng)絡(luò)負(fù)載變動(dòng)時(shí)各項(xiàng)性能指標(biāo)變化情況。
3.4.1 時(shí)延對(duì)比
在靜態(tài)網(wǎng)絡(luò)負(fù)載下,對(duì)比不同算法在不同網(wǎng)絡(luò)負(fù)載下的傳輸時(shí)延差異如圖9 所示。在動(dòng)態(tài)網(wǎng)絡(luò)負(fù)載下,對(duì)比節(jié)點(diǎn)負(fù)載變化前后各算法在時(shí)延上的表現(xiàn)如圖10 所示。從圖9 可以看出,在不同強(qiáng)度的網(wǎng)絡(luò)負(fù)載下,本文算法傳輸時(shí)延低于其他對(duì)比算法,且差距隨著網(wǎng)絡(luò)負(fù)載變大而變大。尤其在75%負(fù)載下,相比其他3 種算法,本文算法傳輸時(shí)延分別降低了33.6%、27.6%和18.8%。說(shuō)明本文提出的多路徑路由及子流分配協(xié)同算法能充分發(fā)揮多路徑傳輸?shù)膬?yōu)勢(shì)。從圖10 可以看出,在迭代次數(shù)為40,發(fā)生節(jié)點(diǎn)負(fù)載變化,此時(shí),本文算法的傳輸時(shí)延已實(shí)現(xiàn)收斂。網(wǎng)絡(luò)負(fù)載變化后,雖然時(shí)延在一段時(shí)間內(nèi)升高了,但隨著算法在線學(xué)習(xí)進(jìn)行,時(shí)延迅速降低了17%并收斂至穩(wěn)定。對(duì)比算法無(wú)法有效針對(duì)實(shí)時(shí)網(wǎng)絡(luò)狀態(tài)調(diào)整策略,導(dǎo)致傳輸時(shí)延處于一個(gè)較大值。通過(guò)對(duì)比不同算法在面對(duì)負(fù)載變化時(shí)時(shí)延的波動(dòng),本文算法適應(yīng)了新的網(wǎng)絡(luò)環(huán)境,降低了因網(wǎng)絡(luò)負(fù)載變化而變大的網(wǎng)絡(luò)負(fù)載。
圖9 靜態(tài)網(wǎng)絡(luò)負(fù)載下不同算法時(shí)延對(duì)比Fig.9 Delay comparison of different algorithms under static network load
圖10 動(dòng)態(tài)網(wǎng)絡(luò)負(fù)載下不同算法時(shí)延對(duì)比Fig.10 Delay comparison of different algorithms under dynamic network load
3.4.2 任務(wù)傳輸成功率對(duì)比
在靜態(tài)網(wǎng)絡(luò)負(fù)載下各算法任務(wù)傳輸成功率對(duì)比如表2 所示,在動(dòng)態(tài)網(wǎng)絡(luò)負(fù)載下各算法任務(wù)傳輸成功率對(duì)比如表3 所示。
表2 靜態(tài)網(wǎng)絡(luò)負(fù)載下不同算法任務(wù)傳輸成功率對(duì)比Table 2 Task transmission success rate comparison of different algorithms under static network load %
表3 動(dòng)態(tài)網(wǎng)絡(luò)負(fù)載下不同算法任務(wù)傳輸成功率對(duì)比Table 3 Task transmission success rate comparison of different algorithms under dynamic network load %
從表2 可以看出,低網(wǎng)絡(luò)負(fù)載下本文算法能保持一個(gè)較高的成功率,雖然回環(huán)導(dǎo)致失敗任務(wù)較少,但通過(guò)2.3 節(jié)提出的回環(huán)消除方法避免產(chǎn)生更多回環(huán)。在高網(wǎng)絡(luò)負(fù)載下,基于ECMP 的多路徑傳輸受益于多路徑傳輸?shù)膬?yōu)勢(shì),仍能進(jìn)行任務(wù)傳輸,但其發(fā)生任務(wù)傳輸成功率大幅度下降,而最短路徑算法與Q-routing 算法受限于單路徑傳輸而導(dǎo)致任務(wù)傳輸成功率迅速下降。尤其是在75%負(fù)載下,其他算法的任務(wù)傳輸成功率相對(duì)于本文算法分別少了49.91%、30.64%和10.23%。從表3 可以看出,在動(dòng)態(tài)網(wǎng)絡(luò)負(fù)載下,其他算法的任務(wù)傳輸成功率相對(duì)于本算法分別少了23.62%、19.12%和12.62%。本算法能通過(guò)與環(huán)境的交互及時(shí)調(diào)整路由策略,實(shí)現(xiàn)任務(wù)的穩(wěn)定傳輸,避免任務(wù)傳輸成功率因網(wǎng)絡(luò)負(fù)載變大而大幅降低。
3.4.3 吞吐量對(duì)比
在靜態(tài)和動(dòng)態(tài)網(wǎng)絡(luò)負(fù)載下,對(duì)比不同算法間在吞吐量上的差異。在不同靜態(tài)網(wǎng)絡(luò)負(fù)載下各算法吞吐量的差異如圖11 所示。在動(dòng)態(tài)網(wǎng)絡(luò)負(fù)載下,網(wǎng)絡(luò)負(fù)載變化前后對(duì)比各算法在吞吐量上的差異如圖12所示。
圖11 靜態(tài)網(wǎng)絡(luò)負(fù)載下不同算法吞吐量對(duì)比Fig.11 Throughput comparison of different algorithms under static network load
圖12 動(dòng)態(tài)網(wǎng)絡(luò)負(fù)載下不同算法吞吐量對(duì)比Fig.12 Throughput comparison of different algorithms under dynamic network load
從圖11 可以看出,隨著網(wǎng)絡(luò)負(fù)載變大,各算法的吞吐量均呈遞減趨勢(shì)。由于受任務(wù)傳輸成功率的影響,本文算法吞吐量減小幅度較小。在高負(fù)載下,借助良好的路由發(fā)現(xiàn)和子流分配能力,本文算法依舊能保證較高的吞吐量。從圖12 可以看出,通過(guò)對(duì)比各算法在網(wǎng)絡(luò)負(fù)載變化前后吞吐量上的變化,即使網(wǎng)絡(luò)負(fù)載突然變大,但對(duì)本文算法吞吐量的影響很小,這得益于強(qiáng)化學(xué)習(xí)提供的在線學(xué)習(xí)能力,能針對(duì)網(wǎng)絡(luò)實(shí)時(shí)狀態(tài)調(diào)整路由與子流分配。對(duì)比算法在網(wǎng)絡(luò)負(fù)載變化后無(wú)法很好適應(yīng)新的網(wǎng)絡(luò)環(huán)境,吞吐量分別下降了53.33%、35.61%和28.37%,無(wú)法滿足穩(wěn)定的吞吐量需求。
本文基于強(qiáng)化學(xué)習(xí)提出一種智能多路徑路由及子流分配協(xié)同算法。通過(guò)多路徑路由方法和Q-value的回環(huán)消除算法,提高算法的收斂速度。實(shí)驗(yàn)結(jié)果表明,與常用路由算法相比,多路徑路由及子流分配協(xié)同算法在網(wǎng)絡(luò)環(huán)境發(fā)生變化時(shí),能實(shí)時(shí)調(diào)整多路徑路由及子流分配協(xié)同策略,提高傳輸成功率和吞吐量,降低傳輸時(shí)延。為進(jìn)一步考慮端到端多路徑傳輸跨層優(yōu)化的必要性,后續(xù)將研究智能多路徑路由及子流分配協(xié)同算法與傳輸層的擁塞處理機(jī)制。