TWI542172B - 路徑更換方法與系統及其控制器 - Google Patents

路徑更換方法與系統及其控制器 Download PDF

Info

Publication number
TWI542172B
TWI542172B TW103132624A TW103132624A TWI542172B TW I542172 B TWI542172 B TW I542172B TW 103132624 A TW103132624 A TW 103132624A TW 103132624 A TW103132624 A TW 103132624A TW I542172 B TWI542172 B TW I542172B
Authority
TW
Taiwan
Prior art keywords
node
transmission path
packet
controller
path
Prior art date
Application number
TW103132624A
Other languages
English (en)
Other versions
TW201613313A (en
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 TW103132624A priority Critical patent/TWI542172B/zh
Priority to US14/572,790 priority patent/US9455916B2/en
Publication of TW201613313A publication Critical patent/TW201613313A/zh
Application granted granted Critical
Publication of TWI542172B publication Critical patent/TWI542172B/zh

Links

Classifications

    • 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/12Avoiding congestion; Recovering from congestion

Landscapes

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

Description

路徑更換方法與系統及其控制器
本揭露是有關於一種路徑更換方法與系統,且特別是有關於一種用於更換在一網路中從第一節點傳送封包至第二節點的傳輸路徑的路徑更換方法與系統及其控制器。
隨著科技與技術的演進以及人們對於網路需求的增加,許多如雲端服務、巨量資訊等網路應用隨之而生。傳統上,交換機(switch)同時具有控制層(control plane)與資料層(data plane)。當資料封包的傳送路徑經確定後,儘管網路狀態發生擁塞或故障等狀況時,將無法透過傳統的交換機來即時更換路徑。換言之,交換機所提供的功能不容易隨使用者的需求而動態改變,因此網路功能及行為常受限於交換機所提供的功能,若欲使現有的網路擁有新的功能與特性,往往只能添購具有新功能的機器。
近年來,為解決上述問題,軟體定義網路(Software-defined Network,SDN)的觀念及技術被提出且受到廣泛 的重視及研究。圖1繪示為軟體定義網路的架構。請參照圖1,SDN的架構是將網路分為三層,由此來將網路的控制層與資料層分開。其三層分別為應用層110與控制層120及資料層130。應用層110是讓使用者在控制器上撰寫進階網路應用程式(例如,應用程式110-1~應用程式110-n)的地方,並且透過SDN控制器100所提供的北向應用程式介面(Northbound API)102來取得控制層120中的資料及所提供的服務。舉例來說,使用者可以透過北向應用程式介面102取得交換機130-1~130-n流量的資訊,藉由此資訊來進行流量負載均衡控制。控制層120則是提供基礎網路服務並掌握整個網路的相關資訊,透過南向應用程式介面(Southbound API)104和負責資料層130的交換機130-1~130-n溝通,進而控制整個網路的行為和封包的流向。此外,資料層130則為交換機中轉送資料封包的部分,多個交換機130-1~130-n相連組成一個網路拓樸,並且交換機會依據控制層的命令來轉送封包。
在SDN的環境下,資料與封包的傳輸以流(flow)為單位,為了提高整體傳輸效能,SDN控制器100可依照網路狀態來調整資料封包的傳輸路徑,然而,當資料封包的傳輸路徑改變後,可能會造成原先傳輸路徑的封包遺失(packet loss)與接收端封包順序錯亂(out-of-order)的問題。圖2A~圖2C為在SDN的環境下,當資料封包的傳輸路徑改變後所造成之原先傳輸路徑的封包遺失與接收端封包順序錯亂的示意圖。請參照圖2A,軟體定義網路系統200包括多個網路設備,例如,網路設備可以是伺服器裝置與多個交 換器,在圖2A所示的正常情況下,資料封包20會根據路徑210被多個中繼節點所傳送。舉例而言,資料封包20是依據傳輸控制協定(Transmission Control Protocol,TCP)被傳輸且封包傳送的視窗大小(window size)為5。也就是說,資料封包20-1與資料封包20-2會經由路徑210從第一節點202依序且完整地被傳送至第二節點204。請參照圖2B,倘若SDN控制器100偵測到網路擁塞並更改資料封包的傳輸路徑為路徑220且傳送端裝置未從接收端裝置收到其已收到資料封包的通知時(如圖2B所示),將觸發後端的壅塞管制(congestion control)以縮小封包傳送的視窗大小。例如,視窗大小由5變為2,因此,將造成TCP效能下降。此外,傳送至第二節點204的資料封包22-1中的部份的封包可能會遺失在更改路徑前的路徑210上,而造成資料封包遺失的現象。也就是說,原先舊路徑(即,路徑210)上的資料封包未能完整的被傳輸。請參照圖2C,當SDN控制器100欲重新傳送遺失的資料封包(即,資料封包24-2)至第二節點204時,由於新路徑(即,路徑220)上的資料封包早已比舊路徑(即,路徑210)上的資料封包先送至第二節點204了,因此將造成資料封包錯序的問題。
據此,在根據網路狀態即時地調整封包傳送路徑的狀況下,如何避免資料封包遺失與資料封包錯序,為本領域技術人員所致力的目標。
本揭露提供一種路徑更換方法與系統及其控制器,其能夠在網路擁塞或故障時即時更換路徑,並且有效地避免更換路徑時所造成之舊有路徑上的封包的遺失與新、舊路徑上封包錯序的問題。
本揭露提出一種路徑更換方法,用於更換在一網路中從第一節點傳送封包至第二節點的傳輸路徑。本方法包括在欲傳送至第二節點的多個第一資料封包依據第一傳輸路徑從第一節點經由第一傳輸路徑的多個中繼節點被傳送後,由控制器移除所述第一節點的流表上對應第一傳輸路徑的流登錄資訊,其中所述網路具有一控制層與一資料層,並且所述控制器配置於所述控制層中。本方法更包括由所述控制器傳送一清空封包至所述第一節點,並設定所述清空封包依據所述第一傳輸路徑傳送至所述第二節點,以及當所述第二節點接收到所述清空封包並傳送對應所述清空封包的一封包詢問訊息至所述控制器時,由所述控制器在所述第二節點的流表上設定對應所述第二傳輸路徑的流登錄資訊。
本揭露提出一種控制器,包括:一管理與設定模組以及一收發模組。其中所述管理與設定模組用以更換在一網路中從一第一節點傳送封包至一第二節點的傳輸路徑,以及所述收發模組,耦接至所述管理與設定模組,用以接收與發送封包與訊息。管理與設定模組更用以在欲傳送至第二節點的多個第一資料封包依據第一傳輸路徑從第一節點經由第一傳輸路徑的多個中繼節點被傳送後,移除所述第一節點的流表上對應一第一傳輸路徑的一 流登錄資訊,其中所述網路具有一控制層與一資料層,所述控制器配置於所述控制層中。收發模組用以傳送一清空封包至所述第一節點,並且所述管理與設定模組更用以設定所述清空封包依據所述第一傳輸路徑傳送至所述第二節點。當所述收發模組從所述第二節點接收到對應所述清空封包的一封包詢問訊息時,所述管理與設定模組更用以在所述第二節點的流表上設定對應所述第二傳輸路徑的流登錄資訊。
本揭露提出一種路徑更換系統,包括:多個中繼節點以及一控制器,控制器用以更換在一網路中從一第一節點傳送封包至一第二節點的傳輸路徑,其中所述第一節點與所述第二節點分別屬於所述中繼節點中的其中之一。所述控制器更用以在欲傳送至第二節點的多個第一資料封包依據第一傳輸路徑從第一節點經由第一傳輸路徑的多個中繼節點被傳送後,移除所述第一節點的流表上對應一第一傳輸路徑的一流登錄資訊,其中所述網路具有一控制層與一資料層,並且所述控制器配置於所述控制層中。此外,控制器更用以傳送一清空封包至所述第一節點,並設定所述清空封包依據所述第一傳輸路徑傳送至所述第二節點。當所述控制器從所述第二節點接收到對應所述清空封包的一封包詢問訊息時,所述控制器對所述第二節點的流表上設定對應所述第二傳輸路徑的流登錄資訊。
基於上述,本揭露的路徑更換方法與系統及其控制器可透過所述控制器發送一清空封包以區分新、舊路徑上的新、舊封 包,由此有效地避免封包遺失與封包錯序的問題。
為讓本揭露的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
100‧‧‧SDN控制器
102‧‧‧北向應用程式介面
104‧‧‧南向應用程式介面
110‧‧‧應用層
110-1~110-n‧‧‧應用程式
120‧‧‧控制層
130‧‧‧資料層
130-1~130-n‧‧‧交換機
20、20-1、20-2、22-1、22-2、24-1、24-2、24-3‧‧‧資料封包
200‧‧‧軟體定義網路系統
202、430-2‧‧‧第一節點
204、430-6‧‧‧第二節點
210、220‧‧‧路徑
S301、S303、S305、S701、S703、S705、S707、S709、S711、S713、S715、S801、S803、S805、S807、S809、S811、S813、S815、S817‧‧‧路徑更換方法的步驟
400‧‧‧路徑更換系統
410‧‧‧控制器
420‧‧‧網路
430‧‧‧多個中繼節點
430-1~430-n‧‧‧中繼節點
502‧‧‧管理與設定模組
504‧‧‧收發模組
601‧‧‧第一傳輸路徑
602‧‧‧第二傳輸路徑
圖1繪示為軟體定義網路的架構。
圖2A~圖2C為在SDN的環境下,當資料封包的傳輸路徑改變後所造成之原先傳輸路徑的封包遺失與接收端封包順序錯亂的示意圖。
圖3為根據本揭露所繪示的路徑更換方法的流程圖。
圖4是根據本揭露第一範例實施例所繪示之路徑更換系統的方塊圖。
圖5是根據本揭露第一範例實施例所繪示之控制器的方塊圖。
圖6是根據本揭露範例實施例所繪示之路徑更換系統中傳輸路徑的示意圖。
圖7是根據本揭露第一範例實施例所繪示之路徑更換方法的流程圖。
圖8是根據本揭露第二範例實施例所繪示之路徑更換方法的流程圖。
為了能夠提升資料封包在整體網路中的處理與傳輸效能,本揭露使用一特定的清空封包以避免欲更換至新路徑之資料封包殘留於舊路徑上,由此可有效地預防舊有路徑上的封包遺失以及避免新路徑與舊路徑上封包錯序的問題。
圖3為根據本揭露所繪示的路徑更換方法的流程圖。
請參照圖3,本揭露範例實施例提出一種用於更換在一網路中從第一節點傳送封包至第二節點的傳輸路徑的路徑更換方法。此方法包括在欲傳送至第二節點的多個第一資料封包依據一第一傳輸路徑從第一節點經由第一傳輸路徑的多個中繼節點被傳送後,由控制器移除第一節點的流表上對應第一傳輸路徑的流登錄資訊(S301)。此方法還包括由控制器傳送一清空封包至第一節點,並設定清空封包依據第一傳輸路徑傳送至第二節點(S303),並且當第二節點接收到所述清空封包並傳送對應清空封包的封包詢問訊息至控制器時,由控制器在第二節點的流表上設定對應第二傳輸路徑的流登錄資訊(S305)。為了能夠更明瞭本揭露,以下將以數個範例實施例來進行說明。
[第一範例實施例]
圖4是根據本揭露第一範例實施例所繪示之路徑更換系統的方塊圖。必須了解的是,圖4的範例僅是為了方便說明,並不用以限制本揭露。
請參照圖4,路徑更換系統400包括控制器410以及多個 中繼節點430,其中多個中繼節點430包括中繼節點430-1、中繼節點430-2到中繼節點430-n,其中n為大於0的正整數。
控制器410透過網路420與多個中繼節點430連接,控制器410透過網路420與傳輸協議和中繼節點430-1~中繼節點430-n進行溝通,進而設定多個中繼節點430上的流表(flow table)以及設定交換機如何轉送資料層的封包,其中網路420可以是軟體定義網路,然而,本揭露並不加以限制。例如,在另一範例實施例中,網路420可以是任何能連接控制器410至中繼節點430-1~430-n的網路。此外,控制器410可以是任何類型的控制電路,例如系統晶片(system-on-chip,SOC)、應用處理器(application processor)、媒體處理器(media processor)、微處理器(microprocessor)、中央處理單元(central processing unit,CPU)、數位信號處理器(digital signal processor)或其他類似者。
具體而言,多個中繼節點430中的每一中繼節點為網路設備,例如,交換器與伺服器裝置(例如,個人數位助理、筆記型電腦、平板電腦與一般桌上型電腦等)。在本範例實施例中,每個中繼節點都有屬於自己的流表,流表上會有多個處理封包的流登錄(flow entry)資訊(即,封包的路由規則),舉例來說,每個流登錄是由匹配欄位、執行動作、優先順序等項目組成。匹配欄位包含了封包的來源埠與封包的標頭(例如來源IP位址、目的地埠編號、來源MAC位址等等),每一中繼節點會把封包的標頭和其來源埠與流表中的規則相比較,若符合某項規則,則其將會執行此項所 指定相對應的動作(例如,轉送封包給一個至多個中繼節點(例如,交換機)的輸出埠、修改封包的標頭、轉送給控制器、或送到另一張流表繼續處理等)。若封包在同一流表中符合兩個以上的路由規則,則會挑選規則中優先順序較高的來執行,然而,若在流表上沒有存在符合條件的路由規則,則中繼節點會透過和控制器之間的連線去詢問控制器該如何處理。在本範例實施例中,控制器410例如是軟體定義網路控制器,而網路420例如是軟體定義網路。然而,必須了解的是,在另一範例實施中,網路420也可以是任何具有控制層與資料層分離之網路架構的網路,且控制器410可以是任何可配置於此網路架構下之控制層的控制器,本揭露不加以限制。
圖5是根據本揭露第一範例實施例所繪示之控制器的方塊圖。
請參照圖5,控制器410包括管理與設定模組502以及收發模組504。管理與設定模組502用以更換並設定網路中從一節點傳送封包至另一節點的傳輸路徑,收發模組504耦接至管理與設定模組502並且用以接收與發送封包或訊息。值得注意的是,本揭露中的管理與設定模組502及收發模組504是由軟體模組或程式碼來實作,例如,控制器410會包括一處理器電路與一儲存電路(未繪示),且用以儲存上述管理與設定模組502及收發模組504,並且當控制器410致能時,此些軟體程式碼會從儲存電路被載入且由處理器電路執行以運作管理與設定模組502及收發模組 504的功能。然而,本揭露不限於此,例如,在本揭露另一範例實施例中,管理與設定模組502及收發模組504可以是由硬體電路來實作。例如,管理與設定模組以及收發模組可以硬體電路實作為管理與設定電路以及收發電路。
圖6是根據本揭露範例實施例所繪示之路徑更換系統中傳輸路徑的示意圖。
請參照圖6,圖6中所示的路徑更換系統400是相同於圖4中所示的路徑更換系統400,為了更清楚地描述控制器410、管理與設定模組502、收發模組504與路徑更換系統400的運作,以下將參照圖6的路徑更換系統400以一範例來進行說明。
在本揭露範例實施例中,控制器410(或管理與設定模組502)會根據目前網路狀態而改變資料封包的傳輸路徑,在此,為方便說明,將假設多個中繼節點430中新、舊傳輸路徑之起始分流處的中繼節點為第一節點430-2,以及匯集新、舊傳輸路徑之匯集處為第二節點430-6。具體而言,當控制器410(或管理與設定模組502)偵測到網路狀態為擁塞或故障時,控制器410(或管理與設定模組502)會更換網路中從第一節點430-2傳送封包至第二節點430-6的傳輸路徑。例如,控制器410(或管理與設定模組502)將封包傳輸路徑由第一傳輸路徑601更換為第二傳輸路徑602。
在此假設第一資料封包是指當控制器410(或管理與設定模組502)決定更換資料封包的傳輸路徑時,一資料流中已從第一節點430-2傳輸出去的資料封包,而第二資料封包是指當控制器 410(或管理與設定模組502)決定更換資料封包的傳輸路徑時,此資料流中尚未從第一節點430-2傳輸出去的資料封包。例如,多個第一資料封包是依據第一傳輸路徑601從第一節點430-2經由第一傳輸路徑601的多個中繼節點(即,中繼節點430-3、中繼節點430-4以及中繼節點430-5)傳送至第二節點430-6。具體而言,當控制器410(或管理與設定模組502)決定更換資料封包的傳輸路徑時,控制器410(或管理與設定模組502)會移除第一節點430-2的流表上對應第一傳輸路徑601的流登錄資訊。在本範例實施例中,藉由將第一節點430-2的流表上對應第一傳輸路徑601的流登錄資訊移除,可避免第二資料封包依照舊的路徑(即,第一傳輸路徑601)被傳送。
特別是,在本範例實施例中,控制器410(或收發模組504)會在第二資料封包尚未從第一節點430-2被傳輸出去之前,且在其移除第一節點430-2的流表上對應第一傳輸路徑601的流登錄資訊後,傳送一清空封包(flush packet)至第一節點430-2,並且由控制器410(或管理與設定模組502)設定清空封包依據第一傳輸路徑601傳送至第二節點430-6。
由於清空封包是在第一資料封包被傳送至第二節點430-6之後接續地被傳送至第二節點430-6,因此,當第二節點430-6收到此清空封包時,即代表第一資料封包皆已送達第二節點430-6,據此,第二節點430-6會接著根據第二節點430-6的流表上對應第一傳輸路徑601的流登錄資訊,將第一資料封包從第二 節點430-6依序地傳送至下一個中繼節點430-7。
在本範例實施例中,當第二節點430-6收到清空封包時,由於第二節點430-6的流表上沒有存在符合對應於此清空封包之條件的路由規則,因此,第二節點430-6會傳送一封包詢問訊息至控制器410(或收發模組504)。也就是說,當控制器410(或收發模組504)從第二節點430-6接收到對應清空封包的封包詢問訊息時,會得知第一資料封包皆已送達至第二節點430-6的下一個中繼節點430-7,因此,控制器410(或管理與設定模組502)會在第二節點430-6以及第二傳輸路徑602上的中繼節點(即,中繼節點430-8、中繼節點430-9、中繼節點430-10以及中繼節點430-11)的流表上設定對應此第二傳輸路徑602的流登錄資訊並且指定一個埠使暫存於第一節點430-2的多個第二資料封包依據第二傳輸路徑602從第一節點430-2經由第二傳輸路徑602上的中繼節點傳送至第二節點430-6。值得一提的是,控制器410(或管理與設定模組502)所指定的埠即為其所決定之第二傳輸路徑602上接續於第一節點430-2之後的第一個中繼節點(即,中繼節點430-8)的輸出埠。當多個第二資料封包傳送至第二節點430-6後,第二節點430-6即會根據第二節點430-6的流表上對應第二傳輸路徑602的流登錄資訊,將第二資料封包從第二節點依序地傳送至下一個中繼節點430-7。
值得注意的是,由於第一節點430-2的流表上的流登錄資訊已在控制器410(或管理與設定模組502)決定更換資料封包的傳 輸路徑時被移除,因此,在控制器410(或管理與設定模組502)將暫存於第一節點430-2的第二資料封包從第一節點430-2移至所指定的中繼節點430-8的輸出埠後,會在第一節點430-2的流表上設定對應第二傳輸路徑602的流登錄資訊,以使得之後來自其他中繼節點(例如,中繼節點430-1)之其他資料流的資料封包可依據此第二傳輸路徑602進行傳送。
在第一範例實施例中,由於清空封包是在第一資料封包被傳送至第二節點430-6後,才被傳送至此第二節點430-6,因此,在本揭露範例實施例中,僅需藉由控制器410透過所接收到之對應於清空封包的封包詢問訊息,判斷在第二節點430-6上是否已接收到清空封包,即可得知更換路徑前之舊路徑(即,第一傳輸路徑601)上的第一資料封包是否皆已送至第二節點430-6,由此可避免舊路徑上之資料封包的遺失。此外,當控制器接收到對應清空封包的封包詢問訊息時,即代表第一資料封包皆已從第二節點430-6送至下一個中繼節點430-7,此後,控制器410才會進一步地設定對應此第二傳輸路徑602的流登錄資訊並傳送此第二資料封包,換言之,第二資料封包是於第一資料封包皆已傳送至接續於第二節點430-6的下一個中繼節點430-7後才被傳送至此下一個中繼節點430-7。據此,透過依序地傳送新、舊路徑上的資料封包可有效地避免新、舊路徑上封包錯序的問題。
圖7是根據本揭露第一範例實施例所繪示之路徑更換方法的流程圖。
請參照圖7,在步驟S701中,當控制器410決定更換資料封包的傳輸路徑且第一傳輸資料已從第一節點430-2被送出時,控制器410會移除第一節點430-2的流表上對應第一傳輸路徑601的流登錄資訊。在步驟S703中,控制器410會傳送一清空封包至第一節點430-2並設定此清空封包依據第一傳輸路徑601傳送至第二節點430-6。接著,在步驟S705中,第二節點430-6會持續接收來自第一傳輸路徑601的第一資料封包直到接收到所述清空封包時,在步驟S707中,第二節點430-6會發送對應此清空封包的一封包詢問訊息至控制器410,反之,倘若第二節點430-6尚未收到清空封包,則會在步驟S705中,持續接收來自第一傳輸路徑601的資料封包。在步驟S709中,控制器410接收到封包詢問訊息時,會在第二節點430-6的流表上設定對應此第二傳輸路徑602的流登錄資訊,並且在步驟S711中,控制器410會在第二傳輸路徑602上的中繼節點的流表上設定對應此第二傳輸路徑602的流登錄資訊。之後,在步驟S713中,控制器410會指定一個埠使暫存於第一節點430-2的多個第二資料封包移至此輸出埠,接著,在步驟S715中,控制器410會在第一節點430-2的流表上設定對應第二傳輸路徑602的流登錄資訊。
圖7中各步驟已詳細說明如上,在此便不再贅述。值得注意的是,圖7中各步驟可以實作為多個程式碼或是電路,本揭露並不在此限。此外,圖7的方法可以搭配以上實施例使用,也可以單獨使用,本揭露並不在此限。
[第二範例實施例]
第二範例實施例的路徑更換方法與系統本質上是相同於第一範例實施例的路徑更換方法與系統,其差異之處在於第二範例實施例是同時傳送更換路徑前後的資料封包。以下將使用第一範例實施例的系統及元件標號來說明第二範例實施例與第一範例實施例的差異之處。
請再參照圖6,在本範例實施例中,當控制器410(或管理與設定模組502)決定更換資料封包的傳輸路徑時,控制器410(或管理與設定模組502)會移除第一節點430-2的流表上對應第一傳輸路徑601的流登錄資訊。在此,藉由將第一節點430-2的流表上對應第一傳輸路徑601的流登錄資訊移除,可避免第二資料封包依照舊的路徑(即,第一傳輸路徑601)被傳送。
在本範例實施例中,控制器410(或收發模組504)會在第二資料封包尚未從第一節點430-2被傳輸出去之前,傳送一清空封包至第一節點430-2,並且控制器410(或管理與設定模組502)會設定清空封包依據第一傳輸路徑601傳送至第二節點430-6。特別是,在此之後,控制器410(或管理與設定模組502)會在第二傳輸路徑602上的中繼節點(即,中繼節點430-8、中繼節點430-9、中繼節點430-10以及中繼節點430-11)的流表上設定對應此第二傳輸路徑602的流登錄資訊並且指定一個埠使暫存於第一節點430-2的多個第二資料封包依據第二傳輸路徑602從第一節點430-2經由第二傳輸路徑602上的中繼節點傳送至第二節點 430-6。在此,控制器410(或管理與設定模組502)所指定的埠即為其所決定之第二傳輸路徑602上接續於第一節點430-2之後的第一個中繼節點(即,中繼節點430-8)的輸出埠。值得注意的是,由於第一節點430-2的流表上的流登錄資訊已在控制器410(或管理與設定模組502)決定更換資料封包的傳輸路徑時被移除,因此,控制器410(或管理與設定模組502)將第二傳輸資料從第一節點430-2移至所指定的中繼節點430-8的輸出埠後,會在第一節點430-2的流表上設定對應第二傳輸路徑602的流登錄資訊,以使得之後來自其他中繼節點(例如,中繼節點430-1)之其他資料流的資料封包可依據此第二傳輸路徑602進行傳送。
具體而言,此時,多個第一資料封包是依據第一傳輸路徑601從第一節點430-2經由第一傳輸路徑601的多個中繼節點(即,中繼節點430-3、中繼節點430-4以及中繼節點430-5)傳送至第二節點430-6。並且,控制器410(或管理與設定模組502)在第二傳輸路徑602上的中繼節點的流表上設定對應第二傳輸路徑602的流登錄資訊後,多個第二資料封包即會依據第二傳輸路徑602從第一節點430-2經由第二傳輸路徑602的多個中繼節點(即,中繼節點430-8、中繼節點430-9、中繼節點430-10以及中繼節點430-11)傳送至第二節點430-6。換言之,第一資料封包與第二資料封包是同時地分別經由第一傳輸路徑601與第二傳輸路徑602被傳送至第二節點430-6。
在本範例實施例中,由於清空封包是在第一資料封包被 傳送至第二節點430-6之後接續地被傳送至第二節點430-6,因此,當第二節點430-6收到此清空封包時,即代表第一資料封包皆已送達第二節點430-6,據此,第二節點430-6會先根據第二節點430-6的流表上對應第一傳輸路徑601的流登錄資訊,將第一資料封包從第二節點430-6依序地傳送至下一個中繼節點430-7。接著,由於第二節點430-6的流表上沒有存在符合對應於此清空封包之條件的路由規則,因此,第二節點430-6會傳送一封包詢問訊息至控制器410(或收發模組504)。也就是說,當控制器410(或收發模組504)從第二節點430-6接收到對應清空封包的封包詢問訊息時,會得知第一資料封包皆已送達至第二節點430-6的下一個中繼節點430-7,因此,控制器410(或管理與設定模組502)會指定一個埠將暫存在第二節點430-6的第二資料封包從第二節點430-6依序地傳送至下一個中繼節點(即,中繼節點430-7)。
之後,控制器410(或管理與設定模組502)會在第二節點430-6的流表上設定對應此第二傳輸路徑602的流登錄資訊,以使得之後來自其他中繼節點之其他資料流的資料封包可依據此第二傳輸路徑602進行傳送。
在第二範例實施例中,對應於新、舊路徑的新、舊資料封包(即,第一資料封包與第二資料封包)會分別在新、舊路徑(第一傳輸路徑601與第二傳輸路徑602)上同時地被傳輸至第二節點430-6,由於清空封包是在第一資料封包被傳送至第二節點430-6後,緊接著被傳送至此第二節點430-6,因此,當控制器410透過 所接收到之對應於清空封包的封包詢問訊息時,即可得知更換路徑前之舊路徑(即,第一傳輸路徑601)上的第一資料封包皆已從第二節點430-6送至下一個中繼節點430-7,由此可避免舊路徑上之資料封包的遺失。此外,由於當控制器410接收到對應清空封包的封包詢問訊息時,即代表第一資料封包皆已從第二節點430-6送至下一個中繼節點430-7,因此,控制器410才會進一步地將位於第二節點上的第二資料封包依序地傳送至下一個中繼節點430-7,由此有效地避免新、舊路徑上封包錯序的問題。特別是,透過同時地傳送新、舊路徑上的資料封包除了可有效解決上述問題之外,藉由平行處理新、舊路徑上的資料封包,還可提升資料封包在網路中處理與傳輸的效能。
圖8是根據本揭露第二範例實施例所繪示之路徑更換方法的流程圖。
請參照圖8,在步驟S801中,當控制器410決定更換資料封包的傳輸路徑且第一傳輸資料已從第一節點430-2被送出時,控制器410會移除第一節點430-2的流表上對應第一傳輸路徑601的流登錄資訊。在步驟S803中,控制器410會傳送一清空封包至第一節點430-2並設定此清空封包依據第一傳輸路徑601傳送至第二節點430-6。接著,在步驟S805中,控制器410會在第二傳輸路徑602上之中繼節點中的第一節點與第二節點以外的中繼節點的流表上設定對應此第二傳輸路徑602的流登錄資訊。之後,在步驟S807中,控制器410會指定一個埠使暫存於第一節 點430-2的多個第二資料封包移至此輸出埠,接著,在步驟S809中,控制器410會在第一節點430-2的流表上設定對應第二傳輸路徑602的流登錄資訊。在步驟S811中,第二節點430-6會持續接收來自第一傳輸路徑601的第一資料封包與第二傳輸路徑602的第二資料封包直到接收到所述清空封包時,在步驟S813中,第二節點430-6會發送對應此清空封包的一封包詢問訊息至控制器410,反之,倘若第二節點430-6尚未收到清空封包,則會在步驟S811中,持續接收來自第一傳輸路徑601與第二傳輸路徑602的資料封包。在步驟S815中,控制器410接收到封包詢問訊息時,會指定一個埠使暫存於第二節點430-6的多個第二資料封包移至此輸出埠,並且在步驟S817中,控制器410會在第二節點430-6的流表上設定對應此第二傳輸路徑602的流登錄資訊。
然而,圖8中各步驟已詳細說明如上,在此便不再贅述。值得注意的是,圖8中各步驟可以實作為多個程式碼或是電路,本揭露並不在此限。此外,圖8的方法可以搭配以上實施例使用,也可以單獨使用,本揭露並不在此限。
綜上所述,本揭露之範例實施例所提出的路徑更換方法及使用此方法的路徑更換系統與控制器藉由使用一特定的清空封包來避免欲更換至新路徑之資料封包殘留於舊路徑上,由此可有效地預防舊有路徑上的封包遺失以及避免新路徑與舊路徑上封包錯序的問題。此外,本揭露之路徑更換方法與系統及控制器在網路擁塞或故障時,並不會觸發後端之傳輸控制協定(TCP)的壅塞管 制來限制封包傳送大小或啟用封包重送機制,基此,可有效地提升資料封包在整體網路中的處理與傳輸效能。
S301、S303、S305‧‧‧路徑更換方法的步驟

Claims (19)

  1. 一種路徑更換方法,用於更換在一網路中從一第一節點傳送封包至一第二節點的傳輸路徑,該路徑更換方法包括:欲傳送至該第二節點的多個第一資料封包依據一第一傳輸路徑從該第一節點經由該第一傳輸路徑的多個中繼節點被傳送後,由一控制器移除該第一節點的一流表(flow table)上對應該第一傳輸路徑的一流登錄(flow entry)資訊,其中該網路具有一控制層(control plane)與一資料層(data plane),該控制器配置於該控制層中;由該控制器傳送一清空封包(flush packet)至該第一節點,並設定該清空封包依據該第一傳輸路徑傳送至該第二節點;以及當該第二節點接收到該清空封包並傳送對應該清空封包的一封包詢問訊息至該控制器時,由該控制器在該第二節點的一流表上設定對應該第二傳輸路徑的一流登錄資訊。
  2. 如申請專利範圍第1項所述之路徑更換方法,更包括:判斷該第二節點是否接收到該清空封包;以及當該第二節點接收到該清空封包並傳送對應該清空封包的該封包詢問訊息至該控制器時,由該控制器在該第二傳輸路徑的多個中繼節點的流表上設定對應該第二傳輸路徑的該流登錄資訊,指定一個埠使暫存於該第一節點的多個第二資料封包依據該第二傳輸路徑從該第一節點經由該第二傳輸路徑的該些中繼節點傳送至該第二節點,並且在該第一節點的該流表上設定對應該第二傳輸路徑的該流登錄資訊。
  3. 如申請專利範圍第1項所述之路徑更換方法,更包括:在該第二節點的該流表上設定對應該第二傳輸路徑的該流登錄資訊之前,根據該第二節點的該流表上對應該第一傳輸路徑的該流登錄資訊,將該些第一資料封包從該第二節點依序地傳送至下一個中繼節點。
  4. 如申請專利範圍第2項所述之路徑更換方法,更包括:在該第二節點的該流表上設定對應該第二傳輸路徑的該流登錄資訊之後,根據該第二節點的該流表上對應該第二傳輸路徑的該流登錄資訊,將該些第二資料封包從該第二節點依序地傳送至下一個中繼節點。
  5. 如申請專利範圍第1項所述之路徑更換方法,更包括:在傳送該清空封包至該第一節點,並設定該清空封包依據該第一傳輸路徑傳送至該第二節點之後,由該控制器在該第二傳輸路徑的多個中繼節點的流表上設定對應該第二傳輸路徑的該流登錄資訊,指定一個埠使暫存於該第一節點的多個第二資料封包依據該第二傳輸路徑從該第一節點經由該第二傳輸路徑的該些中繼節點傳送至該第二節點,並且在該第一節點的該流表上設定對應該第二傳輸路徑的該流登錄資訊;以及判斷該第二節點是否接收到該清空封包。
  6. 如申請專利範圍第5項所述之路徑更換方法,更包括:在該第二節點的該流表上設定對應該第二傳輸路徑的該流登錄資訊之前,指定一個埠將暫存在該第二節點的該些第二資料封 包從該第二節點依序地傳送至下一個中繼節點。
  7. 如申請專利範圍第1項所述之路徑更換方法,其中該網路為一軟體定義網路(Software-defined networking,SDN)。
  8. 一種路徑更換控制器,包括:一管理與設定模組,用以更換在一網路中從一第一節點傳送封包至一第二節點的傳輸路徑,以及一收發模組,耦接至該管理與設定模組,用以接收與發送封包與訊息,其中該管理與設定模組更用以在欲傳送至該第二節點的多個第一資料封包依據一第一傳輸路徑從該第一節點經由該第一傳輸路徑的多個中繼節點被傳送後,移除該第一節點的一流表上對應該第一傳輸路徑的一流登錄資訊,其中該網路具有一控制層與一資料層,該控制器配置於該控制層中,其中該收發模組用以傳送一清空封包至該第一節點,並且該管理與設定模組更用以設定該清空封包依據該第一傳輸路徑傳送至該第二節點,其中當該收發模組從該第二節點接收到對應該清空封包的一封包詢問訊息時,該管理與設定模組更用以在該第二節點的一流表上設定對應該第二傳輸路徑的一流登錄資訊。
  9. 如申請專利範圍第8項所述之路徑更換控制器,其中該收發模組更用以判斷該第二節點是否接收到該清空封包,其中當該收發模組從該第二節點接收到對應該清空封包的該封包詢問訊息時,該管理與設定模組更用以在該第二傳輸路徑的 多個中繼節點的流表上設定對應該第二傳輸路徑的該流登錄資訊,指定一個埠使暫存於該第一節點的多個第二資料封包依據該第二傳輸路徑從該第一節點經由該第二傳輸路徑的該些中繼節點傳送至該第二節點,並且在該第一節點的該流表上設定對應該第二傳輸路徑的該流登錄資訊。
  10. 如申請專利範圍第8項所述之路徑更換控制器,其中在該收發模組傳送該清空封包至該第一節點,並且該管理與設定模組設定該清空封包依據該第一傳輸路徑傳送至該第二節點之後,該管理與設定模組更用以在該第二傳輸路徑的多個中繼節點的流表上設定對應該第二傳輸路徑的該流登錄資訊,指定一個埠使暫存於該第一節點的多個第二資料封包依據該第二傳輸路徑從該第一節點經由該第二傳輸路徑的該些中繼節點傳送至該第二節點,並且在該第一節點的該流表上設定對應該第二傳輸路徑的該流登錄資訊,其中該收發模組更用以判斷該第二節點是否接收到該清空封包。
  11. 如申請專利範圍第10項所述之路徑更換控制器,其中該管理與設定模組在該第二節點的該流表上設定對應該第二傳輸路徑的該流登錄資訊之前,該管理與設定模組更用以指定一個埠將暫存在該第二節點的該些第二資料封包從該第二節點依序地傳送至下一個中繼節點。
  12. 如申請專利範圍第8項所述之路徑更換控制器,其中該網路為一軟體定義網路。
  13. 一種路徑更換系統,包括:多個中繼節點;以及一控制器,用以更換在一網路中從一第一節點傳送封包至一第二節點的傳輸路徑,其中該第一節點與該第二節點分別屬於該些中繼節點中的其中之一,其中該控制器更用以在欲傳送至該第二節點的多個第一資料封包依據一第一傳輸路徑從該第一節點經由該第一傳輸路徑的多個中繼節點被傳送後,移除該第一節點的一流表上對應該第一傳輸路徑的一流登錄資訊,其中該網路具有一控制層與一資料層,該控制器配置於該控制層中,其中該控制器更用以傳送一清空封包至該第一節點,並設定該清空封包依據該第一傳輸路徑傳送至該第二節點,其中當該控制器從該第二節點接收到對應該清空封包的一封包詢問訊息時,該控制器更用以在該第二節點的一流表上設定對應該第二傳輸路徑的一流登錄資訊。
  14. 如申請專利範圍第13項所述之路徑更換系統,其中該控制器更用以判斷該第二節點是否接收到該清空封包,其中當該控制器從該第二節點接收到對應該清空封包的該封包詢問訊息時,該控制器更用以在該第二傳輸路徑的多個中繼節點的流表上設定對應該第二傳輸路徑的該流登錄資訊,指定一個埠使暫存於該第一節點的多個第二資料封包依據該第二傳輸路徑從該第一節點經由該第二傳輸路徑的該些中繼節點傳送至該第二節點,並且在該第一節點的該流表上設定對應該第二傳輸路徑的 該流登錄資訊。
  15. 如申請專利範圍第13項所述之路徑更換系統,其中在該控制器在該第二節點的該流表上設定對應該第二傳輸路徑的該流登錄資訊之前,該第二節點根據該第二節點的該流表上對應該第一傳輸路徑的該流登錄資訊,將該些第一資料封包從該第二節點依序地傳送至下一個中繼節點。
  16. 如申請專利範圍第14項所述之路徑更換系統,其中在該控制器在該第二節點的該流表上設定對應該第二傳輸路徑的該流登錄資訊之後,該第二節點根據該第二節點的該流表上對應該第二傳輸路徑的該流登錄資訊,將該些第二資料封包從該第二節點依序地傳送至下一個中繼節點。
  17. 如申請專利範圍第13項所述路徑更換系統,其中在該控制器在傳送該清空封包至該第一節點,並設定該清空封包依據該第一傳輸路徑傳送至該第二節點之後,該控制器更用以在該第二傳輸路徑的多個中繼節點的流表上設定對應該第二傳輸路徑的該流登錄資訊,指定一個埠使暫存於該第一節點的多個第二資料封包依據該第二傳輸路徑從該第一節點經由該第二傳輸路徑的該些中繼節點傳送至該第二節點,並且在該第一節點的該流表上設定對應該第二傳輸路徑的該流登錄資訊,其中該控制器更用以判斷該第二節點是否接收到該清空封包。
  18. 如申請專利範圍第17項所述之路徑更換系統,其中在該控制器在該第二節點的該流表上設定對應該第二傳輸路徑的該流 登錄資訊之前,該控制器更用以指定一個埠將暫存在該第二節點的該些第二資料封包從該第二節點依序地傳送至下一個中繼節點。
  19. 如申請專利範圍第13項所述之路徑更換系統,其中該網路為一軟體定義網路。
TW103132624A 2014-09-22 2014-09-22 路徑更換方法與系統及其控制器 TWI542172B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW103132624A TWI542172B (zh) 2014-09-22 2014-09-22 路徑更換方法與系統及其控制器
US14/572,790 US9455916B2 (en) 2014-09-22 2014-12-17 Method and system for changing path and controller thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW103132624A TWI542172B (zh) 2014-09-22 2014-09-22 路徑更換方法與系統及其控制器

Publications (2)

Publication Number Publication Date
TW201613313A TW201613313A (en) 2016-04-01
TWI542172B true TWI542172B (zh) 2016-07-11

Family

ID=55526841

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103132624A TWI542172B (zh) 2014-09-22 2014-09-22 路徑更換方法與系統及其控制器

Country Status (2)

Country Link
US (1) US9455916B2 (zh)
TW (1) TWI542172B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104580168B (zh) * 2014-12-22 2019-02-26 华为技术有限公司 一种攻击数据包的处理方法、装置及系统
US10541946B1 (en) 2016-01-30 2020-01-21 Innovium, Inc. Programmable visibility engines
US10447578B1 (en) 2016-03-02 2019-10-15 Innovium, Inc. Redistribution policy engine
TWI607641B (zh) * 2016-07-12 2017-12-01 國立清華大學 軟體定義網路的控制器及其多路徑路由方法
TWI623223B (zh) * 2016-08-02 2018-05-01 Chunghwa Telecom Co Ltd 支援多樣性架構元件之軟體定義網路控制器
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
US10523584B2 (en) 2016-12-23 2019-12-31 Interwise Ltd. Software-defined socket activation
US10735339B1 (en) 2017-01-16 2020-08-04 Innovium, Inc. Intelligent packet queues with efficient delay tracking
US11075847B1 (en) 2017-01-16 2021-07-27 Innovium, Inc. Visibility sampling
US11784932B2 (en) 2020-11-06 2023-10-10 Innovium, Inc. Delay-based automatic queue management and tail drop
US11621904B1 (en) 2020-11-06 2023-04-04 Innovium, Inc. Path telemetry data collection
US12058034B2 (en) * 2022-06-16 2024-08-06 At&T Intellectual Property I, L.P. System and method for analytics backed software defined network failure detection and synchronization

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2692096A1 (en) 2011-03-29 2014-02-05 NEC Europe Ltd. User traffic accountability under congestion in flow-based multi-layer switches
US8520529B2 (en) 2011-09-15 2013-08-27 Ixia Reordering network traffic
US9461777B2 (en) 2011-11-21 2016-10-04 Qualcomm Incorporated Hybrid networking system with seamless path switching of streams
CN103475583B (zh) 2012-06-07 2017-11-17 华为技术有限公司 清除媒体接入控制转发表项的方法和设备
US8891357B2 (en) 2012-08-31 2014-11-18 Cisco Technology, Inc. Switching to a protection path without causing packet reordering
JP2015533049A (ja) * 2012-09-20 2015-11-16 株式会社Nttドコモ ネットワークにおけるトポロジ及びパス検証のための方法及び装置
US9306840B2 (en) * 2012-09-26 2016-04-05 Alcatel Lucent Securing software defined networks via flow deflection
US9071529B2 (en) * 2012-10-08 2015-06-30 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for accelerating forwarding in software-defined networks
US9231831B2 (en) * 2012-11-15 2016-01-05 Industrial Technology Research Institute Method and network system of converting a layer two network from a spanning tree protocol mode to a routed mesh mode without a spanning tree protocol
CN103036781B (zh) 2013-01-04 2016-08-31 杭州华三通信技术有限公司 一种主路径链路故障处理方法及装置
US9413667B2 (en) 2013-02-15 2016-08-09 Telefonaktiebolaget Lm Ericsson (Publ) Methods and network nodes for traffic steering based on per-flow policies
WO2014131429A1 (en) * 2013-02-26 2014-09-04 Telefonaktiebolaget L M Ericsson (Publ) Traffic recovery in openflow networks
US20140337674A1 (en) * 2013-05-10 2014-11-13 Nec Laboratories America, Inc. Network Testing
US9160650B2 (en) * 2013-06-17 2015-10-13 Futurewei Technologies, Inc. Enhanced flow entry table cache replacement in a software-defined networking switch
CN103428031B (zh) 2013-08-05 2016-04-13 浙江大学 一种基于软件定义网络的域间链路快速故障恢复方法
US20150180769A1 (en) * 2013-12-20 2015-06-25 Alcatel-Lucent Usa Inc. Scale-up of sdn control plane using virtual switch based overlay
KR20150116258A (ko) * 2014-04-07 2015-10-15 숭실대학교산학협력단 소프트웨어 정의 네트워크에서 이동 단말의 이동성을 지원하는 방법 및 그 시스템
US9736067B2 (en) * 2014-05-12 2017-08-15 Google Inc. Prefix-aware weighted cost multi-path group reduction

Also Published As

Publication number Publication date
US20160087894A1 (en) 2016-03-24
US9455916B2 (en) 2016-09-27
TW201613313A (en) 2016-04-01

Similar Documents

Publication Publication Date Title
TWI542172B (zh) 路徑更換方法與系統及其控制器
WO2018210117A1 (zh) 一种拥塞控制方法、网络设备及其网络接口控制器
US9609549B2 (en) Dynamic network load rebalancing
US9473414B2 (en) Method and system for supporting packet prioritization at a data network
US9503382B2 (en) Scalable flow and cogestion control with openflow
US9237110B2 (en) Dynamic maximum transmission unit size adaption
EP3526939B1 (en) Virtual router with dynamic flow offload capability
JP5939353B2 (ja) 制御装置、通信システム、スイッチ制御方法及びプログラム
CN109218222B (zh) 一种实现发送端调速的方法、装置和系统
US9800508B2 (en) System and method of flow shaping to reduce impact of incast communications
CN111224888A (zh) 发送报文的方法及报文转发设备
JP2017143344A (ja) パケット伝送装置,制御装置,及びパケット伝送制御方法
JP5700313B2 (ja) ネットワークシステム、フロントエンド装置、制御メッセージ送信レート低減方法
JP5065269B2 (ja) ローカル・エリア・ネットワーク管理
JP6606919B2 (ja) フロースイッチ、コントローラ、及び、中継装置
JP2009503997A5 (zh)
JP6279970B2 (ja) プロセッサ、通信装置、通信システム、通信方法およびコンピュータプログラム
JP6365663B2 (ja) 通信装置、制御装置、通信システム、受信パケットの処理方法、通信装置の制御方法及びプログラム