TWI757887B - Method, network controller, and computer program product for facilitating multipath transmission of a data stream from a sender to a receiver - Google Patents

Method, network controller, and computer program product for facilitating multipath transmission of a data stream from a sender to a receiver Download PDF

Info

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
Application number
TW109133078A
Other languages
Chinese (zh)
Other versions
TW202214021A (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 TW109133078A priority Critical patent/TWI757887B/en
Priority to US17/120,242 priority patent/US11765071B2/en
Application granted granted Critical
Publication of TWI757887B publication Critical patent/TWI757887B/en
Publication of TW202214021A publication Critical patent/TW202214021A/en

Links

Images

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/38Flow based routing
    • 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
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding
    • H04W40/02Communication route or path selection, e.g. power-based or shortest path routing
    • H04W40/12Communication route or path selection, e.g. power-based or shortest path routing based on transmission quality or channel quality
    • H04W40/16Communication 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

用以促進一資料流從一發送端透過多路徑傳輸至一接收端的方法,用於一軟體定義網路的網路控制器,該軟體定義網路包括多個交換器,該等交換器用以執行從該發送端至該接收端的封包轉發,該方法包括:於該網路控制器執行多個運作以使源自該發送端的該資料流透過使用多個網路路徑的多路徑傳輸而至該接收端,使得該多路徑傳輸對該發送端和該接收端而言是透通的。該網路控制器可基於此方法而被配置為用以促進多路徑隨機交換之傳輸機制或隨機交換網路編碼之傳輸機制之實現,從而有助於使單一資料流透過多路徑傳輸而提升傳輸效能。A method for facilitating multipath transmission of a data stream from a sender to a receiver, a network controller for a software-defined network comprising a plurality of switches for executing Packet forwarding from the sender to the receiver, the method comprising: performing operations at the network controller to cause the data stream from the sender to the receiver through multipath transmission using multiple network paths end, so that the multi-path transmission is transparent to the sender and the receiver. The network controller may be configured to facilitate the implementation of a multi-path random switching transport mechanism or a random switching network coding transport mechanism based on this method, thereby helping to improve transmission of a single data stream through multi-path transmission efficacy.

Description

用以促進一資料流從一發送端透過多路徑傳輸至一接收端的方法、網路控制器以及電腦程式產品Method, network controller, and computer program product for facilitating multipath transmission of a data stream from a sender to a receiver

本發明係關於一種資料流透過多路徑傳輸的傳輸技術,更特別的是關於用以促進一資料流從一發送端透過多路徑傳輸至一接收端的方法、網路控制器以及電腦程式產品。The present invention relates to a transmission technology for multi-path transmission of data streams, and more particularly, to a method, network controller and computer program product for facilitating multi-path transmission of a data stream from a sender to a receiver.

現今在網路傳遞的資料,除了文字資料外,更有大量的影音資料,而影音資料的傳遞通常需要較高的頻寬與即時性,因此提高網路的傳輸效能是很重要的課題。然而,封包在網路中傳遞時,往往可能因為線路不穩、負載超過可用頻寬或擁塞等等各種不同因素,有封包遺失(Packet Loss)的情況發生,而這將造成網路傳輸效能的下降;特別是在無線網路環境中,由於節點移動性和無線傳播(Propagation)條件的變化,傳輸路徑可能因為訊號源干擾、障礙物遮蔽等因素,造成傳輸品質不穩定,甚至延遲時間過長而導致封包遺失,而嚴重降低傳輸效能,有研究指出,在無線網路中,多數的連線其封包遺失機率高於30%。一般稱封包傳遞時會有遺失發生的網路為有損網路(Lossy Networks),如何提升在有損網路中資料的傳輸效能是很重要的議題。In addition to text data, the data transmitted on the Internet now has a large amount of audio and video data. The transmission of audio and video data usually requires high bandwidth and immediacy. Therefore, improving the transmission efficiency of the network is a very important issue. However, when the packets are transmitted in the network, there may be packet loss (Packet Loss) due to various factors such as unstable line, load exceeding the available bandwidth or congestion, which will cause network transmission performance. drop; especially in the wireless network environment, due to changes in node mobility and wireless propagation (Propagation) conditions, the transmission path may be unstable due to signal source interference, obstructions, and other factors, resulting in unstable transmission quality, or even too long delay time This leads to packet loss, which seriously reduces transmission performance. Some studies have pointed out that in wireless networks, the packet loss probability of most connections is higher than 30%. Generally, a network in which packet loss occurs during packet transmission is called a lossy network. How to improve the data transmission performance in a lossy network is a very important issue.

就現有網路技術而言,發送端與接收端之間傳輸的單一資料流對交換器而言是點對點傳輸,其資料流的路由路徑是固定的,交換器不可能進行多路徑傳輸。因此,對於為了開發更高的網路傳輸效能,近年來不論在學界,工業界或標準組織(如 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),其將會在同一條路徑上傳輸,因而這類的技術實際上將難以對同一資料流達成分流多工的效果。As far as the existing network technology is concerned, the single data stream transmitted between the sender and the receiver is point-to-point transmission to the switch, and the routing path of the data stream is fixed, and the switch cannot perform multi-path transmission. Therefore, in order to develop higher network transmission performance, in recent years, whether in academia, industry or standard organizations (such as IETF, Internet Engineering Task Force) have studied how to use multi-path to transmit packets. Many transport mechanisms for multipath have been proposed today, such as using Equal Cost Multipath (ECMP) routing technology or IEEE 802.1aq link aggregation technology, which uses Mac address, IP address and TCP/UDP port to calculate data The hash value of the flow is used as the basis for adjusting the flow, so as to achieve the purpose of transmitting several data flows through different paths. In this way, it is necessary to find several transmission paths with equal cost (usually the same available bandwidth), and in fact, the packets in a data stream have the same source and sender, because the source of the packet When the IP and the destination IP are the same, according to the routing rules, they will be transmitted on the same path, so this type of technology will actually be difficult to achieve the effect of splitting and multiplexing the same data flow.

此外,IETF修訂TCP協定,提出 MPTCP (Multi-Path TCP)協定,其透過多條路徑來提高網路傳輸效率和可靠性。MPTCP 是在使用建立 TCP 連線時,開啟額外的子資料流(Subflow),將資料分散至多條路徑傳送(仍共用同樣的傳送或接收緩衝區),藉由賦予每條連線不同的連線識別碼,將同一連線中的子資料流重組為單一的網路流,MPTCP 協定並針對每一子資料設定序號,用以偵測遺失並進行重傳。這樣的設計,事實上是將多子資料流合併成一個資料流,而對這合併的資料流就可以說是以多路徑來傳送。In addition, the IETF revised the TCP protocol and proposed the MPTCP (Multi-Path TCP) protocol, which improves the efficiency and reliability of network transmission through multiple paths. MPTCP is to open an additional subflow (Subflow) when establishing a TCP connection, disperse the data to multiple paths for transmission (still share the same transmit or receive buffer), by giving each connection a different connection Identifier, which reassembles the sub-data stream in the same connection into a single network stream, MPTCP protocol and sets a sequence number for each sub-data to detect loss and retransmit. Such a design actually combines multiple sub-data streams into one data stream, and the combined data stream can be said to be transmitted by multiple paths.

理想狀況下,MPTCP 的吞吐量(Throughput)應該與多個不相交的單路徑連結一樣高。然而,實際上,MPTCP 在傳送資料時,因不同傳輸路徑有不同的封包遺失率和延遲時間,導致總傳輸量遠低於預期。所以 MPTCP 在實作上須先考慮每個傳輸路徑的效能,讓每個傳輸路徑的效能不要差異太大,才能達到多路徑傳輸預期的效益。此外,MPTCP 機制是運作在第三與第四層協定上,是點對點(End to End)的協定,所以其一個資料流(或子資料流)內的封包,仍會依相同的路由路徑(Routing path)來傳遞,故實際上,MPTCP是多資料流(或稱子資料流)分別進行固定的不同路徑傳輸。Ideally, MPTCP throughput (Throughput) should be as high as multiple disjoint single-path connections. However, in fact, when MPTCP transmits data, the total transmission volume is much lower than expected due to different packet loss rates and delay times of different transmission paths. Therefore, in the implementation of MPTCP, the performance of each transmission path must be considered first, so that the performance of each transmission path should not be too different, in order to achieve the expected benefits of multi-path transmission. In addition, the MPTCP mechanism operates on the third and fourth layer protocols, which are point-to-point (End to End) protocols, so the packets in one data stream (or sub-data stream) will still follow the same routing path (Routing). path), so in fact, MPTCP is a multi-data stream (or sub-data stream) for different fixed path transmission respectively.

此外,在實作上,發送端與接收端能夠使用MPTCP的前提是各自必須都具有至少兩張網路卡(如Wi-Fi、4G的網路卡)以提供至少兩個網路位址,且發送端與接收端確定使用MPTCP時,需要在發送端實現將資料分散為多個子資料流的處理,並且在接收端實現將多個子資料流合併為原有資料的處理。如此,發送端及接收端各自需安裝支持MPTCP軟體或修改原有應用程式使之支援MPTCP才能使用,並且要額外增加發送端及接收端的運算資源及硬體資源消耗。In addition, in practice, the premise that the sender and receiver can use MPTCP is that each must have at least two network cards (such as Wi-Fi, 4G network cards) to provide at least two network addresses, And when the sender and the receiver decide to use MPTCP, the sender needs to implement the process of dispersing the data into multiple sub-data streams, and the receiver needs to realize the process of merging the multiple sub-data streams into original data. In this way, each of the sender and the receiver needs to install software that supports MPTCP or modify the original application to support MPTCP before use, and additionally increase the computing resources and hardware resource consumption of the sender and receiver.

是以,為了提升在有損網路中資料的傳輸效能,目前的傳輸技術仍有待改善。Therefore, in order to improve the data transmission performance in the lossy network, the current transmission technology still needs to be improved.

本發明之一目的在於提出促進一資料流從一發送端透過多路徑傳輸至一接收端的技術,適用於一軟體定義網路(Software-defined network, SDN),且該多路徑傳輸對該發送端和該接收端而言是透通的(transparent)。藉由實現該技術於SDN中,發送端及接收端能受益於依據該技術之單一資料流透過多路徑傳輸而使傳輸效能提升。One object of the present invention is to propose a technique for facilitating multipath transmission of a data stream from a sender to a receiver, suitable for a software-defined network (SDN), and the multipath transmission to the sender It is transparent to the receiving end. By implementing this technology in SDN, the sender and the receiver can benefit from the multi-path transmission of a single data stream according to the technology to improve transmission performance.

為達至少上述目的,本發明提出一種用以促進一資料流從一發送端透過多路徑傳輸至一接收端的方法,用於一軟體定義網路(Software-defined network, SDN)的網路控制器,該軟體定義網路包括多個交換器,該等交換器用以執行從該發送端至該接收端的封包轉發,該方法包括:於該網路控制器執行多個運作以使源自該發送端的該資料流透過使用多個網路路徑的多路徑傳輸而至該接收端,使得該多路徑傳輸對該發送端和該接收端而言是透通的(transparent)。該等運作包括:向該等交換器中的一第一交換器發送一第一控制訊息,其中該第一交換器接收該資料流的封包,該第一控制訊息包括第一資料流控制資訊,該第一資料流控制資訊用以通知該第一交換器依據與該等網路路徑相關聯的個別的路徑權重執行封包轉發;以及向該等交換器中的一第二交換器發送一第二控制訊息,其中該第二交換器是從該等網路路徑接收與該資料流對應的封包,該第二控制訊息包括第二資料流控制資訊,該第二資料流控制資訊用以通知該第二交換器從該等網路路徑執行封包接收並執行封包轉發至該接收端。In order to achieve at least the above objects, the present invention provides a method for facilitating multipath transmission of a data stream from a sender to a receiver, for a network controller of a software-defined network (SDN) , the software-defined network includes a plurality of switches for performing packet forwarding from the sending end to the receiving end, the method comprising: performing a plurality of operations on the network controller to enable the transmission from the sending end The data stream is transmitted to the receiver through multi-path transmission using multiple network paths, so that the multi-path transmission is transparent to the sender and the receiver. The operations include: sending a first control message to a first switch of the switches, wherein the first switch receives packets of the data flow, the first control message including first data flow control information, The first data flow control information is used to notify the first switch to perform packet forwarding according to the individual path weights associated with the network paths; and to send a second switch to a second switch of the switches a control message, wherein the second switch receives packets corresponding to the data flow from the network paths, the second control message includes second data flow control information, and the second data flow control information is used to notify the first Two switches perform packet reception from the network paths and perform packet forwarding to the receiving end.

