本發(fā)明涉及軟件定義網(wǎng)絡(luò)(sdn)中多域控制器的路徑計算,具體涉及一種多域控制器的跨域路徑計算方法。
背景技術(shù):
信息技術(shù)的快速發(fā)展和用戶需求的不斷變化,不僅給通信網(wǎng)絡(luò)帶來了新的需求和挑戰(zhàn),同時對通信網(wǎng)絡(luò)的設(shè)備能力和管理復(fù)雜度也提出更高要求,通信網(wǎng)絡(luò)需要進(jìn)一步簡化運(yùn)維、挖掘網(wǎng)絡(luò)潛能、提供快速靈活的業(yè)務(wù)支持能力。
sdn具有控制和轉(zhuǎn)發(fā)分離、可編程應(yīng)用編程接口(api)的技術(shù)特點,可以更好的支持應(yīng)用層與網(wǎng)絡(luò)層的協(xié)同機(jī)制,支持網(wǎng)絡(luò)資源的虛擬化管理和集中控制。sdn的控制層功能由控制器來提供,對于復(fù)雜的網(wǎng)絡(luò),sdn需要對網(wǎng)絡(luò)進(jìn)行域劃分,形成多域網(wǎng)絡(luò),每個域網(wǎng)絡(luò)由單獨的控制器進(jìn)行控制;對于整個網(wǎng)絡(luò),由多域控制器進(jìn)行管理,多域控制器和單域控制器間通過接口進(jìn)行協(xié)同。
在sdn架構(gòu)中,業(yè)務(wù)的創(chuàng)建由app通過北向接口向控制器發(fā)起,控制器完成業(yè)務(wù)的路徑計算后,進(jìn)行標(biāo)簽分配,然后通過openflow等協(xié)議將流表下發(fā)給路徑中的每一個交換機(jī)來完成,而路徑計算的結(jié)果對于業(yè)務(wù)的成功及質(zhì)量的好壞起著決定性作用;因此,在多域網(wǎng)絡(luò)中,多域控制器如何進(jìn)行最優(yōu)跨域路徑的計算是sdn的關(guān)鍵技術(shù)難題。
技術(shù)實現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問題是在多域網(wǎng)絡(luò)中,多域控制器如何進(jìn)行最優(yōu)跨域路徑的計算的問題。
為了解決上述技術(shù)問題,本發(fā)明所采用的技術(shù)方案是提供一種多域控制器的跨域路徑計算方法,包括以下步驟:
步驟s10、每個單域控制器根據(jù)其對應(yīng)域內(nèi)的節(jié)點和節(jié)點間的鏈路構(gòu)建對應(yīng)的域內(nèi)拓?fù)浣Y(jié)構(gòu),并向多域控制器上報域內(nèi)所有節(jié)點的域標(biāo)識信息;多域控制器根據(jù)其控制的所有域和域間鏈路構(gòu)建域間拓?fù)浣Y(jié)構(gòu);
步驟s20、根據(jù)跨域業(yè)務(wù)建立請求,多域控制器基于域間拓?fù)浣Y(jié)構(gòu)計算源節(jié)點所在域到宿節(jié)點所在域經(jīng)過的所有域的域序列;
步驟s30、多域控制器向域序列中各個域的單域控制器發(fā)起域內(nèi)路徑計算請求;每個域的單域控制器根據(jù)域內(nèi)路徑計算請求以及域內(nèi)拓?fù)浣Y(jié)構(gòu)計算域內(nèi)路徑,并將域內(nèi)路徑計算結(jié)果發(fā)送給多域控制器;
步驟s40、多域控制器根據(jù)域序列涉及的各個域的域內(nèi)路徑計算結(jié)果和域間鏈路,相互組合得到多條從源節(jié)點到宿節(jié)點的完整端到端跨域路徑;
步驟s50、多域控制器根據(jù)路由最優(yōu)策略從多條端到端跨域路徑中選擇出一條最優(yōu)的路徑作為多域路徑。
在上述方法中,步驟s10包括以下步驟:
步驟s11、受同一個多域控制器控制的每個單域控制器通過lldp協(xié)議發(fā)現(xiàn)對應(yīng)域內(nèi)的節(jié)點和鏈路;
步驟s12、每個單域控制器根據(jù)其域內(nèi)的節(jié)點和節(jié)點間鏈路關(guān)系分別構(gòu)建對應(yīng)的域內(nèi)拓?fù)浣Y(jié)構(gòu);
步驟s13、多域控制器通過靜態(tài)配置域間鏈路或lldp自動發(fā)現(xiàn)方式發(fā)現(xiàn)受其控制的域和域間的鏈路;
步驟s14、多域控制器根據(jù)其控制的域和域間的鏈路關(guān)系構(gòu)建域間拓?fù)浣Y(jié)構(gòu);
步驟s15、每個單域控制器通過北向接口向多域控制器上報其域內(nèi)所有節(jié)點的域標(biāo)識信息,多域控制器記錄所有節(jié)點的所在域標(biāo)識信息。
在上述方法中,從源域到宿域包括一個或多個域序列;
每個所述域序列由源節(jié)點、從源節(jié)點到宿節(jié)點經(jīng)過的域的邊界節(jié)點和宿節(jié)點組成,除源節(jié)點和宿節(jié)點所在的源域和宿域,其它域序列經(jīng)過的域為中間域,中間域的邊界節(jié)點包括源邊界節(jié)點和宿邊界節(jié)點。
在上述方法中,步驟s20包括以下步驟:
步驟s21、多域控制器接收app通過北向接口發(fā)來的跨域業(yè)務(wù)建立請求;
步驟s22、多域控制器解析業(yè)務(wù)建立請求,提取源節(jié)點和宿節(jié)點;
步驟s23、多域控制器查找所提取源節(jié)點和宿節(jié)點各自所在的域標(biāo)識信息,并判斷源節(jié)點與宿節(jié)點的域是否相同,如果不同,執(zhí)行步驟s24;否則,進(jìn)入域內(nèi)路徑計算;
步驟s24、觸發(fā)跨域路徑計算;
步驟s25、多域控制器基于域間拓?fù)浣Y(jié)構(gòu),計算從源域到宿域所有可能經(jīng)過的域序列。
在上述方法中,多域控制器向域序列中各個域的單域控制器發(fā)起域內(nèi)路徑計算請求包括:
多域控制器向域序列中的源域的單域控制器發(fā)起的源節(jié)點到域序列中源域的邊界節(jié)點的域內(nèi)路徑計算請求;
多域控制器向域序列中的中間域的單域控制器發(fā)起域序列中的其域內(nèi)的源邊界節(jié)點到宿邊界節(jié)點的域內(nèi)路徑計算請求;
多域控制器向宿域的單域控制器發(fā)起域序列中的宿域的邊界節(jié)點到宿節(jié)點的域內(nèi)路徑計算請求。
在上述方法中,所述路由最優(yōu)策略為最少跳數(shù)為最優(yōu)。
本發(fā)明通過多域控制器和單域控制器協(xié)同完成最優(yōu)跨域路徑的計算,多域控制器負(fù)責(zé)計算域序列,單域控制器負(fù)責(zé)計算其對應(yīng)域內(nèi)的路徑,再由多域控制器將各單域控制器的路徑計算結(jié)果和域間鏈路組裝成多條端到端的跨域路徑,最后選擇一條最優(yōu)的跨域路徑,解決了sdn應(yīng)用于復(fù)雜的大規(guī)模多域網(wǎng)絡(luò)中非常關(guān)鍵的跨域路徑計算問題,能夠大大加快sdn的應(yīng)用,并產(chǎn)生較大經(jīng)濟(jì)效益。
附圖說明
圖1為一個多域網(wǎng)絡(luò)中典型的sdn應(yīng)用場景;
圖2為本發(fā)明提供的一種多域控制器的跨域路徑計算方法的流程圖;
圖3為圖1中第一單域控制器構(gòu)建的域內(nèi)拓?fù)浣Y(jié)構(gòu)對應(yīng)的拓?fù)湟晥D;
圖4為圖1中第二單域控制器構(gòu)建的域內(nèi)拓?fù)浣Y(jié)構(gòu)對應(yīng)的拓?fù)湟晥D;
圖5為圖1中第三單域控制器構(gòu)建的域內(nèi)拓?fù)浣Y(jié)構(gòu)對應(yīng)的拓?fù)湟晥D;
圖6為圖1中多域控制器構(gòu)建的域間拓?fù)浣Y(jié)構(gòu)對應(yīng)的拓?fù)湟晥D;
圖7為本發(fā)明中步驟s10的具體流程圖;
圖8為本發(fā)明中步驟s20的具體流程圖。
具體實施方式
下面結(jié)合說明書附圖和具體實施例對本發(fā)明做出詳細(xì)的說明。
圖1所示為一個多域網(wǎng)絡(luò)中典型的sdn應(yīng)用場景,該多域網(wǎng)絡(luò)由3個域組成,其中,第一域1包含源節(jié)點s、邊界節(jié)點bn11和邊界節(jié)點bn12,由第一單域控制器10控制;第二域2包含四個邊界節(jié)點,分別為bn21、bn22、bn23和bn24,由第二單域控制器20控制;第三域3包含邊界節(jié)點bn31、邊界節(jié)點bn32和宿節(jié)點d,由第三單域控制器30控制;第一單域控制器10、第二單域控制器20和第三單域控制器30通過北向接口與多域控制器40通信;多域控制器40和app通過北向接口通信,完成業(yè)務(wù)建立等需求,例如app向多域控制器40發(fā)起從第一域1的源節(jié)點s到第三域3的宿節(jié)點d的業(yè)務(wù)建立請求,多域控制器需負(fù)責(zé)完成從源節(jié)點s到宿節(jié)點d的跨域路徑計算。
本發(fā)明通過多域控制器和單域控制器協(xié)同完成最優(yōu)跨域路徑的計算,多域控制器負(fù)責(zé)計算域序列,單域控制器負(fù)責(zé)計算其對應(yīng)域內(nèi)的路徑,再由多域控制器將各單域控制器的路徑計算結(jié)果和域間鏈路組裝成多條端到端的跨域路徑,最后選擇一條最優(yōu)的跨域路徑。如圖2所示,本發(fā)明提供的一種多域控制器的跨域路徑計算方法,包括以下步驟:
步驟s10、每個單域控制器根據(jù)其對應(yīng)域內(nèi)的節(jié)點和節(jié)點間的鏈路構(gòu)建對應(yīng)的域內(nèi)拓?fù)浣Y(jié)構(gòu),并將對應(yīng)域內(nèi)的所有節(jié)點的域標(biāo)識信息上報多域控制器記錄;多域控制器根據(jù)其控制的所有域(相當(dāng)于拓?fù)涔?jié)點)和域間鏈路構(gòu)建域間拓?fù)浣Y(jié)構(gòu),在這里不考慮每個域內(nèi)節(jié)點和節(jié)點之間的鏈路。
如圖7所示,在本發(fā)明中,步驟s10包括以下步驟:
步驟s11、受同一個多域控制器控制的每個單域控制器通過lldp協(xié)議發(fā)現(xiàn)對應(yīng)域內(nèi)的節(jié)點和鏈路;
步驟s12、每個單域控制器根據(jù)其域內(nèi)的節(jié)點和節(jié)點間鏈路關(guān)系分別構(gòu)建對應(yīng)的域內(nèi)拓?fù)浣Y(jié)構(gòu),構(gòu)建完成后,在各個單域控制器內(nèi)會形成一張由域內(nèi)節(jié)點和節(jié)點間鏈路組成的域內(nèi)拓?fù)湟晥D,以圖1為例,其中,第一單域控制器10、第二單域控制器20和第三單域控制器30構(gòu)建的域內(nèi)拓?fù)浣Y(jié)構(gòu)對應(yīng)的拓?fù)湟晥D分別如圖3、圖4、圖5所示;
步驟s13、多域控制器通過靜態(tài)配置域間鏈路或lldp自動發(fā)現(xiàn)方式發(fā)現(xiàn)受其控制的域和域間的鏈路;
步驟s14、多域控制器根據(jù)其控制的域和域間的鏈路關(guān)系構(gòu)建域間拓?fù)浣Y(jié)構(gòu),完成后,在多域控制器會形成一張由域和域間鏈路組成的域間拓?fù)湟晥D,以圖1為例,其多域控制器構(gòu)建的域間拓?fù)浣Y(jié)構(gòu)對應(yīng)的拓?fù)湟晥D如圖6所示;
步驟s15、每個單域控制器通過北向接口向多域控制器上報其域內(nèi)所有節(jié)點的域標(biāo)識信息,多域控制器記錄所有節(jié)點的所在域標(biāo)識信息。
步驟s20、根據(jù)app發(fā)送的跨域業(yè)務(wù)建立請求,多域控制器基于域間拓?fù)浣Y(jié)構(gòu)計算所有源節(jié)點所在域(源域)到宿節(jié)點所在域(宿域)經(jīng)過的域序列;從源域到宿域可能包括多個域序列,即從源域到宿域存在多個路徑,每個所述域序列由源節(jié)點、從源節(jié)點到宿節(jié)點經(jīng)過的域的邊界節(jié)點和宿節(jié)點組成,除源節(jié)點和宿節(jié)點所在的源域和宿域,其它域序列經(jīng)過的域為中間域,中間域的邊界節(jié)點包括源邊界節(jié)點和宿邊界節(jié)點,以圖6的域間拓?fù)浣Y(jié)構(gòu)對應(yīng)的拓?fù)湟晥D為例,假設(shè)每一個域間鏈路都滿足路由約束,多域控制器會計算出四個域序列,分別為:
s-bn11-bn21-bn23-bn31-d;
s-bn11-bn21-bn24-bn32-d;
s-bn12-bn22-bn23-bn31-d;
s-bn12-bn22-bn24-bn32-d。
如圖8所示,在本發(fā)明中,步驟s20包括以下步驟:
步驟s21、多域控制器接收app通過北向接口發(fā)來的跨域業(yè)務(wù)建立請求,以圖1為例,建立從第一域1的源節(jié)點s到第三域3的宿節(jié)點d的跨域業(yè)務(wù);
步驟s22、多域控制器解析業(yè)務(wù)建立請求,提取源節(jié)點和宿節(jié)點;
步驟s23、多域控制器查找所提取源節(jié)點和宿節(jié)點各自所在的域標(biāo)識信息,并判斷源節(jié)點與宿節(jié)點的域是否相同,如果不同,為跨域業(yè)務(wù)請求,執(zhí)行步驟s24;否則,進(jìn)入域內(nèi)路徑計算;
步驟s24、觸發(fā)跨域路徑計算;
步驟s25、多域控制器基于域間拓?fù)浣Y(jié)構(gòu),計算從源域到宿域所有可能經(jīng)過的域序列。
步驟s30、多域控制器通過北向接口向域序列中各個域的單域控制器發(fā)起域內(nèi)路徑計算請求;每個域的單域控制器接收域內(nèi)路徑計算請求后根據(jù)其域內(nèi)拓?fù)浣Y(jié)構(gòu)計算域內(nèi)路徑,并將域內(nèi)路徑計算結(jié)果發(fā)送給多域控制器;
在本發(fā)明中,域序列經(jīng)過源域、中間域和宿域;多域控制器通過北向接口向域序列中各個域的單域控制器發(fā)起域內(nèi)路徑計算請求包括:
(1)多域控制器通過北向接口向域序列中的源域的單域控制器發(fā)起的源節(jié)點到域序列中源域的邊界節(jié)點的域內(nèi)路徑計算請求;以根據(jù)如圖6所示的域間拓?fù)浣Y(jié)構(gòu)計算得到的域序列為例,多域控制器40向第一單域控制器10發(fā)起的域內(nèi)路徑計算請求為:源節(jié)點s到邊界節(jié)點bn11和源節(jié)點s到邊界節(jié)點bn12;此時第一單域控制器10的域內(nèi)路徑計算結(jié)果為兩條域內(nèi)路徑,分別為s-bn11、s-bn12。
(2)多域控制器通過北向接口向域序列中的中間域的單域控制器(除去源域和宿域的其它域的統(tǒng)稱)發(fā)起域序列中的其域內(nèi)的源邊界節(jié)點到宿邊界節(jié)點的域內(nèi)路徑計算請求;以根據(jù)如圖6所示的域間拓?fù)浣Y(jié)構(gòu)計算得到的域序列為例,多域控制器40向第二單域控制器20發(fā)起的域內(nèi)路徑計算請求為:源邊界節(jié)點bn21到宿邊界節(jié)點bn23、源邊界節(jié)點bn21到宿邊界節(jié)點bn24以及源邊界節(jié)點bn22到宿邊界節(jié)點bn23和源邊界節(jié)點bn22到宿邊界節(jié)點bn24;假設(shè)鏈路bn22-bn24不滿足路由約束,此時第二單域控制器20的域內(nèi)路徑計算結(jié)果為四條域內(nèi)路徑,分別為bn21-bn23、bn21-bn23-bn24、bn22-bn21-bn23、bn22-bn21-bn23-bn24。
(3)多域控制器通過北向接口向宿域的單域控制器發(fā)起域序列中的宿域的邊界節(jié)點到宿節(jié)點的域內(nèi)路徑計算請求。多域控制器40向第三單域控制器30發(fā)起的域內(nèi)路徑計算請求為:邊界節(jié)點bn31到宿節(jié)點d、邊界節(jié)點bn32-到宿節(jié)點d;此時第三單域控制器30的域內(nèi)路徑計算結(jié)果為兩條域內(nèi)路徑,分別為bn31-d、bn32-d。
步驟s40、多域控制器根據(jù)域序列涉及的各個域的單域控制器響應(yīng)的域內(nèi)路徑計算結(jié)果和域間鏈路,相互組合得到多條從源節(jié)點到宿節(jié)點的完整端到端跨域路徑;以圖6中第一單域控制器10、第二單域控制器20和第三單域控制器30返回的域內(nèi)路徑計算結(jié)果和域間鏈路為例,多域控制器會組裝出四條跨域路徑,分別為:
s-bn11-bn21-bn23-bn31-d;
s-bn11-bn21-bn23-bn24-bn32-d;
s-bn12-bn22-bn21-bn23-bn31-d;
s-bn12-bn22-bn21-bn23-bn24-bn32-d。
步驟s50、多域控制器根據(jù)路由最優(yōu)策略從多條端到端跨域路徑中選擇出一條最優(yōu)的路徑作為多域路徑;在本發(fā)明中,路由最優(yōu)策略為最少跳數(shù)為最優(yōu),則此時多域控制器選擇的最優(yōu)路徑為s-bn11-bn21-bn23-bn31-d。
顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進(jìn)行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。