两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

SDN中的節(jié)點退火方法與流程

文檔序號:11215649閱讀:1440來源:國知局
SDN中的節(jié)點退火方法與流程

本發(fā)明屬于下一代網(wǎng)絡(luò)控制與管理和軟件定義網(wǎng)絡(luò)領(lǐng)域,是一種新穎的用于對軟件定義網(wǎng)絡(luò)合理分區(qū)以及控制器部署算法,涉及到一種在時延最小的情況下對軟件定義網(wǎng)絡(luò)整片網(wǎng)絡(luò)進(jìn)行分區(qū),并保證每個控制器負(fù)載均衡的控制器部署算法。具體講,涉及sdn中的節(jié)點退火方法。



背景技術(shù):

軟件定義網(wǎng)絡(luò)(software-definednetwork,sdn)是一種新型的網(wǎng)絡(luò)架構(gòu)。它的主要思想是數(shù)據(jù)平面和控制平面的分離,從而支持集中化的網(wǎng)絡(luò)控制。在這種結(jié)構(gòu)下,交換機(jī)只負(fù)責(zé)數(shù)據(jù)轉(zhuǎn)發(fā),控制邏輯由控制器給出。

在廣泛使用的sdn方案openflow中,數(shù)據(jù)轉(zhuǎn)發(fā)以流為單位,一個流根據(jù)網(wǎng)絡(luò)地址網(wǎng)絡(luò)端口和協(xié)議類型等信息來進(jìn)行定義。openflow交換機(jī)中存儲著多個流表來指導(dǎo)流的轉(zhuǎn)發(fā)。當(dāng)數(shù)據(jù)流進(jìn)入openflow交換機(jī)時,交換機(jī)會按照與該流匹配的流表項來轉(zhuǎn)發(fā)數(shù)據(jù)。如果交換機(jī)的流表中沒有與之匹配的轉(zhuǎn)發(fā)項,則會向控制器發(fā)出查詢??刂破髯龀鰶Q策之后,再將新的流表項下發(fā)到交換機(jī)。這套機(jī)制使得管理者可以更方便地管理整個網(wǎng)絡(luò)。

與此同時,由于控制器負(fù)擔(dān)著整個網(wǎng)絡(luò)的工作,控制器的處理能力以及控制器與交換機(jī)之間通信的時延對整個網(wǎng)絡(luò)的性能有著重要的影響。然而,控制器的容量也是有限的,隨著sdn網(wǎng)絡(luò)的快速發(fā)展,一個控制器已經(jīng)負(fù)擔(dān)不了一個巨大的sdn網(wǎng)絡(luò)的業(yè)務(wù)。這就要求sdn網(wǎng)絡(luò)有分布式的多個控制器來分擔(dān)整個網(wǎng)絡(luò)的壓力。

因此,為了使sdn網(wǎng)絡(luò)能夠正常工作而且效率更高,要在保證負(fù)載均衡的情況下,對整個sdn網(wǎng)絡(luò)進(jìn)行合理的控制器部署。

文獻(xiàn)[1]最早提出了控制器的部署問題,使用平均時延和最大時延作為衡量指標(biāo)來分析控制器的部署問題,并使用貪心算法對其求解。文獻(xiàn)[2]提出了k-critical算法,根據(jù)最大允許時延來計算所需控制器數(shù)量以及部署位置,但該文獻(xiàn)同樣沒有考慮控制器的負(fù)載均衡問題。文獻(xiàn)[3]在使用譜聚類算法來解決這個wan中的控制器部署問題,其算法有一定的負(fù)載均衡效果。文獻(xiàn)[4]使用了粒子群算法來求解sdn的控制器部署問題,同時考慮了時延和負(fù)載均衡。

模擬退火算法[5]是用來求解最優(yōu)化問題的算法。它模擬了熱力學(xué)系統(tǒng)中的退火過程。它以一定的概率來接受一個比當(dāng)前解要差的解,因此有可能會跳出這個局部的最優(yōu)解,達(dá)到全局的最優(yōu)解。受到該算法的啟發(fā),本發(fā)明提出了一種用于解決sdn控制器負(fù)載均衡問題的算法,并將其命名為節(jié)點退火算法。

[1]hellerb,sherwoodr,mckeownn.thecontrollerplacementproblem[c]//proceedingsofthefirstworkshoponhottopicsinsoftwaredefinednetworks.acm,2012:7-12

[2]y,c,garciaaj.onthecontrollerplacementfordesigningadistributedsdncontrollayer[c]//networkingconference,2014ifip.ieee,2014:1-9.