於本發明之一實施例中,該等運作更包括從該SDN取得該等網路路徑的網路鏈路狀態,以基於該網路鏈路狀態確定該第一資料流控制資訊中之至少路徑權重。In one embodiment of the present invention, the operations further include obtaining network link statuses of the network paths from the SDN to determine at least the paths in the first data flow control information based on the network link statuses Weights.

於本發明之一實施例中,該網路鏈路狀態包括至少一個參數組,該參數組代表與該等網路路徑個別相關聯的一種對應的網路鏈路屬性,其中該網路鏈路屬性為包括頻寬、封包遺失率、延遲、抖動之多個屬性中的一種屬性。In one embodiment of the present invention, the network link status includes at least one parameter group, the parameter group representing a corresponding network link attribute associated with the network paths individually, wherein the network link The attribute is one of multiple attributes including bandwidth, packet loss rate, delay, and jitter.

於本發明之一實施例中,該網路鏈路狀態之至少一個參數組包括一第一參數組及一第二參數組,該第一參數組代表與該等網路路徑個別相關聯的頻寬,該第二參數組代表與該等網路路徑個別相關聯的封包遺失率。In an embodiment of the present invention, the at least one parameter group of the network link state includes a first parameter group and a second parameter group, the first parameter group representing the frequency respectively associated with the network paths. wide, the second parameter set represents the packet loss rate individually associated with the network paths.

於本發明之一實施例中,該網路控制器更被配置為使該第一控制訊息進一步包含一第一網路功能之資料流控制資訊,該第一網路功能之資料流控制資訊用以通知該第一交換器將該資料流轉發至該等網路路徑以外之至少一網路節點以執行該第一網路功能。In an embodiment of the present invention, the network controller is further configured to make the first control message further include data flow control information of a first network function, and the data flow control information of the first network function is used for informing the first switch to forward the data flow to at least one network node outside the network paths to perform the first network function.

於本發明之一實施例中,該第一網路功能之資料流控制資訊更用以通知該第一交換器從該至少一網路節點接收與該第一網路功能對應的調整後封包後,從而使該第一交換器基於該第一資料流控制資訊以依據與該等網路路徑相關聯的個別的路徑權重執行封包轉發。In an embodiment of the present invention, the data flow control information of the first network function is further used to notify the first switch after receiving the adjusted packet corresponding to the first network function from the at least one network node. , so that the first switch performs packet forwarding according to the individual path weights associated with the network paths based on the first data flow control information.

於本發明之一實施例中,該第一網路功能包括網路編碼。In an embodiment of the present invention, the first network function includes network coding.

於本發明之一實施例中,該網路控制器更被配置為使該第二控制訊息進一步包含一第二網路功能之資料流控制資訊,該第二網路功能之資料流控制資訊用以通知該第二交換器在基於該第二資料流控制資訊以執行封包接收之後,將接收之封包轉發至該等網路路徑以外之至少另一網路節點以執行該第二網路功能。In an embodiment of the present invention, the network controller is further configured to make the second control message further include data flow control information of a second network function, and the data flow control information of the second network function is used for to notify the second switch to forward the received packet to at least another network node outside the network paths to perform the second network function after receiving the packet based on the second data flow control information.

於本發明之一實施例中,該第二網路功能之資料流控制資訊更用以通知該第二交換器從該至少另一網路節點接收與該第二網路功能對應的調整後封包,從而使該第二交換器基於該第二資料流控制資訊以執行封包轉發至該接收端。In an embodiment of the present invention, the data flow control information of the second network function is further used to notify the second switch to receive an adjusted packet corresponding to the second network function from the at least another network node , so that the second switch performs packet forwarding to the receiving end based on the second data flow control information.

於本發明之一實施例中,該第二網路功能包括網路解碼。In one embodiment of the present invention, the second network function includes network decoding.

於本發明之一實施例中,該等運作更包括:從該SDN取得該等網路路徑的一代表性的網路鏈路狀態,以基於該代表性的網路鏈路狀態確定一第三資料流控制資訊中之至少更新之路徑權重;以及向該第一交換器發送該第三控制訊息,其中該第三控制訊息包括該第三資料流控制資訊,該第一資料流控制資訊用以通知該第一交換器依據與該等網路路徑相關聯的個別的更新之路徑權重執行封包轉發。In one embodiment of the present invention, the operations further include: obtaining a representative network link state of the network paths from the SDN to determine a third network link state based on the representative network link state at least updated path weights in data flow control information; and sending the third control message to the first switch, wherein the third control message includes the third data flow control information, the first data flow control information for The first switch is instructed to perform packet forwarding according to the individually updated path weights associated with the network paths.

於本發明之一實施例中,該代表性的網路鏈路狀態包括至少一個參數組,該參數組代表與該等網路路徑個別相關聯的一種對應的網路鏈路屬性,其中該網路鏈路屬性為包括頻寬、封包遺失率、延遲、抖動之多個屬性中的一種屬性。In one embodiment of the present invention, the representative network link state includes at least one parameter group, the parameter group representing a corresponding network link attribute individually associated with the network paths, wherein the network The link attribute is one of multiple attributes including bandwidth, packet loss rate, delay, and jitter.

為達至少上述目的,本發明另外提出一種電腦程式產品,其包括多個指令,且該等指令用以使電腦執行如上述實施例中任一者所述之促進一資料流從一發送端透過多路徑傳輸至一接收端的方法。In order to achieve at least the above object, the present invention further provides a computer program product, which includes a plurality of instructions, and the instructions are used to cause the computer to execute the process of facilitating a data flow from a sender to pass through as described in any one of the above-mentioned embodiments. A method for multipath transmission to a receiver.

為達至少上述目的,本發明又提出一種網路控制器,用於一軟體定義網路(Software-defined network, SDN),該軟體定義網路包括多個交換器,該等交換器用以執行從一發送端至一接收端的封包轉發,該網路控制器包括:一網路介面單元以及至少一個處理單元。該網路介面單元,被配置為與該SDN進行通信。該至少一個處理單元,耦接至該網路介面單元,並被配置為執行多個運作以使源自該發送端的一資料流透過使用多個網路路徑的多路徑傳輸而至該接收端,使得該多路徑傳輸對該發送端和該接收端而言是透通的(transparent)。該等運作包括:向該等交換器中的一第一交換器發送一第一控制訊息,其中該第一交換器接收該資料流的封包,該第一控制訊息包括第一資料流控制資訊,該第一資料流控制資訊用以通知該第一交換器依據與該等網路路徑相關聯的個別的路徑權重執行封包轉發;以及向該等交換器中的一第二交換器發送一第二控制訊息,其中該第二交換器是從該等網路路徑接收與該資料流對應的封包,該第二控制訊息包括第二資料流控制資訊,該第二資料流控制資訊用以通知該第二交換器從該等網路路徑執行封包接收並執行封包轉發至該接收端。In order to achieve at least the above objects, the present invention further provides a network controller for a software-defined network (SDN), the software-defined network includes a plurality of switches, and the switches are used for executing the slave For packet forwarding from a sender to a receiver, the network controller includes: a network interface unit and at least one processing unit. The network interface unit is configured to communicate with the SDN. the at least one processing unit, coupled to the network interface unit, is configured to perform a plurality of operations to cause a data stream from the sending end to be transmitted to the receiving end through multi-path transmission using a plurality of network paths, The multipath transmission is made transparent to the sender and the receiver. The operations include: sending a first control message to a first switch of the switches, wherein the first switch receives packets of the data flow, the first control message including first data flow control information, The first data flow control information is used to notify the first switch to perform packet forwarding according to the individual path weights associated with the network paths; and to send a second switch to a second switch of the switches a control message, wherein the second switch receives packets corresponding to the data flow from the network paths, the second control message includes second data flow control information, and the second data flow control information is used to notify the first Two switches perform packet reception from the network paths and perform packet forwarding to the receiving end.

在網路控制器之一些實施例中,該網路控制器可用以實現上述方法之多個實施例中之至少一者或於適合的任意組合。In some embodiments of the network controller, the network controller may be used to implement at least one or any suitable combination of the various embodiments of the above methods.

如上多個實施例,係基於SDN,且應用網路通訊協定標準模型中第二層的多路徑傳輸(例如,在網路中傳送單一資料流的封包時,中間轉送(Forward)的節點可以透過不同的傳輸介面來轉送不同的封包),故該多路徑傳輸對該發送端和該接收端而言是透通的(transparent)。如此一來,藉由實現該技術於SDN中,能使單一資料流透過多路徑傳輸而提升傳輸效能,而且發送端不需另外配置為支援兩張網路卡且發送端及接收端亦不用安裝特定軟體或修改原有應用程式,故本技術更具有實際應用上的便利性之益處。The above-mentioned embodiments are based on SDN and apply the multi-path transmission of the second layer in the standard model of network communication protocol (for example, when transmitting packets of a single data stream in the network, the intermediate forwarding (Forward) node can pass through different transmission interfaces to forward different packets), so the multi-path transmission is transparent to the sender and the receiver. In this way, by implementing this technology in SDN, a single data stream can be transmitted through multiple paths to improve transmission performance, and the sender does not need to be additionally configured to support two network cards and the sender and receiver do not need to be installed. Specific software or modification of the original application program, so the technology has the advantage of convenience in practical application.

為充分瞭解本發明之目的、特徵及功效,茲藉由下述具體之實施例,並配合所附之圖式,對本發明做詳細說明,說明如後:In order to fully understand the purpose, features and effects of the present invention, the present invention is described in detail by the following specific embodiments and in conjunction with the accompanying drawings, and the description is as follows:

以下提出多個實施例以說明依據本發明之促進一資料流從一發送端透過多路徑傳輸至一接收端的技術的各種實施方式。該技術係基於一軟體定義網路(Software-defined network, SDN),且該多路徑傳輸對該發送端和該接收端而言是透通的(transparent)。藉由實現該技術於SDN中,發送端及接收端能受益於依據該技術之單一資料流透過多路徑傳輸而使傳輸效能提升。Several embodiments are presented below to illustrate various implementations of the technique for facilitating multipath transmission of a data stream from a sender to a receiver according to the present invention. The technology is based on a software-defined network (SDN), and the multi-path transmission is transparent to the sender and the receiver. By implementing this technology in SDN, the sender and the receiver can benefit from the multi-path transmission of a single data stream according to the technology to improve transmission performance.

