一種基于貪心算法的全局優(yōu)化sdn測量方法
【專利摘要】本發(fā)明提出一種基于貪心算法的全局優(yōu)化SDN測量方法,屬于軟件定義網(wǎng)絡(luò)技術(shù)領(lǐng)域,本發(fā)明考慮通過以測量最少交換機數(shù)目為目標(biāo)函數(shù)來建立數(shù)學(xué)模型;然后,進(jìn)一步擴展到以測量最少流的數(shù)目為目標(biāo)函數(shù)來求解如何選擇合適的交換機而且保證測量流的數(shù)目盡可能少;所提出的測量方法先選擇流數(shù)目最多的交換機,依次遞減,直到完成所有流的測量;本發(fā)明能夠高效地選擇合適的交換機進(jìn)行測量而且能保證測量到所有的流,有效地提高了測量的精準(zhǔn)度和效率。
【專利說明】
一種基于貪心算法的全局優(yōu)化SDN測量方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明屬于軟件定義網(wǎng)絡(luò)技術(shù)領(lǐng)域,具體涉及一種基于貪心算法的全局優(yōu)化SDN 測量方法。
【背景技術(shù)】
[0002] 由于信息產(chǎn)業(yè)的快速發(fā)展,產(chǎn)生了海量的數(shù)據(jù)信息,而人們對信息質(zhì)量的要求越 來越高,因此網(wǎng)絡(luò)的處理能力需要得到極大的提高;由于傳統(tǒng)網(wǎng)絡(luò)都是建立在TCP/IP架構(gòu) 之上的,主要是通過端到端的路由轉(zhuǎn)發(fā)來處理數(shù)據(jù);但是,隨著網(wǎng)絡(luò)信息量的增加和網(wǎng)絡(luò)架 構(gòu)的復(fù)雜性的提高,現(xiàn)有的網(wǎng)絡(luò)架構(gòu)很難滿足數(shù)據(jù)信息質(zhì)量的大幅度提升,也很難滿足人 們對高質(zhì)量數(shù)據(jù)信息的需求;因此,提出一種新的網(wǎng)絡(luò)架構(gòu)來提高網(wǎng)絡(luò)靈活性和資源的動 態(tài)處理能力,解決現(xiàn)有網(wǎng)絡(luò)的瓶頸問題成為現(xiàn)在網(wǎng)絡(luò)界一個重要的研究課題。
[0003] 軟件定義網(wǎng)絡(luò)(Software Defined Network,SDN)作為下一代網(wǎng)絡(luò)的核心技術(shù)已 經(jīng)得到越來越多的關(guān)注和研究。首先SDN是一種新型網(wǎng)絡(luò)架構(gòu),它是一種網(wǎng)絡(luò)的設(shè)計理念, 而不是一種具體的技術(shù)。最初它是用來解決無法利用現(xiàn)有網(wǎng)絡(luò)中的大規(guī)模真實流量和豐富 應(yīng)用進(jìn)行實驗,進(jìn)而研究網(wǎng)絡(luò)的速度、可靠性、能效和安全性等問題。SDN的核心思想是控制 層面和數(shù)據(jù)層面分離,控制器通過開放的軟件編程接口來全局控制數(shù)據(jù)層面的轉(zhuǎn)發(fā)和管 理,控制器的集中和全局控制實現(xiàn)網(wǎng)絡(luò)流量的可視化,對解決網(wǎng)絡(luò)擁塞和提高鏈路利用率 具有十分重要的作用。
[0004] SDN結(jié)構(gòu)主要分為3層:應(yīng)用層、控制層、數(shù)據(jù)層,控制層是SDN網(wǎng)絡(luò)架構(gòu)的核心層, 當(dāng)控制層面來全局控制數(shù)據(jù)層面的數(shù)據(jù)轉(zhuǎn)發(fā)時,需要如何實現(xiàn)它和數(shù)據(jù)層之間的通信,南 向接口應(yīng)運而生,其中,最流行的南向接口是OpenFlow協(xié)議;雖然OpenFlow不是唯一的南向 接口,但是作為SDN的核心技術(shù),它實現(xiàn)了控制層面與數(shù)據(jù)層面的通信,并解決當(dāng)前網(wǎng)絡(luò)面 對新業(yè)務(wù)產(chǎn)生的種種瓶頸問題。它的核心思想是實現(xiàn)OpenFlow交換機(OpenFlow Switch) 和控制服務(wù)器(Controller)的解隅,而傳統(tǒng)網(wǎng)絡(luò)中控制層和數(shù)據(jù)層是緊隅的,數(shù)據(jù)包的轉(zhuǎn) 發(fā)是人為控制的,沒有流和流表等概念。OpenFlow則引入了流表的概念,通過對流表的查詢 實現(xiàn)網(wǎng)絡(luò)流量的可視化,解決現(xiàn)有網(wǎng)絡(luò)的擁塞問題。
[0005] 在現(xiàn)有的網(wǎng)絡(luò)測量方法中,OpenTM對流速率進(jìn)行統(tǒng)計來評估流量矩陣,這種方法 通過定期輪詢交換機來存儲統(tǒng)計的數(shù)據(jù)來評估流量;然而這種方法只對流量進(jìn)行估計而且 不能捕捉到數(shù)據(jù)包丟失和延時;FlowSense提出了 一種被動監(jiān)測的測量方法,F(xiàn)lowRemove信 息被用來測量每個流的鏈路利用率,雖然FlowSense方法的通信開銷比較低,但是誤差比較 大,而且不能有效地處理流量突變問題。現(xiàn)有的SDN測量方法主要是通過控制器全局控制和 開源的編程接口來構(gòu)建SDN測量平臺,與傳統(tǒng)網(wǎng)絡(luò)測量方法相比,這種測量方法通過開源的 編程接口部署比較簡單、可擴展性強、易于實現(xiàn)。
[0006] 在SDN網(wǎng)絡(luò)測量方法中,輪詢算法需要測量每條路徑的所有交換機,這種遍歷方法 不適應(yīng)規(guī)模較大的網(wǎng)絡(luò),因為網(wǎng)絡(luò)規(guī)模較大時,這種測量方法會大幅度增加網(wǎng)絡(luò)開銷,造成 網(wǎng)絡(luò)資源的浪費。在測量網(wǎng)絡(luò)中全部的流時,如果簡單地使用所有交換機測量流量,這種低 效率的方法雖然精確性高,但是會造成巨大的測量開銷。另一方面,如果只測量每個流的源 和目的交換機這樣也會增加網(wǎng)絡(luò)開銷。而現(xiàn)有的網(wǎng)絡(luò)測量方法主要從局部考慮,很少從全 局的角度考慮流量的測量;因此,全網(wǎng)絡(luò)測量的情況下,如何選擇合適的交換機進(jìn)行測量而 且能保證測量到所有的流是十分重要的。
【發(fā)明內(nèi)容】
[0007] 針對現(xiàn)有技術(shù)的不足,本發(fā)明提出一種基于貪心算法的全局優(yōu)化SDN測量方法,高 效地選擇合適的交換機進(jìn)行測量而且能保證測量到所有的流。
[0008] 一種基于貪心算法的全局優(yōu)化SDN測量方法,包括以下步驟:
[0009] 步驟1、在網(wǎng)絡(luò)拓?fù)渲?,根?jù)測量流通過構(gòu)建目標(biāo)函數(shù)及其約束條件的方式,描述 以測量交換機數(shù)目最少為目的的交換機選擇過程;
[0010]步驟2、通過擴展步驟1中目標(biāo)函數(shù)的方式,描述以測量流數(shù)目最少為目的的交換 機選擇過程;
[0011] 步驟3、通過貪心算法獲得以測量交換機數(shù)目最少為目的的被測交換機;
[0012] 步驟4、通過貪心算法獲得以測量流數(shù)目最少為目的的被測交換機;
[0013] 步驟5、根據(jù)實際需求,選擇步驟3或步驟4所獲得的被測交換機。
[0014] 步驟1所述的在網(wǎng)絡(luò)拓?fù)渲校鶕?jù)測量流通過構(gòu)建目標(biāo)函數(shù)及其約束條件的方式, 描述以測量交換機數(shù)目最少為目的的交換機選擇過程;
[0015] 具體如下:
[0016] 步驟1-1、以測量交換機數(shù)目最少為目的構(gòu)建目標(biāo)函數(shù);
[0017]步驟卜2、確定目標(biāo)函數(shù)的約束條件,具體如下:
[0018]約束1:保證測量交換機的數(shù)目在[1,網(wǎng)絡(luò)拓?fù)渲薪粨Q機總數(shù)]之間;
[0019] 約束2:保證實際需要測量流的數(shù)目要大于等于目標(biāo)測量流集合中的流數(shù)目;
[0020] 約束3:保證每個交換機測量流的數(shù)目在[0,網(wǎng)絡(luò)拓?fù)渲辛鞯臄?shù)目]之間;
[0021 ]約束4:保證所有交換機所測量流的集合包含需要測量流集合;
[0022]約束5:目標(biāo)流中的所有流構(gòu)成需要測量流集合;
[0023] 約束6:約束某臺交換機是否被采樣。
[0024] 步驟3所述的通過貪心算法獲得以測量交換機數(shù)目最少為目的的被測交換機,具 體如下:
[0025]步驟3-1、初始化;
[0026] 確定網(wǎng)絡(luò)拓?fù)渲薪粨Q機集合、需要測量流集合、測量流的數(shù)目和交換機數(shù)目;
[0027] 步驟3-2、查找通過每臺交換機流的數(shù)目,根據(jù)以測量交換機數(shù)目最少為目的的目 標(biāo)函數(shù),在滿足約束條件的前提下從交換機集合中選擇通過流數(shù)目最多的交換機;
[0028] 步驟3-3、將選取出的交換機從交換機集合中刪除;
[0029] 步驟3-4、更新網(wǎng)絡(luò)拓?fù)渲薪粨Q機集合和交換機數(shù)目;
[0030] 步驟3-5、從更新后的交換機集合中選擇通過流數(shù)目最多的交換機;
[0031] 步驟3-6、判斷測量到所有流的集合是否包含需要測量流集合,若是,則測量結(jié)束, 否則執(zhí)行步驟3-2。
[0032] 步驟4所述的通過貪心算法獲得以測量流數(shù)目最少為目的的被測交換機,具體如 下:
[0033]步驟4-1、初始化;
[0034]確定網(wǎng)絡(luò)拓?fù)渲薪粨Q機集合,需要測量流集合,測量流的數(shù)目和交換機數(shù)目;
[0035] 步驟4-2、根據(jù)以測量流數(shù)目最少為目的的目標(biāo)函數(shù),將每臺交換機經(jīng)過的流與需 要測量流集合進(jìn)行對比,在滿足約束條件的前提下提取其公共部分;
[0036] 步驟4-3、在需要測量流集合中刪除所提取的公共部分,在刪除后的需要測量流集 合中選擇數(shù)目值小的交換機;
[0037] 步驟4-4、將所選擇的交換機從交換機集合中刪除;
[0038] 步驟4-5、將所選擇的交換機里的流從需要測量流集合中刪除;
[0039] 步驟4-6、更新網(wǎng)絡(luò)拓?fù)渲薪粨Q機集合和需要測量流集合;
[0040] 步驟4-7、判斷更新后的需要測量流集合是否為空集,若是,則測量結(jié)束,否則執(zhí)行 步驟4-2。
[0041] 本發(fā)明優(yōu)點:
[0042] SDN網(wǎng)絡(luò)測量處于初級階段,現(xiàn)在的研究著眼于建立有效的網(wǎng)絡(luò)測量平臺架構(gòu),并 能夠準(zhǔn)確地測量吞吐量、延時、丟包率、鏈路利用等。這些架構(gòu)設(shè)計原則是能夠保證測量的 準(zhǔn)確性,但是并沒有考慮對網(wǎng)絡(luò)測量方法的全局優(yōu)化問題,現(xiàn)有的測量方法主要是采用輪 詢方法,精確度高,但是這樣效率低,本發(fā)明提出一種基于貪心算法的全局優(yōu)化SDN測量方 法,能夠高效地選擇合適的交換機進(jìn)行測量而且能保證測量到所有的流;本發(fā)明考慮通過 以測量最少交換機數(shù)目為目標(biāo)函數(shù)來建立數(shù)學(xué)模型;然后,進(jìn)一步擴展到以測量最少流的 數(shù)目為目標(biāo)函數(shù)來求解如何選擇合適的交換機而且保證測量流的數(shù)目盡可能少。所提出的 測量方法先選擇流數(shù)目最多的交換機,依次遞減,直到完成所有流的測量。
【附圖說明】
[0043]圖1為本發(fā)明一種實施方式的基于貪心算法的全局優(yōu)化SDN測量方法流程圖;
[0044]圖2為本發(fā)明一種實施方式的網(wǎng)絡(luò)流測量圖;
[0045] 圖3為本發(fā)明一種實施方式的通過貪心算法獲得以測量交換機數(shù)目最少為目的的 被測交換機過程流程圖;
[0046] 圖4為本發(fā)明一種實施方式的通過貪心算法獲得以測量流數(shù)目最少為目的的被測 交換機過程流程圖;
[0047]圖5為本發(fā)明一種實施方式的三種方法測量的流數(shù)目比較圖;
[0048]圖6為本發(fā)明一種實施方式的三種方法測量交換機數(shù)目比較圖;
[0049]圖7為本發(fā)明一種實施方式的NIgreed和MostFlow算法提高效率比較圖;
[0050] 圖8為本發(fā)明一種實施方式的交換機數(shù)目對三種方法測量流數(shù)目比較圖;
[0051] 圖9為本發(fā)明一種實施方式的三種方法測量交換機數(shù)目比較圖;
[0052]圖10為本發(fā)明一種實施方式的交換機數(shù)目對NIgreed和MostFlow算法性能的比較 圖。
【具體實施方式】
[0053]下面結(jié)合附圖對本發(fā)明一種實施例做進(jìn)一步說明。
[0054] 本發(fā)明實施例中,基于貪心算法的全局優(yōu)化SDN測量方法,流程圖如圖1所示,包括 以下步驟:
[0055] 步驟1、在網(wǎng)絡(luò)拓?fù)渲?,根?jù)測量流通過構(gòu)建目標(biāo)函數(shù)及其約束條件的方式,描述 以測量交換機數(shù)目最少為目的的交換機選擇過程;
[0056] 本發(fā)明實施例中,通過分析控制器向交換機發(fā)送流狀態(tài)請求 (FlowStatsRequest),以及分析交換機向控制器發(fā)送流狀態(tài)響應(yīng)(FlowStatsReply),以最 小化交換機測量數(shù)目來降低網(wǎng)絡(luò)開銷。在SDN網(wǎng)絡(luò)測量中,相比于交換機,測量開銷主要由 控制器產(chǎn)生。因此,為了實現(xiàn)快速測量,降低計算復(fù)雜度,本發(fā)明以流狀態(tài)請求 (FlowStatsRequest)消息數(shù)目來評價測量開銷。
[0057] 具體如下:
[0058]步驟1-1、以測量交換機數(shù)目最少為目的構(gòu)建目標(biāo)函數(shù); N
[0059] minimize^ sn (1) ?=i
[0060] 其中,Sn表示第n臺交換機,N表示網(wǎng)絡(luò)拓?fù)渲薪粨Q機的總數(shù);
[0061] 本發(fā)明實施例中,如圖2所示,網(wǎng)絡(luò)拓?fù)渲杏?臺交換機,6個交換機集合S= {si, S2, ? ? .S6};有6條流F={fl,f2, ? ? .f6},每個交換機顯示通過的流:Sl={fl,f2,f4},S2={fl}, S3={fl,f2,f3,f5},S4={f2,f3},S5={f3,f4,f6},S6= {f4,f5,f6}。在SDN測量過程中,控制器 定時向交換機發(fā)送F 1 〇 w S t a t s R e q u e s t消息,每測量一個流,交換機就會發(fā)送 FlowStatsReply消息作為回復(fù)。
[0062] 步驟1-2、確定目標(biāo)函數(shù)的約束條件,具體如下:
[0063] 約束1:保證測量交換機的數(shù)目在[1,網(wǎng)絡(luò)拓?fù)渲薪粨Q機總數(shù)N]之間;
[0064] A' > > 1 <2> R=1
[0065] 其中,為選擇交換機的數(shù)目; n=\
[0066] 約束2:保證實際需要測量流的數(shù)目要大于等于目標(biāo)測量流集合中的流數(shù)目;
[0067] (3) n=\ m=l
[0068]其中,| hm |表示通過交換機流的數(shù)目,他表示流集合F中的流數(shù)目,N2表示網(wǎng)絡(luò)拓?fù)?中流的數(shù)目;
[0069] 約束3:保證每個交換機測量流的數(shù)目在[0,網(wǎng)絡(luò)拓?fù)渲辛鞯臄?shù)目N2 ]之間;
[0070] N2彡 |hm| 彡0 (4)
[0071] 其中,N2表示網(wǎng)絡(luò)拓?fù)渲辛鞯臄?shù)目;
[0072] 約束4:保證所有交換機所測量流的集合包含需要測量流集合;
[0073] ULKt〕尸 (5) n m
[0074]其中,hm表示通過交換機的第m條流;F表示測量流的集合;
[0075]約束5:目標(biāo)流中的所有流構(gòu)成需要測量流集合;
[0076] U^' ~'F :⑷ i.
[0077] 其中,fi表示目標(biāo)流中的第i條流;
[0078] 約束6:約束某臺交換機是否被采樣;
[0079] SnG{〇,l} (7)
[0080]其中,1表不米樣,0表不沒有米樣;
[0081] 步驟2、通過擴展步驟1中目標(biāo)函數(shù)的方式,描述以測量流數(shù)目最少為目的的交換 機選擇過程;
[0082] 本發(fā)明實施例中,由于網(wǎng)絡(luò)開銷與測量流的數(shù)目成正相關(guān)關(guān)系,因此,可以將以測 量最少交換機數(shù)目作為目標(biāo)函數(shù)的數(shù)學(xué)模型擴展為以最少流數(shù)目作為目標(biāo)函數(shù),即測量流 的數(shù)目越少則網(wǎng)絡(luò)開銷就越小。
[0083] 本發(fā)明實施例中,將上述數(shù)學(xué)模型擴展到以測量流數(shù)目最少作為目標(biāo)函數(shù):
(8)
[0085] 擴展后的目標(biāo)函數(shù)的約束條件與步驟1中的約束條件相同,此處不再復(fù)述;
[0086] 本發(fā)明實例中,如果按照輪詢方法總共需要選擇6個交換機集合S={S1,s2, ? ??86},16條流;而如果選擇83={;1^1,;^2,;^3,;^5}和86={;^4,;^5,;^6}或者83={;^1,;^2,;^3,;^5}和85 ={f3,f4,f6},SDN網(wǎng)絡(luò)的開銷主要通過FlowStatsRequest信息和FlowStatsReply信息的數(shù) 目進(jìn)行評估,測量流的數(shù)目越少相應(yīng)需要FlowStatsRequest信息和FlowStatsReply信息就 會越小,網(wǎng)絡(luò)開銷就會越小;
[0087]步驟3、通過貪心算法(MostFlow算法)獲得以測量交換機數(shù)目最少為目的的被測 交換機;流程圖如圖3所示,具體如下:
[0088]步驟3-1、初始化;
[0089]確定網(wǎng)絡(luò)拓?fù)渲薪粨Q機集合S = { s i,s 2,. . .,s N },需要測量流集合 F =丨…八丨,測量流的數(shù)目C和交換機數(shù)目N;
[0090 ]本發(fā)明實施例中,測量流的數(shù)目Ni = 4,交換機數(shù)目N = 6,進(jìn)行10 0次計算,取平均 值,需要測量流的集合?={;^,€4,€5,;^6};
[0091] 步驟3-2、查找通過每臺交換機流的數(shù)目= …,hj,根據(jù)以測量交換機數(shù) 目最少為目的的目標(biāo)函數(shù),在滿足約束條件的前提下從交換機集合3={81,82,...,別}中選 擇通過流數(shù)目最多的交換機sn(Kn彡N);
[0092] 本發(fā)明實施例中,在交換機集合S={si,s2, . . .,s6}中選擇通過流數(shù)目最多的交換 機S3(Kn<6),需要測量流的數(shù)目大于測量流的集合;
[0093]步驟3-3、將選取出的交換機sn(Kn彡N)從交換機集合S={si,s2, . . .,sn}中刪 除;
[0094] 本發(fā)明實施例中,將s3(l彡n彡6)從集合S={si,s2, . . .,s6}中去掉,每臺交換機測 量流的數(shù)目滿足6彡| hm |彡0;
[0095] 步驟3-4、更新網(wǎng)絡(luò)拓?fù)渲薪粨Q機集合S和交換機數(shù)目N;
[0096] 本發(fā)明案例中,更新后得到S={si,S2,S4,S5,S6},N={1,2,4,5,6};
[0097] 步驟3-5、從更新后的交換機集合中選擇通過流數(shù)目最多的交換機;
[0098] 本發(fā)明案例中,選擇通過流數(shù)目最多的交換機S6;
[0099] 步驟3-6、判斷測量到所有流的集合是否包含需要測量流集合,若是,則測量結(jié)束, 否則執(zhí)行步驟3-2;
[0100] 本發(fā)明實施例中,選擇出的所有交換機測量到的流的集合{fi,f2,f3,f5,f4,f 5,f6} 包含測量流的集合F= {fi,f4,f5,f6},滿足約束條件;
[0101] 本發(fā)明實施例中,根據(jù)目標(biāo)函數(shù)選擇測得最少交換機作為目標(biāo)函數(shù),只需要測量2 個交換機就能夠完成整個測量任務(wù),大大降低測量流的數(shù)目和網(wǎng)絡(luò)開銷,同時保證測量的 精確度。
[0102] 步驟4、通過貪心算法(NIgreed算法)獲得以測量流數(shù)目最少為目的的被測交換 機;
[0103] 本發(fā)明實施例中,每次選擇和流集合不同元素最少的&(1<1!<6),這種貪心算法 考慮了流之間盡可能不相交,這樣就保證了網(wǎng)絡(luò)測量流的數(shù)目盡可能少同時減少測量交換 機的數(shù)目;
[0104] 流程如圖4所示,具體如下:
[0105] 步驟4-1、初始化;確定網(wǎng)絡(luò)拓?fù)渲薪粨Q機集合S= {si,S2, . . .,sn},需要測量流集 合F = {/p/2,…眾},測量流的數(shù)目C和交換機數(shù)目N;
[0106] 本發(fā)明實施例中,固定交換機的數(shù)目和流的數(shù)目分別為~ = 6和他=4,進(jìn)行100次 計算,取平均值,需要測量流的集合F = {fl,f4,f5,f6};
[0107] 步驟4-2、根據(jù)以測量流數(shù)目最少為目的的目標(biāo)函數(shù),將每臺交換機經(jīng)過的流 ^^仇為^上以與需要測量流集合/^隊/^…/^進(jìn)行對比名滿足約束條件的前提 下提取其公共部分;
[0108] 步驟4-3、在需要測量流集合7 = 1/;,,沖刪除所提取的公共部分,在刪除后 的需要測量流集合中選擇數(shù)目值小的交換機;
[0109] 本發(fā)明實施例中,在流集合?=出,心,心』6}中,存在16條流,在3={>1, 82,..., S6}中選擇與流集合F= {fl,f4,f5,f6}不同元素最少的S6(Kn彡6),需要測量流的數(shù)目等于 測量流的集合;
[0110] 步驟4-4、將所選擇的交換機sn(Kn彡N)從交換機集合S={si,S2, . . .,sn}中刪 除;
[0111] 本發(fā)明實施例中,將s6(Kn彡6)從集合S={si,s2,. . .,s6}中去掉;
[0112] 步驟4-5、將所選擇的交換機sn( 1彡n彡N)里的流從需要測量流集合 F = 、心,}中刪除;
[0113] 步驟4-6、更新網(wǎng)絡(luò)拓?fù)渲薪粨Q機集合和需要測量流集合;
[0114] 步驟4-7、判斷更新后的需要測量流集合是否為空集,若是,則測量結(jié)束,否則執(zhí)行 步驟4-2;
[0115] 本發(fā)明實施例中,更新后的測量流集合Fi= {fi};選擇交換機S2(Kn<6)完成測 量;
[0116] 本發(fā)明實施例中,根據(jù)目標(biāo)函數(shù)選擇測量流數(shù)目最少作為目標(biāo)函數(shù),只需要測量5 條流就能夠完成整個測量任務(wù),效率提高了72.8%,大大降低測量流的數(shù)目和網(wǎng)絡(luò)開銷,同 時保證測量的精確度;
[0117] 步驟5、根據(jù)實際需求,選擇步驟3或步驟4所獲得的被測交換機。
[0118] 本發(fā)明實施例中,如圖5所示,本發(fā)明當(dāng)交換機為10個時,隨著流數(shù)目的增加,需要 測量流的數(shù)目增加;但是polling方法需要測量流的數(shù)目最多,NIgreed方法需要測量流的 數(shù)目最少;首先,由于每個交換機都可能產(chǎn)生許多的流,所以,對于100條流,polling算法大 約需要測量300多個流,而NIgreed算法只需要測量大約250個流;因為NIgreed算法避免了 polling采用遍歷的方式,而是通過選擇流數(shù)目較多的交換機,而下次再選擇交換機的時候 保證與上次選擇的流盡可能不想交,這種方法每次都找到了局部最優(yōu)的結(jié)果,雖然不是全 局最優(yōu),但是效率明顯比輪詢效果好;MostFlow則采用每次選擇流數(shù)目最多的交換機而不 考慮,流之間是否相交,這種方法介于pol 1 ing算法和NIgreed算法之間;
[0119] 本發(fā)明實施例中,如圖6所示,本發(fā)明采用固定10個交換機進(jìn)行測量,polling算法 測量的交換機一直為10個,而其它兩種算法隨著流數(shù)目的增加需要測量的交換機數(shù)目緩慢 增加;pol ling方法需要交換機的數(shù)目最多,NIgreed需要交換機的數(shù)目最少;MostFlow算法 需要7.2個交換機,NIgreed需要6個交換機,出現(xiàn)小數(shù)主要是通過仿真平臺產(chǎn)生100次結(jié)果 取平均值;由于NIgreed算法,考慮每次測量流的數(shù)目盡可能與以前測量的流不相交,所以 測量需要的交換機數(shù)目最少;
[0120] 本發(fā)明實施例中,如圖7所示,本發(fā)明提高的效率由輪詢測量流的數(shù)目減去其他方 法測量流的數(shù)目,再除以輪詢方法測量流的數(shù)目;當(dāng)交換機固定時,提高的效率隨著流數(shù)目 的增加而減小;MostFlow算法提高的效率為12.6%,NIgreed算法提高的效率為26.7%, NIgreed算法提高的效率更高;但是,當(dāng)交換機數(shù)目固定時,隨著流數(shù)目的增加,NIgreed算 法和MostFlow算法提高的效率都降低。因為當(dāng)交換機數(shù)目固定時,流數(shù)目增加,NIgreed算 法和MostFlow算法需要測量的交換機數(shù)目增加,而pol ling仍然測量10個交換機;NIgreed 算法和MostF 1 ow算法需要測量流數(shù)目增加的速度比po 11 ing算法快,所以效率都降低;
[0121] 本發(fā)明實施例中,如圖8所示,本發(fā)明當(dāng)流為100的網(wǎng)絡(luò),隨著交換機數(shù)目的增加 polling算法所需要測量流的數(shù)目增加;NIgreed和MostFlow算法需要測量流的數(shù)目趨于平 穩(wěn),變化很小;整個過程polling方法需要測量流的數(shù)目最多,NIgreed需要測量流的數(shù)目最 少;這主要是由于,流的數(shù)目固定時,隨著網(wǎng)絡(luò)規(guī)模的增大,每個流所經(jīng)過的節(jié)點增多,所以 pol ling算法測量流的數(shù)目會不斷增加,而NIgreed和MostFlow算法是有選擇的選擇交換 機,雖然交換機的數(shù)目增加,但是需要選擇流的數(shù)目沒有變化,NIgreed和MostFlow算法可 以很好地選擇交換機,保證流數(shù)目不隨著交換機數(shù)目的增加而增加;
[0122] 本發(fā)明實施例中,如圖9所示,本發(fā)明流的數(shù)目為100時,隨著交換機數(shù)目的增加, pol ing算法所需要測量交換機的數(shù)目增加;NIgreed和MostFlow算法需要測量交換機的數(shù) 目緩慢降低,但是變化很小;整個過程pol ling方法需要測量交換機的數(shù)目最多,并且隨著 交換機的增加大體呈線性增長;NIgreed需要測量交換機的數(shù)目最少。這主要由于當(dāng)流的數(shù) 目固定時,隨著網(wǎng)絡(luò)規(guī)模的增大,每個流所經(jīng)過的節(jié)點增多,所以polling算法需要輪詢每 一個交換機,所以測量交換機的數(shù)目會不斷增加,而NIgreed和MostFlow算法是有選擇地測 量交換機,雖然交換機的數(shù)目增加,但是NIgreed和MostFlow算法可以很好地選擇測量交換 機,能保證不隨著交換機數(shù)目的增加而測量交換機的數(shù)目增加,而是所測量的交換機數(shù)目 變化很小。
[0123] 本發(fā)明實施例中,如圖10所示,本發(fā)明隨著交換機數(shù)目的增加,NIgreed和 MostFlow算法提高的效率都增加,NIgreed算法提高的效率更高。剛開始隨著交換機數(shù)目的 增加,提高的效率增加較快,隨后,提高的效率增加速度將變慢。隨著交換機數(shù)目的增加 NIgreed算法和MostFlow算法的效率增加。因為當(dāng)流數(shù)目固定時,隨著交換機數(shù)目增加, NIgreed算法和MostFlow算法需要測量的流的數(shù)目沒有明顯增加,并保持相對平穩(wěn)的狀態(tài), 而polling算法仍然測量流的數(shù)目不斷增加。NIgreed算法和MostFlow算法需要測量流的數(shù) 目增加的速度比polling算法慢,所以提高的效率隨著交換機數(shù)目增加而增加。
[0124] 雖然以上描述了本發(fā)明的【具體實施方式】,但是本領(lǐng)域內(nèi)的熟練的技術(shù)人員應(yīng)當(dāng)理 解,這些僅是舉例說明,可以對這些實施方式做出多種變更或修改,而不背離本發(fā)明的原理 和實質(zhì)。本發(fā)明的范圍僅由所附權(quán)利要求書限定。
【主權(quán)項】
1. 一種基于貪心算法的全局優(yōu)化SDN測量方法,其特征在于,包括以下步驟: 步驟1、在網(wǎng)絡(luò)拓?fù)渲?,根?jù)測量流通過構(gòu)建目標(biāo)函數(shù)及其約束條件的方式,描述以測 量交換機數(shù)目最少為目的的交換機選擇過程; 步驟2、通過擴展步驟1中目標(biāo)函數(shù)的方式,描述以測量流數(shù)目最少為目的的交換機選 擇過程; 步驟3、通過貪心算法獲得以測量交換機數(shù)目最少為目的的被測交換機; 步驟4、通過貪心算法獲得以測量流數(shù)目最少為目的的被測交換機; 步驟5、根據(jù)實際需求,選擇步驟3或步驟4所獲得的被測交換機。2. 根據(jù)權(quán)利要求1所述的基于貪心算法的全局優(yōu)化SDN測量方法,其特征在于,步驟1所 述的在網(wǎng)絡(luò)拓?fù)渲校鶕?jù)測量流通過構(gòu)建目標(biāo)函數(shù)及其約束條件的方式,描述以測量交換 機數(shù)目最少為目的的交換機選擇過程; 具體如下: 步驟1-1、以測量交換機數(shù)目最少為目的構(gòu)建目標(biāo)函數(shù); 步驟1-2、確定目標(biāo)函數(shù)的約束條件,具體如下: 約束1:保證測量交換機的數(shù)目在[1,網(wǎng)絡(luò)拓?fù)渲薪粨Q機總數(shù)]之間; 約束2:保證實際需要測量流的數(shù)目要大于等于目標(biāo)測量流集合中的流數(shù)目; 約束3:保證每個交換機測量流的數(shù)目在[0,網(wǎng)絡(luò)拓?fù)渲辛鞯臄?shù)目]之間; 約束4:保證所有交換機所測量流的集合包含需要測量流集合; 約束5:目標(biāo)流中的所有流構(gòu)成需要測量流集合; 約束6:約束某臺交換機是否被采樣。3. 根據(jù)權(quán)利要求1所述的基于貪心算法的全局優(yōu)化SDN測量方法,其特征在于,步驟3所 述的通過貪心算法獲得以測量交換機數(shù)目最少為目的的被測交換機,具體如下: 步驟3-1、初始化; 確定網(wǎng)絡(luò)拓?fù)渲薪粨Q機集合、需要測量流集合、測量流的數(shù)目和交換機數(shù)目; 步驟3-2、查找通過每臺交換機流的數(shù)目,根據(jù)以測量交換機數(shù)目最少為目的的目標(biāo)函 數(shù),在滿足約束條件的前提下從交換機集合中選擇通過流數(shù)目最多的交換機; 步驟3-3、將選取出的交換機從交換機集合中刪除; 步驟3-4、更新網(wǎng)絡(luò)拓?fù)渲薪粨Q機集合和交換機數(shù)目; 步驟3-5、從更新后的交換機集合中選擇通過流數(shù)目最多的交換機; 步驟3-6、判斷測量到所有流的集合是否包含需要測量流集合,若是,則測量結(jié)束,否則 執(zhí)行步驟3-2。4. 根據(jù)權(quán)利要求1所述的基于貪心算法的全局優(yōu)化SDN測量方法,其特征在于,步驟4所 述的通過貪心算法獲得以測量流數(shù)目最少為目的的被測交換機,具體如下: 步驟4-1、初始化; 確定網(wǎng)絡(luò)拓?fù)渲薪粨Q機集合,需要測量流集合,測量流的數(shù)目和交換機數(shù)目; 步驟4-2、根據(jù)以測量流數(shù)目最少為目的的目標(biāo)函數(shù),將每臺交換機經(jīng)過的流與需要測 量流集合進(jìn)行對比,在滿足約束條件的前提下提取其公共部分; 步驟4-3、在需要測量流集合中刪除所提取的公共部分,在刪除后的需要測量流集合中 選擇數(shù)目值小的交換機; 步驟4-4、將所選擇的交換機從交換機集合中刪除; 步驟4-5、將所選擇的交換機里的流從需要測量流集合中刪除; 步驟4-6、更新網(wǎng)絡(luò)拓?fù)渲薪粨Q機集合和需要測量流集合; 步驟4-7、判斷更新后的需要測量流集合是否為空集,若是,則測量結(jié)束,否則執(zhí)行步驟 4-2 〇
【文檔編號】H04L12/26GK105959167SQ201610566501
【公開日】2016年9月21日
【申請日】2016年7月18日
【發(fā)明人】蔣定德, 高天
【申請人】東北大學(xué)