本發(fā)明屬于軟件定義網(wǎng)絡(sdn)技術(shù)領域,是一種離線部署算法。具體為一種基于軟件定義網(wǎng)絡架構(gòu)的控制層部署方法。
背景技術(shù):
在sdn架構(gòu)的廣域網(wǎng)中,通常采用分布式控制層對網(wǎng)絡進行管控。然而這種分布式的sdn控制層也帶來了一些新的思考,其中一個關鍵問題是如何確定控制器的數(shù)量、部署位置以及如何劃分每個控制器的管理區(qū)域,即控制層的部署問題。在sdn網(wǎng)絡中,控制層承載著控制信息的建立與分發(fā)。合理的控制層部署方法可以有效降低控制器與交換機間的通信時延,從而減少了交換機中流表建立所需的時間,進而保證了交換機對網(wǎng)絡事件做出迅速的響應。
由于流表建立時延產(chǎn)生于交換機與控制器的交互過程,是控制信息在鏈路上的傳播時延、相關交換機中的排隊轉(zhuǎn)發(fā)時延以及控制器處理時延的總和。在傳播時延占據(jù)主導地位的廣域網(wǎng)中,為保證每個交換機都可以通過控制網(wǎng)絡與其所屬的控制器及時通信,通常將廣域sdn網(wǎng)絡中優(yōu)化流表建立時延的控制層部署問題歸結(jié)為優(yōu)化傳播時延的控制層部署問題。
此外,考慮到網(wǎng)絡鏈路故障時有發(fā)生。在鏈路故障狀態(tài)下,網(wǎng)絡中部分交換機到控制器間的傳播時延將會產(chǎn)生較大范圍的波動。然而目前sdn網(wǎng)絡中的故障恢復機制通常是一種被動消極的處理手段。因此,在控制層的部署方案設計階段,應將潛在的鏈路故障因素納入考慮范圍,綜合衡量包括網(wǎng)絡正常運行與鏈路故障場景等多種網(wǎng)絡狀態(tài),力求最大程度的保證多種網(wǎng)絡下時延指標的穩(wěn)定。
hellerb,sherwoodr,mckeownn在文獻thecontrollerplacementproblem[j].acmsigcommcomputercommunicationreview,2012,42(4):473-478.中首次提出了sdn控制層的部署問題,并指出在傳播時延占主導地位的廣域網(wǎng)中,控制層的部署策略將嚴重影響到網(wǎng)絡的收斂時間。作者在文章中引入了平均傳播時延及最壞情況下的傳播時延兩種時延指標,采用真實的internet2拓撲分析了不同的控制器數(shù)量以及部署位置對交換機與控制器間傳播時延產(chǎn)生的影響。
p.xiao,w.qu,h.qi,z.liandy.xu在文獻thesdncontrollerplacementproblemforwan[c]//2014ieee/cicinternationalconferenceoncommunicationsinchina(iccc).shanghai:ieeepress,2014:220-224.中采用譜聚類算法將廣域網(wǎng)拓撲分區(qū)處理,繼而在各個分區(qū)中找到合理的控制器部署位置,該算法在一定程度上降低了廣域網(wǎng)中的傳播時延。
rosfj,ruizpm在文獻fiveninesofsouthboundreliabilityinsoftware-definednetworks[c]//acmsigcommworkshoponhottopicsinsoftwaredefinednetworking.chicago:acmpress,2014:31-36.中考慮了鏈路的故障情況,為滿足五個九的高可靠性指標,指出每臺交換機應至少與兩到三臺控制器相連,并提出了具體的部署方案。
由相關研究可知,采用多個控制器構(gòu)成的分布式控制層是未來sdn實際運用于廣域網(wǎng)等大規(guī)模網(wǎng)絡的必然選擇,而合理的控制層部署策略則是保證網(wǎng)絡各方面性能的前提。現(xiàn)有的sdn控制層部署方案在取得大量成果的同時,仍然存在以下不足:1.當前針對時延優(yōu)化的控制層部署策略并沒有考慮到網(wǎng)絡運行過程中的鏈路故障因素;2.以保證網(wǎng)絡可靠性為主要優(yōu)化目標的部署策略則普遍關注控制網(wǎng)絡的拓撲魯棒性,這種方式雖然可以降低網(wǎng)絡故障發(fā)生的概率,然而在網(wǎng)絡的生命周期中鏈路故障終有發(fā)生,而鏈路故障將引起網(wǎng)絡性能出現(xiàn)急劇的惡化。針對上述不足,本發(fā)明綜合考慮了正常運行以及鏈路故障等多種網(wǎng)絡狀態(tài),通過對最壞情況時延進行概率加權(quán)求和的方式提出了網(wǎng)絡狀態(tài)時延作為新的時延優(yōu)化目標,進而提出了一種新的控制層部署方法。該方法能有效降低網(wǎng)絡狀態(tài)時延,從而使大部分網(wǎng)絡狀態(tài)下的最壞情況時延維持在較低范圍。
技術(shù)實現(xiàn)要素:
本發(fā)明旨在解決以上現(xiàn)有技術(shù)的問題。提出了一種能有效降低網(wǎng)絡狀態(tài)時延的基于軟件定義網(wǎng)絡架構(gòu)的控制層部署方法。本發(fā)明的技術(shù)方案如下:
一種基于軟件定義網(wǎng)絡架構(gòu)的控制層部署方法,其包括以下步驟:
1)、首先,綜合考慮了正常運行以及鏈路故障在內(nèi)的多種網(wǎng)絡狀態(tài),通過對最壞情況時延進行概率加權(quán)求和的方式提出了網(wǎng)絡狀態(tài)時延作為新的時延優(yōu)化目標,將控制器的部署問題抽象為一個通過合理的部署方式最小化網(wǎng)絡狀態(tài)時延的優(yōu)化問題并構(gòu)建模型;
2)基于粒子群算法的思想,提出了一種啟發(fā)式控制層部署方法對該模型求解:將控制器的部署方案映射為無體積無質(zhì)量的粒子,隨機生成多種部署方案形成粒子種群,種群中的每個粒子通過在解空間中不斷運動以獲得新的位置與速度,粒子運動的過程受到由適應度所決定的局部最優(yōu)解以及全局最優(yōu)解的影響,通過粒子的位置與速度更新,逐步找到適應度最好的粒子作為全局最優(yōu)解,并根據(jù)求解優(yōu)化結(jié)果進行控制層部署。
進一步的,所述步驟1)通過對最壞情況時延進行概率加權(quán)求和的方式提出了網(wǎng)絡狀態(tài)時延作為新的時延優(yōu)化目標,將控制器的部署問題抽象為一個通過合理的部署方式最小化網(wǎng)絡狀態(tài)時延的優(yōu)化問題,具體包括:
進一步的,所述步驟2)基于粒子群算法的思想提出了一種啟發(fā)式控制層部署方法具體包括以下步驟:
101、輸入網(wǎng)絡拓撲、需要部署的控制器數(shù)量、算法循環(huán)次數(shù)上限、最大慣性權(quán)重及最小慣性權(quán)重;
102、初始化粒子與種群,隨機選取n種部署方案,從而形成粒子數(shù)目為n的種群;
103、對于粒子pi,以其位置屬性中的每一維度xij為核心,向其周邊直接相連的交換機節(jié)點位置隨機選擇一次,記錄該次選擇過程中xij到所選擇節(jié)點的方向與距離作為粒子在該維度上的初始化速度方向與速度大小,粒子的速度由所有維度的速度構(gòu)成,表示為vi=(vi1…vij…vik);
104、初始化局部最優(yōu)解,將每個粒子的初始位置設置為局部最優(yōu)解;
105、初始化全局最優(yōu)解,在局部最優(yōu)解中選取適應度最好的粒子位置作為全局最優(yōu)解;
106、粒子速度更新,從粒子每一維度的當前位置出發(fā)分別找到通向局部最優(yōu)解與全局最優(yōu)解所在位置的最短路徑,最短路徑中下一跳節(jié)點的方向作為粒子指向局部最優(yōu)解與全局最優(yōu)解的速度方向,其距離作為速度大小,分別記為
107、完成粒子位置更新;
108、局部最優(yōu)解更新,為粒子當前位置計算適應度,并與更新前粒子所在位置的適應度進行對比,若獲得更好的適應度,則更新局部最優(yōu)解,反之,則不變;
109、全局最優(yōu)解更新;
110、檢查全局最優(yōu)解與當前迭代次數(shù),若全局最優(yōu)解達到收斂或當前迭代次數(shù)已達上限,算法結(jié)束,反之,返回106,進入下一次算法循環(huán)。
進一步的,所述步驟102初始化粒子與種群,隨機選取n種部署方案,從而形成粒子數(shù)目為n的種群,具體包括:
在拓撲中交換機的位置集合里隨機選取k個位置部署控制器,依據(jù)最近鄰原則將其余交換機劃分給距其最近的控制器管理,從而形成一種部署方案,該部署方案對應一個粒子pi,其位置屬性用每一維度的位置屬性集合表示,即xi=(xi1…xij…xik),其中控制器cj表示為粒子pi的第j維分量,其位置屬性與速度屬性分別為xij、vij,集合中的元素采用部署控制器的交換機位置編號進行編碼。
進一步的,所述sdn網(wǎng)絡中交換機與控制器采用帶內(nèi)連接,控制器采用co-locate方式部署,即控制器的部署位置從網(wǎng)絡中所有交換機位置及其臨近位置中選取。
進一步的,所述步驟105中粒子適應度通過計算網(wǎng)絡狀態(tài)時延獲得,其表達式如下:
進一步的,所述網(wǎng)絡無故障狀態(tài)下經(jīng)概率加權(quán)后的最壞情況時延lwc(s0)通過下式獲得:
其中d(vij,ci)表示網(wǎng)絡正常狀態(tài)下交換機vij與其所屬的控制器ci通過最短路徑通信產(chǎn)生的傳播時延,
進一步的,所述由于鏈路ei失效引發(fā)的網(wǎng)絡故障狀態(tài)下經(jīng)概率加權(quán)后的最壞情況時延lwc(si)通過下式獲得:
其中d'(vij,ci)表示鏈路故障狀態(tài)下交換機vij與控制器ci通過最短路徑通信產(chǎn)生的傳播時延,
進一步的,所述步驟106中粒子速度更新通過下式完成:
其中
其中wmax為慣性權(quán)重的最大值,wmin為慣性權(quán)重的最小值,t為當前迭代次數(shù)的記錄,tmax表示最大許可的迭代次數(shù)。
進一步的,所述107中粒子位置更新通過下式完成:
本發(fā)明的優(yōu)點及有益效果如下:
本發(fā)明針對單鏈路故障狀態(tài)下網(wǎng)絡中部分交換機與控制器間時延急劇惡化的問題,提出了一種基于軟件定義網(wǎng)絡架構(gòu)的控制層部署方法,在該方法的設計中綜合考慮了正常運行以及鏈路故障等多種網(wǎng)絡狀態(tài),通過對最壞情況時延進行概率加權(quán)求和的方式提出了網(wǎng)絡狀態(tài)時延作為新的時延優(yōu)化目標,將原部署問題抽象為一個優(yōu)化問題并構(gòu)建模型。同時,基于粒子群算法的思想提出了一種啟發(fā)式控制層部署方法對該模型求解。本發(fā)明所提部署方法能有效降低網(wǎng)絡狀態(tài)時延,從而使大部分網(wǎng)絡狀態(tài)下的最壞情況時延維持在較低范圍,進而保證了網(wǎng)絡性能的穩(wěn)定。
附圖說明
圖1是本發(fā)明提供優(yōu)選實施例采用的網(wǎng)絡拓撲圖;
圖2是本發(fā)明提供優(yōu)選實施例基于軟件定義網(wǎng)絡架構(gòu)的控制層部署方法流程圖;
圖3為本發(fā)明所提方法與貪婪算法關于網(wǎng)絡狀態(tài)時延的對比;
圖4為不同控制器數(shù)量下的時延收益參數(shù);
圖5為本發(fā)明所提方法與貪婪算法關于最壞情況時延的最壞情況時延累積分布對比。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、詳細地描述。所描述的實施例僅僅是本發(fā)明的一部分實施例。
本發(fā)明解決上述技術(shù)問題的技術(shù)方案是:
本例采用的拓撲選自真實的internet2網(wǎng)絡拓撲。如圖1所示,該拓撲包括34個城市級網(wǎng)絡節(jié)點用以部署openflow交換機,每對交換機節(jié)點間均通過高速鏈路連接,全網(wǎng)共計41條鏈路。本例將交換機節(jié)點從1至34進行編號,每條鏈路的傳輸時延以節(jié)點間的距離乘2/3倍光速計算。實施例中控制器采用co-locate方式進行部署,即控制器的部署位置在所有交換機位置中選取??紤]到網(wǎng)絡鏈路的故障概率具有差異性,對于各鏈路的故障概率參數(shù)設置為區(qū)間[0,0.15]內(nèi)的隨機浮點數(shù),其均值為0.04。
參照圖2,本實例包括以下步驟:
第一步,輸入網(wǎng)絡拓撲g(v,e),需要部署的控制器數(shù)量k,算法循環(huán)次數(shù)上限tmax,最大慣性權(quán)重wmax,最小慣性權(quán)重wmin;
第二步,初始化粒子與種群。在拓撲中交換機的位置集合里隨機選取k個位置部署控制器,依據(jù)最近鄰原則將其余交換機劃分給距其最近的控制器管理,從而形成一種部署方案。該部署方案對應一個粒子pi,其位置屬性用每一維度的位置屬性集合表示,即xi=(xi1…xij…xik),其中控制器cj表示為粒子pi的第j維分量,其位置屬性與速度屬性分別為xij、vij。集合中的元素采用部署控制器的交換機位置編號進行編碼。隨機選取n種部署方案,從而形成粒子數(shù)目為n的種群;
第三步,初始化粒子速度。對于粒子pi,以其位置屬性中的每一維度xij為核心,向其周邊直接相連的交換機節(jié)點位置隨機選擇一次。記錄該次選擇過程中xij到所選擇節(jié)點的方向與距離作為粒子在該維度上的初始化速度方向與速度大小。粒子的速度由所有維度的速度構(gòu)成,表示為vi=(vi1…vij…vik);
第四步,初始化局部最優(yōu)解。將每個粒子的初始位置設置為局部最優(yōu)解pbesti←xi;
第五步,初始化全局最優(yōu)解。在局部最優(yōu)解中選取適應度最好的粒子位置作為全局最優(yōu)解gbest←xbest;
其中粒子適應度通過網(wǎng)絡狀態(tài)時延獲得,網(wǎng)絡狀態(tài)時延越小則粒子適應度越好,其表達式如下:
lwc(s0)表示網(wǎng)絡無故障狀態(tài)下經(jīng)概率加權(quán)后的最壞情況時延,lwc(si)表示由于鏈路ei失效引發(fā)的網(wǎng)絡故障狀態(tài)下經(jīng)概率加權(quán)后的最壞情況時延。
s={s0,s1…sj…sm}為網(wǎng)絡狀態(tài)集合,其中包含一個所有鏈路均正常工作的網(wǎng)絡正常狀態(tài)s0,以及m個相互統(tǒng)計獨立的單鏈路故障狀態(tài){s1,s2,s3.......sm}。
第六步,粒子速度更新。從粒子每一維度的當前位置出發(fā)分別找到通向局部最優(yōu)解與全局最優(yōu)解所在位置的最短路徑。最短路徑中下一跳節(jié)點的方向作為粒子指向局部最優(yōu)解與全局最優(yōu)解的速度方向,其距離作為速度大小,分別記為
第七步,依據(jù)公式
第八步,局部最優(yōu)解更新。為粒子當前位置計算適應度,并與更新前粒子所在位置的適應度進行對比。若獲得更好的適應度,則更新局部最優(yōu)解。反之,則不變;
第九步,全局最優(yōu)解更新;
第十步,檢查全局最優(yōu)解與當前迭代次數(shù)。若全局最優(yōu)解達到收斂或當前迭代次數(shù)已達上限,算法結(jié)束。反之,返回第六步,進入下一次算法循環(huán);
在本實施例中,圖3給出了本發(fā)明所提方法與基于貪婪算法的控制層部署算法(controllerplacementalgorithmbasedongreedyalgorithm,ga-cpa)關于網(wǎng)絡狀態(tài)時延的對比。圖4為不同控制器數(shù)量下的時延收益參數(shù)。圖5是本發(fā)明所提方法與ga-cpa算法關于最壞情況時延的最壞情況時延累積分布對比。
圖3可見,當網(wǎng)絡中控制器的數(shù)量k從1增加至5時,兩種算法所獲得的網(wǎng)絡狀態(tài)時延均呈下降趨勢,這種趨勢主要是因為網(wǎng)絡被分為了更多的控制區(qū)域,因此整個網(wǎng)絡的最壞情況時延必然隨之降低,同時控制區(qū)域的增加也使得部分鏈路故障時網(wǎng)絡中最壞情況時延的惡化得到了一定程度的緩解。從兩種算法的性能方面來看本發(fā)明所提方法整體優(yōu)于貪婪算法。當控制器數(shù)量為5時,兩種算法間的差距達到峰值。此時ga-cpa算法所得網(wǎng)絡狀態(tài)時延約為本發(fā)明所提方法的1.21倍。這是由于本發(fā)明所提方法其自身特點包括局部搜索以及全局搜索,粒子的每一次運動均向著更優(yōu)點的位置更新,直到無法尋找到更好的位置或達到搜索次數(shù)的上限為止,因此可以找到近似的全局最優(yōu)解。而ga-cpa算法僅能保證每一個控制器的部署位置為當前的最優(yōu)位置,而無法獲得整體的最優(yōu)。
圖4給出了不同控制器數(shù)量下的時延收益參數(shù),本例通過該參數(shù)確定最佳的控制器部署數(shù)量。時延收益參數(shù)定義為
圖5給出了部署3個控制器時兩種算法所得最壞情況時延的累積分布。其中本發(fā)明所提方法與ga-cpa算法將控制器分別部署于圖1中編號27、14、7以及27、10、15的節(jié)點之上,每個控制器的控制區(qū)域根據(jù)最近鄰原則劃分,即交換機分配給距離自己最近的控制器。由圖5可知,在不同的網(wǎng)絡狀態(tài)下最壞情況時延將于6.79ms至29.03ms范圍內(nèi)大幅度波動,這是因為多種網(wǎng)絡狀態(tài)之間關于最壞情況時延指標存在著權(quán)衡關系。因此,難以尋找到一種部署方案可以滿足所有網(wǎng)絡狀態(tài)下的最壞情況時延均達到最小。然而,合理的部署方式可以保證較多網(wǎng)絡狀態(tài)下的最壞情況時延最小。如圖所示,本發(fā)明所提方法可以保證約43%的網(wǎng)絡狀態(tài)下最壞情況時延不高于6.79ms。而10.7ms范圍內(nèi)該比值可達到74%,均高于ga-cpa算法所得結(jié)果。由此可見,在鏈路發(fā)生故障時不同的控制層部署方案在保障最壞情況時延方面存在著優(yōu)劣,而合理的部署策略可以使更多的鏈路故障狀態(tài)下最壞情況時延所受影響較小。
以上這些實施例應理解為僅用于說明本發(fā)明而不用于限制本發(fā)明的保護范圍。在閱讀了本發(fā)明的記載的內(nèi)容之后,技術(shù)人員可以對本發(fā)明作各種改動或修改,這些等效變化和修飾同樣落入本發(fā)明權(quán)利要求所限定的范圍。