請參考圖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) 之傳輸機制,將舉實施例說明其實現方式於後。Please refer to FIG. 1 , which is a schematic diagram of an embodiment of a network architecture based on a software-defined network 20 to facilitate multipath transmission of a data stream from the sender 11 to the receiver 14 . As shown in FIG. 1 , the network architecture includes a software-defined network (SDN) 20 for facilitating multipath transmission of a data stream from the sender 11 to the receiver 14 , where, for example, the data stream It is an audio-visual (video), video or audio data stream, or a data stream of any data attribute, and the packets in the data stream have the same source and sender. The software-defined network 20 includes a plurality of switches supporting SDN, such as the switches 210 , 211_1 , 211_2 , and 220 shown in FIG. 1 , and the switches are used to perform packet forwarding from the sender 11 to the receiver 14 . These switches can be physical network switches or routers, and can also be implemented by computing devices with computing capabilities (such as computers or servers, etc.). The software-defined network 20 further includes one or more network controllers 200, and the network controllers 200 are used to perform a plurality of operations to control or configure the packet processing or forwarding behavior of the switches, so that the source The data stream from the sender 11 is multi-pathed to the receiver 14 using multiple network paths (eg, network paths P1, P2 as shown in FIG. 1 ), so that the multi-path transfers to the sender 14 The terminal 11 and the receiving terminal 14 are transparent, wherein the network path P1 refers to the packet passing through the switch 210, the switch 211_1, and the switch 220 to the receiving terminal 14, and the network path P2 refers to the packet From the switch 210 , the switch 211_2 , and the switch 220 to the receiving end 14 , and so on for the network path below. To this end, the network controller 200 may be configured to facilitate a method of multipathing a data stream from the sender to the receiver to facilitate the multipathing of a single data stream, which will be implemented based on FIG. 3 . Examples are described later. For example, due to the network transparency of the above-mentioned multi-path transmission for the sender and the receiver, in the application scenarios of SDN-based communication networks, such as computer networks, Internet, 4G, 5G Or any mobile communication network, or a hybrid communication network further combined with a fixed network (such as optical fiber communication or telecommunication network), the sender 11 and the receiver 14 can use the original network communication software, and it is not necessary to Any special configuration based on the path transmission mechanism can benefit from the multi-path transmission of a single data stream to improve transmission performance. In addition, the multi-path transmission is the multi-path transmission using the second layer (Layer 2) of the standard model of network protocols. For example, when transmitting a single data stream packet in the network, the intermediate forwarding (Forward) node can pass through Different transmission interfaces are used to forward different packets. For example, the network controller 200 can perform a plurality of operations to control or configure a switch (such as the switch 210 ) of the switches to perform stochastic switching packet processing or forwarding, so as to Passing the data stream from the sender 11 through the use of multiple network paths. The above-mentioned random switching on the multi-path transmission can be called a transmission mechanism of Multi-Path Stochastic Switching (MPSS), and the implementation method will be described with examples later.

請參考圖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)之傳輸機制,將舉實施例說明其實現方式於後。Please refer to FIG. 2 , which is a schematic diagram of another embodiment of a network architecture based on a software-defined network 20 to facilitate multipath transmission of a data stream from the sender 11 to the receiver 14 . The embodiment of FIG. 2 is based on the embodiment of FIG. 1 , and may be further combined with a network function virtualization technology according to transmission requirements or network conditions. In FIG. 2 , the network controller 200 is used to perform multiple operations to control or configure the packet processing or forwarding behavior of the switches 210 , 211_1 ˜ 211_N and 220 , so that the The data stream is delivered to the receiver 14 through multi-path transmission using a plurality of network paths (such as network paths P1 to PN as shown in FIG. 1, where N is a positive integer greater than 1), such that the multi-path transmission pair The transmitting end 11 and the receiving end 14 are transparent. The network controller 200 can define a virtual network function (Virtual Network Function), and the shilling switch 210 forwards the packets of the data flow to another network node (such as the network node 12) outside the network paths ) to perform a network function, such as network coding. Correspondingly, the network controller 200 can make the switch 220 forward the packets from the network paths to another network node (such as the network node 13 ) outside the network paths to execute another The network function, for example, performs decoding corresponding to the aforementioned network code, and then forwards the decoded packet to the receiving end 14 . The network node is, for example, a computing device with computing and networking capabilities, such as a computer, a server, or other computing devices. The above-mentioned stochastic switching and network coding in multi-path transmission can be referred to as a transmission mechanism of Stochastic Switching and Network Coding (SSNC).

以上用圖1、圖2舉例說明基於軟體定義網路以促進一資料流從發送端透過多路徑傳輸至接收端之網路架構,然而,本發明之實現方式並不受限於上述示例。例如,在基於圖1或圖2的網路架構的示例中,交換器210、220之間的各個網路路徑可能存在一台或以上的交換器,或者不存在其它交換器;此外,在發送端11與交換器210之間,或交換器220與接收端14之間亦可能存在交換器;上述這些基於圖1或圖2的網路架構亦可適用於實現多路徑隨機交換機制(MPSS)或隨機交換網路編碼(SSNC)之傳輸機制。1 and 2 are used as examples to illustrate the network architecture based on software-defined network to facilitate a data stream to be transmitted from the sender to the receiver through multiple paths. However, the implementation of the present invention is not limited to the above examples. For example, in the example based on the network architecture of FIG. 1 or FIG. 2, each network path between switches 210 and 220 may have one or more switches, or no other switches; There may also be a switch between the terminal 11 and the switch 210, or between the switch 220 and the receiving terminal 14; the above-mentioned network architectures based on FIG. 1 or FIG. 2 are also suitable for implementing a multi-path random switching mechanism (MPSS) or Random Switched Network Coding (SSNC) transport mechanism.

請參考圖3,其為用以促進一資料流從發送端透過多路徑傳輸至接收端之方法之一種實施方式的示意流程圖。圖3之方式用以促進一資料流從一發送端11透過多路徑傳輸至一接收端14,可適用於基於如圖1或圖2所示的軟體定義網路(SDN)20的網路控制器200。該方法包括於該網路控制器200執行多個運作以使源自該發送端11的該資料流透過使用多個網路路徑的多路徑傳輸而至該接收端14,使得該多路徑傳輸對該發送端11和該接收端14而言是透通的。如圖3所示,該等運作包括如方塊S110至S120所示的運作,其中於說明該方法時引用圖1或圖2作為示例以便於理解其實現方式,但應注意的是,本發明之實現方式並不受限於示例。又以下方法是在多個網路路徑已找到的情況下進行。Please refer to FIG. 3 , which is a schematic flowchart of one embodiment of a method for facilitating multipath transmission of a data stream from a sender to a receiver. The method of FIG. 3 is used to facilitate the multi-path transmission of a data stream from a sender 11 to a receiver 14 , and can be applied to network control based on a software-defined network (SDN) 20 as shown in FIG. 1 or FIG. 2 device 200. The method includes performing operations on the network controller 200 to cause the data stream originating from the sender 11 to be transmitted to the receiver 14 through multi-path transmission using a plurality of network paths such that the multi-path transmission pairs The transmitting end 11 and the receiving end 14 are transparent. As shown in FIG. 3 , the operations include operations as shown in blocks S110 to S120 , and FIG. 1 or FIG. 2 are used as examples when describing the method to facilitate understanding of its implementation, but it should be noted that the present invention Implementations are not limited to examples. The following method is performed under the condition that multiple network paths have been found.

如方塊S110所示,該網路控制器200向該等交換器中的一交換器發送一第一控制訊息,其中該交換器係直接或間接地從該發送端11接收該資料流的封包,該第一控制訊息包括第一資料流控制資訊,該第一資料流控制資訊用以通知該交換器依據與該等網路路徑相關聯的個別的路徑權重執行封包轉發。舉例而言,該網路控制器200可用以執行方塊S110之運作來控制或設定該等交換器中包含至少兩個以上的封包傳送介面且可將封包傳送到不同的鏈路(Link)的一交換器,如交換器210。As shown in block S110, the network controller 200 sends a first control message to one of the switches, wherein the switch directly or indirectly receives the packet of the data stream from the sender 11, The first control message includes first data flow control information for instructing the switch to perform packet forwarding according to the individual path weights associated with the network paths. For example, the network controller 200 can be used to execute the operation of block S110 to control or configure one of the switches including at least two or more packet transmission interfaces and to transmit packets to different links (Link). A switch, such as switch 210.

如方塊S120所示,該網路控制器200向該等交換器中一交換器發送一第二控制訊息,其中該交換器係從該等網路路徑接收與該資料流對應的封包(如目的地為該接收端14的相應封包),該第二控制訊息包括第二資料流控制資訊,該第二資料流控制資訊用以通知該交換器從該等網路路徑執行封包接收並執行封包轉發至該接收端14。舉例而言,該網路控制器200可用以執行方塊S120之運作來控制或設定該等交換器中包含至少兩個以上的封包傳送介面且可將來自不同鏈路的封包傳送到接收端140的一交換器,如交換器220。As shown in block S120, the network controller 200 sends a second control message to a switch of the switches, wherein the switch receives packets (eg, destination) corresponding to the data flow from the network paths the corresponding packets of the receiving end 14), the second control message includes second data flow control information, and the second data flow control information is used to notify the switch to perform packet reception from the network paths and to perform packet forwarding to the receiving end 14 . For example, the network controller 200 can be used to execute the operation of block S120 to control or configure the switches to include at least two or more packet transmission interfaces and to transmit packets from different links to the receiver 140 A switch, such as switch 220.

藉由實現上述方法於SDN中,該多路徑傳輸對該發送端和該接收端而言是透通的(transparent),且發送端及接收端能受益於依據該方法之單一資料流透過多路徑傳輸而使傳輸效能提升。By implementing the above method in SDN, the multipath transmission is transparent to the sender and the receiver, and the sender and receiver can benefit from a single data stream through the multipath according to the method transmission to improve transmission performance.

此外,如前所述,基於圖1或圖2的網路架構可能有各種實現方式,其中除了交換器210、220以外,可能存在或不存在其他交換器。因此,對於在交換器210、220以外存在其他交換器的網路架構下,本發明所屬領域的通常知識者, 可基於圖3之方法,並且因應該種網路構,進一步透過使用軟體定義網路的相關技術,利用該網路控制器200來控制其他交換器(例如211_1至211_N),從而達成多路徑傳輸,如多路徑隨機交換機制(MPSS)或隨機交換網路編碼(SSNC)傳輸機制。Furthermore, as previously mentioned, various implementations are possible based on the network architecture of FIG. 1 or FIG. 2 , in which other switches than switches 210 , 220 may or may not exist. Therefore, for the network architecture in which other switches exist besides the switches 210 and 220, those skilled in the art to which the present invention pertains can, based on the method shown in FIG. In the related art of the channel, the network controller 200 is used to control other switches (eg, 211_1 to 211_N), so as to achieve multi-path transmission, such as multi-path random switching mechanism (MPSS) or random switching network coding (SSNC) transmission mechanism .

此外,基於圖3之方法,更可進一步延伸出其他實現方式,例如因應傳輸或網路狀況而作出處理或調整,其將舉例說明於下。In addition, based on the method shown in FIG. 3 , other implementations can be further extended, such as processing or adjustment in response to transmission or network conditions, which will be exemplified below.

在方塊S110中,該網路控制器200用以與交換器210通訊,令交換器210可依據與該等網路路徑相關聯的個別的路徑權重執行封包轉發,從而使交換器210進行隨機交換(stochastic switching)的封包處理或轉發的行為。在一實施例中,該網路控制器200可以利用OpenFlow協定,將路徑上交換器210中的群組表(Group Table)設定為選擇(Select)模式,同時利用多條路徑進行封包轉送,此時該網路控制器200可以透過選擇(Select)模式中「動作水桶」(Buckets)(即輸出埠(Output Port))的權重設定,來決定傳送路徑的路徑權重。舉例而言,權重的設定與調整的目標就是要充份地利用路徑可用的頻寬。當路徑故障或擁塞發生時,因為是多路徑同時傳輸,以至於不會嚴重的影響使用者,並且將該網路路徑的轉送機率分配在其他路徑上恢復流量。In block S110, the network controller 200 is used to communicate with the switch 210, so that the switch 210 can perform packet forwarding according to the individual path weights associated with the network paths, thereby enabling the switch 210 to perform random switching (stochastic switching) packet processing or forwarding behavior. In one embodiment, the network controller 200 can use the OpenFlow protocol to set the Group Table in the on-path switch 210 to the Select mode, and use multiple paths for packet forwarding at the same time. At this time, the network controller 200 can determine the path weight of the transmission path by setting the weight of the "Buckets" (ie, the Output Port) in the Select mode. For example, the goal of weight setting and adjustment is to make full use of the available bandwidth of the path. When a path failure or congestion occurs, because of the simultaneous transmission of multiple paths, it will not seriously affect the user, and the forwarding probability of the network path is allocated to other paths to restore traffic.

