本發明屬于通信
技術領域:
,具體涉及一種sdn網絡的故障節點探測方法及其故障節點探測系統。
背景技術:
:在sdn網絡(softwaredefinednetwork,即軟件定義網絡)實現了數據轉發和控制分離,是一種數據控制分離、軟件可編程的網絡架構,其采用集中式的控制平面和分布式的轉發平面,控制平面和轉發平面相互分離,控制平面利用南向接口協議對轉發平面上的網絡設備進行集中式控制,并通過開放北向接口為網絡提供靈活的可編程能力。sdn網絡不可避免地存在節點故障失效的問題,目前sdn網絡技術比較新穎,關于sdn網絡的故障診斷,尤其是在虛擬私有云環境下的sdn網絡故障診斷的研究很少。如何進行sdn網絡的節點故障診斷,及時進行故障恢復,保證sdn網絡所承載業務的連貫性,是sdn網絡故障診斷需要解決的主要問題。技術實現要素:本發明所要解決的技術問題是針對現有技術中存在的上述不足,提供一種sdn網絡的故障節點探測方法及其故障節點探測系統,其能至少部分解決sdn網絡故障診斷的問題。解決本發明技術問題所采用的技術方案是該sdn網絡的故障節點探測方法,包括步驟:步驟1:在節點設置探針,并獲取所述探針所屬所述節點的狀態;步驟2:計算出所述探針所屬所述節點的影響因子;步驟3:根據每條所述探針所屬所述節點的狀態的探測結果、以及所述探針所屬所述節點的路徑,計算所述節點的故障概率;步驟4:找出所述節點的故障概率達到最大值時的條件;步驟5:輸出所有概率達到最大值的所述節點集合,即得到的故障節點集合。優選的是,在步驟1中:在網絡中部分所述節點設置所述探針,并通過所述探針所屬所述節點的狀態集合得到所述探針所經過的路徑的所述節點的狀態的稀疏矩陣。優選的是,在步驟2中,所述探針所屬所述節點的影響因子的計算公式為:if(v0)=αfin(v0)+βfout(v0)其中:v為網絡中某個特定的節點,fin(v0)為所述節點的內部影響因子,α為內部影響系數;fout(v0)為所述節點的外部影響因子,β為外部影響系數,sn為所述節點影響的業務數,li為所述節點對某一個業務的影響程度所量化的數值,k(v)為所述節點的內部屬性值。優選的是,步驟3中,所述節點的故障概率的計算公式為:p(v1,v2,…vi,...vn,t1,t2,...tj,...tm)=p(t1|pa(t1))p(t2|pa(t2))...p(tm|pa(tm))p(v1)p(v2)...p(vn)其中:p(v1,v2,...vi,...vn,t1,t2,...tj,...tm)為所有所述節點的條件概率,表征所述節點的故障對整個網絡帶來的影響;(pa(tj)表示所述探針tj經過的所有鏈路,當所述探針tj中有節點故障時,p(tj=1|pa(tj))=1,p(tj=0|pa(tj))=0,當所述探針tj無故障時,p(tj=1|pa(tj))=0,p(tj=0|pa(tj))=1;tj=1表示正常,tj=0表示故障;vi為第i個所述節點,tj為第j條所述探針,n為所述節點個數,m為所述探針條數(m<n)。優選的是,在計算出所述探針所屬所述節點的影響因子之后、計算所述節點的故障概率之前還包括步驟:根據所述稀疏矩陣,采用最大邊緣化矩陣算法獲得包括所有節點的狀態的完全矩陣。一種sdn網絡的故障節點探測系統,包括獲取單元、計算單元、定位單元和輸出單元,其中:所述獲取單元,用于獲取網絡中節點的狀態,并將所述節點的狀態傳輸至所述計算單元;所述計算單元,用于接收所述節點的狀態,計算網絡中所述節點的影響因子以及所述節點在路徑中有故障的概率;所述定位單元,用于根據所述計算單元中所述節點在路徑中有故障的概率,找出所述節點的故障概率達到最大值時的條件;所述輸出單元,用于輸出所有概率達到最大值的所述節點集合,即得到的故障節點集合。優選的是,在所述獲取單元中:在網絡中部分所述節點設置所述探針,并通過所述探針所屬所述節點的狀態集合得到所述探針所經過的路徑的所述節點的狀態的稀疏矩陣。優選的是,所述計算單元包括影響因子計算模塊,在所述影響因子計算模塊中,所述探針所屬所述節點的影響因子的計算公式為:if(v0)=αfin(v0)+βfout(v0)其中:v為網絡中某個特定的節點,fin(v0)為所述節點的內部影響因子,α為內部影響系數;fout(v0)為所述節點的外部影響因子,β為外部影響系數,sn為所述節點影響的業務數,li為所述節點對某一個業務的影響程度所量化的數值,k(v)為所述節點的內部屬性值。優選的是,所述計算單元包括節點概率計算模塊,在所述節點概率計算模塊中,所述節點的故障概率的計算公式為:p(v1,v2,…vi,...vn,t1,t2,...tj,...tm)=p(t1|pa(t1))p(t2|pa(t2))...p(tm|pa(tm))p(v1)p(v2)...p(vn)其中:p(v1,v2,...vi,...vn,t1,t2,...tj,...tm)為所有所述節點的條件概率,表征所述節點的故障對整個網絡帶來的影響;(pa(tj)表示所述探針tj經過的所有鏈路,當所述探針tj中有節點故障時,p(tj=1|pa(tj))=1,p(tj=0|pa(tj))=0,當所述探針tj無故障時,p(tj=1|pa(tj))=0,p(tj=0|pa(tj))=1;tj=1表示正常,tj=0表示故障;vi為第i個所述節點,tj為第j條所述探針,n為所述節點個數,m為所述探針條數(m<n)。優選的是,所述計算單元還包括補全模塊,所述補全模塊用于在計算出所述探針所屬所述節點的影響因子之后、計算所述節點的故障概率之前:根據所述稀疏矩陣,采用最大邊緣化矩陣算法獲得包括所有節點的狀態的完全矩陣。本發明的有益效果是:該sdn網絡的故障節點探測方法及其故障節點探測系統,利用貝葉斯網絡在sdn網絡中部署探針實現對故障節點探測,能有效解決當前sdn網絡中出現故障節點時,由于網絡的結構龐大,不易發現其故障點,并將故障點定位出來的問題。附圖說明圖1為本發明實施例中sdn網絡的故障節點探測方法的流程圖;圖2為本發明實施例中網元連接圖的示意圖;圖3為本發明實施例中mmmf算法原理的示意圖;圖4為本發明實施例中節點與探針間的關系的示意圖;圖5為本發明實施例中sdn網絡的故障節點探測系統的結構示意圖;1-獲取單元;2-計算單元;3-定位單元;4-輸出單元。具體實施方式為使本領域技術人員更好地理解本發明的技術方案,下面結合附圖和具體實施方式對本發明sdn網絡的故障節點探測方法及其故障節點探測系統作進一步詳細描述。本發明提出了一種sdn網絡中的故障節點的探測方法,其將傳統ip網中的探針技術引入到sdn網絡中,部署盡可能少的探針實現了對sdn網絡的狀態采集,然后使用貝葉斯網絡對網絡狀態進行分析,實現了sdn網絡的故障檢測。以下結合圖1所示的基于探針的故障節點定位算法的流程圖,說明基于影響因子的sdn網絡的故障節點探測方法:步驟1:在節點設置探針,并獲取探針所屬節點的狀態探測結果。在該步驟中,為了減少網絡的負載,首先向sdn網絡中發送少量的探針,在實際應用中,探針可以是部署到sdn網絡中各個節點上的一段程序,可以獲得節點的狀態信息;然后利用端到端的探針預測技術預測出剩下的探針的結果,隨機選出連接探針的設備節點。這里,無需對sdn網絡中的所有節點發送探針,探針部署過程中首先對sdn網絡中隨機部署一部分探針,然后采用端到端的預測技術探測出剩下的探針的部署位置。隨機選擇設備節點部署探針,其他節點與已經部署到的探針進行連接。該步驟通過探針的預測技術,發送多個探針,但并不完全發送至所有節點而只是發送其中極少的一部分節點,只要部署的探針能夠連接起來覆蓋所有的網絡設備即可,從而可以保證用少量的探針完成對sdn網絡的檢測。探針部署在節點上,通過已發送的探針集合a可以得到一個稀疏矩陣,稀疏矩陣中的每一個數值表示探針所經過的路徑是否正常。獲得的方式為:這個稀疏矩陣中元素所在的行對應于已發送的探針經過的路徑的起始節點,列對應于已發送的探針經過的路徑的終節點,從而形成探針之間的連接路徑,返回結果表示兩個節點之間連接的鏈路是否連通。若這個探針返回的結果為正常(表示探針所在兩節點之間相連接),則對應稀疏矩陣中元素的值為-1;若這個探針返回的結果為故障,則對應稀疏矩陣中元素的值為1;沒有發送的探針,則對應稀疏矩陣中元素的值為0,也就是說稀疏矩陣中的元素由1、0、-1組成。步驟2:計算出探針所屬節點的影響因子。探針所屬的節點在整個sdn網絡中存在一個對全網的影響因子。在該步驟中,利用公式(1)-公式(3)計算出每個節點的影響因子。對于sdn網絡來說,其業務走向更加固定,同時對于重要的業務遵循n-1原則,即每個重要業務都會有不止一條路徑,業務的重要程度可以用可選的路徑數量多少來表征,如圖2所示的網元連接圖是以網絡中的一小部分節點連接作為網絡模型。首先,在圖2中的網絡模型做業務定義:由于所設的模型規模較小,所以限制了業務的數量,現在規定在模型中共有5個業務,即s1-s5。sdn業務具有自身的特點和類型,為了區別這些業務的承載方式和內容,并將關注的重點具體化,便于進行基于承載業務資源的側面的分析,這里以對八個節點設置探針進行示例,將業務s1-s5用資源取交集的形式來表示,用戶數學公式描述如下:s1:x1∩x2∩x5s2:x3∩x2∩x6s3:x6∩x7∩x8s4:x4∩x6∩x7s5:x3∩x6∩x8接下來,分析業務的受影響度:由于業務走向固定,各種故障對業務的影響程度是不同的,為定量標注業務受影響程度,為業務影響報告提供影響程度的標準,結合實際運行中的可能情況,根據假設的問題模型,可得出業務受影響程度如表一所示:表一業務受影響度影響程度描述不受影響(l1)業務運行正常潛在影響(l2)業務可正常運行,但存在故障隱患性能受影響(l3)業務可運行,但服務質量較差嚴重影響(l4)業務無法運行節點是以x來表示,l作為影響程度標識,在計算過程中以v作為相應的變量,根據業務流程分析每一個節點故障對于業務的影響程度,結果如表二所示:表二節點影響度v1v2v3v4v5v6v7v8s1l4l3l1l2l4l2l1l1s2l2l3l4l2l2l4l1l1s3l1l1l1l1l1l4l3l4s4l1l2l1l4l2l3l4l1s5l2l2l4l2l2l3l3l4然后,計算節點的影響因子:在網元設備發生故障的情況下,可以用客觀的方法來度量sdn網絡設備對業務的影響。節點故障不僅會直接影響業務,還會間接的影響相關節點,利用復雜網絡理論,考慮節點的內部屬性和外部屬性,綜合來求節點的影響因子。在sdn網絡中,內部屬性為節點故障對于網絡拓撲中其他節點的影響,包括節點的度、介數、緊密度;外部屬性為節點故障對各個業務的綜合影響程度。通過量化這些指標,得到每個節點影響因子的數值。為了與內部屬性對應,首先量化外部屬性,對于每一個等級規定一個數值,如表三所示:表三節點故障對于業務的綜合影響程度l1l2l3l400.30.71表三中的影響程度等級數值只是示例,事實上應該可以任意定義為0-1之間的任何數值。節點故障影響值:其中:v為sdn網絡中某個特定的節點,sn為節點影響的業務數,li為節點對某一個業務的影響程度所量化的數值(即表三中的數值),根據sdn網絡的節點與業務的關系特征,節點故障綜合影響值即對于每一個業務影響的平均值,也是sdn網絡中一個節點的外部影響力。sdn網絡記為g,其中有節點v和節點之間的鏈路e,于是有g=(v,e)中,節點v0的影響因子定義如下:if(v0)=αfin(v0)+βfout(v0)(2)其中,fin(v0)為節點的內部影響因子,α為內部影響系數;fout(v0)為節點的外部影響因子,β為外部影響系數,且滿足α+β=1,其中,α、β兩個值可以根據實際情況和sdn網絡結構人為設定,二者相加等于1即可,內部影響較大則內部影響系數值高一點;外部影響較大,則外部影響系數值高一點,可以隨機設定而不做限定。例如本實施例中較多考慮的是節點對于外部業務帶來的影響,故外部影響因子的比重較大,將β取相對較大的值,較好的經驗取值為α=0.2,β=0.8。fout(v0)為外部影響因子,即為公式(1)計算得到的節點的故障影響值cd(v0),fin(v0)為內部影響因子,通過下述的公式(3)計算得到,由此可以根據公式(2)計算出節點影響因子if的數值。這里,其中:k(v0)為節點的內部屬性值,可取度數、介數、緊密度等節點自身屬性,由于在公式(2)的規定中α的值較小,所以具體選取哪一個內部屬性值對結果的影響并不大;max(k(v))為歸一化因子,為了消除網絡規模對數值的影響,使得指標統一在[0,1]區間內。步驟3:根據每條探針所屬節點的狀態的探測結果、以及探針所屬節點走過的路徑,計算節點的故障概率。探針部署到節點之后,可以互相連接,涉及多條鏈路。在該步驟中,輸入每條探針所屬所屬節點的狀態的探測結果,在上述節點的影響因子的基礎上,利用貝葉斯網絡模型,將節點的影響因子運用到概率公式中來定位網絡中出現故障的節點。即根據每條探針的探測結果、探針走過的路徑和節點的故障概率,分別計算在公式p(t1|pa(t1))p(t2|pa(t2))...p(tm|pa(tm))p(v1)p(v2)...p(vn)的數值。步驟4:找出步驟3中節點的故障概率達到最大值時的條件。在該步驟中,找出p(v1,v2,...vi,...vn,t1,t2,...tj,...tm)值在最大值時的條件,即網絡中某個特定的節點v的取值(為0或1),其中:0表示節點故障,1表示節點正常。mmmf算法即最大邊緣化矩陣算法(maximum-marginma-trixfactorization),如圖3所示為mmmf算法原理示意圖。其通過將原始矩陣分解為因式矩陣u和v,同時對目標函數進行優化;然后對因式矩陣u和v進行范式約束,最后使因式矩陣u和v相乘,從而得到預測矩陣y。mmmf算法應用于本實施例的sdn網絡的故障節點探測方法中時,根據探針的探測結果得到的稀疏矩陣(該矩陣是一個不完全矩陣)得到一個完全矩陣,該計算過程也就是將上述稀疏矩陣中所有元素為0的探針均預測出來,即預測路徑中未設置探針的節點的狀態。mmmf是一個同步學習特征向量v和系數向量u的過程,將原始矩陣y分解為低范數的矩陣。低秩約束實質上就是約束特征空間的維數,對y的每一列進行預測其實就是一個在低維空間上的預測任務。利用矩陣中元素之間的非獨立性計算出一個特征向量v和一個系數向量u,然后利用這兩個向量的乘積得到一個完全矩陣,而這個完全矩陣即為不完全矩陣的近似估計,以此來表示所有探針的探測情況。應該理解的是,部署的探針的狀態也不需要都探測并返回,只要返回路徑涉及到的探針的狀態即可。在預測出矩陣后即可利用貝葉斯網絡模型進行故障節點的定位。探針所探測到的信息,實際上是故障發生后經過各種實體相互作用的而產生的外在表現,所以此時網絡故障定位就體現出其不確定的特點。而貝葉斯網絡具有對不確定性條件環境下,對因果關系診斷的優勢。同時貝葉斯網采用圖的形式去表達變量的聯合概率分布及其條件獨立性,能夠將貝葉斯網絡模型與sdn網絡中的節點和探測聯系起來,形成一個二層直接有向圖。如圖4所示為節點與探針間的關系,其中網絡中的設備節點視為父節點,探針視為子節點,探針的結果依賴于其父節點的結果,當且僅當其所有的父節點正確時該探針的狀態才為正確,通過計算每個節點的故障概率可以定位路徑中最有可能出現故障的節點。根據待定位的參數(包括所有網絡節點的先驗概率及所有探針的結果)計算所有網絡節點的條件概率,即計算p(v1,v2,...vi,...vn,t1,t2,...tj,...tm)的概率,其中vi為第i個網絡節點,tj為第j條探針,n為網絡節點個數,m為探針條數(m<n)。p(v1,v2,...vi,...vn,t1,t2,...tj,...tm)的計算公式為:p(v1,v2,…vi,...vn,t1,t2,...tj,...tm)=p(t1|pa(t1))p(t2|pa(t2))...p(tm|pa(tm))p(v1)p(v2)...p(vn)其中:(1)p(v1,v2,...vi,...vn,t1,t2,...tj,...tm)為所有節點的條件概率,表征節點故障對整個網絡帶來的影響;(2)pa(tj)表示探針tj經過的所有鏈路,當探針tj中有節點故障時,p(tj=1|pa(tj))=1,p(tj=0|pa(tj))=0,無故障的時候p(tj=1|pa(tj))=0,p(tj=0|pa(tj))=1;tj=1表示正常,tj=0表示故障。(3)先驗概率是根據以往經驗和分析得到的網絡節點出故障的概率,為一個估計值,不同sdn網絡系統中的取值不一樣。在本實施例的模型中,節點出故障的先驗概率值為0.1,節點無故障時的先驗概率值p(xi)=0.9,因此,有故障時節點的故障概率為p(xi)=0.1*if(xi),即考慮節點的失效概率與影響因子的乘積,因為貝葉斯網絡的特性,所以采用先驗概率*影響因子的方法,得到的即時后驗概率,更能準確定位故障節點。這里,失效概率即為先驗概率,故障概率即為后驗概率=先驗概率*影響因子。(4)利用公式p(v1,v2,…,vn,t1,t2,...,tm)=p(vx)...p(vy)*0.9n-k,其中k是網絡中出現的節點的故障數,vx...vy是故障節點,p(vx)...p(vy)對應相應節點的故障概率,針對上述的節點,k為從0-8的數,取k從0-8的不同取值,可以算出不同的p(v1,v2,...vi,...vn,t1,t2,...tj,...tm),算出來所有情況下的值,取其最大時的條件,判斷出v的取值。同理,把未設置探針的可能存在故障的節點也預測出來,即v=0的故障節點的個數,然后計算在每個節點v=0和v=1情況下的概率。計算出所有情況下的p(v1,v2,...vi,...vn,t1,t2,...tj,...tm)值后,得到p(v1,v2,...vi,...vn,t1,t2,...tj,...tm)值在最大值時的條件,即v的取值(為0或1)。這里應該理解的是,為保證計算效率,本實施例以僅計算探針涉及到的節點的影響因子為例,此時理論上效率應該是最高的。但是,并不排除將所有節點的影響因子都計算出來的方式,這里不做限定。步驟5:輸出所有v=0的節點集合,即為計算得到的故障節點集合。由于網絡中節點故障會導致業務路徑中斷,采用探針收集節點信息,然后利用貝葉斯網絡計算出故障概率。在該步驟中,所有v=0的節點集合即為故障節點集合。相應的,本實施例還提供一種sdn網絡的故障節點探測系統,如圖5所示,其包括獲取單元1、計算單元2、定位單元3和輸出單元4,其中:獲取單元1,用于獲取網絡中節點的狀態,并將節點的狀態傳輸至計算單元2;計算單元2,用于接收節點的狀態,計算網絡中節點的影響因子以及節點在路徑中有故障的概率;定位單元3,用于根據計算單元2中節點在路徑中有故障的概率,找出節點的故障概率達到最大值時的條件;輸出單元4,用于輸出所有概率達到最大值的節點集合,即得到的故障節點集合。該sdn網絡的故障節點探測系統中,獲取單元1、計算單元2、定位單元3分別對應sdn網絡的故障節點探測方法中的探針信息的獲取、探針獲取的信息的計算、故障節點的定位三個步驟。獲取單元1以多個探針的形式出現,通過在sdn網絡中的多個節點部署探針,用來獲取網絡中節點的狀態,同時將獲取到的信息傳送給計算單元2。在獲取單元1中:在網絡中部分節點設置探針,并通過探針所屬節點的狀態集合得到探針所經過的路徑的節點的狀態的稀疏矩陣。計算單元2將探針獲取到的信息進行計算,計算出網絡中的節點影響因子,以及節點在路徑中發生故障的概率。計算單元2包括影響因子計算模塊,在影響因子計算模塊中,探針所屬節點的影響因子的計算公式為:if(v0)=αfin(v0)+βfout(v0)其中:v為網絡中某個特定的節點,fin(v0)為節點的內部影響因子,α為內部影響系數;fout(v0)為節點的外部影響因子,β為外部影響系數,sn為節點影響的業務數,li為節點對某一個業務的影響程度所量化的數值,k(v)為節點的內部屬性值。計算單元2包括節點概率計算模塊,在節點概率計算模塊中,節點的故障概率的計算公式為:p(v1,v2,…vi,...vn,t1,t2,...tj,...tm)=p(t1|pa(t1))p(t2|pa(t2))...p(tm|pa(tm))p(v1)p(v2)...p(vn)其中:p(v1,v2,...vi,...vn,t1,t2,...tj,...tm)為所有節點的條件概率,表征節點的故障對整個網絡帶來的影響;(pa(tj)表示探針tj經過的所有鏈路,當探針tj中有節點故障時,p(tj=1|pa(tj))=1,p(tj=0|pa(tj))=0,當探針tj無故障時,p(tj=1|pa(tj))=0,p(tj=0|pa(tj))=1;tj=1表示正常,tj=0表示故障;vi為第i個節點,tj為第j條探針,n為節點個數,m為探針條數(m<n)。優選的是,計算單元2還包括補全模塊,補全模塊用于在計算出探針所屬節點的影響因子之后、計算節點的故障概率之前:根據稀疏矩陣,采用最大邊緣化矩陣算法獲得包括所有節點的狀態的完全矩陣。本發明提供了一種sdn網絡的故障探測方法及其相應的sdn網絡的故障探測系統,其采用貝葉斯網絡來進行sdn網絡的故障探測:通過在網絡中部署探針實現了節點狀態的采集,同時將狀態數據輸入貝葉斯網絡計算出業務故障狀態下的節點故障概率,利用先驗概率*影響因子得到即時后驗概率,實現了對sdn網絡中故障節點的預測和定位。可以理解的是,以上實施方式僅僅是為了說明本發明的原理而采用的示例性實施方式,然而本發明并不局限于此。對于本領域內的普通技術人員而言,在不脫離本發明的精神和實質的情況下,可以做出各種變型和改進,這些變型和改進也視為本發明的保護范圍。當前第1頁12