胡 柳,周立前,鄧 杰,趙正偉,李 瑞
(1.湖南信息職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)工程學(xué)院,湖南 長(zhǎng)沙 410200;2.湖南工業(yè)大學(xué) 計(jì)算機(jī)學(xué)院,湖南 株洲 412007;3.廣西民族大學(xué) 理學(xué)院,廣西 南寧 530006;4.河北省眼科醫(yī)院 信息科,河北 邢臺(tái) 054000)
傳統(tǒng)的數(shù)據(jù)中心網(wǎng)絡(luò)部署采用多鏈路、折疊式Clos結(jié)構(gòu)、Fat-tree胖樹拓?fù)涞葋?lái)解決網(wǎng)絡(luò)數(shù)據(jù)負(fù)載均衡、擁塞等情況,而有限的鏈路在應(yīng)對(duì)資源訪問(wèn)請(qǐng)求量急劇增加的情況時(shí)無(wú)法有效、及時(shí)完成數(shù)據(jù)傳輸,存在數(shù)據(jù)負(fù)載不均衡、網(wǎng)絡(luò)擁塞.近年來(lái)國(guó)內(nèi)外一些學(xué)者對(duì)基于SDN的網(wǎng)絡(luò)數(shù)據(jù)傳輸進(jìn)行了研究,如文獻(xiàn)[1]提出OFMT為每條流精確計(jì)算傳輸路徑,將網(wǎng)絡(luò)中的流量?jī)?yōu)化分配到端到端的多條路徑上,并通過(guò)周期性輪詢和動(dòng)態(tài)調(diào)度實(shí)現(xiàn)良好的負(fù)載均衡,進(jìn)而提高數(shù)據(jù)中心網(wǎng)絡(luò)吞吐量;另外還有基于遺傳算法的多路徑路由問(wèn)題[2-3],數(shù)據(jù)中心網(wǎng)絡(luò)數(shù)據(jù)傳輸問(wèn)題[4-7],視頻服務(wù)器負(fù)載均衡監(jiān)測(cè)[8],基于SDN的安全系統(tǒng)[9-11]等,研究熱點(diǎn)集中在OpenFlow協(xié)議的控制層對(duì)數(shù)據(jù)包進(jìn)行重路由、數(shù)據(jù)遷移等方面的計(jì)算,在自適應(yīng)多路徑負(fù)載均衡方面的研究較少且效果不明顯.
本文提出一種基于SDN的自適應(yīng)多路徑負(fù)載均衡策略(SDN-AMLB),利用Adaboost算法實(shí)現(xiàn)動(dòng)態(tài)自適應(yīng)大流重路由并添加到流表,從而實(shí)現(xiàn)自適應(yīng)負(fù)載均衡.
圖 1 框架模型圖Fig.1 Framework model
實(shí)現(xiàn)自適應(yīng)多路徑負(fù)載均衡的OpenFlow控制層結(jié)構(gòu)如圖1所示,主要包括負(fù)載監(jiān)控模塊、拓?fù)浒l(fā)現(xiàn)模塊、流表管理模塊、流量檢測(cè)模塊、自適應(yīng)調(diào)度模塊.負(fù)載監(jiān)控模塊對(duì)各路徑的流量進(jìn)行監(jiān)控,及時(shí)記錄空閑和過(guò)載的路徑.拓?fù)浒l(fā)現(xiàn)模塊用于幫助控制器掌握全局網(wǎng)絡(luò)結(jié)構(gòu).流表管理模塊與自適應(yīng)調(diào)度模塊相結(jié)合,將新產(chǎn)生的重路由路徑進(jìn)行統(tǒng)一管理.流量檢測(cè)模塊對(duì)流入、流出的大小流量進(jìn)行標(biāo)記.自適應(yīng)調(diào)度模塊根據(jù)鏈路流量的情況進(jìn)行自適應(yīng)調(diào)整,調(diào)整數(shù)據(jù)流的路徑并反饋至OpenFlow數(shù)據(jù)層,從而實(shí)現(xiàn)負(fù)載均衡功能.
為了有效實(shí)現(xiàn)負(fù)載均衡機(jī)制,需要將網(wǎng)絡(luò)流量中的大小流進(jìn)行區(qū)分并進(jìn)行標(biāo)記,采用自適應(yīng)算法對(duì)每條流進(jìn)行路徑計(jì)算,進(jìn)而完善流表實(shí)現(xiàn)重路由.通過(guò)對(duì)數(shù)據(jù)中心流量的監(jiān)測(cè)發(fā)現(xiàn),近80%的流量為小于100 kB.本文監(jiān)測(cè)使用多OpenFlow控制器內(nèi)的流量檢測(cè)模塊對(duì)數(shù)據(jù)流進(jìn)行解析,標(biāo)記超過(guò)100 kB的流量,并提交自適應(yīng)調(diào)度模塊對(duì)流量進(jìn)行路徑計(jì)算,實(shí)現(xiàn)多路徑下的負(fù)載均衡.
自適應(yīng)調(diào)度模塊是本文中的關(guān)鍵模塊,負(fù)責(zé)為網(wǎng)絡(luò)中的流量計(jì)算最佳的路由路徑,提高全網(wǎng)的利用率和吞吐量,實(shí)現(xiàn)網(wǎng)絡(luò)負(fù)載均衡.網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)可以認(rèn)為是一個(gè)無(wú)向連通圖,將其表示為:S=(N(s),F(s)),其中連通圖中結(jié)點(diǎn)集合為N(s)、邊集合為F(s).為了表示模擬連通圖中數(shù)據(jù)的傳輸信息,圖中每條邊的帶寬表示為W(Ni,Nj),實(shí)際的數(shù)據(jù)傳輸表示為WT(Ni,Nj).自適應(yīng)多路徑負(fù)載均衡的目的是使得在單位時(shí)間內(nèi)W(Ni,Nj)與WT(Ni,Nj)最為接近,路徑空閑率最低,且能根據(jù)數(shù)據(jù)包大小進(jìn)行自適應(yīng)調(diào)度.
控制器自適應(yīng)調(diào)度模塊初始化采用模擬網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行自適應(yīng)學(xué)習(xí),設(shè)單位時(shí)間內(nèi)的網(wǎng)絡(luò)數(shù)據(jù)流量為D1,D2,D3,…,Dn,其中每個(gè)元素D可使用元組表示為(p,w,r(i,j)),p為協(xié)議類型,w為數(shù)據(jù)包大小,r為默認(rèn)路徑集合.單位時(shí)間內(nèi)的網(wǎng)絡(luò)數(shù)據(jù)量表示為式(1),其中Di,w為網(wǎng)絡(luò)數(shù)據(jù)Di的大?。髀窂絺鬏?shù)臄?shù)據(jù)包數(shù)量表示為式(2).
(1)
(2)
用于自適應(yīng)學(xué)習(xí)的網(wǎng)絡(luò)數(shù)據(jù)表示為矩陣
(3)
數(shù)據(jù)中心網(wǎng)絡(luò)路徑分布表示為矩陣乘積
F=F1×F2×…×Fn.
(4)
其中:n為中心服務(wù)器到網(wǎng)絡(luò)邊界結(jié)點(diǎn)最大路由跳數(shù),Fi定義為第i級(jí)結(jié)點(diǎn)到后一級(jí)結(jié)點(diǎn)間的路徑矩陣,如(5)所示.
(5)
自適應(yīng)學(xué)習(xí)階段利用模擬網(wǎng)絡(luò)數(shù)據(jù)D分時(shí)間段輸入到網(wǎng)絡(luò)中,結(jié)合W(Ni,Nj)和WT(Ni,Nj)對(duì)數(shù)據(jù)傳輸路徑進(jìn)行模擬,并實(shí)時(shí)調(diào)整D中屬性r,尋找最優(yōu)的模型參數(shù)使數(shù)據(jù)傳輸效率最高,各路徑數(shù)據(jù)量均衡.每時(shí)間段內(nèi)的模擬數(shù)據(jù)傳輸作為一次算法的迭代過(guò)程,并獲取其最優(yōu)的弱分類器,通過(guò)N次迭代最終將N個(gè)弱分類器通過(guò)更新權(quán)重獲得強(qiáng)分類器.?dāng)?shù)據(jù)傳輸鏈路變換需要采用鏈路承載的數(shù)據(jù)量和鏈路帶寬進(jìn)行評(píng)估,鏈路剩余帶寬為總帶寬減當(dāng)前鏈路上承載的網(wǎng)絡(luò)流量,可表示為E(Ni,Nj).
(6)
為了提高鏈路利用率,方法中引入鏈路空閑率參數(shù)S(Ni,Nj),當(dāng)鏈路(Ni,Nj)中數(shù)據(jù)包傳輸完成后對(duì)該鏈路標(biāo)記“空”狀態(tài),數(shù)據(jù)包需要尋找路徑時(shí)在“空”路徑中尋找最長(zhǎng)“空”標(biāo)記路徑進(jìn)行傳輸.設(shè)需要尋找路徑的數(shù)據(jù)包為Di,其路徑計(jì)算式如式(7)所示.
Di·r=max(S(N1,N1),S(N1,N2),…,S(N1,Nn)).
(7)
算法過(guò)程如下:
(1) 初始化操作,輸入網(wǎng)絡(luò)數(shù)據(jù)D,更新路徑上的空閑情況.
(2) 循環(huán)數(shù)據(jù)包.
(3) 大流量分析并標(biāo)記,標(biāo)記超過(guò)100 kB的數(shù)據(jù)包.
(4) 提取數(shù)據(jù)包中的路徑表,并初步分析路徑的合理性.
(5) 計(jì)算每一級(jí)路徑上可承載該數(shù)據(jù)包的可能性,且對(duì)路徑空閑情況進(jìn)行評(píng)估.
(6) 尋找最優(yōu)空閑路徑并更新路徑表.
(7) 傳輸數(shù)據(jù)并更新鏈路空閑參數(shù).
(8) 記錄模型相關(guān)參數(shù),獲取弱分類器模型.
圖 2 網(wǎng)絡(luò)拓?fù)鋱DFig.2 Network topology
選用Mininet工具模擬SDN網(wǎng)絡(luò)用以驗(yàn)證SDN-AMLB的吞吐率、負(fù)載均衡二個(gè)特征結(jié)果.網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)如圖2所示.服務(wù)器位于數(shù)據(jù)中心,通過(guò)多路徑冗余連接網(wǎng)絡(luò)邊界與用戶主機(jī).邊界用戶分別向服務(wù)器發(fā)送請(qǐng)求,通過(guò)仿真實(shí)驗(yàn)驗(yàn)證SDN-AMLB下網(wǎng)絡(luò)吞吐率、負(fù)載均衡二個(gè)指標(biāo).
實(shí)驗(yàn)中記錄時(shí)間為1 min,根據(jù)SDN-AMLB 算法過(guò)程,其中需要對(duì)大小流進(jìn)行路由選擇,實(shí)驗(yàn)中的終端計(jì)算機(jī)用戶分別請(qǐng)求數(shù)據(jù)量為區(qū)間隨機(jī)分布,大小分配的關(guān)鍵點(diǎn)為512 kbit,1 Mbit,5 Mbit,20 Mbit,50 Mbit,100 Mbit,服務(wù)器及交換機(jī)線路帶寬為1 Gbit/s,其余鏈路帶寬范圍[1 Mbit/s,200 Mbit/s]隨機(jī)分布.
實(shí)驗(yàn)中利用SDN-AMLB算法對(duì)每個(gè)數(shù)據(jù)包進(jìn)行重路由計(jì)算,根據(jù)第2節(jié)的計(jì)算過(guò)程進(jìn)行自適應(yīng)多路徑數(shù)據(jù)轉(zhuǎn)發(fā).請(qǐng)求數(shù)據(jù)大小的分布情況有不均衡和均衡,初始15 s內(nèi)兩種情況的吞吐量基本一致,后期由于對(duì)鏈路帶寬、鏈路空閑率及節(jié)點(diǎn)、數(shù)據(jù)包大小等情況的綜合計(jì)算,通過(guò)算法進(jìn)行重路由后使得兩種情況下網(wǎng)絡(luò)吞吐量不一致.在請(qǐng)求數(shù)據(jù)分布不均衡的情況下,33 s后網(wǎng)絡(luò)吞吐量穩(wěn)定在170 Mbit/s;而請(qǐng)求數(shù)據(jù)均衡的情況下,26 s后網(wǎng)絡(luò)吞吐量穩(wěn)定在140 Mbit/s.這是由于SDN-ALMB算法在網(wǎng)絡(luò)數(shù)據(jù)包模擬時(shí)通過(guò)不斷完善數(shù)據(jù)進(jìn)行自適應(yīng)調(diào)整,經(jīng)過(guò)一定時(shí)間的收斂后結(jié)果趨于穩(wěn)定.網(wǎng)絡(luò)吞吐量指標(biāo)如圖3所示.
網(wǎng)絡(luò)負(fù)載均衡度根據(jù)網(wǎng)絡(luò)鏈路實(shí)時(shí)數(shù)據(jù)進(jìn)行統(tǒng)計(jì),網(wǎng)絡(luò)數(shù)據(jù)在鏈路中分布越均衡,該指標(biāo)數(shù)據(jù)越高.實(shí)驗(yàn)中對(duì)各鏈路進(jìn)行監(jiān)測(cè),初始化情況下10~32 s內(nèi)流量不均衡狀態(tài)下的均衡度比流量均衡狀態(tài)下的均衡度低,而在32 s之后結(jié)果相反,在經(jīng)過(guò)分類器完善后使得網(wǎng)絡(luò)數(shù)據(jù)傳輸較為穩(wěn)定,線路利用率較高,各節(jié)點(diǎn)負(fù)載均衡程度基本穩(wěn)定.由于算法在計(jì)算過(guò)程中結(jié)合鏈路帶寬、剩余帶寬、空閑率等情況進(jìn)行重路由計(jì)算,使鏈路在承擔(dān)的數(shù)據(jù)量上趨于穩(wěn)定,負(fù)載均衡指標(biāo)如圖4所示.
圖 3 網(wǎng)絡(luò)吞吐量指標(biāo) 圖 4 網(wǎng)絡(luò)負(fù)載均衡度指標(biāo) Fig.3 Network throughput index Fig.4 Network load balance index
對(duì)網(wǎng)絡(luò)中相關(guān)結(jié)點(diǎn)進(jìn)行監(jiān)測(cè),在用戶請(qǐng)求數(shù)據(jù)分布不均衡和均衡的情況下,節(jié)點(diǎn)A和節(jié)點(diǎn)B吞吐量及傳輸?shù)臄?shù)據(jù)包數(shù)量如表1所示.
表 1 節(jié)點(diǎn)監(jiān)控?cái)?shù)據(jù)Table 1 Node monitoring data
表 2 鏈路監(jiān)控?cái)?shù)據(jù)Table 2 Link monitoring data
實(shí)驗(yàn)過(guò)程中對(duì)鏈路的監(jiān)測(cè)主要使用線路利用率、剩余帶寬等參數(shù)進(jìn)行評(píng)估,在請(qǐng)求數(shù)據(jù)不均衡和均衡的情況下對(duì)節(jié)點(diǎn)A和結(jié)點(diǎn)B的監(jiān)測(cè)結(jié)果如表2所示.
設(shè)計(jì)了基于SDN的自適應(yīng)多路徑負(fù)載均衡策略SDN-MLAB,其控制層主要有負(fù)載監(jiān)控模塊、拓?fù)浒l(fā)現(xiàn)模塊、流表管理模塊、流量檢測(cè)模塊、自適應(yīng)調(diào)度模塊,其中自適應(yīng)調(diào)度模塊是本文重點(diǎn),結(jié)合Adaboost自適應(yīng)學(xué)習(xí)過(guò)程對(duì)網(wǎng)絡(luò)數(shù)據(jù)包進(jìn)行重路由計(jì)算,并對(duì)算法過(guò)程進(jìn)行描述.仿真實(shí)驗(yàn)表明,在不同網(wǎng)絡(luò)數(shù)據(jù)包傳輸情況下SDN-MLAB策略能有效實(shí)現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)包傳輸?shù)呢?fù)載均衡,有較高的吞吐量,提高了多路徑冗余鏈路下的鏈路利用率.
SDN-MLAB策略的不足之處是流表更新頻繁,且未對(duì)拓?fù)溥M(jìn)行有效的發(fā)現(xiàn)設(shè)計(jì).如果SDN控制器需要不停地更新流表會(huì)造成控制器效率低下,對(duì)網(wǎng)絡(luò)拓?fù)錄](méi)有進(jìn)行故障應(yīng)對(duì)處理策略,網(wǎng)絡(luò)設(shè)備故障時(shí)會(huì)對(duì)數(shù)據(jù)傳輸產(chǎn)生影響.上述二方面的內(nèi)容是后期需要著重思考與解決的內(nèi)容.
參考文獻(xiàn)(References):
[1] 陳鳴,胡慧,劉波,等.一種基于OpenFlow的多路徑傳輸機(jī)制[J].電子與信息學(xué)報(bào),2016,38(5):1242-1248.
CHEN M,HU H,LIU B,et al.An OpenFlow based multipath transmission mechanism[J].Journal of Electronics & Information Technology,2016,38(5):1242-1248.
[2] LIU Y,PAN Y,YANG M,et al.The multi-path routing problem in the software defined network[C]//International Conference on Natural Computation.IEEE,2016:250-254.
[3] KANG S B,KWON G I.Load balancing of software-defined network controller using genetic algorithm[J].Contemporary Engineering Sciences,2016,9(18):881-888.
[4] FIZI F S,ASKAR S.A novel load balancing algorithm for software defined network based datacenters[C]//International Conference on Broadband Communications for Next Generation Networks and Multimedia Applications.IEEE,2016:1-6.
[5] 楊洋,楊家海,溫皓森,等.基于SDN流量測(cè)量的數(shù)據(jù)中心多路徑傳輸研究[J].華中科技大學(xué)學(xué)報(bào)(自然科學(xué)版),2016,44(11): 53-58.
YANG Y,YANG J H,WEN H S,et al.Multipath routing research based on traffic measurement under SDN in data center networks[J].Journal of Huazhong University of Science & Technology(Natural Science Edition),2016,44(11):53-58.
[6] 林智華,高文,吳春明,等.基于離散粒子群算法的數(shù)據(jù)中心網(wǎng)絡(luò)流量調(diào)度研究[J].電子學(xué)報(bào),2016,44(9):2197-2202.
LIN Z H,GAO W,WU C M,et al.Data center network flow scheduling based on DPSO algorithm[J].Acta Electronica Sinica,2016,44(9):2197-2202.
[7] 陸一飛,朱書宏.數(shù)據(jù)中心網(wǎng)絡(luò)下基于SDN的TCP擁塞控制機(jī)制研究與實(shí)現(xiàn)[J].計(jì)算機(jī)學(xué)報(bào),2017,40(9):2167-2180.
LU Y F,ZHU S H.Research and implementation of TCP congestion control mechanism based on SDN in data center network[J].Chinese Journal of Computers,2017,40(9):2167-2180.
[8] YILMAZ S,TEKALP A M,UNLUTURK B D.Video streaming over software defined networks with server load balancing[C]//International Conference on Computing,NETWORKING and Communications.IEEE,2015:722-726.
[9] 王濤,陳鴻昶,程國(guó)振.軟件定義網(wǎng)絡(luò)及安全防御技術(shù)研究[J].通信學(xué)報(bào),2017,38(11):133-160.
WANG T,CHEN H H,CHENG G Z.Research on software-defined network and the security defense technology[J].Journal on Communications,2017,38(11):133-160.
[10] 王蒙蒙,劉建偉,陳杰,等.軟件定義網(wǎng)絡(luò):安全模型、機(jī)制及研究進(jìn)展[J].軟件學(xué)報(bào),2016,27(4):969-992.
WANG M M,LIU J W,CHEN J,et al.Software defined networking:Security model,threats and mechanism[J].Journal of Software,2016,27(4):969-992.
[11] 王秀磊,陳鳴,邢長(zhǎng)友,等.一種防御DDoS攻擊的軟件定義安全網(wǎng)絡(luò)機(jī)制[J].軟件學(xué)報(bào),2016,27(12):3104-3119.
WANG X L,CHEN M,XING C Y,et al.Software defined security networking mechanism against DDOS attacks[J].Journal of Software,2016,27(12):3104-3119.