本發(fā)明涉及通信領(lǐng)域,具體而言,涉及軟件定義網(wǎng)絡(luò)(Software Defined Network,SDN)與傳統(tǒng)網(wǎng)絡(luò)混合環(huán)境中控制設(shè)備及其在SDN混合網(wǎng)絡(luò)下規(guī)劃傳輸路徑的方法。
背景技術(shù):
軟件定義網(wǎng)絡(luò)是一種新型網(wǎng)絡(luò)創(chuàng)新架構(gòu),其核心技術(shù)開放流(Open Flow)通過將網(wǎng)絡(luò)設(shè)備控制面與數(shù)據(jù)面分離開來,通過SDN控制設(shè)備對整個網(wǎng)絡(luò)中的設(shè)備進行管理與調(diào)度,包括鏈路發(fā)現(xiàn)、拓撲管理、策略制定以及流表項下發(fā)等待,從而實現(xiàn)了網(wǎng)絡(luò)流量的靈活控制。
網(wǎng)絡(luò)中經(jīng)常存在同一網(wǎng)絡(luò)流量由同一來源到多個目的地的情況,例如,同一份數(shù)據(jù)備份到多個服務(wù)器,同一個多媒體流共享至多個客戶端等等,在數(shù)據(jù)報的傳輸過程中,就會出現(xiàn)同一數(shù)據(jù)報在某一段相同傳輸路徑上分別被多次傳輸?shù)那闆r,容易造成網(wǎng)絡(luò)資源的浪費和占用。而在目前的SDN混合網(wǎng)絡(luò)中,數(shù)據(jù)報在各個SDN交換機之間傳輸時,經(jīng)常都是通過隧道進行傳輸,如此一來,因為隧道間的傳統(tǒng)路由被虛擬化,更無法知道是否同一數(shù)據(jù)報在不同隧道間傳輸時經(jīng)過了相同的傳輸路徑,因此有必要尋找一種新的傳輸路徑規(guī)劃的方法,能夠?qū)ふ液线mSDN的作為匯聚點,統(tǒng)一接收來自源點的數(shù)據(jù)報后再轉(zhuǎn)發(fā)至各個目的地,以較少網(wǎng)絡(luò)流量的重復(fù)傳輸。
技術(shù)實現(xiàn)要素:
有鑒于此,本發(fā)明的目的是提供一種控制器及其在SDN混合網(wǎng)絡(luò)下選擇傳輸路徑的方法,可以在多目的傳輸時,依網(wǎng)絡(luò)拓撲規(guī)劃傳輸路徑,尋找合適的SDN交換機作為匯聚點進行數(shù)據(jù)的復(fù)制和轉(zhuǎn)發(fā),生成對應(yīng)的轉(zhuǎn)發(fā)規(guī)則并下發(fā)給至對應(yīng)的SDN交換機,從而使減少了同一數(shù)據(jù)在相同傳輸路徑上的多次傳輸,避免了網(wǎng)絡(luò)資源的浪費。
本發(fā)明實施方式中提供的控制設(shè)備,應(yīng)用于軟件定義網(wǎng)絡(luò)和傳統(tǒng)網(wǎng)絡(luò)并存的混合網(wǎng)絡(luò)中實現(xiàn)傳輸路徑的規(guī)劃,所述混合網(wǎng)絡(luò)內(nèi)有多個交換機,控制設(shè)備包括查詢模塊、分析模塊和路徑規(guī)劃模塊。查詢模塊用于向各個所述交換機發(fā)送查詢信息以偵測和探查不同交換機之間的網(wǎng)絡(luò)信息,建立各個所述交換機的網(wǎng)絡(luò)信息表;分析模塊用于分析所述網(wǎng)絡(luò)信息表并建立轉(zhuǎn)播參考表,所述轉(zhuǎn)播參考表中記錄了從每個所述交換機到其他各個所述交換機的傳送點狀態(tài),所述傳送點狀態(tài)包括第一備選傳送點或必要傳送點或無備選傳送點;路徑規(guī)劃模塊用于當(dāng)需要進行數(shù)據(jù)報的一對多傳送時,依據(jù)所述轉(zhuǎn)播參考表中所述傳送點的狀態(tài)最終傳輸路徑并找出匯聚點,在所述匯聚點處,所述控制設(shè)備指示所述交換機對所述數(shù)據(jù)報進行多次復(fù)制并轉(zhuǎn)發(fā);其中,所述最終傳輸路徑為至少兩條或兩條以上路徑的路徑組合,所述匯聚點是指在所述最終傳輸路徑中出現(xiàn)兩次或兩次以上的所述交換機。
優(yōu)選地,建立轉(zhuǎn)播參考表包括:依次以每個所述交換機為源點,尋找所述源點到其他各個所述交換機的必要傳送點及備選傳送點;當(dāng)存在多個備選傳送點時從所述多個備選傳送點中選取第一備選傳送點;將所述必要傳送點和所述第一備選傳送點填入所述轉(zhuǎn)播參考表對應(yīng)的表項中,其中,所述必要傳送點是指從一個所述交換機到達另一個所述交換機必定需要經(jīng)過的節(jié)點。
優(yōu)選地,所述備選傳送點的尋找遵循以下預(yù)設(shè)條件:所述源點到所述備選傳送點的路徑必需與所述源點到目的地的路徑擁有相同的傳統(tǒng)路徑且相同節(jié)點必需多于不同節(jié)點;其中,所述源點和所述目的地為各個所述交換機中任意不同的兩個,所述傳統(tǒng)路徑指該路徑上的節(jié)點為傳統(tǒng)路由器或交換機。
優(yōu)選地,所述多個備選傳送點的排序依次遵循以下條件:優(yōu)先選擇不同節(jié)點比較少的傳送點;優(yōu)先選擇相同節(jié)點比較多的傳送點。
優(yōu)選地,所述路徑規(guī)劃模塊規(guī)劃路徑包括:查詢所述轉(zhuǎn)播參考表以檢查到達所有的目的地是否存在所述必要傳送點,若有,以所述必要傳送點為拆分點將該目的地所在的傳輸流拆成兩個傳輸流;為各個傳輸流建立傳輸路徑并持續(xù)查詢所述轉(zhuǎn)播參考表直至各個路徑出現(xiàn)節(jié)點循環(huán)或者任意兩個相鄰節(jié)點間傳送點狀態(tài)為無備選傳送點為止,刪除所有傳輸路徑中重復(fù)出現(xiàn)的中繼節(jié)點或傳輸路徑,得到備選傳輸路徑;比對所述備選傳輸路徑,刪除最少需求的傳送點,留下其他傳送點和所述必要傳送點,確定當(dāng)前的備選傳輸路徑為所述最終傳輸路徑;其中,所述傳輸流是指從一個所述交換機到另一個所述交換機的源點- 目的地的傳輸組合;所述最少需求的傳送點是指所述最少需求的傳送點在所有備選中繼路徑中僅出現(xiàn)一次且不為必要傳送點或目的地。
優(yōu)選地,各個所述交換機的網(wǎng)絡(luò)信息表中包括各個所述交換機與其他所述交換機之間的網(wǎng)絡(luò)拓撲信息和可用帶寬,所述網(wǎng)絡(luò)拓撲信息包括軟件定義網(wǎng)絡(luò)拓撲和傳統(tǒng)網(wǎng)絡(luò)拓撲。
優(yōu)選地,控制設(shè)備還包括監(jiān)控模塊,用于在數(shù)據(jù)傳輸過程中實時評估數(shù)據(jù)傳輸所需要的網(wǎng)絡(luò)帶寬,在所述轉(zhuǎn)播參考表中各個所述第一備選傳送點和目的交換機之間的可用帶寬小于傳輸所需要的網(wǎng)絡(luò)帶寬時修正所述第一備選傳送點,從所述多個備選傳送點中選擇符合帶寬要求的其他備選傳送點作為新的第一備選傳送點,更新所述轉(zhuǎn)播參考表。
優(yōu)選地,查詢模塊偵測和探查不同所述交換機之間的網(wǎng)絡(luò)拓撲信息包括:指示每個所述交換機通過路由跟蹤算法探測到其他各個所述交換機之間的網(wǎng)絡(luò)路徑,所述網(wǎng)絡(luò)路徑包括傳統(tǒng)網(wǎng)絡(luò)路徑和軟件定義網(wǎng)絡(luò)路徑。
優(yōu)選地,所述交換機為軟件定義網(wǎng)絡(luò)交換機。
本發(fā)明又一實施方式中提供的規(guī)劃傳輸路徑的方法,應(yīng)用于控制設(shè)備,所述控制設(shè)備位于軟件定義網(wǎng)絡(luò)和傳統(tǒng)網(wǎng)絡(luò)并存的混合網(wǎng)絡(luò)中,所述混合網(wǎng)絡(luò)內(nèi)有多個第一類交換機,所述方法包括以下步驟:向各個所述交換機發(fā)送查詢信息以偵測和探查不同交換機之間的網(wǎng)絡(luò)信息,建立各個所述交換機的網(wǎng)絡(luò)信息表;分析所述網(wǎng)絡(luò)信息表并建立轉(zhuǎn)播參考表,所述轉(zhuǎn)播參考表中記錄了從每個所述交換機到其他各個所述交換機的傳送點狀態(tài),所述傳送點狀態(tài)包括第一備選傳送點或必要傳送點或無備選傳送點;當(dāng)需要進行數(shù)據(jù)報的一對多傳送時,依據(jù)所述轉(zhuǎn)播參考表中所述傳送點的狀態(tài)確定最終傳輸路徑并找出匯聚點,其中,所述最終傳輸路徑為至少兩條或兩條以上路徑的路徑組合,所述匯聚點是指在所述最終傳輸路徑中出現(xiàn)兩次或兩次以上的所述交換機;以及在所述匯聚點處,指示所述交換機對所述數(shù)據(jù)報進行多次復(fù)制并轉(zhuǎn)發(fā)。
優(yōu)選地,所述建立轉(zhuǎn)播參考表包括以下步驟:依次以每個所述交換機為源點,尋找所述源點到其他各個所述交換機的必要傳送點及備選傳送點;當(dāng)存在多個備選傳送點時從所述多個備選傳送點中選取第一備選傳送點;將所述必要傳送點和所述第一備選傳送點填入所述轉(zhuǎn)播參考表對應(yīng)的表項中;其中,所述必要傳送點是指從一個所述交換機到達另一個所述交換機必定需要經(jīng)過的節(jié)點。
優(yōu)選地,所述備選傳送點的尋找遵循以下預(yù)設(shè)條件:所述源點到所述備選傳送點的路徑必需與所述源點到目的地的路徑擁有相同的傳統(tǒng)路徑且相同節(jié)點必需多于不同節(jié)點,其中,所述源點和所述目的地為各個所述交換機中任意不同的兩個,所述傳統(tǒng)路徑指該路徑上的節(jié)點為傳統(tǒng)路由器或交換機。
優(yōu)選地,所述多個備選傳送點的排序依次遵循以下條件:優(yōu)先選擇不同節(jié)點比較少的傳送點;優(yōu)先選擇相同節(jié)點比較多的傳送點。
優(yōu)選地,所述規(guī)劃路徑包括以下步驟:查詢所述轉(zhuǎn)播參考表以檢查到達所有的目的地是否存在所述必要傳送點,若有,以所述必要傳送點為拆分點將該目的地所在的傳輸流拆成兩個傳輸流;其中,所述傳輸流是指從一個所述交換機到另一個所述交換機的源點-目的地的傳輸組合;為各個傳輸流建立傳輸路徑并持續(xù)查詢所述轉(zhuǎn)播參考表直至各個路徑出現(xiàn)節(jié)點循環(huán)或者任意兩個相鄰節(jié)點間傳送點狀態(tài)為無備選傳送點為止,刪除所有傳輸路徑中重復(fù)出現(xiàn)的中繼節(jié)點或傳輸路徑,得到備選傳輸路徑;比對所述備選傳輸路徑,刪除最少需求的傳送點,留下其他傳送點和所述必要傳送點,確定當(dāng)前的備選傳輸路徑為所述最終傳輸路徑;其中,所述最少需求的傳送點是指所述最少需求的傳送點在所有備選中繼路徑中僅出現(xiàn)一次且不為必要傳送點或目的地。
優(yōu)選地,各個所述交換機的網(wǎng)絡(luò)信息表中包括各個所述交換機與其他所述交換機之間的網(wǎng)絡(luò)拓撲信息和可用帶寬,所述網(wǎng)絡(luò)拓撲信息包括軟件定義網(wǎng)絡(luò)拓撲和傳統(tǒng)網(wǎng)絡(luò)拓撲。
優(yōu)選地,所述方法還包括:在數(shù)據(jù)傳輸過程中實時評估數(shù)據(jù)傳輸所需要的網(wǎng)絡(luò)帶寬;在所述轉(zhuǎn)播參考表中各個所述第一備選傳送點和目的交換機之間的可用帶寬小于傳輸所需要的網(wǎng)絡(luò)帶寬時修正所述第一備選傳送點,從所述多個備選傳送點中選擇符合帶寬要求的其他備選傳送點作為新的第一備選傳送點;更新所述轉(zhuǎn)播參考表。
優(yōu)選地,所述偵測和探查不同所述交換機之間的網(wǎng)絡(luò)拓撲信息包括以下步驟:指示每個所述交換機通過路由跟蹤算法探測到其他各個所述交換機之間的網(wǎng)絡(luò)路徑,所述網(wǎng)絡(luò)路徑包括傳統(tǒng)網(wǎng)絡(luò)路徑和軟件定義網(wǎng)絡(luò)路徑。
優(yōu)選地,所述交換機為軟件定義網(wǎng)絡(luò)交換機。
上述控制器及其規(guī)劃傳輸路徑的方法通過探測各個SDN交換機之間的網(wǎng)絡(luò)信息,以此為依據(jù)建立轉(zhuǎn)播參考表,當(dāng)發(fā)生數(shù)據(jù)一對多傳輸時,查詢轉(zhuǎn)播參考表以尋找需要的傳送點并規(guī)劃傳輸路徑以確定最終傳輸路徑,得到此次數(shù)據(jù)傳 輸?shù)膮R聚點,在所述匯聚點上實現(xiàn)數(shù)據(jù)報的復(fù)制和轉(zhuǎn)發(fā),減少了數(shù)據(jù)報在同一路徑中被多次重復(fù)傳輸?shù)目赡埽苊饬司W(wǎng)絡(luò)資源的浪費和占用。
以下結(jié)合附圖和具體實施例對本發(fā)明進行詳細描述,但不作為對本發(fā)明的限定。
附圖說明
圖1是本發(fā)明控制設(shè)備的應(yīng)用環(huán)境圖。
圖2是本發(fā)明控制設(shè)備一實施方式的功能模塊圖。
圖3是本發(fā)明控制設(shè)備又一實施方式的功能模塊圖。
圖4是本發(fā)明一實施方式中控制設(shè)備記錄的一網(wǎng)絡(luò)信息表示例圖
圖5是本發(fā)明實施方式中控制設(shè)備記錄的另一網(wǎng)絡(luò)信息表示例圖
圖6是本發(fā)明一實施方式中控制設(shè)備建立的轉(zhuǎn)播參考表的示例圖。
圖7是本發(fā)明一實施方式中控制設(shè)備建立轉(zhuǎn)播參考表的流程圖。
圖8是本發(fā)明一實施方式中控制設(shè)備建立轉(zhuǎn)播參考表時為源點A達到各目的地尋找備選傳送點的過程示意圖。
圖9是本發(fā)明一實施方式中控制設(shè)備在數(shù)據(jù)報發(fā)生一到多傳輸時的規(guī)劃的傳輸路徑示意圖。
圖10是本發(fā)明一實施方式中控制設(shè)備動態(tài)更新轉(zhuǎn)播參考表的示意圖。
圖11是本發(fā)明一實施方式中控制設(shè)備為數(shù)據(jù)報一對多傳輸時規(guī)劃傳輸路徑方法流程圖。
主要元件符號說明
控制設(shè)備 10
SDN交換機 A、B、C、D、E、F、G
傳統(tǒng)交換機 1、2、3、4、5、6、7、8
處理器 101
內(nèi)存 102
查詢模塊 1020
分析模塊 1021
路徑規(guī)劃模塊 1022
發(fā)送模塊 1023
監(jiān)控模塊 1024
如下具體實施方式將結(jié)合上述附圖進一步說明本發(fā)明。
具體實施方式
圖1是本發(fā)明控制設(shè)備10一實施方式的應(yīng)用環(huán)境示意圖,其中控制設(shè)備10為SDN混合網(wǎng)絡(luò)中的控制器,所述SDN混合網(wǎng)絡(luò)是指網(wǎng)絡(luò)中同時存在SDN網(wǎng)絡(luò)設(shè)備如軟件定義網(wǎng)絡(luò)交換機(SDN交換機)和傳統(tǒng)網(wǎng)絡(luò)設(shè)備如常見的傳統(tǒng)交換機、傳統(tǒng)路由器等。如圖1所示,SDN混合網(wǎng)絡(luò)主要包括控制設(shè)備10、SDN交換機A、B、C、D、E、F、G,傳統(tǒng)交換機1、2、3、4、5、6、7、8和主機(圖中未示出)。其中,控制設(shè)備10對網(wǎng)絡(luò)進行集中控制,通過下發(fā)控制信息至多個SDN交換機(圖中僅示出A、B、G)控制網(wǎng)絡(luò),SDN交換機A等和傳統(tǒng)交換機1等負責(zé)管理數(shù)據(jù)層的轉(zhuǎn)發(fā)。SDN交換機接收到主機發(fā)送的待轉(zhuǎn)發(fā)數(shù)據(jù)報后,首先在本地的流表上查找轉(zhuǎn)發(fā)規(guī)則(即流表項),如果沒有匹配,則將待轉(zhuǎn)發(fā)數(shù)據(jù)報發(fā)送至控制設(shè)備10,由控制設(shè)備10決定數(shù)據(jù)報的轉(zhuǎn)發(fā)路徑,再依據(jù)轉(zhuǎn)發(fā)路徑將數(shù)據(jù)報轉(zhuǎn)發(fā)至對應(yīng)主機。其中,流表位于SDN交換機中,用于存儲SDN混合網(wǎng)絡(luò)中控制器所分發(fā)的轉(zhuǎn)發(fā)規(guī)則。另外,傳統(tǒng)交換機的工作方式較為常見,在此不作說明。在SDN混合網(wǎng)絡(luò)中,當(dāng)數(shù)據(jù)在兩個SDN交換機中傳輸時,若中間存在傳統(tǒng)網(wǎng)絡(luò)(傳統(tǒng)交換機),通常采用建立隧道的方式進行傳輸,以虛擬化中間的傳統(tǒng)網(wǎng)絡(luò)。在本實施方式中,SDN交換機在SDN混合網(wǎng)絡(luò)中的數(shù)量為多個,如圖1中的A、B、C、D、E、F、G,傳統(tǒng)交換機的數(shù)量也為多個,如圖1中的1、2、3、4、5、6、7、8。在本文后續(xù)說明中,SDN交換機與SDN節(jié)點均指A、B、C、D、E、F、G,節(jié)點和傳統(tǒng)交換機均指1、2、3、4、5、6、7、8。
圖2所示為本發(fā)明控制設(shè)備10一實施方式的功能模塊圖??刂圃O(shè)備10包括處理器101、內(nèi)存102、查詢模塊1020、分析模塊1021、路徑規(guī)劃模塊1022、發(fā)送模塊1023和監(jiān)控模塊1024,在本實施方式中,模塊1020~1024為可執(zhí)行程序且分別存在于控制設(shè)備10的內(nèi)存102中,并由處理器101執(zhí)行相關(guān)程序以實現(xiàn)上述模塊的功能。
圖3所示為本發(fā)明控制設(shè)備10又一實施方式的功能模塊圖??刂圃O(shè)備10包括處理器101、內(nèi)存102、查詢模塊1020、分析模塊1021、路徑規(guī)劃模塊1022、發(fā)送模塊1023和監(jiān)控模塊1024。
查詢模塊1020通過向各個SDN交換機發(fā)送查詢信息以偵測和探查不同SDN交換機之間的網(wǎng)絡(luò)信息(包括網(wǎng)絡(luò)拓撲和網(wǎng)絡(luò)狀態(tài)如可用帶寬),由此建立各個SDN交換機點的網(wǎng)絡(luò)信息表。以圖1中的SDN交換機A為例,控制設(shè)備10建立屬于SDN交換機A的網(wǎng)絡(luò)信息時,由查詢模塊1020向A發(fā)送查詢信息,指示A通過trace route(路由跟蹤算法)探測自身到其他SDN交換機之間網(wǎng)絡(luò)路徑,包括經(jīng)過的傳統(tǒng)節(jié)點和SDN節(jié)點。具體的,查詢模塊1020向A發(fā)送一個查詢命令,其中攜帶一個TTL(time to live,生存時間)為1的路由探測封包,A在查詢模塊1020的指示下將TTL=1的探測封包向外(目的地址可依次為其他SDN交換機,如B、C等)發(fā)出,當(dāng)路徑上的第一個交換機接收到這個探測封包時,會將TTL減1,此時,TTL變?yōu)?,該交換機就會丟棄這個探測封包并回應(yīng)一個[ICMP time exceeded]消息,其中攜帶這個探測封包經(jīng)過的路由信息包括經(jīng)過的各個節(jié)點的IP地址等,A收到這個[ICMP time exceeded]消息,會將這個響應(yīng)消息轉(zhuǎn)發(fā)給查詢模塊1020,由此,控制器10就知道該交換機存在于這條路徑上(如A到B,A到C……)。接著,查詢模塊1020再發(fā)出第二個查詢命令,要求A向外發(fā)送TTL=2的路由探測封包以發(fā)現(xiàn)第二個交換機,如此循環(huán)直至發(fā)現(xiàn)該路徑上的存在的所有交換機(包括傳統(tǒng)交換機和SDN交換機)。查詢模塊1020在探查各個SDN交換機之間網(wǎng)絡(luò)拓撲的同時,也同時通過網(wǎng)絡(luò)工具如iperf、ping等來測量其網(wǎng)絡(luò)狀態(tài)(本發(fā)明主要體現(xiàn)在可用帶寬),并且將上述網(wǎng)絡(luò)拓撲和網(wǎng)絡(luò)狀態(tài)記錄作為各個SDN交換機的網(wǎng)絡(luò)信息表儲存在數(shù)據(jù)庫中,如圖4和圖5均是基于圖1網(wǎng)絡(luò)環(huán)境下的一個網(wǎng)絡(luò)信息表,其中,圖4是SDN交換機A的網(wǎng)絡(luò)信息表,上面記錄了從A到其他各個SDN交換機所需經(jīng)過的路徑以及可用帶寬,圖5則是SDN交換機B的網(wǎng)絡(luò)信息表。
需要說明的是,上述查詢過程主要利用現(xiàn)有路由跟蹤算法trace route和網(wǎng)絡(luò)工具如iperf、ping等實現(xiàn),其不同在于此處由控制設(shè)備實現(xiàn)路由探測封包的控制,因此,本發(fā)明對此算法的詳細實現(xiàn)過程不再作詳細敘述。
分析模塊1021利用數(shù)據(jù)庫中記錄的網(wǎng)絡(luò)信息表,分析網(wǎng)絡(luò)信息表并建立轉(zhuǎn)播參考表。建立轉(zhuǎn)播參考表具體體現(xiàn)為:依次以每一個SDN交換機作為源點,尋找該源點到各個SDN交換機的必要傳送點及備選傳送點,并且在存在多個備選傳送點時從多個備選傳送點中選取第一備選傳送點,將尋找到的必要 傳送點和第一備選傳送點填入轉(zhuǎn)播參考表的對應(yīng)的表項中,從而建立轉(zhuǎn)播參考表。其中,必要傳送點是指一個SDN交換機到達另一個交換機必定需要經(jīng)過的SDN節(jié)點,如從A到G,中間必定經(jīng)過B,則G為A到B的必要傳送點,而備選傳送點的篩選和排序則需依次遵循以下預(yù)設(shè)條件:1.源點到該傳送點的路徑必需與源點到目的地的路徑擁有相同的傳統(tǒng)路徑且相同節(jié)點必需多于不同節(jié)點;2.優(yōu)先選擇不同節(jié)點比較少的傳送點;3.優(yōu)先選擇相同節(jié)點比較多的傳送點。其中,第1點為必要條件,所有符合第一點的SDN節(jié)點都是備選傳送點,而2,3點則用于比較多個符合第一點的備選傳送點的優(yōu)劣并進行排序,且優(yōu)先考慮第2點,再考慮第3點。也就是說,在符合第1點的多個備選傳送點中,各個備選傳送點的優(yōu)排序和源點到各個備選傳送點的路徑與源點到目的地的路徑中所擁有的不同節(jié)點的數(shù)量成反相關(guān),數(shù)量最少,則該備選傳送點為最佳,其余節(jié)點依此依次排序。當(dāng)多個備選傳送點所擁有的不同節(jié)點數(shù)量相同時,則進一步比較源點到各個備選傳送點的路徑與源點到目的地的路徑中所擁有的相同節(jié)點的數(shù)量,相同節(jié)點數(shù)量最多的為最優(yōu),其他依次排序。最佳傳送點則作為第一備選傳送點填入轉(zhuǎn)播參考表中對應(yīng)表項。
圖6即是基于圖1網(wǎng)絡(luò)環(huán)境下建立的轉(zhuǎn)播參考表。該轉(zhuǎn)播參考表中,記錄了每一個SDN交換機到其他SDN交換機的傳送點狀態(tài),包括第一備選傳送點或必要傳送點或是無備選傳送點的狀態(tài)。其中,圖6中的標記解釋如下:
-:N/A,表示無法到達或源點跟目的地都是本身
C等(正常):到達目的地的第一備選傳送點
x:無備選傳送點
B等(加粗加底線):一定需要的傳送點(必要傳送點)
完整的建表過程如圖7的流程圖所示,將在后續(xù)說明。此處,僅以SDN交換機A作為源點時到其他各個SDN交換機的建表過程為例子詳細說明,圖8所示即為源點A到各目的地的必要傳送點及第一備選傳送點尋找過程示意圖。分析模塊1024查詢數(shù)據(jù)庫中記錄的網(wǎng)絡(luò)信息表,若A到所有目的地中有一定需要的傳送點,則將該必要傳送點填入對應(yīng)目的地的列項,如A到G的路徑必定經(jīng)過B,因此B將作為一定需要的傳送點(必要傳送點)填入表中G對應(yīng)的列項中(如圖8第一個表)。對于剩余各個目的地,查詢模塊1024根據(jù)網(wǎng)絡(luò)信息表,為各個目的地找出到達該目的地的可能的所有備選點并按順序排 列,然后選擇最優(yōu)的備選點填入表中作為第一備選點傳送點,若無符合條件的備選傳送點,則記錄為x。從SDN交換機A的網(wǎng)絡(luò)信息表我們可以得到A到各個目的地的路徑如下:
A->1,2,3->B
A->1,2,4->C
A->1,2,4,5->D
A->1,2,3,6->E
A->1,2,3,6,7->F
由此,對于B而言,網(wǎng)絡(luò)中各個SDN交換機的情況如下:
C:相同的路徑(1,2),不同的路徑(4);
D:相同的路徑(1,2),不同的路徑(4,5);
E:相同的路徑(1,2,3),不同的路徑(6);
F:相同路徑(1,2,3),不同的路徑(6,7);
依據(jù)預(yù)設(shè)條件篩選,C、E、F均滿足第1點,可作為B的備選傳送點,其中,綜合考慮2、3兩點,C、E、F的優(yōu)劣排序為E-C-F。選擇最優(yōu)傳送點E作為第一備選傳送點填入轉(zhuǎn)播參考表中。
A到其他各個點的必要傳送點、備選傳送點以及第一備選傳送點的確認與A到B的上述確認過程相同,因此,在此不作重復(fù)敘述。當(dāng)完成以A為源點到達其他各個SDN交換機的必要傳送點以及第一備選傳送點的確認之后,則轉(zhuǎn)播參考表中屬于源點A的一行建立完畢。后續(xù)分析模塊1021繼續(xù)進行轉(zhuǎn)播參考表中源點B、C、D、E、F、G各源點所在行的表項的建立,從而得到完整的轉(zhuǎn)播參考表并進行存儲。
路徑規(guī)劃模塊1022在需要進行數(shù)據(jù)報的一對多傳送需求時,依據(jù)轉(zhuǎn)播參考表中傳送點的狀態(tài)規(guī)劃路徑,為源點(源SDN交換機)到多個不同目的地(目的SDN交換機)找出需要的傳送點(必要傳送點或第一備選傳送點),確定最終傳輸路徑并找出匯聚點。以從源點A同時向目的地C、E、G傳輸同一數(shù)據(jù)(后續(xù)以A->(C、E、G)表示)為例子描述路徑規(guī)劃的過程如下:
第一步,查詢所述轉(zhuǎn)播參考表以檢查從源點到達所有的目的地是否有必要傳送點,如果有,將該目的地所在的傳輸流拆成兩個傳輸流;所述傳輸流是指從一個SDN點到另一個SDN節(jié)點的源點-目的地的傳輸組合。數(shù)據(jù)一對多傳 送中,有多少個目的地則該次傳輸在一開始時擁有相同數(shù)量的傳輸流。例如,A->(C、E、G)即存在三個傳輸流A->C、A->E、A->G。查詢轉(zhuǎn)播參考表可知,對于目的地G,其存在一個必要傳送點B,因此,A->(C、E、G)將拆分為A->(C、E、B)和B->G,總共四個傳輸流;
第二步,對于所有的傳輸流,建立各個傳輸流的傳輸路徑,持續(xù)查詢轉(zhuǎn)播參考表,直至各個路徑出現(xiàn)節(jié)點循環(huán)或者x(即任意兩個相鄰SDN節(jié)點間再無備選傳送點)為止,刪除重復(fù)出現(xiàn)的中繼節(jié)點或傳輸路徑,得到備選傳輸路徑。對于已經(jīng)作為中繼節(jié)出現(xiàn)的目的地所在的傳輸流,則無需再查表。過程如下:
A->C=>A->D->C=>A->C->D->C(出現(xiàn)循環(huán),停止查詢并以出現(xiàn)循環(huán)前的上一查詢結(jié)果為備選傳輸路徑);
A->E=>A->B->E=>A->E->B->E(出現(xiàn)循環(huán),停止查詢并以出現(xiàn)循環(huán)前的上一查詢結(jié)果為備選傳輸路徑);
A->B:B已經(jīng)在上面的中繼路徑中出現(xiàn)過,且B不為目的地,故此傳輸流無需繼續(xù)查詢且可刪除(在其他路徑規(guī)劃中,若B為目的地,則此傳輸流保留,而其他路徑中出現(xiàn)此傳輸流的該部分路徑則可以刪除,如A->B->E可僅保留B->E)。
B->G:B->x->G(出現(xiàn)x,表示B與G之間無備選傳送點,故直接以B->G為備選傳輸路徑);
第三步,比對所有算出來的備選傳輸路徑,刪除最少需求的傳送點,留下其他傳送點和必要傳送點,確定為最終的傳輸路徑。因為是一對多傳輸,所以最終傳輸路徑為至少兩條或兩條以上路徑的路徑組合。此處,最少需求是指該傳送點在所有備選傳輸路徑中僅出現(xiàn)一次且不為必要傳送點或目的地。從上一步的查詢可知,A->(C、E、G)經(jīng)過傳輸流拆分和轉(zhuǎn)播參考表路徑查詢,最終得到了A->D->C、A->B->E、B->G三條備選傳輸路徑,在這其中,B為必要傳送點,不可刪除,且B在一條以上傳輸路徑出現(xiàn),而C、E均為目的地,僅有D僅出現(xiàn)一次且不是必要傳送點或目的地,故,D為最少需求的傳送點,可將D從中繼路徑中刪除。最終得到的傳輸路徑為:A->C、A->B->E、B->G,也就是說,經(jīng)過查詢,路徑規(guī)劃模塊1022為此次數(shù)據(jù)報傳輸A->(C、E、G)確定的最終傳輸路徑為A->C、A->B->E、B->G。確定的最終傳輸路徑中出現(xiàn) 兩次或兩次以上的SDN節(jié)點(SDN交換機)為數(shù)據(jù)匯聚點,在控制設(shè)備10的指示下,數(shù)據(jù)報在此處將被復(fù)制并按照最終傳輸路徑多次轉(zhuǎn)發(fā)至不同SDN節(jié)點(SDN交換機)。由此,以匯聚點處數(shù)據(jù)報的復(fù)制和多次轉(zhuǎn)發(fā)代替數(shù)據(jù)報在某一路徑上的重復(fù)傳輸,由此避免數(shù)據(jù)的重復(fù)傳輸。
如圖9所示,從圖9中可以看出,在此處數(shù)據(jù)傳輸中,若用傳統(tǒng)傳輸方法進行傳輸,則數(shù)據(jù)報必定在A->B這個路徑上分別被傳輸兩次,而應(yīng)用本發(fā)明所規(guī)劃的路徑,則數(shù)據(jù)報會從被A傳到B,再由B復(fù)制之后分別傳輸給E和G,如此,則數(shù)據(jù)報無需在A->B間被傳輸兩次。上述以從源點A同時向目的地C、E、G傳輸同一數(shù)據(jù)(后續(xù)以A->(C、E、G)表示)為例子對路徑規(guī)劃模塊1022規(guī)劃路徑的過程進行了詳細說明,對于其他可能的一到多的數(shù)據(jù)傳輸,其路徑規(guī)劃過程與此類似,例如A->(C、B、D)經(jīng)過路徑規(guī)劃模塊1022規(guī)劃后確定的最終傳輸路徑為A->C,A->D,D->C。另外,當(dāng)數(shù)據(jù)傳輸?shù)哪康牡貎H為一個時,則可直接按常規(guī)進行傳輸,無需尋找中繼點。
路徑規(guī)劃模塊1022在為數(shù)據(jù)報傳輸確定最終傳輸路徑之后,依照確定的最終傳輸路徑為各個SDN交換機生成轉(zhuǎn)發(fā)規(guī)則。
發(fā)送模塊1023將生成轉(zhuǎn)發(fā)規(guī)則發(fā)送到對應(yīng)的各個SDN交換機以使其更新各自的流表,后續(xù)在數(shù)據(jù)報的傳輸過程中,各個SDN交換機依照各自的流表中的流表項(轉(zhuǎn)發(fā)規(guī)則)對接收到的封包進行相應(yīng)的處理如復(fù)制和轉(zhuǎn)發(fā)等,如前面所述,在匯聚點處,在控制設(shè)備10的指示下,數(shù)據(jù)報將被復(fù)制并按照最終傳輸路徑多次轉(zhuǎn)發(fā)至不同SDN節(jié)點(SDN交換機)。
監(jiān)控模塊1024在數(shù)據(jù)傳輸過程中實時評估其所需要的網(wǎng)絡(luò)帶寬,在轉(zhuǎn)播參考表中各個第一備選傳送點和目的SDN交換機之間的可用帶寬小于傳輸所需網(wǎng)絡(luò)帶寬時修正第一備選傳送點,更新轉(zhuǎn)播參考表,由路徑規(guī)劃模塊1023重新規(guī)劃路徑。舉例說明,當(dāng)數(shù)據(jù)傳輸所需要的帶寬為40Mbps時,從圖5中SDN交換機B的網(wǎng)絡(luò)信息表可知,B->C之間的可用帶寬僅為20Mbps,而B->E之間的可用帶寬為30Mbps,均小于40Mbps,因此,轉(zhuǎn)播參考表中以B為第一備選傳送點,目的地為C以及以B為第一備選傳送點,目的的為E的表項均需要修改,僅以轉(zhuǎn)播參考表中源點A所在一行為例,參考圖10進行說明。目的地C對應(yīng)的第一備選傳送點為D,不為B,故該項無需修改,而目的地E對應(yīng)的第一備選傳送點剛好為B,參考前文轉(zhuǎn)播參考表的建立可知,B為A到 E時E的最佳備選傳送點,而A到E之間所有備選點的優(yōu)劣排序為:B-F-C,因此,當(dāng)B不符合傳輸帶寬的要求時,需要考慮將B替換為次優(yōu)備選傳送點F,F(xiàn)到E之間的可用帶寬為70Mbps(SDN交換機E的網(wǎng)絡(luò)信息表未示出),大于40Mbps,因此,F(xiàn)代替B成為A到E之間的第一備選傳送點。對于轉(zhuǎn)播參考表中的其他表項,其修正方法與此相同,因此不作重復(fù)敘述。監(jiān)控模塊1024每次修正轉(zhuǎn)播參考表得到新的轉(zhuǎn)播參考表后,路徑規(guī)劃模塊1022將依照新的轉(zhuǎn)播參考表,實時修改當(dāng)前的最終傳輸路徑。
請參閱圖7,所示是本發(fā)明一實施例中控制設(shè)備建立轉(zhuǎn)播參考表的流程圖。
步驟700中,分析模塊1021查詢當(dāng)前源點(如SDN交換機A)的網(wǎng)絡(luò)信息表,判斷源點到當(dāng)前目的地是否有一定需要的傳送點(必要傳送點),若有,則進入步驟708,將該必要傳送點填入轉(zhuǎn)播參考表中對應(yīng)的表項。
步驟702中,分析模塊1021依據(jù)預(yù)設(shè)條件找出到達當(dāng)前目的地的所有備選傳送點,并選擇最優(yōu)備選傳送點作為填入轉(zhuǎn)播參考表中作為第一備選傳送點。
步驟704中,判斷當(dāng)前源點到所有目的地(其他所有SDN交換機)的組合是夠已經(jīng)遍歷完畢,若未遍歷完,則進入步驟706,更換當(dāng)前目的地為下一SDN交換機。
步驟712中,檢查當(dāng)前源點是否遍歷完畢,即是否所有SDN交換機均已充當(dāng)過源點,若是,則建表結(jié)束。若否,則進入步驟710,更換當(dāng)前源點為下一個SDN交換機。
請參閱圖11,所示是本發(fā)明一實施方式中控制設(shè)備為數(shù)據(jù)一對多傳輸時規(guī)劃傳輸路徑方法流程圖。
步驟110中,查詢模塊1020向各個SDN交換機發(fā)送查詢命令以探測各個SDN交換機之間的傳統(tǒng)網(wǎng)絡(luò)拓撲以及網(wǎng)絡(luò)狀態(tài),匯整收到的響應(yīng)信息以得到各個SDN交換機的網(wǎng)絡(luò)信息。
步驟112中,分析模塊1021依據(jù)各個SDN交換機的網(wǎng)絡(luò)信息,為每個SDN交換機(作為源點到達其他各個SDN交換機時)尋找必要傳送點以及備選傳送點,建立轉(zhuǎn)播參考表。
步驟113中,當(dāng)發(fā)生數(shù)據(jù)報的一對多傳輸時,路徑規(guī)劃模塊1022依據(jù)轉(zhuǎn)播參考表中傳送點的狀態(tài)規(guī)劃路徑,為源點(源SDN交換機)到多個不同目 的地(目的SDN交換機)找出需要的傳送點(必要傳送點或第一備選傳送點),確定最終傳輸路徑并找出匯聚點,依據(jù)確定的最終傳輸路徑生成各個SDN交換機的轉(zhuǎn)發(fā)規(guī)則。
步驟114中,發(fā)送模塊1023將轉(zhuǎn)發(fā)規(guī)則下發(fā)到對應(yīng)的各個SDN交換機上以供其更新流表項,使所述各個SDN交換機按照各自流表中的轉(zhuǎn)發(fā)規(guī)則轉(zhuǎn)發(fā)接收到的數(shù)據(jù)報。
綜上所述,控制設(shè)備10通過探測各個SDN交換機之間的網(wǎng)絡(luò)信息,以此為依據(jù)建立轉(zhuǎn)播參考表,當(dāng)發(fā)生數(shù)據(jù)一對多傳輸時,查詢轉(zhuǎn)播參考表以尋找需要的傳送點并規(guī)劃傳輸路徑以確定最終傳輸路徑,得到此次數(shù)據(jù)傳輸?shù)膮R聚點,在所述匯聚點上實現(xiàn)數(shù)據(jù)報的復(fù)制和轉(zhuǎn)發(fā),減少了數(shù)據(jù)報在同一路徑中被多次重復(fù)傳輸?shù)目赡?,避免了網(wǎng)絡(luò)資源的浪費和占用。
需要說明的是,上文所述實施方式,并不構(gòu)成對發(fā)明保護范圍的限定。任何在本發(fā)明的精神和原則內(nèi)所作的修改,等同替換和改進等,均應(yīng)包含在本發(fā)明的保護范圍內(nèi)。