本發(fā)明涉及一種網(wǎng)絡(luò)檢測方法,具體而言,涉及一種基于軟件定義網(wǎng)絡(luò)(Software Defined Network,SDN)之網(wǎng)絡(luò)檢測方法與使用所述網(wǎng)絡(luò)檢測方法的控制器。
背景技術(shù):
軟件定義網(wǎng)絡(luò)(Software-Defined Networking,SDN)是一種新型態(tài)的網(wǎng)絡(luò)架構(gòu),其核心技術(shù)開放流(Open Flow)通過將網(wǎng)絡(luò)設(shè)備的控制層與數(shù)據(jù)層分開,從而實現(xiàn)了網(wǎng)絡(luò)流量的彈性控制。
既有的網(wǎng)絡(luò)架構(gòu)在轉(zhuǎn)移至軟件定義網(wǎng)絡(luò)(SDN)架構(gòu)的過程中,以軟件定義網(wǎng)絡(luò)(SDN)為基礎(chǔ)的網(wǎng)絡(luò)設(shè)備與傳統(tǒng)網(wǎng)絡(luò)設(shè)備將并存一段時間。
在傳統(tǒng)網(wǎng)絡(luò)與SDN網(wǎng)絡(luò)并存的混合網(wǎng)絡(luò)架構(gòu)下,當要對網(wǎng)絡(luò)或網(wǎng)絡(luò)設(shè)備進行網(wǎng)絡(luò)診斷(Network Diagnostics)時,需由SDN控制器(Controller)主動向網(wǎng)絡(luò)內(nèi)的交換器(Switch)提出檢查要求。然而,若檢查頻率太高,將造成網(wǎng)絡(luò)或網(wǎng)絡(luò)設(shè)備的負載過重,例如,SDN控制器需頻繁的發(fā)出KeepAlive封包。若檢查頻率太低,則SDN控制器無法實時發(fā)現(xiàn)問題。
此外,欲取得網(wǎng)絡(luò)狀態(tài)的信息(例如,帶寬信息),SDN控制器需要額外的封包(例如,pathChirp)來進行偵測。因此,SDN控制器管理的交換器設(shè)備愈多,則負載會愈重。
因此,需要一種改良的網(wǎng)絡(luò)檢測方法來取得網(wǎng)絡(luò)診斷信息。
技術(shù)實現(xiàn)要素:
有鑒于此,本發(fā)明目的是提供一種基于軟件定義網(wǎng)絡(luò)(SDN)之網(wǎng)絡(luò)檢測方法,利用OpenFlow技術(shù)標準協(xié)議(例如,ONF-OFPI),并透過特定的算法取得網(wǎng)絡(luò)健康信息。
本發(fā)明目的還提供一種使用所述SDN網(wǎng)絡(luò)檢測方法的控制器,所述SDN控 制器可以運作在混合的網(wǎng)絡(luò)架構(gòu)下,在網(wǎng)絡(luò)診斷的同時一并取得網(wǎng)絡(luò)狀態(tài)信息,與既有方式相比,大幅減少封包傳輸量并降低SDN控制器的負載。
本發(fā)明實施方式提供一種網(wǎng)絡(luò)檢測方法,應(yīng)用于控制器,所述方法包括:將網(wǎng)絡(luò)拓樸中的多個網(wǎng)絡(luò)裝置串連起來以形成多個走訪邊;量化所述走訪邊的網(wǎng)絡(luò)數(shù)據(jù)以得到對應(yīng)所述走訪邊的多個健康分數(shù);轉(zhuǎn)換所述健康分數(shù)以得到對應(yīng)所述走訪邊之多個檢查頻率層級;選擇所述網(wǎng)絡(luò)裝置中走訪邊最多之第一網(wǎng)絡(luò)裝置做為起始節(jié)點,并且根據(jù)算法建立所述網(wǎng)絡(luò)拓撲之多條走訪路線,其包括至少第一走訪路線,其中所述第一走訪路線包括所述網(wǎng)絡(luò)裝置中的多個第一網(wǎng)絡(luò)裝置與所述走訪邊中的多個第一走訪邊;根據(jù)所述第一走訪邊的檢查頻率層級計算所述第一走訪路線的走訪頻率;利用帶寬估測算法推導(dǎo)出使用于所述第一走訪路線的策略流并將所述策略流應(yīng)用于所述第一網(wǎng)絡(luò)裝置上;發(fā)出探測封包并在所述第一走訪路線上傳送,所述第一網(wǎng)絡(luò)裝置在所述探測封包中打上時戳,并由所述第一走訪路線之最后第一網(wǎng)絡(luò)裝置回傳探測封包給所述控制器;以及經(jīng)由所述控制器收集從所述第一走訪路線回傳之所述探測封包并進行分析,以得到所述第一走訪路線之網(wǎng)絡(luò)鏈路的健康信息以進行網(wǎng)絡(luò)數(shù)據(jù)更新。
優(yōu)選地,在本發(fā)明實施方式之網(wǎng)絡(luò)檢測方法中,建立所述走訪路線更包括:選擇走訪邊最多之第二網(wǎng)絡(luò)裝置;選擇所述第二網(wǎng)絡(luò)裝置中小于特定值之檢查頻率層級之第二走訪邊為起始走訪邊并移動至第三網(wǎng)絡(luò)裝置,其中,將所述第二走訪邊加入以形成第二走訪路線;判斷所述第三網(wǎng)絡(luò)裝置是否包含走訪邊;若所述第三網(wǎng)絡(luò)裝置包含走訪邊,接著判斷所述第二走訪路線的總長度是否小于等于第一默認值;若所述第二走訪路線的總長度小于等于所述第一默認值,則計算所述第三網(wǎng)絡(luò)裝置包含之每一個未使用到之走訪邊的檢查頻率層級,以及計算所述每一未使用到之走訪邊的檢查頻率層級與所述第三網(wǎng)絡(luò)裝置到前一個網(wǎng)絡(luò)裝置之走訪邊的檢查頻率層級間的差值;判斷所述第三網(wǎng)絡(luò)裝置是否有檢查頻率層級之差值小于等于第二默認值的走訪邊;若有檢查頻率層級之差值小于等于所述第二默認值之第三走訪邊,則將所述第三走訪邊加入所述第二走訪路線并移至第四網(wǎng)絡(luò)裝置;以及重復(fù)上述步驟,直到?jīng)]有檢查頻率層級之差值小于等于所述第二默認值的走訪邊或是所述第二走訪路線的總長度大于所述第一默認值為止,并且輸出所述第二走訪路線。
本發(fā)明又一實施方式提供一種控制器,包括轉(zhuǎn)換模塊、圖形模塊、布署模 塊以及分析模塊。所述轉(zhuǎn)換模塊用以將網(wǎng)絡(luò)拓樸中的多個網(wǎng)絡(luò)裝置串連起來以形成多個走訪邊,量化所述走訪邊的網(wǎng)絡(luò)數(shù)據(jù)以得到對應(yīng)所述走訪邊的多個健康分數(shù),以及轉(zhuǎn)換所述健康分數(shù)以得到對應(yīng)所述走訪邊之多個檢查頻率層級;所述圖形模塊用以選擇所述網(wǎng)絡(luò)裝置中走訪邊最多之第一網(wǎng)絡(luò)裝置做為起始節(jié)點,并且根據(jù)算法建立所述網(wǎng)絡(luò)拓撲之多條走訪路線,其包括至少第一走訪路線,其中所述第一走訪路線包括所述網(wǎng)絡(luò)裝置中的多個第一網(wǎng)絡(luò)裝置與所述走訪邊中的多個第一走訪邊,以及根據(jù)所述第一走訪邊的檢查頻率層級計算所述第一走訪路線的走訪頻率;所述布署模塊用以利用帶寬估測算法推導(dǎo)出使用于所述第一走訪路線的策略流并將所述策略流應(yīng)用于所述第一網(wǎng)絡(luò)裝置上;以及所述分析模塊用以發(fā)出探測封包并在所述第一走訪路線上傳送,所述第一網(wǎng)絡(luò)裝置在所述探測封包中打上時戳,并由所述第一走訪路線之最后第一網(wǎng)絡(luò)裝置回傳探測封包給所述控制器,以及經(jīng)由所述控制器收集從所述第一走訪路線回傳之所述探測封包并進行分析,以得到所述第一走訪路線之網(wǎng)絡(luò)鏈路的健康信息以進行網(wǎng)絡(luò)數(shù)據(jù)更新。
優(yōu)選地,在本發(fā)明實施方式之控制器中,所述圖形模塊選擇走訪邊最多之第二網(wǎng)絡(luò)裝置,選擇所述第二網(wǎng)絡(luò)裝置中小于特定值之檢查頻率層級之第二走訪邊為起始走訪邊并移動至第三網(wǎng)絡(luò)裝置,其中,將所述第二走訪邊加入以形成第二走訪路線,判斷所述第三網(wǎng)絡(luò)裝置是否包含走訪邊,若所述第三網(wǎng)絡(luò)裝置包含走訪邊,接著判斷所述第二走訪路線的總長度是否小于等于第一默認值,若所述第二走訪路線的總長度小于等于所述第一默認值,則計算所述第三網(wǎng)絡(luò)裝置包含之每一個未使用到之走訪邊的檢查頻率層級,以及計算所述每一個未使用到之走訪邊的檢查頻率層級與所述第三網(wǎng)絡(luò)裝置到前一個網(wǎng)絡(luò)裝置之走訪邊的檢查頻率層級間的差值,判斷所述第三網(wǎng)絡(luò)裝置是否有檢查頻率層級之差值小于等于第二默認值的走訪邊,若有檢查頻率層級之差值小于等于所述第二默認值之第三走訪邊,則將所述第三走訪邊加入所述第二走訪路線并移至第四網(wǎng)絡(luò)裝置,以及,重復(fù)上述步驟,直到?jīng)]有檢查頻率層級之差值小于等于所述第二默認值的走訪邊或是所述第二走訪路線的總長度大于所述第一默認值為止,并且輸出所述第二走訪路線。
本發(fā)明實施方式之SDN網(wǎng)絡(luò)檢測方法利用既有的OpenFlow技術(shù)標準協(xié)議,并透過獨特的計算流程取得網(wǎng)絡(luò)健康信息。本發(fā)明實施方式之SDN網(wǎng)絡(luò)檢測方 法可以運作在混合的網(wǎng)絡(luò)架構(gòu)下,在網(wǎng)絡(luò)診斷的同時一并取得網(wǎng)絡(luò)狀態(tài)信息,與既有方式相比,大幅減少封包傳輸量并降低SDN控制器的負載。
以下結(jié)合附圖和具體實施例對本發(fā)明進行詳細描述,但不作為對本發(fā)明的限定。
附圖說明
圖1是本發(fā)明實施方式之網(wǎng)絡(luò)檢測系統(tǒng)100的架構(gòu)圖。
圖2是本發(fā)明實施方式之SDN控制器110的功能方塊圖。
圖3是本發(fā)明實施方式之SDN網(wǎng)絡(luò)檢測方法的步驟流程圖。
圖4是本發(fā)明實施方式之走訪邊的檢查頻率層級的示意圖。
圖5是本發(fā)明實施方式之走訪路線建立方法的步驟流程圖。
圖6A~6F是本發(fā)明實施方式之走訪路線建立方法建立走訪路線的流程圖。
圖7A~7D是利用本發(fā)明實施方式之網(wǎng)絡(luò)檢測方法建立的走訪路線。
圖8是本發(fā)明實施方式之布署模塊260的實施流程圖。
圖9A是健康值與對應(yīng)的檢查頻率層級的示意圖。
圖9B是檢查頻率層級與走訪頻率的關(guān)系的示意圖。
主要元件符號說明
控制設(shè)備 10
網(wǎng)絡(luò)檢測系統(tǒng) 100
控制器 110
網(wǎng)絡(luò)裝置 122、124、126
轉(zhuǎn)換模塊 220
圖形模塊 240
布署模塊 260
分析模塊 280
節(jié)點 N10、N12、N14、N16、N18、N20、N22、N24、N26
起始節(jié)點 R
第一走訪路線 710
第二走訪路線 720
第三走訪路線 730
第四走訪路線 740
交換器 802、804、806、808、810
如下具體實施方式將結(jié)合上述附圖進一步說明本發(fā)明。
具體實施方式
圖1是本發(fā)明實施方式之網(wǎng)絡(luò)檢測系統(tǒng)100的架構(gòu)圖,所述網(wǎng)絡(luò)檢測系統(tǒng)100包括至少一個基于軟件定義網(wǎng)絡(luò)(SDN)之控制器110與網(wǎng)絡(luò)裝置122、124與126。
本發(fā)明實施方式之控制器110使用SDN的網(wǎng)絡(luò)檢測方法,藉由Snake算法建立網(wǎng)絡(luò)拓樸內(nèi)之網(wǎng)絡(luò)裝置122、124與126的走訪路線(Snake Path),再依檢查頻率層級(Check Frequency Level,CFL)計算每一條走訪路線的走訪頻率。此外,SDN控制器110發(fā)出探測(Probe)封包且在每條走訪路線上傳送探測封包,然后根據(jù)收集到之每條走訪路線的探測封包分析每一條走訪路線之網(wǎng)絡(luò)鏈路的剩余帶寬和診斷信息。
在本發(fā)明實施方式中,網(wǎng)絡(luò)拓樸中的節(jié)點表示為,例如,交換器,或者為其它網(wǎng)絡(luò)裝置,但不以此為限。
圖2是本發(fā)明實施方式之SDN控制器110的功能方塊圖。SDN控制器110包括轉(zhuǎn)換模塊220、圖形模塊240、布署模塊260與分析模塊280。
轉(zhuǎn)換模塊220將圖1所示的網(wǎng)絡(luò)拓樸中的節(jié)點(例如,交換器)串連起來以形成多條走訪邊(Snake Edges),根據(jù)多個因子將每一條走訪邊的網(wǎng)絡(luò)數(shù)據(jù)量化成健康分數(shù),并且轉(zhuǎn)換健康分數(shù)以得到每一條走訪邊的檢查頻率層級。
圖形模塊240利用Snake算法并根據(jù)檢查頻率層級將多個節(jié)點與走訪邊串聯(lián)成多條走訪路線(Snake Path),再依每條走訪路線上的檢查頻率層級來計算每一條走訪路線的走訪頻率。
布署模塊260根據(jù)開放流(Openflow)協(xié)議,將走訪路線與走訪頻率轉(zhuǎn)譯成SDN策略流(Policy Flow),并且實施至每一個節(jié)點(例如,交換器)。
分析模塊280根據(jù)封包流與改良之pathChirp帶寬估測方法,實時動態(tài)偵測所有走訪路線的健康狀態(tài)與可用帶寬。
圖3是本發(fā)明實施方式之SDN網(wǎng)絡(luò)檢測方法的步驟流程圖。
步驟S302,轉(zhuǎn)換模塊220將網(wǎng)絡(luò)拓樸中的節(jié)點(例如,交換器)串連起來以形成多條走訪邊。
步驟S304,轉(zhuǎn)換模塊220根據(jù)多個因子將每一條走訪邊的網(wǎng)絡(luò)數(shù)據(jù)量化成健康分數(shù)。所述因子至少包括關(guān)鍵路徑(Critical Path)、可靠度(Reliability)、失敗率(Failure Rate)、可用帶寬(Available Bandwidth)與延遲(Latency),但不以此為限。
步驟S306,轉(zhuǎn)換模塊220轉(zhuǎn)換上述健康分數(shù)以得到每一條走訪邊的檢查頻率層級(Check Frequency Level,CFL),如圖4所示。
若某一條走訪邊為關(guān)鍵路徑,則將其健康值設(shè)為1(Health Value=1)。若所述走訪邊非為關(guān)鍵路徑,則使用其他因子計算所屬檢查頻率層級,計算公式為:
Health Value=Reliability*α+(Failure Rate)*β+(Available Bandwidth)*γ+Latency*δ,其中α+β+γ+δ=1,α、β、γ與δ的值可動態(tài)調(diào)整,圖9A表示健康值與對應(yīng)的檢查頻率層級。
步驟S308,圖形模塊240選擇走訪邊(Snake Edge)最多的節(jié)點(例如,節(jié)點N10)做為起始節(jié)點(Root),例如,節(jié)點N10,并且根據(jù)Snake算法建立所述網(wǎng)絡(luò)拓撲中的所有走訪路線。
圖5是本發(fā)明實施方式之走訪路線建立方法的步驟流程圖,所述流程由圖形模塊240來實施。
步驟S502,選擇走訪邊最多的節(jié)點(例如,節(jié)點N10)做為起始節(jié)點。
步驟S504,選擇檢查頻率層級最低的走訪邊為起始走訪邊并移動至下一個節(jié)點,例如,選擇節(jié)點N10往節(jié)點N12的走訪邊(CFLa=1),如圖6A所示。此時,當前節(jié)點由節(jié)點N10變?yōu)楣?jié)點N12,且走訪路線的總長度為1。
步驟S506,判斷當前節(jié)點(例如,節(jié)點N12)是否包含走訪邊。
步驟S508,若當前節(jié)點(例如,節(jié)點N12)包含走訪邊,接著判斷當前走訪路線的總長度是否小于等于一第一默認值(例如,14)(Esnake≦14)。
步驟S510,若當前走訪路線的總長度小于等于14,則計算當前節(jié)點(例如,節(jié)點N12)包含之每一個未使用到之走訪邊的檢查頻率層級,以及計算每一個未使用到之走訪邊的檢查頻率層級與當前節(jié)點(例如,節(jié)點N12)到前一個節(jié)點(例如,節(jié)點N10)之走訪邊的檢查頻率層級間的差值。
如圖6B所示,以節(jié)點N12為例,其包括2條未使用到的走訪邊b與c,其中,CFLb=1,CFLc=3。節(jié)點N12的走訪邊b與c與節(jié)點N10的走訪邊a之間的差值分別 表示如下:
|CFLa–CFLb|=|1–1|=0;
|CFLa–CFLc|=|1–3|=2。
步驟S512,判斷是否有檢查頻率層級之差值小于等于第二默認值(例如,1)的走訪邊(|CFLmax–CFLnext|≦1)。
步驟S514,若有檢查頻率層級之差值小于等于1的走訪邊,例如,圖6B之走訪邊b,則將走訪邊b加入當前走訪路線并移至下一個節(jié)點。此時,當前節(jié)點由節(jié)點N12變?yōu)楣?jié)點N14,且當前走訪路線的總長度為2。
接著,流程回到步驟S506,重復(fù)步驟S506~S514,直到?jīng)]有檢查頻率層級之差值小于等于1的走訪邊或是當前走訪路線的總長度大于14為止(Esnake>14or|CFLmax–CFLnext|>1),如圖6C~6E所示。
需注意到,若有1條以上之檢查頻率層級的差值大于1的走訪邊,則隨機選擇其中1條走訪邊。
步驟S516,若當前節(jié)點(例如,節(jié)點N16)未包含走訪邊,則執(zhí)行回溯機制以找到新的節(jié)點。如圖6F中的虛線箭頭所示,執(zhí)行回溯機制后找到節(jié)點N20。此時,當前節(jié)點由節(jié)點N16變?yōu)楣?jié)點N20。
步驟S518,判斷當前節(jié)點(例如,節(jié)點N20)是否包含走訪邊。
若當前節(jié)點(例如,節(jié)點N20)包含走訪邊,則回到步驟S504,以當前節(jié)點為起始節(jié)點,重復(fù)執(zhí)行前述步驟以建立另一條新的走訪路線。反之,若當前節(jié)點(例如,節(jié)點N20)未包含走訪邊,則結(jié)束本方法流程。
步驟S520,若當前走訪路線的總長度大于14,表示當前走訪路線己建立完成,并且輸出所述當前走訪路線。接著,回到步驟S504,以當前節(jié)點為起始節(jié)點,重復(fù)執(zhí)行前述步驟以建立另一條新的走訪路線。
響應(yīng)步驟S512,若沒有檢查頻率層級之差值小于等于1的走訪邊,則輸出所述當前走訪路線(步驟S520)。
以圖4的網(wǎng)絡(luò)拓樸為例,當執(zhí)行完圖5的方法流程時,即可建立4條走訪路線,包括第一走訪路線710、第二走訪路線720、第三走訪路線730與第四走訪路線740,分別如圖7A~7D所示。
步驟S310,圖形模塊240根據(jù)檢查頻率層級計算每條走訪路線的走訪頻率。
走訪頻率表示檢測每一條走訪路線的時間間隔,其系基于走訪路線中最低 的檢查頻率層級來決定。檢查頻率層級與走訪頻率的關(guān)系如圖9B所示。
其中,時間T與時間Δ皆為可調(diào)整參數(shù),例如,T與Δ都預(yù)設(shè)為10秒。
與傳統(tǒng)或SDN網(wǎng)絡(luò)下的一般健康診斷機制相比,本發(fā)明實施方式的網(wǎng)絡(luò)檢測方法經(jīng)由走訪整個拓樸網(wǎng)絡(luò)內(nèi)之多條走訪路線,可明顯改善網(wǎng)絡(luò)效能。
步驟S312,布署模塊260根據(jù)OpenFlow標準協(xié)議,根據(jù)所建立的走訪路線與pathChirp算法,推導(dǎo)出策略流并執(zhí)行于標準的OpenFlow節(jié)點(例如,交換器)上。
步驟S314,SDN控制器110中的布署模塊260發(fā)出探測封包并在每條走訪路線上傳送,走訪路線上的交換器在每個探測封包中打上時戳(Timestamp),并由每條走訪路線的最后一個節(jié)點回傳探測封包至SDN控制器110的分析模塊280。
步驟S316,SDN控制器110中的分析模塊280收集從每條走訪路線回傳的探測封包并進行分析,以得到每一網(wǎng)絡(luò)鏈路的剩余帶寬和網(wǎng)絡(luò)等待時間、質(zhì)量等健康信息,并將健康信息回饋給SDN控制器110中的轉(zhuǎn)換模塊220,更新網(wǎng)絡(luò)拓樸的健康量化分數(shù)。
圖8是本發(fā)明實施方式之布署模塊260的實施流程圖。
SDN控制器110中的布署模塊260發(fā)出探測封包給走訪路線上的第一臺交換器802((1))。當所述探測封包到達交換器802時,交換器802根據(jù)SDN策略進行分析并于所述探測封包加上表示封包走訪時間的時戳,并將所述探測封包依據(jù)制定的SDN流轉(zhuǎn)送至走訪路線上的交換器804((2))。當所述探測封包到達走訪路線上的交換器810時((3)與(4)),交換器810于所述探測封包加上表示封包走訪時間的時戳,然后將所述探測封包回傳至SDN控制器110((5))。
本發(fā)明實施方式之基于軟件定義網(wǎng)絡(luò)(SDN)之網(wǎng)絡(luò)檢測方法利用已知的開放流(OpenFlow)技術(shù)標準協(xié)議(例如,ONF-OFPI),并透過獨特的計算流程取得網(wǎng)絡(luò)健康信息。所述發(fā)明方法將整個拓樸的節(jié)點路徑串成數(shù)條走訪路線,使得回傳的健康信息封包變少,即大幅減少封包傳輸量,故可降低SDN控制器的負擔。同時,透過pathChirp估測方法計算每一條走訪路線的可用帶寬,可有效減少計算帶寬的封包。
需要說明的是,上文所述實施方式,并不構(gòu)成對發(fā)明保護范圍的限定。任何在本發(fā)明的精神和原則內(nèi)所作的修改,等同替換和改進等,均應(yīng)包含在本發(fā) 明的保護范圍內(nèi)。