,,2,
(1.武漢科技大學a.計算機科學與技術學院; b.湖北省智能信息處理與實時工業(yè)系統(tǒng)重點實驗室,武漢 430065;2.湖北語言與智能信息處理研究基地,武漢 430072)
互聯(lián)網(wǎng)的快速發(fā)展對整個社會產(chǎn)生了深遠的影響,然而數(shù)量龐大的網(wǎng)絡設備也帶來了巨額的能耗[1],網(wǎng)絡節(jié)能也越來越成為網(wǎng)絡設計的重要考慮因素。與此同時,網(wǎng)絡的最終目的是給用戶提供高性能的服務,服務質(zhì)量和用戶體驗是非常重要的2個方面。盡管網(wǎng)絡能耗正在成為業(yè)界關注的重點,但節(jié)能不應以較大的網(wǎng)絡性能損失為代價,因此,根據(jù)當前網(wǎng)絡動態(tài)調(diào)節(jié)網(wǎng)絡能耗和性能成為未來網(wǎng)絡發(fā)展的重要方向。
綠色網(wǎng)絡的實現(xiàn),會使用流匯聚、路由選擇等策略。它們的基本思路都是最小化資源需求,避免資源浪費,這就很容易造成帶寬競爭加劇、鏈路高負荷、網(wǎng)絡時延等情況,這種設計是在最小化資源需求的前提下實現(xiàn)網(wǎng)絡的功能。雖然這種設計實現(xiàn)了網(wǎng)絡功能,但其并沒有考慮到網(wǎng)絡性能和用戶體驗,最終造成網(wǎng)絡性能和服務質(zhì)量的降低。
在傳統(tǒng)網(wǎng)絡的層次結構中,封閉的網(wǎng)絡設備內(nèi)置了過多的復雜協(xié)議,科研人員無法在真實環(huán)境中規(guī)模部署新協(xié)議[2],同時網(wǎng)絡能耗和性能評價的標準存在多樣性,實現(xiàn)能耗和性能的動態(tài)調(diào)節(jié)存在著部署和評價困難等問題。在傳統(tǒng)網(wǎng)絡中往往只能實現(xiàn)網(wǎng)絡節(jié)能或者只能使用超額資源供給、提高網(wǎng)絡冗余來提高網(wǎng)絡性能。文獻[3]給出了網(wǎng)絡能耗和性能動態(tài)調(diào)節(jié)的模型,并給出了在具體流量需求下的動態(tài)調(diào)節(jié)方案。然而,在當前網(wǎng)絡能耗嚴重的情況下,需要從網(wǎng)絡全局的角度考慮能耗和性能,因此需要新的網(wǎng)絡架構和新的機制來實現(xiàn)能耗和性能的動態(tài)調(diào)節(jié)。
網(wǎng)絡按照區(qū)域規(guī)模劃分可分為局域網(wǎng)、城域網(wǎng)和廣域網(wǎng)。傳統(tǒng)網(wǎng)絡的設計會使用大量冗余鏈路和超額資源供給以保證網(wǎng)絡的性能和可靠性[4]。廣域網(wǎng)由于廣泛采用網(wǎng)狀拓撲(全互聯(lián)拓撲),使用大量冗余鏈路,在保證服務質(zhì)量的同時產(chǎn)生了巨大的能耗。為此,本文基于軟件定義網(wǎng)絡(Software Defined Network,SDN),提出一種在廣域網(wǎng)環(huán)境中能耗和性能的動態(tài)調(diào)節(jié)機制,使用休眠和啟發(fā)式算法,能夠根據(jù)用戶對網(wǎng)絡性能的關注程度彈性地調(diào)節(jié)網(wǎng)絡結構,根據(jù)網(wǎng)絡狀態(tài)反饋進行實時自適應調(diào)整。定義新的網(wǎng)絡評價方法,對能耗和性能的調(diào)節(jié)進行評價,并在模擬環(huán)境中實現(xiàn)驗證。
傳統(tǒng)網(wǎng)絡存在擴展困難等問題,互聯(lián)網(wǎng)經(jīng)過三十多年的高速發(fā)展,網(wǎng)絡技術也越來越成熟,逐漸孕育出一種新型的網(wǎng)絡體系架構,即軟件定義網(wǎng)絡,2009年,Mckeown教授正式提出了SDN概念[5]。利用分層思想,SDN將交換機網(wǎng)絡的控制平面和數(shù)據(jù)平面分離,控制功能遷移到控制器并向上層提供應用程序編程接口[6],控制層使用OpenFlow協(xié)議可以獲取底層網(wǎng)絡設備的運行狀態(tài)等細節(jié)數(shù)據(jù),通過將二層轉發(fā)和三層路由表機制抽象為流表,控制層向數(shù)據(jù)轉發(fā)層的網(wǎng)絡設備下發(fā)流表便可以控制數(shù)據(jù)轉發(fā)規(guī)則,同時控制層向應用層提供操作網(wǎng)絡設備的接口,為應用層的設計提供了良好的平臺。通過開放南向和北向接口,SDN實現(xiàn)應用和網(wǎng)絡的無縫集成,南向接口的統(tǒng)一開放屏蔽了底層物理轉發(fā)設備的差異,實現(xiàn)了底層網(wǎng)絡對上層應用的透明化,SDN的出現(xiàn)使得網(wǎng)絡具有可編程性質(zhì)。
SDN目前主要應用于流量工程、網(wǎng)絡安全以及負載均衡,隨著SDN應用的不斷擴展,SDN的應用范圍也在不斷延伸,從最開始的校園網(wǎng),現(xiàn)在越來越多的公司企業(yè)也正在采用SDN對網(wǎng)絡進行優(yōu)化,例如Google公司搭建了基于SDN架構的B4系統(tǒng)[7]來實現(xiàn)流量平衡。微軟公司的SWAN系統(tǒng)利用SDN技術實現(xiàn)數(shù)據(jù)的高效利用。越來越多的數(shù)據(jù)中心也在使用SDN架構提高鏈路利用率降低能耗[8-10]。在無線網(wǎng)絡中,也在利用SDN提高網(wǎng)絡可靠性以及降低能耗[11]。
目前主流的能耗管理機制可以分成以下2種:睡眠-喚醒機制和動態(tài)速率調(diào)節(jié)機制[12]。睡眠-喚醒機制可以讓負載較低的鏈路處于休眠狀態(tài),鏈路能耗降為0,從而實現(xiàn)節(jié)能;速率自適應機制是根據(jù)鏈路的負載動態(tài)調(diào)節(jié)鏈路的帶寬。文獻[13]對2種能耗管理機制進行了比較,指出睡眠-喚醒機制的節(jié)能效果更好且實現(xiàn)代價小,故本文使用睡眠-喚醒機制實現(xiàn)網(wǎng)絡能耗管理。
研究表明,設備負載對于網(wǎng)絡能耗影響很小,其主要因素是網(wǎng)絡中處于開啟狀態(tài)的元素[14],因此,減少網(wǎng)絡中處于工作狀態(tài)的元素可以顯著減少網(wǎng)絡能耗。在處于工作狀態(tài)的網(wǎng)絡設備中,主要的能耗來源為CPU、內(nèi)存、端口等元素。網(wǎng)絡中,除了鏈路元素外,網(wǎng)絡設備的其他元素無法實現(xiàn)休眠或者休眠代價太高,故本文中實現(xiàn)鏈路的睡眠-喚醒。
在傳統(tǒng)網(wǎng)絡的設計中,通過冗余鏈路和設備,提高網(wǎng)絡的可靠性。然而,大量的冗余鏈路導致很多網(wǎng)絡元素處于工作狀態(tài),引起網(wǎng)絡能耗,減少冗余雖然可以減少網(wǎng)絡能耗,但又會導致網(wǎng)絡性能和可靠性降低。因此,通過使用休眠機制,動態(tài)的增加網(wǎng)絡中的冗余元素可以動態(tài)調(diào)節(jié)網(wǎng)絡的能耗和性能。
在傳統(tǒng)網(wǎng)絡中,實現(xiàn)動態(tài)的睡眠-喚醒需要設計新的協(xié)議或者更換網(wǎng)絡設備,擴展性較差,具有很大的實現(xiàn)開銷和經(jīng)濟代價。相較于傳統(tǒng)網(wǎng)絡,在SDN網(wǎng)絡架構中,控制層可以獲取底層網(wǎng)絡信息,并對底層網(wǎng)絡元素(鏈路、交換機等)進行控制,通過控制增加或者減少底層網(wǎng)絡的冗余鏈路,便可靈活地實現(xiàn)網(wǎng)絡能耗和性能的動態(tài)調(diào)節(jié),同時由于SDN核心技術OpenFlow將底層設備各自的控制平面集中到SDN架構的控制層,底層轉發(fā)設備只需要根據(jù)控制層下發(fā)的數(shù)據(jù)轉發(fā)規(guī)則進行數(shù)據(jù)轉發(fā)即可,減少了大量底層網(wǎng)絡設備在拓撲數(shù)據(jù)維護和路由計算的能耗,節(jié)能效果更加明顯。
圖1為網(wǎng)絡性能和節(jié)能動態(tài)調(diào)節(jié)架構。整個架構分為3層:應用層,控制層以及數(shù)據(jù)轉發(fā)層。應用層通過北向接口和控制層連接,使用北向接口控制數(shù)據(jù)轉發(fā)層的數(shù)據(jù)轉發(fā);應用層包含用戶輸入模塊、策略選擇模塊、策略實施模塊、系統(tǒng)反饋模塊,共同實現(xiàn)網(wǎng)絡能耗和性能動態(tài)調(diào)節(jié)的核心功能;數(shù)據(jù)轉發(fā)層為支持OpenFlow協(xié)議的交換機,數(shù)據(jù)轉發(fā)層通過OpenFlow協(xié)議連接南向接口和控制層連接,根據(jù)控制層的指令修改自己的轉發(fā)規(guī)則以及更改自己的狀態(tài)。控制層為應用層提供操作數(shù)據(jù)轉發(fā)層的接口。
圖1 網(wǎng)絡性能和節(jié)能動態(tài)調(diào)節(jié)架構
網(wǎng)絡能耗和網(wǎng)絡性能之間存在著如下所示的關系:
Z=αP+(1-α)C
(1)
其中,P表示網(wǎng)絡的性能,C表示網(wǎng)絡的能耗,Z表示網(wǎng)絡能耗和性能之間的調(diào)節(jié)。由式(1)可以看出,網(wǎng)絡能耗和性能之間存在著動態(tài)調(diào)節(jié),假如α= 0,則Z=C,此時只關注網(wǎng)絡的能耗;假如α= 1,則Z=P,此時只關注網(wǎng)絡的性能;α∈(0,1)時,則關注點會在能耗C和性能P之間動態(tài)變化,故能耗和性能需要根據(jù)網(wǎng)絡狀態(tài),使用應用層的4個模塊進行動態(tài)調(diào)整。
1)用戶輸入模塊
系統(tǒng)在初始運行時,α設置為1,此時系統(tǒng)只關注網(wǎng)絡性能,系統(tǒng)反饋模塊持續(xù)向用戶反饋當前網(wǎng)絡運行狀態(tài),用戶獲得網(wǎng)絡運行狀態(tài)后,就可以參考當前α值和網(wǎng)絡運行狀態(tài)對α值進行調(diào)整。
2)策略選擇模塊
系統(tǒng)對能耗和性能的調(diào)節(jié)分為2個階段:第1個階段α∈[0,0.5],在此階段,用戶關注的重點是網(wǎng)絡能耗;第2個階段α∈(0.5,1],此階段用戶主要關注網(wǎng)絡性能。在用戶輸入模塊,輸入α值后,策略選擇模塊根據(jù)α值判斷此時能耗和性能調(diào)節(jié)所處的階段,根據(jù)不同的階段使用不同的算法和策略計算最新的網(wǎng)絡拓撲。
3)策略實施模塊
策略實施模塊根據(jù)所選擇的能耗和性能調(diào)節(jié)策略計算得到最新的網(wǎng)絡拓撲,對當前網(wǎng)絡拓撲進行更新。
4)系統(tǒng)反饋模塊
用戶選擇α值可能會改變網(wǎng)絡的拓撲,從而改變網(wǎng)絡的能耗和性能。由于網(wǎng)絡流量不斷變化,流量突然涌入或者減少都會使α值的設置不符合當前網(wǎng)絡狀態(tài),系統(tǒng)反饋模塊會及時向用戶反饋當前網(wǎng)絡的狀態(tài),供用戶參考,從而使用戶能夠繼續(xù)選擇更合適的α值,以實現(xiàn)彈性自適應的網(wǎng)絡能耗和性能的調(diào)節(jié)。
假設整個網(wǎng)絡為G(N,V),N為網(wǎng)絡中的節(jié)點集合,V為網(wǎng)絡中的鏈路集合,IN表示網(wǎng)絡中節(jié)點的數(shù)量,IV表示網(wǎng)絡中鏈路的數(shù)量。對于整個網(wǎng)絡,假設網(wǎng)絡能耗為CG,則:
CG=CN+CV
(2)
其中,CN表示網(wǎng)絡節(jié)點的能耗,CV表示網(wǎng)絡鏈路的能耗。CNi表示第i個網(wǎng)絡節(jié)點的能,則:
(3)
(4)
這些元素包括端口、線卡、CPU、內(nèi)存、基帶芯片等,在以上元素中,若設備處于工作狀態(tài),除了端口和線卡以外,在正常工作時其他設備元素都無法關閉,因此,在使用鏈路休眠機制進行能耗管理時,式(4)中只有通過改變INi也就是改變端口的數(shù)目,才可以實現(xiàn)對能耗的管理。綜上所述,本文對節(jié)點進行能耗管理時,是通過關閉與某個端口相連的鏈路,從而關閉端口以及端口的線卡,以達到節(jié)能的效果。通過以上分析可知,減少鏈路可以減少處于工作狀態(tài)的端口,而冗余的鏈路可以提高網(wǎng)絡的可靠性和性能,因此實現(xiàn)網(wǎng)絡能耗和性能動態(tài)調(diào)節(jié)的方式就是增加或者減少網(wǎng)絡中的鏈路。
基于上述算法分析,提出SDN網(wǎng)絡環(huán)境中的能耗和性能動態(tài)調(diào)節(jié)算法。
首先獲取系統(tǒng)的網(wǎng)絡拓撲,獲取網(wǎng)絡拓撲后就可以對整個網(wǎng)絡結構分析。從第2.3節(jié)的分析可知,實現(xiàn)節(jié)能和性能的動態(tài)調(diào)節(jié)是通過增加和減少鏈路實現(xiàn)的,因此,在獲取獲取網(wǎng)絡拓撲后便要獲取網(wǎng)絡的鏈路信息,包括網(wǎng)絡鏈路的能耗和網(wǎng)絡的帶寬。獲取到所有的鏈路信息后,將這些鏈路按照能耗和帶寬分別進行排序得到Le和Lb(Le為按照鏈路能耗從小到大排序的鏈路集合,Lb為按照帶寬從小到大進行排序的鏈路集合),以便策略選擇模塊和策略實施模塊進行分析計算。
Le和Lb是網(wǎng)絡中所有鏈路的集合,策略選擇和策略實施模塊在進行計算時,需要是使用Le和Lb進行計算,在計算過程中需要增加和減少鏈路,同時在計算過程中需要保證網(wǎng)絡中所有節(jié)點之間的是連通的(網(wǎng)絡中任意兩點之間存在一條路徑),因此,在計算之前需要去除Le和Lb中不能處于休眠的鏈路,假設所有網(wǎng)絡拓撲中不可以處于休眠狀態(tài)的鏈路集合為Lneed。
如圖2所示,在示例拓撲中,為了保證網(wǎng)絡中任意2個節(jié)點之間是連通的,節(jié)點N2和節(jié)點N3之間的鏈路不能處于休眠狀態(tài)。
圖2 不能處于休眠狀態(tài)的鏈路演示
在網(wǎng)絡G(N,V)中,當V中所有鏈路都啟用,此時網(wǎng)絡中的鏈路冗余最大,網(wǎng)絡的性能也最高,此時的α取值為1;當V中使用的鏈路只能滿足整個網(wǎng)絡的連通且鏈路是從Le中從小到大選取的,再刪除一條路徑整個網(wǎng)絡便無法聯(lián)通時,此時網(wǎng)絡的鏈路冗余最小,網(wǎng)絡的性能也最小,能耗也最小,α取值為0,α值的大小就代表整個網(wǎng)絡中參與路徑計算的鏈路數(shù)目的多少。在網(wǎng)絡啟動的初始階段,參與路徑計算的是網(wǎng)絡G(N,V)的全部鏈路,此時網(wǎng)絡的能耗最大,網(wǎng)絡的性能最高,α為1。在第2.2節(jié)的策略選擇模塊中,將α的取值分為2個階段:[0,0.5]為關注網(wǎng)絡能耗階段,(0.5,1]為關注網(wǎng)絡性能階段,這2個階段分別選擇不同的策略來選擇開啟和睡眠的鏈路,以達到動態(tài)調(diào)節(jié)網(wǎng)絡能耗和性能。
α在[0,0.5]區(qū)間,此時網(wǎng)絡最關注的是網(wǎng)絡的能耗,為了實現(xiàn)α的在此區(qū)間的動態(tài)調(diào)節(jié),首先要保證網(wǎng)絡中所有節(jié)點是連通的(即保證網(wǎng)絡中任意2個節(jié)點之間有路徑可以達到)。由于此時最關注的事網(wǎng)絡的能耗,在使用啟發(fā)式算法計算最小拓撲時,會從Le中按照網(wǎng)絡能耗從小到大選取,假設最小拓撲中的鏈路集合為Lmin,則算法如下:
算法1α∈[0,0.5]最小拓撲查找算法
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計算出α∈[0,0.5]時的最小拓撲,也就是α=0時的網(wǎng)絡拓撲Lmin,則后續(xù)會參與α調(diào)節(jié)計算的鏈路集合為Lmc=Le-Lmin,Lmc中鏈路的數(shù)量為Nmc。假設此時α設置為α1,則在最小計算拓撲的基礎上,需要添加的鏈路數(shù)目為Nmc×α1條(Nmc×α1的值可能有小數(shù)部分,由于此時α∈[0,0.5],系統(tǒng)關注網(wǎng)絡能耗,因此直接對Nmc×α1取整數(shù))。
α在(0.5,1]區(qū)間,此時網(wǎng)絡最關注的是網(wǎng)絡的性能,同α在[0,0.5]區(qū)間一樣,為了實現(xiàn)α在此區(qū)間的動態(tài)調(diào)節(jié),首先也要保證網(wǎng)絡中所有的節(jié)點是連通的。由于在此區(qū)間關注的事網(wǎng)絡的性能,因此在使用啟發(fā)式算法計算最小計算拓撲時從Lb中選取。
算法2α∈(0.5,1]最小拓撲查找算法
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)過以上算法計算出α∈(0.5,1]時的最小計算拓撲,假設此時最小計算拓撲中鏈路的集合為Lminb,則后續(xù)會參與α調(diào)節(jié)計算的鏈路集合為Lmcb=Lb-Lminb,Lmcb中鏈路的數(shù)量為Nmcb。假設此時α設置為α2,則在最小計算拓撲的基礎上,需要添加的鏈路數(shù)目為Nmc b×α1條(Nmc×α1的值可能有小數(shù)部分,由于此時α∈(0.5,1],系統(tǒng)關注網(wǎng)絡性能,故直接對Nmc×α2使用進一法)。
通過以上步驟計算出網(wǎng)絡的最新拓撲后,使用迪杰斯特拉算法重新計算網(wǎng)絡中各個節(jié)點的路由規(guī)則。計算完最新的拓撲和網(wǎng)絡節(jié)點最新的路由規(guī)則后,策略實施模塊將最新的拓撲和路由規(guī)則下發(fā)到網(wǎng)絡節(jié)點。
由于網(wǎng)絡流量具有突發(fā)性,α值的設置可能無法及時適應網(wǎng)絡的流量,因此需要實時計算網(wǎng)絡的負載情況,為了防止網(wǎng)絡性能過低和網(wǎng)絡能耗過高,設計如下預警階段:
1)提示階段
如果有某條鏈路的負載超過了鏈路帶寬60%,那么會提示用戶需要增加α的值,如果所有鏈路負載均低于鏈路帶寬的30%,那么提示用戶可以減小α的值。
2)強制調(diào)整階段
當網(wǎng)絡中某條鏈路的負載已經(jīng)超過鏈路帶寬的70%,則系統(tǒng)會自動增大α值;如果所有鏈路負載均低于鏈路帶寬的10%,那么系統(tǒng)會自動減小α的值。
由第2.2節(jié)可知,網(wǎng)絡能耗和網(wǎng)絡性能之間存在著如下所示的關系:
Z=αP+(1-α)C
其中,P表示網(wǎng)絡的性能,C表示網(wǎng)絡的能耗,Z表示網(wǎng)絡能耗和性能之間的調(diào)節(jié)?;诰W(wǎng)絡能耗和性能的關系,提出如下網(wǎng)絡評價方法。
對于網(wǎng)絡G(N,V),IV表示網(wǎng)絡中鏈路的數(shù)量,IN表示網(wǎng)絡中節(jié)點的數(shù)量,IS表示網(wǎng)絡中處于休眠狀態(tài)的鏈路,定義網(wǎng)絡節(jié)能效率為:
ηC=IS/IV
(5)
由于網(wǎng)絡性能的評價指標有帶寬、丟包率、抖動等參數(shù),評價方式不相同,因此定義網(wǎng)絡性能效率為ηp。本文選擇帶寬和抖動作為網(wǎng)絡性能評價指標。Bmax表示測試鏈路在α=1時的網(wǎng)絡帶寬,Bcur表示測試鏈路當前網(wǎng)絡帶寬,則:
ηP=Bmax/Bcur
(6)
Jmin表示測試鏈路在α=1時的抖動時延,Jcur表示測試鏈路當前抖動時延,則:
ηP=Jmin/Jcur
(7)
定義網(wǎng)絡能耗和性能調(diào)節(jié)因子:
ψ=αηP+(1-α)ηC
(8)
其中,ψ的大小代表網(wǎng)絡能耗和性能調(diào)節(jié)的合理程度,ψ越大表示能耗和性能調(diào)節(jié)的越合理。在達到相同性能時,ψ越大表明能耗越小;而在能耗相同時,更大的ψ表明取得更高的性能。
本文實驗是基于floodlight+mininet組成的SDN虛擬環(huán)境完成的,具體環(huán)境如下:
1)硬件環(huán)境
PC機;CPU為2.6 GHz;RAM為4 096 MB。
2)軟件環(huán)境
操作系統(tǒng)為64位ubuntu16.04;floodlight;mininet;iperf。
floodlight為當前主流SDN控制器,具有穩(wěn)定性和易用性的特點,能夠靈活地控制SDN網(wǎng)絡。mininet是輕量級的軟件定義網(wǎng)絡系統(tǒng)平臺,同時提供了對OpenFlow協(xié)議的支持,可以模擬真實環(huán)境中的SDN網(wǎng)絡。iperf是一款流行的網(wǎng)絡性能測試工具,可以測試帶寬等網(wǎng)絡參數(shù)。
1)廣域網(wǎng)常使用網(wǎng)狀拓撲,故在SDN模擬環(huán)境中建立如下示例拓撲。
2)隨機設置圖3測試拓撲中鏈路的帶寬,獲得的鏈路帶寬如表1所示。
圖3 網(wǎng)絡拓撲測試
表1 網(wǎng)絡拓撲鏈路測試
由于是在同樣的網(wǎng)絡環(huán)境中,在通常情況下,鏈路的帶寬和能耗成正比,因此可以假設網(wǎng)絡鏈路的能耗也是按照表1的排序。
3)α∈[0,0.5]和α∈(0.5,1]時的最小拓撲分別如圖4、圖5所示。
圖4 α∈[0,0.5]時的最小拓撲
圖5 α∈(0.5,1]時的最小拓撲
根據(jù)第2.4節(jié)中的算法可知,α=0和α=1的拓撲分別如圖3、圖4所示。α其他值會根據(jù)第2.4節(jié)中的算法實現(xiàn)動態(tài)調(diào)節(jié),網(wǎng)絡拓撲也會根據(jù)α值的變化動態(tài)改變,以實現(xiàn)能耗和性能的動態(tài)調(diào)節(jié)。
4)根據(jù)第2.5節(jié)中的網(wǎng)絡評價方法對不同α值所對應的網(wǎng)絡拓撲進行評價。測量使用隨機模型,任意選擇測試拓撲中2個交換機,測試2個交換機之間在不同α值時的網(wǎng)絡能耗和性能調(diào)節(jié)因子ψ的變化,本測試選擇S1和S5 2個交換機。在本測試中,使用網(wǎng)絡帶寬和網(wǎng)絡抖動作為網(wǎng)絡性能指標。使用網(wǎng)絡帶寬和網(wǎng)絡抖動作為網(wǎng)絡性能指標所得到的α與ψ的變化關系如圖6~圖8所示。
圖6 UDP帶寬作為性能評價指標時α與ψ的變化關系
圖7 TCP帶寬作為性能評價指標時α與ψ的變化關系
圖8 使用抖動作為性能評價指標時α與ψ的變化關系
首先在mininet模擬環(huán)境中建立使用網(wǎng)狀拓撲的廣域網(wǎng)網(wǎng)絡,并設置了OpenFlow交換機中之間的鏈路帶寬。根據(jù)2.4節(jié)中的算法分析,分別計算出α∈[0,0.5]和α∈(0.5,1]時的最小拓撲,分別如圖4、圖5所示。圖3、圖4分別是α=1和α=0時的拓撲,根據(jù)2.4節(jié)中的算法可知,本文的動態(tài)調(diào)節(jié)機制會根據(jù)網(wǎng)絡的負載情況動態(tài)調(diào)節(jié)α值,從而動態(tài)調(diào)節(jié)網(wǎng)絡拓撲,以實現(xiàn)網(wǎng)絡能耗和性能的動態(tài)調(diào)節(jié)。
2.5節(jié)中設計了網(wǎng)絡能耗和性能的調(diào)節(jié)因子,調(diào)節(jié)因子ψ的大小反映了能耗和性能調(diào)節(jié)的合理程度。由于目前的廣域網(wǎng)常使用網(wǎng)狀拓撲,為了保證網(wǎng)絡性能,存在大量冗余鏈路,沒有考慮能耗問題,此時,α=1,文獻[7]指出互聯(lián)網(wǎng)的忙時最大平均鏈路利用率不足30%,故根據(jù)2.5節(jié)分析可知,在目前的廣域網(wǎng)環(huán)境下,ψ≤0.3。根據(jù)第2.4節(jié)分析可知,在圖3所示的測試拓撲中,α=1和α=0.9經(jīng)過計算具有相同的網(wǎng)絡拓撲,故α=1和α=0.9時,ψ值相同。
通過圖6和圖7結果可知,在分別使用UDP和TCP帶寬作為性能評價指標時,α的變化引起網(wǎng)絡拓撲的變化,從而引起網(wǎng)絡性能發(fā)生變化,最終導致ψ的變化,但是不論α在[0,1]之間如何變化,ψ始終不小于0.3;圖8的結果表明,在使用抖動作為性能評價指標時,α的變化引起ψ的變化,但是不論α在[0,1]之間如何變化,ψ始終不小于0.3。
圖6、圖7和圖8的實驗結果表明,α在[0,1]之間變化時,ψ的大小也發(fā)生變化。傳統(tǒng)網(wǎng)絡(α=1)側重性能導致ψ小于0.3,在實際的網(wǎng)絡中,為了保證網(wǎng)絡的高性能會增加冗余鏈路,產(chǎn)生巨大的網(wǎng)絡能耗;在本文實驗中,當α在[0,1)變化時,由于可以根據(jù)系統(tǒng)反饋模塊彈性實時改變α,并且根據(jù)2.4節(jié)對網(wǎng)絡結構進行修改,在保證網(wǎng)絡性能的同時減小了網(wǎng)絡能耗,在相同網(wǎng)絡能耗時達到較高的網(wǎng)絡性能,與傳統(tǒng)網(wǎng)絡相比,ψ始終大于0.3。實驗結果表明,傳統(tǒng)網(wǎng)絡側重網(wǎng)絡性能的提高而忽視了網(wǎng)絡的能耗,導致網(wǎng)絡調(diào)節(jié)因子ψ較小,即使網(wǎng)絡負載降低依然存在大量的冗余,網(wǎng)絡能耗和性能不能隨著網(wǎng)絡狀態(tài)進行動態(tài)調(diào)整,本文的機制在網(wǎng)絡負載不斷變化時會彈性實時自適應修改網(wǎng)絡結構,既不會造成大量冗余,也不會造成網(wǎng)絡性能降低,網(wǎng)絡調(diào)節(jié)因子ψ也大于傳統(tǒng)網(wǎng)絡。
目前的節(jié)能策略主要是將一些低利用率或閑置的網(wǎng)絡單元(交換機、路由器、鏈路)轉入睡眠狀態(tài),把流匯聚到盡可能少的路徑中[15-16],最終可能會造成網(wǎng)絡性能降低。為此,針對傳統(tǒng)網(wǎng)絡性能和能耗調(diào)節(jié)實現(xiàn)復雜,基于鏈路休眠機制,本文提出SDN網(wǎng)絡環(huán)境中廣域網(wǎng)性能和能耗的動態(tài)調(diào)節(jié)機制,并在mininet中搭建了模擬環(huán)境進行驗證,同時也基于提出的評價算法對傳統(tǒng)以及SDN網(wǎng)絡環(huán)境中的調(diào)節(jié)算法進行了對比。實驗結果表明,本文提出的調(diào)節(jié)機制在SDN網(wǎng)絡中實現(xiàn)了性能和能耗的動態(tài)調(diào)節(jié),相較于傳統(tǒng)網(wǎng)絡,該算法更加合理,在降低網(wǎng)絡能耗的同時保證了網(wǎng)絡利用率高于傳統(tǒng)網(wǎng)絡。
由于使用啟發(fā)式算法,在修改α值時可能會引起網(wǎng)絡拓撲的波動,下一步將會利用SDN在流量工程中的獨特優(yōu)勢,優(yōu)化網(wǎng)絡能耗和性能的動態(tài)調(diào)節(jié)。
[1] 張 法,Antonio F A,侯晨穎,等.網(wǎng)絡能耗系統(tǒng)模型及能效算法[J].計算機學報,2012,35(3):603-615.
[2] 張朝昆,崔 勇,唐翯祎,等.軟件定義網(wǎng)絡(SDN)研究進展[J].軟件學報,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].通信學報,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)絡的節(jié)能路由算法[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)絡節(jié)能機制研究[J].無線互聯(lián)網(wǎng)科技,2016(1):44-45.
[11] 潘 甦,陶 帥,劉勝美.SDN 在無線網(wǎng)中的研究進展[J].南京郵電大學學報(自然科學版),2016,36(3):18-22.
[12] 林 闖,田 源,姚 敏.綠色網(wǎng)絡和綠色評價:節(jié)能機制、模型和評價[J].計算機學報,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.