本發(fā)明涉及計算機網(wǎng)絡優(yōu)化和控制器負載均衡領域,具體涉及一種基于雙向astar算法的sdn控制器負載均衡的方法。
背景技術:
1、sdn網(wǎng)絡中控制器負載均衡是一個核心的問題,主要涉及到如何在多控制器的背景下分配網(wǎng)絡流量和控制任務,從而保證網(wǎng)絡的高效性和可靠性。控制器負載均衡通過對網(wǎng)絡中的拓撲結構進行了解,當網(wǎng)絡中的交換機等設備遇到數(shù)據(jù)包時向控制器發(fā)送請求,控制器根據(jù)網(wǎng)絡策略和規(guī)則處理這些請求并決定如何處理數(shù)據(jù)包,當控制器決定了如何處理數(shù)據(jù),會生成流表條目指導交換機如何處理數(shù)據(jù)流,在這個過程中,控制器持續(xù)監(jiān)控網(wǎng)絡中的流量和自身的負載,當控制器的負載過高時,根據(jù)控制器當前的負載情況來重新分配任務。
2、現(xiàn)有的sdn負載均衡方案許多都依賴于預設的路由策略,缺乏對于網(wǎng)絡狀態(tài)動態(tài)變化的響應能力,且缺乏綜合性的優(yōu)化目標,傳統(tǒng)的方案往往只關注單一的指標,而沒有綜合考慮負載均衡和鏈路利用率,傳統(tǒng)的路徑搜索算法不適用于動態(tài)環(huán)境、消耗大量資源且在復雜網(wǎng)絡中表現(xiàn)不佳。
技術實現(xiàn)思路
1、本發(fā)明的目的在于提供一種基于雙向astar算法的sdn控制器負載均衡的方法,解決以上技術問題。
2、本發(fā)明的目的可以通過以下技術方案實現(xiàn):
3、一種基于雙向astar算法的sdn控制器負載均衡的方法,包括以下步驟:
4、s1、構建網(wǎng)絡拓撲圖,設定節(jié)點權重和邊權重,初始化各控制器權重和連接邊的權重;
5、s2、結合歸一化的最大負載差異和歸一化的鏈路控制消息實際利用率設定多準則優(yōu)化目標函數(shù);
6、s3、根據(jù)多準則優(yōu)化目標函數(shù)的結果,判斷是否超過閾值,選擇是否進行控制器負載均衡;
7、s4、使用雙向搜索的astar算法來優(yōu)化尋找從源節(jié)點到目標節(jié)點的最佳路徑,通過不斷計算路徑的總成本比較得出最佳的路徑;
8、s5、持續(xù)監(jiān)測各控制器的負載和網(wǎng)絡流量的狀況,實時更新網(wǎng)絡拓撲圖的節(jié)點權重和邊權重,并重新計算多準則優(yōu)化目標函數(shù)。
9、作為進一步的技術方案,所述s1包括如下步驟:
10、s1-1、將網(wǎng)絡建模為一個加權圖g(v,e),其中v是節(jié)點集合,表示控制器集合,e是邊集合,表示連接控制器的網(wǎng)絡鏈路集合;
11、s1-2、每個節(jié)點v有一個權重ωv,使用采集的cpuu、memu、th、packet計算控制器節(jié)點權重,每一條鏈路有一個邊權重cuv,使用采集的bandu、laten、packetloss計算邊權重;
12、節(jié)點權重ωv的計算公式如下:
13、ωv=τ*cpuu+σ*memu+γ*th+δ*packet??(1)
14、式(1)中:ωv為v節(jié)點的權重;τ、σ、γ、δ為權重系數(shù);cpuu為cpu的使用率;memu為內(nèi)存的使用率;th表示網(wǎng)絡的吞吐量;packet為控制器接收到的來自交換機的packet-in率。
15、3、根據(jù)權利要求2所述的基于雙向astar算法的sdn控制器負載均衡的方法,其特征在于,所述邊權重cuv的公式如下:
16、cuv=θ*bandu+μ*laten+ρ*packetloss??(2)
17、式(2)中:cuv為邊權重;θ、μ、ρ為權重系數(shù);bandu為帶寬利用率;laten表示延遲;packetloss表示丟包率。
18、作為進一步的技術方案,所述s2包括如下步驟:
19、s2-1、查詢節(jié)點權重中的最大值和最小值,計算網(wǎng)絡中最大負載差異,并進行歸一化處理,查詢鏈路控制消息的傳輸量和鏈路的最大控制消息的容量,計算鏈路的控制消息利用率之和,并進行歸一化處理;
20、最大負載差異的歸一化公式如下:
21、
22、式(3)中maxd表示歷史數(shù)據(jù)中節(jié)點負載的最大值與最小值的最大差異;d表示歸一化的結果;
23、鏈路控制消息利用率之和的計算公式如下:
24、
25、式(4)中|e|表示鏈路的表示鏈路的總數(shù);
26、鏈路控制消息的實際利用率歸一化公式如下:
27、
28、式(5)中f表示鏈路控制消息的實際利用率歸一化結果;fuv表示鏈路(u,v)上實際控制消息的流量,xuv表示鏈路的最大控制消息容量;
29、s2-2、使用四分位數(shù)定義低、中低、中高、高四個區(qū)間,并對應四個區(qū)間分別設定四個α和β的權重系數(shù);
30、s2-3、結合歸一化的最大負載差異和歸一化的鏈路利用率設定多準則目標優(yōu)化函數(shù);
31、多準則目標優(yōu)化函數(shù)的計算公式如下:
32、ob=α*d+β*f??(6)
33、式(6)中ob為目標優(yōu)化函數(shù)的結果;α、β表示權重系數(shù)。
34、5、根據(jù)權利要求4所述的基于雙向astar算法的sdn控制器負載均衡的方法,其特征在于,所述s3包括如下步驟:
35、s3-1、根據(jù)多準則優(yōu)化目標函數(shù)的結果,首先判斷優(yōu)化函數(shù)的結果是否超過閾值,若沒有超過閾值則說明網(wǎng)絡中控制器負載均衡且鏈路流量利用率合理,若超過閾值,則說明網(wǎng)絡中存在嚴重的負載不平衡或者鏈路過度擁擠,需要立即進行負載均衡;
36、s3-2、若多準則優(yōu)化目標函數(shù)結果超過閾值,則表明需要進行負載均衡,將節(jié)點負載最高的控制器設定為源節(jié)點s,將節(jié)點負載最低的控制器設定為目標節(jié)點t,即
37、作為進一步的技術方案,所述s4包括如下步驟:
38、s4-1、設定四個列表open_s、open_t、close_s和close_t,open_s包含從起始節(jié)點s開始的待探索的節(jié)點,初始只包含s,open_t包含從目標節(jié)點t開始的待探索的節(jié)點,初始只包含t,close_s和close_t表示兩個關閉列表,分別用于存儲從起始節(jié)點s端探索和從目標節(jié)點t端探索的已經(jīng)評估過的節(jié)點;
39、s4-2、從起始節(jié)點s到目標節(jié)點t的路徑過程中經(jīng)過一系列中間節(jié)點,將從起始節(jié)點s探索方向的任意一個中間節(jié)點設為ns,ns的每個鄰節(jié)點設為ms,將從目標節(jié)點探索方向的任意一個中間節(jié)點設為nt,nt的每個鄰節(jié)點設為mt;
40、s4-3、定義雙向搜索過程中當前節(jié)點到鄰節(jié)點的成本函數(shù),表示當前節(jié)點到鄰節(jié)點的實際路徑成本;
41、成本函數(shù)計算公式為:
42、gnew(m)=g(n)+cmn??(7)
43、式(7)中gnew(m)表示雙向搜索中從當前節(jié)點到鄰節(jié)點的實際路徑成本;cmn表示從當前節(jié)點到鄰節(jié)點的邊權重;
44、s4-4、定義啟發(fā)式函數(shù),估計從鄰節(jié)點m到目標節(jié)點t的估計成本;
45、啟發(fā)函數(shù)h(m)的計算公式如下:
46、
47、式(8)中h(m)表示從鄰節(jié)點m到目標節(jié)點t的預估成本;ψ1和ψ2表示延遲和帶寬的權重系數(shù);e(m,t)表示從m到t的估計平均距離,使用平均跳數(shù)計算;ad表示數(shù)據(jù)在網(wǎng)絡中的平均傳輸速率;ab表示網(wǎng)絡平均帶寬;
48、s4-5、定義總成本函數(shù)為f(m),估計從當前節(jié)點到目標節(jié)點的總成本值;
49、f(m)=g(m)+h(m)??(9)
50、式(9)中f(m)表示路徑總的成本;
51、s4-6、從起始節(jié)點s和目標節(jié)點t分別計算f(s)和f(t),初始設置g(s)為0,初始計算g(t)為0,遍歷s和t的所有鄰節(jié)點,計算gnew(ms),如果gnew(ms)小于open_s中已知的g(ms),或ms不在open_s或者open_t中,則更新g(ms)和f(ms),并將ms添加在open_s或者open_t中;
52、s4-7、不斷進行雙向迭代更新,從open_s中選擇f值最低的節(jié)點作為當前的節(jié)點ns,從open_t中選擇f值最低的節(jié)點作為當前節(jié)點nt,更新完成之后將當前節(jié)點移動到close列表中,每次檢查兩個方向是否交叉,如果ns出現(xiàn)在close_t或者nt出現(xiàn)在close_s中,表明兩個搜索方向相遇,開始路徑重建;
53、s4-8、發(fā)現(xiàn)相遇點則將起始節(jié)點到相遇節(jié)點和從目標節(jié)點到相遇節(jié)點的路徑連接起來形成完整路徑,如果open_s或者open_t為空,則表明無法找到路徑。
54、作為進一步的技術方案,所述s5包括如下步驟:
55、s5-1、持續(xù)監(jiān)測各控制器的cpu使用率、內(nèi)存的使用率、網(wǎng)絡的吞吐量、交換機控制消息的packet-in率、鏈路帶寬利用率、延遲率、丟包率指標,實時更新網(wǎng)絡拓撲圖的節(jié)點權重和邊權重,并重新計算多準則優(yōu)化目標函數(shù),根據(jù)實時反饋動態(tài)更新參數(shù)和權重。
56、發(fā)明的有益效果:
57、(1)綜合節(jié)點和鏈路的多因子權重,計算節(jié)點權重時不僅考慮傳統(tǒng)的距離和成本,引入了cpu使用率、內(nèi)存使用率、吞吐量和控制消息處理率等因素,使得權重更加符合實際運行狀態(tài),邊權重考慮延遲、丟包率等指標,提升了路徑選擇的準確性和網(wǎng)絡性能;
58、(2)引入多準則優(yōu)化目標函數(shù),結合網(wǎng)絡負載和鏈路利用率綜合考慮網(wǎng)絡負載情況,通過調(diào)整權重系數(shù),可以根據(jù)實際網(wǎng)絡狀況動態(tài)優(yōu)化節(jié)點負載均衡和鏈路利用率的優(yōu)先級;
59、(3)使用雙向搜索的astar算法,雙向搜索減少需要探索的節(jié)點數(shù)量,減少對于計算資源的消耗,降低了錯誤路徑的選擇可能性,且使用自適應的啟發(fā)函數(shù),結合當前節(jié)點到目標節(jié)點的預估成本和網(wǎng)絡的實時狀態(tài),而不僅僅依賴于靜態(tài)估計,路徑成本不僅考慮移動成本,還融入了實時的網(wǎng)絡狀態(tài)反饋,使得算法能夠適應網(wǎng)絡負載變化;
60、(5)實時監(jiān)控網(wǎng)絡狀態(tài)并基于監(jiān)測數(shù)據(jù)調(diào)整參數(shù),實現(xiàn)持續(xù)的網(wǎng)絡優(yōu)化,通過反饋機制不斷調(diào)整網(wǎng)絡策略,使得網(wǎng)絡的自適應性和穩(wěn)定性得到提高。