本發(fā)明涉及網(wǎng)絡(luò)技術(shù)領(lǐng)域,尤其涉及一種應(yīng)用在相互連線的異質(zhì)網(wǎng)絡(luò)中一旦發(fā)生網(wǎng)絡(luò)異常時能立即重建生成樹的方法、備援方法與其控制系統(tǒng)。
背景技術(shù):
軟件定義網(wǎng)絡(luò)(Software-Defined Networks,SDN)為一種新一代的網(wǎng)絡(luò)架構(gòu),其利用集中式的控制器(controller)取代過往分散式網(wǎng)絡(luò)系統(tǒng)中交換機(switch)的控制平面(control plane),軟件定義網(wǎng)絡(luò)讓其中的交換機只需負責(zé)數(shù)據(jù)平面(data plane)的部分,使得集中式的控制器可以達到對控制需求的優(yōu)化。
軟件定義網(wǎng)絡(luò)采用的集中式控制器可以實現(xiàn)拓撲(topology)的優(yōu)化與較佳的路徑規(guī)劃等。此外通過一種封包轉(zhuǎn)送的開放流(OpenFlow)協(xié)定使得控制器和交換機之間的溝通有一個標準且公開的準則,如此一來就不用受限于各家開發(fā)廠商自訂的規(guī)范,進而使得網(wǎng)絡(luò)管理者可以撰寫或是優(yōu)化自己想要的控制器的各種應(yīng)用(applications),進而達到具多功能性的應(yīng)用模塊。
因此,軟件定義網(wǎng)絡(luò)顯然有強大的功能以及優(yōu)勢,在未來勢必能夠統(tǒng)領(lǐng)整個網(wǎng)絡(luò)系統(tǒng),然而,將所有傳統(tǒng)網(wǎng)絡(luò)(legacy network)以軟件定義網(wǎng)絡(luò)取代時,無法于短時間內(nèi)將所有的傳統(tǒng)交換機(legacy switch)全部置換成軟件定義網(wǎng)絡(luò)的交換機。理由包括,軟件定義網(wǎng)絡(luò)的交換機價錢昂貴、替換的過程中也需要大量時間測試,因此無法快速普及。再者,軟件定義網(wǎng)絡(luò)所采用的集中式管理的機制使其規(guī)模受限,因此當要置換傳統(tǒng)網(wǎng)絡(luò)時,軟件定義網(wǎng)絡(luò)以目前的技術(shù)來看,勢必還要再做出許多調(diào)整,需要一段過渡期,這表示這段時間內(nèi)的網(wǎng)絡(luò)極有可能會出現(xiàn)軟件定義網(wǎng)絡(luò)和傳統(tǒng)網(wǎng)絡(luò)共同存在的情況,這類的網(wǎng)絡(luò)我們稱為混合網(wǎng)絡(luò)(hybrid network)。
由于軟件定義網(wǎng)絡(luò)(SDN)在完全取代傳統(tǒng)網(wǎng)絡(luò)前需要一段過渡期,在此過渡期會有軟件定義網(wǎng)絡(luò)與傳統(tǒng)網(wǎng)絡(luò)共存的情況。實體網(wǎng)絡(luò)拓撲因為容錯 (fault tolerance)的緣故通常都具有回圈,但在具有回圈的實體網(wǎng)絡(luò)拓撲上會產(chǎn)生著名的封包廣播風(fēng)暴(packet broadcast storm)的嚴重問題,因此需要執(zhí)行用來產(chǎn)生生成樹的通信協(xié)定。適用軟件定義網(wǎng)絡(luò)(SDN)生成樹的機制和適用傳統(tǒng)網(wǎng)絡(luò)的生成樹的機制有很大差異,因此傳統(tǒng)網(wǎng)絡(luò)中用來產(chǎn)生生成樹的通信協(xié)定無法運用于軟件定義網(wǎng)絡(luò),因此無法在此混合網(wǎng)絡(luò)中產(chǎn)生出一個涵蓋整個網(wǎng)絡(luò)拓撲的生成樹,因此在具有回圈的實體混合網(wǎng)絡(luò)拓撲上就會產(chǎn)生著名的封包廣播風(fēng)暴(packet broadcast storm)的嚴重問題。
技術(shù)實現(xiàn)要素:
為解決異質(zhì)網(wǎng)絡(luò)連接時可能產(chǎn)生的封包廣播風(fēng)暴,以及解決異質(zhì)網(wǎng)絡(luò)間生成樹的管理,本發(fā)明提出一種混合型網(wǎng)絡(luò)生成樹建立方法、備援方法與相關(guān)系統(tǒng),其主要應(yīng)用于由至少一軟件定義網(wǎng)絡(luò)與至少一非軟件定義網(wǎng)絡(luò)建立的混合型網(wǎng)絡(luò)系統(tǒng)上。
根據(jù)實施例,在此混合型網(wǎng)絡(luò)生成樹建立方法中,應(yīng)用于由至少一軟件定義網(wǎng)絡(luò)與至少一非軟件定義網(wǎng)絡(luò)建立的一混合型網(wǎng)絡(luò)系統(tǒng),提供一控制器,用以收集至少一軟件定義網(wǎng)絡(luò)與至少一非軟件定義網(wǎng)絡(luò)的網(wǎng)絡(luò)封包,在此混合型網(wǎng)絡(luò)系統(tǒng)中,軟件定義網(wǎng)絡(luò)中具有至少一節(jié)點,與非軟件定義網(wǎng)絡(luò)中的至少一節(jié)點連線。接著,經(jīng)查詢網(wǎng)絡(luò)封包內(nèi)識別信息,可以獲得混合型網(wǎng)絡(luò)系統(tǒng)的網(wǎng)絡(luò)拓撲的信息,據(jù)以建立一虛擬網(wǎng)絡(luò)拓撲。之后,經(jīng)取得混合型網(wǎng)絡(luò)系統(tǒng)中軟件定義網(wǎng)絡(luò)的封包的路徑延遲與路徑頻寬信息,以及非軟件定義網(wǎng)絡(luò)的路徑延遲與路徑頻寬信息,可以建立此混合型網(wǎng)絡(luò)上的所有或部分生成樹,每個生成樹具有一平均路徑延遲與一平均路徑頻寬,產(chǎn)生一對應(yīng)價值。
于一實施例中,該控制器為原本用于該軟件定義網(wǎng)絡(luò)中的控制器。
于一實施例中,在此生成樹建立方法中,軟件定義網(wǎng)絡(luò)以一開放流(OpenFlow)的命令收集軟件定義網(wǎng)絡(luò)中的拓撲信息和每條線路的路徑延遲與路徑頻寬信息。
于一實施例中,該控制器根據(jù)一鏈路層發(fā)現(xiàn)協(xié)議定時取得軟件定義網(wǎng)絡(luò)的網(wǎng)絡(luò)拓撲的信息。
于一實施例中,軟件定義網(wǎng)絡(luò)控制器會從收到的網(wǎng)橋協(xié)議數(shù)據(jù)單元(BPDU)網(wǎng)絡(luò)封包中取得識別數(shù)據(jù),以判別軟件定義網(wǎng)絡(luò)和非軟件定義網(wǎng)絡(luò) 各網(wǎng)段彼此間的連接狀況。再結(jié)合上述控制器取得的軟件定義網(wǎng)絡(luò)拓撲信息,可獲得混合型網(wǎng)絡(luò)系統(tǒng)整體拓撲的信息。
于一實施例中,該非軟件定義網(wǎng)絡(luò)根據(jù)網(wǎng)橋協(xié)議數(shù)據(jù)單元的封包內(nèi)部所攜帶的路徑消耗資源估算該非軟件定義網(wǎng)絡(luò)內(nèi)部的終端節(jié)點與該軟件定義網(wǎng)絡(luò)的交換器端口之間的路徑距離。
于一實施例中,還包括根據(jù)每一生成樹的對應(yīng)價值進行排序,以取得一最佳的生成樹。
于一實施例中,還對各生成樹所具有的該平均路徑延遲與該平均路徑頻寬制定一加權(quán),以設(shè)定對該平均路徑延遲與該平均路徑頻寬這兩個數(shù)值效能指標的相對重視程度。
在應(yīng)用于混合型網(wǎng)絡(luò)生成樹建立方法的備援技術(shù)中,建立該混合型網(wǎng)絡(luò)上的所有或部分生成樹,其中每個生成樹的對應(yīng)價值為依據(jù)平均路徑延遲與平均路徑頻寬得出,,對所有或部分生成樹排序,自所取得的網(wǎng)絡(luò)封包偵測混合型網(wǎng)絡(luò)系統(tǒng)有異常時,可以根據(jù)排序切換另一生成樹。
于一實施例中,根據(jù)網(wǎng)絡(luò)封包所攜帶的路徑信息判斷是否有線路頻寬過小、延遲過長,或斷線。
于一實施例中,還對各生成樹所具有的該平均路徑延遲與該平均路徑頻寬制定一加權(quán),以設(shè)定對該平均路徑延遲與該平均路徑頻寬這兩個數(shù)值效能指標的相對重視程度。而在混合型網(wǎng)絡(luò)生成樹的控制系統(tǒng)的實施例中,相關(guān)的功能模塊主要包括一封包取得模塊,用以收集至少一軟件定義網(wǎng)絡(luò)以及至少一非軟件定義網(wǎng)絡(luò)的網(wǎng)絡(luò)封包,其中該軟件定義網(wǎng)絡(luò)中具有至少一節(jié)點,與該非軟件定義網(wǎng)絡(luò)中的至少一節(jié)點連線;一封包分析模塊,自封包取得模塊取得的網(wǎng)絡(luò)封包解析得出其中的識別信息與路徑信息;一拓撲形成模塊,經(jīng)封包分析模塊解析的信息,藉其中識別信息獲得混合型網(wǎng)絡(luò)系統(tǒng)的網(wǎng)絡(luò)拓撲的信息,以建立混合型網(wǎng)絡(luò)系統(tǒng)的拓撲;以及一生成樹建立模塊,藉路徑信息估算出混合型網(wǎng)絡(luò)系統(tǒng)的一平均路徑延遲與一平均路徑頻寬,建立混合型網(wǎng)絡(luò)系統(tǒng)的所有或部分生成樹,并取得每個生成樹對應(yīng)價值。
于一實施例中,還包括一輸出入模塊,連接該至少一軟件定義網(wǎng)絡(luò)的交換器。
于一實施例中,還包括一端口控制模塊,當該混合型網(wǎng)絡(luò)系統(tǒng)運行于特 定生成樹時,該端口控制模塊根據(jù)生成樹的路徑進行端口控制。
于一實施例中,還包括一管理界面模塊,為提供管理者通過一管理電腦管理該控制系統(tǒng)。
通過本發(fā)明,在混合網(wǎng)絡(luò)中產(chǎn)生可以涵蓋整個網(wǎng)絡(luò)拓撲的生成樹,解決現(xiàn)有技術(shù)中在具有回圈的混合網(wǎng)絡(luò)拓撲上產(chǎn)生封包廣播風(fēng)暴問題。
為了能更進一步了解本發(fā)明為實現(xiàn)既定目的所采取的技術(shù)、方法及功效,請參閱以下有關(guān)本發(fā)明的詳細說明、附圖,相信本發(fā)明的目的、特征與特點,當可由此得以深入且具體的了解,然而附圖說明書附圖僅提供參考與說明用,并非用來對本發(fā)明加以限制者。
附圖說明
圖1A顯示軟件定義網(wǎng)絡(luò)與傳統(tǒng)網(wǎng)絡(luò)連接形成的混合型網(wǎng)絡(luò)系統(tǒng)的實施態(tài)樣示意圖之一;
圖1B顯示軟件定義網(wǎng)絡(luò)與傳統(tǒng)網(wǎng)絡(luò)連接形成的混合型網(wǎng)絡(luò)系統(tǒng)的實施態(tài)樣示意圖之二;
圖1C顯示軟件定義網(wǎng)絡(luò)與傳統(tǒng)網(wǎng)絡(luò)連接形成的混合型網(wǎng)絡(luò)系統(tǒng)的實施態(tài)樣示意圖之三;
圖2A顯示混合型網(wǎng)絡(luò)架構(gòu)示意圖之一;
圖2B顯示在2A混合型網(wǎng)絡(luò)架構(gòu)上產(chǎn)生的一種可能生成樹示意圖;
圖3A顯示混合型網(wǎng)絡(luò)拓撲示意圖之二;
圖3B顯示在3A混合型網(wǎng)絡(luò)拓撲上產(chǎn)生的一種可能生成樹示意圖;
圖3C顯示在3A混合型網(wǎng)絡(luò)拓撲上產(chǎn)生的另一種可能的生成樹示意圖;
圖4顯示本發(fā)明混合型網(wǎng)絡(luò)生成樹建立方法的實施例流程圖;
圖5顯示實現(xiàn)本發(fā)明混合型網(wǎng)絡(luò)生成樹建立方法的控制系統(tǒng)的功能模塊實施例圖之一;
圖6顯示實現(xiàn)本發(fā)明混合型網(wǎng)絡(luò)生成樹建立方法的控制系統(tǒng)的功能模塊實施例圖之二;
圖7顯示應(yīng)用本發(fā)明混合型網(wǎng)絡(luò)生成樹建立方法的生成樹重建流程實施例圖;
圖8顯示應(yīng)用本發(fā)明混合型網(wǎng)絡(luò)生成樹建立方法的生成樹備援流程實施 例圖。
附圖標記說明:
軟件定義網(wǎng)絡(luò)一11 軟件定義網(wǎng)絡(luò)二13
傳統(tǒng)網(wǎng)絡(luò)12 網(wǎng)絡(luò)連線101,102
節(jié)點111,112,113,114
節(jié)點115,116 網(wǎng)絡(luò)連線103
新增傳統(tǒng)網(wǎng)絡(luò)14 網(wǎng)絡(luò)連線104,105
節(jié)點115,117,118,119
控制器20 軟件定義網(wǎng)絡(luò)SDN1,SDN2
傳統(tǒng)網(wǎng)絡(luò)N1
節(jié)點2011,2012,2013,2014,2015,2016,2017,2018,2019
節(jié)點2111,2112,2113,2114
第一終端節(jié)點201 第二終端節(jié)點202
軟件定義網(wǎng)絡(luò)31,33,35,36,37
傳統(tǒng)網(wǎng)絡(luò)32,34,38,39 控制器30
終端節(jié)點301,302,303,304,305,306,307,308,309
封包取得模塊501 封包分析模塊503
拓撲形成模塊505 生成樹建立模塊507
交換器621,622,623管理電腦615
控制器60 輸出入模塊601
封包取得模塊603 封包分析模塊605
管理界面模塊607 偵測模塊609
端口控制模塊611 拓撲形成模塊613
生成樹建立模塊615 存儲模塊617
步驟S401~S413混合型網(wǎng)絡(luò)生成樹建立流程
步驟S701~S707生成樹重建流程
步驟S801~S805生成樹備援流程
具體實施方式
由于軟件定義網(wǎng)絡(luò)(SDN)在完全取代傳統(tǒng)網(wǎng)絡(luò)前需要一段過渡期,在 此過渡期會有軟件定義網(wǎng)絡(luò)與傳統(tǒng)網(wǎng)絡(luò)共存的情況,兩者生成樹的機制有很大差異,使得傳統(tǒng)網(wǎng)絡(luò)中用來產(chǎn)生生成樹的通信協(xié)定無法用于軟件定義網(wǎng)絡(luò),也難以解決因為回圈形成在實體網(wǎng)絡(luò)拓撲上的封包廣播風(fēng)暴(packet broadcast storm)的問題,本發(fā)明公開書所公開的技術(shù)即對此提出解決方案,關(guān)于應(yīng)用在相互連線的異質(zhì)網(wǎng)絡(luò)中一旦發(fā)生網(wǎng)絡(luò)異常時能立即重建生成樹的方法、備援方法與其控制系統(tǒng)。
根據(jù)本發(fā)明公開書所載實施例之一,所提出的混合型網(wǎng)絡(luò)生成樹建立方法,就是應(yīng)用在相互連接的兩種以上異質(zhì)網(wǎng)絡(luò)(heterogeneous networks)的網(wǎng)絡(luò)系統(tǒng)中,混合異質(zhì)網(wǎng)絡(luò)的網(wǎng)絡(luò)系統(tǒng)例如軟件定義網(wǎng)絡(luò)(SDN)與非軟件定義網(wǎng)絡(luò)(non-SDN),其中應(yīng)用在軟件定義網(wǎng)絡(luò)中的控制系統(tǒng)能夠從收集到各網(wǎng)段上的封包分析出的信息產(chǎn)生新的生成樹,以停用(disable)多余的網(wǎng)絡(luò)線路(links)的方式來解決兩個以上異質(zhì)網(wǎng)絡(luò)中的廣播風(fēng)暴問題。
先參考圖1A顯示軟件定義網(wǎng)絡(luò)(11,13)與傳統(tǒng)網(wǎng)絡(luò)(12)連接形成的混合型網(wǎng)絡(luò)系統(tǒng)的實施態(tài)樣示意圖,此例在軟件定義網(wǎng)絡(luò)一11與如傳統(tǒng)網(wǎng)絡(luò)12的非軟件定義網(wǎng)絡(luò)之間僅有一條網(wǎng)絡(luò)連線101,界接著兩個網(wǎng)段中的節(jié)點(111,112);軟件定義網(wǎng)絡(luò)二13與傳統(tǒng)網(wǎng)絡(luò)12之間同樣也僅有一條網(wǎng)絡(luò)連線102,界接著兩個網(wǎng)段中的節(jié)點(113,114)。如此在這兩個網(wǎng)絡(luò)之間并不會有造成封包廣播風(fēng)暴的回圈,使得此類網(wǎng)絡(luò)拓撲可以順利運行。
然而如圖1B所示的另一實施態(tài)樣,此例顯示,除了如圖1A所示軟件定義網(wǎng)絡(luò)一11與傳統(tǒng)網(wǎng)絡(luò)12中節(jié)點111,112之間的連線101之外,還在分別坐落于軟件定義網(wǎng)絡(luò)一11與傳統(tǒng)網(wǎng)絡(luò)12的節(jié)點115,116之間具有另一網(wǎng)絡(luò)連線103。如此,在這兩個網(wǎng)段(11,12)之間有兩個會造成回圈的網(wǎng)絡(luò)連線101,103,在一般機制下無法避免封包廣播風(fēng)暴的問題。
接著如圖1C所示的混合型網(wǎng)絡(luò)系統(tǒng)的實施態(tài)樣,其中顯示在軟件定義網(wǎng)絡(luò)一11與軟件定義網(wǎng)絡(luò)二13之間具有兩個傳統(tǒng)網(wǎng)絡(luò)12,14,如此復(fù)雜度增加的網(wǎng)絡(luò)連線中,如果稍不注意,就有可能產(chǎn)生網(wǎng)絡(luò)回圈,例如本例就是在不同的網(wǎng)段之間產(chǎn)生的網(wǎng)絡(luò)回圈,如此也是無法避免封包廣播風(fēng)暴。
此例顯示,軟件定義網(wǎng)絡(luò)一11、傳統(tǒng)網(wǎng)絡(luò)12與軟件定義網(wǎng)絡(luò)二13之間的網(wǎng)絡(luò)連線(101,102)如圖1A所示,彼此之間可能不會形成網(wǎng)絡(luò)回圈。除此之外,此例另設(shè)新增傳統(tǒng)網(wǎng)絡(luò)14,同樣連接在兩個軟件定義網(wǎng)絡(luò)(11,13) 之間,不過連接關(guān)新增包括軟件定義網(wǎng)絡(luò)11節(jié)點115與新增傳統(tǒng)網(wǎng)絡(luò)14節(jié)點117之間的網(wǎng)絡(luò)連線104;另一端,新增傳統(tǒng)網(wǎng)絡(luò)14節(jié)點118與軟件定義網(wǎng)絡(luò)二13節(jié)點119之間的網(wǎng)絡(luò)連線105。這個網(wǎng)絡(luò)拓撲因為網(wǎng)絡(luò)連線101,102,104與105形成了回圈,即便分別來看,不同網(wǎng)段之間并未形成網(wǎng)絡(luò)回圈,但整體網(wǎng)絡(luò)系統(tǒng)卻形成了網(wǎng)絡(luò)回圈,同樣使得廣播封包在整個拓撲中不斷繞行,無法避免封包廣播風(fēng)暴的問題。
針對以上幾種可能會形成網(wǎng)絡(luò)回圈的網(wǎng)絡(luò)拓撲,本發(fā)明公開書所提出的混合型網(wǎng)絡(luò)生成樹建立方法中,其目的之一即提供在混合型網(wǎng)絡(luò)中建構(gòu)出一個生成樹,并在特定實施例中,可以依照網(wǎng)絡(luò)管理者的需求,讓這個生成樹的形狀可以依照網(wǎng)絡(luò)管理者重視生成樹的平均網(wǎng)絡(luò)路徑頻寬或平均網(wǎng)絡(luò)路徑延遲等的需求來修正為不同的生成樹。
接著如圖2A所示的混合型網(wǎng)絡(luò)的架構(gòu)示意圖,其中示意表示當軟件定義網(wǎng)絡(luò)(SDN1、SDN2)與傳統(tǒng)網(wǎng)絡(luò)(N1)連接時,軟件定義網(wǎng)絡(luò)的交換機將與傳統(tǒng)網(wǎng)絡(luò)的交換機連接。其中節(jié)點數(shù)量以及所呈現(xiàn)的拓撲都非限制本發(fā)明實施范圍。
常見軟件交換網(wǎng)絡(luò)采用一種開放流(OpenFlow)標準所定義的信息溝通協(xié)定,但卻與傳統(tǒng)交換機無法直接信息溝通,因此軟件定義網(wǎng)絡(luò)中的交換機會先以廣播(broadcast)的方式傳送封包,如此一來,當封包進入傳統(tǒng)網(wǎng)絡(luò)時,如果軟件定義網(wǎng)絡(luò)與傳統(tǒng)網(wǎng)絡(luò)之間的路徑形成回圈,就有封包廣播風(fēng)暴的問題,于是本發(fā)明公開書所提出的混合型網(wǎng)絡(luò)生成樹建立方法將通過演算法,找到多余的線路,并停用這些多余的線路,破壞掉網(wǎng)絡(luò)回圈,因此可以避免封包廣播風(fēng)暴。
圖2A示意顯示左方有個軟件定義網(wǎng)絡(luò)SDN1,右方則有另一軟件定義網(wǎng)絡(luò)SDN2,兩個軟件定義網(wǎng)絡(luò)SDN1,SDN2都連接如中間部分的傳統(tǒng)網(wǎng)絡(luò)N1,其中每個圓圈顯示各網(wǎng)段內(nèi)的節(jié)點(如交換機)。比如軟件定義網(wǎng)絡(luò)SDN1由節(jié)點2011,2012,2013與2014組成,軟件定義網(wǎng)絡(luò)SDN2由節(jié)點2015,2016,2017,2018與2019組成,傳統(tǒng)網(wǎng)絡(luò)N1則以節(jié)點2111,2112,2113與2114組成。軟件定義網(wǎng)絡(luò)SDN1,SDN2的特性就是由一個控制器20以集中式的拓撲連線到軟件定義網(wǎng)絡(luò)SDN1,SDN2中的各節(jié)點(2011,2012,2013,2014,2015,2016,2017,2018,2019)。而非軟件定義網(wǎng)絡(luò)則一般為分散式管理,每個節(jié)點裝置(如 交換器)彼此交換信息,建立封包路由表,依此轉(zhuǎn)送封包,沒有集中管理的機制。
從此圖例中可知,不同網(wǎng)段(SDN1,SDN2,N1)之間形成回圈,整個拓撲也形成一個大的回圈。列舉一情境,附圖左邊有第一終端節(jié)點201,連接著軟件定義網(wǎng)絡(luò)SDN1的節(jié)點2012,右方有第二終端節(jié)點202,連接軟件定義網(wǎng)絡(luò)SDN2的節(jié)點2016。當?shù)谝唤K端節(jié)點201欲發(fā)送封包(如ping封包)至第二終端節(jié)點202時,在沒有回避回圈的情況下,因為途經(jīng)每一個節(jié)點都會在網(wǎng)絡(luò)協(xié)定下產(chǎn)生廣播封包,經(jīng)過模擬將瞬間產(chǎn)生封包廣播風(fēng)暴,幾乎癱瘓掉整個網(wǎng)絡(luò)系統(tǒng)。
于是,在實施本發(fā)明所提出的混合型網(wǎng)絡(luò)生成樹建立方法下時,示意顯示如圖2B,根據(jù)此拓撲產(chǎn)生的生成樹會將其中多余的線路停用,以破除回圈,于是,如圖2B所示,封包在傳送時會順著單一的路徑直接傳送到目的地,也就是有第一終端節(jié)點201傳遞到有第二終端節(jié)點202的封包可沿著其中各網(wǎng)段的節(jié)點(順序為:2012,2014,2112,2114,2018,2016)傳送封包,而不會產(chǎn)生封包廣播風(fēng)暴而在整個網(wǎng)絡(luò)中蔓延。
此例的網(wǎng)絡(luò)拓撲顯示第一終端節(jié)點201到第二終端節(jié)點202之間的線路可有多種路徑,根據(jù)本發(fā)明公開書所提出的混合型網(wǎng)絡(luò)生成樹建立方法,其中軟件定義網(wǎng)絡(luò)的控制器20可以根據(jù)所收集各網(wǎng)段的封包信息得到傳輸延遲與頻寬等的信息,并據(jù)此運算建立兩個節(jié)點之間的生成樹,其中自然排除多余的線路,可以在最有效率的狀態(tài)下傳遞封包,并同時避免封包廣播風(fēng)暴。此例顯示所停用的網(wǎng)絡(luò)連線有軟件定義網(wǎng)絡(luò)SDN1的節(jié)點2011與傳統(tǒng)網(wǎng)絡(luò)N1的節(jié)點2111的線路;軟件定義網(wǎng)絡(luò)SDN1的節(jié)點2013與傳統(tǒng)網(wǎng)絡(luò)N1的節(jié)點2114的線路;軟件定義網(wǎng)絡(luò)SDN2的節(jié)點2015與傳統(tǒng)網(wǎng)絡(luò)N1的節(jié)點2111的線路;以及軟件定義網(wǎng)絡(luò)SDN2的節(jié)點2019與傳統(tǒng)網(wǎng)絡(luò)N1的節(jié)點2113的線路。
此外由于網(wǎng)絡(luò)可能會發(fā)生線路斷線的情況,本發(fā)明所提出的生成樹建立方法中,可預(yù)先計算當每一個線路斷線時的最佳備用生成樹,如此,在需要轉(zhuǎn)換生成樹時,可以迅速切換至事先產(chǎn)生好的最佳備用生成樹,讓網(wǎng)絡(luò)使用者幾乎無察覺到網(wǎng)絡(luò)生成樹的切換。相關(guān)實施例可參考圖8所描述的流程。
根據(jù)以上實施方式,本發(fā)明所提出的方法不僅將網(wǎng)絡(luò)系統(tǒng)中多余的線路 停用,還可以在全部的網(wǎng)絡(luò)拓撲上(包含軟件定義網(wǎng)絡(luò)和傳統(tǒng)網(wǎng)絡(luò))形成一個最佳的生成樹,這個最佳化是依照網(wǎng)絡(luò)管理者的需求,針對生成樹的平均路徑頻寬還有平均路徑延遲的相對要求所建構(gòu)出來的。
相關(guān)實施例可參考圖3A、圖3B以及圖3C。
在如圖3A所示的混合型網(wǎng)絡(luò)系統(tǒng)下,當中的軟件定義網(wǎng)絡(luò)(31,33,35,36,37)則是直接連線到控制器30,也受控于控制器30的集中式管理,而控制器30則是采用開放流(Open Flow)標準所定義的信息溝通協(xié)定,將原本存在于如交換器(Switch)的節(jié)點中的控制平面(control plane)自數(shù)據(jù)平面(data plane)分離出來,也就是將封包路由的機制轉(zhuǎn)由控制器30處理,規(guī)范網(wǎng)絡(luò)節(jié)點(如交換器)和控制器30之間的溝通協(xié)議,負責(zé)計算網(wǎng)絡(luò)的最佳路徑,再通過Open Flow協(xié)定控制交換器對數(shù)據(jù)流的轉(zhuǎn)送。
圖3A示意顯示一個混合了軟件定義網(wǎng)絡(luò)(實線圓圈:31,33,35,36,37)與傳統(tǒng)網(wǎng)絡(luò)(虛線圓圈:32,34,38,39)的網(wǎng)絡(luò)系統(tǒng)的拓撲,其中每個圓圈都表示一個網(wǎng)段,每個網(wǎng)段都包括多個交換機(未示于圖中),每個網(wǎng)段之間可以一或多條連線與鄰近的網(wǎng)段連線。附圖中,實線圓圈表示的軟件定義網(wǎng)絡(luò)31,33,35,36,37都連線到控制器30,處理各軟件定義網(wǎng)絡(luò)之間的封包轉(zhuǎn)送與建立生成樹,期間還混合了虛線圓圈表示的傳統(tǒng)網(wǎng)絡(luò)32,34,38,39。
每個網(wǎng)段都設(shè)有一或多個終端節(jié)點,如軟件定義網(wǎng)絡(luò)31,33,35,36與37分別設(shè)有代表性的終端節(jié)點301,303,305,306與307;傳統(tǒng)網(wǎng)絡(luò)32,34,38與39也分別設(shè)有代表性的終端節(jié)點302,304,308與309。在此網(wǎng)絡(luò)系統(tǒng)運行下,控制器30除了處理軟件定義網(wǎng)絡(luò)31,33,35,36,37各節(jié)點之間的封包轉(zhuǎn)送與路徑管理,還在本發(fā)明生成樹建立方法的機制下,處理異質(zhì)網(wǎng)絡(luò)之間的生成樹管理。
此混合型網(wǎng)絡(luò)系統(tǒng)運行中,每個終端節(jié)點301,302,303,304,305,306,307,308,309都會產(chǎn)生網(wǎng)絡(luò)流量,并可能相互影響封包傳遞效能,本發(fā)明公開書所公開的混合型網(wǎng)絡(luò)生成樹方法會依照網(wǎng)絡(luò)系統(tǒng)中的幾個參數(shù)值進行評估,建立不同條件下的最佳生成樹。從網(wǎng)絡(luò)上收集的封包可以至少可以得到該封包的往來信息(來源與目的地)、估計網(wǎng)絡(luò)系統(tǒng)中的路徑頻寬與路徑延遲,特別可運算得到平均路徑頻寬與平均路徑延遲。示意圖可參考圖3B與圖3C,分別示意表示在不同的需求下根據(jù)平均路徑頻寬與平均路徑延遲形成不同的生 成樹。
舉例來說,根據(jù)管理者的設(shè)定,網(wǎng)絡(luò)系統(tǒng)的生成樹建立可以同時強調(diào)生成樹的平均路徑頻寬要大且平均路徑延遲要小,這是一個較為平衡的需求,所產(chǎn)生的生成樹可能是一種,如圖3B,其中描繪出多個終端節(jié)點之間的路徑規(guī)劃,此圖忽略每個網(wǎng)段內(nèi)節(jié)點之間的繞行路徑。圖3C則顯示不同于圖3B的生成樹,理由主要是對于平均路徑頻寬與平均路徑延遲有不同的權(quán)重設(shè)定,比如只強調(diào)生成樹的平均路徑頻寬要高,而忽略平均路徑延遲;或是只強調(diào)生成樹平均路徑延遲要小,卻又忽略了平均路徑頻寬。這可能發(fā)生在各種網(wǎng)絡(luò)功能的需求有所不同的情況下,如以影音通信為主的網(wǎng)絡(luò)系統(tǒng),對網(wǎng)絡(luò)延遲要求較高,因此可能較為強調(diào)平均路徑延遲要?。蝗粢詳?shù)據(jù)傳輸為主要目的網(wǎng)絡(luò)系統(tǒng),則對網(wǎng)絡(luò)頻寬要求較高,因此較強調(diào)平均路徑頻寬要高;若是在綜合需求的網(wǎng)絡(luò)系統(tǒng)中,則可能采用較為平衡的設(shè)定。網(wǎng)絡(luò)管理者可以根據(jù)實際需求調(diào)整平均路徑頻寬與平均路徑延遲的比例、權(quán)重。
以上,根據(jù)混合型網(wǎng)絡(luò)系統(tǒng)中的路徑頻寬與延遲信息而建立異質(zhì)網(wǎng)絡(luò)之間生成樹的技術(shù)可實作在管理整個網(wǎng)絡(luò)系統(tǒng)中封包轉(zhuǎn)送的控制主機中,特別是軟件定義網(wǎng)絡(luò)中的控制器(controller),相關(guān)流程可參考圖4顯示本發(fā)明混合型網(wǎng)絡(luò)生成樹建立方法的實施例流程圖。
首先,如步驟S401,提供一控制器,如原本用于軟件定義網(wǎng)絡(luò)中的控制器,用以收集網(wǎng)絡(luò)封包,其中實施方式可以根據(jù)一鏈路層發(fā)現(xiàn)協(xié)議(Link Layer Discovery Protocol,LLDP)定時取得網(wǎng)絡(luò)系統(tǒng)中各種節(jié)點的網(wǎng)絡(luò)界面所傳送的信息,如步驟S403,經(jīng)查詢網(wǎng)絡(luò)封包內(nèi)識別信息,以獲得整個網(wǎng)絡(luò)拓撲的信息,如步驟S405,據(jù)以建立一虛擬網(wǎng)絡(luò)拓撲。
以上鏈路層發(fā)現(xiàn)協(xié)議(LLDP)是一種網(wǎng)絡(luò)數(shù)據(jù)連結(jié)的協(xié)議,允許設(shè)備向網(wǎng)絡(luò)相鄰(直連)設(shè)備取得設(shè)備信息,如網(wǎng)絡(luò)位址(IP)、設(shè)備描述和功能等。此例則是能夠取得整個網(wǎng)絡(luò)系統(tǒng)中各節(jié)點傳送的封包內(nèi)識別數(shù)據(jù),并配合軟件定義網(wǎng)絡(luò)中的協(xié)定以及傳統(tǒng)網(wǎng)絡(luò)中的協(xié)定取得其他信息,如延遲與頻寬信息等,如步驟S407。
舉例來說,控制器通過前述開放流(Open Flow)的命令收集軟件定義網(wǎng)絡(luò)(SDN)中每條線路(link)的延遲(delay)與頻寬(bandwidth)信息;另外,針對本身執(zhí)行數(shù)據(jù)傳輸以及執(zhí)行指令的交換機形成的非軟件定義網(wǎng)絡(luò) (如所稱的傳統(tǒng)網(wǎng)絡(luò)),則是取得傳統(tǒng)交換機發(fā)送給軟件定義網(wǎng)絡(luò)的交換機的網(wǎng)橋協(xié)議數(shù)據(jù)單元(Bridge Protocol Data Unit,BPDU)的網(wǎng)絡(luò)封包。這種封包是一種生成樹協(xié)議問候封包,定時發(fā)出信息,用來在網(wǎng)絡(luò)的網(wǎng)橋(bridge)間進行信息交換。據(jù)此,控制器可以收集到傳統(tǒng)交換機內(nèi)部在建構(gòu)生成樹時的信息,并利用網(wǎng)橋協(xié)議數(shù)據(jù)單元(BPDU)封包中的識別數(shù)據(jù)(如Root ID),以判別所有軟件定義網(wǎng)絡(luò)網(wǎng)段與所有非軟件定義網(wǎng)絡(luò)網(wǎng)段彼此間的連接狀況。接著,通過BPDU封包取得的網(wǎng)段之間的信息,再結(jié)合控制器根據(jù)LLDP所取得的軟件定義網(wǎng)絡(luò)拓撲信息,可獲得混合型網(wǎng)絡(luò)系統(tǒng)整體拓撲的信息。
于是,控制器可以取得網(wǎng)絡(luò)系統(tǒng)中軟件定義網(wǎng)絡(luò)上的封包延遲與頻寬信息,還可以取得通過BPDU封包中的識別信息得到各網(wǎng)段信息,再如步驟S409,于是建立此生成樹。
前述通過BPDU封包中識別數(shù)據(jù)可以得到封包所屬網(wǎng)段的信息,當識別數(shù)據(jù)相同,可判斷為來自同一個網(wǎng)段,因此軟件定義網(wǎng)絡(luò)的控制器即可判斷出軟件定義網(wǎng)絡(luò)與傳統(tǒng)網(wǎng)絡(luò)的連接狀況。并且,由于軟件定義網(wǎng)絡(luò)的控制器無法探索傳統(tǒng)網(wǎng)絡(luò)中的信息,因此可以利用BPDU封包內(nèi)部所攜帶的路徑消耗資源(path cost)估算傳統(tǒng)網(wǎng)絡(luò)內(nèi)部的終端節(jié)點(host)與收到此BPDU封包的軟件定義網(wǎng)絡(luò)的交換器端口(port)之間的路徑距離。同時,因為軟件定義網(wǎng)絡(luò)的交換器也會利用前述鏈路層發(fā)現(xiàn)協(xié)議(LLDP)去探索網(wǎng)絡(luò)拓撲,定時取得軟件定義網(wǎng)絡(luò)的網(wǎng)絡(luò)拓撲的信息,軟件定義網(wǎng)絡(luò)中的控制器同樣也可利用LLDP去計算由不同路徑經(jīng)過每個傳統(tǒng)網(wǎng)絡(luò)所需要的延遲信息。
為了得到此混合式網(wǎng)絡(luò)系統(tǒng)的最佳生成樹以停用多余的線路,本發(fā)明所提出的方法先根據(jù)以上異質(zhì)網(wǎng)絡(luò)混合形成的拓撲以及之間的連接信息得到所有可能或部分的生成樹,再于其中設(shè)定一個價值函數(shù)(utility function),對每一生成樹評分,如步驟S411,包括計算每一個生成樹的對應(yīng)價值,根據(jù)每一生成樹的對應(yīng)價值進行排序,如步驟S413,除了可以就此得到最佳的生成樹,還可以根據(jù)此排序執(zhí)行備援,達到本發(fā)明目的之一。
在此所述的價值函數(shù)的制定和敘述如下。首先,通過軟件定義網(wǎng)絡(luò)的控制器當中的演算方式先找出拓撲中所有的生成樹。其中可采用現(xiàn)有技術(shù)中的生成樹協(xié)議,這是是一基于OSI(開放系統(tǒng)互聯(lián))網(wǎng)絡(luò)模型的數(shù)據(jù)鏈路層(第二層)通信協(xié)定,用作確保一個無回圈的區(qū)域網(wǎng)絡(luò)環(huán)境。接著,軟件定義網(wǎng) 絡(luò)中控制器所運行的演算方法賦予每一個生成樹對應(yīng)價值,其中參考的數(shù)值例如:平均路徑延遲和平均路徑頻寬,這些信息如前述分別根據(jù)OpenFlow協(xié)定以及BPDU封包取得混合型網(wǎng)絡(luò)系統(tǒng)每條線路上的路徑延遲與路徑頻寬,如此每一個生成樹都可以依照這兩個數(shù)值其中之一或是組合來評分。然而,就細節(jié)來看,由于這兩個數(shù)值的單位不一樣因此可通過一個轉(zhuǎn)換(如正規(guī)化)將兩個數(shù)值規(guī)范在相同的評分標準下。
例如:可先將平均路徑頻寬的數(shù)值最高定為一百,最低定為零,再將剩下的以等比例算出,就可以使得每個數(shù)值都是介于零到一百的數(shù)值;相同的方式應(yīng)用在平均路徑延遲上,可將數(shù)值最低的定為一百,最高的定為零,其余以等比例算出,這樣一來每個生成樹就會有兩個介于零到一百之間的數(shù)值,分別表示平均路徑延遲和平均路徑頻寬的分數(shù)。
此外,還可通過制定加權(quán)(weight)設(shè)定對這兩個數(shù)值效能指標的相對重視程度。系統(tǒng)可以讓網(wǎng)絡(luò)管理者通過其中管理界面進行權(quán)重設(shè)定,如軟件定義網(wǎng)絡(luò)中控制器的應(yīng)用程序接口(API)對軟件定義網(wǎng)絡(luò)的控制器下達參數(shù),讓系統(tǒng)得到管理者設(shè)定的權(quán)重比例。例如,x%為權(quán)重比例,最后的價值函數(shù)分數(shù)是:(x%*平均路徑延遲分數(shù)+(100-x)%*平均路徑頻寬分數(shù)),最后再經(jīng)排序后取得分數(shù)最高者,也就可以得到最佳生成樹。
對此,可參考圖5,其中顯示實現(xiàn)本發(fā)明混合型網(wǎng)絡(luò)生成樹建立方法的控制系統(tǒng)的主要功能模塊,此可為軟件、固件或是硬體所實現(xiàn)的功能模塊,至少包括收集軟件定義網(wǎng)絡(luò)以及非軟件定義網(wǎng)絡(luò)(如所稱的傳統(tǒng)網(wǎng)絡(luò))的網(wǎng)絡(luò)封包的封包取得模塊501,封包信息將經(jīng)封包分析模塊503解析,以取得其中的識別信息、路徑信息等;經(jīng)查詢網(wǎng)絡(luò)封包內(nèi)識別信息,可藉其中信息獲得混合型網(wǎng)絡(luò)系統(tǒng)的網(wǎng)絡(luò)拓撲的信息,通過拓撲形成模塊505建立混合型網(wǎng)絡(luò)系統(tǒng)的拓撲;藉其中路徑信息可以估算出路徑延遲與頻寬,于是生成樹建立模塊507可以根據(jù)這些路徑信息建立此網(wǎng)絡(luò)系統(tǒng)的生成樹,并取得每個生成樹對應(yīng)價值。
圖6接著顯示實現(xiàn)本發(fā)明混合型網(wǎng)絡(luò)生成樹建立方法的控制系統(tǒng)的功能模塊的另一實施例圖。
此例顯示實現(xiàn)前述方法的控制器60,此主要以軟件定義網(wǎng)絡(luò)中的控制器實現(xiàn),其中包括以軟件、固件或硬體實現(xiàn)的多功能模塊,其一端以輸出入模 塊601連線交換器621,622,623;封包取得模塊603可以從所界接的網(wǎng)段的各交換器621,622,623收集產(chǎn)生的網(wǎng)絡(luò)封包,除了收集軟件定義網(wǎng)絡(luò)上的封包信息外,特別是取得非軟件定義網(wǎng)絡(luò)的BPDU封包;通過封包分析模塊605,可以解析出網(wǎng)絡(luò)封包內(nèi)的信息,如root ID欄位等識別信息,其中各封包內(nèi)的識別數(shù)據(jù)可以經(jīng)探索后取得整個網(wǎng)絡(luò)系統(tǒng)的拓撲;通過拓撲形成模塊613建構(gòu)出一個虛擬的網(wǎng)絡(luò)拓撲,目的是提供生成樹建立模塊615藉此拓撲建立生成樹,特別是能建立出整個網(wǎng)絡(luò)系統(tǒng)內(nèi)的所有生成樹。這些信息可以先暫存于存儲模塊617中。存儲模塊617可以記錄拓撲信息、生成樹、每個連線的延遲與頻寬等信息,其中的生成樹信息是連結(jié)著平均路徑延遲、平均路徑頻寬以及權(quán)重等信息,這些信息可以運算出每個生成樹的對應(yīng)價值,也是提供排序與取得在特定需求下最佳生成樹的依據(jù)。
當網(wǎng)絡(luò)系統(tǒng)運行于特定生成樹時,其中端口控制模塊611將根據(jù)生成樹的路徑進行端口控制,比如根據(jù)所實施的生成樹啟閉特定端口,指控制器60可以管理到的軟件定義網(wǎng)絡(luò)上的網(wǎng)絡(luò)節(jié)點的端口(port),藉此可以停用多余的網(wǎng)絡(luò)線路,避免回圈產(chǎn)生??刂破?0另可設(shè)有管理界面模塊607,為提供管理者通過管理電腦615存取此控制器60的管道,管理者可以經(jīng)由身份認證后,以管理電腦615管理此控制器60所建構(gòu)的控制系統(tǒng),包括設(shè)定建立生成樹的權(quán)重(生成樹建立模塊615)。
由于網(wǎng)絡(luò)有可能會發(fā)生一些突發(fā)狀況,比如說線路故障等,使得網(wǎng)絡(luò)可能會突然斷訊,因此本發(fā)明所提出的方法具有備援的功能,例如,可以通過軟件定義網(wǎng)絡(luò)的控制器去偵測拓撲的變化,一旦發(fā)生網(wǎng)絡(luò)連線斷線或甚至是網(wǎng)絡(luò)壅塞的情況,可以事先已經(jīng)計算好備用生成樹的方式,將原先正在使用的生成樹拓撲快速轉(zhuǎn)換至目前最佳的備用生成樹。
實施例如,控制器60可設(shè)有一偵測模塊609,偵測模塊609的主要目的根據(jù)封包取得模塊603所取得的網(wǎng)絡(luò)封包偵測是否網(wǎng)絡(luò)系統(tǒng)中有任何線路異常。此時,可配合圖8所示應(yīng)用本發(fā)明混合型網(wǎng)絡(luò)生成樹建立方法的生成樹備援流程實施例圖,可以通過封包所攜帶的路徑信息偵測連線狀態(tài),如延遲、頻寬、斷線等信息(步驟S801),并以此判斷是否有任何異常(步驟S803)。包括可以比對存儲模塊617中或是其他儲存媒體中的記錄,或是設(shè)定的門檻值,以判斷是否有線路頻寬過小、延遲過長,甚至是斷線等異常改變?若是 經(jīng)比對過去記錄或是門檻值尚在正常范圍內(nèi),則繼續(xù)前述偵測步驟(如步驟S801);反之,表示經(jīng)比對后發(fā)現(xiàn)異常,特別是斷線,將如步驟S805,根據(jù)之前估算各生成樹的價值的排序切換生成樹。此處的偵測步驟為持續(xù)或定時進行。
此外,控制器60亦可根據(jù)所偵測得到的線路延遲與頻寬信息進行重建生成樹的步驟,如圖7的實施例流程。
當如前述控制器60內(nèi)偵測模塊609偵測連線延遲、頻寬信息時,如步驟S701,同時將同樣可比對存儲模塊617或其他儲存媒體中的記錄(步驟S703),判斷網(wǎng)絡(luò)系統(tǒng)的整體平均路徑延遲與平均路徑頻寬是否有改變(步驟S705),若沒有改變,將延續(xù)先前建立的生成樹繼續(xù)運作,并持續(xù)偵測;否則,將如步驟S707,系統(tǒng)將要求重新建立生成樹,以維持系統(tǒng)持續(xù)以最佳的生成樹運作。
是以,本發(fā)明公開書提出一種混合型網(wǎng)絡(luò)生成樹建立方法、備援方法以及控制系統(tǒng),特別是應(yīng)用一種軟件定義網(wǎng)絡(luò)(SDN)中的控制器(controller)以原本軟件定義網(wǎng)絡(luò)的特性,將與此軟件定義網(wǎng)絡(luò)連接的所有網(wǎng)絡(luò)信息都匯整起來,其中通過移除多余的網(wǎng)絡(luò)連線可以排除異質(zhì)網(wǎng)絡(luò)之間的回圈,進而避免封包廣播風(fēng)暴的問題;還通過參考網(wǎng)絡(luò)上的路徑延遲與路徑頻寬等參數(shù),建立異質(zhì)網(wǎng)絡(luò)系統(tǒng)中各節(jié)點之間的生成樹,可以在混合如軟件定義網(wǎng)絡(luò)與傳統(tǒng)網(wǎng)絡(luò)的網(wǎng)絡(luò)系統(tǒng)中建構(gòu)最佳生成樹,能在不需要修改目前系統(tǒng)以及傳統(tǒng)交換機的設(shè)定下,建立混合型網(wǎng)絡(luò)系統(tǒng)中的生成樹。
而以上所述僅為本發(fā)明的較佳可行實施例,非因此即局限本發(fā)明的專利范圍,故舉凡運用本發(fā)明說明書及附圖內(nèi)容所為的等效結(jié)構(gòu)變化,均同理包含于本發(fā)明的范圍內(nèi),合予陳明。