舉例而言,可以使用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)動作來轉送封包到輸出埠。For example, the stochastic routing mechanism can be implemented in the network controller 200 using the Select type of the Group Table in the OpenFlow architecture, and it is called Stochastic Switching. The method is divided into two steps: (1) Provide the probability value of packet allocation for each output port. (2) Use an exchange to achieve random exchange. Step (2) is: calculating the routing path or assuming that the routing path is known, implement as far as possible to aggregate addresses of the same class into the same flow table entry (Flow Entry) in the data flow table (Flow Table). Because these data flows will have the same output port and output probability value, the network controller 200 will group the same group of data flows into the same group. The OpenFlow specification introduces the concept of "weight" for each bucket in the action bucket in the Group Table. The network controller 200 provides a weight value of each bucket (Bucket Weight) and a probability of specifying an output port. Each bucket uses the out_to_port action to forward packets to the output 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 The Select method of the Group Table in the aforementioned OpenFlow selects one of the buckets according to the weight value of the buckets to perform actions related to these buckets. Therefore, the implementation of the Select method may cause confusion first. number, and then select a corresponding bucket (Bucket) according to the random value, the algorithm is shown in the virtual code of Table 1, for example. Table 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 位址等等。In one embodiment, it may be implemented using an Open vSwitch (OVS) that supports the OpenFlow specification. Open vSwitch (OVS) is an open source virtual switch based on software implementation, which can be integrated with many virtualization platforms and provides the capability of virtual switch Internet. Each OpenFlow switch has its own one or more OpenFlow data flow tables (Flow Table), and each data flow table will have multiple OpenFlow routing rules for processing packets, that is, data flow table entries (Flow Entry), each An OpenFlow routing rule is composed of fields such as matching fields, execution actions, and priorities. The match field contains the source port of the packet and the header of the packet, such as source IP address, destination port number, source MAC address, and so on.

在資料流表中包含多筆所謂的資料流表項目(Flow Entry)資料,每一筆資料流表項目(Flow Entry)包含符合條件的內容、計數器以及針對符合的網路封包所要下達的指令(Instruction)等等,每條資料流表項目(Flow Entry)對應網路中傳輸的一條資料流(Flow)。透過OpenFlow協定,OpenFlow控制器(Controller)(如圖1或圖2中的網路控制器200)可以新增、修改以及刪除這些資料流表項目(Flow Entry)的內容。OpenFlow控制器(Controller)是SDN的中樞,網管人員或開發者可藉由OpenFlow協定所提供的開放原始碼與OVS交換器硬體溝通,設定資料流表並定義封包的傳送路徑(或路由路徑)。The data flow table contains multiple so-called data flow table items (Flow Entry) data, each data flow table item (Flow Entry) includes the content that meets the conditions, the counter and the instruction to be issued for the matching network packet (Instruction). ) and so on, each data flow table entry (Flow Entry) corresponds to a data flow (Flow) transmitted in the network. Through the OpenFlow protocol, an OpenFlow controller (Controller) (such as the network controller 200 in FIG. 1 or FIG. 2 ) can add, modify and delete the contents of these data flow entries (Flow Entry). The OpenFlow Controller (Controller) is the backbone of SDN. Network administrators or developers can communicate with the OVS switch hardware through the open source code provided by the OpenFlow protocol, set the data flow table and define the transmission path (or routing path) of the packet. .

此外,群組表(Group Table)讓每個資料流可以被指派到對應的群組中,並可以針對屬於同一個群組識別字中的所有資料封包執行相同的動作。群組表(Group Table)有四種類型:All、Select、Indirect 以及 Failover,其中Select 功能依據分配給桶(Bucket)的權重來選擇多個桶中的一者,並執行該桶相關的運作,因而,封包傳遞時可以選擇封包轉送出的埠(Port),同時配合桶的權重,讓一個資料流可以以隨機方式同時進行多路徑傳遞。In addition, the Group Table allows each data stream to be assigned to a corresponding group, and can perform the same action for all data packets belonging to the same group identifier. There are four types of Group Table: All, Select, Indirect and Failover. The Select function selects one of multiple buckets according to the weight assigned to the bucket, and performs operations related to the bucket. Therefore, when the packet is transmitted, the port from which the packet is forwarded can be selected, and at the same time, the weight of the bucket can be matched, so that a data stream can be transmitted in multiple paths at the same time in a random manner.

