,,2,
(1.武漢科技大學(xué)a.計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院; b.湖北省智能信息處理與實(shí)時工業(yè)系統(tǒng)重點(diǎn)實(shí)驗(yàn)室,武漢 430065;2.湖北語言與智能信息處理研究基地,武漢 430072)
互聯(lián)網(wǎng)的快速發(fā)展對整個社會產(chǎn)生了深遠(yuǎn)的影響,然而數(shù)量龐大的網(wǎng)絡(luò)設(shè)備也帶來了巨額的能耗[1],網(wǎng)絡(luò)節(jié)能也越來越成為網(wǎng)絡(luò)設(shè)計(jì)的重要考慮因素。與此同時,網(wǎng)絡(luò)的最終目的是給用戶提供高性能的服務(wù),服務(wù)質(zhì)量和用戶體驗(yàn)是非常重要的2個方面。盡管網(wǎng)絡(luò)能耗正在成為業(yè)界關(guān)注的重點(diǎn),但節(jié)能不應(yīng)以較大的網(wǎng)絡(luò)性能損失為代價(jià),因此,根據(jù)當(dāng)前網(wǎng)絡(luò)動態(tài)調(diào)節(jié)網(wǎng)絡(luò)能耗和性能成為未來網(wǎng)絡(luò)發(fā)展的重要方向。
綠色網(wǎng)絡(luò)的實(shí)現(xiàn),會使用流匯聚、路由選擇等策略。它們的基本思路都是最小化資源需求,避免資源浪費(fèi),這就很容易造成帶寬競爭加劇、鏈路高負(fù)荷、網(wǎng)絡(luò)時延等情況,這種設(shè)計(jì)是在最小化資源需求的前提下實(shí)現(xiàn)網(wǎng)絡(luò)的功能。雖然這種設(shè)計(jì)實(shí)現(xiàn)了網(wǎng)絡(luò)功能,但其并沒有考慮到網(wǎng)絡(luò)性能和用戶體驗(yàn),最終造成網(wǎng)絡(luò)性能和服務(wù)質(zhì)量的降低。
在傳統(tǒng)網(wǎng)絡(luò)的層次結(jié)構(gòu)中,封閉的網(wǎng)絡(luò)設(shè)備內(nèi)置了過多的復(fù)雜協(xié)議,科研人員無法在真實(shí)環(huán)境中規(guī)模部署新協(xié)議[2],同時網(wǎng)絡(luò)能耗和性能評價(jià)的標(biāo)準(zhǔn)存在多樣性,實(shí)現(xiàn)能耗和性能的動態(tài)調(diào)節(jié)存在著部署和評價(jià)困難等問題。在傳統(tǒng)網(wǎng)絡(luò)中往往只能實(shí)現(xiàn)網(wǎng)絡(luò)節(jié)能或者只能使用超額資源供給、提高網(wǎng)絡(luò)冗余來提高網(wǎng)絡(luò)性能。文獻(xiàn)[3]給出了網(wǎng)絡(luò)能耗和性能動態(tài)調(diào)節(jié)的模型,并給出了在具體流量需求下的動態(tài)調(diào)節(jié)方案。然而,在當(dāng)前網(wǎng)絡(luò)能耗嚴(yán)重的情況下,需要從網(wǎng)絡(luò)全局的角度考慮能耗和性能,因此需要新的網(wǎng)絡(luò)架構(gòu)和新的機(jī)制來實(shí)現(xiàn)能耗和性能的動態(tài)調(diào)節(jié)。
網(wǎng)絡(luò)按照區(qū)域規(guī)模劃分可分為局域網(wǎng)、城域網(wǎng)和廣域網(wǎng)。傳統(tǒng)網(wǎng)絡(luò)的設(shè)計(jì)會使用大量冗余鏈路和超額資源供給以保證網(wǎng)絡(luò)的性能和可靠性[4]。廣域網(wǎng)由于廣泛采用網(wǎng)狀拓?fù)?全互聯(lián)拓?fù)?,使用大量冗余鏈路,在保證服務(wù)質(zhì)量的同時產(chǎn)生了巨大的能耗。為此,本文基于軟件定義網(wǎng)絡(luò)(Software Defined Network,SDN),提出一種在廣域網(wǎng)環(huán)境中能耗和性能的動態(tài)調(diào)節(jié)機(jī)制,使用休眠和啟發(fā)式算法,能夠根據(jù)用戶對網(wǎng)絡(luò)性能的關(guān)注程度彈性地調(diào)節(jié)網(wǎng)絡(luò)結(jié)構(gòu),根據(jù)網(wǎng)絡(luò)狀態(tài)反饋進(jìn)行實(shí)時自適應(yīng)調(diào)整。定義新的網(wǎng)絡(luò)評價(jià)方法,對能耗和性能的調(diào)節(jié)進(jìn)行評價(jià),并在模擬環(huán)境中實(shí)現(xiàn)驗(yàn)證。
傳統(tǒng)網(wǎng)絡(luò)存在擴(kuò)展困難等問題,互聯(lián)網(wǎng)經(jīng)過三十多年的高速發(fā)展,網(wǎng)絡(luò)技術(shù)也越來越成熟,逐漸孕育出一種新型的網(wǎng)絡(luò)體系架構(gòu),即軟件定義網(wǎng)絡(luò),2009年,Mckeown教授正式提出了SDN概念[5]。利用分層思想,SDN將交換機(jī)網(wǎng)絡(luò)的控制平面和數(shù)據(jù)平面分離,控制功能遷移到控制器并向上層提供應(yīng)用程序編程接口[6],控制層使用OpenFlow協(xié)議可以獲取底層網(wǎng)絡(luò)設(shè)備的運(yùn)行狀態(tài)等細(xì)節(jié)數(shù)據(jù),通過將二層轉(zhuǎn)發(fā)和三層路由表機(jī)制抽象為流表,控制層向數(shù)據(jù)轉(zhuǎn)發(fā)層的網(wǎng)絡(luò)設(shè)備下發(fā)流表便可以控制數(shù)據(jù)轉(zhuǎn)發(fā)規(guī)則,同時控制層向應(yīng)用層提供操作網(wǎng)絡(luò)設(shè)備的接口,為應(yīng)用層的設(shè)計(jì)提供了良好的平臺。通過開放南向和北向接口,SDN實(shí)現(xiàn)應(yīng)用和網(wǎng)絡(luò)的無縫集成,南向接口的統(tǒng)一開放屏蔽了底層物理轉(zhuǎn)發(fā)設(shè)備的差異,實(shí)現(xiàn)了底層網(wǎng)絡(luò)對上層應(yīng)用的透明化,SDN的出現(xiàn)使得網(wǎng)絡(luò)具有可編程性質(zhì)。
SDN目前主要應(yīng)用于流量工程、網(wǎng)絡(luò)安全以及負(fù)載均衡,隨著SDN應(yīng)用的不斷擴(kuò)展,SDN的應(yīng)用范圍也在不斷延伸,從最開始的校園網(wǎng),現(xiàn)在越來越多的公司企業(yè)也正在采用SDN對網(wǎng)絡(luò)進(jìn)行優(yōu)化,例如Google公司搭建了基于SDN架構(gòu)的B4系統(tǒng)[7]來實(shí)現(xiàn)流量平衡。微軟公司的SWAN系統(tǒng)利用SDN技術(shù)實(shí)現(xiàn)數(shù)據(jù)的高效利用。越來越多的數(shù)據(jù)中心也在使用SDN架構(gòu)提高鏈路利用率降低能耗[8-10]。在無線網(wǎng)絡(luò)中,也在利用SDN提高網(wǎng)絡(luò)可靠性以及降低能耗[11]。
目前主流的能耗管理機(jī)制可以分成以下2種:睡眠-喚醒機(jī)制和動態(tài)速率調(diào)節(jié)機(jī)制[12]。睡眠-喚醒機(jī)制可以讓負(fù)載較低的鏈路處于休眠狀態(tài),鏈路能耗降為0,從而實(shí)現(xiàn)節(jié)能;速率自適應(yīng)機(jī)制是根據(jù)鏈路的負(fù)載動態(tài)調(diào)節(jié)鏈路的帶寬。文獻(xiàn)[13]對2種能耗管理機(jī)制進(jìn)行了比較,指出睡眠-喚醒機(jī)制的節(jié)能效果更好且實(shí)現(xiàn)代價(jià)小,故本文使用睡眠-喚醒機(jī)制實(shí)現(xiàn)網(wǎng)絡(luò)能耗管理。
研究表明,設(shè)備負(fù)載對于網(wǎng)絡(luò)能耗影響很小,其主要因素是網(wǎng)絡(luò)中處于開啟狀態(tài)的元素[14],因此,減少網(wǎng)絡(luò)中處于工作狀態(tài)的元素可以顯著減少網(wǎng)絡(luò)能耗。在處于工作狀態(tài)的網(wǎng)絡(luò)設(shè)備中,主要的能耗來源為CPU、內(nèi)存、端口等元素。網(wǎng)絡(luò)中,除了鏈路元素外,網(wǎng)絡(luò)設(shè)備的其他元素?zé)o法實(shí)現(xiàn)休眠或者休眠代價(jià)太高,故本文中實(shí)現(xiàn)鏈路的睡眠-喚醒。
在傳統(tǒng)網(wǎng)絡(luò)的設(shè)計(jì)中,通過冗余鏈路和設(shè)備,提高網(wǎng)絡(luò)的可靠性。然而,大量的冗余鏈路導(dǎo)致很多網(wǎng)絡(luò)元素處于工作狀態(tài),引起網(wǎng)絡(luò)能耗,減少冗余雖然可以減少網(wǎng)絡(luò)能耗,但又會導(dǎo)致網(wǎng)絡(luò)性能和可靠性降低。因此,通過使用休眠機(jī)制,動態(tài)的增加網(wǎng)絡(luò)中的冗余元素可以動態(tài)調(diào)節(jié)網(wǎng)絡(luò)的能耗和性能。
在傳統(tǒng)網(wǎng)絡(luò)中,實(shí)現(xiàn)動態(tài)的睡眠-喚醒需要設(shè)計(jì)新的協(xié)議或者更換網(wǎng)絡(luò)設(shè)備,擴(kuò)展性較差,具有很大的實(shí)現(xiàn)開銷和經(jīng)濟(jì)代價(jià)。相較于傳統(tǒng)網(wǎng)絡(luò),在SDN網(wǎng)絡(luò)架構(gòu)中,控制層可以獲取底層網(wǎng)絡(luò)信息,并對底層網(wǎng)絡(luò)元素(鏈路、交換機(jī)等)進(jìn)行控制,通過控制增加或者減少底層網(wǎng)絡(luò)的冗余鏈路,便可靈活地實(shí)現(xiàn)網(wǎng)絡(luò)能耗和性能的動態(tài)調(diào)節(jié),同時由于SDN核心技術(shù)OpenFlow將底層設(shè)備各自的控制平面集中到SDN架構(gòu)的控制層,底層轉(zhuǎn)發(fā)設(shè)備只需要根據(jù)控制層下發(fā)的數(shù)據(jù)轉(zhuǎn)發(fā)規(guī)則進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā)即可,減少了大量底層網(wǎng)絡(luò)設(shè)備在拓?fù)鋽?shù)據(jù)維護(hù)和路由計(jì)算的能耗,節(jié)能效果更加明顯。
圖1為網(wǎng)絡(luò)性能和節(jié)能動態(tài)調(diào)節(jié)架構(gòu)。整個架構(gòu)分為3層:應(yīng)用層,控制層以及數(shù)據(jù)轉(zhuǎn)發(fā)層。應(yīng)用層通過北向接口和控制層連接,使用北向接口控制數(shù)據(jù)轉(zhuǎn)發(fā)層的數(shù)據(jù)轉(zhuǎn)發(fā);應(yīng)用層包含用戶輸入模塊、策略選擇模塊、策略實(shí)施模塊、系統(tǒng)反饋模塊,共同實(shí)現(xiàn)網(wǎng)絡(luò)能耗和性能動態(tài)調(diào)節(jié)的核心功能;數(shù)據(jù)轉(zhuǎn)發(fā)層為支持OpenFlow協(xié)議的交換機(jī),數(shù)據(jù)轉(zhuǎn)發(fā)層通過OpenFlow協(xié)議連接南向接口和控制層連接,根據(jù)控制層的指令修改自己的轉(zhuǎn)發(fā)規(guī)則以及更改自己的狀態(tài)??刂茖訛閼?yīng)用層提供操作數(shù)據(jù)轉(zhuǎn)發(fā)層的接口。
圖1 網(wǎng)絡(luò)性能和節(jié)能動態(tài)調(diào)節(jié)架構(gòu)
網(wǎng)絡(luò)能耗和網(wǎng)絡(luò)性能之間存在著如下所示的關(guān)系:
Z=αP+(1-α)C
(1)
其中,P表示網(wǎng)絡(luò)的性能,C表示網(wǎng)絡(luò)的能耗,Z表示網(wǎng)絡(luò)能耗和性能之間的調(diào)節(jié)。由式(1)可以看出,網(wǎng)絡(luò)能耗和性能之間存在著動態(tài)調(diào)節(jié),假如α= 0,則Z=C,此時只關(guān)注網(wǎng)絡(luò)的能耗;假如α= 1,則Z=P,此時只關(guān)注網(wǎng)絡(luò)的性能;α∈(0,1)時,則關(guān)注點(diǎn)會在能耗C和性能P之間動態(tài)變化,故能耗和性能需要根據(jù)網(wǎng)絡(luò)狀態(tài),使用應(yīng)用層的4個模塊進(jìn)行動態(tài)調(diào)整。
1)用戶輸入模塊
系統(tǒng)在初始運(yùn)行時,α設(shè)置為1,此時系統(tǒng)只關(guān)注網(wǎng)絡(luò)性能,系統(tǒng)反饋模塊持續(xù)向用戶反饋當(dāng)前網(wǎng)絡(luò)運(yùn)行狀態(tài),用戶獲得網(wǎng)絡(luò)運(yùn)行狀態(tài)后,就可以參考當(dāng)前α值和網(wǎng)絡(luò)運(yùn)行狀態(tài)對α值進(jìn)行調(diào)整。
2)策略選擇模塊
系統(tǒng)對能耗和性能的調(diào)節(jié)分為2個階段:第1個階段α∈[0,0.5],在此階段,用戶關(guān)注的重點(diǎn)是網(wǎng)絡(luò)能耗;第2個階段α∈(0.5,1],此階段用戶主要關(guān)注網(wǎng)絡(luò)性能。在用戶輸入模塊,輸入α值后,策略選擇模塊根據(jù)α值判斷此時能耗和性能調(diào)節(jié)所處的階段,根據(jù)不同的階段使用不同的算法和策略計(jì)算最新的網(wǎng)絡(luò)拓?fù)洹?/p>
3)策略實(shí)施模塊
策略實(shí)施模塊根據(jù)所選擇的能耗和性能調(diào)節(jié)策略計(jì)算得到最新的網(wǎng)絡(luò)拓?fù)?對當(dāng)前網(wǎng)絡(luò)拓?fù)溥M(jìn)行更新。
4)系統(tǒng)反饋模塊
用戶選擇α值可能會改變網(wǎng)絡(luò)的拓?fù)?從而改變網(wǎng)絡(luò)的能耗和性能。由于網(wǎng)絡(luò)流量不斷變化,流量突然涌入或者減少都會使α值的設(shè)置不符合當(dāng)前網(wǎng)絡(luò)狀態(tài),系統(tǒng)反饋模塊會及時向用戶反饋當(dāng)前網(wǎng)絡(luò)的狀態(tài),供用戶參考,從而使用戶能夠繼續(xù)選擇更合適的α值,以實(shí)現(xiàn)彈性自適應(yīng)的網(wǎng)絡(luò)能耗和性能的調(diào)節(jié)。
假設(shè)整個網(wǎng)絡(luò)為G(N,V),N為網(wǎng)絡(luò)中的節(jié)點(diǎn)集合,V為網(wǎng)絡(luò)中的鏈路集合,IN表示網(wǎng)絡(luò)中節(jié)點(diǎn)的數(shù)量,IV表示網(wǎng)絡(luò)中鏈路的數(shù)量。對于整個網(wǎng)絡(luò),假設(shè)網(wǎng)絡(luò)能耗為CG,則:
CG=CN+CV
(2)
其中,CN表示網(wǎng)絡(luò)節(jié)點(diǎn)的能耗,CV表示網(wǎng)絡(luò)鏈路的能耗。CNi表示第i個網(wǎng)絡(luò)節(jié)點(diǎn)的能,則:
(3)
(4)
這些元素包括端口、線卡、CPU、內(nèi)存、基帶芯片等,在以上元素中,若設(shè)備處于工作狀態(tài),除了端口和線卡以外,在正常工作時其他設(shè)備元素都無法關(guān)閉,因此,在使用鏈路休眠機(jī)制進(jìn)行能耗管理時,式(4)中只有通過改變INi也就是改變端口的數(shù)目,才可以實(shí)現(xiàn)對能耗的管理。綜上所述,本文對節(jié)點(diǎn)進(jìn)行能耗管理時,是通過關(guān)閉與某個端口相連的鏈路,從而關(guān)閉端口以及端口的線卡,以達(dá)到節(jié)能的效果。通過以上分析可知,減少鏈路可以減少處于工作狀態(tài)的端口,而冗余的鏈路可以提高網(wǎng)絡(luò)的可靠性和性能,因此實(shí)現(xiàn)網(wǎng)絡(luò)能耗和性能動態(tài)調(diào)節(jié)的方式就是增加或者減少網(wǎng)絡(luò)中的鏈路。
基于上述算法分析,提出SDN網(wǎng)絡(luò)環(huán)境中的能耗和性能動態(tài)調(diào)節(jié)算法。
首先獲取系統(tǒng)的網(wǎng)絡(luò)拓?fù)?獲取網(wǎng)絡(luò)拓?fù)浜缶涂梢詫φ麄€網(wǎng)絡(luò)結(jié)構(gòu)分析。從第2.3節(jié)的分析可知,實(shí)現(xiàn)節(jié)能和性能的動態(tài)調(diào)節(jié)是通過增加和減少鏈路實(shí)現(xiàn)的,因此,在獲取獲取網(wǎng)絡(luò)拓?fù)浜蟊阋@取網(wǎng)絡(luò)的鏈路信息,包括網(wǎng)絡(luò)鏈路的能耗和網(wǎng)絡(luò)的帶寬。獲取到所有的鏈路信息后,將這些鏈路按照能耗和帶寬分別進(jìn)行排序得到Le和Lb(Le為按照鏈路能耗從小到大排序的鏈路集合,Lb為按照帶寬從小到大進(jìn)行排序的鏈路集合),以便策略選擇模塊和策略實(shí)施模塊進(jìn)行分析計(jì)算。
Le和Lb是網(wǎng)絡(luò)中所有鏈路的集合,策略選擇和策略實(shí)施模塊在進(jìn)行計(jì)算時,需要是使用Le和Lb進(jìn)行計(jì)算,在計(jì)算過程中需要增加和減少鏈路,同時在計(jì)算過程中需要保證網(wǎng)絡(luò)中所有節(jié)點(diǎn)之間的是連通的(網(wǎng)絡(luò)中任意兩點(diǎn)之間存在一條路徑),因此,在計(jì)算之前需要去除Le和Lb中不能處于休眠的鏈路,假設(shè)所有網(wǎng)絡(luò)拓?fù)渲胁豢梢蕴幱谛菝郀顟B(tài)的鏈路集合為Lneed。
如圖2所示,在示例拓?fù)渲?為了保證網(wǎng)絡(luò)中任意2個節(jié)點(diǎn)之間是連通的,節(jié)點(diǎn)N2和節(jié)點(diǎn)N3之間的鏈路不能處于休眠狀態(tài)。
圖2 不能處于休眠狀態(tài)的鏈路演示
在網(wǎng)絡(luò)G(N,V)中,當(dāng)V中所有鏈路都啟用,此時網(wǎng)絡(luò)中的鏈路冗余最大,網(wǎng)絡(luò)的性能也最高,此時的α取值為1;當(dāng)V中使用的鏈路只能滿足整個網(wǎng)絡(luò)的連通且鏈路是從Le中從小到大選取的,再刪除一條路徑整個網(wǎng)絡(luò)便無法聯(lián)通時,此時網(wǎng)絡(luò)的鏈路冗余最小,網(wǎng)絡(luò)的性能也最小,能耗也最小,α取值為0,α值的大小就代表整個網(wǎng)絡(luò)中參與路徑計(jì)算的鏈路數(shù)目的多少。在網(wǎng)絡(luò)啟動的初始階段,參與路徑計(jì)算的是網(wǎng)絡(luò)G(N,V)的全部鏈路,此時網(wǎng)絡(luò)的能耗最大,網(wǎng)絡(luò)的性能最高,α為1。在第2.2節(jié)的策略選擇模塊中,將α的取值分為2個階段:[0,0.5]為關(guān)注網(wǎng)絡(luò)能耗階段,(0.5,1]為關(guān)注網(wǎng)絡(luò)性能階段,這2個階段分別選擇不同的策略來選擇開啟和睡眠的鏈路,以達(dá)到動態(tài)調(diào)節(jié)網(wǎng)絡(luò)能耗和性能。
α在[0,0.5]區(qū)間,此時網(wǎng)絡(luò)最關(guān)注的是網(wǎng)絡(luò)的能耗,為了實(shí)現(xiàn)α的在此區(qū)間的動態(tài)調(diào)節(jié),首先要保證網(wǎng)絡(luò)中所有節(jié)點(diǎn)是連通的(即保證網(wǎng)絡(luò)中任意2個節(jié)點(diǎn)之間有路徑可以達(dá)到)。由于此時最關(guān)注的事網(wǎng)絡(luò)的能耗,在使用啟發(fā)式算法計(jì)算最小拓?fù)鋾r,會從Le中按照網(wǎng)絡(luò)能耗從小到大選取,假設(shè)最小拓?fù)渲械逆溌芳蠟長min,則算法如下:
算法1α∈[0,0.5]最小拓?fù)洳檎宜惴?/p>
Lmin= Le
Ltmp=Le-Lneed
i = number of links in Ltmp
Repeat
link = link at index i of Ltmp
if( link is deleted from G(N,V) and
G(N,V) is connected )
Lmin=Lmin-link
i = i-1
end
until (i=0)
算法1計(jì)算出α∈[0,0.5]時的最小拓?fù)?也就是α=0時的網(wǎng)絡(luò)拓?fù)銵min,則后續(xù)會參與α調(diào)節(jié)計(jì)算的鏈路集合為Lmc=Le-Lmin,Lmc中鏈路的數(shù)量為Nmc。假設(shè)此時α設(shè)置為α1,則在最小計(jì)算拓?fù)涞幕A(chǔ)上,需要添加的鏈路數(shù)目為Nmc×α1條(Nmc×α1的值可能有小數(shù)部分,由于此時α∈[0,0.5],系統(tǒng)關(guān)注網(wǎng)絡(luò)能耗,因此直接對Nmc×α1取整數(shù))。
α在(0.5,1]區(qū)間,此時網(wǎng)絡(luò)最關(guān)注的是網(wǎng)絡(luò)的性能,同α在[0,0.5]區(qū)間一樣,為了實(shí)現(xiàn)α在此區(qū)間的動態(tài)調(diào)節(jié),首先也要保證網(wǎng)絡(luò)中所有的節(jié)點(diǎn)是連通的。由于在此區(qū)間關(guān)注的事網(wǎng)絡(luò)的性能,因此在使用啟發(fā)式算法計(jì)算最小計(jì)算拓?fù)鋾r從Lb中選取。
算法2α∈(0.5,1]最小拓?fù)洳檎宜惴?/p>
Lminb= Lb
Ltmp= Lb-Lneed
i = number of links inLtmp
Repeat
link = link at index i of Ltmp
if( link is deleted from G(N,V) and
G(N,V) is connected )
Lminb= Lminb-link
i = i-1
end
until (i = 0)
經(jīng)過以上算法計(jì)算出α∈(0.5,1]時的最小計(jì)算拓?fù)?假設(shè)此時最小計(jì)算拓?fù)渲墟溌返募蠟長minb,則后續(xù)會參與α調(diào)節(jié)計(jì)算的鏈路集合為Lmcb=Lb-Lminb,Lmcb中鏈路的數(shù)量為Nmcb。假設(shè)此時α設(shè)置為α2,則在最小計(jì)算拓?fù)涞幕A(chǔ)上,需要添加的鏈路數(shù)目為Nmc b×α1條(Nmc×α1的值可能有小數(shù)部分,由于此時α∈(0.5,1],系統(tǒng)關(guān)注網(wǎng)絡(luò)性能,故直接對Nmc×α2使用進(jìn)一法)。
通過以上步驟計(jì)算出網(wǎng)絡(luò)的最新拓?fù)浜?使用迪杰斯特拉算法重新計(jì)算網(wǎng)絡(luò)中各個節(jié)點(diǎn)的路由規(guī)則。計(jì)算完最新的拓?fù)浜途W(wǎng)絡(luò)節(jié)點(diǎn)最新的路由規(guī)則后,策略實(shí)施模塊將最新的拓?fù)浜吐酚梢?guī)則下發(fā)到網(wǎng)絡(luò)節(jié)點(diǎn)。
由于網(wǎng)絡(luò)流量具有突發(fā)性,α值的設(shè)置可能無法及時適應(yīng)網(wǎng)絡(luò)的流量,因此需要實(shí)時計(jì)算網(wǎng)絡(luò)的負(fù)載情況,為了防止網(wǎng)絡(luò)性能過低和網(wǎng)絡(luò)能耗過高,設(shè)計(jì)如下預(yù)警階段:
1)提示階段
如果有某條鏈路的負(fù)載超過了鏈路帶寬60%,那么會提示用戶需要增加α的值,如果所有鏈路負(fù)載均低于鏈路帶寬的30%,那么提示用戶可以減小α的值。
2)強(qiáng)制調(diào)整階段
當(dāng)網(wǎng)絡(luò)中某條鏈路的負(fù)載已經(jīng)超過鏈路帶寬的70%,則系統(tǒng)會自動增大α值;如果所有鏈路負(fù)載均低于鏈路帶寬的10%,那么系統(tǒng)會自動減小α的值。
由第2.2節(jié)可知,網(wǎng)絡(luò)能耗和網(wǎng)絡(luò)性能之間存在著如下所示的關(guān)系:
Z=αP+(1-α)C
其中,P表示網(wǎng)絡(luò)的性能,C表示網(wǎng)絡(luò)的能耗,Z表示網(wǎng)絡(luò)能耗和性能之間的調(diào)節(jié)?;诰W(wǎng)絡(luò)能耗和性能的關(guān)系,提出如下網(wǎng)絡(luò)評價(jià)方法。
對于網(wǎng)絡(luò)G(N,V),IV表示網(wǎng)絡(luò)中鏈路的數(shù)量,IN表示網(wǎng)絡(luò)中節(jié)點(diǎn)的數(shù)量,IS表示網(wǎng)絡(luò)中處于休眠狀態(tài)的鏈路,定義網(wǎng)絡(luò)節(jié)能效率為:
ηC=IS/IV
(5)
由于網(wǎng)絡(luò)性能的評價(jià)指標(biāo)有帶寬、丟包率、抖動等參數(shù),評價(jià)方式不相同,因此定義網(wǎng)絡(luò)性能效率為ηp。本文選擇帶寬和抖動作為網(wǎng)絡(luò)性能評價(jià)指標(biāo)。Bmax表示測試鏈路在α=1時的網(wǎng)絡(luò)帶寬,Bcur表示測試鏈路當(dāng)前網(wǎng)絡(luò)帶寬,則:
ηP=Bmax/Bcur
(6)
Jmin表示測試鏈路在α=1時的抖動時延,Jcur表示測試鏈路當(dāng)前抖動時延,則:
ηP=Jmin/Jcur
(7)
定義網(wǎng)絡(luò)能耗和性能調(diào)節(jié)因子:
ψ=αηP+(1-α)ηC
(8)
其中,ψ的大小代表網(wǎng)絡(luò)能耗和性能調(diào)節(jié)的合理程度,ψ越大表示能耗和性能調(diào)節(jié)的越合理。在達(dá)到相同性能時,ψ越大表明能耗越小;而在能耗相同時,更大的ψ表明取得更高的性能。
本文實(shí)驗(yàn)是基于floodlight+mininet組成的SDN虛擬環(huán)境完成的,具體環(huán)境如下:
1)硬件環(huán)境
PC機(jī);CPU為2.6 GHz;RAM為4 096 MB。
2)軟件環(huán)境
操作系統(tǒng)為64位ubuntu16.04;floodlight;mininet;iperf。
floodlight為當(dāng)前主流SDN控制器,具有穩(wěn)定性和易用性的特點(diǎn),能夠靈活地控制SDN網(wǎng)絡(luò)。mininet是輕量級的軟件定義網(wǎng)絡(luò)系統(tǒng)平臺,同時提供了對OpenFlow協(xié)議的支持,可以模擬真實(shí)環(huán)境中的SDN網(wǎng)絡(luò)。iperf是一款流行的網(wǎng)絡(luò)性能測試工具,可以測試帶寬等網(wǎng)絡(luò)參數(shù)。
1)廣域網(wǎng)常使用網(wǎng)狀拓?fù)?故在SDN模擬環(huán)境中建立如下示例拓?fù)洹?/p>
2)隨機(jī)設(shè)置圖3測試拓?fù)渲墟溌返膸?獲得的鏈路帶寬如表1所示。
圖3 網(wǎng)絡(luò)拓?fù)錅y試
表1 網(wǎng)絡(luò)拓?fù)滏溌窚y試
由于是在同樣的網(wǎng)絡(luò)環(huán)境中,在通常情況下,鏈路的帶寬和能耗成正比,因此可以假設(shè)網(wǎng)絡(luò)鏈路的能耗也是按照表1的排序。
3)α∈[0,0.5]和α∈(0.5,1]時的最小拓?fù)浞謩e如圖4、圖5所示。
圖4 α∈[0,0.5]時的最小拓?fù)?/p>
圖5 α∈(0.5,1]時的最小拓?fù)?/p>
根據(jù)第2.4節(jié)中的算法可知,α=0和α=1的拓?fù)浞謩e如圖3、圖4所示。α其他值會根據(jù)第2.4節(jié)中的算法實(shí)現(xiàn)動態(tài)調(diào)節(jié),網(wǎng)絡(luò)拓?fù)湟矔鶕?jù)α值的變化動態(tài)改變,以實(shí)現(xiàn)能耗和性能的動態(tài)調(diào)節(jié)。
4)根據(jù)第2.5節(jié)中的網(wǎng)絡(luò)評價(jià)方法對不同α值所對應(yīng)的網(wǎng)絡(luò)拓?fù)溥M(jìn)行評價(jià)。測量使用隨機(jī)模型,任意選擇測試拓?fù)渲?個交換機(jī),測試2個交換機(jī)之間在不同α值時的網(wǎng)絡(luò)能耗和性能調(diào)節(jié)因子ψ的變化,本測試選擇S1和S5 2個交換機(jī)。在本測試中,使用網(wǎng)絡(luò)帶寬和網(wǎng)絡(luò)抖動作為網(wǎng)絡(luò)性能指標(biāo)。使用網(wǎng)絡(luò)帶寬和網(wǎng)絡(luò)抖動作為網(wǎng)絡(luò)性能指標(biāo)所得到的α與ψ的變化關(guān)系如圖6~圖8所示。
圖6 UDP帶寬作為性能評價(jià)指標(biāo)時α與ψ的變化關(guān)系
圖7 TCP帶寬作為性能評價(jià)指標(biāo)時α與ψ的變化關(guān)系
圖8 使用抖動作為性能評價(jià)指標(biāo)時α與ψ的變化關(guān)系
首先在mininet模擬環(huán)境中建立使用網(wǎng)狀拓?fù)涞膹V域網(wǎng)網(wǎng)絡(luò),并設(shè)置了OpenFlow交換機(jī)中之間的鏈路帶寬。根據(jù)2.4節(jié)中的算法分析,分別計(jì)算出α∈[0,0.5]和α∈(0.5,1]時的最小拓?fù)?分別如圖4、圖5所示。圖3、圖4分別是α=1和α=0時的拓?fù)?根據(jù)2.4節(jié)中的算法可知,本文的動態(tài)調(diào)節(jié)機(jī)制會根據(jù)網(wǎng)絡(luò)的負(fù)載情況動態(tài)調(diào)節(jié)α值,從而動態(tài)調(diào)節(jié)網(wǎng)絡(luò)拓?fù)?以實(shí)現(xiàn)網(wǎng)絡(luò)能耗和性能的動態(tài)調(diào)節(jié)。
2.5節(jié)中設(shè)計(jì)了網(wǎng)絡(luò)能耗和性能的調(diào)節(jié)因子,調(diào)節(jié)因子ψ的大小反映了能耗和性能調(diào)節(jié)的合理程度。由于目前的廣域網(wǎng)常使用網(wǎng)狀拓?fù)?為了保證網(wǎng)絡(luò)性能,存在大量冗余鏈路,沒有考慮能耗問題,此時,α=1,文獻(xiàn)[7]指出互聯(lián)網(wǎng)的忙時最大平均鏈路利用率不足30%,故根據(jù)2.5節(jié)分析可知,在目前的廣域網(wǎng)環(huán)境下,ψ≤0.3。根據(jù)第2.4節(jié)分析可知,在圖3所示的測試拓?fù)渲?α=1和α=0.9經(jīng)過計(jì)算具有相同的網(wǎng)絡(luò)拓?fù)?故α=1和α=0.9時,ψ值相同。
通過圖6和圖7結(jié)果可知,在分別使用UDP和TCP帶寬作為性能評價(jià)指標(biāo)時,α的變化引起網(wǎng)絡(luò)拓?fù)涞淖兓?從而引起網(wǎng)絡(luò)性能發(fā)生變化,最終導(dǎo)致ψ的變化,但是不論α在[0,1]之間如何變化,ψ始終不小于0.3;圖8的結(jié)果表明,在使用抖動作為性能評價(jià)指標(biāo)時,α的變化引起ψ的變化,但是不論α在[0,1]之間如何變化,ψ始終不小于0.3。
圖6、圖7和圖8的實(shí)驗(yàn)結(jié)果表明,α在[0,1]之間變化時,ψ的大小也發(fā)生變化。傳統(tǒng)網(wǎng)絡(luò)(α=1)側(cè)重性能導(dǎo)致ψ小于0.3,在實(shí)際的網(wǎng)絡(luò)中,為了保證網(wǎng)絡(luò)的高性能會增加冗余鏈路,產(chǎn)生巨大的網(wǎng)絡(luò)能耗;在本文實(shí)驗(yàn)中,當(dāng)α在[0,1)變化時,由于可以根據(jù)系統(tǒng)反饋模塊彈性實(shí)時改變α,并且根據(jù)2.4節(jié)對網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行修改,在保證網(wǎng)絡(luò)性能的同時減小了網(wǎng)絡(luò)能耗,在相同網(wǎng)絡(luò)能耗時達(dá)到較高的網(wǎng)絡(luò)性能,與傳統(tǒng)網(wǎng)絡(luò)相比,ψ始終大于0.3。實(shí)驗(yàn)結(jié)果表明,傳統(tǒng)網(wǎng)絡(luò)側(cè)重網(wǎng)絡(luò)性能的提高而忽視了網(wǎng)絡(luò)的能耗,導(dǎo)致網(wǎng)絡(luò)調(diào)節(jié)因子ψ較小,即使網(wǎng)絡(luò)負(fù)載降低依然存在大量的冗余,網(wǎng)絡(luò)能耗和性能不能隨著網(wǎng)絡(luò)狀態(tài)進(jìn)行動態(tài)調(diào)整,本文的機(jī)制在網(wǎng)絡(luò)負(fù)載不斷變化時會彈性實(shí)時自適應(yīng)修改網(wǎng)絡(luò)結(jié)構(gòu),既不會造成大量冗余,也不會造成網(wǎng)絡(luò)性能降低,網(wǎng)絡(luò)調(diào)節(jié)因子ψ也大于傳統(tǒng)網(wǎng)絡(luò)。
目前的節(jié)能策略主要是將一些低利用率或閑置的網(wǎng)絡(luò)單元(交換機(jī)、路由器、鏈路)轉(zhuǎn)入睡眠狀態(tài),把流匯聚到盡可能少的路徑中[15-16],最終可能會造成網(wǎng)絡(luò)性能降低。為此,針對傳統(tǒng)網(wǎng)絡(luò)性能和能耗調(diào)節(jié)實(shí)現(xiàn)復(fù)雜,基于鏈路休眠機(jī)制,本文提出SDN網(wǎng)絡(luò)環(huán)境中廣域網(wǎng)性能和能耗的動態(tài)調(diào)節(jié)機(jī)制,并在mininet中搭建了模擬環(huán)境進(jìn)行驗(yàn)證,同時也基于提出的評價(jià)算法對傳統(tǒng)以及SDN網(wǎng)絡(luò)環(huán)境中的調(diào)節(jié)算法進(jìn)行了對比。實(shí)驗(yàn)結(jié)果表明,本文提出的調(diào)節(jié)機(jī)制在SDN網(wǎng)絡(luò)中實(shí)現(xiàn)了性能和能耗的動態(tài)調(diào)節(jié),相較于傳統(tǒng)網(wǎng)絡(luò),該算法更加合理,在降低網(wǎng)絡(luò)能耗的同時保證了網(wǎng)絡(luò)利用率高于傳統(tǒng)網(wǎng)絡(luò)。
由于使用啟發(fā)式算法,在修改α值時可能會引起網(wǎng)絡(luò)拓?fù)涞牟▌?下一步將會利用SDN在流量工程中的獨(dú)特優(yōu)勢,優(yōu)化網(wǎng)絡(luò)能耗和性能的動態(tài)調(diào)節(jié)。
[1] 張 法,Antonio F A,侯晨穎,等.網(wǎng)絡(luò)能耗系統(tǒng)模型及能效算法[J].計(jì)算機(jī)學(xué)報(bào),2012,35(3):603-615.
[2] 張朝昆,崔 勇,唐翯祎,等.軟件定義網(wǎng)絡(luò)(SDN)研究進(jìn)展[J].軟件學(xué)報(bào),2015,26(1):62-81.
[3] BRUNILDE S,HAKIM M.On reliability,performance and Internet power consumption[C]//Proceedings of the 7th International Workshop on IEEE Xplore Conference:Design of Reliable Communication Networks.Washington D.C.,USA:IEEE Press,2009:259-264.
[4] BOLLA R,BRUSCHI R,DAVOLI F,et al.A northbound interface for power management in next generation network devices[J].IEEE Communications Magazine,2014,52(1):149-157.
[5] MCKEOWN N,ANDERSON T,BALAKRISHNAN H N,et al.Openflow:enabling innovation in campus net-works[J].ACM Sigcomm Computer Communication Review,2008,38(2):69-74.
[6] 段 通,蘭巨龍,程國振,等.基于元能力SDN功能組合機(jī)制[J].通信學(xué)報(bào),2015,36(5):156-166.
[7] JAIN S,KUMAR A,MANDAL S,et al.Experience with a globally-deployed software defined WAN[J].ACM SIGCOMM Conference on Sigcomm,2013,43(4):3-14.
[8] 董 仕,李瑞軒,李曉林.基于軟件定義數(shù)據(jù)中心網(wǎng)絡(luò)的節(jié)能路由算法[J].計(jì)算機(jī)研究與發(fā)展,2015,52(4):806-812.
[9] LI D,SHANG Y,CHEN C.Software defined green data center network with exclusive routing[C]//Proceedings of IEEE Infocom Conference on Computer Communications.Washington D.C.,USA:IEEE Press,2014:1743-1751.
[10] 汪 帥,趙安瀾,李 書.基于SDN的數(shù)據(jù)中心網(wǎng)絡(luò)節(jié)能機(jī)制研究[J].無線互聯(lián)網(wǎng)科技,2016(1):44-45.
[11] 潘 甦,陶 帥,劉勝美.SDN 在無線網(wǎng)中的研究進(jìn)展[J].南京郵電大學(xué)學(xué)報(bào)(自然科學(xué)版),2016,36(3):18-22.
[12] 林 闖,田 源,姚 敏.綠色網(wǎng)絡(luò)和綠色評價(jià):節(jié)能機(jī)制、模型和評價(jià)[J].計(jì)算機(jī)學(xué)報(bào),2011,34(4):593-612.
[13] BIANZINO A P,CHAUDET C,ROSSI D,et al.A survey of green networking research[J].IEEE Communications Surveys & Tutorials,2012,14(1):3-20.
[14] FRéDéRIC G,JOANNA M,TRUONG K P,et al.Minimization of network power consumption with redundancy elemination[J].Computer Communications,2012,59:247-258.
[15] BOLLA R,BRUSCHI R,CIANFRANI A,et al.Enableing backbone networks to sleep[J].IEEE Network,2011,25(2):26-31.
[16] GUNARATNE C,CHRISTENSEN K,NORDMAN B,et al.Reducing the energy consumption of Ethernet with adaptive link rate(ALR)[J].IEEE Transactions on Computers,2008,57(4):448-461.