TWI757887B - 用以促進一資料流從一發送端透過多路徑傳輸至一接收端的方法、網路控制器以及電腦程式產品 - Google Patents
用以促進一資料流從一發送端透過多路徑傳輸至一接收端的方法、網路控制器以及電腦程式產品 Download PDFInfo
- Publication number
- TWI757887B TWI757887B TW109133078A TW109133078A TWI757887B TW I757887 B TWI757887 B TW I757887B TW 109133078 A TW109133078 A TW 109133078A TW 109133078 A TW109133078 A TW 109133078A TW I757887 B TWI757887 B TW I757887B
- Authority
- TW
- Taiwan
- Prior art keywords
- network
- data flow
- control information
- switch
- flow control
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/24—Multipath
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/38—Flow based routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W40/00—Communication routing or communication path finding
- H04W40/02—Communication route or path selection, e.g. power-based or shortest path routing
- H04W40/12—Communication route or path selection, e.g. power-based or shortest path routing based on transmission quality or channel quality
- H04W40/16—Communication route or path selection, e.g. power-based or shortest path routing based on transmission quality or channel quality based on interference
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
用以促進一資料流從一發送端透過多路徑傳輸至一接收端的方法,用於一軟體定義網路的網路控制器,該軟體定義網路包括多個交換器,該等交換器用以執行從該發送端至該接收端的封包轉發,該方法包括:於該網路控制器執行多個運作以使源自該發送端的該資料流透過使用多個網路路徑的多路徑傳輸而至該接收端,使得該多路徑傳輸對該發送端和該接收端而言是透通的。該網路控制器可基於此方法而被配置為用以促進多路徑隨機交換之傳輸機制或隨機交換網路編碼之傳輸機制之實現,從而有助於使單一資料流透過多路徑傳輸而提升傳輸效能。
Description
本發明係關於一種資料流透過多路徑傳輸的傳輸技術,更特別的是關於用以促進一資料流從一發送端透過多路徑傳輸至一接收端的方法、網路控制器以及電腦程式產品。
現今在網路傳遞的資料,除了文字資料外,更有大量的影音資料,而影音資料的傳遞通常需要較高的頻寬與即時性,因此提高網路的傳輸效能是很重要的課題。然而,封包在網路中傳遞時,往往可能因為線路不穩、負載超過可用頻寬或擁塞等等各種不同因素,有封包遺失(Packet Loss)的情況發生,而這將造成網路傳輸效能的下降;特別是在無線網路環境中,由於節點移動性和無線傳播(Propagation)條件的變化,傳輸路徑可能因為訊號源干擾、障礙物遮蔽等因素,造成傳輸品質不穩定,甚至延遲時間過長而導致封包遺失,而嚴重降低傳輸效能,有研究指出,在無線網路中,多數的連線其封包遺失機率高於30%。一般稱封包傳遞時會有遺失發生的網路為有損網路(Lossy Networks),如何提升在有損網路中資料的傳輸效能是很重要的議題。
就現有網路技術而言,發送端與接收端之間傳輸的單一資料流對交換器而言是點對點傳輸,其資料流的路由路徑是固定的,交換器不可能進行多路徑傳輸。因此,對於為了開發更高的網路傳輸效能,近年來不論在學界,工業界或標準組織(如 IETF, Internet Engineering Task Force)都有研究如何利用多路徑來傳輸封包的機制。現今已有許多關於多路徑的傳輸機制被提出,如使用 Equal Cost Multipath (ECMP)路由技術或 IEEE 802.1aq 鏈路聚合技術,此類技術是利用 Mac address、IP address 及 TCP/UDP port來計算資料流(Flow)的雜湊值(Hash Value),以作為調整流量的根據,而達到將數個資料流透過不同路徑傳輸的目的。這樣的作法,需找到數條等價(Equal Cost)(通常是可用頻寬大小一樣)的傳輸路徑,且實際上一個資料流中的封包具有相同的來源端與發送端,因封包的來源端IP及目的端 IP相同時,根據路由規則(Routing rules),其將會在同一條路徑上傳輸,因而這類的技術實際上將難以對同一資料流達成分流多工的效果。
此外,IETF修訂TCP協定,提出 MPTCP (Multi-Path TCP)協定,其透過多條路徑來提高網路傳輸效率和可靠性。MPTCP 是在使用建立 TCP 連線時,開啟額外的子資料流(Subflow),將資料分散至多條路徑傳送(仍共用同樣的傳送或接收緩衝區),藉由賦予每條連線不同的連線識別碼,將同一連線中的子資料流重組為單一的網路流,MPTCP 協定並針對每一子資料設定序號,用以偵測遺失並進行重傳。這樣的設計,事實上是將多子資料流合併成一個資料流,而對這合併的資料流就可以說是以多路徑來傳送。
理想狀況下,MPTCP 的吞吐量(Throughput)應該與多個不相交的單路徑連結一樣高。然而,實際上,MPTCP 在傳送資料時,因不同傳輸路徑有不同的封包遺失率和延遲時間,導致總傳輸量遠低於預期。所以 MPTCP 在實作上須先考慮每個傳輸路徑的效能,讓每個傳輸路徑的效能不要差異太大,才能達到多路徑傳輸預期的效益。此外,MPTCP 機制是運作在第三與第四層協定上,是點對點(End to End)的協定,所以其一個資料流(或子資料流)內的封包,仍會依相同的路由路徑(Routing path)來傳遞,故實際上,MPTCP是多資料流(或稱子資料流)分別進行固定的不同路徑傳輸。
此外,在實作上,發送端與接收端能夠使用MPTCP的前提是各自必須都具有至少兩張網路卡(如Wi-Fi、4G的網路卡)以提供至少兩個網路位址,且發送端與接收端確定使用MPTCP時,需要在發送端實現將資料分散為多個子資料流的處理,並且在接收端實現將多個子資料流合併為原有資料的處理。如此,發送端及接收端各自需安裝支持MPTCP軟體或修改原有應用程式使之支援MPTCP才能使用,並且要額外增加發送端及接收端的運算資源及硬體資源消耗。
是以,為了提升在有損網路中資料的傳輸效能,目前的傳輸技術仍有待改善。
本發明之一目的在於提出促進一資料流從一發送端透過多路徑傳輸至一接收端的技術,適用於一軟體定義網路(Software-defined network, SDN),且該多路徑傳輸對該發送端和該接收端而言是透通的(transparent)。藉由實現該技術於SDN中,發送端及接收端能受益於依據該技術之單一資料流透過多路徑傳輸而使傳輸效能提升。
為達至少上述目的,本發明提出一種用以促進一資料流從一發送端透過多路徑傳輸至一接收端的方法,用於一軟體定義網路(Software-defined network, SDN)的網路控制器,該軟體定義網路包括多個交換器,該等交換器用以執行從該發送端至該接收端的封包轉發,該方法包括:於該網路控制器執行多個運作以使源自該發送端的該資料流透過使用多個網路路徑的多路徑傳輸而至該接收端,使得該多路徑傳輸對該發送端和該接收端而言是透通的(transparent)。該等運作包括:向該等交換器中的一第一交換器發送一第一控制訊息,其中該第一交換器接收該資料流的封包,該第一控制訊息包括第一資料流控制資訊,該第一資料流控制資訊用以通知該第一交換器依據與該等網路路徑相關聯的個別的路徑權重執行封包轉發;以及向該等交換器中的一第二交換器發送一第二控制訊息,其中該第二交換器是從該等網路路徑接收與該資料流對應的封包,該第二控制訊息包括第二資料流控制資訊,該第二資料流控制資訊用以通知該第二交換器從該等網路路徑執行封包接收並執行封包轉發至該接收端。
於本發明之一實施例中,該等運作更包括從該SDN取得該等網路路徑的網路鏈路狀態,以基於該網路鏈路狀態確定該第一資料流控制資訊中之至少路徑權重。
於本發明之一實施例中,該網路鏈路狀態包括至少一個參數組,該參數組代表與該等網路路徑個別相關聯的一種對應的網路鏈路屬性,其中該網路鏈路屬性為包括頻寬、封包遺失率、延遲、抖動之多個屬性中的一種屬性。
於本發明之一實施例中,該網路鏈路狀態之至少一個參數組包括一第一參數組及一第二參數組,該第一參數組代表與該等網路路徑個別相關聯的頻寬,該第二參數組代表與該等網路路徑個別相關聯的封包遺失率。
於本發明之一實施例中,該網路控制器更被配置為使該第一控制訊息進一步包含一第一網路功能之資料流控制資訊,該第一網路功能之資料流控制資訊用以通知該第一交換器將該資料流轉發至該等網路路徑以外之至少一網路節點以執行該第一網路功能。
於本發明之一實施例中,該第一網路功能之資料流控制資訊更用以通知該第一交換器從該至少一網路節點接收與該第一網路功能對應的調整後封包後,從而使該第一交換器基於該第一資料流控制資訊以依據與該等網路路徑相關聯的個別的路徑權重執行封包轉發。
於本發明之一實施例中,該第一網路功能包括網路編碼。
於本發明之一實施例中,該網路控制器更被配置為使該第二控制訊息進一步包含一第二網路功能之資料流控制資訊,該第二網路功能之資料流控制資訊用以通知該第二交換器在基於該第二資料流控制資訊以執行封包接收之後,將接收之封包轉發至該等網路路徑以外之至少另一網路節點以執行該第二網路功能。
於本發明之一實施例中,該第二網路功能之資料流控制資訊更用以通知該第二交換器從該至少另一網路節點接收與該第二網路功能對應的調整後封包,從而使該第二交換器基於該第二資料流控制資訊以執行封包轉發至該接收端。
於本發明之一實施例中,該第二網路功能包括網路解碼。
於本發明之一實施例中,該等運作更包括:從該SDN取得該等網路路徑的一代表性的網路鏈路狀態,以基於該代表性的網路鏈路狀態確定一第三資料流控制資訊中之至少更新之路徑權重;以及向該第一交換器發送該第三控制訊息,其中該第三控制訊息包括該第三資料流控制資訊,該第一資料流控制資訊用以通知該第一交換器依據與該等網路路徑相關聯的個別的更新之路徑權重執行封包轉發。
於本發明之一實施例中,該代表性的網路鏈路狀態包括至少一個參數組,該參數組代表與該等網路路徑個別相關聯的一種對應的網路鏈路屬性,其中該網路鏈路屬性為包括頻寬、封包遺失率、延遲、抖動之多個屬性中的一種屬性。
為達至少上述目的,本發明另外提出一種電腦程式產品,其包括多個指令,且該等指令用以使電腦執行如上述實施例中任一者所述之促進一資料流從一發送端透過多路徑傳輸至一接收端的方法。
為達至少上述目的,本發明又提出一種網路控制器,用於一軟體定義網路(Software-defined network, SDN),該軟體定義網路包括多個交換器,該等交換器用以執行從一發送端至一接收端的封包轉發,該網路控制器包括:一網路介面單元以及至少一個處理單元。該網路介面單元,被配置為與該SDN進行通信。該至少一個處理單元,耦接至該網路介面單元,並被配置為執行多個運作以使源自該發送端的一資料流透過使用多個網路路徑的多路徑傳輸而至該接收端,使得該多路徑傳輸對該發送端和該接收端而言是透通的(transparent)。該等運作包括:向該等交換器中的一第一交換器發送一第一控制訊息,其中該第一交換器接收該資料流的封包,該第一控制訊息包括第一資料流控制資訊,該第一資料流控制資訊用以通知該第一交換器依據與該等網路路徑相關聯的個別的路徑權重執行封包轉發;以及向該等交換器中的一第二交換器發送一第二控制訊息,其中該第二交換器是從該等網路路徑接收與該資料流對應的封包,該第二控制訊息包括第二資料流控制資訊,該第二資料流控制資訊用以通知該第二交換器從該等網路路徑執行封包接收並執行封包轉發至該接收端。
在網路控制器之一些實施例中,該網路控制器可用以實現上述方法之多個實施例中之至少一者或於適合的任意組合。
如上多個實施例,係基於SDN,且應用網路通訊協定標準模型中第二層的多路徑傳輸(例如,在網路中傳送單一資料流的封包時,中間轉送(Forward)的節點可以透過不同的傳輸介面來轉送不同的封包),故該多路徑傳輸對該發送端和該接收端而言是透通的(transparent)。如此一來,藉由實現該技術於SDN中,能使單一資料流透過多路徑傳輸而提升傳輸效能,而且發送端不需另外配置為支援兩張網路卡且發送端及接收端亦不用安裝特定軟體或修改原有應用程式,故本技術更具有實際應用上的便利性之益處。
為充分瞭解本發明之目的、特徵及功效,茲藉由下述具體之實施例,並配合所附之圖式,對本發明做詳細說明,說明如後:
以下提出多個實施例以說明依據本發明之促進一資料流從一發送端透過多路徑傳輸至一接收端的技術的各種實施方式。該技術係基於一軟體定義網路(Software-defined network, SDN),且該多路徑傳輸對該發送端和該接收端而言是透通的(transparent)。藉由實現該技術於SDN中,發送端及接收端能受益於依據該技術之單一資料流透過多路徑傳輸而使傳輸效能提升。
請參考圖1,其為基於軟體定義網路20以促進一資料流從發送端11透過多路徑傳輸至接收端14之網路架構之一種實施方式的示意圖。如圖1所示,網路架構包括一軟體定義網路20(Software-defined network, SDN),用以促進一資料流從發送端11透過多路徑傳輸至接收端14,其中例如,該資料流為影音(視訊)、影像或音訊之資料流,或任何資料屬性的資料流,且該資料流中的封包具有相同的來源端與發送端。該軟體定義網路20包括多個支援SDN的交換器,例如圖1所示的交換器210、211_1、211_2、220,該等交換器用以執行從該發送端11至該接收端14的封包轉發。該等交換器可以為實體的網路交換器或路由器,也可以用具有運算能力的運算裝置(如電腦或伺服器等)來實現。該軟體定義網路20更包括一或多台的網路控制器200,該網路控制器200用以執行多個運作來控制或設定該等交換器的封包處理或轉發的行為,以使源自該發送端11的該資料流透過使用多個網路路徑(如圖1中所示的網路路徑P1、P2)的多路徑傳輸而至該接收端14,使得該多路徑傳輸對該發送端11和該接收端14而言是透通的(transparent),其中網路路徑P1是指封包經由交換器210、交換器211_1、交換器220而至接收端14,網路路徑P2是指封包經由交換器210、交換器211_2、交換器220而至接收端14,以下關於網路路徑亦可如此類推。為此,該網路控制器200可被配置為用以促進一資料流從發送端透過多路徑傳輸至接收端之方法以實現促進單一資料流透過多路徑傳輸,其將以基於圖3的實施例舉例說明於後。舉例而言,由於上述多路徑傳輸對於發送端及接收端而言的網路透通性(network transparency),對基於SDN的通訊網路的應用情景下,如電腦網路、網際網路,4G、5G或任何行動通信網路,或進一步與固網(如光纖通訊或電信網路)結合的混合通訊網路下,發送端11和該接收端14可利用原有的網路通訊軟體,不必針對上述多路徑傳輸的機制而作任何特別配置,即能受益於單一資料流透過多路徑傳輸而提升傳輸效能。此外,該多路徑傳輸是應用網路通訊協定標準模型中第二層(Layer 2)的多路徑傳輸,例如,在網路中傳送單一資料流的封包時,中間轉送(Forward)的節點可以透過不同的傳輸介面來轉送不同的封包。舉例而言,該網路控制器200可用以執行多個運作來控制或設定該等交換器中一交換器(如交換器210)進行隨機交換(stochastic switching)的封包處理或轉發的行為,以使源自該發送端11的該資料流透過使用多個網路路徑。上述於多路徑傳輸上進行隨機交換,可稱之為多路徑隨機交換(Multi Path Stochastic Switching, MPSS) 之傳輸機制,將舉實施例說明其實現方式於後。
請參考圖2,其為基於軟體定義網路20以促進一資料流從發送端11透過多路徑傳輸至接收端14之網路架構之另一種實施方式的示意圖。圖2之實施方式係基於圖1之實施方式,並可因應傳輸的需要或網路的狀態,進一步結合網路功能虛擬化(network function virtualization)技術。在圖2中,該網路控制器200用以執行多個運作來控制或設定該等交換器210、211_1~211_N、220的封包處理或轉發的行為,以使源自該發送端11的該資料流透過使用多個網路路徑(如圖1中所示的網路路徑P1至PN,其中N為大於1的正整數)的多路徑傳輸而至該接收端14,使得該多路徑傳輸對該發送端11和該接收端14而言是透通的。該網路控制器200可以定義虛擬網路功能(Virtual Network Function),先令交換器210將該資料流的封包轉送到該等網路路徑之外的另外一個網路節點(如網路節點12)以執行一網路功能,例如進行網路編碼(Network Coding)。相對應地,該網路控制器200可以令交換器220將從該等網路路徑的封包轉送到該等網路路徑之外的另外一個網路節點(如網路節點13)以執行另一網路功能,例如進行對應於前述網路編碼的解碼,然後再將解碼後的封包轉送至接收端14。網路節點例如是具有運算及連網能力的運算裝置,如電腦、伺服器或其他運算裝置等。上述於多路徑傳輸上進行隨機交換及網路編碼,可稱之為隨機交換網路編碼(Stochastic Switching and Network Coding, SSNC)之傳輸機制,將舉實施例說明其實現方式於後。
以上用圖1、圖2舉例說明基於軟體定義網路以促進一資料流從發送端透過多路徑傳輸至接收端之網路架構,然而,本發明之實現方式並不受限於上述示例。例如,在基於圖1或圖2的網路架構的示例中,交換器210、220之間的各個網路路徑可能存在一台或以上的交換器,或者不存在其它交換器;此外,在發送端11與交換器210之間,或交換器220與接收端14之間亦可能存在交換器;上述這些基於圖1或圖2的網路架構亦可適用於實現多路徑隨機交換機制(MPSS)或隨機交換網路編碼(SSNC)之傳輸機制。
請參考圖3,其為用以促進一資料流從發送端透過多路徑傳輸至接收端之方法之一種實施方式的示意流程圖。圖3之方式用以促進一資料流從一發送端11透過多路徑傳輸至一接收端14,可適用於基於如圖1或圖2所示的軟體定義網路(SDN)20的網路控制器200。該方法包括於該網路控制器200執行多個運作以使源自該發送端11的該資料流透過使用多個網路路徑的多路徑傳輸而至該接收端14,使得該多路徑傳輸對該發送端11和該接收端14而言是透通的。如圖3所示,該等運作包括如方塊S110至S120所示的運作,其中於說明該方法時引用圖1或圖2作為示例以便於理解其實現方式,但應注意的是,本發明之實現方式並不受限於示例。又以下方法是在多個網路路徑已找到的情況下進行。
如方塊S110所示,該網路控制器200向該等交換器中的一交換器發送一第一控制訊息,其中該交換器係直接或間接地從該發送端11接收該資料流的封包,該第一控制訊息包括第一資料流控制資訊,該第一資料流控制資訊用以通知該交換器依據與該等網路路徑相關聯的個別的路徑權重執行封包轉發。舉例而言,該網路控制器200可用以執行方塊S110之運作來控制或設定該等交換器中包含至少兩個以上的封包傳送介面且可將封包傳送到不同的鏈路(Link)的一交換器,如交換器210。
如方塊S120所示,該網路控制器200向該等交換器中一交換器發送一第二控制訊息,其中該交換器係從該等網路路徑接收與該資料流對應的封包(如目的地為該接收端14的相應封包),該第二控制訊息包括第二資料流控制資訊,該第二資料流控制資訊用以通知該交換器從該等網路路徑執行封包接收並執行封包轉發至該接收端14。舉例而言,該網路控制器200可用以執行方塊S120之運作來控制或設定該等交換器中包含至少兩個以上的封包傳送介面且可將來自不同鏈路的封包傳送到接收端140的一交換器,如交換器220。
藉由實現上述方法於SDN中,該多路徑傳輸對該發送端和該接收端而言是透通的(transparent),且發送端及接收端能受益於依據該方法之單一資料流透過多路徑傳輸而使傳輸效能提升。
此外,如前所述,基於圖1或圖2的網路架構可能有各種實現方式,其中除了交換器210、220以外,可能存在或不存在其他交換器。因此,對於在交換器210、220以外存在其他交換器的網路架構下,本發明所屬領域的通常知識者, 可基於圖3之方法,並且因應該種網路構,進一步透過使用軟體定義網路的相關技術,利用該網路控制器200來控制其他交換器(例如211_1至211_N),從而達成多路徑傳輸,如多路徑隨機交換機制(MPSS)或隨機交換網路編碼(SSNC)傳輸機制。
此外,基於圖3之方法,更可進一步延伸出其他實現方式,例如因應傳輸或網路狀況而作出處理或調整,其將舉例說明於下。
在方塊S110中,該網路控制器200用以與交換器210通訊,令交換器210可依據與該等網路路徑相關聯的個別的路徑權重執行封包轉發,從而使交換器210進行隨機交換(stochastic switching)的封包處理或轉發的行為。在一實施例中,該網路控制器200可以利用OpenFlow協定,將路徑上交換器210中的群組表(Group Table)設定為選擇(Select)模式,同時利用多條路徑進行封包轉送,此時該網路控制器200可以透過選擇(Select)模式中「動作水桶」(Buckets)(即輸出埠(Output Port))的權重設定,來決定傳送路徑的路徑權重。舉例而言,權重的設定與調整的目標就是要充份地利用路徑可用的頻寬。當路徑故障或擁塞發生時,因為是多路徑同時傳輸,以至於不會嚴重的影響使用者,並且將該網路路徑的轉送機率分配在其他路徑上恢復流量。
舉例而言,可以使用OpenFlow架構中群組表(Group Table)的選擇(Select)類型,將隨機路由機制實作在網路控制器200中,並且將它稱之為隨機交換(Stochastic Switching)。方法分為兩個步驟:(1) 為每個輸出埠提供封包分配之機率值。(2) 使用交換器來實現隨機交換。步驟(2)為:計算路由路徑或假設路由路徑為已知的情況下,實現盡量將相同一類之位址聚集到資料流表(Flow Table)中相同的資料流表項目(Flow Entry)。因為這些資料流量會有相同的輸出埠及輸出機率值,所以網路控制器200會將同一組資料流量歸到相同的群中。OpenFlow規格中為群組表(Group Table)中的動作水桶中的各個桶引介入「權重」的概念。網路控制器200提供每個桶的權重值(Bucket Weight)及指定輸出埠機率。每個桶(Bucket)使用輸出至埠(out_to_port)動作來轉送封包到輸出埠。
前述OpenFlow 中群組表(Group Table)的選擇(Select)方法,根據桶的權重值選擇其中一個桶從而執行與這些桶相關的動作,因此選擇(Select)方法的實作上可先產生一亂數,然後根據亂數值來選擇一個對應的桶(Bucket),演算法例如表1的虛擬碼所示。
表1
Procedure SELECT (m, w[]) //m=the number of buckets //w[i]=the weight of bucket i, 0<=i <=m-1 Begin r = rand(); //generate a random number w = w[0]; for (i = 0 ; i < m ; i++) { if ( r <= m ) return(i); //bucket i is selected else w = w + w[i+1]; } End |
在一實施例中,可利用支援OpenFlow規格的Open vSwitch (OVS)來加以實現。Open vSwitch (OVS)是一款以軟體實現為基礎的開放源碼的虛擬交換器,可以與許多虛擬化平台相整合,並提供虛擬交換器互聯網路的能力。每個OpenFlow交換器都有屬於自己的一個或多個OpenFlow資料流表(Flow Table),各資料流表中會有多個處理封包的OpenFlow路由規則,即資料流表項目(Flow Entry),每個 OpenFlow路由規則是由匹配欄位元、執行動作、優先順序等欄位組成。匹配欄位包含了封包的來源埠與封包的標頭,例如來源 IP 位址、目的地埠編號、來源 MAC 位址等等。
在資料流表中包含多筆所謂的資料流表項目(Flow Entry)資料,每一筆資料流表項目(Flow Entry)包含符合條件的內容、計數器以及針對符合的網路封包所要下達的指令(Instruction)等等,每條資料流表項目(Flow Entry)對應網路中傳輸的一條資料流(Flow)。透過OpenFlow協定,OpenFlow控制器(Controller)(如圖1或圖2中的網路控制器200)可以新增、修改以及刪除這些資料流表項目(Flow Entry)的內容。OpenFlow控制器(Controller)是SDN的中樞,網管人員或開發者可藉由OpenFlow協定所提供的開放原始碼與OVS交換器硬體溝通,設定資料流表並定義封包的傳送路徑(或路由路徑)。
此外,群組表(Group Table)讓每個資料流可以被指派到對應的群組中,並可以針對屬於同一個群組識別字中的所有資料封包執行相同的動作。群組表(Group Table)有四種類型:All、Select、Indirect 以及 Failover,其中Select 功能依據分配給桶(Bucket)的權重來選擇多個桶中的一者,並執行該桶相關的運作,因而,封包傳遞時可以選擇封包轉送出的埠(Port),同時配合桶的權重,讓一個資料流可以以隨機方式同時進行多路徑傳遞。
在一實施例中,引用圖1的網路架構,多路徑傳輸資料流由發送端11和該接收端14,中間經由網路路徑P1之交換器210、交換器211_1、交換器220而轉送至接收端14,其中交換器210轉送到交換器211_1機率為 60%,其鏈路頻寬為 30Mbps;並且中間經由網路路徑P2是指封包經由交換器210、交換器211_2、交換器220轉送至接收端14,其中交換器210轉送到交換器211_2的機率為 40%,其鏈路頻寬為 30Mbps。例如,以下表2所示的指令碼示例,利用OVS的虛擬交換器的程式介面ovs-ofctl,上述多路徑傳輸及個別路由的機率可以進行設定。在表2的示例中,利用程式介面ovs-ofctl並使用多個參數,如add-group(增加群組)、group_id(群組識別碼)等參數來進行設定一交換器(例如交換器210),這些參數為OVS之ovs-ofctl程式介面所定義,詳情請參照OVS之ovs-ofctl程式介面的官方網路提供的使用文件(如網址 http://www.openvswitch.org/support/dist-docs/ovs-ofctl.8.txt 所述),在此不再贅述。在表2中,“bucket=weight:60, output=2”的參數設定,可用以設定交換器210將封包從交換器210轉送到交換器211_1的機率為60%,“bucket=weight:40, output=3”的參數設定,可用以設定交換器210將封包從交換器210轉送到交換器211_2的機率為40%。
表2
ovs-ofctl -O OpenFlow13 add-group tcp:127.0.0.1:6673 group_id=1, type=select, bucket=weight:60, output=2, bucket=weight:40, output=3 ovs-ofctl -O OpenFlow13 add-flow tcp:127.0.0.1:6673 in_port=1,ip,nw_src=10.0.0.1,nw_dst=10.0.0.2,actions=group=1 ovs-ofctl -O OpenFlow13 add-flow tcp:127.0.0.1:6674 in_port=1,ip,nw_src=10.0.0.1,nw_dst=10.0.0.2,actions=output=2 ovs-ofctl -O OpenFlow13 add-flow tcp:127.0.0.1:6675 in_port=1,ip,nw_src=10.0.0.1,nw_dst=10.0.0.2,actions=output=2 ovs-ofctl -O OpenFlow13 add-flow tcp:127.0.0.1:6676 in_port=1,ip,nw_src=10.0.0.1,nw_dst=10.0.0.2,actions=output=3 ovs-ofctl -O OpenFlow13 add-flow tcp:127.0.0.1:6676 in_port=2,ip,nw_src=10.0.0.1,nw_dst=10.0.0.2,actions=output=3 |
圖4為圖3之方法之一實施例的示意流程圖。相較於圖3,圖4所示之實施例 更包含方塊S100,如圖4所示,方塊S100表示從該SDN取得該等網路路徑的網路鏈路狀態,以基於該網路鏈路狀態確定該第一資料流控制資訊中之至少路徑權重。圖4之實施例表示在進行方塊S110及S120之前,網路控制器200可用於檢測SDN的網路鏈路狀態,從而確定路徑權重或進一步作其他對交換器的設定。
於一實施例中,該網路鏈路狀態包括至少一個參數組,該參數組代表與該等網路路徑個別相關聯的一種對應的網路鏈路屬性,其中該網路鏈路屬性為包括頻寬、封包遺失率、延遲、抖動之多個屬性中的一種屬性。
於一實施例中,該網路鏈路狀態之至少一個參數組包括一第一參數組及一第二參數組,該第一參數組代表與該等網路路徑個別相關聯的頻寬,該第二參數組代表與該等網路路徑個別相關聯的封包遺失率。
在一實施例,假設有三條網路路徑分別為 P1、P2、P3 ,封包遺失率為 L
1、L
2、L
3(如一第一參數組),鏈路可用頻寬為 B
1、B
2、B
3(如一第二參數組),每條路徑的路徑權重為 W
1、W
2、W
3,例如基於圖1或圖2之網路架構,透過 P1、P2、P3 來傳送單一資料流(或如下所舉例的經網路編碼後的資料流)。舉例而言,該等路徑的有效(effective)頻寬將分別為 E
1=B
1(1-L
1)、E
2=B
2(1-L
2)、E
3=B
3(1-L
3),要傳遞此資料流(或經網路編碼後的資料流),可以依據有效頻寬來考慮,因此這三條路徑的路徑權重 W
1、W
2、W
3可設定為:
。(公式1)
在一些實施例中,對於任意Q個網路路徑(Q>1),亦可參照公式1如此類推地推廣,從而確定各網路路徑對應的路徑權重。在另一示例中,假設多條路徑的頻寬相同或相似,則可基於封包遺失率來確定每條網路路徑的路徑權重。就前一實施例來說,這三條網路路徑的路徑權重 W
1、W
2、W
3可設定為:
(公式2)
其中q=1、2或3。在一些實施例中,對於任意Q個網路路徑(Q>1),亦可參照公式2如此類推地推廣,從而確定各個網路路徑對應的路徑權重。此外,在一些實施例中,關於路徑權重的同一假設多條路徑的頻寬相同或相似的,則可基於封包的延遲(或抖動)的資料,參照與上述公式2相似的方式來確定各個網路路徑對應的路徑權重。在一些實施例中,可參照上述公式1或2相似方式,基於該網路鏈路屬性中一種、兩種或更多的屬性的資料來確定各個網路路徑對應的路徑權重。
圖5為圖3中方塊S110之一實施例的示意流程圖。如方塊S111所示,該網路控制器200被配置為使該第一控制訊息包含一第一網路功能之資料流控制資訊。如方塊S115所示,該網路控制器200被配置為使該第一控制訊息包含第一資料流控制資訊。
於一實施例中,該網路控制器200更被配置為使該第一控制訊息進一步包含一第一網路功能之資料流控制資訊,該第一網路功能之資料流控制資訊用以通知該交換器210將該資料流轉發至該等網路路徑以外之至少一網路節點以執行該第一網路功能。如圖2所示,利用網路節點12執行該第一網路功能。例如,該第一網路功能包括網路編碼。
於一實施例中,該第一網路功能之資料流控制資訊更用以通知該交換器210從該至少一網路節點接收與該第一網路功能對應的調整後封包後,從而使該交換器210基於該第一資料流控制資訊以依據與該等網路路徑相關聯的個別的路徑權重執行封包轉發。
圖6為圖3中方塊S120之一實施例的示意流程圖。如方塊S121所示,該網路控制器200被配置為使該第二控制訊息包含一第二網路功能之資料流控制資訊。如方塊S125所示,該網路控制器200被配置為使該第二控制訊息包含第二資料流控制資訊。
於本發明之一實施例中,該網路控制器200更被配置為使該第二控制訊息進一步包含一第二網路功能之資料流控制資訊,該第二網路功能之資料流控制資訊用以通知該交換器220在基於該第二資料流控制資訊以執行封包接收之後,將接收之封包轉發至該等網路路徑以外之至少另一網路節點以執行該第二網路功能。例如,在圖2中,利用網路節點執13執行該第二網路功能。例如,該第二網路功能包括網路解碼。
於本發明之一實施例中,該第二網路功能之資料流控制資訊更用以通知該交換器220從該至少另一網路節點接收與該第二網路功能對應的調整後封包,從而使該交換器220基於該第二資料流控制資訊以執行封包轉發至該接收端14。
在一些實施例中,例如基於圖2之網路架構,透過網路中多個路徑 P1、P2~PN來傳送單一資料流,其中如前述示例利用多路徑隨機交換方式,並且利用網路節點12、13分別執行網路編碼、網路解碼之功能,從而達成提升傳輸頻寬與傳輸效率的目標。例如,在基於圖2中之網路架構,並利用隨機線性網路編碼(Random Linear Network Coding, RLNC)來實現網路編碼、網路解碼之功能。
關於隨機線性網路編碼,舉例而言,交換器210轉送源自發送端11的封包至網路節點12,利用網路節點12實現一編碼器(Encoder)120來執行此網路編碼運作,例如利用軟體程式,或軟硬體結合來實現。請參考圖7,其示意由網路節點12實現此網路編碼的編碼器,用以實現一種網路編碼方式,例如是隨機線性網路編碼。就隨機線性網路編碼而言,其從有限場(Finite Field)中隨機選出k個係數組成一編碼向量,依據此向量將k個原始符號(Symbol)做線性組合(Linear Combination)而將資料進行編碼。網路節點12接收到經由交換器210轉送的封包在進行隨機線性網路編碼處理時,網路節點12會將多個收到的封包(其可視為一原始封包集合)分為數個大小相同的區塊(Block),每一個區塊再分成數個符號(Symbol)。而網路節點12將多個封包分為數個區塊的做法,例如,可以在一次收到多個封包時進行,或可以在收到的封包的數目達至一封包數門檻值(如50、100、500或1000等)時進行。接著,隨機產生n個編碼向量,來對目前的區塊內的符號(Symbol)以線性組合(Linear Combination)的方式進行編碼,而產生n個編碼符號(Encoded Symbol),其一個編碼符號是由一個編碼向量與k個符號的乘積經由XOR運算加總起來而得到。假設編碼率(Code rate)為r,即k個符號經網路編碼後,可以產生n個編碼符號(Encoded Symbols),則 n=k*r。此n個編碼符號經過多路徑傳送到交換器220時,交換器220將此n個編碼符號轉送至網路節點13進行網路解碼。網路節點13實現一解碼器(Decoder)130來執行此網路解碼運作,例如利用軟體程式,或軟硬體結合來實現。在接收到編碼符號時,網路節點13會執行XOR運算來進行解碼(Decoder),假設網路節點13接收到的編碼符號總數量s>k,網路節點13即可將接收到的編碼符號還原成為原始符號(其可視為前述之原始封包集合),並繼而傳回至交換器220,並透過交換器220轉送至接收端14。雖然在交換器210至交換器220之間的多個路徑傳輸過程中,可能有編碼符號(Encoded Symbols)遺失的情況發生,但只要接收到的編碼符號總數量s>k,發送端不須將遺失的編碼符號重傳,接收端就可以還原出原始符號。相較於習知的單路徑傳輸方式,此發明所提的方法的實施例運用多路徑傳輸因此可以提升傳輸頻寬,且不須重傳遺失的封包因此可以提高傳輸效率。
此外,習知將封包經由多個不同的路徑傳送到接收端的方式,會產生接收到的封包失序(Out of order)的問題,但此發明所提的方法的實施例可克服此問題,如上述圖7實施例中,在交換器210至交換器220之間的多個路徑傳輸過程中,所傳輸的是編碼符號,而編碼符號並無序號,接收端只要收到任意足夠數量的編碼符號就可以還原出原始的符號。
此外,在此實施例中,網路編碼的編碼器、解碼器分別實現於網路節點12、13。由此,對該發送端和該接收端而言,該多路徑傳輸及網路編碼皆是透通的(transparent),發送端11及接收端14並不用額外增加運算資源及硬體資源消耗。此外,雖然上述採用隨機線性網路編碼作為示例來說明,然而,本發明的實現方式並不受限於上述示例。例如,可以參照上述實施例而將其他任何合適的網路編碼方式調改為適合實現於基於圖2的網路架構而成為本發明之實施例。
在一些實施例中,前述網路編碼由一虛擬網路功能(Virtual network function, VNF)來實現;此外,可以藉由網路鏈路狀態,得出一網路編碼的編碼率的下限值,網路控制器200可以參考利用這個下限值,來控制該VNF以適當的編碼率來進行網路編碼,如下所示。舉例而言,基於圖2的網路架構,對於發送端11欲傳送至接收端14的單一資料流,如視訊檔案或視訊串流,利用隨機交換及網路編碼來進行傳,其中網路節點12用以進行網路編碼,網路節點13用以進行對應的網路解碼,其他關於交換機的請參相關實施例,故不再贅述。假設網路編碼的編碼率(Code rate)為r,亦即若k個符號透過網路節點12進行網路編碼後,產生 n 個編碼符號,則n=k×r,此n個編碼符號透過交換器210利用隨機交換並經過多個網路路徑(例如,3個網路路徑 P1、P2、P3)傳送。之後,透過交換器220轉發至網路接點13進行網路解碼,其中網路接點13接收到的編碼符號總數量s應為:
。 (公式3)
依據公式1將路徑權重代入上述公式,可以得出:
。 (公式4)
因為編碼符號總數量s大於未編碼的符號的數量k(即s>k),將此條件代入公式4,得出:
。(公式5)
藉此,在此實施例中,網路控制器200可以藉由網路鏈路狀態(例如,頻寬與封包遺失率),得出一網路編碼的編碼率的下限值,如可以參考公式5來確定這個下限值,來控制該VNF以適當的編碼率來進行網路編碼。
圖8為圖3之方法之另一實施例的示意流程圖。相較於圖3之實施例,圖8之實施例更包括方塊S130、S140。如方塊S130所示,該網路控制器200從該SDN取得該等網路路徑的一代表性的網路鏈路狀態,以基於該代表性的網路鏈路狀態確定一第三資料流控制資訊中之至少更新之路徑權重。如方塊S140所示,該網路控制器200向該交換器210發送該第三控制訊息,其中該第三控制訊息包括該第三資料流控制資訊,該第一資料流控制資訊用以通知該交換器210依據與該等網路路徑相關聯的個別的更新之路徑權重執行封包轉發。
於一實施例中,該代表性的網路鏈路狀態包括至少一個參數組,該參數組代表與該等網路路徑個別相關聯的一種對應的網路鏈路屬性,其中該網路鏈路屬性為包括頻寬、封包遺失率、延遲、抖動之多個屬性中的一種屬性。而關於路徑權重的確定,可以參考前述關相關實施例,或與公式1或2等相關的實施例來實現。
基於圖8所示的實施例,網路控制器200可被配置為持續地或動態地監控網路上的鏈路狀況。當發現鏈路發生問題或是鏈路效能變動,如路徑封包遺失率上升或路徑擁塞導致鏈路可用頻寬下降等情況時,對於基於圖1或圖2的網路架構而言,網路控制器200可被配置為基於公式1或2(或其推廣的公式)來重新計算路徑權重;或者,對於基於圖2的網路架構而言,網路控制器200可被配置為進一步檢核編碼率,如利用基於公式5的編碼率的下限值,來確定是否要改變網路編碼的編碼率。如此一來,將可更有效地提升上述提出的多路徑傳輸的傳輸效能或多路徑傳輸且利用網路編碼的傳輸效能。
在一些實施例,路徑權重可作動態調整。舉例而言,假設某個時間點,網路控制器200被配置根據基於公式1或2(或其推廣的公式)所計算出來的路徑權重稱為名義權重(Nominal Weight),而網路控制器200要透過OpenFlow規格傳送指令給交換器(如交換器210)來設定群組表中桶選擇(bucket selection)的權重稱為實際應用權重(Applied weight)。因為在一些動態的網路環境中(如無線網路),網路流量的變化可能比較大,所以鏈路參數(如可用頻寬與封包遺失率)的改變可能是暫時的。在一些實際應用中,因應上述情況,網路控制器200可以將所計算得到的名義權重經過一些平滑化(Smoothing)處理來取得實際應用權重。例如,利用移動平均(Moving Average)來進行平滑化處理,其係利用基於某段時間內過去之數值進行計算,計算出的值能夠過濾過去時間內所有數值之雜訊(noise),有助於達到數值平滑的技術行為。此技術計算出之值是代表著一個趨勢的走向跟隨或是滯留後的指標。例如,在一示例中,若某個時間點要計算移動平均值,須設定取值之範圍(window),假設要取p個間隔的範圍(如p=20),則計算之取值範圍為當下之參數加上過去p-1筆的參數紀錄,然後將此p筆參數紀錄相加平均。以這樣的方式計算出之實際應用權重值,較能夠真正代表當下網路鏈路的傳輸效能之好與壞的變化。在另一示例中,藉由路徑權重的平滑化或相關的處理技術,進一步的利用該網路鏈路效能資料來預測未來該鏈路效能之趨勢,進而利用圖8中的方塊S130、S140提早分配路徑之傳輸流量,能夠盡早避免網路鏈路之擁塞發生。在一些實施例中,網路控制器200可被配置為將多個時間點的名義權重經移動平均計算後,得到實際應用權重,然後下達指令分派實際應用權重給交換器(如基於圖1或圖2中的交換器210),讓該交換器根據實際應用權重來設定不同傳輸路徑的傳送機率,從而達到路徑權重可作動態調整。藉此,使單一資料流多路徑傳輸,如多路徑隨機交換機制(MPSS)或隨機交換網路編碼(SSNC)之傳輸機制,能夠動態可適應性的有效率地進行。
圖9為可使用於SDN的網路控制器之一實施例的示意圖。如圖9所示,運算裝置300包括:一網路介面單元310以及至少一個處理單元320。該運算裝置300可用以實現該網路控制器200。該網路介面單元310,被配置為與該SDN進行通信。該至少一個處理單元320,耦接至該網路介面單元310,並被配置為執行多個運作以使源自該發送端11的一資料流透過使用多個網路路徑的多路徑傳輸而至該接收端14,使得該多路徑傳輸對該發送端11和該接收端14而言是透通的(transparent)。該等運作包括:向該等交換器中的一交換器210發送一第一控制訊息,其中該交換器210(如直接或間接從該發送端11)接收該資料流的封包,該第一控制訊息包括第一資料流控制資訊,該第一資料流控制資訊用以通知該交換器210依據與該等網路路徑相關聯的個別的路徑權重執行封包轉發;以及向該等交換器中的一交換器220發送一第二控制訊息,其中該交換器220從該等網路路徑接收與該資料流對應的封包(如目的地為該接收端14的相應封包),該第二控制訊息包括第二資料流控制資訊,該第二資料流控制資訊用以通知該交換器220從該等網路路徑執行封包接收並執行封包轉發至該接收端14。
該運算裝置300更可包括一記憶單元330,該記憶單元330用以儲存控制邏輯331以及資料335。控制邏輯331例如是用以實現基於本揭露內容之至少一實施例或其組合(如基於圖3~圖8之任一或其組合之方法實施例)的程式碼或指令。資料335例如是在控制邏輯331執行時所需記錄或暫存的資料,如控制訊息或網路鏈路狀態等資料。
在網路控制器200之一些實施例中,該網路控制器200可用以實現上述方法之多個實施例中之至少一者或於適合時的任意組合。
圖10為可使用於SDN的交換器之一實施例的示意圖。如圖10所示,交換器400包括一封包轉送單元410及一處理單元420。交換器400可適用於實現基於圖1或圖2中的網路架構中的交換器。封包轉送單元410與多個埠411_1~411_M連接(其中M>1的正整數)。交換器400更包括一記憶單元430,該記憶單元430用以儲存控制邏輯431以及資料435。控制邏輯431例如是於實現基於本揭露內容之至少一實施例(如圖3~圖8)或其組合時,相對應地交換器400(如圖1或圖2中的交換器)所需要進行的程式碼或指令。資料435例如是在控制邏輯431執行時所需記錄或暫存的資料,如資料流控制資訊或關於OpenFlow規格所要利用的資料如資料流表等。
圖11為一串流影像利用習知單一路徑傳輸的效能及相同串流影像利用依據本發明之一實施例的多路徑傳輸的效能的示意比較圖。單一路徑傳輸於一般網路環境中,可運用找尋符合條件之最短路徑(Constrained Shortest Path, CSP)演算法來建立,其可建立一條符合某條件(如最低頻寬或延遲等)的傳輸路徑,但是所建立的路徑是單一路徑的路由,因此一旦鏈路發生故障、可用頻寬不足、鏈路擁塞等情形時,通過鏈路的封包遺失率將會大幅提升,甚至傳輸路徑會中斷。由實驗可以發現,當該鏈路發生可用頻寬不足的情形時,由於CSP機制是建立單一路徑的路由,鏈路並無法切換路徑,因此實驗中串流影像傳輸之品質非常差。在圖10中,此單一路徑傳輸對應的峰值訊號雜訊比(Peak Signal-to-Noise Ratio, PSNR)值之代表曲線C1來觀察,可以發現從開始傳輸到結束都處於非常低的情形,因為沒有調整的機制所以品質沒有上升的趨勢。此外,曲線C1對應的PSNR平均值如為12.54dB。
在依據隨機交換網路編碼傳輸機制之一實施例如基於圖2者,在軟體定義網路環境中,利用隨機交換機制進行傳輸達到單一資料流多重路徑的效果,在此實施例中,令網路控制器隨時監控並記錄網路環境之鏈路狀態,同時進行資料傳輸之鏈路權重計算,並結合移動平均之概念達到平滑化的權重調整,即便在多重路徑傳輸時遇到鏈路傳輸效能下降,也能及時調整鏈路權重,改善傳輸品質。如圖10所示,此單一資料流多路徑傳輸對應的峰值訊號雜訊比(PSNR)值之代表曲線C2,其中曲線C1對應的PSNR平均值如為31.6dB。如圖10所示,在第271個訊框以後出現頻寬不足及以及封包遺失率過高的情形時,由此串流影像傳輸實驗之比較結果來看,本實施例(由曲線C2來代表)能夠有效的面對網路環境中可用頻寬不足以及封包遺失率過高的情形,並且因可妥善調配網路流量。因此,當鏈路傳輸效能不佳時,能夠即時避開利用該網路路徑傳輸,除可避免因為單一傳輸路徑故障而造成資料傳遞中斷的問題,也可提高網路頻寬的使用率以及整體網路的吞吐量,上述實驗證明能夠達到較佳之傳輸效能及串流影像傳輸品質。
在一些實施方式中,提出一種電腦程式產品,其包括多個指令,且該等指令用以使電腦執行如上述之促進一資料流從一發送端11透過多路徑傳輸至一接收端14的方法的多個實施例中至少一者。在一些實施例中,該電腦程式產品可包含一種儲存媒體,如非暫態的儲存媒體,其儲存有運算裝置可讀取之指令(或程式碼),其中該指令被至少一運算裝置(如前述網路控制器200),執行時使得該至少一運算裝置實現前述方法的多個實施例中至少一者。此方法可以為包含基於圖3之方法的上述所有實施例中的一者或任意組合。舉例而言,程式碼例如是一個或多個程式或程式模組,如用於實現基於圖3的方塊S110至S120(或如基於圖3~圖8之至少一個實施例或其組合之方法),且可以用任何適合的順序而被執行。當運算裝置(如前述網路控制器200)執行此程式碼時,能導致運算裝置執行基於圖3之運作方法之實施例。這些儲存媒體之實施例比如但不受限於:光學式資訊儲存媒體,磁式資訊儲存媒體或記憶體,如記憶卡、靭體或ROM或RAM。舉例而言,運算裝置包括通訊單元、處理單元及儲存媒體,其中處理單元電性耦接至通訊單元及儲存媒體。處理單元用以透過通訊單元以無線或有線方式與通訊網路進行通訊,從而與其他運算裝置如終端裝置通訊。處理單元可包含一個或多個處理器,運算裝置亦可包括其他裝置如圖形處理器,以進行運算。在一些實施例中,運算裝置可以執行作業系統,並可進一步利用網路服務、腳本引擎、網路應用程式或網路應用程式介面(API)之伺服器等各種合適之網路、軟體技術中之一種或多種方式而實現。
如上多個實施例,係基於SDN,且應用網路通訊協定標準模型中第二層的多路徑傳輸(例如,在網路中傳送單一資料流的封包時,中間轉送(Forward)的節點可以透過不同的傳輸介面來轉送不同的封包),故該多路徑傳輸對該發送端和該接收端而言是透通的(transparent)。藉此網路透通性,發送端11欲傳送封包至接收端14時,發送端11所發送的封包中的發送端地址及接送端地址(如IP號碼、MAC、埠)並不需作改變,從而實現單一資料流多路徑傳輸。相較之下,習知MPTCP是多資料流(或稱子資料流)分別進行固定的不同路徑傳輸,在發送端必須另外配置為支援至少兩張網路卡使多個子資料流分別具有各自不同的發送端地址(如IP號碼、MAC至少一者不同)且發送端及接收端亦要安裝特定軟體或修改原有應用程式才能實現。故本發明之實施例能促進單一資料流多路徑傳輸的實現,對於發送端及接收端而言,具有實際應用上的便利性之益處。如此一來,藉由實現該技術於SDN中,促進多路徑隨機交換之傳輸機制或隨機交換網路編碼之傳輸機制之實現,從而有助於使單一資料流透過多路徑傳輸而提升傳輸效能。
本發明在上文中已以較佳實施例揭露,然熟習本項技術者應理解的是,該實施例僅用於描繪本發明,而不應解讀為限制本發明之範圍。應注意的是,舉凡與該等實施例等效之變化與置換,均應設為涵蓋於本發明之範疇內。因此,本發明之保護範圍當以申請專利範圍所界定者為準。
11:發送端
12、13:網路節點
14:接收端
20:軟體定義網路
120:編碼器
130:解碼器
200:網路控制器
210、211_1、211_2~211_N、220:交換器
300:運算裝置
310:網路介面單元
320:處理單元
330:記憶單元
331:控制邏輯
335:資料
400:交換器
410:封包轉發單元
411_1~411_M:埠
420:處理單元
430:記憶單元
431:控制邏輯
435:資料
P1、P2~PN:網路路徑
S100、S110、S120:方塊
S111、S115、S121、S125:方塊
S140:方塊
C1、C2:曲線
圖1為基於軟體定義網路以促進一資料流從發送端透過多路徑傳輸至接收端之網路架構之一種實施方式的示意圖。
圖2為基於軟體定義網路以促進一資料流從發送端透過多路徑傳輸至接收端之網路架構之另一種實施方式的示意圖。
圖3為用以促進一資料流從發送端透過多路徑傳輸至接收端之方法之一種實施方式的示意流程圖。
圖4為圖3之方法之一實施例的示意流程圖。
圖5為圖3中方塊S110之一實施例的示意流程圖。
圖6為圖3中方塊S120之一實施例的示意流程圖。
圖7為基於圖3之方法以實現網路編碼之一實施例的示意圖。
圖8為圖3之方法之另一實施例的示意流程圖。
圖9為可使用於SDN的網路控制器之一實施例的示意圖。
圖10為可使用於SDN的交換器之一實施例的示意圖。
圖11為一串流影像利用習知單一路徑傳輸的效能及相同串流影像利用依據本發明之一實施例的多路徑傳輸的效能的示意比較圖。
11:發送端
14:接收端
20:軟體定義網路
200:網路控制器
210、211_1、211_2、220:交換器
P1、P2:網路路徑
Claims (20)
- 一種用以促進一資料流從一發送端透過多路徑傳輸至一接收端的方法,用於一軟體定義網路(Software-defined network, SDN)的網路控制器,該軟體定義網路包括多個交換器,該等交換器用以執行從該發送端至該接收端的封包轉發,該方法包括: 於該網路控制器執行多個運作以使源自該發送端的該資料流透過使用多個網路路徑的多路徑傳輸而至該接收端,使得該多路徑傳輸對該發送端和該接收端而言是透通的(transparent),該等運作包括: 向該等交換器中的一第一交換器發送一第一控制訊息,其中該第一交換器接收該資料流的封包,該第一控制訊息包括第一資料流控制資訊,該第一資料流控制資訊用以通知該第一交換器依據與該等網路路徑相關聯的個別的路徑權重執行封包轉發;以及 向該等交換器中的一第二交換器發送一第二控制訊息,其中該第二交換器是從該等網路路徑接收與該資料流對應的封包,該第二控制訊息包括第二資料流控制資訊,該第二資料流控制資訊用以通知該第二交換器從該等網路路徑執行封包接收並執行封包轉發至該接收端。
- 如請求項1所述之方法,其中該等運作更包括從該SDN取得該等網路路徑的網路鏈路狀態,以基於該網路鏈路狀態確定該第一資料流控制資訊中之至少路徑權重。
- 如請求項2所述之方法,其中該網路鏈路狀態包括至少一個參數組,該參數組代表與該等網路路徑個別相關聯的一種對應的網路鏈路屬性,其中該網路鏈路屬性為包括頻寬、封包遺失率、延遲、抖動之多個屬性中的一種屬性。
- 如請求項3所述之方法,其中該網路鏈路狀態之至少一個參數組包括一第一參數組及一第二參數組,該第一參數組代表與該等網路路徑個別相關聯的頻寬,該第二參數組代表與該等網路路徑個別相關聯的封包遺失率。
- 如請求項1所述之方法,其中該網路控制器使該第一控制訊息進一步包含一第一網路功能之資料流控制資訊,該第一網路功能之資料流控制資訊用以通知該第一交換器將該資料流轉發至該等網路路徑以外之至少一網路節點以執行該第一網路功能。
- 如請求項5所述之方法,其中該第一網路功能之資料流控制資訊更用以通知該第一交換器從該至少一網路節點接收與該第一網路功能對應的調整後封包後,從而使該第一交換器基於該第一資料流控制資訊以依據與該等網路路徑相關聯的個別的路徑權重執行封包轉發。
- 如請求項6所述之方法,其中該第一網路功能包括網路編碼。
- 如請求項1所述之方法,其中該網路控制器使該第二控制訊息進一步包含一第二網路功能之資料流控制資訊,該第二網路功能之資料流控制資訊用以通知該第二交換器在基於該第二資料流控制資訊以執行封包接收之後,將接收之封包轉發至該等網路路徑以外之至少另一網路節點以執行該第二網路功能。
- 如請求項8所述之方法,其中該第二網路功能之資料流控制資訊更用以通知該第二交換器從該至少另一網路節點接收與該第二網路功能對應的調整後封包,從而使該第二交換器基於該第二資料流控制資訊以執行封包轉發至該接收端。
- 如請求項9所述之方法,其中該第二網路功能包括網路解碼。
- 如請求項1所述之方法,其中該等運作更包括: 從該SDN取得該等網路路徑的一代表性的網路鏈路狀態,以基於該代表性的網路鏈路狀態確定一第三資料流控制資訊中之至少更新之路徑權重;以及 向該第一交換器發送該第三控制訊息,其中該第三控制訊息包括該第三資料流控制資訊,該第一資料流控制資訊用以通知該第一交換器依據與該等網路路徑相關聯的個別的更新之路徑權重執行封包轉發。
- 如請求項11所述之方法,其中該代表性的網路鏈路狀態包括至少一個參數組,該參數組代表與該等網路路徑個別相關聯的一種對應的網路鏈路屬性,其中該網路鏈路屬性為包括頻寬、封包遺失率、延遲、抖動之多個屬性中的一種屬性。
- 一種電腦程式產品,其包括多個指令,且該等指令用以使至少一運算裝置執行如請求項1至12中任一項所述之促進一資料流從一發送端透過多路徑傳輸至一接收端的方法。
- 一種網路控制器,用於一軟體定義網路(Software-defined network, SDN),該軟體定義網路包括多個交換器,該等交換器用以執行從一發送端至一接收端的封包轉發,該網路控制器包括: 一網路介面單元,被配置為與該SDN進行通信;以及 至少一個處理單元,耦接至該網路介面單元,並被配置為執行多個運作以使源自該發送端的一資料流透過使用多個網路路徑的多路徑傳輸而至該接收端,使得該多路徑傳輸對該發送端和該接收端而言是透通的(transparent),該等運作包括: 向該等交換器中的一第一交換器發送一第一控制訊息,其中該第一交換器接收該資料流的封包,該第一控制訊息包括第一資料流控制資訊,該第一資料流控制資訊用以通知該第一交換器依據與該等網路路徑相關聯的個別的路徑權重執行封包轉發;以及 向該等交換器中的一第二交換器發送一第二控制訊息,其中該第二交換器是從該等網路路徑接收與該資料流對應的封包,該第二控制訊息包括第二資料流控制資訊,該第二資料流控制資訊用以通知該第二交換器從該等網路路徑執行封包接收並執行封包轉發至該接收端。
- 如請求項14所述之網路控制器,其中該等運作更包括從該SDN取得該等網路路徑的網路鏈路狀態,以基於該網路鏈路狀態確定該第一資料流控制資訊中之至少路徑權重。
- 如請求項15所述之網路控制器,其中該網路鏈路狀態包括至少一個參數組,該參數組代表與該等網路路徑個別相關聯的一種對應的網路鏈路屬性,其中該網路鏈路屬性為包括頻寬、封包遺失率、延遲、抖動之多個屬性中的一種屬性。
- 如請求項14所述之網路控制器,其中該網路控制器更被配置為使該第一控制訊息進一步包含一第一網路功能之資料流控制資訊,該第一網路功能之資料流控制資訊用以通知該第一交換器將該資料流轉發至該等網路路徑以外之至少一網路節點以執行該第一網路功能,其中該第一網路功能包括網路編碼。
- 如請求項17所述之網路控制器,其中該第一網路功能之資料流控制資訊更用以通知該第一交換器從該至少一網路節點接收與該第一網路功能對應的調整後封包後,從而使該第一交換器基於該第一資料流控制資訊以依據與該等網路路徑相關聯的個別的路徑權重執行封包轉發。
- 如請求項14所述之網路控制器,其中該網路控制器更被配置為使該第二控制訊息進一步包含一第二網路功能之資料流控制資訊,該第二網路功能之資料流控制資訊用以通知該第二交換器在基於該第二資料流控制資訊以執行封包接收之後,將接收之封包轉發至該等網路路徑以外之至少另一網路節點以執行該第二網路功能,其中該第二網路功能包括網路解碼。
- 如請求項19所述之網路控制器,其中該第二網路功能之資料流控制資訊更用以通知該第二交換器從該至少另一網路節點接收與該第二網路功能對應的調整後封包,從而使該第二交換器基於該第二資料流控制資訊以執行封包轉發至該接收端。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109133078A TWI757887B (zh) | 2020-09-24 | 2020-09-24 | 用以促進一資料流從一發送端透過多路徑傳輸至一接收端的方法、網路控制器以及電腦程式產品 |
US17/120,242 US11765071B2 (en) | 2020-09-24 | 2020-12-13 | Method, network controller and computer program product for facilitating a flow from a sending end to a receiving end by multi-path transmission |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109133078A TWI757887B (zh) | 2020-09-24 | 2020-09-24 | 用以促進一資料流從一發送端透過多路徑傳輸至一接收端的方法、網路控制器以及電腦程式產品 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI757887B true TWI757887B (zh) | 2022-03-11 |
TW202214021A TW202214021A (zh) | 2022-04-01 |
Family
ID=80741032
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109133078A TWI757887B (zh) | 2020-09-24 | 2020-09-24 | 用以促進一資料流從一發送端透過多路徑傳輸至一接收端的方法、網路控制器以及電腦程式產品 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11765071B2 (zh) |
TW (1) | TWI757887B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10027557B2 (en) * | 2013-09-09 | 2018-07-17 | Infovista Sas | Method for transmitting data streams through a telecommunication network |
WO2019010702A1 (en) * | 2017-07-14 | 2019-01-17 | Zte Corporation | MANAGEMENT OF ORIENTATION, SWITCHING AND DIVISION OF ACCESS TRAFFIC |
US10349462B2 (en) * | 2014-09-08 | 2019-07-09 | Liveu Ltd. | Methods and systems for managing bonded communications across multiple communication networks |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8989017B2 (en) * | 2012-12-14 | 2015-03-24 | Intel Corporation | Network congestion management by packet circulation |
US9112794B2 (en) * | 2013-11-05 | 2015-08-18 | International Business Machines Corporation | Dynamic multipath forwarding in software defined data center networks |
US10498654B2 (en) * | 2015-12-28 | 2019-12-03 | Amazon Technologies, Inc. | Multi-path transport design |
CN107231662B (zh) * | 2016-03-25 | 2020-11-10 | 华为技术有限公司 | 一种sdn网络中多流传输的方法和设备 |
US20170346724A1 (en) * | 2016-05-25 | 2017-11-30 | Doru Calin | Dynamic multi-path control and adaptive end-to-end content delivery over wireless media |
EP3735760B1 (en) * | 2018-01-05 | 2023-10-11 | Telefonaktiebolaget LM Ericsson (publ) | Data center failure management in an sdn deployment using border gateway node control |
-
2020
- 2020-09-24 TW TW109133078A patent/TWI757887B/zh active
- 2020-12-13 US US17/120,242 patent/US11765071B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10027557B2 (en) * | 2013-09-09 | 2018-07-17 | Infovista Sas | Method for transmitting data streams through a telecommunication network |
US10349462B2 (en) * | 2014-09-08 | 2019-07-09 | Liveu Ltd. | Methods and systems for managing bonded communications across multiple communication networks |
WO2019010702A1 (en) * | 2017-07-14 | 2019-01-17 | Zte Corporation | MANAGEMENT OF ORIENTATION, SWITCHING AND DIVISION OF ACCESS TRAFFIC |
Also Published As
Publication number | Publication date |
---|---|
US11765071B2 (en) | 2023-09-19 |
US20220094627A1 (en) | 2022-03-24 |
TW202214021A (zh) | 2022-04-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3278514B1 (en) | Data transmission | |
US9088511B2 (en) | Multi-hop error recovery | |
US9184983B2 (en) | Cross-stratum optimization protocol | |
CN108234309B (zh) | 一种网络数据的传输方法 | |
US8825898B2 (en) | Technique for optimized routing of data streams on an IP backbone in a computer network | |
CN106576073B (zh) | 用于通过聚合连接传输数据的方法及系统 | |
US20080137669A1 (en) | Network of nodes | |
US10153964B2 (en) | Network routing using dynamic virtual paths in an overlay network | |
CN110943933A (zh) | 一种实现数据传输的方法、装置和系统 | |
WO2021244450A1 (zh) | 一种通信方法及装置 | |
CN111224888A (zh) | 发送报文的方法及报文转发设备 | |
Ye et al. | PTP: Path-specified transport protocol for concurrent multipath transmission in named data networks | |
EP3125472A1 (en) | Telecommunication system, method and computer readable medium to control how a transmission of packets of a data flow is realized | |
KR101849302B1 (ko) | 이종 망에서 다중 경로 전송제어프로토콜(tcp)의 혼잡 윈도우 제어 방법 | |
CN107770061B (zh) | 转发报文的方法及转发设备 | |
CN115766605A (zh) | 网络拥塞控制方法、装置及系统 | |
CN113612698A (zh) | 一种数据包发送方法及装置 | |
CN114095448A (zh) | 一种拥塞流的处理方法及设备 | |
TWI757887B (zh) | 用以促進一資料流從一發送端透過多路徑傳輸至一接收端的方法、網路控制器以及電腦程式產品 | |
Hussain et al. | A dynamic multipath scheduling protocol (DMSP) for full performance isolation of links in software defined networking (SDN) | |
US11805071B2 (en) | Congestion control processing method, packet forwarding apparatus, and packet receiving apparatus | |
Huang et al. | Network layer support for gigabit tcp flows in wireless mesh networks | |
Farrugia et al. | Multi-stream tcp: leveraging the performance of a per-packet multipath routing algorithm when using tcp and sdn | |
Zhang et al. | Considerations for application‐layer multipath transport control | |
Jabbar et al. | An Оverview of the Мultipath Тechnologies, their Importance and Types |