在一實施例中,引用圖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 In one embodiment, referring to the network architecture of FIG. 1 , the multi-path transmission data stream is forwarded by the sender 11 and the receiver 14 through the switch 210 , the switch 211_1 , and the switch 220 of the network path P1. The receiving end 14, wherein the probability of the switch 210 being forwarded to the switch 211_1 is 60%, and its link bandwidth is 30 Mbps; At the receiving end 14, the probability that the switch 210 transfers to the switch 211_2 is 40%, and its link bandwidth is 30 Mbps. For example, in the script example shown in Table 2 below, the above-mentioned probability of multi-path transmission and individual routing can be set by using the programming interface ovs-ofctl of the virtual switch of OVS. In the example in Table 2, a switch (eg switch 210) is configured using the programming interface ovs-ofctl and using parameters such as add-group (adding a group), group_id (group identifier), etc. , these parameters are defined by the ovs-ofctl programming interface of OVS. For details, please refer to the usage documents provided by the official website of the ovs-ofctl programming interface of OVS (such as the website http://www.openvswitch.org/support/dist-docs /ovs-ofctl.8.txt), which will not be repeated here. In Table 2, the parameter settings of "bucket=weight:60, output=2" can be used to set the probability that the switch 210 will forward the packet from the switch 210 to the switch 211_1 to 60%, "bucket=weight:40, The parameter setting of output=3" can be used to set the probability of the switch 210 to forward the packet from the switch 210 to the switch 211_2 to 40%. Table 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的網路鏈路狀態,從而確定路徑權重或進一步作其他對交換器的設定。FIG. 4 is a schematic flow chart of one embodiment of the method of FIG. 3 . Compared with FIG. 3, the embodiment shown in FIG. 4 further includes a block S100. As shown in FIG. 4, the block S100 represents obtaining the network link status of the network paths from the SDN to be based on the network link The state determines at least the path weight in the first data flow control information. The embodiment of FIG. 4 shows that before the blocks S110 and S120 are performed, the network controller 200 can be used to detect the network link status of the SDN, so as to determine the path weight or further make other settings for the switch.

於一實施例中,該網路鏈路狀態包括至少一個參數組,該參數組代表與該等網路路徑個別相關聯的一種對應的網路鏈路屬性,其中該網路鏈路屬性為包括頻寬、封包遺失率、延遲、抖動之多個屬性中的一種屬性。In one embodiment, the network link status includes at least one parameter group representing a corresponding network link attribute associated with the network paths individually, wherein the network link attribute includes One of the attributes of bandwidth, packet loss rate, delay, and jitter.

於一實施例中,該網路鏈路狀態之至少一個參數組包括一第一參數組及一第二參數組,該第一參數組代表與該等網路路徑個別相關聯的頻寬,該第二參數組代表與該等網路路徑個別相關聯的封包遺失率。In one embodiment, the at least one parameter set of the network link state includes a first parameter set and a second parameter set, the first parameter set represents the bandwidths individually associated with the network paths, the The second parameter set represents the packet loss rates individually associated with the network paths.

在一實施例,假設有三條網路路徑分別為 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可設定為:

Figure 02_image001
。(公式1) In one embodiment, it is assumed that there are three network paths respectively P1, P2, and P3, the packet loss rates are L 1 , L 2 , and L 3 (such as a first parameter group), and the available link bandwidths are B 1 and B 2 , B 3 (such as a second parameter group), the path weights of each path are W 1 , W 2 , W 3 , for example, based on the network architecture of Figure 1 or Figure 2, a single data stream is transmitted through P1, P2, and P3 (or network-encoded data stream as exemplified below). For example, the effective bandwidths of these paths would be E 1 =B 1 (1-L 1 ), E 2 =B 2 (1-L 2 ), E 3 =B 3 (1-L , respectively 3 ), to transmit this data stream (or the data stream encoded by the network), it can be considered according to the effective bandwidth, so the path weights W 1 , W 2 , and W 3 of these three paths can be set as:
Figure 02_image001
. (Formula 1)

在一些實施例中,對於任意Q個網路路徑(Q>1),亦可參照公式1如此類推地推廣,從而確定各網路路徑對應的路徑權重。在另一示例中,假設多條路徑的頻寬相同或相似,則可基於封包遺失率來確定每條網路路徑的路徑權重。就前一實施例來說,這三條網路路徑的路徑權重 W 1、W 2、W 3可設定為:

Figure 02_image003
(公式2) 其中q=1、2或3。在一些實施例中,對於任意Q個網路路徑(Q>1),亦可參照公式2如此類推地推廣,從而確定各個網路路徑對應的路徑權重。此外,在一些實施例中,關於路徑權重的同一假設多條路徑的頻寬相同或相似的,則可基於封包的延遲(或抖動)的資料,參照與上述公式2相似的方式來確定各個網路路徑對應的路徑權重。在一些實施例中,可參照上述公式1或2相似方式,基於該網路鏈路屬性中一種、兩種或更多的屬性的資料來確定各個網路路徑對應的路徑權重。 In some embodiments, for any Q network paths (Q>1), formula 1 can also be used to generalize and so on, so as to determine the path weight corresponding to each network path. In another example, the path weight for each network path may be determined based on the packet loss rate, assuming the multiple paths have the same or similar bandwidth. For the previous embodiment, the path weights W 1 , W 2 , and W 3 of the three network paths can be set as:
Figure 02_image003
(Equation 2) where q=1, 2, or 3. In some embodiments, for any Q network paths (Q>1), formula 2 can also be used to generalize and so on, so as to determine the path weight corresponding to each network path. In addition, in some embodiments, it is assumed that the bandwidths of multiple paths are the same or similar with respect to the path weight, and then each network can be determined based on the packet delay (or jitter) information in a manner similar to the above formula 2. The path weight corresponding to the road path. In some embodiments, the path weight corresponding to each network path can be determined based on the data of one, two or more attributes of the network link attributes in a similar manner with reference to the above formula 1 or 2.

圖5為圖3中方塊S110之一實施例的示意流程圖。如方塊S111所示,該網路控制器200被配置為使該第一控制訊息包含一第一網路功能之資料流控制資訊。如方塊S115所示,該網路控制器200被配置為使該第一控制訊息包含第一資料流控制資訊。FIG. 5 is a schematic flowchart of an embodiment of the block S110 in FIG. 3 . As shown in block S111, the network controller 200 is configured to cause the first control message to include data flow control information of a first network function. As shown in block S115, the network controller 200 is configured to make the first control message include first data flow control information.

於一實施例中,該網路控制器200更被配置為使該第一控制訊息進一步包含一第一網路功能之資料流控制資訊,該第一網路功能之資料流控制資訊用以通知該交換器210將該資料流轉發至該等網路路徑以外之至少一網路節點以執行該第一網路功能。如圖2所示,利用網路節點12執行該第一網路功能。例如,該第一網路功能包括網路編碼。In one embodiment, the network controller 200 is further configured to make the first control message further include data flow control information of a first network function, and the data flow control information of the first network function is used to notify The switch 210 forwards the data stream to at least one network node outside the network paths to perform the first network function. As shown in FIG. 2 , the first network function is performed using a network node 12 . For example, the first network function includes network coding.

於一實施例中,該第一網路功能之資料流控制資訊更用以通知該交換器210從該至少一網路節點接收與該第一網路功能對應的調整後封包後,從而使該交換器210基於該第一資料流控制資訊以依據與該等網路路徑相關聯的個別的路徑權重執行封包轉發。In one embodiment, the data flow control information of the first network function is further used to notify the switch 210 to receive an adjusted packet corresponding to the first network function from the at least one network node, thereby enabling the The switch 210 performs packet forwarding according to the individual path weights associated with the network paths based on the first data flow control information.

圖6為圖3中方塊S120之一實施例的示意流程圖。如方塊S121所示,該網路控制器200被配置為使該第二控制訊息包含一第二網路功能之資料流控制資訊。如方塊S125所示,該網路控制器200被配置為使該第二控制訊息包含第二資料流控制資訊。FIG. 6 is a schematic flowchart of an embodiment of the block S120 in FIG. 3 . As shown in block S121, the network controller 200 is configured to cause the second control message to include data flow control information of a second network function. As shown in block S125, the network controller 200 is configured to make the second control message include second data flow control information.

於本發明之一實施例中,該網路控制器200更被配置為使該第二控制訊息進一步包含一第二網路功能之資料流控制資訊,該第二網路功能之資料流控制資訊用以通知該交換器220在基於該第二資料流控制資訊以執行封包接收之後,將接收之封包轉發至該等網路路徑以外之至少另一網路節點以執行該第二網路功能。例如,在圖2中,利用網路節點執13執行該第二網路功能。例如,該第二網路功能包括網路解碼。In one embodiment of the present invention, the network controller 200 is further configured to make the second control message further include data flow control information of a second network function, the data flow control information of the second network function It is used to notify the switch 220 to forward the received packets to at least another network node outside the network paths to perform the second network function after receiving the packets based on the second data flow control information. For example, in FIG. 2 , the second network function is performed using the network node execution 13 . For example, the second network function includes network decoding.

於本發明之一實施例中,該第二網路功能之資料流控制資訊更用以通知該交換器220從該至少另一網路節點接收與該第二網路功能對應的調整後封包,從而使該交換器220基於該第二資料流控制資訊以執行封包轉發至該接收端14。In an embodiment of the present invention, the data flow control information of the second network function is further used to notify the switch 220 to receive an adjusted packet corresponding to the second network function from the at least another network node, Therefore, the switch 220 performs packet forwarding to the receiving end 14 based on the second data flow control information.

在一些實施例中,例如基於圖2之網路架構,透過網路中多個路徑 P1、P2~PN來傳送單一資料流,其中如前述示例利用多路徑隨機交換方式,並且利用網路節點12、13分別執行網路編碼、網路解碼之功能,從而達成提升傳輸頻寬與傳輸效率的目標。例如,在基於圖2中之網路架構,並利用隨機線性網路編碼(Random Linear Network Coding, RLNC)來實現網路編碼、網路解碼之功能。In some embodiments, for example, based on the network architecture of FIG. 2 , a single data stream is transmitted through multiple paths P1 , P2 ˜PN in the network, wherein a multi-path random switching method is used as in the foregoing example, and the network node 12 is used. , 13 respectively perform the functions of network encoding and network decoding, so as to achieve the goal of improving transmission bandwidth and transmission efficiency. For example, based on the network architecture in FIG. 2 , the functions of network coding and network decoding are realized by using random linear network coding (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,發送端不須將遺失的編碼符號重傳,接收端就可以還原出原始符號。相較於習知的單路徑傳輸方式,此發明所提的方法的實施例運用多路徑傳輸因此可以提升傳輸頻寬,且不須重傳遺失的封包因此可以提高傳輸效率。Regarding random linear network coding, for example, the switch 210 forwards the packet from the sender 11 to the network node 12, and the network node 12 implements an encoder (Encoder) 120 to perform the network coding operation, such as Use software programs, or a combination of software and hardware to achieve. Please refer to FIG. 7 , which illustrates an encoder implemented by the network node 12 to implement a network encoding method, such as random linear network encoding. As far as random linear network coding is concerned, it randomly selects k coefficients from the Finite Field to form a coding vector. coding. When the network node 12 receives the packets forwarded through the switch 210 and performs random linear network coding processing, the network node 12 divides a plurality of received packets (which can be regarded as a set of original packets) into several equal-sized packets. Block (Block), each block is subdivided into several symbols (Symbol). The network node 12 divides multiple packets into several blocks, for example, can be performed when multiple packets are received at one time, or can be performed when the number of received packets reaches a threshold value of one packet (eg 50, 100, 500 or 1000, etc.). Next, n encoding vectors are randomly generated to encode the symbols (Symbols) in the current block in a linear combination (Linear Combination) manner to generate n encoded symbols (Encoded Symbols), one of which is encoded by The product of a code vector and k symbols is summed up via an XOR operation. Assuming that the code rate (Code rate) is r, that is, after k symbols are coded by the network, n encoded symbols (Encoded Symbols) can be generated, then n=k*r. When the n encoded symbols are transmitted to the switch 220 through multi-path, the switch 220 forwards the n encoded symbols to the network node 13 for network decoding. The network node 13 implements a decoder (Decoder) 130 to perform the network decoding operation, for example, using a software program, or a combination of software and hardware. When receiving the coded symbols, the network node 13 will perform an XOR operation for decoding (Decoder). Assuming that the total number of coded symbols received by the network node 13 s>k, the network node 13 can convert the received coded symbols It is restored to the original symbol (which can be regarded as the aforementioned original packet set), which is then sent back to the switch 220 , and then forwarded to the receiving end 14 through the switch 220 . Although the encoded symbols (Encoded Symbols) may be lost during the transmission of multiple paths between the switch 210 and the switch 220, as long as the total number of received encoded symbols s>k, the sender does not need to The lost coded symbols are retransmitted, and the receiving end can restore the original symbols. Compared with the conventional single-path transmission method, the embodiment of the method proposed in the present invention utilizes multi-path transmission so that the transmission bandwidth can be increased, and the lost packets need not be retransmitted, thus the transmission efficiency can be improved.

此外,習知將封包經由多個不同的路徑傳送到接收端的方式,會產生接收到的封包失序(Out of order)的問題,但此發明所提的方法的實施例可克服此問題,如上述圖7實施例中,在交換器210至交換器220之間的多個路徑傳輸過程中,所傳輸的是編碼符號,而編碼符號並無序號,接收端只要收到任意足夠數量的編碼符號就可以還原出原始的符號。In addition, the conventional method of transmitting the packets to the receiving end through a plurality of different paths may cause the problem of out-of-order of the received packets, but the embodiment of the method proposed in the present invention can overcome this problem, as described above In the embodiment shown in FIG. 7 , during the transmission process of multiple paths between the switch 210 and the switch 220, what is transmitted is the coded symbol, and the coded symbol has no sequence number, and the receiving end only needs to receive any sufficient number of coded symbols. The original symbols can be restored.

此外,在此實施例中,網路編碼的編碼器、解碼器分別實現於網路節點12、13。由此,對該發送端和該接收端而言,該多路徑傳輸及網路編碼皆是透通的(transparent),發送端11及接收端14並不用額外增加運算資源及硬體資源消耗。此外,雖然上述採用隨機線性網路編碼作為示例來說明,然而,本發明的實現方式並不受限於上述示例。例如,可以參照上述實施例而將其他任何合適的網路編碼方式調改為適合實現於基於圖2的網路架構而成為本發明之實施例。In addition, in this embodiment, the encoder and decoder of network coding are implemented in the network nodes 12 and 13 respectively. Therefore, both the multi-path transmission and the network coding are transparent to the sender and the receiver, and the sender 11 and the receiver 14 do not need to consume additional computing resources and hardware resources. In addition, although the random linear network coding is used as an example for illustration, the implementation of the present invention is not limited to the above-mentioned example. For example, with reference to the above-mentioned embodiment, any other suitable network coding method can be adjusted to be suitable for implementation in the network architecture based on FIG. 2 to become an embodiment of the present invention.

在一些實施例中,前述網路編碼由一虛擬網路功能(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應為:

Figure 02_image005
。 (公式3) 依據公式1將路徑權重代入上述公式,可以得出:
Figure 02_image007
。 (公式4) 因為編碼符號總數量s大於未編碼的符號的數量k(即s>k),將此條件代入公式4,得出:
Figure 02_image008
。(公式5) 藉此,在此實施例中,網路控制器200可以藉由網路鏈路狀態(例如,頻寬與封包遺失率),得出一網路編碼的編碼率的下限值,如可以參考公式5來確定這個下限值,來控制該VNF以適當的編碼率來進行網路編碼。 In some embodiments, the aforementioned network coding is implemented by a virtual network function (VNF); in addition, a lower limit value of the coding rate of the network coding can be obtained according to the network link status , the network controller 200 can use this lower limit value to control the VNF to perform network encoding at an appropriate encoding rate, as shown below. For example, based on the network architecture of FIG. 2, for a single data stream, such as a video file or a video stream, that the sender 11 wants to transmit to the receiver 14, random switching and network coding are used for transmission, wherein the network node 12 is used to perform network encoding, and the network node 13 is used to perform corresponding network decoding. For other information about the switch, please refer to the relevant embodiments, so it will not be repeated. Assuming that the code rate of network coding is r, that is, if k symbols are subjected to network coding through the network node 12 to generate n coded symbols, then n=k×r, and the n coded symbols are transmitted through the network node 12. Switch 210 utilizes random switching and transmits through multiple network paths (eg, 3 network paths P1, P2, P3). After that, it is forwarded to the network node 13 through the switch 220 for network decoding, wherein the total number s of coded symbols received by the network node 13 should be:
Figure 02_image005
. (Formula 3) Substitute the path weights into the above formula according to formula 1, we can get:
Figure 02_image007
. (Equation 4) Since the total number s of encoded symbols is greater than the number k of unencoded symbols (ie, s>k), substitute this condition into Equation 4 to obtain:
Figure 02_image008
. (Formula 5) In this way, in this embodiment, the network controller 200 can obtain a lower limit value of the coding rate of network coding according to the network link status (eg, bandwidth and packet loss rate) , for example, the lower limit value can be determined with reference to formula 5, so as to control the VNF to perform network coding at an appropriate coding rate.

圖8為圖3之方法之另一實施例的示意流程圖。相較於圖3之實施例,圖8之實施例更包括方塊S130、S140。如方塊S130所示,該網路控制器200從該SDN取得該等網路路徑的一代表性的網路鏈路狀態,以基於該代表性的網路鏈路狀態確定一第三資料流控制資訊中之至少更新之路徑權重。如方塊S140所示,該網路控制器200向該交換器210發送該第三控制訊息,其中該第三控制訊息包括該第三資料流控制資訊,該第一資料流控制資訊用以通知該交換器210依據與該等網路路徑相關聯的個別的更新之路徑權重執行封包轉發。FIG. 8 is a schematic flowchart of another embodiment of the method of FIG. 3 . Compared with the embodiment of FIG. 3 , the embodiment of FIG. 8 further includes blocks S130 and S140 . As shown in block S130, the network controller 200 obtains a representative network link state of the network paths from the SDN to determine a third data flow control based on the representative network link state The least updated path weight in the information. As shown in block S140, the network controller 200 sends the third control message to the switch 210, wherein the third control message includes the third data flow control information, and the first data flow control information is used to notify the Switch 210 performs packet forwarding according to the individually updated path weights associated with the network paths.

於一實施例中,該代表性的網路鏈路狀態包括至少一個參數組,該參數組代表與該等網路路徑個別相關聯的一種對應的網路鏈路屬性,其中該網路鏈路屬性為包括頻寬、封包遺失率、延遲、抖動之多個屬性中的一種屬性。而關於路徑權重的確定,可以參考前述關相關實施例,或與公式1或2等相關的實施例來實現。In one embodiment, the representative network link state includes at least one parameter group representing a corresponding network link attribute individually associated with the network paths, wherein the network link The attribute is one of multiple attributes including bandwidth, packet loss rate, delay, and jitter. As for the determination of the path weight, reference may be made to the foregoing related embodiments, or the embodiments related to Formula 1 or 2, etc. to implement.

基於圖8所示的實施例,網路控制器200可被配置為持續地或動態地監控網路上的鏈路狀況。當發現鏈路發生問題或是鏈路效能變動,如路徑封包遺失率上升或路徑擁塞導致鏈路可用頻寬下降等情況時,對於基於圖1或圖2的網路架構而言,網路控制器200可被配置為基於公式1或2(或其推廣的公式)來重新計算路徑權重;或者,對於基於圖2的網路架構而言,網路控制器200可被配置為進一步檢核編碼率,如利用基於公式5的編碼率的下限值,來確定是否要改變網路編碼的編碼率。如此一來,將可更有效地提升上述提出的多路徑傳輸的傳輸效能或多路徑傳輸且利用網路編碼的傳輸效能。Based on the embodiment shown in FIG. 8, the network controller 200 may be configured to continuously or dynamically monitor link conditions on the network. When it is found that there is a problem with the link or the link performance changes, such as an increase in the packet loss rate of the path or a decrease in the available bandwidth of the link due to path congestion, for the network architecture based on Figure 1 or Figure 2, the network control The controller 200 may be configured to recalculate the path weights based on Equation 1 or 2 (or a generalized formula thereof); or, for the network architecture based on FIG. 2, the network controller 200 may be configured to further check the encoding rate, such as using the lower limit value of the encoding rate based on Equation 5, to determine whether to change the encoding rate of network coding. In this way, the transmission performance of the above-mentioned multi-path transmission or the transmission performance of the multi-path transmission using network coding can be more effectively improved.

在一些實施例,路徑權重可作動態調整。舉例而言,假設某個時間點,網路控制器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)之傳輸機制,能夠動態可適應性的有效率地進行。In some embodiments, the path weights may be dynamically adjusted. For example, it is assumed that at a certain point in time, the network controller 200 is configured to calculate the path weight based on Equation 1 or 2 (or its generalized formula), which is called the nominal weight, and the network controller 200 is configured as the nominal weight. 200 sends an instruction to the switch (eg, switch 210 ) through the OpenFlow specification to set the weight of the bucket selection in the group table, which is called the applied weight. In some dynamic network environments (such as wireless networks), changes in network traffic may be relatively large, so changes in link parameters (such as available bandwidth and packet loss rate) may be temporary. In some practical applications, in response to the above situation, the network controller 200 may perform some smoothing (Smoothing) processing on the calculated nominal weights to obtain practical application weights. For example, moving average is used for smoothing, which is calculated based on past values in a certain period of time. The calculated value can filter the noise of all values in the past period, which is helpful for Technical behavior to achieve numerical smoothing. The value calculated by this technique is an indicator that represents a trend following or staying behind. For example, in an example, if a moving average is to be calculated at a certain time point, a range of values (window) must be set. Suppose that a range of p intervals (such as p=20) is to be taken, then the calculated value range is The current parameters are added to the past p-1 parameter records, and then the p parameter records are averaged. The actual application weight value calculated in this way can more truly represent the change in the transmission performance of the current network link, whether good or bad. In another example, by smoothing the path weight or related processing technology, the network link performance data is further used to predict the future link performance trend, and blocks S130 and S140 in FIG. 8 are used to advance Allocating the transmission traffic of the path can avoid the congestion of the network link as soon as possible. In some embodiments, the network controller 200 may be configured to calculate the nominal weights at multiple time points through a moving average to obtain the actual application weights, and then issue an instruction to assign the actual application weights to the switches (eg, based on FIG. 1 or The switch 210 in FIG. 2 ) allows the switch to set the transmission probability of different transmission paths according to the actual application weight, so that the path weight can be dynamically adjusted. In this way, the multi-path transmission of a single data stream, such as the transmission mechanism of Multi-Path Random Switching (MPSS) or Random Switching Network Coding (SSNC), can be dynamically and adaptively performed efficiently.

圖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。9 is a schematic diagram of one embodiment of a network controller that may be used with SDN. As shown in FIG. 9 , the computing device 300 includes: a network interface unit 310 and at least one processing unit 320 . The computing device 300 can be used to implement the network controller 200 . The network interface unit 310 is configured to communicate with the SDN. The at least one processing unit 320, coupled to the network interface unit 310, is configured to perform multiple operations to enable a data stream from the sender 11 to arrive through multi-path transmission using multiple network paths The receiving end 14 makes the multi-path transmission transparent to the transmitting end 11 and the receiving end 14 . The operations include: sending a first control message to a switch 210 of the switches, wherein the switch 210 (eg, directly or indirectly from the sender 11 ) receives packets of the data stream, the first control message The message includes first data flow control information for instructing the switch 210 to perform packet forwarding according to the individual path weights associated with the network paths; and to one of the switches The switch 220 sends a second control message, wherein the switch 220 receives packets corresponding to the data stream from the network paths (eg, the corresponding packets destined for the receiving end 14 ), and the second control message includes the first Two data flow control information, the second data flow control information is used to notify the switch 220 to perform packet reception from the network paths and to perform packet forwarding to the receiving end 14 .

該運算裝置300更可包括一記憶單元330,該記憶單元330用以儲存控制邏輯331以及資料335。控制邏輯331例如是用以實現基於本揭露內容之至少一實施例或其組合(如基於圖3~圖8之任一或其組合之方法實施例)的程式碼或指令。資料335例如是在控制邏輯331執行時所需記錄或暫存的資料,如控制訊息或網路鏈路狀態等資料。The computing device 300 may further include a memory unit 330 for storing the control logic 331 and the data 335 . The control logic 331 is, for example, code or instructions for implementing at least one embodiment of the present disclosure or a combination thereof (eg, the method embodiment based on any one of FIGS. 3 to 8 or a combination thereof). The data 335 is, for example, data that needs to be recorded or temporarily stored when the control logic 331 is executed, such as data such as control messages or network link status.

在網路控制器200之一些實施例中,該網路控制器200可用以實現上述方法之多個實施例中之至少一者或於適合時的任意組合。In some embodiments of the network controller 200, the network controller 200 may be used to implement at least one of the various embodiments of the above methods or any combination as appropriate.

圖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規格所要利用的資料如資料流表等。Figure 10 is a schematic diagram of one embodiment of a switch that can be used with SDN. As shown in FIG. 10 , the switch 400 includes a packet forwarding unit 410 and a processing unit 420 . The switch 400 may be suitable for implementing a switch based on the network architecture in FIG. 1 or FIG. 2 . The packet forwarding unit 410 is connected to a plurality of ports 411_1 to 411_M (where M>1 is a positive integer). The switch 400 further includes a memory unit 430 for storing the control logic 431 and the data 435 . The control logic 431 is, for example, required for the corresponding switch 400 (such as the switch in FIG. 1 or FIG. 2 ) when implementing at least one embodiment (as shown in FIGS. 3 to 8 ) or a combination thereof based on the present disclosure. code or instructions. The data 435 is, for example, data that needs to be recorded or temporarily stored when the control logic 431 is executed, such as data flow control information or data to be used about the OpenFlow specification, such as a data flow table.

圖11為一串流影像利用習知單一路徑傳輸的效能及相同串流影像利用依據本發明之一實施例的多路徑傳輸的效能的示意比較圖。單一路徑傳輸於一般網路環境中,可運用找尋符合條件之最短路徑(Constrained Shortest Path, CSP)演算法來建立,其可建立一條符合某條件(如最低頻寬或延遲等)的傳輸路徑,但是所建立的路徑是單一路徑的路由,因此一旦鏈路發生故障、可用頻寬不足、鏈路擁塞等情形時,通過鏈路的封包遺失率將會大幅提升,甚至傳輸路徑會中斷。由實驗可以發現,當該鏈路發生可用頻寬不足的情形時,由於CSP機制是建立單一路徑的路由,鏈路並無法切換路徑,因此實驗中串流影像傳輸之品質非常差。在圖10中,此單一路徑傳輸對應的峰值訊號雜訊比(Peak Signal-to-Noise Ratio, PSNR)值之代表曲線C1來觀察,可以發現從開始傳輸到結束都處於非常低的情形,因為沒有調整的機制所以品質沒有上升的趨勢。此外,曲線C1對應的PSNR平均值如為12.54dB。FIG. 11 is a schematic comparison diagram of the performance of a stream image using a conventional single-path transmission and the performance of the same stream image using a multi-path transmission according to an embodiment of the present invention. Single-path transmission in a general network environment can be established by finding the shortest path (Constrained Shortest Path, CSP) algorithm that meets certain conditions, which can establish a transmission path that meets certain conditions (such as the lowest bandwidth or delay, etc.), However, the established path is a single-path route. Therefore, once the link fails, the available bandwidth is insufficient, or the link is congested, the packet loss rate through the link will be greatly increased, and even the transmission path will be interrupted. It can be found from the experiment that when the available bandwidth of the link is insufficient, because the CSP mechanism is to establish a route of a single path, the link cannot switch paths, so the quality of streaming video transmission in the experiment is very poor. In Figure 10, the peak signal-to-noise ratio (PSNR) value corresponding to the single path transmission is observed in the representative curve C1, and it can be found that the transmission is very low from the beginning to the end, because There is no adjustment mechanism so there is no upward trend in quality. In addition, the average value of PSNR corresponding to curve C1 is, for example, 12.54dB.

在依據隨機交換網路編碼傳輸機制之一實施例如基於圖2者,在軟體定義網路環境中,利用隨機交換機制進行傳輸達到單一資料流多重路徑的效果,在此實施例中,令網路控制器隨時監控並記錄網路環境之鏈路狀態,同時進行資料傳輸之鏈路權重計算,並結合移動平均之概念達到平滑化的權重調整,即便在多重路徑傳輸時遇到鏈路傳輸效能下降,也能及時調整鏈路權重,改善傳輸品質。如圖10所示,此單一資料流多路徑傳輸對應的峰值訊號雜訊比(PSNR)值之代表曲線C2,其中曲線C1對應的PSNR平均值如為31.6dB。如圖10所示,在第271個訊框以後出現頻寬不足及以及封包遺失率過高的情形時,由此串流影像傳輸實驗之比較結果來看,本實施例(由曲線C2來代表)能夠有效的面對網路環境中可用頻寬不足以及封包遺失率過高的情形,並且因可妥善調配網路流量。因此,當鏈路傳輸效能不佳時,能夠即時避開利用該網路路徑傳輸,除可避免因為單一傳輸路徑故障而造成資料傳遞中斷的問題,也可提高網路頻寬的使用率以及整體網路的吞吐量,上述實驗證明能夠達到較佳之傳輸效能及串流影像傳輸品質。According to an embodiment of the random switching network code transmission mechanism based on FIG. 2 , in the software-defined network environment, the random switching mechanism is used for transmission to achieve the effect of multiple paths of a single data stream. In this embodiment, the network is The controller monitors and records the link status of the network environment at any time, calculates the link weight of the data transmission at the same time, and combines the concept of moving average to achieve smooth weight adjustment, even if the link transmission performance drops during multi-path transmission , it can also adjust the link weight in time to improve the transmission quality. As shown in FIG. 10 , a representative curve C2 of the peak signal-to-noise ratio (PSNR) value corresponding to the multi-path transmission of the single data stream, wherein the average value of the PSNR corresponding to the curve C1 is, for example, 31.6dB. As shown in Figure 10, when the bandwidth is insufficient and the packet loss rate is too high after the 271st frame, according to the comparison results of the streaming video transmission experiment, this embodiment (represented by the curve C2 ) can effectively face the situation of insufficient available bandwidth and high packet loss rate in the network environment, and can properly allocate network traffic. Therefore, when the link transmission performance is poor, the use of the network path for transmission can be avoided immediately, which can not only avoid the problem of data transmission interruption due to the failure of a single transmission path, but also improve the utilization rate of network bandwidth and the overall The throughput of the network, the above experiments prove that it can achieve better transmission performance and streaming image transmission quality.

在一些實施方式中,提出一種電腦程式產品,其包括多個指令,且該等指令用以使電腦執行如上述之促進一資料流從一發送端11透過多路徑傳輸至一接收端14的方法的多個實施例中至少一者。在一些實施例中,該電腦程式產品可包含一種儲存媒體,如非暫態的儲存媒體,其儲存有運算裝置可讀取之指令(或程式碼),其中該指令被至少一運算裝置(如前述網路控制器200),執行時使得該至少一運算裝置實現前述方法的多個實施例中至少一者。此方法可以為包含基於圖3之方法的上述所有實施例中的一者或任意組合。舉例而言,程式碼例如是一個或多個程式或程式模組,如用於實現基於圖3的方塊S110至S120(或如基於圖3~圖8之至少一個實施例或其組合之方法),且可以用任何適合的順序而被執行。當運算裝置(如前述網路控制器200)執行此程式碼時,能導致運算裝置執行基於圖3之運作方法之實施例。這些儲存媒體之實施例比如但不受限於:光學式資訊儲存媒體,磁式資訊儲存媒體或記憶體,如記憶卡、靭體或ROM或RAM。舉例而言,運算裝置包括通訊單元、處理單元及儲存媒體,其中處理單元電性耦接至通訊單元及儲存媒體。處理單元用以透過通訊單元以無線或有線方式與通訊網路進行通訊,從而與其他運算裝置如終端裝置通訊。處理單元可包含一個或多個處理器,運算裝置亦可包括其他裝置如圖形處理器,以進行運算。在一些實施例中,運算裝置可以執行作業系統,並可進一步利用網路服務、腳本引擎、網路應用程式或網路應用程式介面(API)之伺服器等各種合適之網路、軟體技術中之一種或多種方式而實現。In some embodiments, a computer program product is provided that includes a plurality of instructions, and the instructions are used to cause a computer to execute the above-described method for facilitating multipath transmission of a data stream from a sender 11 to a receiver 14 at least one of multiple embodiments of . In some embodiments, the computer program product may include a storage medium, such as a non-transitory storage medium, storing instructions (or code) readable by a computing device, wherein the instructions are stored by at least one computing device (eg, The aforementioned network controller 200), when executed, enables the at least one computing device to implement at least one of the multiple embodiments of the aforementioned method. This method may be one or any combination of all the above-described embodiments including the method based on FIG. 3 . For example, the program code is, for example, one or more programs or program modules, such as for implementing blocks S110 to S120 based on FIG. 3 (or a method based on at least one embodiment of FIG. 3 to FIG. 8 or a combination thereof) , and can be executed in any suitable order. When a computing device (such as the aforementioned network controller 200 ) executes the code, it can cause the computing device to execute an embodiment of the operating method based on FIG. 3 . Examples of these storage media include, but are not limited to, optical information storage media, magnetic information storage media or memories such as memory cards, firmware or ROM or RAM. For example, the computing device includes a communication unit, a processing unit and a storage medium, wherein the processing unit is electrically coupled to the communication unit and the storage medium. The processing unit is used to communicate with the communication network in a wireless or wired manner through the communication unit, so as to communicate with other computing devices such as terminal devices. The processing unit may include one or more processors, and the computing device may also include other devices such as a graphics processor for performing operations. In some embodiments, the computing device may execute an operating system, and may further utilize various suitable network and software technologies such as web services, scripting engines, web applications, or web application programming interface (API) servers. achieved in one or more ways.

如上多個實施例,係基於SDN,且應用網路通訊協定標準模型中第二層的多路徑傳輸(例如,在網路中傳送單一資料流的封包時,中間轉送(Forward)的節點可以透過不同的傳輸介面來轉送不同的封包),故該多路徑傳輸對該發送端和該接收端而言是透通的(transparent)。藉此網路透通性,發送端11欲傳送封包至接收端14時,發送端11所發送的封包中的發送端地址及接送端地址(如IP號碼、MAC、埠)並不需作改變,從而實現單一資料流多路徑傳輸。相較之下,習知MPTCP是多資料流(或稱子資料流)分別進行固定的不同路徑傳輸,在發送端必須另外配置為支援至少兩張網路卡使多個子資料流分別具有各自不同的發送端地址(如IP號碼、MAC至少一者不同)且發送端及接收端亦要安裝特定軟體或修改原有應用程式才能實現。故本發明之實施例能促進單一資料流多路徑傳輸的實現,對於發送端及接收端而言,具有實際應用上的便利性之益處。如此一來,藉由實現該技術於SDN中,促進多路徑隨機交換之傳輸機制或隨機交換網路編碼之傳輸機制之實現,從而有助於使單一資料流透過多路徑傳輸而提升傳輸效能。The above-mentioned embodiments are based on SDN and apply the multi-path transmission of the second layer in the standard model of network communication protocol (for example, when transmitting packets of a single data stream in the network, the intermediate forwarding (Forward) node can pass through different transmission interfaces to forward different packets), so the multi-path transmission is transparent to the sender and the receiver. With this network transparency, when the sender 11 wants to send the packet to the receiver 14, the sender address and the sender address (such as IP number, MAC, port) in the packet sent by the sender 11 do not need to be changed. So as to realize the multi-path transmission of a single data stream. In contrast, in the conventional MPTCP, multiple data streams (or sub-data streams) are transmitted on different fixed paths, and the sender must be additionally configured to support at least two network cards so that the multiple sub-data streams have their own different paths. The sender address (such as IP number, MAC at least one is different) and the sender and receiver also need to install specific software or modify the original application to achieve. Therefore, the embodiments of the present invention can promote the realization of multi-path transmission of a single data stream, and have the benefit of convenience in practical application for the sender and the receiver. In this way, by implementing this technology in SDN, it promotes the realization of the transmission mechanism of multi-path random switching or the transmission mechanism of random switching network coding, thereby helping to improve transmission performance through multi-path transmission of a single data stream.

本發明在上文中已以較佳實施例揭露,然熟習本項技術者應理解的是,該實施例僅用於描繪本發明,而不應解讀為限制本發明之範圍。應注意的是,舉凡與該等實施例等效之變化與置換,均應設為涵蓋於本發明之範疇內。因此,本發明之保護範圍當以申請專利範圍所界定者為準。The present invention has been disclosed above with preferred embodiments, but those skilled in the art should understand that the embodiments are only used to describe the present invention, and should not be construed as limiting the scope of the present invention. It should be noted that all the equivalent changes and substitutions to these embodiments should be considered to be included within the scope of the present invention. Therefore, the protection scope of the present invention should be defined by the scope of the patent application.

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:曲線11: sender 12, 13: Network Nodes 14: Receiver 20: Software Defined Networking 120: Encoder 130: Decoder 200: Network Controller 210, 211_1, 211_2~211_N, 220: Switch 300: Computing Device 310: Network Interface Unit 320: Processing Unit 330: Memory Unit 331: Control Logic 335: Information 400: Exchanger 410: Packet forwarding unit 411_1~411_M: port 420: Processing Unit 430: Memory Unit 431: Control Logic 435: Information P1, P2~PN: network path S100, S110, S120: Blocks S111, S115, S121, S125: Blocks S140: Square C1, C2: Curve

圖1為基於軟體定義網路以促進一資料流從發送端透過多路徑傳輸至接收端之網路架構之一種實施方式的示意圖。 圖2為基於軟體定義網路以促進一資料流從發送端透過多路徑傳輸至接收端之網路架構之另一種實施方式的示意圖。 圖3為用以促進一資料流從發送端透過多路徑傳輸至接收端之方法之一種實施方式的示意流程圖。 圖4為圖3之方法之一實施例的示意流程圖。 圖5為圖3中方塊S110之一實施例的示意流程圖。 圖6為圖3中方塊S120之一實施例的示意流程圖。 圖7為基於圖3之方法以實現網路編碼之一實施例的示意圖。 圖8為圖3之方法之另一實施例的示意流程圖。 圖9為可使用於SDN的網路控制器之一實施例的示意圖。 圖10為可使用於SDN的交換器之一實施例的示意圖。 圖11為一串流影像利用習知單一路徑傳輸的效能及相同串流影像利用依據本發明之一實施例的多路徑傳輸的效能的示意比較圖。 FIG. 1 is a schematic diagram of one embodiment of a network architecture based on software-defined networking to facilitate multi-path transmission of a data stream from a sender to a receiver. FIG. 2 is a schematic diagram of another embodiment of a network architecture based on software-defined networking to facilitate multi-path transmission of a data stream from a sender to a receiver. 3 is a schematic flow diagram of one embodiment of a method for facilitating multipath transmission of a data stream from a sender to a receiver. FIG. 4 is a schematic flow chart of one embodiment of the method of FIG. 3 . FIG. 5 is a schematic flowchart of an embodiment of the block S110 in FIG. 3 . FIG. 6 is a schematic flowchart of an embodiment of the block S120 in FIG. 3 . FIG. 7 is a schematic diagram of an embodiment of implementing network coding based on the method of FIG. 3 . FIG. 8 is a schematic flowchart of another embodiment of the method of FIG. 3 . 9 is a schematic diagram of one embodiment of a network controller that may be used with SDN. Figure 10 is a schematic diagram of one embodiment of a switch that can be used with SDN. FIG. 11 is a schematic comparison diagram of the performance of a stream image using a conventional single-path transmission and the performance of the same stream image using a multi-path transmission according to an embodiment of the present invention.

11:發送端 11: sender

14:接收端 14: Receiver

20:軟體定義網路 20: Software Defined Networking

200:網路控制器 200: Network Controller

210、211_1、211_2、220:交換器 210, 211_1, 211_2, 220: Switches

P1、P2:網路路徑 P1, P2: network path

Claims (20)

一種用以促進一資料流從一發送端透過多路徑傳輸至一接收端的方法,用於一軟體定義網路(Software-defined network, SDN)的網路控制器,該軟體定義網路包括多個交換器,該等交換器用以執行從該發送端至該接收端的封包轉發,該方法包括: 於該網路控制器執行多個運作以使源自該發送端的該資料流透過使用多個網路路徑的多路徑傳輸而至該接收端,使得該多路徑傳輸對該發送端和該接收端而言是透通的(transparent),該等運作包括: 向該等交換器中的一第一交換器發送一第一控制訊息,其中該第一交換器接收該資料流的封包,該第一控制訊息包括第一資料流控制資訊,該第一資料流控制資訊用以通知該第一交換器依據與該等網路路徑相關聯的個別的路徑權重執行封包轉發;以及 向該等交換器中的一第二交換器發送一第二控制訊息,其中該第二交換器是從該等網路路徑接收與該資料流對應的封包,該第二控制訊息包括第二資料流控制資訊,該第二資料流控制資訊用以通知該第二交換器從該等網路路徑執行封包接收並執行封包轉發至該接收端。 A method for facilitating multipath transmission of a data stream from a sender to a receiver, for a network controller of a software-defined network (SDN), the software-defined network comprising a plurality of switches, the switches are configured to perform packet forwarding from the sender to the receiver, the method comprising: Performing operations at the network controller to cause the data stream from the sender to the receiver through multi-path transmission using multiple network paths such that the multi-path transmission to the sender and the receiver It is transparent, such operations include: sending a first control message to a first switch of the switches, wherein the first switch receives packets of the data flow, the first control message includes first data flow control information, the first data flow control information for instructing the first switch to perform packet forwarding according to the individual path weights associated with the network paths; and sending a second control message to a second one of the switches, wherein the second switch receives packets corresponding to the data stream from the network paths, the second control message includes second data Flow control information, the second data flow control information is used to notify the second switch to perform packet reception from the network paths and to perform packet forwarding to the receiving end. 如請求項1所述之方法,其中該等運作更包括從該SDN取得該等網路路徑的網路鏈路狀態,以基於該網路鏈路狀態確定該第一資料流控制資訊中之至少路徑權重。The method of claim 1, wherein the operations further comprise obtaining network link states of the network paths from the SDN to determine at least one of the first data flow control information based on the network link states path weight. 如請求項2所述之方法,其中該網路鏈路狀態包括至少一個參數組,該參數組代表與該等網路路徑個別相關聯的一種對應的網路鏈路屬性,其中該網路鏈路屬性為包括頻寬、封包遺失率、延遲、抖動之多個屬性中的一種屬性。The method of claim 2, wherein the network link status includes at least one parameter set representing a corresponding network link attribute individually associated with the network paths, wherein the network link The path attribute is one of multiple attributes including bandwidth, packet loss rate, delay, and jitter. 如請求項3所述之方法,其中該網路鏈路狀態之至少一個參數組包括一第一參數組及一第二參數組,該第一參數組代表與該等網路路徑個別相關聯的頻寬,該第二參數組代表與該等網路路徑個別相關聯的封包遺失率。The method of claim 3, wherein the at least one parameter set of the network link status includes a first parameter set and a second parameter set, the first parameter set representing the parameters associated with the network paths individually Bandwidth, the second parameter set represents the packet loss rate individually associated with the network paths. 如請求項1所述之方法,其中該網路控制器使該第一控制訊息進一步包含一第一網路功能之資料流控制資訊,該第一網路功能之資料流控制資訊用以通知該第一交換器將該資料流轉發至該等網路路徑以外之至少一網路節點以執行該第一網路功能。The method of claim 1, wherein the network controller causes the first control message to further include data flow control information of a first network function, and the data flow control information of the first network function is used to notify the The first switch forwards the data flow to at least one network node outside the network paths to perform the first network function. 如請求項5所述之方法,其中該第一網路功能之資料流控制資訊更用以通知該第一交換器從該至少一網路節點接收與該第一網路功能對應的調整後封包後,從而使該第一交換器基於該第一資料流控制資訊以依據與該等網路路徑相關聯的個別的路徑權重執行封包轉發。The method of claim 5, wherein the data flow control information of the first network function is further used to notify the first switch to receive an adjusted packet corresponding to the first network function from the at least one network node Then, the first switch is made to perform packet forwarding according to the individual path weights associated with the network paths based on the first data flow control information. 如請求項6所述之方法,其中該第一網路功能包括網路編碼。The method of claim 6, wherein the first network function includes network coding. 如請求項1所述之方法,其中該網路控制器使該第二控制訊息進一步包含一第二網路功能之資料流控制資訊,該第二網路功能之資料流控制資訊用以通知該第二交換器在基於該第二資料流控制資訊以執行封包接收之後,將接收之封包轉發至該等網路路徑以外之至少另一網路節點以執行該第二網路功能。The method of claim 1, wherein the network controller causes the second control message to further include data flow control information of a second network function, and the data flow control information of the second network function is used to notify the second network function After performing packet reception based on the second data flow control information, the second switch forwards the received packet to at least another network node outside the network paths to perform the second network function. 如請求項8所述之方法,其中該第二網路功能之資料流控制資訊更用以通知該第二交換器從該至少另一網路節點接收與該第二網路功能對應的調整後封包,從而使該第二交換器基於該第二資料流控制資訊以執行封包轉發至該接收端。The method of claim 8, wherein the data flow control information of the second network function is further used to notify the second switch to receive the adjusted data corresponding to the second network function from the at least another network node packet, so that the second switch performs packet forwarding to the receiver based on the second data flow control information. 如請求項9所述之方法,其中該第二網路功能包括網路解碼。The method of claim 9, wherein the second network function includes network decoding. 如請求項1所述之方法,其中該等運作更包括: 從該SDN取得該等網路路徑的一代表性的網路鏈路狀態,以基於該代表性的網路鏈路狀態確定一第三資料流控制資訊中之至少更新之路徑權重;以及 向該第一交換器發送該第三控制訊息,其中該第三控制訊息包括該第三資料流控制資訊,該第一資料流控制資訊用以通知該第一交換器依據與該等網路路徑相關聯的個別的更新之路徑權重執行封包轉發。 The method of claim 1, wherein the operations further comprise: obtain a representative network link state of the network paths from the SDN to determine at least updated path weights in a third data flow control information based on the representative network link state; and sending the third control message to the first switch, wherein the third control message includes the third data flow control information, the first data flow control information is used to notify the first switch according to the network paths The associated individual updated path weights perform packet forwarding. 如請求項11所述之方法,其中該代表性的網路鏈路狀態包括至少一個參數組,該參數組代表與該等網路路徑個別相關聯的一種對應的網路鏈路屬性,其中該網路鏈路屬性為包括頻寬、封包遺失率、延遲、抖動之多個屬性中的一種屬性。The method of claim 11, wherein the representative network link state includes at least one parameter set representing a corresponding network link attribute individually associated with the network paths, wherein the The network link attribute is one of multiple attributes including bandwidth, packet loss rate, delay, and jitter. 一種電腦程式產品,其包括多個指令,且該等指令用以使至少一運算裝置執行如請求項1至12中任一項所述之促進一資料流從一發送端透過多路徑傳輸至一接收端的方法。A computer program product comprising a plurality of instructions for causing at least one computing device to perform as described in any one of claims 1 to 12 to facilitate multi-path transmission of a data stream from a sender to a method on the receiving end. 一種網路控制器,用於一軟體定義網路(Software-defined network, SDN),該軟體定義網路包括多個交換器,該等交換器用以執行從一發送端至一接收端的封包轉發,該網路控制器包括: 一網路介面單元,被配置為與該SDN進行通信;以及 至少一個處理單元,耦接至該網路介面單元,並被配置為執行多個運作以使源自該發送端的一資料流透過使用多個網路路徑的多路徑傳輸而至該接收端,使得該多路徑傳輸對該發送端和該接收端而言是透通的(transparent),該等運作包括: 向該等交換器中的一第一交換器發送一第一控制訊息,其中該第一交換器接收該資料流的封包,該第一控制訊息包括第一資料流控制資訊,該第一資料流控制資訊用以通知該第一交換器依據與該等網路路徑相關聯的個別的路徑權重執行封包轉發;以及 向該等交換器中的一第二交換器發送一第二控制訊息,其中該第二交換器是從該等網路路徑接收與該資料流對應的封包,該第二控制訊息包括第二資料流控制資訊,該第二資料流控制資訊用以通知該第二交換器從該等網路路徑執行封包接收並執行封包轉發至該接收端。 A network controller is used for a software-defined network (SDN), the software-defined network includes a plurality of switches, and the switches are used to perform packet forwarding from a sender to a receiver, The network controller includes: a network interface unit configured to communicate with the SDN; and at least one processing unit, coupled to the network interface unit, and configured to perform a plurality of operations to cause a data stream from the sending end to be transmitted to the receiving end through multi-path transmission using a plurality of network paths, such that The multipath transmission is transparent to the sender and the receiver, and the operations include: sending a first control message to a first switch of the switches, wherein the first switch receives packets of the data flow, the first control message includes first data flow control information, the first data flow control information for instructing the first switch to perform packet forwarding according to the individual path weights associated with the network paths; and sending a second control message to a second one of the switches, wherein the second switch receives packets corresponding to the data stream from the network paths, the second control message includes second data Flow control information, the second data flow control information is used to notify the second switch to perform packet reception from the network paths and to perform packet forwarding to the receiving end. 如請求項14所述之網路控制器,其中該等運作更包括從該SDN取得該等網路路徑的網路鏈路狀態,以基於該網路鏈路狀態確定該第一資料流控制資訊中之至少路徑權重。The network controller of claim 14, wherein the operations further include obtaining network link statuses of the network paths from the SDN to determine the first data flow control information based on the network link statuses of at least the path weight. 如請求項15所述之網路控制器,其中該網路鏈路狀態包括至少一個參數組,該參數組代表與該等網路路徑個別相關聯的一種對應的網路鏈路屬性,其中該網路鏈路屬性為包括頻寬、封包遺失率、延遲、抖動之多個屬性中的一種屬性。The network controller of claim 15, wherein the network link state includes at least one parameter group representing a corresponding network link attribute individually associated with the network paths, wherein the network link state The network link attribute is one of multiple attributes including bandwidth, packet loss rate, delay, and jitter. 如請求項14所述之網路控制器,其中該網路控制器更被配置為使該第一控制訊息進一步包含一第一網路功能之資料流控制資訊,該第一網路功能之資料流控制資訊用以通知該第一交換器將該資料流轉發至該等網路路徑以外之至少一網路節點以執行該第一網路功能,其中該第一網路功能包括網路編碼。The network controller of claim 14, wherein the network controller is further configured to cause the first control message to further include data flow control information of a first network function, the data of the first network function The flow control information is used to notify the first switch to forward the data flow to at least one network node outside the network paths to perform the first network function, wherein the first network function includes network coding. 如請求項17所述之網路控制器,其中該第一網路功能之資料流控制資訊更用以通知該第一交換器從該至少一網路節點接收與該第一網路功能對應的調整後封包後,從而使該第一交換器基於該第一資料流控制資訊以依據與該等網路路徑相關聯的個別的路徑權重執行封包轉發。The network controller of claim 17, wherein the data flow control information of the first network function is further used to notify the first switch to receive data corresponding to the first network function from the at least one network node After adjusting the packets, the first switch performs packet forwarding according to the individual path weights associated with the network paths based on the first data flow control information. 如請求項14所述之網路控制器,其中該網路控制器更被配置為使該第二控制訊息進一步包含一第二網路功能之資料流控制資訊,該第二網路功能之資料流控制資訊用以通知該第二交換器在基於該第二資料流控制資訊以執行封包接收之後,將接收之封包轉發至該等網路路徑以外之至少另一網路節點以執行該第二網路功能,其中該第二網路功能包括網路解碼。The network controller of claim 14, wherein the network controller is further configured to cause the second control message to further include data flow control information of a second network function, the data of the second network function The flow control information is used to notify the second switch to forward the received packets to at least another network node outside the network paths to execute the second data flow control information after performing packet reception based on the second data flow control information A network function, wherein the second network function includes network decoding. 如請求項19所述之網路控制器,其中該第二網路功能之資料流控制資訊更用以通知該第二交換器從該至少另一網路節點接收與該第二網路功能對應的調整後封包,從而使該第二交換器基於該第二資料流控制資訊以執行封包轉發至該接收端。The network controller of claim 19, wherein the data flow control information of the second network function is further used to notify the second switch to receive from the at least another network node corresponding to the second network function the adjusted packet, so that the second switch performs packet forwarding to the receiving end based on the second data flow control information.
TW109133078A 2020-09-24 2020-09-24 Method, network controller, and computer program product for facilitating multipath transmission of a data stream from a sender to a receiver TWI757887B (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW109133078A TWI757887B (en) 2020-09-24 2020-09-24 Method, network controller, and computer program product for facilitating multipath transmission of a data stream from a sender to a receiver
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 (en) 2020-09-24 2020-09-24 Method, network controller, and computer program product for facilitating multipath transmission of a data stream from a sender to a receiver

Publications (2)

Publication Number Publication Date
TWI757887B true TWI757887B (en) 2022-03-11
TW202214021A TW202214021A (en) 2022-04-01

Family

ID=80741032

Family Applications (1)

Application Number Title Priority Date Filing Date
TW109133078A TWI757887B (en) 2020-09-24 2020-09-24 Method, network controller, and computer program product for facilitating multipath transmission of a data stream from a sender to a receiver

Country Status (2)

Country Link
US (1) US11765071B2 (en)
TW (1) TWI757887B (en)

Citations (3)

* Cited by examiner, † Cited by third party
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 Access traffic steering, switching, and splitting management
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)

* Cited by examiner, † Cited by third party
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 (en) * 2016-03-25 2020-11-10 华为技术有限公司 Multi-stream transmission method and device in SDN network
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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 Access traffic steering, switching, and splitting management

Also Published As

Publication number Publication date
TW202214021A (en) 2022-04-01
US11765071B2 (en) 2023-09-19
US20220094627A1 (en) 2022-03-24

Similar Documents

Publication Publication Date Title
EP3278514B1 (en) Data transmission
US9088511B2 (en) Multi-hop error recovery
US9184983B2 (en) Cross-stratum optimization protocol
CN108234309B (en) Network data transmission method
CN106576073B (en) Method and system for transmitting data through aggregated connections
US8825898B2 (en) Technique for optimized routing of data streams on an IP backbone in a computer network
US20080137669A1 (en) Network of nodes
US10153964B2 (en) Network routing using dynamic virtual paths in an overlay network
WO2019179157A1 (en) Data traffic processing method and related network device
CN110943933A (en) Method, device and system for realizing data transmission
WO2021244450A1 (en) Communication method and apparatus
CN111224888A (en) Method for sending message and message forwarding equipment
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 (en) Method for controlling a congestion window for multi path TCP in heterogeneous network
CN107770061B (en) Method and equipment for forwarding message
CN115766605A (en) Network congestion control method, device and system
CN113612698A (en) Data packet sending method and device
CN114095448A (en) Method and equipment for processing congestion flow
TWI757887B (en) Method, network controller, and computer program product for facilitating multipath transmission of a data stream from a sender to a receiver
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
Jabbar et al. An Оverview of the Мultipath Тechnologies, their Importance and Types
Farrugia et al. Multi-stream tcp: leveraging the performance of a per-packet multipath routing algorithm when using tcp and sdn