吉曉香
關(guān)鍵詞: 網(wǎng)絡(luò)擁塞; 控制方法; 數(shù)據(jù)驅(qū)動(dòng)方式; AQM; 控制系統(tǒng)設(shè)計(jì); 仿真測試
中圖分類號(hào): TN915?34; TP393 ? ? ? ? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼: A ? ? ? ? ? ? ? ? ? ?文章編號(hào): 1004?373X(2019)14?0074?04
Research on AQM algorithm dealing with network congestion
JI Xiaoxiang
(Nanjing Normal University Taizhou College, Taizhou 225300, China)
Abstract: The AQM algorithm combining with the control theory usually has the deficiencies of complex calculation and long feedback period. Therefore, a calculation process control method of the AQM separation algorithm is proposed in this paper by adopting the database and data?driven mode, and combining the interface design of the MySQL database and NS2. Taking the RED algorithm as an example, the simulation test for the above control method was carried out with the NS2 software. It is found that the data?driven mode can effectively reduce the time delay and packet loss rate of the RED algorithm, which indicates that the data?driven mode used in this paper is feasible and effective for AQM algorithm implementation, and can provide a new idea for the network congestion algorithm.
Keywords: network congestion; control method; data?driven mode; AQM; control system design; simulation test
隨著網(wǎng)絡(luò)和信息社會(huì)的不斷發(fā)展,人們對(duì)網(wǎng)絡(luò)的依賴性日益提高,網(wǎng)絡(luò)用戶和服務(wù)(如物聯(lián)網(wǎng)、云計(jì)算、云存儲(chǔ)等)的規(guī)模也日益龐大,給網(wǎng)絡(luò)的速度和性能提出了較大的挑戰(zhàn)[1?2]。如何有效配置和優(yōu)化網(wǎng)絡(luò)資源,避免網(wǎng)絡(luò)擁塞的發(fā)生成為當(dāng)前網(wǎng)絡(luò)研究的重要問題[3]。目前,控制網(wǎng)絡(luò)擁塞的兩大有效機(jī)制為主動(dòng)隊(duì)列管理AQM算法和TCP協(xié)議[4?5]。其中,AQM算法結(jié)合控制理論在網(wǎng)絡(luò)性能的改善方面能夠發(fā)揮重要的作用;然而,結(jié)合控制理論的AQM算法存在計(jì)算復(fù)雜、反饋周期(在線計(jì)算時(shí)間)長等缺陷,嚴(yán)重影響了算法的性能,不利于網(wǎng)絡(luò)擁塞的有效控制[6]。因此,本文針對(duì)這一問題,基于數(shù)據(jù)庫和數(shù)據(jù)驅(qū)動(dòng)方式,結(jié)合MySQL數(shù)據(jù)庫與NS2的接口設(shè)計(jì),提出一種AQM算法的控制方法。該方法借助離線計(jì)算的數(shù)據(jù)驅(qū)動(dòng)方式,將算法的輸入數(shù)據(jù)和離線計(jì)算獲得的輸出數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫的表格中,從而避免了NS2仿真軟件中的在線計(jì)算過程。在分離算法計(jì)算過程的同時(shí),有效提高了算法的運(yùn)行速度和效率。
1 ?理論基礎(chǔ)
1.1 ?主動(dòng)隊(duì)列管理AQM算法
AQM算法主要運(yùn)行于路由器等網(wǎng)絡(luò)設(shè)備中,用于實(shí)時(shí)檢測網(wǎng)絡(luò)的擁塞狀況(隊(duì)列長度)。在隊(duì)列溢出前丟包,并產(chǎn)生相應(yīng)的反饋信息,調(diào)整發(fā)送端的傳輸速率,使網(wǎng)絡(luò)具備較高的穩(wěn)定性和魯棒性、較快的響應(yīng)性、較小的延遲、較低的丟棄概率以及較高的鏈路利用率。目前,已經(jīng)提出了眾多種經(jīng)典的AQM算法(如REM算法、PI算法、RED算法等),但大多存在算法復(fù)雜、在線計(jì)算周期長、實(shí)時(shí)控制網(wǎng)絡(luò)能力差等缺陷[7?9]。
1.2 ?數(shù)據(jù)驅(qū)動(dòng)設(shè)計(jì)思想
數(shù)據(jù)驅(qū)動(dòng)的設(shè)計(jì)思想是基于已有的輸入輸出I/O數(shù)據(jù)(受控對(duì)象)對(duì)控制器進(jìn)行設(shè)計(jì),從而完成被控系統(tǒng)的功能期望(包括優(yōu)化、決策等)[10]。其中,數(shù)據(jù)包括了在線和離線數(shù)據(jù),系統(tǒng)的在線數(shù)據(jù)會(huì)隨系統(tǒng)的控制方法、結(jié)構(gòu)參數(shù)或者其他擾動(dòng)的變化而實(shí)時(shí)變化,因此利用實(shí)時(shí)數(shù)據(jù)和反饋機(jī)制可以使數(shù)據(jù)驅(qū)動(dòng)的控制器具備較強(qiáng)的抗干擾、適應(yīng)和鎮(zhèn)定能力;而系統(tǒng)的離線數(shù)據(jù)包含了系統(tǒng)較多的歷史運(yùn)行信息,利用離線數(shù)據(jù)可以提高控制器的穩(wěn)定性。本文采用閉環(huán)控制方式對(duì)數(shù)據(jù)驅(qū)動(dòng)設(shè)計(jì)思想下的AQM算法進(jìn)行設(shè)計(jì),其運(yùn)行過程可描述為:首先,對(duì)網(wǎng)絡(luò)系統(tǒng)的擁塞進(jìn)行實(shí)時(shí)監(jiān)控和檢測;其次,發(fā)送擁塞相關(guān)信息給擁塞控制點(diǎn);最后,控制反饋的擁塞信息并對(duì)擁塞進(jìn)行消除。
1.3 ?NS2仿真軟件
作為一款使用廣泛的網(wǎng)絡(luò)模擬仿真軟件,NS2仿真軟件實(shí)際上是以離散事件為基礎(chǔ)驅(qū)動(dòng)的模擬器。該模擬器配備了網(wǎng)絡(luò)技術(shù)的多種模塊,能夠利用Otcl和C++語言實(shí)現(xiàn)各類網(wǎng)絡(luò)協(xié)議(如TCP,F(xiàn)TP等)、路由隊(duì)列管理機(jī)制(PID,RED等)及路由算法(靜態(tài)和動(dòng)態(tài)路由)、組播SRM和MAC子層等仿真實(shí)驗(yàn),具有擴(kuò)展性強(qiáng)、速度快、效率高、源代碼開源等優(yōu)勢(shì)[11]。按照實(shí)驗(yàn)?zāi)K是否需要添加或修改,可以單獨(dú)借助Otcl腳本的編寫或同時(shí)借助C++與Otcl類的創(chuàng)建及Otcl腳本的編寫來完成仿真實(shí)驗(yàn)。其一般的仿真步驟(已完成實(shí)驗(yàn)?zāi)K的添加工作)依次為:對(duì)網(wǎng)絡(luò)拓?fù)溥M(jìn)行設(shè)計(jì),并完成Otcl實(shí)驗(yàn)?zāi)_本的編寫;添加協(xié)議;配置模型參數(shù)(根據(jù)實(shí)驗(yàn)要求)、設(shè)置網(wǎng)絡(luò)對(duì)象(產(chǎn)生trace文件,用于全程事件的記錄);編寫畫圖等輔助程序;運(yùn)行腳本以開始實(shí)驗(yàn);畫出仿真結(jié)果。
2 ?AQM控制系統(tǒng)的設(shè)計(jì)
2.1 ?控制系統(tǒng)結(jié)構(gòu)設(shè)計(jì)
根據(jù)數(shù)據(jù)驅(qū)動(dòng)設(shè)計(jì)思想,AQM算法的控制系統(tǒng)可根據(jù)圖1所示進(jìn)行設(shè)計(jì),具體的運(yùn)行過程可描述為:
1) 對(duì)算法丟包率P進(jìn)行離線計(jì)算,之后將I/O數(shù)據(jù)(包含控制策略)存儲(chǔ)至數(shù)據(jù)庫,并將AQM算法相關(guān)參數(shù)與上述數(shù)據(jù)進(jìn)行綁定;
2) 在算法中編寫相關(guān)的接口程序以完成接口的設(shè)計(jì)編譯工作,編寫連接程序(建立在NS2底層中)以實(shí)現(xiàn)與數(shù)據(jù)庫的數(shù)據(jù)交換;
3) 借助Otcl語言查詢并調(diào)用數(shù)據(jù)庫中存儲(chǔ)的丟包率及其他數(shù)據(jù),以執(zhí)行相應(yīng)的丟包操作。
2.2 ?數(shù)據(jù)庫與接口設(shè)計(jì)
針對(duì)本文AQM算法所需控制器只需將I/O數(shù)據(jù)存放至數(shù)據(jù)庫的特點(diǎn),文中選用容量較小、操作簡單、成本較低的MySQL作為數(shù)據(jù)庫[12]。因此,數(shù)據(jù)庫與軟件接口的設(shè)計(jì)可以借助MySQL數(shù)據(jù)庫的API函數(shù)(C語言連接)和NS2仿真軟件的TclClass機(jī)制來實(shí)現(xiàn),即構(gòu)建編譯接口類Class TclMySQL。具體而言,在進(jìn)行仿真實(shí)驗(yàn)時(shí),NS2軟件的各類模塊會(huì)借助全局變量TclMySQL的實(shí)例化來完成與數(shù)據(jù)庫的連接,從而進(jìn)行數(shù)據(jù)庫中的數(shù)據(jù)讀取操作。接口設(shè)計(jì)的示意框圖如圖2所示。
3 ?AQM控制系統(tǒng)的實(shí)現(xiàn)
本文以RED控制器為例,對(duì)文中AQM控制系統(tǒng)的實(shí)現(xiàn)和仿真結(jié)果進(jìn)行說明。RED算法主要借助參數(shù)(wq,maxp,minth,maxth)關(guān)系的確定來判斷網(wǎng)絡(luò)擁塞的程度,并計(jì)算丟失概率且進(jìn)行丟包,從而避免或者緩解網(wǎng)絡(luò)擁塞。RED算法中的平均排隊(duì)長度avg計(jì)算公式為:
[avg←(1-wq)·avg+wq·q] (1)
式中,[wq]∈[0,1]為權(quán)重系數(shù),q代表的是瞬時(shí)隊(duì)列長度(采樣測量)。
若avg [Pb=0, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?avg 式中,maxp代表的是丟包概率(小于1)。 相應(yīng)的丟棄概率P,則可按照式(3)進(jìn)行計(jì)算: [P←Pb(1-count·Pb)] (3) 式中,P隨count和avg的變化而變化,而count代表的是位于緩沖區(qū)中的包個(gè)數(shù)。 根據(jù)上述RED算法的式(2)和式(3)可得到RED控制器所需的輸入輸出數(shù)據(jù),將其存為txt文件以備后續(xù)導(dǎo)入數(shù)據(jù)庫。其中,輸入數(shù)據(jù)為avg(設(shè)置為20~80包)和count(設(shè)置為0~30組),輸出數(shù)據(jù)則為P。相應(yīng)的部分?jǐn)?shù)據(jù)輸出程序如下: void main(){ double minth=20.0; double maxth=80.0; double maxP=0.02; double avg; double Pb; double P; double count; for(avg=74;avg<=80;avg++){ Pb=maxP*((avg-minth)/(maxth-minth)); for(count=0;count<=30;count++) { P=Pb/(1=count*Pb); count< }}} 數(shù)據(jù)庫方面,將avg和count的數(shù)據(jù)類型設(shè)置為float,將P的數(shù)據(jù)類型設(shè)置為decimal(M,D)。其中,M和D分別代表根據(jù)需要留取的整數(shù)位及小數(shù)位的位數(shù)。 4 ?仿真結(jié)果分析 在仿真實(shí)驗(yàn)之前,設(shè)置如下參數(shù):仿真時(shí)間設(shè)為50 s;瓶頸鏈路(R1和R2路由器之間)的容量設(shè)為1.8 Mb/s,相應(yīng)的時(shí)延為25 ms,隊(duì)列管理則選用AQM算法;其他鏈路的容量則設(shè)為2.5 Mb/s,相應(yīng)的時(shí)延設(shè)置為15 ms,隊(duì)列管理選用DropTail;路由器中的隊(duì)列長度設(shè)置為120個(gè)封包大小;針對(duì)RED算法,選取經(jīng)典參數(shù)wq=0.001 5,maxth=80,minth=20,maxP=0.02。相應(yīng)的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)如圖3所示。 分別選用不同的負(fù)載N(30和80)對(duì)本文結(jié)合數(shù)據(jù)驅(qū)動(dòng)方式的RED算法(簡稱為DRED控制方法)與傳統(tǒng)的RED算法進(jìn)行仿真測試及對(duì)比。負(fù)載較?。∟=30)時(shí)的平均隊(duì)列長度、瞬時(shí)隊(duì)列長度和丟包率的變化曲線如圖4~圖6所示。從圖中可以發(fā)現(xiàn),DRED控制方法和RED算法在平均隊(duì)列長度、瞬時(shí)隊(duì)列長度和丟包率上均具有相似的變化趨勢(shì)。由此表明,本文數(shù)據(jù)驅(qū)動(dòng)設(shè)計(jì)在負(fù)載較低時(shí)具有較高的有效性和可行性。從圖4可以看到,DRED控制方法相比于傳統(tǒng)的RED算法具有更優(yōu)的穩(wěn)定性,其平均隊(duì)列抖動(dòng)更小;從圖6可以發(fā)現(xiàn),DRED控制方法相比于RED算法具有更小的丟包率。此外,從仿真實(shí)驗(yàn)結(jié)果中還發(fā)現(xiàn),DRED控制方法具有更小的延時(shí),為0.180 357 s,小于RED的0.184 246 s。這相對(duì)于排隊(duì)延遲來講具有較大的意義,能夠有效減少丟包率??傮w來看,在負(fù)載不大時(shí)DRED控制方法的性能略優(yōu)于RED算法,表明結(jié)合了數(shù)據(jù)驅(qū)動(dòng)設(shè)計(jì)思想和離線數(shù)據(jù)讀取方式下的AQM算法,對(duì)于緩解網(wǎng)絡(luò)擁塞具有較大的潛力。 負(fù)載較大(N=80)時(shí)的平均隊(duì)列長度、瞬時(shí)隊(duì)列長度和丟包率的變化曲線如圖7~圖9所示。從圖中可以發(fā)現(xiàn),DRED控制方法和RED算法在平均隊(duì)列長度、瞬時(shí)隊(duì)列長度和丟包率上同樣具有相似的變化趨勢(shì)。表明本文數(shù)據(jù)驅(qū)動(dòng)設(shè)計(jì)在負(fù)載較高時(shí),同樣具有較高的有效性和可行性。從圖9中同樣可以看到,DRED控制方法相較于RED算法具有更低的丟包率。此外與低負(fù)載時(shí)類似,DRED控制方法在較高負(fù)載時(shí)同樣具有更小的時(shí)延,為0.220 134 s,小于RED的0.238 479 s,表明DRED控制方法在較大的負(fù)載情況下相較于RED算法具有更快的瓶頸鏈路處理速率,使時(shí)延(端到端)大幅降低,從而有效減小了丟包率??傮w來看,在負(fù)載較大時(shí)DRED控制方法的性能優(yōu)勢(shì)更為明顯,表明結(jié)合了數(shù)據(jù)驅(qū)動(dòng)設(shè)計(jì)思想和離線數(shù)據(jù)讀取方式下的AQM算法,確實(shí)能夠有效緩解網(wǎng)絡(luò)擁塞。 5 ?結(jié) ?語 結(jié)合控制理論的AQM算法通常存在計(jì)算復(fù)雜、在線計(jì)算時(shí)間長等缺陷,因此,基于數(shù)據(jù)庫和數(shù)據(jù)驅(qū)動(dòng)方式,本文結(jié)合MySQL數(shù)據(jù)庫與NS2的接口設(shè)計(jì),提出一種AQM算法的實(shí)現(xiàn)方法。該方法借助離線計(jì)算的數(shù)據(jù)驅(qū)動(dòng)方式,分離算法的計(jì)算過程,從而達(dá)到提高算法運(yùn)行速度和效率的目的。本文以RED算法為例,在該算法中引入數(shù)據(jù)驅(qū)動(dòng)的設(shè)計(jì)思想,并在NS2仿真軟件中進(jìn)行實(shí)現(xiàn)和測試。結(jié)果表明,結(jié)合數(shù)據(jù)驅(qū)動(dòng)方式的RED算法相較于傳統(tǒng)的RED算法具有更小的時(shí)延與更低的丟包率,說明了本文使用數(shù)據(jù)驅(qū)動(dòng)方式實(shí)現(xiàn)AQM算法,在網(wǎng)絡(luò)擁塞的緩解方面具有巨大的潛力。 參考文獻(xiàn) [1] 陳金超,謝東亮.無線網(wǎng)絡(luò)TCP擁塞控制算法研究綜述[J].軟件,2015,36(1):82?87. CHEN Jinchao, XIE Dongliang. Survey on TCP optimization in wireless network [J]. Computer engineering & software, 2015, 36(1): 82?87. [2] 陳鴻俊,范太華,穆炯.基于多目標(biāo)拆分優(yōu)化思維的擁塞網(wǎng)絡(luò)數(shù)值調(diào)度方法[J].沈陽工業(yè)大學(xué)學(xué)報(bào),2016,38(4):440?444. CHEN Hongjun, FAN Taihua, MU Jiong. Numerical scheduling method for network congestion based on multi?objective resolution optimization [J]. Journal of Shenyang University of Technology, 2016, 38(4): 440?444. [3] WELZL M. Network congestion control: managing Internet traffic [M]. New York: John Wiley & Sons, 2005. [4] QUET P F, OZBAY H. On the design of AQM supporting TCP flows using robust control theory [J]. IEEE transactions on automatic control, 2004, 49(6): 1031?1036. [5] 羅成,謝維信.傳感器網(wǎng)絡(luò)擁塞避免與控制的模糊AQM算法[J].電子學(xué)報(bào),2014,42(4):679?684. LUO Cheng, XIE Weixin. Fuzzy AQM for congestion avoidance and control in sensor networks [J]. Acta electronica sinica, 2014, 42(4): 679?684. [6] 劉雪梅.基于模糊控制理論的主動(dòng)隊(duì)列管理算法研究[D].南京:南京理工大學(xué),2013. LIU Xuemei. Research on active queue management algorithms based on fuzzy control theory [D]. Nanjing: Nanjing University of Technology, 2013. [7] 陳炳卿,牛玉剛.一種基于RBF網(wǎng)絡(luò)的參數(shù)自調(diào)整REM算法[J].華東理工大學(xué)學(xué)報(bào)(自然科學(xué)版),2010,36(3):428?432. CHEN Bingqing, NIU Yugang. Parameter self?regulation REM algorithm based on RBF neural network [J]. Journal of East China University of Science and Technology(Natural science edition), 2010, 36(3): 428?432. [8] 施利利,盧先領(lǐng).適用于WSNs的擁塞自適應(yīng)多徑路由算法[J].傳感器與微系統(tǒng),2014,33(8):141?144. SHI Lili, LU Xianling. Congestion adaptive multipath routing algorithm for WSNs [J]. Transducer and microsystem technologies, 2014, 33(8): 141?144. [9] 范紀(jì)松,武欣嶸,劉杰.一種改進(jìn)RED算法穩(wěn)定性研究[J].系統(tǒng)仿真學(xué)報(bào),2010,22(7):1711?1715. FAN Jisong, WU Xinrong, LIU Jie. Modified RED stability research [J]. Journal of system simulation, 2010, 22(7): 1711?1715. [10] 哀微.基于隨機(jī)逼近的數(shù)據(jù)驅(qū)動(dòng)控制方法研究[D].廣州:華南理工大學(xué),2011. AI Wei. Research on data?driven control method based on stochastic approximation [D]. Guangzhou: South China University of Technology, 2011. [11] ISSARIYAKUL T, HOSSAIN E. Introduction to network simulator NS2 [M]. New York: Springer, 2012. [12] WIDENIUS M, AXMARK D, DUBOIS P. MySQL reference manual [M]. Sebastopol: O′Reilly & Associates, Inc., 2002.