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