[3]xiaop,quw,qih,etal.thesdncontrollerplacementproblemforwan[c]//ieee/cicinternationalconferenceoncommunicationsinchina.ieee,2014:220-224.

[4]gaoc,wangh,zhuf,etal.aparticleswarmoptimizationalgorithmforcontrollerplacementprobleminsoftwaredefinednetwork[c]//internationalconferenceonalgorithmsandarchitecturesforparallelprocessing.springerinternationalpublishing,2015:44-54

[5]bertsimasd,tsitsiklisj.simulatedannealing[j].statisticalscience,1993,8(1):10-15。



技術(shù)實現(xiàn)要素:

為克服現(xiàn)有技術(shù)的不足,本發(fā)明旨在提出一種sdn中的節(jié)點退火算法,保證控制器的負(fù)載均衡。本發(fā)明采用的技術(shù)方案是,sdn中的節(jié)點退火方法,步驟如下:

步驟1:根據(jù)改進(jìn)的k-medoids算法對網(wǎng)絡(luò)進(jìn)行初步的分類,返回分類結(jié)果中心點集合p和每個節(jié)點的標(biāo)簽集合q;

步驟2:設(shè)置迭代次數(shù)并且計算整個網(wǎng)絡(luò)節(jié)點數(shù)的初始方差;

步驟3:遍歷所有的節(jié)點,找到所有邊界節(jié)點;

步驟4:在所有邊界節(jié)點中,找一個沒有操作過的邊界節(jié)點進(jìn)行重新分類操作,將其分給與其相鄰節(jié)點的類;

步驟5:計算此時的方差,與前一次的方差進(jìn)行比較:

若此時方差小于前一次的方差,則接受步驟4中的重新分類;

否則,不接受重新分類,重復(fù)步驟4;

步驟6:判斷此時迭代次數(shù)是否達(dá)到:

若未達(dá)到迭代次數(shù),返回步驟4;

否則,返回此時的分類結(jié)果,結(jié)束。

改進(jìn)的k-medoids算法,步驟如下:

步驟1:從n個節(jié)點中任意選出一個節(jié)點作為初始中心點;

步驟2:根據(jù)k-medoids算法更新中心點;

步驟3:找到每個類中距離中心點最遠(yuǎn)的節(jié)點,將其存在一個集合中,選擇該集合中到所有中心點距離之和最大的點作為一個新的中心點;

步驟4:重復(fù)步驟2,判斷整個網(wǎng)絡(luò)有沒有被分成k個類:

如果沒有分成k個類,重復(fù)步驟3并繼續(xù);

如果分成k個類,就返回分類結(jié)果,結(jié)束算法。

在一個實例中,具體步驟如下:

步驟1:根據(jù)改進(jìn)的k-medoids算法對網(wǎng)絡(luò)進(jìn)行初始分類,分類結(jié)果分別為中心點的集合p和每個點標(biāo)簽的集合q;

步驟2:設(shè)置迭代次數(shù)為d,計算此時整個網(wǎng)絡(luò)交換機(jī)節(jié)點數(shù)的初始方差t0;

步驟3:遍歷q中所有點,找到所有的邊界節(jié)點,將其存儲在集合b中t1;

步驟4:計算此時方差t1,隨機(jī)取一個集合b里面的邊界節(jié)點bi,i=0,1,…,n-1,將bi的標(biāo)簽改變?yōu)橄噜彶煌惞?jié)點的標(biāo)簽,即分到相鄰不同類節(jié)點的類中,計算此時方差t2;

步驟5:計算δt=t2-t1。若δt<0,則接受bi的標(biāo)簽改變,更新q;否則,則不接受bi標(biāo)簽的改變,返回步驟4;

步驟6:判斷是否達(dá)到迭代次數(shù)d:

若未達(dá)到迭代次數(shù)d,返回步驟4;

若已達(dá)到迭代次數(shù)d,返回此時的p和q,結(jié)束。

本發(fā)明的特點及有益效果是:

本發(fā)明優(yōu)點主要是考慮的控制器的負(fù)載均衡問題,可以給出合理的控制器部署結(jié)果。

在對sdn控制器部署的研究中,大部分都是以交換機(jī)到控制器的時延作為部署目標(biāo)。這種方法在控制器容量很大的情況下,是沒有問題的。但是一旦網(wǎng)絡(luò)變得大型,控制器容量是不可避免的問題。本算法使用節(jié)點退火算法對sdn控制器部署問題進(jìn)行求解,保證sdn各子網(wǎng)控制器控制的交換機(jī)數(shù)保持平衡。求解過程復(fù)雜度較低,運行時間極其短。

