EP3422646A1 - Method and device for multi-flow transmission in sdn network - Google Patents

Method and device for multi-flow transmission in sdn network Download PDF

Info

Publication number
EP3422646A1
EP3422646A1 EP17769259.7A EP17769259A EP3422646A1 EP 3422646 A1 EP3422646 A1 EP 3422646A1 EP 17769259 A EP17769259 A EP 17769259A EP 3422646 A1 EP3422646 A1 EP 3422646A1
Authority
EP
European Patent Office
Prior art keywords
stream
sub
path
transmission
available bandwidth
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
EP17769259.7A
Other languages
German (de)
French (fr)
Other versions
EP3422646B1 (en
EP3422646A4 (en
Inventor
Baolei XU
Haojun Zhou
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of EP3422646A1 publication Critical patent/EP3422646A1/en
Publication of EP3422646A4 publication Critical patent/EP3422646A4/en
Application granted granted Critical
Publication of EP3422646B1 publication Critical patent/EP3422646B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0882Utilisation of link capacity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/10Flow control between communication endpoints
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • H04L41/122Discovery or management of network topologies of virtualised topologies, e.g. software-defined networks [SDN] or network function virtualisation [NFV]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/036Updating the topology between route computation elements, e.g. between OpenFlow controllers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/121Shortest path evaluation by minimising delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/123Evaluation of link metrics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/125Shortest path evaluation based on throughput or bandwidth
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/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/64Routing or path finding of packets in data switching networks using an overlay routing layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/08Load balancing or load distribution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/34Signalling channels for network management communication
    • H04L41/342Signalling channels for network management communication between virtual entities, e.g. orchestrators, SDN or NFV entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/34Signalling channels for network management communication
    • H04L41/344Out-of-band transfers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/124Shortest path evaluation using a combination of metrics

Definitions

  • the present invention relates to the field of communications technologies, and in particular, to a multi-stream transmission method and device in an SDN network.
  • MPTCP Multipath TCP
  • the technology may be used to simultaneously establish multiple sub-streams (TCP links) between different network interfaces to simultaneously send data, so as to improve utilization of idle bandwidth on a network and an end-to-end transmission rate.
  • TCP links sub-streams
  • SDN software-defined networking
  • An SDN network includes a network device (for example, a router) and an SDN controller.
  • the SDN controller is configured to: generate a flow table (Flow Table) according to a user configuration or a dynamically running protocol, and send the flow table to the network device.
  • the network device is configured to: receive the flow table from the SDN controller, and match and process a packet according to the flow table.
  • Flow Table flow table
  • the SDN controller is overloaded. As a control center of an entire network, the SDN controller not only needs to plan a path for each sub-stream of a multi-stream connection, but also needs to plan a path for another type of connection. Consequently, the SDN controller may become a performance bottleneck of an SDN network.
  • the present invention provides a multi-stream transmission method and device in an SDN network, so as to resolve a prior-art technical problem that an SDN controller is overloaded in a multi-stream transmission scheme based on the SDN network.
  • a multi-stream transmission method in an SDN controller includes: obtaining, by a server, network status information of a network by using an SDN controller; determining, according to the network status information and a data sending rate requirement of a client, a quantity of sub-streams and a sub-stream transmission path that are required by a multi-stream connection, and allocating corresponding sub-stream identification information to each sub-stream; and sending, by the server, the determined sub-stream transmission path and the corresponding sub-stream identification information to the SDN controller.
  • the server completes multi-stream connection path planning according to the network status information, and the SDN controller only provides the network status information for the server without performing the multi-stream connection path planning, so that calculation load of the SDN controller is reduced.
  • the server performs the multi-stream connection path planning according to the network status information, so that the quantity of sub-streams can be more efficiently adjusted in a data transmission process to satisfy the sending rate requirement of the client.
  • the network status information includes a network topology and an available bandwidth and a delay that are of a link that is between adjacent network devices and that is in the network topology; and the determining, according to the network status information and a data sending rate requirement of a client, a quantity of sub-streams and a sub-stream transmission path that are required by a multi-stream connection is specifically: calculating, by the server, a cost of each link in the network topology according to the available bandwidth and the delay that are of the link in the network topology; determining a first transmission path according to the cost of each link in the network topology, adding the first transmission path to a temporary path library, and determining whether an available bandwidth of a transmission path in the temporary path library is greater than a transmission rate threshold, where the transmission rate threshold is determined by the sending rate requirement, and the transmission rate threshold is greater than the sending rate requirement; if the available bandwidth of the transmission path in the temporary path library is greater than the transmission rate threshold, ending a
  • the server obtains the network status information of the SDN network by using the SDN controller, and plans a transmission path based on the status information of the SDN network and the transmission rate threshold. Because a bandwidth estimation method is used to make decisions on a quantity of sub-streams and a sub-stream transmission path, there is no need to wait until all sub-streams are established one by one to make a decision on whether to add a new sub-stream, thereby avoiding wait time of multiple TCP slow start processes. Therefore, a decision process is faster.
  • a network status change is a dynamic process
  • an available bandwidth of a path may suddenly decrease during network congestion, and the available bandwidth of the path may increase when other data transmission on a path ends. Therefore, a quantity of sub-streams and a transmission path that are determined when multi-stream transmission is just established may no longer satisfy a requirement for the transmission rate threshold after a period of time. In this case, the quantity of sub-streams and the transmission path need to be dynamically adjusted.
  • the server periodically obtains an actual transmission rate of multi-stream transmission.
  • the server determines, if a requirement for the transmission rate threshold is satisfied, a quantity of sub-streams and a sub-stream path that need to be closed; and sends the closed sub-stream path and corresponding sub-stream identification information to the SDN controller; or when the actual transmission rate of multi-stream transmission is less than a sub-stream addition transmission rate threshold, the server determines, if a requirement for the transmission rate threshold is satisfied, a quantity of sub-streams and a sub-stream path that need to be added; allocates corresponding sub-stream identification information to each added sub-stream; and sends the added sub-stream path and the corresponding sub-stream identification information to the SDN controller.
  • An optimal transmission path may be planned for data transmission by calculating the cost of each link in the SDN network, thereby improving data transmission efficiency.
  • an embodiment of the present invention provides a multi-stream transmission server in an SDN network, and the server has a function of implementing a server behavior in the first aspect.
  • the function may be implemented by using hardware, or may be implemented by executing corresponding software by hardware.
  • the hardware or the software includes one or more modules corresponding to the function.
  • a structure of the server includes a processor and a memory.
  • the memory is configured to store a program that supports the server in performing the foregoing method.
  • the processor is configured to execute the program stored in the memory.
  • the server may further include a communications interface used for communication between the server and another device or a communications network.
  • an embodiment of the present invention provides a computer storage medium.
  • the computer storage medium is configured to store a computer software instruction used by the server, and includes a program designed for the server to execute the foregoing aspects.
  • the server completes multi-stream connection path planning according to the network status information, and the SDN controller only provides the network status information for the server without performing the multi-stream connection path planning, so that calculation load of the SDN controller is reduced.
  • the server performs the multi-stream connection path planning according to the network status information, so that the quantity of sub-streams can be more efficiently adjusted in a data transmission process to satisfy the sending rate requirement of the client.
  • the SDN controller is a core component in the SDN network, communicates with a network device in the SDN network by using a southbound interface, centrally controls data forwarding of the network device, and in addition, communicates with the server by using a northbound interface, and provides a network invoking capability for the server.
  • the SDN controller centrally monitors and collects statistics on information reported by the network device 106, so as to obtain network status information.
  • the server 104 obtains, by using the northbound interface of the SDN controller, the network status information obtained by the SDN controller; determines, according to the network status information and a data sending rate requirement of the client, a quantity of sub-streams and a sub-stream transmission path that are required by a multi-stream connection, and allocates corresponding sub-stream identification information to each sub-stream; and sends the determined sub-stream transmission path and the corresponding sub-stream identification information to the SDN controller 102 by using the northbound interface.
  • the SDN controller 102 delivers, by using a downlink channel of the southbound interface, a corresponding entry to a related network device 106 according to the determined sub-stream transmission path and the corresponding sub-stream identification information.
  • the server completes multi-stream connection path planning according to the network status information, and the SDN controller only provides the network status information for the server without performing the multi-stream connection path planning, so that calculation load of the SDN controller is reduced.
  • the server 104 performs the multi-stream connection path planning according to the network status information, so that the quantity of sub-streams can be more efficiently adjusted in a data transmission process to satisfy the sending rate requirement of the client.
  • the server in FIG. 1 may be implemented by using a computer device (or a system) in FIG. 2 .
  • FIG. 2 shows a schematic diagram of the computer device according to an embodiment of the present invention.
  • the computer device 200 includes at least one processor 201, a communications bus 202, a memory 203, and at least one communications interface 204.
  • the processor 201 may be a general purpose central processing unit (CPU), a microprocessor, an application-specific integrated circuit (application-specific integrated circuit, ASIC), or one or more integrated circuits configured to control program execution in the solution of the present invention.
  • CPU central processing unit
  • ASIC application-specific integrated circuit
  • the communications bus 202 may include a channel used to transfer information between the foregoing components.
  • the communications interface 204 is configured to use any transceiver apparatus to communicate with another device or a communications network, such as Ethernet, a radio access network (RAN), or a wireless local area network (WLAN).
  • RAN radio access network
  • WLAN wireless local area network
  • the memory 203 may be a read-only memory (ROM) or another type of static storage device that may store static information and instructions, or a random access memory (RAM) or another type of dynamic storage device that may store information and instructions; or may be an electrically erasable programmable read-only memory (EEPROM), a compact disc read-only memory (CD-ROM), another compact disc storage, an optical disc storage (including a compact disc, a laser disc, an optical disc, a digital versatile disc, a Blu-ray disc, and the like), a disk storage medium, another magnetic storage device, or any other medium that can be configured to carry or store expected program code in a form of an instruction or a data structure and that can be accessed by a computer.
  • ROM read-only memory
  • RAM random access memory
  • EEPROM electrically erasable programmable read-only memory
  • CD-ROM compact disc read-only memory
  • optical disc storage including a compact disc, a laser disc, an optical disc, a digital versatile disc, a Blu-ray disc,
  • the memory 203 is configured to store program code used to execute the solution of the present invention, and the processor 201 controls execution of the program code.
  • the processor 201 is configured to execute the program code stored in the memory 203.
  • the processor 201 may include one or more CPUs, such as a CPU 0 and a CPU 1 in FIG. 2 .
  • the computer device 200 may include multiple processors, such as the processor 201 and a processor 208 in FIG. 2 .
  • processors may be a single-core (single-CPU) processor or may be a multi-core (multi-CPU) processor.
  • the processor herein may be one or more devices, circuits, and/or processing cores configured to process data (for example, a computer program instruction).
  • the computer device 200 may further include an output device 205 and an input device 206.
  • the output device 205 communicates with the processor 201, and may display information in multiple manners.
  • the output device 205 may be a liquid crystal display (LCD), a light emitting diode (LED) display device, a cathode-ray tube (CRT) display device, a projector (projector), or the like.
  • the input device 206 communicates with the processor 201, and may receive user's input in multiple manners.
  • the input device 206 may be a mouse, a keyboard, a touchscreen device, a sensing device, or the like.
  • the computer device 200 may be a general purpose computer device or a special purpose computer device.
  • the computer device 200 may be a desktop computer, a portable computer, a network server, a personal digital assistant (PDA), a mobile phone, a tablet computer, a wireless terminal device, a communications device, an embedded device, or a device with a structure similar to that in FIG. 2 .
  • PDA personal digital assistant
  • a type of the computer device 200 is not limited in this embodiment of the present invention.
  • the server shown in FIG. 1 may be the device shown in FIG. 2 .
  • the memory of the server stores one or more software modules (such as an interaction module and a path planning module).
  • the server may implement the software modules by using the processor and the program code in the memory, so as to transmit data to the client by using multiple sub-streams.
  • FIG. 3 shows a multi-stream transmission method in an SDN network according to an embodiment of the present invention, and the method includes the following steps.
  • Step 301 A client sends a data transmission request message to a server, for example, requests to transmit a video slice 100 of a movie "Avatar".
  • path planning of the request message sent by the client to the server is completed by an SDN controller. This is the same as that in the prior art. Details are not described herein.
  • Step 302 The server receives the data transmission request message of the client, and requests network status information from an SDN controller.
  • the network status information includes a network topology and an available bandwidth and a delay that are of a link that is between adjacent network devices and that is in the network topology.
  • the server may query the network status information by using a northbound interface of a REST API type provided by the SDN controller. Assuming that an IP address of the SDN controller is 192.168.0.1, an interface used to obtain the network topology may be curl http:// 192.168.0.1:8080/wm/topology/links/json.
  • Step 303 The SDN controller returns the network status information to the server.
  • the SDN controller may return, to the server by using an uplink channel of the northbound interface, the network status information requested by the server. For example, when the server side sends a query command curl http:// 192.168.0.1:8080/wm/topology/links/json to the SDN controller by using the northbound interface of the REST API type, the SDN controller returns network topology information to the server.
  • Step 304 The server determines, according to the network status information and a data sending rate requirement of the client, a quantity of sub-streams and a sub-stream transmission path that are required by a multi-stream connection, and allocates corresponding sub-stream identification information to each sub-stream.
  • the server determines the data sending rate requirement according to the request message of the client. For example, the client expects to request the video slice 100 of "Avatar", and the server determines that a transmission rate requirement of video sending is 50 Mbps after receiving the request, so as to achieve a specific view effect.
  • the sub-stream identification information is determined by an IP address of the server, a port number of the server, an IP address of the client, and a port number of the client.
  • a server 192.168.1.1 transmits data to a port 80 of a client 192.168.1.2, and if the server determines, according to the network status information and the data sending rate requirement of the client, that three sub-streams are required for data transmission, and the server includes three idle ports 1234, 1235, and 1236, identifiers of the three sub-streams may be (192.168.1.1, 1234, 192.168.1.2, 80), (192.168.1.1, 1235, 192.168.1.2, 80), and (192.168.1.1, 1236, 192.168.1.2, 80).
  • the IP address and port information that are of the client may be determined by the server according to the data transmission request message received in step 302.
  • the determining, by the server according to the network status information and a data sending rate requirement of the client, a quantity of sub-streams and a sub-stream transmission path that are required by a multi-stream connection specifically includes: planning, by the server according to the network status information and the data sending rate requirement of the client, a transmission path from the server to the client for a packet sent by the server to the client, where there may be one or more transmission paths.
  • the server sends, to the SDN controller by using the northbound interface of the SDN controller, the sub-stream transmission path and the corresponding sub-stream identification information that are determined in step 304, so that the SDN controller configures the related network device.
  • the SDN controller configures all network devices on all sub-stream transmission paths, so that a packet planned to the sub-stream can be transmitted on the transmission path.
  • Step 306 The server plans to-be-sent data to different sub-streams, and sends the data to the client by using the sub-stream path specified in step 305; and the client receives the data transmitted by the server by using the different sub-streams, and re-integrates the received data.
  • Step 307 When data transmission is not completed, the server periodically determines whether a current transmission path and a current quantity of sub-streams are optimal, and makes a decision, such as a decision to increase a quantity of sub-streams, reduce a quantity of sub-streams, or modify a transmission path.
  • the server periodically obtains an actual transmission rate of multi-stream transmission; and when the actual transmission rate of multi-stream transmission is greater than a sub-stream deletion transmission rate threshold, the server determines, if a requirement for a transmission rate threshold is satisfied, a quantity of sub-streams and a sub-stream path that need to be closed; and sends the closed sub-stream path and corresponding sub-stream identification information to the SDN controller; or when the actual transmission rate of multi-stream transmission is less than a sub-stream addition transmission rate threshold, the server determines, if a requirement for the transmission rate threshold is satisfied, a quantity of sub-streams and a sub-stream path that need to be added; allocates corresponding sub-stream identification information to each added sub-stream; and sends the added sub-stream path and the corresponding sub-stream identification information to the SDN controller.
  • the actual transmission rate of multi-stream transmission is determined by a sum of transmission rates of all sub-streams.
  • the actual transmission rate of multi-stream transmission may be determined according to a sum of sending rates of all sub-stream sending buffers.
  • Step 308 The server sends, to the SDN controller, the decision such as increasing the quantity of sub-streams, reducing the quantity of sub-streams, or modifying the transmission path determined in step 307, so that the SDN controller configures the related network device.
  • the SDN controller deletes, in the network device 00:00:00:00:00:00:00:01 by using the northbound interface of the REST API type, routing information whose name is flow-mod-1 and that is configured in step 305, a related command is curl -X DELETE -d ' ⁇ "name":"flow-mod-1" ⁇ ' http:// 192.168.0.1:8080/wm/staticflowentrypusher/j son.
  • Step 309 The server plans to-be-sent data to different sub-streams, and sends the data to the client by using the sub-stream path specified in step 308; and the client receives the data transmitted by the server by using the different sub-streams, and re-integrates the received data.
  • the server determines three sub-stream transmission paths in step 304, and obtains two sub-stream transmission paths after deleting one sub-stream transmission path in step 307, the server continues to send the data to the client by using the two sub-stream transmission paths.
  • the server completes multi-stream connection path planning according to the network status information, and the SDN controller only provides the network status information for the server without performing the multi-stream connection path planning, so that calculation load of the SDN controller is reduced.
  • the server performs the multi-stream connection path planning according to the network status information, so that the quantity of sub-streams can be more efficiently adjusted in a data transmission process to satisfy the sending rate requirement of the client.
  • FIG. 4 is a flowchart of a method in which a server determines a quantity of sub-streams and a sub-stream transmission path that are required by a multi-stream connection according to an embodiment of the present invention.
  • FIG. 4 is a specific implementation of the embodiment shown in FIG. 3 , and mainly relates to specific implementations of steps 304 and 307 in the embodiment shown in FIG. 3 .
  • the method includes the following steps.
  • a server obtains network status information of an SDN network by using a northbound interface opened by an SDN controller.
  • the network status information includes a network topology and an available bandwidth and a delay that are of a link that is between adjacent network devices and that is in the network topology.
  • a method for obtaining the network status information by the server is the same as that of steps 302 and 303 in the embodiment shown in FIG. 3 . Details are not described herein again.
  • the server calculates a cost of each link in a network topology according to an available bandwidth and a delay that are of a link in the network topology.
  • a minimum cost path that is between a source address (that is, an IP address of the server) and a destination address (that is, an IP address of a client) and that is in the network topology by using a minimum cost path calculation algorithm, use the minimum cost path as a first transmission path, and add the first transmission path to a temporary path library.
  • the server may use a Dijkstra algorithm to calculate the minimum cost path.
  • a specific method for determining an available bandwidth of a transmission path is familiar to a person skilled in the art, and is not limited in this embodiment of the present invention.
  • step 405. Determine whether an available bandwidth of a transmission path in the temporary path library is greater than a transmission rate threshold; and if the available bandwidth of the transmission path in the temporary path library is greater than the transmission rate threshold, end a procedure, or if the available bandwidth of the transmission path in the temporary path library is not greater than the transmission rate threshold, proceed to step 407 and end a procedure.
  • the available bandwidth of the transmission path in the temporary path library is less than the transmission rate threshold, it indicates that the sending rate requirement cannot be satisfied by using a sub-stream corresponding to the transmission path in the temporary path library. In this case, a sub-stream needs to be added to ensure the transmission rate requirement. Because the sub-stream corresponding to the transmission path put into the temporary path library has occupied a corresponding link bandwidth in the network topology, it is necessary to consider impact of the transmission path in the temporary path library on an available bandwidth of a link in the network topology when another transmission path is further planned.
  • Steps 403, 404, 405, and 407 are repeatedly performed until the available bandwidth of the transmission path in the temporary path library is greater than or equal to the transmission rate threshold.
  • the server obtains the network status information of the SDN network by using the SDN controller, and plans a transmission path based on the status information of the SDN network and the transmission rate threshold. Because a bandwidth estimation method is used to make decisions on a quantity of sub-streams and a sub-stream transmission path, there is no need to wait until all sub-streams are established one by one to make a decision on whether to add a new sub-stream, thereby avoiding wait time of multiple TCP slow start processes. Therefore, a decision process is faster.
  • FIG. 5 is a flowchart of a method in which a server dynamically adjusts a quantity of sub-streams and a transmission path in a transmission process according to an embodiment of the present invention.
  • Step 501 A server periodically obtains a current actual transmission rate.
  • the actual transmission rate may be obtained by measuring a sum of sending rates of all sub-stream sending buffers.
  • Step 502 Determine whether the actual transmission rate of data sent by the server to a client is greater than a deletion threshold.
  • the deletion threshold is usually greater than a data transmission rate threshold, for example, may be 1.2 times a transmission rate, so as to avoid frequently adjusting a quantity of sub-streams and a transmission path.
  • Step 503 Determine, if a transmission rate threshold is satisfied, a transmission path and a quantity of sub-streams that can be deleted.
  • the actual transmission rate of the data sent by the server to the client is greater than the deletion threshold, it indicates that an available bandwidth of a current multi- stream transmission path is greater than an actual requirement of the client. For an operator, there is a waste of network resources. In this case, some sub-streams may be considered to be deleted.
  • the server estimates one by one whether a total transmission rate of a multi-stream connection satisfies a requirement for the transmission rate threshold when a current minimum transmission rate path is deleted; and if the total transmission rate of the multi-stream connection satisfies the requirement for the transmission rate threshold when the current minimum transmission rate path is deleted, the server adds the minimum transmission rate path to a to-be-deleted path library, and continues to estimate whether the total transmission rate of the multi-stream connection satisfies the requirement for the transmission rate threshold when a minimum transmission rate path in a remaining path is deleted, until the total transmission rate of the multi-stream connection does not satisfy the requirement for the transmission rate threshold when the minimum transmission rate path in the remaining path is deleted.
  • Step 504 Determine whether the actual transmission rate is less than an addition threshold.
  • the addition threshold is usually less than the data transmission rate threshold, for example, may be 0.8 times the transmission rate, so as to avoid frequently adjusting the quantity of sub-streams and the transmission path.
  • Step 505 Re-determine, if a transmission rate threshold is satisfied, a quantity of sub-streams and a transmission path that are required.
  • the server further determines whether a re-determined quantity of sub-streams is greater than a current quantity of sub-streams; and if the re-determined quantity of sub-streams is greater than the current quantity of sub-streams, it indicates that even if path planning is re-performed, the transmission rate threshold cannot be satisfied by using a fewer quantity of sub-streams. Therefore, a quantity of sub-streams and a transmission path can be first added on the basis of an existing path.
  • Step 506 The server sends a sub-stream adjustment decision to an SDN controller, so that the SDN controller configures a related network device.
  • a specific value relationship between the addition threshold and the transmission rate threshold and a specific value relationship between the deletion threshold and the transmission rate threshold may be determined by a service agreement (for example, SLA, Service Level Agreement) signed by a client user and an operator.
  • a service agreement for example, SLA, Service Level Agreement
  • the quantity of sub-streams and the transmission path are dynamically adjusted, and impact of a network status change on multi-stream transmission is considered, so as to effectively ensure user server quality while considering operator's interests.
  • An embodiment of the present invention further describes a schematic structural diagram of a server that belongs to a same invention concept as the foregoing method embodiments.
  • the server 600 is configured to execute functions of the servers in the foregoing method embodiments of FIG. 3 to FIG. 5 , and includes a obtaining unit 601, a path planning unit 603, and a sending unit 605.
  • the obtaining unit 601 is configured to obtain network status information of a network by using an SDN controller.
  • the path planning unit 603 is configured to determine, according to the network status information and a data sending rate requirement of a client, a quantity of sub-streams and a sub-stream transmission path that are required by a multi-stream connection, and allocate corresponding sub-stream identification information to each sub-stream.
  • the sending unit 605 is configured to send the determined sub-stream transmission path and the corresponding sub-stream identification information to the SDN controller.
  • the network status information includes a network topology and an available bandwidth and a delay that are of a link that is between adjacent network devices and that is in the network topology; and that the path planning unit 603 is configured to determine, according to the network status information and a data sending rate requirement of a client, a quantity of sub-streams and a sub-stream transmission path that are required by a multi-stream connection is specifically: calculating a cost of each link in the network topology according to the available bandwidth and the delay that are of the link in the network topology; determining a first transmission path according to the cost of each link in the network topology, and determining whether an available bandwidth of the first transmission path is greater than a transmission rate threshold, where the transmission rate threshold is determined by the sending rate requirement, and the transmission rate threshold is greater than the sending rate requirement; if the available bandwidth of the first transmission path is greater than the transmission rate threshold, ending a procedure, or if the available bandwidth of the first transmission path is not greater than the transmission rate threshold, adding the first transmission path to a temporary path library
  • the obtaining unit 601 is further configured to periodically obtain an actual transmission rate of multi-stream transmission; the path planning unit 603 is further configured to: when the actual transmission rate of multi-stream transmission is greater than a sub-stream deletion transmission rate threshold, determine, if a requirement for the transmission rate threshold is satisfied, a quantity of sub-streams and a sub-stream path that need to be closed; and the sending unit 605 is further configured to send the closed sub-stream path and corresponding sub-stream identification information to the SDN controller; or the path planning unit 603 is further configured to: when the actual transmission rate of multi-stream transmission is less than a sub-stream addition transmission rate threshold, determine, if a requirement for the transmission rate threshold is satisfied, a quantity of sub-streams and a sub-stream path that need to be added; and allocate corresponding sub-stream identification information to each added sub-stream; and the sending unit 605 is further configured to send the added sub-stream path and the corresponding sub-stream identification information
  • the sub-stream identification information is determined by an IP address of the server, a port number of the server, an IP address of the client, and/or a port number of the client.
  • the server 600 is presented in a form of a function unit.
  • the "unit" herein may be an application-specific integrated circuit (application-specific integrated circuit, ASIC), a circuit, a processor that executes one or more software or firmware programs and a memory, an integrated logic circuit, and/or another device that may provide the foregoing functions.
  • ASIC application-specific integrated circuit
  • the server 600 may be in a form shown in FIG. 2 .
  • the obtaining unit 601, the path planning unit 603, and the sending unit 605 may be implemented by using the processor and the memory in FIG. 2 .
  • the obtaining unit 601 and the sending unit 605 may be implemented by executing the interaction module by the processor
  • the path planning unit 603 may be implemented by executing the path planning module by the processor.
  • An embodiment of the present invention further provides a computer storage medium, and the computer storage medium includes a program designed for executing the foregoing method embodiments.
  • the embodiments of the present invention may be provided as a method, an apparatus (device), or a computer program product. Therefore, the present invention may use a form of hardware only embodiments, software only embodiments, or embodiments with a combination of software and hardware. Moreover, the present invention may use a form of a computer program product that is implemented on one or more computer-usable storage media (including but not limited to a disk memory, a CD-ROM, an optical memory, and the like) that include computer-usable program code.
  • the computer program is stored/distributed in a proper medium and is provided as or used as a part of the hardware together with another hardware, or may also use another allocation form, such as by using the Internet or another wired or wireless telecommunications system.
  • These computer program instructions may be provided for a general-purpose computer, a dedicated computer, an embedded processor, or a processor of any other programmable data processing device to generate a machine, so that the instructions executed by a computer or a processor of any other programmable data processing device generate an apparatus for implementing a specific function in one or more processes in the flowcharts and/or in one or more blocks in the block diagrams.
  • These computer program instructions may also be stored in a computer readable memory that can instruct the computer or any other programmable data processing device to work in a specific manner, so that the instructions stored in the computer readable memory generate an artifact that includes an instruction apparatus.
  • the instruction apparatus implements a specific function in one or more processes in the flowcharts and/or in one or more blocks in the block diagrams.
  • These computer program instructions may also be loaded onto a computer or another programmable data processing device, so that a series of operations and steps are performed on the computer or the another programmable device, thereby generating computer-implemented processing. Therefore, the instructions executed on the computer or the another programmable device provide steps for implementing a specific function in one or more processes in the flowcharts and/or in one or more blocks in the block diagrams.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

The present invention relates to the field of communications technologies, and provides a multi-stream transmission method and device in an SDN network. A server obtains network status information of a network by using an SDN controller; determines, according to the network status information and a data sending rate requirement of a client, a quantity of sub-streams and a sub-stream transmission path that are required by a multi-stream connection, and allocates corresponding sub-stream identification information to each sub-stream; and sends the determined sub-stream transmission path and the corresponding sub-stream identification information to the SDN controller. According to the foregoing solution, the server completes multi-stream connection path planning according to the network status information, and the SDN controller only provides the network status information for the server without performing the multi-stream connection path planning, so that calculation load of the SDN controller is reduced. In addition, the server performs the multi-stream connection path planning according to the network status information, so that the quantity of sub-streams can be more efficiently adjusted in a data transmission process to satisfy the sending rate requirement of the client.

Description

  • This application claims priority to Chinese Patent Application No. 201610177868.8 , filed with the Chinese Patent Office on March 25, 2016 and entitled "MULTI-STREAM TRANSMISSION METHOD AND DEVICE IN SDN NETWORK", which is incorporated herein by reference in its entirety.
  • TECHNICAL FIELD
  • The present invention relates to the field of communications technologies, and in particular, to a multi-stream transmission method and device in an SDN network.
  • BACKGROUND
  • As an ultra high definition video (for example, 4K requires 15 Mbps to 30 Mbps bandwidth, and 8K requires 100 Mbps to 180 Mbps bandwidth) is gradually popular, when a server provides a streaming media service for a client, a transmission rate requirement of the ultra high definition video cannot be satisfied if only a single transmission path is used. One way to resolve such a problem is to use multiple paths to simultaneously provide a data transmission service for a user. MPTCP (Multipath TCP) is a multipath transmission protocol at a transport layer, and currently, has been in large-scale commercial use in an Apple iOS 7 system. When a transmit end and a receive end include multiple network interfaces (IP addresses), the technology may be used to simultaneously establish multiple sub-streams (TCP links) between different network interfaces to simultaneously send data, so as to improve utilization of idle bandwidth on a network and an end-to-end transmission rate.
  • SDN (software-defined networking) is a new network innovation architecture, and a core idea of the SDN is to separate a network device control plane from a forwarding plane, so as to flexibly control traffic, and provide an excellent platform for a core network and application innovation. An SDN network includes a network device (for example, a router) and an SDN controller. The SDN controller is configured to: generate a flow table (Flow Table) according to a user configuration or a dynamically running protocol, and send the flow table to the network device. The network device is configured to: receive the flow table from the SDN controller, and match and process a packet according to the flow table.
  • The prior art (Flow DeMultiplexing Protocol, FDMP) is a technology improved based on MPTCP. The technology uses a network status collection function and a fine transmission path control function of an SDN controller to transmit data between hosts with a single IP address and multiple ports by using multiple streams, and implement accurate control over each sub-stream transmission path, so that path overlapping between multiple sub-streams of a same multi-stream connection is minimum, thereby reducing a possibility that the multiple sub-streams share one transmission path.
  • However, in the prior art, the SDN controller is overloaded. As a control center of an entire network, the SDN controller not only needs to plan a path for each sub-stream of a multi-stream connection, but also needs to plan a path for another type of connection. Consequently, the SDN controller may become a performance bottleneck of an SDN network.
  • SUMMARY
  • The present invention provides a multi-stream transmission method and device in an SDN network, so as to resolve a prior-art technical problem that an SDN controller is overloaded in a multi-stream transmission scheme based on the SDN network.
  • To achieve the foregoing objective, embodiments of the present invention use the following technical solutions:
  • According to a first aspect, a multi-stream transmission method in an SDN controller is provided, where the method includes: obtaining, by a server, network status information of a network by using an SDN controller; determining, according to the network status information and a data sending rate requirement of a client, a quantity of sub-streams and a sub-stream transmission path that are required by a multi-stream connection, and allocating corresponding sub-stream identification information to each sub-stream; and sending, by the server, the determined sub-stream transmission path and the corresponding sub-stream identification information to the SDN controller. The server completes multi-stream connection path planning according to the network status information, and the SDN controller only provides the network status information for the server without performing the multi-stream connection path planning, so that calculation load of the SDN controller is reduced. In addition, the server performs the multi-stream connection path planning according to the network status information, so that the quantity of sub-streams can be more efficiently adjusted in a data transmission process to satisfy the sending rate requirement of the client.
  • With reference to the first aspect, in a first possible implementation of the first aspect, the network status information includes a network topology and an available bandwidth and a delay that are of a link that is between adjacent network devices and that is in the network topology; and the determining, according to the network status information and a data sending rate requirement of a client, a quantity of sub-streams and a sub-stream transmission path that are required by a multi-stream connection is specifically: calculating, by the server, a cost of each link in the network topology according to the available bandwidth and the delay that are of the link in the network topology; determining a first transmission path according to the cost of each link in the network topology, adding the first transmission path to a temporary path library, and determining whether an available bandwidth of a transmission path in the temporary path library is greater than a transmission rate threshold, where the transmission rate threshold is determined by the sending rate requirement, and the transmission rate threshold is greater than the sending rate requirement; if the available bandwidth of the transmission path in the temporary path library is greater than the transmission rate threshold, ending a procedure, or if the available bandwidth of the transmission path in the temporary path library is not greater than the transmission rate threshold, performing an iterative step, where the iterative step is specifically: updating the cost of each link in the network topology according to the transmission path in the temporary path library, determining another transmission path according to an updated cost of each link, and determining whether a sum of an available bandwidth of the another transmission path and the available bandwidth of the transmission path in the temporary path library is greater than the transmission rate threshold; and if the sum of the available bandwidth of the another transmission path and the available bandwidth of the transmission path in the temporary path library is greater than the transmission rate threshold, ending a procedure, or if the sum of the available bandwidth of the another transmission path and the available bandwidth of the transmission path in the temporary path library is not greater than the transmission rate threshold, repeatedly performing the iterative step until the sum of the available bandwidth of the another transmission path and the available bandwidth of the transmission path in the temporary path library is greater than the transmission rate threshold. The server obtains the network status information of the SDN network by using the SDN controller, and plans a transmission path based on the status information of the SDN network and the transmission rate threshold. Because a bandwidth estimation method is used to make decisions on a quantity of sub-streams and a sub-stream transmission path, there is no need to wait until all sub-streams are established one by one to make a decision on whether to add a new sub-stream, thereby avoiding wait time of multiple TCP slow start processes. Therefore, a decision process is faster.
  • In a possible design, because a network status change is a dynamic process, an available bandwidth of a path may suddenly decrease during network congestion, and the available bandwidth of the path may increase when other data transmission on a path ends. Therefore, a quantity of sub-streams and a transmission path that are determined when multi-stream transmission is just established may no longer satisfy a requirement for the transmission rate threshold after a period of time. In this case, the quantity of sub-streams and the transmission path need to be dynamically adjusted. Specifically, the server periodically obtains an actual transmission rate of multi-stream transmission.
  • When the actual transmission rate of multi-stream transmission is greater than a sub-stream deletion transmission rate threshold, the server determines, if a requirement for the transmission rate threshold is satisfied, a quantity of sub-streams and a sub-stream path that need to be closed; and sends the closed sub-stream path and corresponding sub-stream identification information to the SDN controller; or
    when the actual transmission rate of multi-stream transmission is less than a sub-stream addition transmission rate threshold, the server determines, if a requirement for the transmission rate threshold is satisfied, a quantity of sub-streams and a sub-stream path that need to be added; allocates corresponding sub-stream identification information to each added sub-stream; and sends the added sub-stream path and the corresponding sub-stream identification information to the SDN controller.
  • In a possible design, the calculating, by the server, a cost of each link in the network topology according to the available bandwidth and the delay that are of the link in the network topology is specifically: O D i , B i = a 1 × D i + 1 a 1 / B i ,
    Figure imgb0001
    where
    O(D i, B i) is a cost of a link Li , a1 is a constant greater than or equal to 0 and less than or equal to 1, D i is a delay of the link Li , and Bi is an available bandwidth of the link Li . An optimal transmission path may be planned for data transmission by calculating the cost of each link in the SDN network, thereby improving data transmission efficiency.
  • According to a second aspect, an embodiment of the present invention provides a multi-stream transmission server in an SDN network, and the server has a function of implementing a server behavior in the first aspect. The function may be implemented by using hardware, or may be implemented by executing corresponding software by hardware. The hardware or the software includes one or more modules corresponding to the function.
  • In a possible design, a structure of the server includes a processor and a memory. The memory is configured to store a program that supports the server in performing the foregoing method. The processor is configured to execute the program stored in the memory. The server may further include a communications interface used for communication between the server and another device or a communications network.
  • According to a third aspect, an embodiment of the present invention provides a computer storage medium. The computer storage medium is configured to store a computer software instruction used by the server, and includes a program designed for the server to execute the foregoing aspects.
  • Compared with the prior art, according to the solutions provided in the present invention, the server completes multi-stream connection path planning according to the network status information, and the SDN controller only provides the network status information for the server without performing the multi-stream connection path planning, so that calculation load of the SDN controller is reduced. In addition, the server performs the multi-stream connection path planning according to the network status information, so that the quantity of sub-streams can be more efficiently adjusted in a data transmission process to satisfy the sending rate requirement of the client.
  • These aspects or other aspects of the present invention will be more simple and easy to understand in the following embodiments.
  • BRIEF DESCRIPTION OF DRAWINGS
    • FIG. 1 is a multi-stream transmission system architecture in an SDN network according to an embodiment of the present invention;
    • FIG. 2 is a schematic diagram of a computer device according to an embodiment of the present invention;
    • FIG. 3 is a schematic diagram of a multi-stream transmission method in an SDN network according to an embodiment of the present invention;
    • FIG. 4 is a flowchart of a method in which a server determines a quantity of sub-streams and a sub-stream transmission path that are required by a multi-stream connection according to an embodiment of the present invention;
    • FIG. 5 is a flowchart of a method in which a server dynamically adjusts a quantity of sub-streams and a transmission path in a transmission process according to an embodiment of the present invention; and
    • FIG. 6 is a schematic structural diagram of a server according to an embodiment of the present invention.
    DESCRIPTION OF EMBODIMENTS
  • To make the objectives, technical solutions, and advantages of the present invention clearer, the following further describes the embodiments of the present invention in detail with reference to the accompanying drawings.
  • FIG. 1 describes a multi-stream transmission system architecture in an SDN network according to an embodiment of the present invention. The multi-stream transmission system architecture 100 in the SDN network includes an SDN controller 102, a server 104, a network device 106 (such as a network device 1, a network device 2, and a network device 3), and a client 108. The client 108 may be any device that supports the MPTCP protocol, such as a PC, an iPad, and a mobile phone. The network device 106 may be a device that is responsible for a data forwarding function in the SDN network, such as an SDN router and an SDN switch. The SDN controller is a core component in the SDN network, communicates with a network device in the SDN network by using a southbound interface, centrally controls data forwarding of the network device, and in addition, communicates with the server by using a northbound interface, and provides a network invoking capability for the server.
  • In this embodiment of the present invention, by using an uplink channel of the southbound interface, the SDN controller centrally monitors and collects statistics on information reported by the network device 106, so as to obtain network status information. The server 104 obtains, by using the northbound interface of the SDN controller, the network status information obtained by the SDN controller; determines, according to the network status information and a data sending rate requirement of the client, a quantity of sub-streams and a sub-stream transmission path that are required by a multi-stream connection, and allocates corresponding sub-stream identification information to each sub-stream; and sends the determined sub-stream transmission path and the corresponding sub-stream identification information to the SDN controller 102 by using the northbound interface. Finally, the SDN controller 102 delivers, by using a downlink channel of the southbound interface, a corresponding entry to a related network device 106 according to the determined sub-stream transmission path and the corresponding sub-stream identification information.
  • In this embodiment of the present invention, the server completes multi-stream connection path planning according to the network status information, and the SDN controller only provides the network status information for the server without performing the multi-stream connection path planning, so that calculation load of the SDN controller is reduced. In addition, the server 104 performs the multi-stream connection path planning according to the network status information, so that the quantity of sub-streams can be more efficiently adjusted in a data transmission process to satisfy the sending rate requirement of the client.
  • As shown in FIG. 2, the server in FIG. 1 may be implemented by using a computer device (or a system) in FIG. 2.
  • FIG. 2 shows a schematic diagram of the computer device according to an embodiment of the present invention. The computer device 200 includes at least one processor 201, a communications bus 202, a memory 203, and at least one communications interface 204.
  • The processor 201 may be a general purpose central processing unit (CPU), a microprocessor, an application-specific integrated circuit (application-specific integrated circuit, ASIC), or one or more integrated circuits configured to control program execution in the solution of the present invention.
  • The communications bus 202 may include a channel used to transfer information between the foregoing components. The communications interface 204 is configured to use any transceiver apparatus to communicate with another device or a communications network, such as Ethernet, a radio access network (RAN), or a wireless local area network (WLAN).
  • The memory 203 may be a read-only memory (ROM) or another type of static storage device that may store static information and instructions, or a random access memory (RAM) or another type of dynamic storage device that may store information and instructions; or may be an electrically erasable programmable read-only memory (EEPROM), a compact disc read-only memory (CD-ROM), another compact disc storage, an optical disc storage (including a compact disc, a laser disc, an optical disc, a digital versatile disc, a Blu-ray disc, and the like), a disk storage medium, another magnetic storage device, or any other medium that can be configured to carry or store expected program code in a form of an instruction or a data structure and that can be accessed by a computer. However, this is not limited herein. The memory may independently exist and be connected to the processor by using the bus. Alternatively, the memory may be integrated with the processor.
  • The memory 203 is configured to store program code used to execute the solution of the present invention, and the processor 201 controls execution of the program code. The processor 201 is configured to execute the program code stored in the memory 203.
  • In specific implementation, in an embodiment, the processor 201 may include one or more CPUs, such as a CPU 0 and a CPU 1 in FIG. 2.
  • In specific implementation, in an embodiment, the computer device 200 may include multiple processors, such as the processor 201 and a processor 208 in FIG. 2. Each of these processors may be a single-core (single-CPU) processor or may be a multi-core (multi-CPU) processor. The processor herein may be one or more devices, circuits, and/or processing cores configured to process data (for example, a computer program instruction).
  • In specific implementation, in an embodiment, the computer device 200 may further include an output device 205 and an input device 206. The output device 205 communicates with the processor 201, and may display information in multiple manners. For example, the output device 205 may be a liquid crystal display (LCD), a light emitting diode (LED) display device, a cathode-ray tube (CRT) display device, a projector (projector), or the like. The input device 206 communicates with the processor 201, and may receive user's input in multiple manners. For example, the input device 206 may be a mouse, a keyboard, a touchscreen device, a sensing device, or the like.
  • The computer device 200 may be a general purpose computer device or a special purpose computer device. In specific implementation, the computer device 200 may be a desktop computer, a portable computer, a network server, a personal digital assistant (PDA), a mobile phone, a tablet computer, a wireless terminal device, a communications device, an embedded device, or a device with a structure similar to that in FIG. 2. A type of the computer device 200 is not limited in this embodiment of the present invention.
  • The server shown in FIG. 1 may be the device shown in FIG. 2. The memory of the server stores one or more software modules (such as an interaction module and a path planning module). The server may implement the software modules by using the processor and the program code in the memory, so as to transmit data to the client by using multiple sub-streams.
  • Based on the system architecture diagram shown in FIG. 1, a process in which a client transmits data to a client by using multiple streams is described more clearly. For example, FIG. 3 shows a multi-stream transmission method in an SDN network according to an embodiment of the present invention, and the method includes the following steps.
  • Step 301: A client sends a data transmission request message to a server, for example, requests to transmit a video slice 100 of a movie "Avatar".
  • It should be noted that path planning of the request message sent by the client to the server is completed by an SDN controller. This is the same as that in the prior art. Details are not described herein.
  • Step 302: The server receives the data transmission request message of the client, and requests network status information from an SDN controller.
  • Specifically, the network status information includes a network topology and an available bandwidth and a delay that are of a link that is between adjacent network devices and that is in the network topology. For example, the server may query the network status information by using a northbound interface of a REST API type provided by the SDN controller. Assuming that an IP address of the SDN controller is 192.168.0.1, an interface used to obtain the network topology may be curl http:// 192.168.0.1:8080/wm/topology/links/json.
  • Step 303: The SDN controller returns the network status information to the server.
  • Specifically, the SDN controller may return, to the server by using an uplink channel of the northbound interface, the network status information requested by the server. For example, when the server side sends a query command curl http:// 192.168.0.1:8080/wm/topology/links/json to the SDN controller by using the northbound interface of the REST API type, the SDN controller returns network topology information to the server.
  • Step 304: The server determines, according to the network status information and a data sending rate requirement of the client, a quantity of sub-streams and a sub-stream transmission path that are required by a multi-stream connection, and allocates corresponding sub-stream identification information to each sub-stream.
  • Specifically, the server determines the data sending rate requirement according to the request message of the client. For example, the client expects to request the video slice 100 of "Avatar", and the server determines that a transmission rate requirement of video sending is 50 Mbps after receiving the request, so as to achieve a specific view effect.
  • The sub-stream identification information is determined by an IP address of the server, a port number of the server, an IP address of the client, and a port number of the client. For example, a server 192.168.1.1 transmits data to a port 80 of a client 192.168.1.2, and if the server determines, according to the network status information and the data sending rate requirement of the client, that three sub-streams are required for data transmission, and the server includes three idle ports 1234, 1235, and 1236, identifiers of the three sub-streams may be (192.168.1.1, 1234, 192.168.1.2, 80), (192.168.1.1, 1235, 192.168.1.2, 80), and (192.168.1.1, 1236, 192.168.1.2, 80). It should be noted that the IP address and port information that are of the client may be determined by the server according to the data transmission request message received in step 302.
  • The determining, by the server according to the network status information and a data sending rate requirement of the client, a quantity of sub-streams and a sub-stream transmission path that are required by a multi-stream connection specifically includes: planning, by the server according to the network status information and the data sending rate requirement of the client, a transmission path from the server to the client for a packet sent by the server to the client, where there may be one or more transmission paths.
  • Step 305: The server sends, to the SDN controller, the sub-stream transmission path and the corresponding sub-stream identification information that are determined in step 304, so that the SDN controller configures a related network device.
  • Specifically, the server sends, to the SDN controller by using the northbound interface of the SDN controller, the sub-stream transmission path and the corresponding sub-stream identification information that are determined in step 304, so that the SDN controller configures the related network device. The SDN controller configures all network devices on all sub-stream transmission paths, so that a packet planned to the sub-stream can be transmitted on the transmission path. For example, if the SDN controller configures a network device 00:00:00:00:00:00:00:01 to forward, to a next network device by using a port 2 of the network device, a sub-stream whose source IP address is 4.3.2.1 (an IP address of a server), source port is 1234 (which is identification information of a sub-stream), destination IP address is 1.2.3.4 (an IP address of a client), and destination port is 1234 (a port of the client), a related command of the northbound interface of the REST API type is curl -d '{"switch": "00:00:00:00:00:00:00:01", "name":"flow-mod-1", "priority":"32768", "src-ip":"4.3.2.1", "dst-ip":"1.2.3.4", "src-port":"1234", "dst-port":"1234", "active": "true", "actions":"output=2"}' http:// 192.168.0.1:8080/wm/staticflowentrypusher/json. After receiving a fault command, the SDN controller may deliver a corresponding forwarding policy to the network device 00:00:00:00:00:00:00:01 by using a southbound interface.
  • Step 306: The server plans to-be-sent data to different sub-streams, and sends the data to the client by using the sub-stream path specified in step 305; and the client receives the data transmitted by the server by using the different sub-streams, and re-integrates the received data.
  • Step 307: When data transmission is not completed, the server periodically determines whether a current transmission path and a current quantity of sub-streams are optimal, and makes a decision, such as a decision to increase a quantity of sub-streams, reduce a quantity of sub-streams, or modify a transmission path.
  • In a possible design, the server periodically obtains an actual transmission rate of multi-stream transmission; and when the actual transmission rate of multi-stream transmission is greater than a sub-stream deletion transmission rate threshold, the server determines, if a requirement for a transmission rate threshold is satisfied, a quantity of sub-streams and a sub-stream path that need to be closed; and sends the closed sub-stream path and corresponding sub-stream identification information to the SDN controller; or
    when the actual transmission rate of multi-stream transmission is less than a sub-stream addition transmission rate threshold, the server determines, if a requirement for the transmission rate threshold is satisfied, a quantity of sub-streams and a sub-stream path that need to be added; allocates corresponding sub-stream identification information to each added sub-stream; and sends the added sub-stream path and the corresponding sub-stream identification information to the SDN controller.
  • It should be noted that the actual transmission rate of multi-stream transmission is determined by a sum of transmission rates of all sub-streams. In specific implementation, the actual transmission rate of multi-stream transmission may be determined according to a sum of sending rates of all sub-stream sending buffers.
  • Step 308: The server sends, to the SDN controller, the decision such as increasing the quantity of sub-streams, reducing the quantity of sub-streams, or modifying the transmission path determined in step 307, so that the SDN controller configures the related network device.
  • For example, if the SDN controller deletes, in the network device 00:00:00:00:00:00:00:01 by using the northbound interface of the REST API type, routing information whose name is flow-mod-1 and that is configured in step 305, a related command is curl -X DELETE -d '{"name":"flow-mod-1"}' http:// 192.168.0.1:8080/wm/staticflowentrypusher/j son.
  • Step 309: The server plans to-be-sent data to different sub-streams, and sends the data to the client by using the sub-stream path specified in step 308; and the client receives the data transmitted by the server by using the different sub-streams, and re-integrates the received data.
  • For example, if the server determines three sub-stream transmission paths in step 304, and obtains two sub-stream transmission paths after deleting one sub-stream transmission path in step 307, the server continues to send the data to the client by using the two sub-stream transmission paths.
  • In this embodiment of the present invention, the server completes multi-stream connection path planning according to the network status information, and the SDN controller only provides the network status information for the server without performing the multi-stream connection path planning, so that calculation load of the SDN controller is reduced. In addition, the server performs the multi-stream connection path planning according to the network status information, so that the quantity of sub-streams can be more efficiently adjusted in a data transmission process to satisfy the sending rate requirement of the client.
  • FIG. 4 is a flowchart of a method in which a server determines a quantity of sub-streams and a sub-stream transmission path that are required by a multi-stream connection according to an embodiment of the present invention. FIG. 4 is a specific implementation of the embodiment shown in FIG. 3, and mainly relates to specific implementations of steps 304 and 307 in the embodiment shown in FIG. 3. As shown in FIG. 4, the method includes the following steps.
  • 401. A server obtains network status information of an SDN network by using a northbound interface opened by an SDN controller.
  • The network status information includes a network topology and an available bandwidth and a delay that are of a link that is between adjacent network devices and that is in the network topology. A method for obtaining the network status information by the server is the same as that of steps 302 and 303 in the embodiment shown in FIG. 3. Details are not described herein again.
  • 402. The server calculates a cost of each link in a network topology according to an available bandwidth and a delay that are of a link in the network topology.
  • The calculating, by the server, a cost of each link in the network topology according to an available bandwidth and a delay that are of a link in the network topology is specifically: O D i , B i = a 1 × D i + 1 a 1 / B i ,
    Figure imgb0002
    where
    O(D i, B i) is a cost of a link Li , a1 is a constant greater than or equal to 0 and less than or equal to 1, D i is a delay of the link Li , and Bi is an available bandwidth of the link Li .
  • 403. Calculate a minimum cost path that is between a source address (that is, an IP address of the server) and a destination address (that is, an IP address of a client) and that is in the network topology by using a minimum cost path calculation algorithm, use the minimum cost path as a first transmission path, and add the first transmission path to a temporary path library.
  • In a possible design, the server may use a Dijkstra algorithm to calculate the minimum cost path.
  • 404. Determine an available bandwidth of the first transmission path.
  • Specifically, a specific method for determining an available bandwidth of a transmission path is familiar to a person skilled in the art, and is not limited in this embodiment of the present invention. In a possible design, a minimum available bandwidth of all links on the path is used as an available bandwidth (that is, min(link 1, link 2, ..., and link N)) of the path, or more accurate estimation is performed with reference to data such as a delay and a packet loss. For example, if there are three links in total on a path, and available bandwidths of the three links are respectively 20 Mbps, 30 Mbps, and 40 Mbps, an available bandwidth of the path is estimated to be min(20, 30, 40) = 20 Mbps according to a minimum available bandwidth of all links on the path.
  • 405. Determine whether an available bandwidth of a transmission path in the temporary path library is greater than a transmission rate threshold; and if the available bandwidth of the transmission path in the temporary path library is greater than the transmission rate threshold, end a procedure, or if the available bandwidth of the transmission path in the temporary path library is not greater than the transmission rate threshold, proceed to step 407 and end a procedure.
  • The transmission rate threshold is determined by a sending rate requirement, for example, Btran = λ × Bneed , where Btran is a transmission rate threshold, Bneed is a sending rate requirement, and λ is a constant greater than 1, so as to reduce impact of an estimation error of the available bandwidth of the transmission path on a decision result.
  • 406. End a procedure.
  • 407. Consider impact of the transmission path in the temporary path library, and re-determine the cost of each link in the network topology.
  • Specifically, when the available bandwidth of the transmission path in the temporary path library is less than the transmission rate threshold, it indicates that the sending rate requirement cannot be satisfied by using a sub-stream corresponding to the transmission path in the temporary path library. In this case, a sub-stream needs to be added to ensure the transmission rate requirement. Because the sub-stream corresponding to the transmission path put into the temporary path library has occupied a corresponding link bandwidth in the network topology, it is necessary to consider impact of the transmission path in the temporary path library on an available bandwidth of a link in the network topology when another transmission path is further planned.
  • Steps 403, 404, 405, and 407 are repeatedly performed until the available bandwidth of the transmission path in the temporary path library is greater than or equal to the transmission rate threshold.
  • In this embodiment of the present invention, the server obtains the network status information of the SDN network by using the SDN controller, and plans a transmission path based on the status information of the SDN network and the transmission rate threshold. Because a bandwidth estimation method is used to make decisions on a quantity of sub-streams and a sub-stream transmission path, there is no need to wait until all sub-streams are established one by one to make a decision on whether to add a new sub-stream, thereby avoiding wait time of multiple TCP slow start processes. Therefore, a decision process is faster.
  • Because a network status change is a dynamic process, an available bandwidth of a path may suddenly decrease during network congestion, and the available bandwidth of the path may increase when other data transmission on a path ends. Therefore, a quantity of sub-streams and a transmission path that are determined when multi-stream transmission is just established may no longer satisfy a requirement for the transmission rate threshold after a period of time. In this case, the quantity of sub-streams and the transmission path need to be dynamically adjusted. FIG. 5 is a flowchart of a method in which a server dynamically adjusts a quantity of sub-streams and a transmission path in a transmission process according to an embodiment of the present invention.
  • Step 501: A server periodically obtains a current actual transmission rate.
  • Specifically, the actual transmission rate may be obtained by measuring a sum of sending rates of all sub-stream sending buffers.
  • Step 502: Determine whether the actual transmission rate of data sent by the server to a client is greater than a deletion threshold.
  • The deletion threshold is usually greater than a data transmission rate threshold, for example, may be 1.2 times a transmission rate, so as to avoid frequently adjusting a quantity of sub-streams and a transmission path.
  • Step 503: Determine, if a transmission rate threshold is satisfied, a transmission path and a quantity of sub-streams that can be deleted.
  • When the actual transmission rate of the data sent by the server to the client is greater than the deletion threshold, it indicates that an available bandwidth of a current multi- stream transmission path is greater than an actual requirement of the client. For an operator, there is a waste of network resources. In this case, some sub-streams may be considered to be deleted.
  • In a possible design, the server estimates one by one whether a total transmission rate of a multi-stream connection satisfies a requirement for the transmission rate threshold when a current minimum transmission rate path is deleted; and if the total transmission rate of the multi-stream connection satisfies the requirement for the transmission rate threshold when the current minimum transmission rate path is deleted, the server adds the minimum transmission rate path to a to-be-deleted path library, and continues to estimate whether the total transmission rate of the multi-stream connection satisfies the requirement for the transmission rate threshold when a minimum transmission rate path in a remaining path is deleted, until the total transmission rate of the multi-stream connection does not satisfy the requirement for the transmission rate threshold when the minimum transmission rate path in the remaining path is deleted.
  • Step 504: Determine whether the actual transmission rate is less than an addition threshold.
  • The addition threshold is usually less than the data transmission rate threshold, for example, may be 0.8 times the transmission rate, so as to avoid frequently adjusting the quantity of sub-streams and the transmission path.
  • Step 505: Re-determine, if a transmission rate threshold is satisfied, a quantity of sub-streams and a transmission path that are required.
  • A specific method is shown in the embodiment shown in FIG. 4. Details are not described herein again.
  • In a possible design, the server further determines whether a re-determined quantity of sub-streams is greater than a current quantity of sub-streams; and if the re-determined quantity of sub-streams is greater than the current quantity of sub-streams, it indicates that even if path planning is re-performed, the transmission rate threshold cannot be satisfied by using a fewer quantity of sub-streams. Therefore, a quantity of sub-streams and a transmission path can be first added on the basis of an existing path.
  • Step 506: The server sends a sub-stream adjustment decision to an SDN controller, so that the SDN controller configures a related network device.
  • It should be noted that a specific value relationship between the addition threshold and the transmission rate threshold and a specific value relationship between the deletion threshold and the transmission rate threshold may be determined by a service agreement (for example, SLA, Service Level Agreement) signed by a client user and an operator.
  • In this embodiment of the present invention, the quantity of sub-streams and the transmission path are dynamically adjusted, and impact of a network status change on multi-stream transmission is considered, so as to effectively ensure user server quality while considering operator's interests.
  • An embodiment of the present invention further describes a schematic structural diagram of a server that belongs to a same invention concept as the foregoing method embodiments. As shown in FIG. 6, the server 600 is configured to execute functions of the servers in the foregoing method embodiments of FIG. 3 to FIG. 5, and includes a obtaining unit 601, a path planning unit 603, and a sending unit 605.
  • The obtaining unit 601 is configured to obtain network status information of a network by using an SDN controller. The path planning unit 603 is configured to determine, according to the network status information and a data sending rate requirement of a client, a quantity of sub-streams and a sub-stream transmission path that are required by a multi-stream connection, and allocate corresponding sub-stream identification information to each sub-stream. The sending unit 605 is configured to send the determined sub-stream transmission path and the corresponding sub-stream identification information to the SDN controller.
  • Optionally, the network status information includes a network topology and an available bandwidth and a delay that are of a link that is between adjacent network devices and that is in the network topology; and that the path planning unit 603 is configured to determine, according to the network status information and a data sending rate requirement of a client, a quantity of sub-streams and a sub-stream transmission path that are required by a multi-stream connection is specifically: calculating a cost of each link in the network topology according to the available bandwidth and the delay that are of the link in the network topology; determining a first transmission path according to the cost of each link in the network topology, and determining whether an available bandwidth of the first transmission path is greater than a transmission rate threshold, where the transmission rate threshold is determined by the sending rate requirement, and the transmission rate threshold is greater than the sending rate requirement; if the available bandwidth of the first transmission path is greater than the transmission rate threshold, ending a procedure, or if the available bandwidth of the first transmission path is not greater than the transmission rate threshold, adding the first transmission path to a temporary path library, updating the cost of each link in the network topology according to the first transmission path, determining another transmission path according to an updated cost of each link, and determining whether a sum of an available bandwidth of the another transmission path and an available bandwidth of a transmission path in the temporary path library is greater than the transmission rate threshold; and if the sum of the available bandwidth of the another transmission path and the available bandwidth of the transmission path in the temporary path library is greater than the transmission rate threshold, ending a procedure, or if the sum of the available bandwidth of the another transmission path and the available bandwidth of the transmission path in the temporary path library is not greater than the transmission rate threshold, repeatedly performing the process until the sum of the available bandwidth of the another transmission path and the available bandwidth of the transmission path in the temporary path library is greater than the transmission rate threshold.
  • In a possible implementation, to adjust multi-stream transmission in a data transmission process, the obtaining unit 601 is further configured to periodically obtain an actual transmission rate of multi-stream transmission; the path planning unit 603 is further configured to: when the actual transmission rate of multi-stream transmission is greater than a sub-stream deletion transmission rate threshold, determine, if a requirement for the transmission rate threshold is satisfied, a quantity of sub-streams and a sub-stream path that need to be closed; and the sending unit 605 is further configured to send the closed sub-stream path and corresponding sub-stream identification information to the SDN controller; or
    the path planning unit 603 is further configured to: when the actual transmission rate of multi-stream transmission is less than a sub-stream addition transmission rate threshold, determine, if a requirement for the transmission rate threshold is satisfied, a quantity of sub-streams and a sub-stream path that need to be added; and allocate corresponding sub-stream identification information to each added sub-stream; and the sending unit 605 is further configured to send the added sub-stream path and the corresponding sub-stream identification information to the SDN controller.
  • In a possible design, that the path planning unit 603 calculates the cost of each link in the network topology according to the available bandwidth and the delay that are of the link in the network topology is specifically: O D i , B i = a 1 × D i + 1 a 1 / B i ,
    Figure imgb0003
    where
    O(D i, B i) is a cost of a link Li , a1 is a constant greater than or equal to 0 and less than or equal to 1, D i is a delay of the link Li , and Bi is an available bandwidth of the link Li .
  • It should be noted that the sub-stream identification information is determined by an IP address of the server, a port number of the server, an IP address of the client, and/or a port number of the client.
  • In this embodiment, the server 600 is presented in a form of a function unit. The "unit" herein may be an application-specific integrated circuit (application-specific integrated circuit, ASIC), a circuit, a processor that executes one or more software or firmware programs and a memory, an integrated logic circuit, and/or another device that may provide the foregoing functions. In a simple embodiment, a person skilled in the art may figure out that the server 600 may be in a form shown in FIG. 2. The obtaining unit 601, the path planning unit 603, and the sending unit 605 may be implemented by using the processor and the memory in FIG. 2. Specifically, the obtaining unit 601 and the sending unit 605 may be implemented by executing the interaction module by the processor, and the path planning unit 603 may be implemented by executing the path planning module by the processor.
  • An embodiment of the present invention further provides a computer storage medium, and the computer storage medium includes a program designed for executing the foregoing method embodiments.
  • It should be noted that, to make the description brief, the foregoing method embodiments are expressed as a series of actions. However, a person skilled in the art should appreciate that the present invention is not limited to the described action sequence, because according to the present invention, some steps may be performed in other sequences or performed simultaneously. In addition, a person skilled in the art should also appreciate that all the embodiments described in the specification are example embodiments, and the related actions and modules are not necessarily mandatory to the present invention.
  • Although the present invention is described with reference to the embodiments, in a process of implementing the present invention that claims protection, a person skilled in the art may understand and implement another variation of the disclosed embodiments by viewing the accompanying drawings, disclosed content, and the accompanying claims. In the claims, "comprising" (comprising) does not exclude another component or another step, and "a" or "one" does not exclude a case of multiple. A single processor or another unit may implement several functions enumerated in the claims. Some measures are recorded in dependent claims that are different from each other, but this does not mean that these measures cannot be combined to produce a better effect.
  • A person skilled in the art should understand that the embodiments of the present invention may be provided as a method, an apparatus (device), or a computer program product. Therefore, the present invention may use a form of hardware only embodiments, software only embodiments, or embodiments with a combination of software and hardware. Moreover, the present invention may use a form of a computer program product that is implemented on one or more computer-usable storage media (including but not limited to a disk memory, a CD-ROM, an optical memory, and the like) that include computer-usable program code. The computer program is stored/distributed in a proper medium and is provided as or used as a part of the hardware together with another hardware, or may also use another allocation form, such as by using the Internet or another wired or wireless telecommunications system.
  • The present invention is described with reference to the flowcharts and/or block diagrams of the method, the apparatus (device), and the computer program product according to the embodiments of the present invention. It should be understood that computer program instructions may be used to implement each process and/or each block in the flowcharts and/or the block diagrams and a combination of a process and/or a block in the flowcharts and/or the block diagrams. These computer program instructions may be provided for a general-purpose computer, a dedicated computer, an embedded processor, or a processor of any other programmable data processing device to generate a machine, so that the instructions executed by a computer or a processor of any other programmable data processing device generate an apparatus for implementing a specific function in one or more processes in the flowcharts and/or in one or more blocks in the block diagrams.
  • These computer program instructions may also be stored in a computer readable memory that can instruct the computer or any other programmable data processing device to work in a specific manner, so that the instructions stored in the computer readable memory generate an artifact that includes an instruction apparatus. The instruction apparatus implements a specific function in one or more processes in the flowcharts and/or in one or more blocks in the block diagrams.
  • These computer program instructions may also be loaded onto a computer or another programmable data processing device, so that a series of operations and steps are performed on the computer or the another programmable device, thereby generating computer-implemented processing. Therefore, the instructions executed on the computer or the another programmable device provide steps for implementing a specific function in one or more processes in the flowcharts and/or in one or more blocks in the block diagrams.
  • Although the present invention is described with reference to specific features and the embodiments thereof, obviously, various modifications and combinations may be made to them without departing from the scope of the present invention. Correspondingly, the specification and accompanying drawings are merely examples of the present invention defined by the accompanying claims, and is considered as any of or all modifications, variations, combinations or equivalents that cover the scope of the present invention. Obviously, a person skilled in the art can make various modifications and variations to the present invention without departing from the spirit and scope of the present invention. The present invention is intended to cover these modifications and variations provided that they fall within the scope of protection defined by the following claims and their equivalent technologies.

Claims (14)

  1. A multi-stream transmission method in an SDN network, comprising:
    obtaining, by a server, network status information of a network by using an SDN controller;
    determining, according to the network status information and a data sending rate requirement of a client, a quantity of sub-streams and a sub-stream transmission path that are required by a multi-stream connection, and allocating corresponding sub-stream identification information to each sub-stream; and
    sending, by the server, the determined sub-stream transmission path and the corresponding sub-stream identification information to the SDN controller.
  2. The method according to claim 1, wherein the network status information comprises a network topology and an available bandwidth and a delay that are of a link that is between adjacent network devices and that is in the network topology; and
    the determining, according to the network status information and a data sending rate requirement of a client, a quantity of sub-streams and a sub-stream transmission path that are required by a multi-stream connection is specifically:
    calculating, by the server, a cost of each link in the network topology according to the available bandwidth and the delay that are of the link in the network topology;
    determining a first transmission path according to the cost of each link in the network topology, and adding the first transmission path to a temporary path library; and determining whether an available bandwidth of a transmission path in the temporary path library is greater than a transmission rate threshold, wherein the transmission rate threshold is determined by the sending rate requirement, and the transmission rate threshold is greater than the sending rate requirement;
    if the available bandwidth of the transmission path in the temporary path library is greater than the transmission rate threshold, ending a procedure; or if the available bandwidth of the transmission path in the temporary path library is not greater than the transmission rate threshold, performing an iterative step, wherein the iterative step is specifically: updating the cost of each link in the network topology according to the transmission path in the temporary path library; and determining another transmission path according to an updated cost of each link, and determining whether a sum of an available bandwidth of the another transmission path and the available bandwidth of the transmission path in the temporary path library is greater than the transmission rate threshold; and
    if the sum of the available bandwidth of the another transmission path and the available bandwidth of the transmission path in the temporary path library is greater than the transmission rate threshold, ending a procedure; or if the sum of the available bandwidth of the another transmission path and the available bandwidth of the transmission path in the temporary path library is not greater than the transmission rate threshold, repeatedly performing the iterative step until the sum of the available bandwidth of the another transmission path and the available bandwidth of the transmission path in the temporary path library is greater than the transmission rate threshold.
  3. The method according to claim 1 or 2, wherein the method further comprises: periodically obtaining, by the server, an actual transmission rate of multi-stream transmission; and
    when the actual transmission rate of multi-stream transmission is greater than a sub-stream deletion transmission rate threshold, determining, if a requirement for the transmission rate threshold is satisfied, a quantity of sub-streams and a sub-stream path that need to be closed; and sending the closed sub-stream path and corresponding sub-stream identification information to the SDN controller; or
    when the actual transmission rate of multi-stream transmission is less than a sub-stream addition transmission rate threshold, determining, if a requirement for the transmission rate threshold is satisfied, a quantity of sub-streams and a sub-stream path that need to be added; allocating corresponding sub-stream identification information to each added sub-stream; and sending the added sub-stream path and the corresponding sub-stream identification information to the SDN controller.
  4. The method according to claim 2, wherein the calculating, by the server, a cost of each link in the network topology according to the available bandwidth and the delay that are of the link in the network topology is specifically: O D i , B i = a 1 × D i + 1 a 1 / B i ,
    Figure imgb0004
    wherein
    O(D i, B i) is a cost of a link Li , a1 is a constant greater than or equal to 0 and less than or equal to 1, D i is a delay of the link Li , and Bi is an available bandwidth of the link Li .
  5. The method according to any one of claims 1 to 4, wherein the sub-stream identification information is determined by an IP address of the server, a port number of the server, an IP address of the client, and a port number of the client.
  6. A multi-stream transmission server in an SDN network, comprising:
    an obtaining unit, configured to obtain network status information of a network by using an SDN controller;
    a path planning unit, configured to determine, according to the network status information and a data sending rate requirement of a client, a quantity of sub-streams and a sub-stream transmission path that are required by a multi-stream connection, and allocate corresponding sub-stream identification information to each sub-stream; and
    a sending unit, configured to send the determined sub-stream transmission path and the corresponding sub-stream identification information to the SDN controller.
  7. The server according to claim 6, wherein the network status information comprises a network topology and an available bandwidth and a delay that are of a link that is between adjacent network devices and that is in the network topology; and that a path planning unit is specifically configured to:
    calculate a cost of each link in the network topology according to the available bandwidth and the delay that are of the link in the network topology;
    determine a first transmission path according to the cost of each link in the network topology, and determining whether an available bandwidth of the first transmission path is greater than a transmission rate threshold, wherein the transmission rate threshold is determined by the sending rate requirement, and the transmission rate threshold is greater than the sending rate requirement;
    if the available bandwidth of the first transmission path is greater than the transmission rate threshold, ending a procedure; or if the available bandwidth of the first transmission path is not greater than the transmission rate threshold, adding the first transmission path to a temporary path library; updating the cost of each link in the network topology according to the first transmission path; and determining another transmission path according to an updated cost of each link, and determining whether a sum of an available bandwidth of the another transmission path and an available bandwidth of a transmission path in the temporary path library is greater than the transmission rate threshold; and
    if the sum of the available bandwidth of the another transmission path and the available bandwidth of the transmission path in the temporary path library is greater than the transmission rate threshold, ending a procedure; or if the sum of the available bandwidth of the another transmission path and the available bandwidth of the transmission path in the temporary path library is not greater than the transmission rate threshold, repeatedly performing the process until the sum of the available bandwidth of the another transmission path and the available bandwidth of the transmission path in the temporary path library is greater than the transmission rate threshold.
  8. The server according to claim 6 or 7, wherein the obtaining unit is further configured to periodically obtain an actual transmission rate of multi-stream transmission;
    the path planning unit is further configured to: when the actual transmission rate of multi-stream transmission is greater than a sub-stream deletion transmission rate threshold, determine, if a requirement for the transmission rate threshold is satisfied, a quantity of sub-streams and a sub-stream path that need to be closed; and
    the sending unit is further configured to send the closed sub-stream path and corresponding sub-stream identification information to the SDN controller; or
    the path planning unit is further configured to: when the actual transmission rate of multi-stream transmission is less than a sub-stream addition transmission rate threshold, determine, if a requirement for the transmission rate threshold is satisfied, a quantity of sub-streams and a sub-stream path that need to be added; and allocate corresponding sub-stream identification information to each added sub-stream; and
    the sending unit is further configured to send the added sub-stream path and the corresponding sub-stream identification information to the SDN controller.
  9. The server according to claim 7, wherein that the path planning unit calculates the cost of each link in the network topology according to the available bandwidth and the delay that are of the link in the network topology is specifically: O D i , B i = a 1 × D i + 1 a 1 / B i ,
    Figure imgb0005
    wherein
    O(D i, B i) is a cost of a link Li , a1 is a constant greater than or equal to 0 and less than or equal to 1, D i is a delay of the link Li , and Bi is an available bandwidth of the link Li .
  10. The server according to any one of claims 6 to 9, wherein the sub-stream identification information is determined by an IP address of the server, a port number of the server, an IP address of the client, and/or a port number of the client.
  11. A multi-stream transmission server in an SDN network, comprising a processor and a memory, wherein
    the memory stores a computer readable program; and
    the processor runs the program in the memory to complete the method according to any one of claims 1 to 5.
  12. A multi-stream transmission system in an SDN network, comprising a server and an SDN controller, wherein
    the server is configured to: obtain network status information of a network by using the SDN controller; determine, according to the network status information and a data sending rate requirement of a client, a quantity of sub-streams and a sub-stream transmission path that are required by a multi-stream connection, and allocate corresponding sub-stream identification information to each sub-stream; and send the determined sub-stream transmission path and the corresponding sub-stream identification information to the SDN controller; and
    the SDN controller is configured to: obtain the network status information, and send the network status information to the server; receive the sub-stream transmission path and the corresponding sub-stream identification information that are sent by the server; and deliver a corresponding flow table to a network device in the network according to the sub-stream transmission path and the corresponding sub-stream identification information that are sent by the server.
  13. The system according to claim 12, wherein the network status information comprises a network topology and an available bandwidth and a delay that are of a link that is between adjacent network devices and that is in the network topology; and
    that the server is specifically configured to:
    calculate a cost of each link in the network topology according to the available bandwidth and the delay that are of the link in the network topology;
    determine a first transmission path according to the cost of each link in the network topology, and determining whether an available bandwidth of the first transmission path is greater than a transmission rate threshold, wherein the transmission rate threshold is determined by the sending rate requirement, and the transmission rate threshold is greater than the sending rate requirement;
    if the available bandwidth of the first transmission path is greater than the transmission rate threshold, ending a procedure; or if the available bandwidth of the first transmission path is not greater than the transmission rate threshold, adding the first transmission path to a temporary path library; updating the cost of each link in the network topology according to the first transmission path; and determining another transmission path according to an updated cost of each link, and determining whether a sum of an available bandwidth of the another transmission path and an available bandwidth of a transmission path in the temporary path library is greater than the transmission rate threshold; and
    if the sum of the available bandwidth of the another transmission path and the available bandwidth of the transmission path in the temporary path library is greater than the transmission rate threshold, ending a procedure; or if the sum of the available bandwidth of the another transmission path and the available bandwidth of the transmission path in the temporary path library is not greater than the transmission rate threshold, repeatedly performing the process until the sum of the available bandwidth of the another transmission path and the available bandwidth of the transmission path in the temporary path library is greater than the transmission rate threshold.
  14. The system according to claim 12 or 13, wherein the server is further configured to: periodically obtain an actual transmission rate of multi-stream transmission; and
    when the actual transmission rate of multi-stream transmission is greater than a sub-stream deletion transmission rate threshold, determine, if a requirement for the transmission rate threshold is satisfied, a quantity of sub-streams and a sub-stream path that need to be closed; and send the closed sub-stream path and corresponding sub-stream identification information to the SDN controller; or
    when the actual transmission rate of multi-stream transmission is less than a sub-stream addition transmission rate threshold, determine, if a requirement for the transmission rate threshold is satisfied, a quantity of sub-streams and a sub-stream path that need to be added; allocate corresponding sub-stream identification information to each added sub-stream; and send the added sub-stream path and the corresponding sub-stream identification information to the SDN controller; and
    the SDN controller is further configured to receive the closed sub-stream path and the corresponding sub-stream identification information that are sent by the server or the added sub-stream path and the corresponding sub-stream identification information that are sent by the server.
EP17769259.7A 2016-03-25 2017-02-17 Method and device for multi-flow transmission in sdn network Active EP3422646B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201610177868.8A CN107231662B (en) 2016-03-25 2016-03-25 Multi-stream transmission method and device in SDN network
PCT/CN2017/073932 WO2017161982A1 (en) 2016-03-25 2017-02-17 Method and device for multi-flow transmission in sdn network

Publications (3)

Publication Number Publication Date
EP3422646A1 true EP3422646A1 (en) 2019-01-02
EP3422646A4 EP3422646A4 (en) 2019-01-16
EP3422646B1 EP3422646B1 (en) 2020-04-08

Family

ID=59899198

Family Applications (1)

Application Number Title Priority Date Filing Date
EP17769259.7A Active EP3422646B1 (en) 2016-03-25 2017-02-17 Method and device for multi-flow transmission in sdn network

Country Status (5)

Country Link
US (1) US10680928B2 (en)
EP (1) EP3422646B1 (en)
CN (1) CN107231662B (en)
DK (1) DK3422646T3 (en)
WO (1) WO2017161982A1 (en)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109787801B (en) 2017-11-15 2022-01-21 华为技术有限公司 Network service management method, device and system
CN108600102B (en) * 2018-03-29 2020-07-17 北京交通大学 Flexible data transmission system based on intelligent cooperative network
US10484266B2 (en) * 2018-04-12 2019-11-19 Citrix Systems, Inc. Leveraging multi-stream transport protocol capabilities for routing
CN109257282B (en) * 2018-08-09 2020-07-14 北京邮电大学 Data transmission method and device
US10986017B2 (en) * 2018-08-23 2021-04-20 Agora Lab, Inc. Large-scale real-time multimedia communications
CN109756386B (en) * 2018-09-07 2021-09-28 启迪云控(北京)科技有限公司 Communication optimization method and device based on cloud network vehicle cooperation
EP3900263A1 (en) * 2018-12-18 2021-10-27 Telefonaktiebolaget Lm Ericsson (Publ) Method and controller for managing a microwave network
CN109586973B (en) * 2018-12-20 2020-11-10 北京交通大学 Data stream hopping transmission method based on universal identification network system
DE102019207579A1 (en) * 2019-05-23 2020-11-26 Robert Bosch Gmbh Method and device for monitoring data exchange in a communication system
JP7248600B2 (en) * 2020-01-21 2023-03-29 株式会社日立製作所 Computer system and data transfer control method
TWI757887B (en) * 2020-09-24 2022-03-11 國立臺北教育大學 Method, network controller, and computer program product for facilitating multipath transmission of a data stream from a sender to a receiver
CN112243268B (en) * 2020-10-16 2022-07-05 南京邮电大学 Multi-stream transmission control method based on QUIC protocol
CN112968843B (en) * 2021-02-03 2023-02-28 长春理工大学 Multi-path transmission control system and method based on SDN
US11784883B2 (en) * 2021-03-30 2023-10-10 At&T Intellectual Property I, L.P. Automation agent for network equipment configuration
CN113271256B (en) * 2021-04-06 2022-08-30 北京邮电大学 Information age multi-path transmission method and system
CN114866419B (en) * 2022-03-24 2023-12-15 长春理工大学 SDN-based satellite network multipath transmission method
CN115292649B (en) * 2022-08-01 2023-05-23 中国人民解放军32039部队 Parallel method and system for multiple data transmission tasks in aerospace measurement and control system
CN117221126B (en) * 2023-11-09 2024-02-13 之江实验室 Network collaboration flow-oriented route scheduling method and system

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7167486B2 (en) * 2001-01-19 2007-01-23 Shoretel, Inc. Voice traffic through a firewall
CN102857478B (en) 2011-06-30 2016-09-28 华为技术有限公司 media data control method and device
US8937864B2 (en) * 2011-12-06 2015-01-20 Cisco Technology, Inc. Channel quality aware transport flow compensation
CN103346963A (en) * 2013-06-26 2013-10-09 南京昭视畅网络科技有限公司 MPTCP data scheduling method based on forecast arrival time
CN104023408B (en) * 2014-06-26 2017-10-10 北京邮电大学 Scheduler and its data dispatching method based on network multipath footpath parallel transmission
US20160065476A1 (en) * 2014-09-03 2016-03-03 Cisco Technology, Inc. Access network capacity monitoring and planning based on flow characteristics in a network environment
CN104468636A (en) * 2015-01-09 2015-03-25 李忠 SDN structure for DDoS threatening filtering and link reallocating and working method
CN105282169B (en) * 2015-11-04 2018-08-24 中国电子科技集团公司第四十一研究所 Ddos attack method for early warning based on SDN controller threshold values and its system
CN105337857B (en) * 2015-11-23 2018-05-25 北京邮电大学 A kind of multi-path transmission method based on software defined network

Also Published As

Publication number Publication date
CN107231662A (en) 2017-10-03
DK3422646T3 (en) 2020-07-06
US20190028374A1 (en) 2019-01-24
CN107231662B (en) 2020-11-10
US10680928B2 (en) 2020-06-09
WO2017161982A1 (en) 2017-09-28
EP3422646B1 (en) 2020-04-08
EP3422646A4 (en) 2019-01-16

Similar Documents

Publication Publication Date Title
US10680928B2 (en) Multi-stream transmission method and device in SDN network
US11316774B2 (en) Path selection method and apparatus
US11516146B2 (en) Method and system to allocate bandwidth based on task deadline in cloud computing networks
WO2020228469A1 (en) Method, apparatus and system for selecting mobile edge computing node
US10554538B2 (en) Dynamic link state routing protocol
EP2965468B1 (en) Network bandwidth allocation in multi-tenancy cloud computing networks
US20170366467A1 (en) Data traffic control
US20220086846A1 (en) Latency-as-a-service (laas) platform
US9178767B2 (en) Intelligent traffic quota management in split-architecture networks
US20150199208A1 (en) Allocating resources for multi-phase, distributed computing jobs
CN107534981B (en) Resource reallocation
JP2016541198A (en) A framework for traffic engineering in software-defined networking
US10356185B2 (en) Optimal dynamic cloud network control
US20140185519A1 (en) Intelligent Routing of Network Packets on Telecommunication Devices
CN108471629A (en) The control method of business service quality, equipment and system in transmission network
CN109617810B (en) Data transmission method and device
US20140189092A1 (en) System and Method for Intelligent Data Center Positioning Mechanism in Cloud Computing
WO2018086412A1 (en) Time delay control method, apparatus and system
CN110521178A (en) A kind of methods, devices and systems for distributing data
US8391178B2 (en) Route allocation apparatus and method
CN109104742A (en) Congestion window method of adjustment and sending device
JP6563425B2 (en) Multi-hop capability and routing discovery per link
US11252078B2 (en) Data transmission method and apparatus
US10917354B2 (en) System and method for reactive path selection
US9001651B2 (en) Method for call admission control in MPLS networks

Legal Events

Date Code Title Description
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE

PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE

17P Request for examination filed

Effective date: 20180925

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR

AX Request for extension of the european patent

Extension state: BA ME

A4 Supplementary search report drawn up and despatched

Effective date: 20181214

RIC1 Information provided on ipc code assigned before grant

Ipc: H04L 12/735 20130101AFI20181210BHEP

Ipc: H04L 12/715 20130101ALI20181210BHEP

Ipc: H04L 12/707 20130101ALI20181210BHEP

Ipc: H04L 12/721 20130101ALI20181210BHEP

DAV Request for validation of the european patent (deleted)
DAX Request for extension of the european patent (deleted)
GRAP Despatch of communication of intention to grant a patent

Free format text: ORIGINAL CODE: EPIDOSNIGR1

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: GRANT OF PATENT IS INTENDED

INTG Intention to grant announced

Effective date: 20191023

GRAS Grant fee paid

Free format text: ORIGINAL CODE: EPIDOSNIGR3

GRAA (expected) grant

Free format text: ORIGINAL CODE: 0009210

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE PATENT HAS BEEN GRANTED

AK Designated contracting states

Kind code of ref document: B1

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR

REG Reference to a national code

Ref country code: AT

Ref legal event code: REF

Ref document number: 1255856

Country of ref document: AT

Kind code of ref document: T

Effective date: 20200415

Ref country code: CH

Ref legal event code: EP

REG Reference to a national code

Ref country code: DE

Ref legal event code: R096

Ref document number: 602017014549

Country of ref document: DE

REG Reference to a national code

Ref country code: IE

Ref legal event code: FG4D

REG Reference to a national code

Ref country code: DK

Ref legal event code: T3

Effective date: 20200629

REG Reference to a national code

Ref country code: NL

Ref legal event code: FP

REG Reference to a national code

Ref country code: LT

Ref legal event code: MG4D

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: PT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20200817

Ref country code: GR

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20200709

Ref country code: NO

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20200708

Ref country code: LT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20200408

Ref country code: SE

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20200408

Ref country code: FI

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20200408

Ref country code: IS

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20200808

REG Reference to a national code

Ref country code: AT

Ref legal event code: MK05

Ref document number: 1255856

Country of ref document: AT

Kind code of ref document: T

Effective date: 20200408

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: HR

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20200408

Ref country code: LV

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20200408

Ref country code: RS

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20200408

Ref country code: BG

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20200708

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: AL

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20200408

REG Reference to a national code

Ref country code: DE

Ref legal event code: R097

Ref document number: 602017014549

Country of ref document: DE

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: CZ

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20200408

Ref country code: RO

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20200408

Ref country code: IT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20200408

Ref country code: EE

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20200408

Ref country code: SM

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20200408

Ref country code: ES

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20200408

Ref country code: AT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20200408

PLBE No opposition filed within time limit

Free format text: ORIGINAL CODE: 0009261

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: SK

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20200408

Ref country code: PL

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20200408

26N No opposition filed

Effective date: 20210112

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: SI

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20200408

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: MC

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20200408

REG Reference to a national code

Ref country code: BE

Ref legal event code: MM

Effective date: 20210228

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: LI

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20210228

Ref country code: LU

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20210217

Ref country code: CH

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20210228

REG Reference to a national code

Ref country code: DE

Ref legal event code: R079

Ref document number: 602017014549

Country of ref document: DE

Free format text: PREVIOUS MAIN CLASS: H04L0012735000

Ipc: H04L0045128000

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: IE

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20210217

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: BE

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20210228

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: DK

Payment date: 20230213

Year of fee payment: 7

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: CY

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20200408

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: HU

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT; INVALID AB INITIO

Effective date: 20170217

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: FR

Payment date: 20231229

Year of fee payment: 8

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: NL

Payment date: 20240108

Year of fee payment: 8

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: MK

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20200408

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: DE

Payment date: 20231229

Year of fee payment: 8

Ref country code: GB

Payment date: 20240108

Year of fee payment: 8