本發(fā)明涉及一種控制方法及控制器,且特別是有關(guān)于一種網(wǎng)絡(luò)控制方法及網(wǎng)絡(luò)控制器。
背景技術(shù):
::隨著信息科技的發(fā)展,網(wǎng)絡(luò)傳輸技術(shù)不斷推陳出新。舉例來說,在現(xiàn)有發(fā)展出的以太網(wǎng)絡(luò)架構(gòu)中,以太網(wǎng)絡(luò)交換機(jī)具有高速、低成本及即插即用(plug-and-play)的特性而被廣泛應(yīng)用。軟件定義網(wǎng)絡(luò)架構(gòu)(Software-definednetworking,SDN)技術(shù)的出現(xiàn),將控制平面(controlplane)及數(shù)據(jù)平面(dataplane)分別切割至控制器及交換機(jī)上??刂破骺山y(tǒng)籌管理底層(infrastructurelayer)的網(wǎng)絡(luò)通信設(shè)備及監(jiān)控網(wǎng)絡(luò)狀態(tài),并提供應(yīng)用層(applicationlayer)的服務(wù)以進(jìn)行資源分配與使用。軟件定義網(wǎng)絡(luò)架構(gòu)具有相當(dāng)彈性的網(wǎng)絡(luò)控制及管理的特性,因此被視為一個(gè)對于下一世代網(wǎng)絡(luò)相當(dāng)重要的技術(shù)。技術(shù)實(shí)現(xiàn)要素:本發(fā)明提供一種網(wǎng)絡(luò)控制方法及網(wǎng)絡(luò)控制器。根據(jù)本發(fā)明的第一方面,提出一種網(wǎng)絡(luò)控制方法。網(wǎng)絡(luò)控制方法包括以下步驟。提供一混合網(wǎng)絡(luò)架構(gòu),該混合網(wǎng)絡(luò)架構(gòu)包括多個(gè)主機(jī)、多個(gè)以太網(wǎng)絡(luò)交換機(jī)及m個(gè)軟件定義網(wǎng)絡(luò)交換機(jī),m≧1。計(jì)算該混合網(wǎng)絡(luò)架構(gòu)中的預(yù)設(shè)生成樹。以各m個(gè)軟件定義網(wǎng)絡(luò)交換機(jī)為一起點(diǎn),分別獲得k個(gè)備選路徑,以總共獲得m×k個(gè)備選路徑。根據(jù)該些m×k個(gè)備選路徑,挑選一最佳路徑。根據(jù)本發(fā)明的第二方面,提出一種網(wǎng)絡(luò)控制器。網(wǎng)絡(luò)控制器設(shè)置于一混合網(wǎng)絡(luò)架構(gòu)中,該混合網(wǎng)絡(luò)架構(gòu)包括多個(gè)主機(jī)、多個(gè)以太網(wǎng)絡(luò)交換機(jī)及m個(gè)軟件定義網(wǎng)絡(luò)交換機(jī),m≧1。網(wǎng)絡(luò)控制器包括處理單元及儲(chǔ)存單元。 處理單元計(jì)算該混合網(wǎng)絡(luò)架構(gòu)中的預(yù)設(shè)生成樹,并以各m個(gè)軟件定義網(wǎng)絡(luò)交換機(jī)為一起點(diǎn),分別獲得k個(gè)備選路徑,以總共獲得m×k個(gè)備選路徑,再根據(jù)該些m×k個(gè)備選路徑,挑選一最佳路徑。這些m×k個(gè)備選路徑儲(chǔ)存于該儲(chǔ)存單元。附圖說明圖1是軟件定義網(wǎng)絡(luò)與以太網(wǎng)絡(luò)的混合網(wǎng)絡(luò)架構(gòu)(hybridSDN-Ethernet)的示意圖。圖2是網(wǎng)絡(luò)控制器、軟件定義網(wǎng)絡(luò)交換機(jī)及數(shù)據(jù)服務(wù)器的方塊圖。圖3是一實(shí)施例的網(wǎng)絡(luò)控制方法的流程圖。圖4是一最小生成樹(minimumspanningtree)的示意圖。圖5是默認(rèn)路徑及備選路徑的示意圖。圖6是選擇最佳路徑的示意圖。圖7是最佳路徑的示意圖。圖8是對稱式傳輸路徑的示意圖。圖9和圖10是非對稱式傳輸路徑的示意圖。圖11A~11B繪示泛流(flooding)現(xiàn)象的例子。圖12A~12B繪示泛流(flooding)現(xiàn)象的另一例子。圖13繪示以太網(wǎng)絡(luò)交換機(jī)中轉(zhuǎn)發(fā)數(shù)據(jù)庫(forwardinginformationbase,FIB)更新過程的規(guī)則。附圖標(biāo)記說明100:混合網(wǎng)絡(luò)架構(gòu)C1:處理單元C2:儲(chǔ)存單元CTR:網(wǎng)絡(luò)控制器ES、ES1~ES11:以太網(wǎng)絡(luò)交換機(jī)H1:第一主機(jī)H2:第二主機(jī)H3:第三主機(jī)H4:第四主機(jī)H5:第五主機(jī)Hn:第n主機(jī)Hi、Hj:主機(jī)L1、L2:路徑層P0:默認(rèn)路徑P11、P12、P21、P22、P61、P62、P63、P64:備選路徑S0:數(shù)據(jù)服務(wù)器S310、S320、S330、S340:流程步驟SDNS1~SDNS2、SDNSa、SDNSn、SDNSz:軟件定義網(wǎng)絡(luò)交換機(jī)具體實(shí)施方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,以下結(jié)合具體實(shí)施例,并參照附圖,對本發(fā)明進(jìn)一步詳細(xì)說明。在以太網(wǎng)絡(luò)交換機(jī)(EthernetSwitch)所組成的以太網(wǎng)絡(luò)架構(gòu)中。以太網(wǎng)絡(luò)交換機(jī)具有高速、低成本及即插即用(plug-and-play)的特性而被廣泛應(yīng)用在局域網(wǎng)絡(luò)(localareanetwork),例如是數(shù)據(jù)中心(datacenter)、企業(yè)網(wǎng)絡(luò)(Enterprisenetwork)及家庭網(wǎng)絡(luò)(homenetworks)中。以太網(wǎng)絡(luò)架構(gòu)遵循802.3生成樹協(xié)議(spanningtreeprotocol,STP)建立單一最小生成樹(minimumspanningtree)。封包在以太網(wǎng)絡(luò)架構(gòu)傳遞時(shí)僅能使用此生成樹,未出現(xiàn)在此生成樹上的實(shí)體鏈路(links)將會(huì)被封鎖以避免產(chǎn)生循環(huán)(trafficloop)。在軟件定義網(wǎng)絡(luò)交換機(jī)(SDNSwitch)所組成的軟件定義網(wǎng)絡(luò)(Software-definednetworking,SDN)架構(gòu)中,控制平面(controlplane)與數(shù)據(jù)平面(dataplane)分別切割至網(wǎng)絡(luò)控制器及軟件定義網(wǎng)絡(luò)交換機(jī)上。網(wǎng)絡(luò)控制器可統(tǒng)籌管理軟件定義網(wǎng)絡(luò)交換機(jī)并監(jiān)控網(wǎng)絡(luò)狀態(tài)。軟件定義網(wǎng)絡(luò)架構(gòu)具有相當(dāng)彈性的網(wǎng)絡(luò)控制及管理的特性。在SDN架構(gòu)中,目前開放流通信協(xié)議(OpenFlowprotocol,OFP)是介于軟件定義網(wǎng)絡(luò)控制器與軟件定義網(wǎng)絡(luò)交換機(jī)之間的一種傳輸協(xié)議,SDN架構(gòu)中的軟件定義網(wǎng)絡(luò)交換機(jī)也多會(huì)支持開放流通信協(xié)議(OFP),因此,在一實(shí)施例中,以開放路徑交換機(jī)(OpenFlowSwitch)代表軟件定義網(wǎng)絡(luò)交換機(jī)(SDNSwitch)。圖1是軟件定義網(wǎng)絡(luò)與以太網(wǎng)絡(luò)的混合網(wǎng)絡(luò)架構(gòu)(hybridSDN-Ethernet)100的示意圖?;旌暇W(wǎng)絡(luò)架構(gòu)100包括多個(gè)以太網(wǎng)絡(luò)交換機(jī)(例如是以太網(wǎng)絡(luò)交換機(jī)ES1~ES7)、數(shù)個(gè)軟件定義網(wǎng)絡(luò)交換機(jī)(例如是軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1~SDNS2)及一網(wǎng)絡(luò)控制器CTR。圖1的實(shí)線表示實(shí)體鏈路(physicallink),虛線則表示網(wǎng)絡(luò)控制器CTR的控制線路(controlplane)。以太網(wǎng)絡(luò)中可以包含多個(gè)主機(jī)(例如,第一主機(jī)H1、第二主機(jī)H2、第三主機(jī)H3、第四主機(jī)H4、第五主機(jī)H5、…、第n主機(jī)Hn),而各個(gè)交換機(jī)之間通過多層生成樹協(xié)議(MSTP)可以分別建構(gòu)出多個(gè)多層生成樹。首先,在此混合網(wǎng)絡(luò)架構(gòu)100中,于各個(gè)主機(jī)之間進(jìn)行默認(rèn)的多層生成樹規(guī)劃(defaultspanningtrees),這些預(yù)設(shè)的多層生成樹的設(shè)定是根據(jù)連接各個(gè)主機(jī)間的節(jié)點(diǎn)預(yù)估流量進(jìn)行配置,節(jié)點(diǎn)間的預(yù)估流量可來自于歷史數(shù)據(jù)或者于系統(tǒng)上實(shí)際上進(jìn)行量測,也就是說此混合網(wǎng)絡(luò)架構(gòu)100中可于使用一段時(shí)間后依照實(shí)際節(jié)點(diǎn)間的流量從新調(diào)整這些預(yù)設(shè)的多層生成樹的路由。此混合網(wǎng)絡(luò)架構(gòu)100中采用以太網(wǎng)絡(luò)設(shè)定,即每一個(gè)連接于混合網(wǎng)絡(luò)架構(gòu)100之主機(jī)(例如是第一主機(jī)H1與第二主機(jī)H2)所送出之以太網(wǎng)絡(luò)封包上并不攜帶虛擬局域網(wǎng)標(biāo)識(shí)符(VirtualLocalAreaNetworkidentification,VLANID),封包進(jìn)入交換機(jī)(例如是以太網(wǎng)絡(luò)交換機(jī)ES1~ES7以及件定義網(wǎng)絡(luò)交換機(jī)SDNS1~SDNS2)時(shí)則會(huì)被貼上該封包進(jìn)入交換機(jī)的端口(port)所設(shè)定的虛擬局域網(wǎng)標(biāo)識(shí)符(VLANID),該虛擬局域網(wǎng)標(biāo)識(shí)符(VLANID)將于最后封包離開混合網(wǎng)絡(luò)架構(gòu)100之最后一個(gè)交換機(jī)(例如是以太網(wǎng)絡(luò)交換機(jī)ES7)負(fù)責(zé)將虛擬局域網(wǎng)標(biāo)識(shí)符(VLANID)移除。依照多層生成樹協(xié)議(MSTP)協(xié)議,以太網(wǎng)絡(luò)中可布建一個(gè)至多個(gè)個(gè)實(shí)例(instance),每一個(gè)實(shí)例中依照對應(yīng)于該實(shí)例下所指派的每一個(gè)鏈路(link)的權(quán)重(weight),將生成出一最小生成樹,因此透過適當(dāng)?shù)囊?guī)劃,以太網(wǎng)絡(luò)中可以存在數(shù)個(gè)不同路由的最小生成樹。每一最小生成樹并可包含數(shù)個(gè)虛擬局域網(wǎng)標(biāo)識(shí)符(VLANID),網(wǎng)絡(luò)封包可依照所標(biāo)載的虛擬局域網(wǎng)標(biāo)識(shí)符(VLANID)在其對應(yīng)的最小生成樹實(shí)例(instance)上 進(jìn)行路由,如此,可達(dá)到選路徑的目的。更清楚的說,由于每一個(gè)主機(jī)在接入以太網(wǎng)絡(luò)交換機(jī)的端口(port)皆被設(shè)定一個(gè)固定的虛擬局域網(wǎng)標(biāo)識(shí)符(VLANID),因此當(dāng)封包進(jìn)入由主機(jī)進(jìn)入以太網(wǎng)絡(luò)交換機(jī)時(shí),即回被貼上此虛擬局域網(wǎng)標(biāo)識(shí)符(VLANID)并于該虛擬局域網(wǎng)標(biāo)識(shí)符(VLANID)所屬之生成樹的實(shí)例上進(jìn)行路由。由于,軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1~SDNS2可能不支持多層生成樹協(xié)議(MultipleSpanningTreeProtocol,MSTP)的功能,在本實(shí)施例中,軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1~SDNS2接收到以太網(wǎng)絡(luò)交換機(jī)傳送出來的橋接協(xié)議數(shù)據(jù)單元(BPDUs)時(shí),軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1~SDNS2即以發(fā)送封包輸入信息(packet-inmessage)方式去詢問網(wǎng)絡(luò)控制器CTR有關(guān)對于此多層生成樹協(xié)議的橋接協(xié)議數(shù)據(jù)單元(MSTPBPDU)的處理方式。通過網(wǎng)絡(luò)控制器CTR來進(jìn)行控制及處理多層生成樹協(xié)議的橋接協(xié)議數(shù)據(jù)單元(MSTPBPDU)并回復(fù)給相對應(yīng)的以太網(wǎng)絡(luò)交換機(jī),軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1~SDNS2可以仿真為一般的以太網(wǎng)絡(luò)交換機(jī)。如此一來,不支持多層生成樹協(xié)議(MSTP)能力的軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1~SDNS2也可加入生成樹(spanningtree)。因此,如圖1所示,在此實(shí)施例中,第一主機(jī)H1與第二主機(jī)H2進(jìn)行通信,即封包從第一主機(jī)H1傳送到第二主機(jī)H2時(shí),本實(shí)施例的第一主機(jī)H1連接至以太網(wǎng)絡(luò)交換機(jī)ES1,在此我們假定以太網(wǎng)絡(luò)交換機(jī)ES1連接到第一主機(jī)H1的端口(port)所對應(yīng)的虛擬局域網(wǎng)標(biāo)識(shí)符(VLANID)設(shè)定為x,即由第一主機(jī)H1送入此以太網(wǎng)絡(luò)的以太網(wǎng)絡(luò)封包將被貼上局域網(wǎng)標(biāo)識(shí)符(VLANID)為x的標(biāo)簽。在一實(shí)施例中,假設(shè)以太網(wǎng)絡(luò)中的多層生成樹共有i個(gè)。為了說明,假設(shè)第1個(gè)生成樹為最小生成樹實(shí)例包含虛擬局域網(wǎng)標(biāo)識(shí)符(VLANID)x,如此由第一主機(jī)H1進(jìn)入以太網(wǎng)絡(luò)的封包將于的實(shí)例1(instance1)上進(jìn)行路由,即第一主機(jī)H1至第二主機(jī)H2間的路由將遵守生成樹上鏈接從太網(wǎng)絡(luò)交換機(jī)ES1至以太網(wǎng)絡(luò)交換機(jī)ES7的路由。即對此混合網(wǎng)絡(luò)架構(gòu)100中進(jìn)行一個(gè)或多個(gè)預(yù)設(shè)生成樹的布建,該預(yù)設(shè)生成樹將提供網(wǎng)絡(luò)間各個(gè)節(jié)點(diǎn)間一條默認(rèn)路徑,此默認(rèn)路徑用來在網(wǎng)絡(luò)非壅塞情形下傳遞封包。此外并從每一個(gè)軟件定義網(wǎng)絡(luò)交換機(jī)至每一個(gè)接有主機(jī)之以太網(wǎng)絡(luò)交換機(jī)間預(yù)備有K條備選路徑,這些備選路徑將用來當(dāng)前述由預(yù)設(shè)生成樹所提供之默認(rèn)路徑發(fā)生壅塞時(shí)由此K條備選 路徑中選擇一條進(jìn)行繞路以減緩網(wǎng)絡(luò)壅塞。圖2是網(wǎng)絡(luò)控制器CTR、軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1~SDNS2及數(shù)據(jù)服務(wù)器S0的方塊圖。數(shù)據(jù)服務(wù)器S0收集各個(gè)鏈路的網(wǎng)絡(luò)帶寬使用量之后,再傳遞給網(wǎng)絡(luò)控制器CTR。網(wǎng)絡(luò)控制器CTR可以適時(shí)的根據(jù)網(wǎng)絡(luò)狀態(tài)(例如,某條鏈路特別擁塞),來進(jìn)行路徑變更,達(dá)成動(dòng)態(tài)負(fù)載平衡。以下透過一流程圖詳細(xì)說明本實(shí)施例的混合網(wǎng)絡(luò)架構(gòu)100如何達(dá)成動(dòng)態(tài)負(fù)載平衡的控制。在另一實(shí)施例中,網(wǎng)絡(luò)控制器CTR的功能可擴(kuò)充,而使數(shù)據(jù)服務(wù)器S0內(nèi)建于網(wǎng)絡(luò)控制器CTR中。如此一來,網(wǎng)絡(luò)控制器CTR可以直接收集各個(gè)鏈路的網(wǎng)絡(luò)帶寬使用量。圖3是本實(shí)施例的網(wǎng)絡(luò)控制方法的流程圖。在步驟S310中,提供多個(gè)以太網(wǎng)絡(luò)交換機(jī)(例如是圖1的以太網(wǎng)絡(luò)交換機(jī)ES1~ES7)及m個(gè)軟件定義網(wǎng)絡(luò)交換機(jī)(例如是圖1的軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1~SDNS2),以架構(gòu)出軟件定義網(wǎng)絡(luò)與以太網(wǎng)絡(luò)的混合網(wǎng)絡(luò)架構(gòu)100。m為大于或等于1的整數(shù)。步驟S315中,網(wǎng)絡(luò)控制器CTR會(huì)先計(jì)算混合網(wǎng)絡(luò)架構(gòu)100中各個(gè)主機(jī)之間的預(yù)設(shè)生成樹(defaultspanningtrees),該預(yù)設(shè)生成樹將提供網(wǎng)絡(luò)間各個(gè)節(jié)點(diǎn)間一條默認(rèn)路徑。在步驟S320中,以各m個(gè)軟件定義網(wǎng)絡(luò)交換機(jī)為另一起點(diǎn),計(jì)算連接到任一個(gè)交換機(jī)(軟件定義網(wǎng)絡(luò)交換機(jī)/以太網(wǎng)絡(luò)交換機(jī)),分別獲得k個(gè)備選路徑,總共(m×k)個(gè)備選路徑。因此,網(wǎng)絡(luò)控制器CTR內(nèi)存儲(chǔ)的混合網(wǎng)絡(luò)架構(gòu)100中,各個(gè)主機(jī)間的一條默認(rèn)路徑以及以各m個(gè)軟件定義網(wǎng)絡(luò)交換機(jī)為另一起點(diǎn),連接到任一個(gè)交換機(jī)的(m×k)個(gè)備選路徑,并產(chǎn)生一m層之多層傳輸路徑圖。這些m×k個(gè)備選路徑每一條將被包含在額外的生成樹實(shí)例(spanningtreeinstance)中,每一備選條路徑有一個(gè)獨(dú)立的虛擬局域網(wǎng)標(biāo)識(shí)符(VLANID),且此虛擬局域網(wǎng)標(biāo)識(shí)符將被設(shè)定在該路徑所經(jīng)過的所有端口(port)上。其中,對于包含該備選路徑的生成樹上,不被該備選路徑經(jīng)過的樹連結(jié)(treelink)將不綁定該虛擬局域網(wǎng)標(biāo)識(shí)符,此目的乃為了避免廣播封包的產(chǎn)生,也就是當(dāng)軟件定義網(wǎng)絡(luò)交換機(jī)更換路由時(shí),采用的這些備選路徑皆為單播路徑且這些路徑所使用的虛擬局域網(wǎng)標(biāo)識(shí)符在路徑上的交換機(jī) 將只有一個(gè)輸出端口,因此可以避免廣播封包的產(chǎn)生。圖4是由第一主機(jī)H1接入混合網(wǎng)絡(luò)架構(gòu)100之預(yù)設(shè)最小生成樹的示意圖。在步驟S330中,當(dāng)封包要從第一主機(jī)H1傳送到第二主機(jī)H2時(shí),封包將依照該虛擬局域網(wǎng)標(biāo)識(shí)符所屬之最小生成樹進(jìn)行路由。當(dāng)封包從第一主機(jī)H1依照該虛擬局域網(wǎng)標(biāo)識(shí)符所屬之最小生成樹進(jìn)行路由進(jìn)入軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1后,若此封包相關(guān)識(shí)別并不存在于軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1時(shí),軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1將產(chǎn)生封包輸入事件(packet-inevent)并將該封包送至網(wǎng)絡(luò)控制器CTR,網(wǎng)絡(luò)控制器CTR將由軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1到第二主機(jī)H2之前的以太網(wǎng)絡(luò)交換機(jī)或軟件定義網(wǎng)絡(luò)交換機(jī)(本圖例中為以太網(wǎng)絡(luò)交換機(jī)ES7)之間所構(gòu)成的K+1條路徑(包含一條默認(rèn)路徑P0以及備選路徑P11與備選路徑P12兩條備選路徑)中挑選一條進(jìn)行封包路由。當(dāng)封包路由進(jìn)入軟件定義網(wǎng)絡(luò)交換機(jī)SDNS2后,若此封包相關(guān)識(shí)別并不存在于軟件定義網(wǎng)絡(luò)交換機(jī)SDNS2時(shí),軟件定義網(wǎng)絡(luò)交換機(jī)SDNS2將產(chǎn)生封包輸入事件(packet-inevent)并將該封包送至網(wǎng)絡(luò)控制器CTR,網(wǎng)絡(luò)控制器CTR將由軟件定義網(wǎng)絡(luò)交換機(jī)SDNS2到第二主機(jī)H2之前的以太網(wǎng)絡(luò)交換機(jī)或軟件定義網(wǎng)絡(luò)交換機(jī)(本圖例中為ES7)之間所構(gòu)成的K+1條路徑(包含一條默認(rèn)路徑P0以及備選路徑P21與備選路徑P22兩條備選路徑)中挑選一條進(jìn)行封包路由。因此,網(wǎng)絡(luò)控制器CTR的處理單元C1以第一主機(jī)H1為一起點(diǎn),到第二主機(jī)H2之前的以太網(wǎng)絡(luò)交換機(jī)或軟件定義網(wǎng)絡(luò)交換機(jī),于以太網(wǎng)絡(luò)交換機(jī)ES1~ES7及軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1~SDNS2在最小生成樹中存在一條默認(rèn)路徑P0以及2xk個(gè)備選路徑,形成一2層之多層傳輸路徑圖(如圖5所述),網(wǎng)絡(luò)控制器CTR依此2層傳輸路徑圖進(jìn)行路由以便選擇出最佳路由達(dá)到網(wǎng)絡(luò)負(fù)載平衡之目的。圖5是默認(rèn)路徑P0及備選路徑P11、P12、P21、P22的示意圖。為簡化說明,本實(shí)施例以k=2為例做說明。在步驟S320中,處理單元C1以一K最佳路徑算法(K-bestpathsalgorithm)、一K最短路徑算法(K-shortestpathsalgorithm)或一K互斥路徑算法(K-disjointpathsalgorithm)獲得備選路徑P11、P12、P21、P22,其中,每一個(gè)備選路徑P11、P12、P21、 P22鏈路包含從各m個(gè)軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1~SDNS2為起點(diǎn)到第二主機(jī)H2之前的以太網(wǎng)絡(luò)交換機(jī)或軟件定義網(wǎng)絡(luò)交換機(jī)。此些算法可以根據(jù)k值來設(shè)定欲獲得的路徑數(shù)量,以獲得k個(gè)備選路徑。請參考圖,當(dāng)封包要從第一主機(jī)H1傳送到第二主機(jī)H2時(shí),得到由軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1至以太網(wǎng)絡(luò)交換機(jī)ES7的備選路徑P11、P12選擇一條路徑;由于備選路徑P1也經(jīng)過軟件定義網(wǎng)絡(luò)交換機(jī)SDNS2,因此可再由軟件定義網(wǎng)絡(luò)交換機(jī)SDNS2換路至其備選路徑P21、P22。補(bǔ)充說明的是,備選路徑P11、P12、P21、P22為單播(unicast)路徑且有其各自獨(dú)立的虛擬局域網(wǎng)標(biāo)識(shí)符(VLANID)。舉例來說,備選路徑P11所對應(yīng)的虛擬局域網(wǎng)標(biāo)識(shí)符(VLANID)設(shè)定為y。在一實(shí)施例中,為了于以太網(wǎng)絡(luò)中產(chǎn)生這些備選路徑P11、P12、P21、P22,需要為每一個(gè)備選路徑P11、P12、P21、P22產(chǎn)生出包含該備選路徑的實(shí)例(instance)。例如,將備選路徑P11配置于第i+1個(gè)生成樹的實(shí)例(instance)中,除了指定備選路徑P11的虛擬局域網(wǎng)標(biāo)識(shí)符(VLANID)為y歸屬于第i+1個(gè)生成樹外,第i+1個(gè)生成樹的鏈路必須包含備選路徑P11所使用到的路由,即第i+1個(gè)生成樹包含鏈路:「軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1,以太網(wǎng)絡(luò)交換機(jī)ES2」、「以太網(wǎng)絡(luò)交換機(jī)ES2,軟件定義網(wǎng)絡(luò)交換機(jī)SDNS2」、「軟件定義網(wǎng)絡(luò)交換機(jī)SDNS2,以太網(wǎng)絡(luò)交換機(jī)ES6」、以及「以太網(wǎng)絡(luò)交換機(jī)ES6,以太網(wǎng)絡(luò)交換機(jī)ES7」,此外,上述的鏈路「軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1,以太網(wǎng)絡(luò)交換機(jī)ES2」、「以太網(wǎng)絡(luò)交換機(jī)ES2,軟件定義網(wǎng)絡(luò)交換機(jī)SDNS2」、「軟件定義網(wǎng)絡(luò)交換機(jī)SDNS2,以太網(wǎng)絡(luò)交換機(jī)ES6」、以及「以太網(wǎng)絡(luò)交換機(jī)ES6,以太網(wǎng)絡(luò)交換機(jī)ES7」其對應(yīng)交換機(jī)的接口設(shè)定包含虛擬局域網(wǎng)標(biāo)識(shí)符(VLANID)為y,且除了這些鏈路所屬的交換機(jī)設(shè)定包含虛擬局域網(wǎng)標(biāo)識(shí)符(VLANID)為y以外,其它不在上述鏈路的任何交換機(jī)的接口將不設(shè)定虛擬局域網(wǎng)標(biāo)識(shí)符(VLANID)為y。因此,網(wǎng)絡(luò)控制器CTR封包從第一主機(jī)H1傳送到第二主機(jī)H2之換路路由時(shí)檢視包含從各m個(gè)軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1~SDNS2為起點(diǎn)到第二主機(jī)H2之前的交換機(jī)(以太網(wǎng)絡(luò)交換機(jī)ES7)即可,此第二主機(jī)H2之前的交換機(jī)可以是軟件定義網(wǎng)絡(luò)交換機(jī)或是以太網(wǎng)絡(luò)交換機(jī)。請參照圖5,以軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1為起點(diǎn),到第二主機(jī)H2 之前的以太網(wǎng)絡(luò)交換機(jī)ES7,其有備選路徑P11、P12。默認(rèn)路徑P0及備選路徑P11、P12組成一路徑層L1。以軟件定義網(wǎng)絡(luò)交換機(jī)SDNS2為起點(diǎn),到第二主機(jī)H2之前的以太網(wǎng)絡(luò)交換機(jī)ES7,而獲得了備選路徑P21、P22。默認(rèn)路徑P0及備選路徑P21、P22組成另一路徑層L2。默認(rèn)路徑P0及4(m×k)個(gè)備選路徑P11、P12、P21、P22組成多層傳輸路徑圖MP。多層傳輸路徑圖MP可事先儲(chǔ)存于網(wǎng)絡(luò)控制器CTR的儲(chǔ)存單元C2(S320)中或者于接收來自軟件定義網(wǎng)絡(luò)交換機(jī)通知收到新的封包流時(shí)動(dòng)態(tài)產(chǎn)生(S330)。其中,處理單元C1可以是中央處理器(CPU)、微處理器(micro-processor)或嵌入式控制器(embeddedcontroller),處理電路101的功能可通過使用例如微處理器、微控制器、DSP芯片、FPGA等可程序設(shè)計(jì)單元來實(shí)施。處理電路101的功能還可用獨(dú)立電子裝置或IC來實(shí)施,且由處理電路101執(zhí)行的功能可實(shí)施在硬件或軟件的網(wǎng)域內(nèi)。儲(chǔ)存單元C2可以是內(nèi)存、靜態(tài)隨機(jī)存取內(nèi)存(StaticRandom-AccessMemory,SRAM)、動(dòng)態(tài)隨機(jī)存取內(nèi)存(DynamicRandomAccessMemory,DRAM)或硬盤等儲(chǔ)存媒體,且不限于此。路徑層L1中的備選路徑P11系以軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1為起點(diǎn),到第二主機(jī)H2之前的以太網(wǎng)絡(luò)交換機(jī)ES7。路徑層L2中的備選路徑P21、P22系以軟件定義網(wǎng)絡(luò)交換機(jī)SDNS2為起點(diǎn),到第二主機(jī)H2之前的以太網(wǎng)絡(luò)交換機(jī)ES7。路徑層L1中的備選路徑P11包括軟件定義網(wǎng)絡(luò)交換機(jī)SDNS2。因此,路徑層L1中的備選路徑P11的軟件定義網(wǎng)絡(luò)交換機(jī)SDNS2可以連接(connect)至路徑層L2中的備選路徑P21、P22的其中之一。也就是說,路徑層L1可以透過軟件定義網(wǎng)絡(luò)交換機(jī)SDNS2連接至路徑層L2。透過此多層傳輸路徑圖MP建置,網(wǎng)絡(luò)控制器CTR可以依照網(wǎng)絡(luò)狀況進(jìn)行挑選,以達(dá)到動(dòng)態(tài)的負(fù)載平衡。在步驟S330中,當(dāng)以太網(wǎng)絡(luò)中,當(dāng)一個(gè)新的封包流(flow)要從第一主機(jī)H1傳送到第二主機(jī)H2時(shí),該軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1或軟件定義網(wǎng)絡(luò)交換機(jī)SDNS2收到不認(rèn)識(shí)的封包時(shí),軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1或軟件定義網(wǎng)絡(luò)交換機(jī)SDNS2對網(wǎng)絡(luò)控制器CTR發(fā)送封包輸入信息(packet-inmessage)以通知網(wǎng)絡(luò)控制器CTR收到新封包流。網(wǎng)絡(luò)控制 器CTR以軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1或軟件定義網(wǎng)絡(luò)交換機(jī)SDNS2為起點(diǎn),到第二主機(jī)H2之前的以太網(wǎng)絡(luò)交換機(jī)ES7為終點(diǎn)中有一默認(rèn)路徑P0及4(m×k)個(gè)備選路徑P11、P12、P21、P22。舉例而言,軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1收到不認(rèn)識(shí)的封包時(shí),從軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1為起點(diǎn),到第二主機(jī)H2之前的以太網(wǎng)絡(luò)交換機(jī)ES7為終點(diǎn),有一默認(rèn)路徑P0及2(k)個(gè)備選路徑P11、P12,網(wǎng)絡(luò)控制器CTR的處理單元C1根據(jù)多層傳輸路徑圖MP的一路徑擁塞情況從此1+k個(gè)路徑中,獲得一最佳路徑,并且以該最佳路徑建立路由并設(shè)定該最佳路徑上相關(guān)之軟件定義網(wǎng)絡(luò)交換機(jī)之路由表(routingtable)。網(wǎng)絡(luò)控制器CTR的處理單元C1根據(jù)多層傳輸路徑圖MP的一路徑擁塞情況,例如是鏈路最大擁塞量(mostcongestedlink)、一路徑交換機(jī)數(shù)量(hotcount)或一路徑總帶寬(totalbandwidthutilization),獲得一最佳路徑。在此步驟中,處理單元C1可以依照一線性規(guī)劃算法(IntegerLinearProgrammingAlgorithm,ILPAlgorithm)、一最小最大公平算法(min-maxfairnessalgorithm,MMFalgorithm)、一全多項(xiàng)式時(shí)間近似方案算法(FullyPolynomialTimeApproximationSchemeAlgorithm,FPTASAlgorithm)來獲得最佳路徑。網(wǎng)絡(luò)控制器CTR將目前由第一主機(jī)H1傳送封包至第二主機(jī)H2的去程路徑動(dòng)態(tài)調(diào)整為最佳路徑后,網(wǎng)絡(luò)控制器CTR致使軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1或軟件定義網(wǎng)絡(luò)交換機(jī)SDNS2發(fā)布L2更新信息(Layer2updatemessage),并且更新至原路徑中流經(jīng)的以太網(wǎng)絡(luò)交換機(jī)上的轉(zhuǎn)發(fā)數(shù)據(jù)庫(forwardinginformationbase,FIB),備選路徑皆為單播路徑,每一個(gè)備選路徑使用一個(gè)虛擬局域網(wǎng)標(biāo)識(shí)符(VLANID),且只有在備選路徑上的端口(port)綁定該虛擬局域網(wǎng)標(biāo)識(shí)符(VLANID)。因此當(dāng)變更為新路徑后,網(wǎng)絡(luò)控制器CTR設(shè)定新路徑之虛擬局域網(wǎng)標(biāo)識(shí)符(VLANID),如此,雖然新路徑中之以太網(wǎng)絡(luò)交換機(jī)中沒有目的地第二主機(jī)H2的媒體訪問控制(MediaAccessControl,MAC)地址,新路徑因已設(shè)定虛擬局域網(wǎng)標(biāo)識(shí)符(VLANID),所以封包可以成功到達(dá)目的地第二主機(jī)H2,而不會(huì)產(chǎn)生泛流(flooding)現(xiàn)象。舉例來說,請參照圖11A~11B,其繪示泛流(flooding)現(xiàn)象的例子。實(shí)線箭頭路線代表虛擬局域網(wǎng)標(biāo)識(shí)符(VLANID)為VLAN20由軟件定 義網(wǎng)絡(luò)交換機(jī)SDNS1至以太網(wǎng)絡(luò)交換機(jī)ES7所綁定的鏈路,虛線代表不屬于虛擬局域網(wǎng)標(biāo)識(shí)符(VLANID)為VLAN20的鏈路。虛線箭頭為虛擬局域網(wǎng)標(biāo)識(shí)符(VLANID)為VLAN10所屬的生成樹從軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1至以太網(wǎng)絡(luò)交換機(jī)ES7的路徑,第二主機(jī)H2到第一主機(jī)H1走虛線箭頭的反方向。為了簡單起見,沒有畫出虛擬局域網(wǎng)標(biāo)識(shí)符(VLANID)為VLAN10所屬的生成樹與第二主機(jī)H2到第一主機(jī)H1的路徑。當(dāng)封包從第一主機(jī)H1到第二主機(jī)H2的路徑在以太網(wǎng)絡(luò)交換機(jī)ES1貼上虛擬局域網(wǎng)標(biāo)識(shí)符(VLANID)為VLAN10走預(yù)設(shè)的生成樹往軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1發(fā)送,假設(shè)目前在鏈路「軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1到以太網(wǎng)絡(luò)交換機(jī)ES4」發(fā)生壅塞,在軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1貼上虛擬局域網(wǎng)標(biāo)識(shí)符(VLANID)為VLAN20切往以太網(wǎng)絡(luò)交換機(jī)ES3。在圖11A的例子中,而以太網(wǎng)絡(luò)交換機(jī)ES3、以太網(wǎng)絡(luò)交換機(jī)ES5、以太網(wǎng)絡(luò)交換機(jī)ES6在虛擬局域網(wǎng)標(biāo)識(shí)符(VLANID)為VLAN20的表格中沒有第二主機(jī)H2的MAC地址,所以封包到達(dá)以太網(wǎng)絡(luò)交換機(jī)ES3被廣播到以太網(wǎng)絡(luò)交換機(jī)ES5與以太網(wǎng)絡(luò)交換機(jī)ES9,到達(dá)以太網(wǎng)絡(luò)交換機(jī)ES5被廣播到以太網(wǎng)絡(luò)交換機(jī)ES6、以太網(wǎng)絡(luò)交換機(jī)ES10與以太網(wǎng)絡(luò)交換機(jī)ES11,到達(dá)以太網(wǎng)絡(luò)交換機(jī)ES6被廣播到以太網(wǎng)絡(luò)交換機(jī)ES7,而在以太網(wǎng)絡(luò)交換機(jī)ES7拔掉虛擬局域網(wǎng)標(biāo)識(shí)符(VLANID)為VLAN20轉(zhuǎn)發(fā)到第二主機(jī)H2。為解決此問題,我們將虛擬局域網(wǎng)標(biāo)識(shí)符(VLANID)為VLAN20綁定成單一路徑「軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1→以太網(wǎng)絡(luò)交換機(jī)ES3→以太網(wǎng)絡(luò)交換機(jī)ES5→以太網(wǎng)絡(luò)交換機(jī)ES6→以太網(wǎng)絡(luò)交換機(jī)ES7」(如圖11B所示)。雖然以太網(wǎng)絡(luò)交換機(jī)ES3、以太網(wǎng)絡(luò)交換機(jī)ES5、以太網(wǎng)絡(luò)交換機(jī)ES6的轉(zhuǎn)發(fā)數(shù)據(jù)庫(forwardinginformationbase,FIB)中依然沒有第二主機(jī)H2的MAC地址,但封包路由在虛擬局域網(wǎng)標(biāo)識(shí)符(VLANID)為VLAN20的單一路徑上,而不會(huì)造成廣播風(fēng)暴。另一實(shí)施例中,網(wǎng)絡(luò)控制器CTR將目前由第一主機(jī)H1傳送封包至第二主機(jī)H2的去程路徑動(dòng)態(tài)調(diào)整為最佳路徑后,當(dāng)封包要由第二主機(jī)H2回復(fù)至第一主機(jī)H1的回程路徑且該回程路徑不同于去程路徑時(shí),網(wǎng)絡(luò)控制器CTR致使軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1、SDNS2發(fā)布L2更新信息 (Layer2updatemessage),并且更新至目前路徑中流經(jīng)的以太網(wǎng)絡(luò)交換機(jī)上的轉(zhuǎn)發(fā)數(shù)據(jù)庫(forwardinginformationbase,FIB)。除了使用標(biāo)準(zhǔn)的L2更新信息(Layer2updatemessage)之外,網(wǎng)絡(luò)控制器CTR亦可產(chǎn)生以第二主機(jī)H2的MAC地址為來源地址(sourceaddress),第一主機(jī)H1的MAC地址為目的地地址(destinationaddress)的封包,于軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1傳送至默認(rèn)路徑以便更新至目前路徑中流經(jīng)的以太網(wǎng)絡(luò)交換機(jī)上的轉(zhuǎn)發(fā)數(shù)據(jù)庫(forwardinginformationbase,FIB),來避免產(chǎn)生泛流(flooding)現(xiàn)象。軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1或軟件定義網(wǎng)絡(luò)交換機(jī)SDNS2為第一主機(jī)H1至第二主機(jī)H2封包變更路徑后的新路徑與原默認(rèn)路徑的第一個(gè)相交的軟件定義網(wǎng)絡(luò)交換機(jī)。轉(zhuǎn)發(fā)數(shù)據(jù)庫也稱為轉(zhuǎn)發(fā)表格(forwardingtable)。舉例來說,請參照圖12A~12B圖,圖12A~12B繪示泛流(flooding)現(xiàn)象的另一例子。在圖12A的例子中,由于壅塞是在軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1到以太網(wǎng)絡(luò)交換機(jī)ES4的方向,所以封包從第一主機(jī)H1到第二主機(jī)H2的路徑在軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1切到虛擬局域網(wǎng)標(biāo)識(shí)符(VLANID)為VLAN20的路徑,第二主機(jī)H2到第一主機(jī)H1的路徑仍然可以使用虛擬局域網(wǎng)標(biāo)識(shí)符(VLANID)為VLAN10的生成樹。然而,因?yàn)閺牡谝恢鳈C(jī)H1到第二主機(jī)H2的路徑被換到新路徑,致以太網(wǎng)絡(luò)交換機(jī)ES4、以太網(wǎng)絡(luò)交換機(jī)ES8和以太網(wǎng)絡(luò)交換機(jī)ES7在虛擬局域網(wǎng)標(biāo)識(shí)符(VLANID)為VLAN10的表格沒有第一主機(jī)H1的MAC地址信息,從第二主機(jī)H2到第一主機(jī)H1的路徑會(huì)因?yàn)檗D(zhuǎn)發(fā)數(shù)據(jù)庫(forwardinginformationbase,FIB)查找失敗而被廣播。如圖12B所示,當(dāng)封包抵達(dá)軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1時(shí)觸發(fā)封包輸入事件(package-inevent)事件,網(wǎng)絡(luò)控制器CTR除了設(shè)定軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1的路徑表(FlowTable),還會(huì)產(chǎn)生一個(gè)來源MAC地址為第一主機(jī)H1的L2更新封包。這個(gè)L2更新封包上貼著虛擬局域網(wǎng)標(biāo)識(shí)符(VLANID)為VLAN10,從軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1往第二主機(jī)H2的方向發(fā)送,如此一來以太網(wǎng)絡(luò)交換機(jī)ES4、以太網(wǎng)絡(luò)交換機(jī)ES8和以太網(wǎng)絡(luò)交換機(jī)ES7皆可學(xué)習(xí)到第一主機(jī)H1的MAC地址,便消除泛流(Flooding)現(xiàn)象。請參照圖13,其繪示以太網(wǎng)絡(luò)交換機(jī)中轉(zhuǎn)發(fā)數(shù)據(jù)庫(FIB)更新過程 的規(guī)則。對于從主機(jī)Hi到主機(jī)Hj的路徑,可能在默認(rèn)的生成樹路徑上經(jīng)過多個(gè)軟件定義網(wǎng)絡(luò)交換機(jī)SDNSa、SDNSn、SDNSz(去程主機(jī)Hi到主機(jī)Hj)。新路徑在軟件定義網(wǎng)絡(luò)交換機(jī)SDNSa觸發(fā)封包輸入事件(package-inevent),而L2更新封包是從軟件定義網(wǎng)絡(luò)交換機(jī)SDNSz也就是默認(rèn)路徑上的最后一臺(tái)軟件定義網(wǎng)絡(luò)交換機(jī)發(fā)出。L2更新封包來源MAC地址為主機(jī)Hj的MAC地址,往主機(jī)Hi的方向,以刷新軟件定義網(wǎng)絡(luò)交換機(jī)SDNSz到主機(jī)Hi之間的所有以太網(wǎng)絡(luò)交換機(jī)ES的轉(zhuǎn)發(fā)數(shù)據(jù)庫(FIB)(回程)。當(dāng)軟件定義網(wǎng)絡(luò)交換機(jī)的表格查找失敗(找不到)回報(bào)給網(wǎng)絡(luò)控制器CTR時(shí),此更新流程又一次從軟件定義網(wǎng)絡(luò)交換機(jī)SDNSz發(fā)出。在本系統(tǒng)中,軟件定義網(wǎng)絡(luò)交換機(jī)中的信號(hào)接點(diǎn)(FlowEntry)被設(shè)定有空閑超時(shí)(IdleTimeout)。這個(gè)時(shí)間值的設(shè)置要比轉(zhuǎn)發(fā)數(shù)據(jù)庫(FIB)的存活時(shí)間小,以保證在軟件定義網(wǎng)絡(luò)交換機(jī)中的信號(hào)接點(diǎn)(FlowEntry)會(huì)比轉(zhuǎn)發(fā)數(shù)據(jù)庫(FIB)早移除。當(dāng)信號(hào)接點(diǎn)(FlowEntry)因逾時(shí)被移除,抵達(dá)軟件定義網(wǎng)絡(luò)交換機(jī)的封包才能再次觸發(fā)封包輸入事件(package-inevent)。迫使網(wǎng)絡(luò)控制器CTR建立新的L2更新封包以維持以太網(wǎng)絡(luò)交換機(jī)ES正確的轉(zhuǎn)發(fā)狀態(tài)。圖6是選擇最佳路徑的示意圖。以圖6為例,由上到下有4條路徑P61~P64時(shí),各個(gè)鏈路上的數(shù)字分別表示帶寬已使用量。如表一所示,各路徑P61~P64的鏈路最大擁塞量分別是8、8、10、9。對路徑擁塞情況(即鏈路最大擁塞量)進(jìn)行分析,路徑P61及P62的鏈路最大擁塞量最低。鏈路最大擁塞量路徑交換機(jī)數(shù)量路徑總帶寬路徑P618515路徑P628314路徑P6310219路徑P649218表1接著,對路徑交換機(jī)數(shù)量進(jìn)行分析。路徑P62的路徑交換機(jī)數(shù)量低于 路徑P61的路徑交換機(jī)數(shù)量,故選擇路徑P62作為最佳路徑。在本實(shí)施例中,路徑擁塞情況、路徑交換機(jī)數(shù)量及路徑總帶寬依序設(shè)定了優(yōu)先考慮順序。在其他實(shí)施例中,也可根據(jù)需求,調(diào)整優(yōu)先考慮順序。圖7是最佳路徑的示意圖。按照上述方法,當(dāng)圖4的默認(rèn)路徑P0在以太網(wǎng)絡(luò)交換機(jī)ES4與軟件定義網(wǎng)絡(luò)交換機(jī)SDNS2之間產(chǎn)生斷線或嚴(yán)重?fù)砣麜r(shí),可以透過上述方法挑選出圖7的最佳路徑,以避開擁塞的情況,并達(dá)成動(dòng)態(tài)負(fù)載平衡。以下將說明路徑變更的實(shí)施例。圖8是對稱式傳輸路徑的示意圖。在對稱式傳輸路徑中,網(wǎng)絡(luò)控制器CTR控制去程路徑與回程路徑相同。首先定義舊路徑為默認(rèn)路徑P0,其虛擬局域網(wǎng)標(biāo)識(shí)符(VLANID)設(shè)定為VLAN10。新路徑為由軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1開始變更備選路徑P11,其虛擬局域網(wǎng)標(biāo)識(shí)符設(shè)定為VLAN20。去程路徑定義為由第一主機(jī)H1傳輸至第二主機(jī)H2?;爻搪窂蕉x為由第二主機(jī)H2傳輸至第一主機(jī)H1。在圖8中,對稱式傳輸路徑是介于兩個(gè)開放式路徑交換機(jī)SDNS1、SDNS2之間。默認(rèn)路徑P0為第一主機(jī)H1以及第二主機(jī)H2遵循預(yù)設(shè)最小生成樹所提供之路徑,默認(rèn)路徑P0上所使用的虛擬局域網(wǎng)標(biāo)識(shí)符以刮號(hào)表示依序?yàn)椋旱谝恢鳈C(jī)H1(VLAN10)、以太網(wǎng)絡(luò)交換機(jī)ES1(VLAN10)、軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1(VLAN10)、以太網(wǎng)絡(luò)交換機(jī)ES3(VLAN10)、以太網(wǎng)絡(luò)交換機(jī)ES5(VLAN10)、以太網(wǎng)絡(luò)交換機(jī)ES6(VLAN10)、以太網(wǎng)絡(luò)交換機(jī)ES4(VLAN10)、軟件定義網(wǎng)絡(luò)交換機(jī)SDNS2(VLAN10)、以太網(wǎng)絡(luò)交換機(jī)ES7(移除虛擬局域網(wǎng)標(biāo)識(shí)符(VLANID))、第二主機(jī)H2。在此實(shí)施例中,VLAN10為第一主機(jī)H1接入以太網(wǎng)絡(luò)交換機(jī)ES1之端口(port)的虛擬局域網(wǎng)標(biāo)識(shí)符(VLANID),也就是封包進(jìn)入以太網(wǎng)絡(luò)交換機(jī)ES1時(shí)將被貼上VLAN10,而上述路徑中括號(hào)內(nèi)的值表示該封包離開該設(shè)備時(shí)所帶的虛擬局域網(wǎng)標(biāo)識(shí)符(VLANID)。在圖8中,默認(rèn)路徑P0代表封包由第一主機(jī)H1送至第二主機(jī)H2若途中未被更改路徑將使用的路由。若其中經(jīng)過軟件定義網(wǎng)絡(luò)交換機(jī)并經(jīng)由判斷需進(jìn)行路由變換路徑,則由軟件定義網(wǎng)絡(luò)交換機(jī)將封包改貼對應(yīng)新路徑路由之虛擬局域網(wǎng)標(biāo)識(shí)符(VLANID)后送至新的輸出端口(port)(若新路徑路由與默認(rèn)路徑P0路由在該交換機(jī)輸出的鏈路(link)相同時(shí),則此 交換機(jī)輸出端口(port)與原默認(rèn)路徑P0輸出端口(port)一樣)。以下使用圖8說明更改路由的例子,在此例中軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1至軟件定義網(wǎng)絡(luò)交換機(jī)SDNS2間將采用備選路徑P11,該備選路徑P11路由附著于另一最小生成樹,備選路徑P11所使用的虛擬局域網(wǎng)標(biāo)識(shí)符(VLANID)為VLAN20。當(dāng)封包要從第一主機(jī)H1傳送到第二主機(jī)H2時(shí),封包從第一主機(jī)H1到以太網(wǎng)絡(luò)交換機(jī)ES1走默認(rèn)路徑P0。當(dāng)封包由第一主機(jī)H1經(jīng)過以太網(wǎng)絡(luò)交換機(jī)ES1到達(dá)軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1,因?yàn)檐浖x網(wǎng)絡(luò)交換機(jī)SDNS1一開始并不認(rèn)得此封包,因此需傳送一封包輸入信息(packet-inmessage)給網(wǎng)絡(luò)控制器CTR進(jìn)行詢問此封包應(yīng)該如何處理。而網(wǎng)絡(luò)控制器CTR透過網(wǎng)絡(luò)狀態(tài)的掌握決定更換路徑到新路徑時(shí),網(wǎng)絡(luò)控制器CTR分別對軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1及軟件定義網(wǎng)絡(luò)交換機(jī)SDNS2進(jìn)行信號(hào)接點(diǎn)(flowentries)的設(shè)定如表2。表2表2的四個(gè)信號(hào)接點(diǎn)(flowentries)經(jīng)過更改后,使其到去程路徑為上所使用的虛擬局域網(wǎng)標(biāo)識(shí)符以刮號(hào)表示變更為:軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1(VLAN20)、以太網(wǎng)絡(luò)交換機(jī)ES2(VLAN20)、軟件定義網(wǎng)絡(luò)交換機(jī)SDNS2(VLAN20)、以太網(wǎng)絡(luò)交換機(jī)ES7(無須標(biāo)示)、第二主機(jī)H2。需注意的是,此四個(gè)信號(hào)接點(diǎn)(flowentries)可在軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1第一次發(fā)封包輸入信息給網(wǎng)絡(luò)控制器CTR后,由網(wǎng)絡(luò)控制器CTR同時(shí)對軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1及軟件定義網(wǎng)絡(luò)交換機(jī)SDNS2就進(jìn)行設(shè)定。如此,雖然新路徑中之以太網(wǎng)絡(luò)交換機(jī)ES2中沒有目的地第二主機(jī)H2的媒體訪問控制(MAC)地址,新路徑因已設(shè)定擬局域網(wǎng)標(biāo)識(shí)符(VLANID)為VLAN20,所以封包可以成功到達(dá)目的地第二主機(jī)H2,而不會(huì)產(chǎn)生泛流(flooding)現(xiàn)象。另外,亦可在封包經(jīng)過軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1和以太網(wǎng)絡(luò)交換機(jī)ES2后,到達(dá)軟件定義網(wǎng)絡(luò)交換機(jī)SDNS2時(shí),由軟件定義網(wǎng)絡(luò)交換機(jī)SDNS2再發(fā)一次封包輸入給網(wǎng)絡(luò)控制器進(jìn)行詢問有關(guān)虛擬局域網(wǎng)標(biāo)識(shí)符為VLAN20的封包該如何處理。網(wǎng)絡(luò)控制器CTR再對軟件定義網(wǎng)絡(luò)交換機(jī)SDNS2進(jìn)行設(shè)定。在圖8中,網(wǎng)絡(luò)控制器CTR在去程接收到來自第一主機(jī)H1封包時(shí)即已完成反向路由設(shè)定。因此,回程路徑中,封包可由第二主機(jī)H2經(jīng)默認(rèn)路徑P0來到軟件定義網(wǎng)絡(luò)交換機(jī)SDNS2,并利用與去程路徑中相同的備選路徑P11到軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1并回到第一主機(jī)H1。此外,請?jiān)賲⒄請D9和圖10,圖9和圖10是非對稱式傳輸路徑的示意圖。在非對稱式傳輸路徑中,網(wǎng)絡(luò)控制器CTR控制去程路徑與回程路徑不同。非對稱式傳輸路徑不限于兩個(gè)軟件定義網(wǎng)絡(luò)交換機(jī)之間的傳輸,也可發(fā)生于僅只有一個(gè)軟件定義網(wǎng)絡(luò)交換機(jī)的網(wǎng)絡(luò)環(huán)境、及多于一個(gè)軟件定義網(wǎng)絡(luò)交換機(jī)的網(wǎng)絡(luò)環(huán)境中。圖9是以介于兩個(gè)軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1、SDNS2之間的非對稱式傳輸路徑為例做說明。默認(rèn)路徑P0為第一主機(jī)H1以及第二主機(jī)H2遵循預(yù)設(shè)最小生成樹所提供之路徑,默認(rèn)路徑P0上所使用的虛擬局域網(wǎng)標(biāo)識(shí)符以刮號(hào)表示為:第一主機(jī)H1(VLAN10)、以太網(wǎng)絡(luò)交換機(jī)ES1(VLAN10)、軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1(VLAN10)、以太網(wǎng)絡(luò)交換機(jī)ES3(VLAN10)、以太網(wǎng)絡(luò)交換機(jī)ES5(VLAN10)、以太網(wǎng)絡(luò)交換機(jī)ES6(VLAN10)、以太網(wǎng)絡(luò)交換機(jī)ES4(VLAN10)、軟件定義網(wǎng)絡(luò)交換機(jī)SDNS2(VLAN10)、以太網(wǎng)絡(luò)交換機(jī)ES7(移除虛擬局域網(wǎng)標(biāo)識(shí)符)、第二主機(jī)H2。在此實(shí)施例中,VLAN10為第一主機(jī)H1接入以太網(wǎng)絡(luò)交換機(jī)ES1之端口(port)的虛擬局域網(wǎng)標(biāo)識(shí)符(VLANID),也就是封包進(jìn)入以太網(wǎng)絡(luò)交換機(jī)ES1時(shí)將被貼上VLAN10,而上述路徑中括號(hào)內(nèi)的值表示該封包離開該設(shè)備時(shí)所帶的虛擬局域網(wǎng)標(biāo)識(shí)符(VLANID)。當(dāng)封包由第一主機(jī)H1經(jīng)過以太網(wǎng)絡(luò)交換機(jī)ES1到達(dá)軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1時(shí),因?yàn)檐浖x網(wǎng)絡(luò)交換機(jī)SDNS1一開始并不認(rèn)得此封包,因此需傳送一封包輸入(packet-inmessage)給網(wǎng)絡(luò)控制器CTR進(jìn)行詢問此封包應(yīng)該如何處理。網(wǎng)絡(luò)控制器CTR透過網(wǎng)絡(luò)狀態(tài)的掌握決定更換路徑到新路徑時(shí),網(wǎng)絡(luò)控制器CTR分別對軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1及軟件定義網(wǎng)絡(luò)交換機(jī)SDNS2進(jìn)行信號(hào)接點(diǎn)(flowentries)的設(shè)定如表3。表3表3中軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1的第1個(gè)信號(hào)接點(diǎn)(flowentries)及軟件定義網(wǎng)絡(luò)交換機(jī)SDNS2的第1個(gè)信號(hào)接點(diǎn)經(jīng)過更改后,使其到去程路徑為上所使用的虛擬局域網(wǎng)標(biāo)識(shí)符以刮號(hào)表示變更為:軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1(VLAN20)、以太網(wǎng)絡(luò)交換機(jī)ES2(VLAN20)、軟件定義網(wǎng)絡(luò)交換機(jī)SDNS2(VLAN20)、軟件定義網(wǎng)絡(luò)交換機(jī)ES6(VLAN20)、軟件定義網(wǎng)絡(luò)交換機(jī)ES7(移除虛擬局域網(wǎng)標(biāo)識(shí)符(VLANID))、第二主機(jī)H2。注意的是,此2個(gè)信號(hào)接點(diǎn)可于軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1第一 次發(fā)封包輸入信息給網(wǎng)絡(luò)控制器CTR時(shí),由網(wǎng)絡(luò)控制器CTR同時(shí)對軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1及軟件定義網(wǎng)絡(luò)交換機(jī)SDNS2就進(jìn)行設(shè)定。如圖9所示,當(dāng)封包要由第二主機(jī)H2回復(fù)至第一主機(jī)H1的回程路徑,封包由第二主機(jī)H2經(jīng)過以太網(wǎng)絡(luò)交換機(jī)ES7到達(dá)軟件定義網(wǎng)絡(luò)交換機(jī)SDNS2。因?yàn)檐浖x網(wǎng)絡(luò)交換機(jī)SDNS2一開始并不認(rèn)得此封包,因此傳送封包輸入信息(packet-inmessage)給網(wǎng)絡(luò)控制器CTR進(jìn)行詢問此封包流應(yīng)該如何處理。網(wǎng)絡(luò)控制器CTR再分別對軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1及軟件定義網(wǎng)絡(luò)交換機(jī)SDNS2進(jìn)行信號(hào)接點(diǎn)的設(shè)定。如表三所示,軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1的第2個(gè)信號(hào)接點(diǎn)及軟件定義網(wǎng)絡(luò)交換機(jī)SDNS2的第2個(gè)信號(hào)接點(diǎn)設(shè)定為Normal,使其到達(dá)第一主機(jī)H1的回程路徑為默認(rèn)路徑P0。因此,去程路徑不同于回程路徑為一種非對稱式傳輸路徑。然而,在回程路徑上,因?yàn)槿コ逃凶兏窂?,使得原本在默認(rèn)路徑P0上的以太網(wǎng)絡(luò)交換機(jī)未能習(xí)得第一主機(jī)H1的實(shí)體地址,因此網(wǎng)絡(luò)控制器CTR設(shè)定離第一主機(jī)H1最近的一個(gè)軟件定義網(wǎng)絡(luò)交換機(jī)(例如是軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1)可對舊路徑上的以太網(wǎng)絡(luò)交換機(jī)發(fā)布L2更新信息(Layer2updatemessage),以告知默認(rèn)路徑P0上各個(gè)以太網(wǎng)絡(luò)交換機(jī)第一主機(jī)H1的信息,以便使這些交換機(jī)能習(xí)得H1之網(wǎng)卡實(shí)體地址(MACaddress),藉此以解決由第二主機(jī)H2至第一主機(jī)H1反向路由上的廣播封包問題。當(dāng)路徑變更時(shí),本實(shí)施例的網(wǎng)絡(luò)控制器CTR透過以下方式可避免產(chǎn)生泛流(flooding)現(xiàn)象。其中,網(wǎng)絡(luò)控制器CTR變更路徑后,當(dāng)封包要由第二主機(jī)H2回復(fù)至第一主機(jī)H1的回程路徑且該回程路徑不同于去程路徑時(shí),網(wǎng)絡(luò)控制器CTR致使軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1發(fā)布L2更新信息(Layer2updatemessage),或任何攜帶第一主機(jī)H1MAC地址的封包于軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1傳送至默認(rèn)路徑P0以便更新至默認(rèn)路徑P0上的以太網(wǎng)絡(luò)交換機(jī)ES1~ES7上的轉(zhuǎn)發(fā)數(shù)據(jù)庫(forwardinginformationbase,FIB)。在回程路徑中負(fù)責(zé)發(fā)布L2更新信息的軟件定義網(wǎng)絡(luò)交換機(jī)為第一主機(jī)H1至第二主機(jī)H2封包變更路徑后的新路徑與原默認(rèn)路徑的第一個(gè)相交的軟件定義網(wǎng)絡(luò)交換機(jī),此實(shí)施例為軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1。上述軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1發(fā)布L2update可由網(wǎng)絡(luò)控制器CTR負(fù)責(zé),另一更具效率的實(shí)施方法為設(shè)定前述變更路徑(及新路徑P11)的相關(guān)信號(hào)接點(diǎn)(flowentry)為設(shè)定軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1中的信號(hào)接點(diǎn)設(shè)定有空閑超時(shí)(IdleTimeout),此空閑超時(shí)(IdleTimeout)的時(shí)間要比以太網(wǎng)絡(luò)交換機(jī)上的轉(zhuǎn)發(fā)數(shù)據(jù)庫(FIB)的存活時(shí)間少,才能讓軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1中的信號(hào)接點(diǎn)比以太網(wǎng)絡(luò)交換機(jī)上的轉(zhuǎn)發(fā)數(shù)據(jù)庫(FIB)早移除,如此當(dāng)軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1中的信號(hào)接點(diǎn)比以太網(wǎng)絡(luò)交換機(jī)上的轉(zhuǎn)發(fā)數(shù)據(jù)庫(FIB)因?yàn)橛鈺r(shí)被移除,抵達(dá)軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1的封包才能再次觸發(fā)封包輸入信息(packet-inmessage)給網(wǎng)絡(luò)控制器CTR,使給網(wǎng)絡(luò)控制器CTR建立新的L2更新封包以維持以太網(wǎng)絡(luò)交換機(jī)正確的轉(zhuǎn)發(fā)封包。圖10是以一個(gè)軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1的非對稱式傳輸路徑為例做說明。在此實(shí)施例中,第一主機(jī)H1與第二主機(jī)H2之間只有一個(gè)軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1。如此,在第一主機(jī)H1與第二主機(jī)H2之間的默認(rèn)路徑P0上所使用的虛擬局域網(wǎng)標(biāo)識(shí)符以刮號(hào)表示為:第一主機(jī)H1(VLAN10)、以太網(wǎng)絡(luò)交換機(jī)ES1(VLAN10)、軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1(VLAN10)、以太網(wǎng)絡(luò)交換機(jī)ES3(VLAN10)、以太網(wǎng)絡(luò)交換機(jī)ES5(VLAN10)、以太網(wǎng)絡(luò)交換機(jī)ES6(VLAN10)、以太網(wǎng)絡(luò)交換機(jī)ES4(VLAN10)、以太網(wǎng)絡(luò)交換機(jī)ES8(VLAN10)、以太網(wǎng)絡(luò)交換機(jī)ES7(移除虛擬局域網(wǎng)標(biāo)識(shí)符(VLANID))、第二主機(jī)H2。在此實(shí)施例中,鏈路(以太網(wǎng)絡(luò)交換機(jī)ES7,第二主機(jī)H2)在以太網(wǎng)絡(luò)布建時(shí)已經(jīng)預(yù)設(shè)。當(dāng)封包由第一主機(jī)H1經(jīng)過以太網(wǎng)絡(luò)交換機(jī)ES1到達(dá)軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1時(shí),因?yàn)檐浖x網(wǎng)絡(luò)交換機(jī)SDNS1一開始并不認(rèn)得此封包,因此需傳送一封包輸入信息(packet-inmessage)給網(wǎng)絡(luò)控制器CTR進(jìn)行詢問此封包應(yīng)該如何處理。網(wǎng)絡(luò)控制器CTR透過網(wǎng)絡(luò)狀態(tài)的掌握決定更換路徑到新路徑時(shí),網(wǎng)絡(luò)控制器CTR對軟件定義網(wǎng)絡(luò)交換機(jī)SDNS1進(jìn)行信號(hào)接點(diǎn)(flowentries)的設(shè)定如表4。表4根據(jù)上述各種實(shí)施例,在軟件定義網(wǎng)絡(luò)與以太網(wǎng)絡(luò)的混合網(wǎng)絡(luò)架構(gòu)下,將部分的以太網(wǎng)絡(luò)交換機(jī)變更為軟件定義網(wǎng)絡(luò)交換機(jī),如此以太網(wǎng)絡(luò)交換機(jī)以及軟件定義網(wǎng)絡(luò)交換機(jī)之間形成多個(gè)鏈路,網(wǎng)絡(luò)控制器依據(jù)此些鏈路的實(shí)時(shí)帶寬使用量情況或網(wǎng)絡(luò)狀態(tài),獲得一最佳路徑,使得網(wǎng)絡(luò)可以達(dá)成動(dòng)態(tài)負(fù)載平衡。并且,在m個(gè)軟件定義網(wǎng)絡(luò)交換機(jī)下,可以利用各種算法計(jì)算出k條配用路徑。當(dāng)有封包流經(jīng)軟件定義網(wǎng)絡(luò)交換機(jī)時(shí),此軟件定義網(wǎng)絡(luò)交換機(jī)可以動(dòng)態(tài)于此k條備選路徑中判斷是否更換路徑。若需要更換路徑,則可選擇負(fù)載較輕的路徑。以上所述的具體實(shí)施例,對本發(fā)明的目的、技術(shù)方案和有益效果進(jìn)行了進(jìn)一步詳細(xì)說明,所應(yīng)理解的是,以上所述僅為本發(fā)明的具體實(shí)施例而已,并不用于限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。當(dāng)前第1頁1 2 3 當(dāng)前第1頁1 2 3