馮思楠 康巧燕 王建峰 李靜 于必成










摘要:主動(dòng)隊(duì)列管理技術(shù)是網(wǎng)絡(luò)擁塞控制的重要技術(shù),隨機(jī)早期檢測(cè)算法作為一種典型的主動(dòng)隊(duì)列管理機(jī)制,在擁塞控制中發(fā)揮著一定作用,針對(duì)該算法參數(shù)固定、難以適應(yīng)復(fù)雜網(wǎng)絡(luò)環(huán)境的問題利用BP神經(jīng)網(wǎng)絡(luò)算法進(jìn)行流量預(yù)測(cè),與隨機(jī)早期檢測(cè)算法結(jié)合,設(shè)計(jì)了一種基于BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)的網(wǎng)絡(luò)擁塞控制算法,及時(shí)有效地獲取網(wǎng)絡(luò)狀態(tài)信息為擁塞控制提供應(yīng)對(duì)時(shí)間,并通過Matlab仿真,檢測(cè)新算法性能。
關(guān)鍵詞:隊(duì)列管理;隨機(jī)早期檢測(cè)算法;BP神經(jīng)網(wǎng)絡(luò);Matlab
中圖分類號(hào):IP31 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1008-1739(2019)03-68-4
0 引言
神經(jīng)網(wǎng)絡(luò)作為人工智能的重要發(fā)展方向在數(shù)據(jù)預(yù)測(cè)方面有著良好的表現(xiàn)。神經(jīng)網(wǎng)絡(luò)按照誤差的不同反饋形式,對(duì)權(quán)值或閾值進(jìn)行調(diào)整。BP神經(jīng)網(wǎng)絡(luò)因其良好的自學(xué)習(xí)性和應(yīng)用簡(jiǎn)單等性質(zhì),已成為最廣泛的神經(jīng)網(wǎng)絡(luò)模型之一。針對(duì)RED算法在復(fù)雜網(wǎng)絡(luò)環(huán)境中參數(shù)配置困難的問題,將BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)應(yīng)用到網(wǎng)絡(luò)擁塞控制中,對(duì)未來一段時(shí)間內(nèi)網(wǎng)絡(luò)流量預(yù)測(cè),進(jìn)而提前對(duì)RED算法中相應(yīng)參數(shù)做出調(diào)整,提升系統(tǒng)對(duì)復(fù)雜網(wǎng)絡(luò)環(huán)境適應(yīng)能力。本文從控制理論的角度出發(fā),設(shè)計(jì)基于BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)的網(wǎng)絡(luò)擁塞控制算法,以隊(duì)列長(zhǎng)度作為網(wǎng)絡(luò)擁塞控制信號(hào),通過Smulink仿真搭建高速網(wǎng)絡(luò)傳輸環(huán)境。與傳統(tǒng)的RED算法進(jìn)行比較,檢測(cè)新算法在網(wǎng)絡(luò)擁塞控制方面的優(yōu)越性。
1 網(wǎng)絡(luò)擁塞控制模型
從控制理論角度分析,AQM算法作為控制器,經(jīng)過AQM計(jì)算輸出的丟棄概率P作為控制信號(hào),發(fā)送端作為系統(tǒng)的執(zhí)行器。發(fā)送端與路由器的隊(duì)列長(zhǎng)度和鏈路延遲共同作為系統(tǒng)廣義對(duì)象。模型如圖1所示。
在網(wǎng)絡(luò)傳輸過程中,大量的數(shù)據(jù)包在發(fā)送端等待發(fā)送,發(fā)送速度由TCP擁塞窗口決定,TCP傳輸過程主要由慢啟動(dòng)(指數(shù)增加)、擁塞避免(加法增加)、快速重傳(乘法減小)及快速恢復(fù)4個(gè)階段構(gòu)成,在絕大部分時(shí)間內(nèi),TCP處于擁塞避免階段。源端擁塞窗口(傳輸)加性增,乘性減(AIMD)的微分方程描述如式(1):
AQM通過對(duì)丟棄溉率P的調(diào)整,促使TCP源端改變擁塞窗口,改變流量傳輸速率。基于上述TCP窗口控制線性化模型,將AQM反饋控制系統(tǒng)設(shè)計(jì)如圖2。
2 基于BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)的網(wǎng)絡(luò)擁塞控制算法
本文給出基于Matlab的BP神經(jīng)網(wǎng)絡(luò)偽代碼:
P-[輸入矩陣];net-newff隱藏層輸出層的神經(jīng)元數(shù)量;
T-[輸出矩陶;net.trainparam.show-設(shè)置顯示間隔;
t-%時(shí)間;net.trainparam.epoch-設(shè)定訓(xùn)練步數(shù);
net-train(net,P,0;Y-sim(net,p)
2.1 基于BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)的網(wǎng)絡(luò)擁塞控制算法
由于網(wǎng)絡(luò)流量長(zhǎng)時(shí)間表現(xiàn)的統(tǒng)計(jì)相似的自相似性、長(zhǎng)相關(guān)性及混沌性等特征,為應(yīng)用預(yù)測(cè)算子計(jì)算網(wǎng)絡(luò)流量提供了理論支撐。其基本預(yù)測(cè)思略如圖3所示。
基于上文BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)代碼,通過對(duì)以往的網(wǎng)絡(luò)流量訓(xùn)練識(shí)別,以歷史的網(wǎng)絡(luò)流量真實(shí)值作為訓(xùn)練數(shù)據(jù),對(duì)神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,最后將訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)應(yīng)用于流量預(yù)測(cè)中,以過往流量作為神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)的輸入,預(yù)測(cè)下一時(shí)間段網(wǎng)絡(luò)路由狀態(tài),在本文所設(shè)計(jì)的基于神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)算法中,將網(wǎng)絡(luò)狀態(tài)分為非常順暢、順暢、即將擁塞和擁塞4個(gè)狀態(tài),在不同的網(wǎng)絡(luò)路由狀況下給予不同的值,提前計(jì)算數(shù)據(jù)包的丟包率,使網(wǎng)絡(luò)路由在擁塞發(fā)生前最大限度地對(duì)擁塞狀況進(jìn)行避免。基本操作框圖如圖4所示。
具體步驟如下:
①初始化設(shè)置,平均隊(duì)列長(zhǎng)度與瞬時(shí)隊(duì)長(zhǎng)均為0。
②輸入網(wǎng)絡(luò)流量數(shù)據(jù)與目標(biāo)數(shù)據(jù)進(jìn)行訓(xùn)練,得到合適的權(quán)值與閾值,評(píng)價(jià)預(yù)測(cè)精度,若精度符合誤差要求,則將各級(jí)權(quán)值閾值保存,作為神經(jīng)網(wǎng)絡(luò)流量預(yù)測(cè)的模型。若偏離預(yù)測(cè)精度較大則返回繼續(xù)學(xué)習(xí),調(diào)整權(quán)值閾值。
③將即時(shí)的流量數(shù)據(jù)通過神經(jīng)網(wǎng)絡(luò)流量預(yù)測(cè)模型計(jì)算,得到下—階段的流量,計(jì)算瞬時(shí)隊(duì)長(zhǎng)q(0可近似的看為:
3 基于Simulink網(wǎng)絡(luò)擁塞系統(tǒng)模型實(shí)現(xiàn)
Silulink作為Matlab的擴(kuò)展,使用戶從復(fù)雜的編程語言中解放出來,對(duì)模型搭建投入更多精力。在本次仿真實(shí)驗(yàn)中,模擬一組TCP源端在一定范圍內(nèi)隨機(jī)向路由節(jié)點(diǎn)發(fā)送數(shù)據(jù)包,在路由節(jié)點(diǎn)處形成隊(duì)列,設(shè)置路由節(jié)點(diǎn)處理數(shù)據(jù)包的傳輸帶寬,通過網(wǎng)絡(luò)擁塞控制算法將隊(duì)列長(zhǎng)度控制在設(shè)置的期望值附近,為更準(zhǔn)確地模擬真正的網(wǎng)絡(luò)傳輸環(huán)境,設(shè)置較大的網(wǎng)絡(luò)延遲。同時(shí)以一定的時(shí)間采樣間隔對(duì)隊(duì)列長(zhǎng)度進(jìn)行檢測(cè)。具體數(shù)據(jù)如表1所示。
此次仿真實(shí)驗(yàn)將基于BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)的RED擁塞控制算法通過Simulink進(jìn)行搭建,模擬仿真拓?fù)鋱D如圖5。
系統(tǒng)由隨機(jī)信號(hào)發(fā)生器模擬傳輸數(shù)據(jù),隨機(jī)產(chǎn)生(0,4000)隨機(jī)數(shù),作為模擬TCP發(fā)送至路由節(jié)點(diǎn)的數(shù)據(jù)量。圖中顯示模塊用以顯示節(jié)點(diǎn)處瞬時(shí)隊(duì)列長(zhǎng)度變化。
3.1 RED算法的仿真實(shí)現(xiàn)
在網(wǎng)絡(luò)傳輸過程中,當(dāng)數(shù)據(jù)包到達(dá)路由節(jié)點(diǎn)的速率高于路由節(jié)點(diǎn)傳輸帶寬時(shí),就會(huì)形成隊(duì)列,網(wǎng)絡(luò)擁塞的形成是隊(duì)列累積的結(jié)果。本文以網(wǎng)絡(luò)傳輸過程中的流量作為預(yù)測(cè)指標(biāo),計(jì)算略由節(jié)點(diǎn)的隊(duì)列長(zhǎng)度,達(dá)到網(wǎng)絡(luò)擁塞控制的目的。分別對(duì)傳統(tǒng)的RED算法及基于BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)算法的網(wǎng)絡(luò)擁塞控制算法進(jìn)行Simulink仿真,以隊(duì)列長(zhǎng)度作為評(píng)價(jià)指標(biāo)進(jìn)行對(duì)比評(píng)價(jià)。
圖6為RED算法在1000個(gè)流量數(shù)據(jù)樣本下的隊(duì)列長(zhǎng)度仿真。當(dāng)平均隊(duì)列長(zhǎng)度小于下門限時(shí),流量包正常進(jìn)入排隊(duì)。而當(dāng)平均隊(duì)列長(zhǎng)度處于上下門限之間時(shí),對(duì)數(shù)據(jù)包標(biāo)記一定的丟棄概率,當(dāng)平均隊(duì)列長(zhǎng)度超過最大閾值時(shí),流量包丟棄,同時(shí)觸發(fā)AIMD控制機(jī)制,TCP端將數(shù)據(jù)傳輸流量減少一半。但由于對(duì)網(wǎng)絡(luò)擁塞缺少預(yù)判,缺少有效的擁塞避免,進(jìn)而造成了多次擁塞丟包事件的發(fā)生。
3.2 BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)算法的仿真實(shí)現(xiàn)
根據(jù)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),建立仿真網(wǎng)絡(luò)傳輸系統(tǒng),在試驗(yàn)中,首先對(duì)流量預(yù)測(cè)模型進(jìn)行建立,模型選用BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型,經(jīng)過多次實(shí)驗(yàn)表明,將隱含層神經(jīng)元個(gè)數(shù)設(shè)置為6h,相對(duì)較好地保持了預(yù)測(cè)精度與預(yù)測(cè)速度的平衡。設(shè)置訓(xùn)練函數(shù)為tranlm,誤差修正方式為均方誤差(mse),設(shè)置完成的BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型結(jié)構(gòu)如圖7所示。
將此系統(tǒng)應(yīng)用于網(wǎng)絡(luò)傳輸拓?fù)浣Y(jié)構(gòu)中,圖8為基于BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)的網(wǎng)絡(luò)擁塞控制系統(tǒng)經(jīng)過1000組網(wǎng)絡(luò)流量數(shù)據(jù)輸入,隊(duì)列長(zhǎng)度變化的仿真結(jié)果。如圖8所示,基于BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)的RED算法,起始階段經(jīng)過源端數(shù)據(jù)傳輸,在路由節(jié)點(diǎn)處形成隊(duì)列,在基于BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)的RED算法的控制下,對(duì)擁塞做出預(yù)測(cè),對(duì)隊(duì)列長(zhǎng)度進(jìn)行預(yù)控制,避免擁塞。使得隊(duì)列長(zhǎng)度保持在期望隊(duì)列長(zhǎng)度(3000 packets)附近,沒有造成大丟包事件的發(fā)生。
5 結(jié)束語
在網(wǎng)絡(luò)擁塞控制過程中,本文仿真了50個(gè)網(wǎng)絡(luò)源端用戶對(duì)路由節(jié)點(diǎn)發(fā)送數(shù)據(jù),基于BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)的網(wǎng)絡(luò)擁塞控制算法已有歷史數(shù)據(jù)作為預(yù)測(cè)支撐,出現(xiàn)了短暫的擁塞狀況,而隨著網(wǎng)絡(luò)傳輸過程的進(jìn)行,已有的數(shù)據(jù)作為自學(xué)習(xí)與預(yù)測(cè)的數(shù)據(jù)支撐,在傳輸階段的中后期,因傳輸節(jié)點(diǎn)對(duì)于隊(duì)列長(zhǎng)度的感知與預(yù)測(cè),提前對(duì)RED算法丟包率做出調(diào)整,網(wǎng)絡(luò)傳輸環(huán)境得到了合理的改善,提升了RED算法對(duì)復(fù)雜傳輸網(wǎng)絡(luò)的適應(yīng)性,因此基于BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)的RED算法較RED算法有著更好的適應(yīng)性。