TWI607641B - 軟體定義網路的控制器及其多路徑路由方法 - Google Patents

軟體定義網路的控制器及其多路徑路由方法 Download PDF

Info

Publication number
TWI607641B
TWI607641B TW105121860A TW105121860A TWI607641B TW I607641 B TWI607641 B TW I607641B TW 105121860 A TW105121860 A TW 105121860A TW 105121860 A TW105121860 A TW 105121860A TW I607641 B TWI607641 B TW I607641B
Authority
TW
Taiwan
Prior art keywords
path
paths
node
nodes
disjoint
Prior art date
Application number
TW105121860A
Other languages
English (en)
Other versions
TW201803320A (zh
Inventor
許健平
劉力瑋
Original Assignee
國立清華大學
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 國立清華大學 filed Critical 國立清華大學
Priority to TW105121860A priority Critical patent/TWI607641B/zh
Priority to US15/221,604 priority patent/US10103974B2/en
Application granted granted Critical
Publication of TWI607641B publication Critical patent/TWI607641B/zh
Publication of TW201803320A publication Critical patent/TW201803320A/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/124Shortest path evaluation using a combination of metrics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/125Shortest path evaluation based on throughput or bandwidth
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/128Shortest path evaluation for finding disjoint paths
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/38Flow based routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/42Centralised routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/64Routing or path finding of packets in data switching networks using an overlay routing layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/19Flow control; Congestion control at layers above the network layer
    • H04L47/193Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

軟體定義網路的控制器及其多路徑路由方法
本揭露是有關於一種網路系統及路由方法,且特別是有關於一種軟體定義網路的控制器及其多路徑路由方法。
軟體定義網路(Software-Defined Networking,SDN)是一種新的網路範式(Network paradigm),其將網路控制層由資料轉送層分割出來,而可提供網路狀態的中央管控。軟體定義網路可分為三層:即控制層(Control plane)、資料層(Data plane)及應用層(Application plane),其中控制層可決定網路的資料流,並使用標準協定(Protocol)與資料層進行連結,其不僅可隨時掌握資料層連結資訊、交換器(Switch)資訊或網路狀態等資訊,並控制資料層對所接收的資料執行特定動作。
隨著網路流量的迅速增長,傳統的單一路徑傳輸已無法有效利用網路資源,取而代之的,現今發展的多路徑路由演算法可結合多路徑傳輸控制協定(Multipath TCP,MPTCP),挑選多條路徑來傳輸資料,將一筆資料流分成多個子流量來傳輸,而可提高點對點的傳輸吞吐量。
MPTCP是傳輸控制協定(TCP)的延伸,其發送器會將一般的TCP資料流分成多筆子流量,而透過多條網路路徑傳輸,最終由接收器聚合從這些網路路徑接收到的子流量,而還原資料封包。雖然MPTCP使用網路中的不同路徑,但其本身並非路由演算法,因此仍需仰賴開放式最短路徑優先(Open Shortest Path First,OSPF)/等價多路徑路由(Equal Cost Multipath,ECMP)等演算法,將不同的子資料流雜湊(hash)至不同路徑傳輸。
然而,OSPF/ ECMP的路由演算法並不足以表示路由的所有可能方案,也不適用許多動態負載平衡(Load balancing)協定。再者,多路徑的多樣化對於MPTCP而言相當重要,因為路徑的選擇會影響網路吞吐量。若每一筆資料的子資料流都使用相同的路徑,這將造成子流量互相競爭網路資源的結果,進而降低了網路吞吐量。
本發明提供一種軟體定義網路的控制器及其多路徑路由方法,可針對一個資料流量提供較好的吞吐量、較小的路徑頻寬差距及較短的平均路徑長度。
本發明在軟體定義網路的多路徑路由方法適於由控制器將資料流量分為 k個子流量來傳輸,其中 k為大於1的整數。此方法先初始化軟體定義網路的多個節點中各所述節點的最大瓶頸頻寬(Maximum bottleneck bandwidth,MBB)及最小跳躍數(Minimum hop-count,MHC)接著,拜訪網路中的起點,發現(Discover)與起點連結的相鄰節點,並鬆弛(Relax)起點至各個相鄰節點的路徑,鬆弛意為更新節點資訊,記錄下新的MBB及MHC,而在鬆弛完成後將起點設定為已拜訪,並記錄所鬆弛的路徑。然後,拜訪其他未被拜訪的節點中最大瓶頸頻寬最大的轉發節點(Forwarding node),發現與此轉發節點連結且未被拜訪的相鄰節點,並鬆弛轉發節點至各個相鄰節點的路徑,而在鬆弛完成後將轉發節點設定為已拜訪,並記錄所鬆弛的路徑,之後則重複前一步驟,繼續拜訪其他未被拜訪的節點,直到拜訪到終點為止。最後,根據針對各個節點記錄的路徑之間的關聯性,製作一不相交路徑對照表,據以找出具有最大化瓶頸頻寬的 k條不相交路徑,其中若擁有相同瓶頸頻寬路徑,則挑選MHC最小者,用以傳輸 k個子流量。
在本發明的一實施例中,所述發現與轉發節點連結且未被拜訪的相鄰節點,並鬆弛轉發節點至各個相鄰節點的路徑的步驟,包括判斷所拜訪的轉發節點的最小跳躍數是否大於所發現的各個相鄰節點的最小跳躍數。若是,對轉發節點至相鄰節點的路徑進行單向鬆弛;若否,則對轉發節點至相鄰節點的路徑進行雙向鬆弛。
在本發明的一實施例中,所述的單向鬆弛包括鬆弛經由轉發節點至相鄰節點的路徑,而所述的雙向鬆弛則包括鬆弛經由轉發節點至相鄰節點的路徑以及鬆弛經由相鄰節點至轉發節點的路徑。
在本發明的一實施例中,所述記錄所鬆弛的路徑的步驟包括判斷所記錄的各個節點的路徑的數目是否大於 m,其中 m為大於1的整數;若大於預設值,僅保留所鬆弛的路徑中最大瓶頸頻寬最大的前 m條路徑。
在本發明的一實施例中,所述根據針對各個節點記錄的路徑之間的關聯性,製作不相交路徑對照表的步驟包括根據各個路徑對應的最大瓶頸頻寬,將這些路徑排序,並在不相交路徑對照表中列出排序後的路徑,然後判斷這些路徑中每一對路徑是否相交,據以在不相交路徑對照表中記錄每一對路徑的相交資訊。
在本發明的一實施例中,所述根據不相交路徑對照表,以找出具有最大化瓶頸頻寬的 k條不相交路徑,用以傳輸 k個子流量的步驟包括由不相交路徑對照表中排序在前的路徑開始,依序搜尋彼此不相交的 k條路徑,做為第一組路徑,之後重複前一步驟,由不相交路徑對照表中排序在次的路徑開始,依序搜尋彼此不相交的 k條路徑,做為其他組路徑,最後則上述的第一組路徑及其他組路徑中選擇具有最大化瓶頸頻寬的一組路徑做為所述 k條不相交路徑,若找出之路徑有相同瓶頸頻寬,則找跳躍數(Hop count)最小者。
在本發明的一實施例中,所述由不相交路徑對照表中排序在前的路徑開始,依序搜尋彼此不相交的 k條路徑,做為其他組路徑的步驟包括由不相交路徑對照表中排序在次的路徑開始,依序搜尋彼此不相交的 k條路徑,做為其他組路徑,直到不相交路徑對照表的所有路徑皆已搜尋過為止。若皆未找到 k條路徑,則會選擇最多條不相交路徑。
在本發明的一實施例中,所述各個節點的最大瓶頸頻寬初始化為0,最小跳躍數則初始化為無限大。
在本發明的一實施例中,所述的方法包括每當轉發節點至各個相鄰節點的路徑鬆弛完成後,將各個相鄰節點的最大瓶頸頻寬設定為所鬆弛的各個路徑的最大瓶頸頻寬中的最大者,且將最小跳躍數設定為所鬆弛的各個路徑中由起點跳躍至相鄰節點所經過節點數目中的最小者。
本發明的軟體定義網路的控制器包括網路介面裝置、儲存裝置及處理器。其中,網路介面裝置是用以耦接軟體定義網路中的多個節點。處理器耦接網路介面裝置與儲存裝置,其中處理器在接收到資料流量的傳輸請求時,將會初始化軟體定義網路的多個節點中各個節點的最大瓶頸頻寬及最小跳躍數。接著,處理器會拜訪這些節點中的起點,發現與起點連結的相鄰節點,並鬆弛起點至各個相鄰節點的路徑,而在鬆弛完成後將起點設定為已拜訪,並在儲存裝置中記錄所鬆弛的路徑。然後,處理器會拜訪其他未被拜訪的節點中最大瓶頸頻寬最大的轉發節點,發現與此轉發節點連結且未被拜訪的相鄰節點,並鬆弛轉發節點至各個相鄰節點的路徑,而在鬆弛完成後將此轉發節點設定為已拜訪,在儲存裝置中記錄所鬆弛的路徑,並重複前一步驟,直到拜訪到所有點皆為已拜訪。最後,處理器根據儲存裝置中針對各個節點記錄的路徑之間的關聯性,製作一不相交路徑對照表,據以找出具有最大化瓶頸頻寬的 k條不相交路徑,用以傳輸由資料流量分割的 k個子流量,其中 k為大於1的整數。
在本發明的一實施例中,所述的處理器包括判斷所拜訪的該轉發節點的該最小跳躍數是否大於所發現的各所述相鄰節點的該最小跳躍數,據以決定對該轉發節點至該相鄰節點的所述路徑進行單向鬆弛或雙向鬆弛。
在本發明的一實施例中,所述的單向鬆弛包括鬆弛經由轉發節點至相鄰節點的所述路徑,而雙向鬆弛則包括鬆弛經由轉發節點至相鄰節點的路徑以及鬆弛經由相鄰節點至轉發節點的路徑。
在本發明的一實施例中,所述的處理器包括判斷所記錄的各個節點的路徑的數目是否大於預設值 m,其中 m為大於1的整數,而若此數目大於預設值,僅保留所鬆弛路徑中最大瓶頸頻寬最大的前 m條路徑。
在本發明的一實施例中,所述的處理器包括根據各個路徑對應的最大瓶頸頻寬,將這些路徑排序,並在不相交路徑對照表中列出排序後的路徑,以及判斷這些路徑中每一對路徑是否相交,據以在不相交路徑對照表中記錄每一對路徑的相交資訊。
在本發明的一實施例中,所述的處理器包括由不相交路徑對照表中排序在前的路徑開始,依序搜尋彼此不相交的 k條路徑,做為第一組路徑,並重複前一步驟,由不相交路徑對照表中排序在次的路徑開始,依序搜尋彼此不相交的 k條路徑,做為其他組路徑,以及從第一組路徑及所述其他組路徑中選擇具有最大化瓶頸頻寬的一組路徑做為 k條不相交路徑,若皆具有相同瓶頸頻寬,則選擇跳躍數最小者。
在本發明的一實施例中,所述的處理器包括由不相交路徑對照表中排序在次的路徑開始,依序搜尋彼此不相交的 k條路徑,做為其他組路徑,直到不相交路徑對照表的所有路徑皆已搜尋過為止,若皆未找到 k條路徑,則會選擇最多條不相交路徑。
在本發明的一實施例中,所述的處理器包括將各個節點的最大瓶頸頻寬初始化為0,且將最小跳躍數初始化為無限大。
在本發明的一實施例中,每當轉發節點至各個相鄰節點的路徑鬆弛完成後,處理器更將各個相鄰節點的最大瓶頸頻寬設定為所鬆弛的各個路徑的最大瓶頸頻寬中的最大者,且將最小跳躍數設定為所鬆弛的各個路徑中由起點跳躍至相鄰節點所經過節點數目中的最小者。
基於上述,本發明的軟體定義網路的控制器及其多路徑路由方法,藉由啟發式演算法找出點到點之間的所有節點及路徑,並依照每個節點的最大瓶頸頻寬的大小,逐個節點進行拜訪並進行路徑鬆弛,最後再以所鬆弛的路徑建立不相交路徑對照表,據以找出彼此不相交且具有最大化瓶頸頻寬的多條路徑,而用於傳輸由資料流量分出來的多個子流量。藉此,可對此資料流量的傳輸提供較好的吞吐量、較小的路徑頻寬差距及較短的平均路徑長度。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
軟體定義網路(Software-Defined Networking,SDN)的多路徑演算法是將一個多路徑傳輸控制協定(Multipath TCP,MPTCP)的流量分成多個子流量來進行點對點的傳輸,本發明將此繞徑問題制定成 k條不相交路徑之最大化瓶頸頻寬的路徑,藉由找出 k條不相交的路徑,並且確保這 k條不相交的路徑中頻寬最小的路徑被最大化,再將多個MPTCP子流量分散到這些路徑上傳輸,可避免子流量互相競爭網路資源,並可縮小每條路徑的頻寬差距。
圖1是依照本發明一實施例所繪示之SDN控制器的方塊圖。請參照圖1,本實施例的SDN控制器10包括網路介面電路12、儲存電路14以及處理器16,其中處理器16耦接至網路介面電路12及儲存電路14。
網路介面電路12例如是有線或無線網路卡,其可用以連接網路(例如,網際網路),使得SDN控制器10可藉由標準協定與SDN的多個節點(即交換器)交換網路訊息。
儲存電路14例如是任何型態的固定式或可移動式隨機存取記憶體(random access memory,RAM)、唯讀記憶體(read-only memory,ROM)、快閃記憶體(flash memory)或類似元件或上述元件的組合。於本實施例中,儲存電路14除了儲存可用以實現本實施例之SDN多路徑路由方法的程式外,還可用以儲存自SDN取得的資料流資訊、節點連結資訊、網路狀態資訊等,包含SDN所接收資料流的來源網際網路協定(Internet protocol,IP)位址、目的地IP位址、來源埠(port)、目的埠、服務鏈等資訊,以及從來源至目的地所經過節點的名稱、順序等資訊。儲存電路14另還可用以儲存經由本實施例之SDN多路徑路由方法所取得的路徑及根據所取得路徑所建立的不相交路徑對照表。
處理器16例如是中央處理單元(Central Processing Unit,CPU),或是其他可程式化之一般用途或特殊用途的微處理器(Microprocessor)、數位訊號處理器(Digital Signal Processor,DSP)、可程式化控制器、特殊應用積體電路(Application Specific Integrated Circuits,ASIC)、可程式化邏輯裝置(Programmable Logic Device,PLD)或其他類似裝置或這些裝置的組合。於本實施例中,處理器16負責SDN控制器110的整體運作,而可存取並執行儲存單元220所儲存的程式,以實現本實施例之SDN多路徑路由方法。
圖2是根據本發明的一實施例所繪示的SDN多路徑路由方法的流程圖。請同時參照圖1及圖2,本實施例的方法適用於上述的SDN控制器10。以下即搭配圖1中SDN控制器10的各項元件,說明本實施例方法的詳細流程。
首先,處理器16初始化SDN的多個節點中各個節點的最大瓶頸頻寬(Maximum bottleneck bandwidth,MBB)及最小跳躍數(Minimum hop-count,MHC)(步驟S202)。其中,處理器16例如是將各個節點的最大瓶頸頻寬初始化為0,並將各個節點的最小跳躍數初始化為無限大。
接著,處理器16拜訪SDN節點中的起點,發現(Discover)SDN中與起點連結的相鄰節點,並鬆弛(Relax)起點至各個相鄰節點的路徑,而在鬆弛完成後則將起點設定為已拜訪,並在儲存裝置14中記錄所鬆弛的路徑(步驟S204)。詳言之,由節點 u鬆弛的路徑( u, v)代表節點 u可經由路徑( u, v)到達節點 v,其中每一條鬆弛路徑均具有一鬆弛值,其為該路徑的起點至目前節點所經過的節點中,節點之間路徑的最大瓶頸頻寬中的最小值,此鬆弛值可做為後續評估路由路徑的依據。據此,處理器16在完成起點的路徑鬆弛後,即會將地點設定為已拜訪,並在儲存裝置14中記錄其針對起點執行路徑鬆弛後所得到的路徑。
然後,處理器16會拜訪SDN中其他未被拜訪節點中最大瓶頸頻寬最大的轉發節點(Forwarding node),發現與此轉發節點連結且未被拜訪的相鄰節點,並鬆弛轉發節點至各個相鄰節點的路徑,而在鬆弛完成後則將轉發節點設定為已拜訪,並記錄所鬆弛的路徑(步驟S206)。需說明的是,處理器16在發現轉發節點的相鄰節點以進行路徑鬆弛時,例如會將所發現相鄰節點的最小跳躍數與轉發節點的最小跳躍數進行比較,以決定是否對轉發節點至相鄰節點的路徑進行單向鬆弛或雙向鬆弛。
詳言之,圖3是依照本發明一實施例所繪示之轉發節點至相鄰節點的路徑鬆弛方法的流程圖。請同時參照圖1及圖3,本實施例的方法亦適用於上述的SDN控制器10。以下即搭配圖1中SDN控制器10的各項元件,說明本實施例方法的詳細流程。
每當完成一個節點的拜訪時,處理器16會繼續從其他節點中搜尋最大瓶頸頻寬最大的節點以作為轉發節點(步驟S302),然後再發現與此轉發節點連結且未被拜訪的相鄰節點(步驟S304)。針對所發現的相鄰節點,處理器16會進一步判斷轉發節點的最小跳躍數是否大於各個相鄰節點的最小跳躍數(步驟S306)。其中,若轉發節點的最小跳躍數不大於各個相鄰節點的最小跳躍數,則處理器16會對轉發節點至相鄰節點的路徑進行單向鬆弛(步驟S308),即僅鬆弛經由轉發節點至相鄰節點的路徑;反之,若轉發節點的最小跳躍數大於各個相鄰節點的最小跳躍數,則處理器16會對轉發節點至相鄰節點的路徑進行雙向鬆弛(步驟S310),即鬆弛經由轉發節點至相鄰節點的路徑,同時也鬆弛經由相鄰節點至轉發節點的路徑。
需說明的是,每當處理器16進行轉發節點至各個相鄰節點的路徑鬆弛時,還會將各個相鄰節點的最大瓶頸頻寬設定為所鬆弛的各個路徑的最大瓶頸頻寬中的最大者,且將最小跳躍數設定為所鬆弛的各個路徑中由起點跳躍至相鄰節點所經過節點數目中的最小者。
此外,每當處理器16完成一個節點的拜訪時,則會判斷是否所有節點皆為已拜訪(步驟S208),若否則回到步驟S206,繼續拜訪其他未被拜訪的節點並進行路徑鬆弛;反之,若所有節點皆已拜訪,則處理器16會根據儲存裝置14針對各個節點所記錄的路徑之間的關聯性,製作一個不相交路徑對照表,據以找出具有最大化瓶頸頻寬的k條不相交路徑,並用以傳輸由資料流量分割的 k個子流量(步驟S210),其中 k為大於1的整數。所述的不相交路徑對照表除了會針對所有路徑進行排序外,還會記載路徑與路徑之間是否相交,從而提供處理器16據以決定路由路徑。
詳言之,處理器16例如會根據各個路徑對應的最大瓶頸頻寬,對這些路徑進行排序(由大至小),並將排序後的路徑列於不相交路徑對照表,然後再判斷這些路徑中的每一對路徑是否相交,據以在不相交路徑對照表中記錄每一對路徑的相交資訊,即相交或不相交。之後,處理器16即可根據此不相交路徑對照表,由排序在前的路徑開始,依序搜尋彼此不相交的 k條路徑,做為第一組路徑,並重複前一步驟,繼續由排序在次的路徑開始,依序搜尋彼此不相交的 k條路徑,做為其他組路徑,然後再從所搜尋的第一組路徑及其他組路徑中,選擇具有最大化瓶頸頻寬的一組路徑做為最終用以傳輸 k個子流量的 k條不相交路徑。
需說明的是,在一實施例中,處理器16例如會重複地由排序在次的路徑開始,搜尋其他組路徑,直到不相交路徑對照表的所有路徑皆已搜尋過為止。而在另一實施例中,處理器16則會重複地由排序在次的路徑開始,搜尋其他組路徑,直到完全搜尋完畢,若皆未找到 k條路徑,則會選擇最多條不相交路徑。
藉由上述方法,本實施例之SDN控制器能夠盡可能地提供頻寬較高的路徑,以傳輸由資料流量分割出來的子流量,且可確保所搜尋的 k條路徑中最大瓶頸頻寬最小的路徑的該最大瓶頸頻寬能夠被最大化。
圖4A至圖4J是依照本發明一實施例所繪示之SDN多路徑路由方法的範例。請先參照圖4A,本實施例的SDN包括傳輸資料流的主機(未繪示)與多個交換器(為方便說明,在以下描述中是以節點為例作說明)以及控制資料流之路由路徑的SDN控制器(未繪示),其中各個節點(即圖中的圓圈)中的標號分別為節點名稱/最大瓶頸頻寬(MBB)/最小跳躍數(MHC)。節點 s代表起點、節點 t則代表終點,對於由節點 s至節點 t的一條路徑而言,其路徑所經過的所有邊緣(edge)中剩餘頻寬的最小值可視為該路徑的瓶頸頻寬。若節點 s至任一節點 v存在多條路徑,則這些路徑的瓶頸頻寬中的最大者即代表節點 v的最大瓶頸頻寬,而這些路徑中的最短路徑的跳躍(hop)數目則代表為節點 v的最小跳躍數。
以圖4A中的節點 s為例,其中的標號( s/∞/0)即代表節點名稱為 s、最大瓶頸頻寬為無限大、最小跳躍數為0。節點與節點之間的連結是雙向的,其上標示的數字則代表該連結之邊緣的剩餘頻寬。在圖4A中,除了起點s的最大瓶頸頻寬/最小跳躍數初始化為∞/0外,其餘節點的最大瓶頸頻寬/最小跳躍數均初始化為0/∞。圖4A中所有節點均預設為未被拜訪及未被發現。
請參照圖4B,在進行本實施例的SDN多路徑路由方法時,SDN控制器會先拜訪起點 s(以下統一以深色底粗框表示目前拜訪的節點),並發現其相鄰節點 abc(以下統一以淺色底表示目前發現的節點)。在執行路徑鬆弛之前,SDN控制器會先將節點 abc的最小跳躍數與起點s的最小跳躍數比較,而在確認起點s的最小跳躍數(即0)小於節點 abc的最小跳躍數(即無限大)後,SDN控制器即會對節點 abc進行單向的路徑鬆弛。經過鬆弛後,節點 a即可得到一條從起點s過來的路徑(圖中標示為 a( s:10)),且此路徑的瓶頸頻寬為10。據此,SDN控制器即會將節點a的最大瓶頸頻寬設定為10,且將節點 a的最小跳躍數設定為1(代表經過1次跳躍)。以此類推,SDN控制器將分別完成節點 bc的路徑鬆弛,以及其最大瓶頸頻寬與最小跳躍數的設定。
請參照圖4C,SDN控制器在完成起點 s的路徑鬆弛後,即會將起點 s設定為已拜訪(以下統一以叉號表示已拜訪的節點),並繼續拜訪下一個節點。在此階段中,SDN剩餘節點中的節點 a具有最大的最大瓶頸頻寬(即10),因此SDN控制器將繼續拜訪節點 a,並發現其相鄰節點 bd。在執行路徑鬆弛之前,SDN控制器會將節點 d的最大瓶頸頻寬設定為9,且將節點 d的最小跳躍數設定為2(代表經過2次跳躍)。然後,SDN控制器會將節點 bd的最小跳躍數與節點a的最小跳躍數比較,而在確認節點a的最小跳躍數(即1)小於等於節點 abc的最小跳躍數(即1)後,SDN控制器即會對節點 bd進行單向的路徑鬆弛。經過鬆弛後,節點b可得到另一條從節點 a過來的路徑(圖中標示為 b( a:8)),且此路徑的瓶頸頻寬為8。此外,節點 d可得到一條從節點 a過來的路徑(圖中標示為 d( a:9)),且此路徑的瓶頸頻寬為9。
請參照圖4D,SDN控制器在完成節點 a的路徑鬆弛後,即會將節點 a設定為已拜訪,並繼續拜訪下一個節點。在此階段中,SDN剩餘節點中的節點 b具有最大的瓶頸頻寬(=9)且具有最小的跳躍數,因此SDN控制器將繼續拜訪節點b,並發現其相鄰節點 def。在執行路徑鬆弛之前,SDN控制器會將節點 e的最大瓶頸頻寬設定為9,且將節點 e的最小跳躍數設定為2;以及將節點 f的最大瓶頸頻寬設定為8,且將節點f的最小跳躍數設定為2。然後,SDN控制器會將節點 def的最小跳躍數與節點 b的最小跳躍數比較,而在確認節點b的最小跳躍數(即1)小於等於節點 def的最小跳躍數(即2)後,SDN控制器會分別對節點 def進行單向的路徑鬆弛。經過鬆弛後,節點 d可得到兩條從節點 b過來的路徑(圖中標示為 d( b:9,8)),其瓶頸頻寬分別為9及8。此外,節點 e可得到兩條從節點 b過來的路徑(圖中標示為 e( b:9,8)),其瓶頸頻寬分別為9及8;節點 f可得到兩條從節點b過來的路徑(圖中標示為 f( b:8,8)),其瓶頸頻寬均為8。
請參照圖4E,SDN控制器在完成節點b的路徑鬆弛後,即會將節點 b設定為已拜訪,並繼續拜訪下一個節點。在此階段中,SDN剩餘節點中的節點 de皆具有相同的MBB與MHC,因此依照識別符(ID)順序小的優先處理(即 d),因此SDN控制器將繼續拜訪節點 d,並發現其相鄰節點 et。在執行路徑鬆弛之前,SDN控制器會將節點 t的最大瓶頸頻寬設定為8,且將節點 t的最小跳躍數設定為3。然後,SDN控制器會將節點 et的最小跳躍數與節點 d的最小跳躍數比較,而在確認節點d的最小跳躍數(即2)小於等於節點 et的最小跳躍數(分別為2、3)後,SDN控制器即會對節點 et進行單向的路徑鬆弛。經過鬆弛後,節點e可得到三條從節點d過來的路徑(圖中標示為 e( d:6,6,6)),且其瓶頸頻寬均為6。此外,節點t亦可得到三條從節點 d過來的路徑(圖中標示為 t( d:8,8,8)),且其瓶頸頻寬均為8。
請參照圖4F,SDN控制器在完成節點d的路徑鬆弛後,即會將節點 d設定為已拜訪,並繼續拜訪下一個節點。在此階段中,SDN剩餘節點中的節點 e具有最大的最大瓶頸頻寬(即9),因此SDN控制器將繼續拜訪節點 e,並發現其相鄰節點 ct。值得注意的是,為了減少後續進行路徑鬆弛的時間複雜度,本實施例例如是將每個節點記錄的路徑數目控制在上限值(此實施例設定4條)以內。據此,SDN控制器會先將節點 e先前鬆弛所得的5條路徑刪減為4條路徑(其中刪掉瓶頸頻寬最小的路徑)。
請參照圖4G,在執行路徑鬆弛之前,SDN控制器會將節點 c的最小跳躍數與節點 e的最小跳躍數比較,而在確認節點 e的最小跳躍數(即2)大於節點c的最小跳躍數(即1)後,SDN控制器即會對節點c進行雙向的路徑鬆弛,其包括鬆弛經由節點 e至節點 c的路徑,節點 c可得到四條從節點 e過來的路徑(圖中標示為 c( e:7,7,6,6)),且其瓶頸頻寬分別為7、7、6、6。此外,節點 t亦可得到三條從節點 d過來的路徑(圖中標示為 t( d:8,8,8)),且其瓶頸頻寬均為8。
另一方面,請參照圖4H,SDN控制器也會鬆弛經由節點 c至節點e的路徑,節點 e可得到一條從節點 c過來的路徑(圖中標示為 e( c:7)),且其瓶頸頻寬為7。其中,由於節點 e在增加路徑 e( c:7),其路徑數目又超過上限值,因此SDN控制器會再刪掉5條路徑中瓶頸頻寬最小的路徑。然後,SDN控制器會鬆弛經由節點 e至節點 t的路徑,節點 t可得到四條從節點 e過來的路徑(圖中標示為 t( e:8,8,7,6)),且其瓶頸頻寬分別為8、8、7、6。
請參照圖4I,SDN控制器在完成節點e的路徑鬆弛後,即會將節點 e設定為已拜訪,並繼續拜訪下一個節點。在此階段中,SDN剩餘節點中的節點 c具有最大的最大瓶頸頻寬(即8),因此SDN控制器將繼續拜訪節點 c,並發現其相鄰節點 f。類似地,SDN控制器會先將節點 c先前鬆弛所得的5條路徑刪減為4條路徑(其中刪掉瓶頸頻寬最小的路徑)。然後,在執行路徑鬆弛之前,SDN控制器會將節點f的最小跳躍數與節點 c的最小跳躍數比較,而在確認節點 c的最小跳躍數(即1)小於等於節點f的最小跳躍數(即2)後,SDN控制器即會對節點 f進行單向的路徑鬆弛。經過鬆弛後,節點 f可得到四條從節點 c過來的路徑(圖中標示為f(c:4,4,4,4)),且其瓶頸頻寬均為4。
請參照圖4J,SDN控制器在完成節點c的路徑鬆弛後,即會將節點 c設定為已拜訪,並繼續拜訪下一個節點。在此階段中,SDN剩餘節點中的節點f具有最大的最大瓶頸頻寬(即8),因此SDN將繼續拜訪節點 f,並發現其相鄰節點 t。SDN控制器會先將節點 f先前鬆弛所得的6條路徑刪減為4條路徑(其中刪掉瓶頸頻寬最小的2條路徑)。然後,在執行路徑鬆弛之前,SDN控制器會將節點 t的最小跳躍數與節點f的最小跳躍數比較,而在確認節點f的最小跳躍數(即2)小於等於節點t的最小跳躍數(即3)後,SDN控制器即會對節點t進行單向的路徑鬆弛。經過鬆弛後,節點t可得到四條從節點 f過來的路徑(圖中標示為 t( f:7,7,4,4)),且其瓶頸頻寬分別為7、7、4、4。最終,SDN控制器會拜訪節點 t,並得到如圖所示的11條路徑(包括路徑 t( d:8,8,8)、 t( e:8,8,7,6)、 t( f:7,7,4,4))。
針對上述11條路徑,SDN控制器會繼續建立一個不相交路徑對照表,並據以找出具有最大化最小頻寬的 k條不相交路徑,用以傳輸 k個子流量。
舉例來說,圖5A及圖5B是依照本發明一實施例所繪示之搜尋具有最大化瓶頸頻寬的 k條不相交路徑的範例。請參照圖5A,本實施例係將前述實施例所獲得的節點 t的11條路徑,依照其最大瓶頸頻寬的大小進行排序,並由大至小依序列於不相交路徑對照表50中(分別標示為路徑cp 1~cp 11,其中cp 1具有最大的最大瓶頸頻寬,而cp 11具有最小的最大瓶頸頻寬)。需說明的是,不相交路徑對照表50中的縱向欄位及橫向欄位中均依序列出路徑cp 1~cp 11,且在任兩條路徑相交的表格位置中記錄有這兩條路徑是否相交(其中1代表不相交、0代表有相交)。
依據不相交路徑對照表50,本實施例將排序在前的路徑cp 1做為第一組路徑中的第一條路徑,並由路徑cp 1開始,依序搜尋彼此不相交的 k條路徑(本實施例以3條為例做說明,但不限於此)。由路徑cp 1所在的表格列52可知,所有的路徑cp 1~cp 11中,下一條與路徑cp 1不相交的路徑為路徑cp 4,故取路徑cp 4做為第一組路徑中的第二條路徑。繼續向後搜尋,下一條與路徑cp 1不相交的路徑為路徑cp 6,但由於路徑cp 6與路徑cp 4有相交,故不將路徑cp 6列入第一組路徑。然後,繼續向後搜尋,下一條與路徑cp 1不相交的路徑為路徑cp 7,但由於路徑cp 7也與路徑cp 4有相交,故亦不將路徑cp 7列入第一組路徑。然後,繼續向後搜尋,下一條與路徑cp 1不相交的路徑為路徑cp 10,而由於路徑cp 10未與路徑cp 4相交,故可取路徑cp 10做為第一組路徑中的第三條路徑。至此,即完成第一組路徑的搜尋。圖5B即繪示出上述搜尋到的第一組路徑(即路徑cp 1、cp 4、cp 10)。
圖6A及圖6B是依照本發明一實施例所繪示之搜尋具有最大化瓶頸頻寬的k條不相交路徑的範例。請參照圖6A,本實施例係接續在圖5A的實施例之後,繼續依據不相交路徑對照表50,搜尋第二組路徑。其中,本實施例將排序在次的路徑cp 2做為第二組路徑中的第一條路徑,並由路徑cp 2開始,依序搜尋彼此不相交的3條路徑。由路徑cp 2所在的表格列54可知,所有的路徑cp 1~cp 11中,下一條與路徑cp 2不相交的路徑為路徑cp 5,故取路徑cp 5做為第二組路徑中的第二條路徑。繼續向後搜尋,下一條與路徑cp 2不相交的路徑為路徑cp 6,但由於路徑cp 6與路徑cp 5有相交,故不將路徑cp 6列入第二組路徑。然後,繼續向後搜尋,可發現下二條與路徑cp 2不相交的路徑cp 8及cp 9均與路徑cp 5有相交,故亦不列入第二組路徑。直到下一條與路徑cp 1不相交的路徑cp 10,由於路徑cp 10未與路徑cp 5相交,故可取路徑cp 10做為第二組路徑中的第三條路徑。至此,即完成第二組路徑的搜尋。圖6B即繪示出上述搜尋到的第二組路徑(即路徑cp 2、cp 5、cp 10)。
圖7A及圖7B是依照本發明一實施例所繪示之搜尋具有最大化瓶頸頻寬的k條不相交路徑的範例。請參照圖7A,本實施例係接續在圖6A的實施例之後,繼續依據不相交路徑對照表50,搜尋第三組路徑。其中,以排序在路徑cp 2後的路徑cp 3~ cp 5做為第一條路徑均無法搜尋到3條彼此不相交的路徑,直到以路徑cp 6做為第三組路徑中的第一條路徑,才可搜尋到3條彼此不相交的路徑。其中,由路徑cp 6所在的表格列56可知,所有的路徑cp 1~cp 11中,下一條與路徑cp 6不相交的路徑為路徑cp 1,故取路徑cp 1做為第三組路徑中的第二條路徑。繼續向後搜尋,可發現下二條與路徑cp 6不相交的路徑cp 2及cp 3均與路徑cp 1有相交,故亦不列入第三組路徑。直到下一條與路徑cp 6不相交的路徑cp 7,由於路徑cp 7未與路徑cp 1相交,故可取路徑cp 7做為第三組路徑中的第三條路徑。至此,即完成第三組路徑的搜尋。圖7B即繪示出上述搜尋到的第三組路徑(即路徑cp 1、cp 6、cp 7)。
在本實施例中,SDN控制器即取上述三組路徑進行比較,以找出其中具有最大化瓶頸頻寬的不相交路徑。其中,第一組路徑中的路徑cp 1、cp 4、cp 10的瓶頸頻寬分別為8、8、4,故其最小瓶頸頻寬為4;第二組路徑中的路徑cp 2、cp 5、cp 10的瓶頸頻寬也分別為8、8、4,故其最小瓶頸頻寬為4;第三組路徑中的路徑cp 1、cp 6、cp 7的瓶頸頻寬則分別為8、7、7,故其最小瓶頸頻寬為7。據此,SDN控制器最終即選擇具有最大化最小瓶頸頻寬的第三組路徑,而用以傳輸3個子流量。
綜上所述,本發明的軟體定義網路的控制器及其多路徑路由方法,藉由將資料流量分成多個子流量來進行點對點傳輸的繞徑問題制定成 k條不相交路徑之最小瓶頸頻寬的最大化,利用啟發式的演算法,將來自同一組點對點傳輸的多個子流量分散到不同的路徑上,藉此可避免子流量互相競爭網路資源,且縮小了每條路徑的頻寬差距,有效提高點對點傳輸的吞吐量。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
10‧‧‧SDN控制器
12‧‧‧網路介面電路
14‧‧‧儲存電路
16‧‧‧處理器
50‧‧‧不相交路徑對照表
52、54、56‧‧‧表格列
a~f‧‧‧節點(交換器)
s‧‧‧起點
t‧‧‧終點
cp1~cp11‧‧‧路徑
S202~S210‧‧‧本發明一實施例之軟體定義網路的多路徑路由方法的步驟
S302~S310‧‧‧本發明一實施例之轉發節點至相鄰節點的路徑鬆弛方法的步驟
圖1是依照本發明一實施例所繪示之SDN控制器的方塊圖。 圖2是根據本發明的一實施例所繪示的SDN多路徑路由方法的流程圖。 圖3是依照本發明一實施例所繪示之轉發節點至相鄰節點的路徑鬆弛方法的流程圖。 圖4A至圖4J是依照本發明一實施例所繪示之SDN多路徑路由方法的範例。 圖5A及圖5B是依照本發明一實施例所繪示之搜尋具有最大化瓶頸頻寬的k條不相交路徑的範例。 圖6A及圖6B是依照本發明一實施例所繪示之搜尋具有最大化瓶頸頻寬的k條不相交路徑的範例。 圖7A及圖7B是依照本發明一實施例所繪示之搜尋具有最大化瓶頸頻寬的k條不相交路徑的範例。
S202~S210‧‧‧本發明一實施例之軟體定義網路的多路徑路由方法的步驟

Claims (14)

  1. 一種軟體定義網路的多路徑路由方法,適於由控制器將資料流量分為k個子流量來傳輸,其中k為大於1的整數,該方法包括下列步驟:初始化軟體定義網路的多個節點中各該些節點的最大瓶頸頻寬(Maximum bottleneck bandwidth,MBB)為0,並且初始化該軟體定義網路的各該些節點的最小跳躍數(Minimum hop-count,MHC)為無限大;首先拜訪該些節點中的起點,發現(Discover)與該起點連結的相鄰節點,並鬆弛(Relax)該起點至各所述相鄰節點的路徑,而在鬆弛完成後設定該起點為已拜訪,並記錄所鬆弛的所述路徑;繼續拜訪該些節點中其他未被拜訪節點中該最大瓶頸頻寬最大的節點作為轉發節點,發現與該轉發節點連結且未被拜訪的相鄰節點,並鬆弛該轉發節點至各所述相鄰節點的路徑,而在鬆弛完成後,設定該轉發節點為已拜訪,設定各所述相鄰節點的該最大瓶頸頻寬為所鬆弛的各所述路徑的該最大瓶頸頻寬中的最大者,設定該最小跳躍數為所鬆弛的各所述路徑中由該起點跳躍至該相鄰節點所經過節點數目中的最小者,並記錄所鬆弛的所述路徑;重複前一步驟,繼續拜訪該些節點中其他未被拜訪的節點,直到所有節點皆為已拜訪為止;以及 根據各該些節點記錄的所述路徑之間的關聯性,製作一不相交路徑對照表,據以找出具有最大化瓶頸頻寬的k條不相交路徑,用以傳輸該k個子流量。
  2. 如申請專利範圍第1項所述的方法,其中發現與該轉發節點連結且未被拜訪的所述相鄰節點,並鬆弛該轉發節點至各所述相鄰節點的路徑的步驟包括:判斷所拜訪的該轉發節點的該最小跳躍數是否大於所發現的各所述相鄰節點的該最小跳躍數,若是,對該轉發節點至該相鄰節點的所述路徑進行雙向鬆弛;以及若否,對該轉發節點至該相鄰節點的所述路徑進行單向鬆弛。
  3. 如申請專利範圍第2項所述的方法,其中該單向鬆弛包括鬆弛經由該轉發節點至該相鄰節點的所述路徑;以及該雙向鬆弛包括鬆弛經由該轉發節點至該相鄰節點的所述路徑以及鬆弛經由該相鄰節點至該轉發節點的所述路徑。
  4. 如申請專利範圍第1項所述的方法,其中記錄所鬆弛的所述路徑的步驟包括:判斷所記錄的各該些節點的所述路徑的數目是否大於m,其中m為大於1的整數;以及若大於該預設值,僅保留所鬆弛的所述路徑中該最大瓶頸頻寬最大的前m條路徑。
  5. 如申請專利範圍第1項所述的方法,其中根據各該些節點記錄的所述路徑之間的關聯性,製作該不相交路徑對照表的步驟包括:根據各所述路徑對應的該最大瓶頸頻寬,排序所述路徑,並列出排序後的所述路徑於該不相交路徑對照表;以及判斷所述路徑中每一對路徑是否相交,據以記錄每一對路徑的相交資訊於該不相交路徑對照表。
  6. 如申請專利範圍第5項所述的方法,其中根據該不相交路徑對照表,以找出具有最大化瓶頸頻寬的k條不相交路徑,用以傳輸該k個子流量的步驟包括:由該不相交路徑對照表中排序在前的該路徑開始,依序搜尋彼此不相交的k條路徑,做為第一組路徑;重複前一步驟,由該不相交路徑對照表中排序在次的該路徑開始,依序搜尋彼此不相交的k條路徑,做為其他組路徑;以及從該第一組路徑及所述其他組路徑中選擇具有最大化瓶頸頻寬的一組路徑做為該k條不相交路徑。
  7. 如申請專利範圍第6項所述的方法,其中由該不相交路徑對照表中排序在次的該路徑開始,依序搜尋彼此不相交的k條路徑,做為其他組路徑的步驟包括:由該不相交路徑對照表中排序在次的該路徑開始,依序搜尋彼此不相交的k條路徑,做為其他組路徑,直到該不相交路徑對照表的所有路徑皆已搜尋過為止。
  8. 一種軟體定義網路的控制器,包括:一網路介面裝置,耦接一軟體定義網路中的多個節點;一儲存裝置;以及一處理器,耦接該網路介面裝置與該儲存裝置,其中該處理器在接收到一資料流量的傳輸請求時,初始化該軟體定義網路的各該些節點的最大瓶頸頻寬為0,並且初始化該軟體定義網路的各該些節點的最小跳躍數為無限大;該處理器首先拜訪該些節點中的起點,發現與該起點連結的相鄰節點,並鬆弛該起點至各所述相鄰節點的路徑,而在鬆弛完成後設定該起點為已拜訪,並記錄所鬆弛的所述路徑於該儲存裝置;該處理器繼續拜訪該些節點中其他未被拜訪節點中該最大瓶頸頻寬最大的節點作為轉發節點,發現與該轉發節點連結且未被拜訪的相鄰節點,並鬆弛該轉發節點至各所述相鄰節點的路徑,而在鬆弛完成後設定該轉發節點為已拜訪,記錄所鬆弛的所述路徑於該儲存裝置,並重複前一步驟,直到該些節點中的所有節點皆為已拜訪為止;以及該處理器根據該儲存裝置中針對各該些節點記錄的所述路徑之間的關聯性,製作一不相交路徑對照表,據以找出具有最大化瓶頸頻寬的k條不相交路徑,用以傳輸由該資料流量分割的k個子流量,其中k為大於1的整數, 其中每當該轉發節點至各所述相鄰節點的路徑鬆弛完成後,該處理器更包括設定各所述相鄰節點的該最大瓶頸頻寬為所鬆弛的各所述路徑的該最大瓶頸頻寬中的最大者,且設定該最小跳躍數為所鬆弛的各所述路徑中由該起點跳躍至該相鄰節點所經過節點數目中的最小者。
  9. 如申請專利範圍第8項所述的控制器,其中該處理器包括判斷所拜訪的該轉發節點的該最小跳躍數是否大於所發現的各所述相鄰節點的該最小跳躍數,據以決定對該轉發節點至該相鄰節點的所述路徑進行單向鬆弛或雙向鬆弛。
  10. 如申請專利範圍第9項所述的控制器,其中該單向鬆弛包括鬆弛經由該轉發節點至該相鄰節點的所述路徑;以及該雙向鬆弛包括鬆弛經由該轉發節點至該相鄰節點的所述路徑以及鬆弛經由該相鄰節點至該轉發節點的所述路徑。
  11. 如申請專利範圍第8項所述的控制器,其中該處理器包括判斷所記錄的各該些節點的所述路徑的數目是否大於m,其中m為大於1的整數,而若該數目大於該預設值,僅保留所鬆弛的所述路徑中該最大瓶頸頻寬最大的前m條路徑。
  12. 如申請專利範圍第8項所述的控制器,其中該處理器包括根據各所述路徑對應的該最大瓶頸頻寬,排序所述路徑,並列出排序後的所述路徑於該不相交路徑對照表,以及判斷所述路徑 中每一對路徑是否相交,據以記錄每一對路徑的相交資訊於該不相交路徑對照表。
  13. 如申請專利範圍第12項所述的控制器,其中該處理器包括由該不相交路徑對照表中排序在前的該路徑開始,依序搜尋彼此不相交的k條路徑,做為第一組路徑,並重複前一步驟,由該不相交路徑對照表中排序在次的該路徑開始,依序搜尋彼此不相交的k條路徑,做為其他組路徑,以及從該第一組路徑及所述其他組路徑中選擇具有最大化瓶頸頻寬的一組路徑做為該k條不相交路徑。
  14. 如申請專利範圍第13項所述的控制器,其中該處理器包括由該不相交路徑對照表中排序在次的該路徑開始,依序搜尋彼此不相交的k條路徑,做為其他組路徑,直到該不相交路徑對照表的所有路徑皆已搜尋過為止,其中若皆未找到k條路徑,則會選擇最多條不相交路徑。
TW105121860A 2016-07-12 2016-07-12 軟體定義網路的控制器及其多路徑路由方法 TWI607641B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW105121860A TWI607641B (zh) 2016-07-12 2016-07-12 軟體定義網路的控制器及其多路徑路由方法
US15/221,604 US10103974B2 (en) 2016-07-12 2016-07-28 Software-defined network controller and multipath routing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW105121860A TWI607641B (zh) 2016-07-12 2016-07-12 軟體定義網路的控制器及其多路徑路由方法

Publications (2)

Publication Number Publication Date
TWI607641B true TWI607641B (zh) 2017-12-01
TW201803320A TW201803320A (zh) 2018-01-16

Family

ID=60941769

Family Applications (1)

Application Number Title Priority Date Filing Date
TW105121860A TWI607641B (zh) 2016-07-12 2016-07-12 軟體定義網路的控制器及其多路徑路由方法

Country Status (2)

Country Link
US (1) US10103974B2 (zh)
TW (1) TWI607641B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI699100B (zh) * 2018-12-06 2020-07-11 中華電信股份有限公司 用於異質軟體定義網路的路徑查測裝置及路徑查測方法
US11224053B2 (en) 2020-02-14 2022-01-11 Wistron Corp. Mobile communication devices and methods for scheduling data traffic communication

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10091097B2 (en) * 2016-10-27 2018-10-02 Nanning Fugui Precision Industrial Co., Ltd. Transmission path optimization method and software-defined networking controller using the method
CN109067662B (zh) * 2018-06-29 2020-09-01 中国科学院计算技术研究所 一种基于作业部署信息的链路互连方法和系统
CN109257282B (zh) * 2018-08-09 2020-07-14 北京邮电大学 一种数据传输方法及装置
CN109586973B (zh) * 2018-12-20 2020-11-10 北京交通大学 基于普适标识网络体系的数据流跳变传输方法
JPWO2022180666A1 (zh) * 2021-02-24 2022-09-01
WO2022180665A1 (ja) * 2021-02-24 2022-09-01 日本電信電話株式会社 通信システム、通信方法、接続先管理サーバ及びプログラム
CN113630385B (zh) * 2021-07-13 2022-05-06 电子科技大学 一种sdn网络下dos攻击防控方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130107729A1 (en) * 2011-11-02 2013-05-02 Telcordia Technologies, Inc. Method, system, network nodes, routers and program for bandwidth estimation in multi-hop networks
US20150063112A1 (en) * 2013-08-30 2015-03-05 Futurewei Technologies Inc. Dynamic priority queue mapping for qos routing in software defined networks
TWI528755B (zh) * 2013-12-06 2016-04-01 財團法人工業技術研究院 軟體定義網路中用於延遲量測之網路控制器、延遲量測系統及延遲量測方法
TW201613313A (en) * 2014-09-22 2016-04-01 Ind Tech Res Inst Method and system for changing path and controllor thereof

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6990111B2 (en) * 2001-05-31 2006-01-24 Agilent Technologies, Inc. Adaptive path discovery process for routing data packets in a multinode network
US7616961B2 (en) * 2002-04-29 2009-11-10 Harris Corporation Allocating channels in a mobile ad hoc network
US6940832B2 (en) * 2003-01-17 2005-09-06 The Research Foundation Of The City University Of New York Routing method for mobile infrastructureless network
US8400923B2 (en) 2010-10-15 2013-03-19 Telefonaktiebolaget L M Ericsson (Publ) Multipath transmission control protocol proxy
US8670310B2 (en) * 2010-12-21 2014-03-11 Hewlett-Packard Development Company, L.P. Dynamic balancing priority queue assignments for quality-of-service network flows
CN102547856B (zh) 2011-12-02 2015-07-08 湖北经济学院 一种Ad Hoc网络中基于网络编码的多路径路由方法
US9185166B2 (en) 2012-02-28 2015-11-10 International Business Machines Corporation Disjoint multi-pathing for a data center network
US8711855B1 (en) * 2012-12-18 2014-04-29 Juniper Networks, Inc. Topology discovery, control channel establishment, and datapath provisioning within an aggregation network with centralized control
US9680870B2 (en) * 2012-12-28 2017-06-13 Verizon Patent And Licensing Inc. Software-defined networking gateway
TWI523463B (zh) 2013-06-11 2016-02-21 英業達股份有限公司 網路系統及負載平衡方法
EP2993842A1 (en) * 2014-09-05 2016-03-09 Nederlandse Organisatie voor toegepast- natuurwetenschappelijk onderzoek TNO Search for disjoint paths through a network

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130107729A1 (en) * 2011-11-02 2013-05-02 Telcordia Technologies, Inc. Method, system, network nodes, routers and program for bandwidth estimation in multi-hop networks
US20150063112A1 (en) * 2013-08-30 2015-03-05 Futurewei Technologies Inc. Dynamic priority queue mapping for qos routing in software defined networks
TWI528755B (zh) * 2013-12-06 2016-04-01 財團法人工業技術研究院 軟體定義網路中用於延遲量測之網路控制器、延遲量測系統及延遲量測方法
TW201613313A (en) * 2014-09-22 2016-04-01 Ind Tech Res Inst Method and system for changing path and controllor thereof

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI699100B (zh) * 2018-12-06 2020-07-11 中華電信股份有限公司 用於異質軟體定義網路的路徑查測裝置及路徑查測方法
US11224053B2 (en) 2020-02-14 2022-01-11 Wistron Corp. Mobile communication devices and methods for scheduling data traffic communication

Also Published As

Publication number Publication date
US20180019940A1 (en) 2018-01-18
TW201803320A (zh) 2018-01-16
US10103974B2 (en) 2018-10-16

Similar Documents

Publication Publication Date Title
TWI607641B (zh) 軟體定義網路的控制器及其多路徑路由方法
JP5551253B2 (ja) 複数の等コストパスから選択するための方法および装置
US8000239B2 (en) Method and system for bandwidth allocation using router feedback
KR100450407B1 (ko) 서비스 품질(QoS)보장 다중경로 계산방법
US8718055B2 (en) Fast-tracking approach for building routing topologies in fast-moving networks
US7936732B2 (en) Selecting aggregation nodes in a network
TW200406106A (en) Multi-channel mobile ad hoc network
US20080075084A1 (en) Selecting routing protocol in network
TW200836517A (en) Mesh node mobility across static and mobile mesh networks
US20180227218A1 (en) Generating non-congruent paths having minimal latency difference in a loop-free routing topology having routing arcs
CN108476170B (zh) 双向约束路径搜索方法及装置
US9654382B2 (en) Use of alternate paths in forwarding of network packets
WO2019236221A1 (en) Preferred path route graphs in a network
Lei et al. Multipath routing in SDN-based data center networks
Sheu et al. An efficient multipath routing algorithm for multipath TCP in software-defined networks
Zahia et al. Multipath routing for high-data rate applications in Zigbee wireless sensor networks
JP4806367B2 (ja) 経路選択装置
JP6658134B2 (ja) コスト設定装置、方法およびプログラム
CN101702686B (zh) 实现多下一跳路由的方法、装置及系统
Ma et al. An Improved Maximum Flow Routing Algorithm for Multi-homing in Information-Centric Networking
JP2007129358A (ja) LSP(LabelSwitchedPath)経路計算方法及び装置及びプログラム
KR100562902B1 (ko) 네트워크 노드 간 효율적인 경로 선택 방법
JP2018006793A (ja) 転送装置、サーバ装置、および、転送方法
Shandilya Understanding network routing problem and study of routing algorithms and heuristics through implementation
MEENAKSHI Study and Analysis of Techniques for Development of Quality of Service in Networks