在求解結(jié)果性能估計方面,本算法用節(jié)點數(shù)方差作為兩個性能的衡量指標(biāo)。結(jié)果如下圖3所示,以美國internet2advancedlayer2services拓?fù)錇槔?,假設(shè)k=3,其中節(jié)點7,16,30分別為中心節(jié)點,每個類的節(jié)點數(shù)分別為13,13,13,方差為0。

附圖說明:

圖1邊界節(jié)點(1,5,6,7,8,9)。

圖2算法流程圖。

圖3部署3個控制器時分類結(jié)果(中心點為7,16,30,方差為0)。

具體實施方式

目前雖然已有學(xué)者開始研究控制器部署問題,但是有效方案卻還是很少。尤其是在控制器的負(fù)載均衡方面,極少有文獻(xiàn)能夠給出合理的解決方案。sdn中每個控制器的容量是有限的,一旦控制器的負(fù)荷超過了其容量,整個網(wǎng)絡(luò)必然無法正常工作。本發(fā)明的目的在于提出一種保證負(fù)載均衡的sdn控制器部署算法,保證控制器部署在合理的位置。

本算法的主要過程是,首先對根據(jù)時延對整個網(wǎng)絡(luò)進(jìn)行初步的分類。再計算整個網(wǎng)絡(luò)每個類的節(jié)點數(shù)方差。然后遍歷所有節(jié)點,找到所有的邊界節(jié)點(即在它自己類的邊界而且與其他類直接相連的節(jié)點,見圖1所示),存在一個集合中。對該集合中的某些節(jié)點進(jìn)行重新分類。若重新分類后的方差小于原來的方差,則接受這種分類;否則不接受。一直重復(fù)上述過程直到達(dá)到迭代次數(shù)。

具體方案如下:

一種sdn中的節(jié)點退火算法:

首先基于時延最小對整個網(wǎng)絡(luò)進(jìn)行初始的分類。采用的是改進(jìn)的k-medoids算法,步驟如下:

步驟1:從n個節(jié)點中任意選出一個節(jié)點作為初始中心點。

步驟2:根據(jù)k-medoids算法更新中心點。

步驟3:找到每個類中距離中心點最遠(yuǎn)的節(jié)點,將其存在一個集合中。選擇該集合中到所有中心點距離之和最大的點作為一個新的中心點。

步驟4:重復(fù)步驟2。判斷整個網(wǎng)絡(luò)有沒有被分成k個類:

如果沒有分成k個類,重復(fù)步驟3并繼續(xù);

如果分成k個類,就返回分類結(jié)果,結(jié)束算法。

sdn中的節(jié)點退火算法:

步驟1:根據(jù)改進(jìn)的k-medoids算法對網(wǎng)絡(luò)進(jìn)行初始分類,分類結(jié)果分別為p(中心點的集合)和q(每個點標(biāo)簽的集合)。

步驟2:設(shè)置迭代次數(shù)為d,計算此時整個網(wǎng)絡(luò)交換機(jī)節(jié)點數(shù)的初始方差t0。

步驟3:遍歷q中所有點,找到所有的邊界節(jié)點,將其存儲在集合b中t1。

步驟4:計算此時方差t1。隨機(jī)取一個集合b里面的邊界節(jié)點bi,i=0,1,…,n-1,將bi的標(biāo)簽改變?yōu)橄噜彶煌惞?jié)點的標(biāo)簽,即分到相鄰不同類節(jié)點的類中。計算此時方差t2。

步驟5:計算δt=t2-t1。若δt<0,則接受bi的標(biāo)簽改變,更新q;否則,則不接受bi標(biāo)簽的改變,返回步驟4。

步驟6:判斷是否達(dá)到迭代次數(shù)d:

若未達(dá)到迭代次數(shù)d,返回步驟4;

若已達(dá)到迭代次數(shù)d,返回此時的p(中心點的集合)和q(每個點標(biāo)簽的集合),結(jié)束算法。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
岳池县| 闸北区| 濮阳县| 扬中市| 剑川县| 盐池县| 荆门市| 乐都县| 汝南县| 乳山市| 黔江区| 县级市| 台北市| 土默特左旗| 延长县| 健康| 沈阳市| 新昌县| 曲松县| 漠河县| 隆安县| 长治县| 高陵县| 乌鲁木齐市| 高安市| 南郑县| 南丰县| 乐业县| 宕昌县| 定襄县| 张家川| 浮梁县| 同仁县| 绥阳县| 平度市| 阳城县| 萨迦县| 龙门县| 临夏市| 武陟县| 湟中县|