甘 戈,程維杰,孔陽恒,鄢 府,李洪貴
(1.成都市公安局,四川 成都 610017;2.四川省金科成地理信息技術(shù)有限公司,四川 成都 610043)
可編程網(wǎng)絡(luò)的早期研究為SDN的誕生提供了理論支持。在2009年,Mckeown教授向外界正式展示了軟件定義網(wǎng)絡(luò)(Software Defined Network,SDN)的概念,其核心思想便是分離數(shù)據(jù)和控制。由德國(guó)電信、Facebook、谷歌、微軟、Verizon和雅虎在2011年創(chuàng)立的開放網(wǎng)絡(luò)基金會(huì)(Open Networking Foundation,ONF)制定的南向接口協(xié)議OpenFlow已經(jīng)成為該領(lǐng)域通信接口的普遍標(biāo)準(zhǔn)。該標(biāo)準(zhǔn)在一定程度上促進(jìn)了產(chǎn)品、服務(wù)、應(yīng)用、客戶和用戶市場(chǎng)的發(fā)展[1]。并加速了SDN的實(shí)際應(yīng)用部署。國(guó)外SDN起步較早,現(xiàn)已步入商業(yè)化階段。其中,比較典型的是谷歌在其主干網(wǎng)絡(luò)和數(shù)據(jù)庫(kù)之間使用ONF構(gòu)建的通信網(wǎng)絡(luò),提升了70%的網(wǎng)絡(luò)利用率,表明ONF具備了進(jìn)入商業(yè)化階段的實(shí)力,并且還具有很大的挖掘潛力。目前,傳統(tǒng)網(wǎng)絡(luò)由于其復(fù)雜的網(wǎng)絡(luò)設(shè)備和各種網(wǎng)絡(luò)協(xié)議[3]而受到限制,不可避免地會(huì)造成一定的資源浪費(fèi),在當(dāng)前大數(shù)據(jù)網(wǎng)絡(luò)[2]環(huán)境下,這種浪費(fèi)是不合理且可避免的。在靜態(tài)操作模式下,相較于傳統(tǒng)網(wǎng)絡(luò),SDN可實(shí)現(xiàn)可控、自主的二次開發(fā)。研究人員可以為不同網(wǎng)絡(luò)、不同通信設(shè)備等動(dòng)態(tài)調(diào)整對(duì)應(yīng)的配置管理參數(shù)。
該文主要研究在SDN網(wǎng)絡(luò)中進(jìn)行流量監(jiān)測(cè)和路由優(yōu)化的方法。在傳統(tǒng)網(wǎng)絡(luò)中,因網(wǎng)絡(luò)硬件設(shè)備的封閉性,網(wǎng)絡(luò)協(xié)議復(fù)雜且獨(dú)立,進(jìn)行流量測(cè)量時(shí)往往需要配合硬件設(shè)備的部署或者采用主動(dòng)發(fā)送探測(cè)包,導(dǎo)致測(cè)量的成本以及準(zhǔn)確度都很難達(dá)到預(yù)期[4]。SDN網(wǎng)絡(luò)擁有專注于邏輯功能和信息收集的控制器,能夠獲取整個(gè)網(wǎng)絡(luò)環(huán)境中的流量信息,為路由優(yōu)化等需求奠定基礎(chǔ)。根據(jù)SDN應(yīng)用層可編程的特點(diǎn),開發(fā)流量測(cè)量應(yīng)用和路由優(yōu)化應(yīng)用,完成基于SDN的網(wǎng)絡(luò)流量管理。
文中設(shè)計(jì)基于SDN的網(wǎng)絡(luò)流量管理系統(tǒng),主要提高寬帶利用率,減少網(wǎng)絡(luò)鏈路時(shí)延。為方便研究以及測(cè)試,使用Mininet及其可視化工具構(gòu)建一個(gè)SDN的虛擬網(wǎng)絡(luò)環(huán)境,創(chuàng)建一個(gè)網(wǎng)絡(luò)拓?fù)洌撏負(fù)浒巳舾傻腛penFlow交換機(jī)、主機(jī)以及控制器。由于SDN網(wǎng)絡(luò)的集中式控制器與分布式轉(zhuǎn)發(fā)的特點(diǎn)[5],采用開源的Ryu作為一個(gè)遠(yuǎn)程控制器管理整個(gè)虛擬網(wǎng)絡(luò)。路由優(yōu)化[6]策略有很多,這里將整個(gè)網(wǎng)絡(luò)環(huán)境看作有向圖,測(cè)量網(wǎng)絡(luò)性能,獲取QoS[7](Quality of Service),包括可用帶寬、時(shí)延、抖動(dòng)這三方面,將測(cè)量結(jié)果作為網(wǎng)絡(luò)拓?fù)鋱D各個(gè)網(wǎng)絡(luò)的鏈路權(quán)重。通過構(gòu)建這3個(gè)性能約束,設(shè)計(jì)路由算法??傮w方案設(shè)計(jì)如圖1所示。
圖1 總體方案設(shè)計(jì)
基于SDN的流量管理[8]系統(tǒng)設(shè)計(jì)的目的是為數(shù)據(jù)流路由優(yōu)化。整個(gè)流量管理系統(tǒng)的仿真使用Mininet來模擬數(shù)據(jù)轉(zhuǎn)發(fā)層的通信設(shè)備,包括交換機(jī)和主機(jī),交換機(jī)之間的鏈路也可以根據(jù)需求來模擬,控制層的Ryu控制器則是另外一個(gè)單獨(dú)的程序,流量測(cè)量和路由優(yōu)化的應(yīng)用基于Ryu提供的API開發(fā),流量測(cè)量應(yīng)用負(fù)責(zé)獲取網(wǎng)絡(luò)性能參數(shù),路由優(yōu)化應(yīng)用根據(jù)流量測(cè)量應(yīng)用獲取的參數(shù)設(shè)計(jì)約束、優(yōu)化路由路徑。系統(tǒng)流程如圖2所示。
圖2 系統(tǒng)流程
2.1.1 網(wǎng)絡(luò)可用帶寬測(cè)量
帶寬[9]是指網(wǎng)絡(luò)鏈路上數(shù)據(jù)傳輸?shù)乃俾?,單位是比特率(bit per second,bps)。網(wǎng)絡(luò)帶寬資源有限,當(dāng)帶寬被大量消耗的時(shí)候,可用帶寬會(huì)逐漸下降,極大影響網(wǎng)絡(luò)數(shù)據(jù)傳輸服務(wù)[10-11]。因此,可用帶寬的測(cè)量能夠較為準(zhǔn)確地反應(yīng)網(wǎng)絡(luò)資源的狀況。
以時(shí)間間隔T進(jìn)行周期性測(cè)量,Ui表示第i條鏈路的平均負(fù)載,則有:
其中,Ri(t)表示第i條鏈路第t時(shí)刻測(cè)量到的轉(zhuǎn)發(fā)數(shù)據(jù)量,第i條鏈路的可用剩余帶寬用Ai(t,t+T)表示,因此有:
其中,F(xiàn)i是鏈路的傳輸速率,由式(1)和式(2)可計(jì)算網(wǎng)絡(luò)鏈路的可用帶寬。參數(shù)T的選擇可以根據(jù)實(shí)際網(wǎng)絡(luò)流量的變化選取,基本原則是如果流量變化幅度比較大,則需要降低周期T以提高測(cè)量的準(zhǔn)確性,如果網(wǎng)絡(luò)流量比較穩(wěn)定,且變化不大,那么可以適當(dāng)延長(zhǎng)周期T,以降低測(cè)量對(duì)控制器和交換機(jī)資源的消耗。
2.1.2 網(wǎng)絡(luò)丟包率測(cè)量
丟包率反應(yīng)網(wǎng)絡(luò)數(shù)據(jù)包的丟失情況,可用下式描述:
其中,Nri(t)表示第i條鏈路在t時(shí)刻已經(jīng)接收的數(shù)據(jù)包數(shù)目,Δri(t+T)表示T時(shí)間段接收數(shù)據(jù)包的變化量,Nsi(t)表示第i條鏈路在t時(shí)刻已經(jīng)發(fā)送的數(shù)據(jù)包數(shù)目,Δsi(t+T)表示T時(shí)間段發(fā)送數(shù)據(jù)包的變化量,L(t,t+T)表示第i條鏈路的丟包率。
2.1.3 網(wǎng)絡(luò)抖動(dòng)測(cè)量
抖動(dòng)H是網(wǎng)絡(luò)中關(guān)于時(shí)延變化程度的度量。在網(wǎng)絡(luò)流量管理系統(tǒng)中,將其定義為數(shù)據(jù)包在通信網(wǎng)絡(luò)收發(fā)設(shè)備中流轉(zhuǎn)所消耗時(shí)間的相對(duì)偏差。兩個(gè)數(shù)據(jù)包之間的時(shí)延差值用D表示,則有如下公式:
其中,MRi表示第i個(gè)數(shù)據(jù)包接收時(shí)間,Msi表示第i個(gè)數(shù)據(jù)包發(fā)送時(shí)間。
將N個(gè)Di擴(kuò)展到一個(gè)樣本數(shù)據(jù)集,X=(x1,x2,…,xn)中,X是一個(gè)時(shí)延數(shù)據(jù)的集合,采用該樣本空間X的標(biāo)準(zhǔn)差表示抖動(dòng)H,則有:
根據(jù)式(7)和式(8),采用標(biāo)準(zhǔn)差的方式描述網(wǎng)絡(luò)鏈路的抖動(dòng)情況,H值越大,表示抖動(dòng)劇烈,反之抖動(dòng)平緩。
通過測(cè)量應(yīng)用測(cè)量可用帶寬、丟包率、抖動(dòng)這3個(gè)參數(shù),將測(cè)量結(jié)果作為下部分算法每條網(wǎng)絡(luò)鏈路的權(quán)重,進(jìn)行多QoS約束的路由優(yōu)化。
路由算法[12-13]是為了在網(wǎng)絡(luò)拓?fù)渲袑ふ掖鷥r(jià)最小的路由策略,通過計(jì)算網(wǎng)絡(luò)流量路徑獲得在同等網(wǎng)絡(luò)情況下更好的網(wǎng)絡(luò)體驗(yàn)。路徑計(jì)算[14-15]是一個(gè)尋優(yōu)問題,網(wǎng)絡(luò)節(jié)點(diǎn)較少時(shí)可以直接對(duì)可選鏈路進(jìn)行詳細(xì)分析,選擇最優(yōu)路徑,但是當(dāng)節(jié)點(diǎn)個(gè)數(shù)增加時(shí),所選鏈路總個(gè)數(shù)也會(huì)增加,如果分析全部鏈路,會(huì)消耗大量的時(shí)間,造成硬件資源的浪費(fèi)[16],不滿足實(shí)際網(wǎng)絡(luò)運(yùn)行的情況,所以考慮優(yōu)化算法,在允許的時(shí)間復(fù)雜度和空間復(fù)雜度內(nèi)進(jìn)行路徑計(jì)算[17]。
計(jì)算機(jī)網(wǎng)絡(luò)的拓?fù)涫且粡垷o向圖G(Y,E),Y是拓?fù)鋱D的點(diǎn)集合,E是邊的集合,基于第三部分計(jì)算的QoS網(wǎng)絡(luò)質(zhì)量參數(shù),設(shè)W=(WB,WL,WD)是三維的QoS約束向量,即要求在帶寬、丟包率、抖動(dòng)這3個(gè)參數(shù)約束下進(jìn)行路由策略的優(yōu)化。
算法步驟如下:
1)在測(cè)量周期T內(nèi)測(cè)量三維的網(wǎng)絡(luò)鏈路權(quán)重Wi=(Bi,Li,Di)。
2)輸入QoS約束條件W1=(B1,L1,D1)。
3)根據(jù)式(9),計(jì)算新的權(quán)重:
4)從圖G中刪除>1或>1的所有鏈路,得到新的圖G′,如果G′無法連通,直接返回,此次優(yōu)化無解,如果G′連通,跳轉(zhuǎn)至步驟5)。
5)從G′中刪除<1的鏈路,記為G″,若G″連通,跳轉(zhuǎn)至步驟6),否則跳轉(zhuǎn)至步驟7)。
6)按照前K條最短路徑算法,篩選出一條鏈路。
7)恢復(fù)步驟5)刪除的鏈路,將圖恢復(fù)到G′。按照前K條最短路徑算法[18],將最短路徑排序,選多條鏈路以滿足帶寬需求。
利用Mininet網(wǎng)絡(luò)模擬仿真平臺(tái)進(jìn)行性能評(píng)估,所需評(píng)估參數(shù)如下:
1)平均帶寬利用率p
平均帶寬利用率p是當(dāng)前N條通信鏈路帶寬比值和的平均值,理想情況下[19],N條通信鏈路的比值和為N,在實(shí)際網(wǎng)絡(luò)環(huán)境中,N的值受限于流量負(fù)載、設(shè)備控制等因素,實(shí)際值遠(yuǎn)小于N。根據(jù)式(10)判斷網(wǎng)絡(luò)狀態(tài)的優(yōu)劣。
p越大,網(wǎng)絡(luò)的狀態(tài)和整體性能越好,反之,p越小,網(wǎng)絡(luò)的狀態(tài)和整體性能越差。
2)平均傳輸時(shí)延τ
平均傳輸時(shí)延τ是指網(wǎng)絡(luò)鏈路數(shù)據(jù)包從發(fā)送端主機(jī)發(fā)出到接收的平均時(shí)間差,其評(píng)估公式如下:
通過式(11)計(jì)算數(shù)據(jù)流的平均傳輸時(shí)延,將獲得的參數(shù)作為評(píng)估仿真系統(tǒng)的性能評(píng)估指標(biāo)。傳輸時(shí)延τ越小,表明網(wǎng)絡(luò)的性能和狀態(tài)好;反之,表明網(wǎng)絡(luò)的性能和狀態(tài)差。
為了更好地在虛擬環(huán)境里模擬實(shí)際環(huán)境,設(shè)置3種不同的流量,對(duì)文中流量管理系統(tǒng)進(jìn)行測(cè)試[20-21]。并且3種數(shù)據(jù)流均按照概率模式設(shè)定3種概率,分別為p1、p2、p3。
按照表1的方式設(shè)置3種數(shù)據(jù)流進(jìn)行仿真,數(shù)據(jù)流的總數(shù)分別為64條、96條、128條。
表1 數(shù)據(jù)流的數(shù)目和帶寬分配比例
使用Mininet網(wǎng)絡(luò)仿真環(huán)境對(duì)設(shè)計(jì)的流量管理系統(tǒng)進(jìn)行測(cè)試。
1)不同情況的平均帶寬利用率
經(jīng)過實(shí)際仿真測(cè)試,數(shù)據(jù)流大小可以影響該系統(tǒng)的平均帶寬利用率,不同的概率模式下平均帶寬利用率基本隨數(shù)據(jù)流增加而減少。但是當(dāng)數(shù)據(jù)流滿足p2概率模式時(shí),其帶寬利用率最高。平均帶寬率具體如圖3所示。
圖3 平均帶寬利用率比較
2)平均傳輸時(shí)延
經(jīng)過實(shí)測(cè),不同的流量負(fù)載對(duì)傳輸延時(shí)影響巨大,但是,傳輸造成的延時(shí)最大不超過30 ms。
圖4 不同流量負(fù)載下的傳輸延時(shí)
該文以SDN架構(gòu)為背景,設(shè)計(jì)了基于SDN的網(wǎng)絡(luò)流量管理系統(tǒng),包括流量測(cè)量應(yīng)用和路由優(yōu)化應(yīng)用。路由測(cè)量應(yīng)用測(cè)量可用帶寬、丟包率、抖動(dòng)3個(gè)網(wǎng)絡(luò)性能參數(shù),基于這3個(gè)參數(shù)約束進(jìn)行路由優(yōu)化,使用兩個(gè)性能評(píng)估指標(biāo)測(cè)試流量管理,利用Mininet虛擬網(wǎng)絡(luò)仿真器進(jìn)行數(shù)據(jù)流量管理模擬,在3種不同的數(shù)據(jù)流情況下,基于SDN的數(shù)據(jù)流量管理系統(tǒng)可以均衡地實(shí)現(xiàn)流量路由,為接下來的研究提供了一定的研究方向。