本發(fā)明涉及軟件定義網(wǎng)絡(luò),特別涉及一種基于軟件定義網(wǎng)絡(luò)控制器的決策樹維護(hù)方法及系統(tǒng)。
背景技術(shù):
1、軟件定義網(wǎng)絡(luò)(software?defined?networking,sdn)是一種新興的體系結(jié)構(gòu),它將網(wǎng)絡(luò)控制和轉(zhuǎn)發(fā)功能解耦。sdn將網(wǎng)絡(luò)劃分為數(shù)據(jù)平面、控制平面和應(yīng)用平面三個主要層次。應(yīng)用平面由一個或多個sdn應(yīng)用程序組成,通過北向接口傳遞給控制平面,以實(shí)現(xiàn)不同的網(wǎng)絡(luò)功能;控制平面從邏輯上集中觀察和控制整個網(wǎng)絡(luò);數(shù)據(jù)平面由交換機(jī)組成,在控制平面的管理下通過端口和鏈路轉(zhuǎn)發(fā)數(shù)據(jù)包。
2、控制平面采用南向接口協(xié)議與數(shù)據(jù)平面通信,允許控制器直接訪問和控制交換機(jī)。然而,直接使用南向接口協(xié)議控制交換機(jī),需要程序員掌握繁瑣的消息格式和底層細(xì)節(jié),比如需要明確知道每一條流流表項匹配的字段以及其相應(yīng)的操作,主動下發(fā)給交換機(jī),操作復(fù)雜,容易出錯。
3、在控制器之上提供一層高級應(yīng)用程序編程接口,屏蔽底層通信協(xié)議的復(fù)雜性,對于簡化用戶網(wǎng)絡(luò)策略的編寫具有重要意義。用戶使用通用編程語言形成數(shù)據(jù)包的轉(zhuǎn)發(fā)策略,控制器根據(jù)用戶策略中調(diào)用的函數(shù)與處理數(shù)據(jù)包過程中參與匹配的數(shù)據(jù)包字段構(gòu)建決策樹,控制器基于決策樹生成流表項,將流表項下發(fā)到交換機(jī)指導(dǎo)交換機(jī)處理數(shù)據(jù)包。然而,隨著控制器處理不同數(shù)據(jù)包數(shù)量的增多,決策樹的規(guī)模會不斷擴(kuò)大,造成控制器在運(yùn)行時查找速度變慢,對交換機(jī)的響應(yīng)時間變長,影響數(shù)據(jù)包的正常轉(zhuǎn)發(fā)。
4、南京郵電大學(xué)提出了一種通過對sdn控制器中決策樹分支進(jìn)行合并縮小決策樹規(guī)模、減少生成流表項數(shù)量的方法。但這種方法并不能限制決策樹規(guī)模的不斷增大,不能保證決策樹不占用過多內(nèi)存空間,影響了數(shù)據(jù)包的正常轉(zhuǎn)發(fā)。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明的目的在于,克服現(xiàn)有基于軟件定義網(wǎng)絡(luò)控制器的決策樹維護(hù)方法,無法控制決策樹的規(guī)模,導(dǎo)致占用過多內(nèi)存空間,影響數(shù)據(jù)包正常轉(zhuǎn)發(fā)的問題,從而提供一種基于軟件定義網(wǎng)絡(luò)控制器的決策樹維護(hù)方法及系統(tǒng)。
2、為解決上述技術(shù)問題,本發(fā)明的技術(shù)方案所提供的一種基于軟件定義網(wǎng)絡(luò)控制器的決策樹維護(hù)方法,包括以下步驟:
3、步驟1:通過軟件定義網(wǎng)絡(luò)控制器,基于流表項增長的速度以及處理決策樹淘汰分支的時間,設(shè)置閾值;
4、步驟2:當(dāng)決策樹生成的流表項的數(shù)量大于閾值時,通過軟件定義網(wǎng)絡(luò)控制器,獲取各流表項在交換機(jī)中的運(yùn)行統(tǒng)計數(shù)據(jù),并基于對應(yīng)的運(yùn)行統(tǒng)計數(shù)據(jù)計算各流表項的淘汰優(yōu)先級;
5、步驟3:通過軟件定義網(wǎng)絡(luò)控制器,基于各流表項的淘汰優(yōu)先級,確定在決策樹中的待淘汰分支,對待淘汰分支進(jìn)行剪枝處理,并對相應(yīng)的流表項進(jìn)行刪除處理。
6、作為上述方法的一種改進(jìn),所述步驟1具體包括:通過軟件定義網(wǎng)絡(luò)控制器,基于流表項增長的速度以及處理決策樹淘汰分支的時間,設(shè)置閾值c:
7、
8、其中,o為交換機(jī)流表項容量,υ為流表項增長的速度,t為處理決策樹淘汰分支的時間。
9、作為上述方法的一種改進(jìn),所述步驟2具體包括:
10、當(dāng)決策樹生成的流表項的數(shù)量大于閾值時,通過軟件定義網(wǎng)絡(luò)控制器,獲取各流表項在交換機(jī)中的運(yùn)行統(tǒng)計數(shù)據(jù),其中,運(yùn)行統(tǒng)計數(shù)據(jù)包括但不限于:流表項的命中次數(shù)和當(dāng)前時間與流表項上次命中時間的時間間隔δt1;
11、通過軟件定義網(wǎng)絡(luò)控制器,基于對應(yīng)的運(yùn)行統(tǒng)計數(shù)據(jù)計算各流表項的淘汰優(yōu)先級s:
12、
13、其中,n為流表項的命中次數(shù),δt1為當(dāng)前時間與流表項上次命中時間的時間間隔,a第一加權(quán)系數(shù),b為第二加權(quán)系數(shù);
14、作為上述方法的一種改進(jìn),所述步驟3具體包括:
15、各流表項的淘汰優(yōu)先級s按照由小到大進(jìn)行排序,獲取前k個淘汰優(yōu)先級s對應(yīng)的流表項;其中,k為超出閾值的流表項數(shù)量;
16、將k個流表項分別對應(yīng)的決策樹分支作為決策樹中的待淘汰分支;
17、通過軟件定義網(wǎng)絡(luò)控制器,對決策樹中的待淘汰分支進(jìn)行剪枝處理;
18、通過軟件定義網(wǎng)絡(luò)控制器,基于南向接口協(xié)議標(biāo)準(zhǔn),構(gòu)建刪除流表項的消息,并通知交換機(jī)刪除相關(guān)流表項。
19、為實(shí)現(xiàn)本發(fā)明的另一目的,本發(fā)明還提供一種基于軟件定義網(wǎng)絡(luò)控制器的決策樹維護(hù)系統(tǒng),所述系統(tǒng)包括:軟件定義網(wǎng)絡(luò)控制器,其中,所述軟件定義網(wǎng)絡(luò)控制器包括:
20、閾值設(shè)定模塊,用于基于流表項增長的速度以及處理決策樹淘汰分支的時間,設(shè)置閾值;
21、淘汰優(yōu)先級計算模塊,用于在基于決策樹生成的流表項的數(shù)量大于閾值時,獲取各流表項在交換機(jī)中的運(yùn)行統(tǒng)計數(shù)據(jù),并基于對應(yīng)的運(yùn)行統(tǒng)計數(shù)據(jù)計算各流表項的淘汰優(yōu)先級;和
22、剪枝模塊,用于基于各流表項的淘汰優(yōu)先級,確定在決策樹中的待淘汰分支,對待淘汰分支進(jìn)行剪枝處理,并對相應(yīng)的流表項進(jìn)行刪除處理。
23、作為上述系統(tǒng)的一種改進(jìn),所述閾值設(shè)定模塊,具體用于:
24、基于流表項增長的速度以及處理決策樹淘汰分支的時間,設(shè)置閾值c:
25、
26、其中,o為交換機(jī)流表項容量,v為流表項增長的速度,t為處理決策樹淘汰分支的時間。
27、作為上述系統(tǒng)的一種改進(jìn),所述淘汰優(yōu)先級計算模塊,具體用于:
28、當(dāng)決策樹生成的流表項的數(shù)量大于閾值時,獲取各流表項在交換機(jī)中的運(yùn)行統(tǒng)計數(shù)據(jù),其中,運(yùn)行統(tǒng)計數(shù)據(jù)包括但不限于:流表項的命中次數(shù)和當(dāng)前時間與流表項上次命中時間的時間間隔δt1;
29、基于對應(yīng)的運(yùn)行統(tǒng)計數(shù)據(jù)計算各流表項的淘汰優(yōu)先級s:
30、
31、其中,n為流表項的命中次數(shù),δt1為當(dāng)前時間與流表項上次命中時間的時間間隔,a第一加權(quán)系數(shù),b為第二加權(quán)系數(shù);
32、作為上述系統(tǒng)的一種改進(jìn),所述剪枝模塊,具體用于:
33、將各流表項的淘汰優(yōu)先級s按照由小到大進(jìn)行排序,獲取前k個淘汰優(yōu)先級s對應(yīng)的流表項;其中,k為超出閾值的流表項數(shù)量;
34、將k個流表項分別對應(yīng)的決策樹分支作為決策樹中的待淘汰分支;
35、對決策樹中的待淘汰分支進(jìn)行剪枝處理;
36、基于南向接口協(xié)議標(biāo)準(zhǔn),構(gòu)建刪除流表項的消息,并通知交換機(jī)刪除相關(guān)流表項。
37、本發(fā)明的優(yōu)點(diǎn)在于,本發(fā)明的提供的基于軟件定義網(wǎng)絡(luò)控制器的決策樹維護(hù)方法及系統(tǒng),通過流表項增長的速度以及處理決策樹淘汰分支的時間,設(shè)定了閾值,并利用該閾值限定了決策樹的規(guī)模,利用淘汰優(yōu)先級確定待淘汰分支,可以確保淘汰的分支為最近使用頻率較少的分支,本發(fā)明保證了決策樹不占用過多內(nèi)存空間,還保證了數(shù)據(jù)包的正常轉(zhuǎn)發(fā)。
1.一種基于軟件定義網(wǎng)絡(luò)控制器的決策樹維護(hù)方法,所述方法包括以下步驟:
2.根據(jù)權(quán)利要求1所述的基于軟件定義網(wǎng)絡(luò)控制器的決策樹維護(hù)方法,其特征在于,所述步驟1具體包括:通過軟件定義網(wǎng)絡(luò)控制器,基于流表項增長的速度以及處理決策樹淘汰分支的時間,設(shè)置閾值c:
3.根據(jù)權(quán)利要求1所述的基于軟件定義網(wǎng)絡(luò)控制器的決策樹維護(hù)方法,其特征在于,所述步驟2具體包括:
4.根據(jù)權(quán)利要求3所述的基于軟件定義網(wǎng)絡(luò)控制器的決策樹維護(hù)方法,其特征在于,所述步驟3具體包括:
5.一種基于軟件定義網(wǎng)絡(luò)控制器的決策樹維護(hù)系統(tǒng),其特征在于,所述系統(tǒng)包括:軟件定義網(wǎng)絡(luò)控制器,其中,所述軟件定義網(wǎng)絡(luò)控制器包括:
6.根據(jù)權(quán)利要求5所述的基于軟件定義網(wǎng)絡(luò)控制器的決策樹維護(hù)系統(tǒng),其特征在于,所述閾值設(shè)定模塊,具體用于:
7.根據(jù)權(quán)利要求5所述的基于軟件定義網(wǎng)絡(luò)控制器的決策樹維護(hù)系統(tǒng),其特征在于,所述淘汰優(yōu)先級計算模塊,具體用于:
8.根據(jù)權(quán)利要求7所述的基于軟件定義網(wǎng)絡(luò)控制器的決策樹維護(hù)系統(tǒng),其特征在于,所述剪枝模塊,具體用于: