WO2016154823A1 - 一种数据传输方法、装置和系统 - Google Patents

一种数据传输方法、装置和系统 Download PDF

Info

Publication number
WO2016154823A1
WO2016154823A1 PCT/CN2015/075316 CN2015075316W WO2016154823A1 WO 2016154823 A1 WO2016154823 A1 WO 2016154823A1 CN 2015075316 W CN2015075316 W CN 2015075316W WO 2016154823 A1 WO2016154823 A1 WO 2016154823A1
Authority
WO
WIPO (PCT)
Prior art keywords
transmission
tcp
transmission path
sending
path
Prior art date
Application number
PCT/CN2015/075316
Other languages
English (en)
French (fr)
Inventor
张丰伟
沈伟锋
冯强
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Priority to PCT/CN2015/075316 priority Critical patent/WO2016154823A1/zh
Priority to KR1020177020720A priority patent/KR102045974B1/ko
Priority to JP2017544327A priority patent/JP6389339B2/ja
Priority to EP15886810.9A priority patent/EP3232638B1/en
Priority to CN201580003394.9A priority patent/CN106537867B/zh
Priority to SG11201705572WA priority patent/SG11201705572WA/en
Publication of WO2016154823A1 publication Critical patent/WO2016154823A1/zh
Priority to US15/700,174 priority patent/US10461986B2/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/187Details of sliding window management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/188Time-out mechanisms
    • 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/0823Errors, e.g. transmission errors
    • H04L43/0829Packet loss
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/27Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • H04L47/283Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/166IP fragmentation; TCP segmentation

Definitions

  • the embodiments of the present invention relate to the field of communications, and in particular, to a data transmission method, apparatus, and system.
  • the Transmission Control Protocol is a connection-oriented, reliable, byte stream-based transport layer communication protocol.
  • the TCP layer is located on the Internet Protocol (IP) layer, the middle layer below the application layer, providing reliable, pipe-like connections between application layers of different hosts.
  • IP Internet Protocol
  • the application layer sends a data stream for inter-network transmission to the TCP layer, and then TCP divides the data stream into segments of appropriate length, and then TCP transmits the segment to the IP layer, and transmits the segment to the receiving end through the network.
  • IP Internet Protocol
  • the TCP layer of the entity.
  • TCP is a sliding window protocol, that is, how much data a sender of a TCP connection can send at a certain time is controlled by a sliding window (sending window), and the size of the sliding window can be received by a receiving window (Receive Window, Rwnd) and congestion.
  • the window (Congestion window, Cwnd) is determined by two windows, and its size takes the smaller values of Rwnd and Cwnd.
  • Rwnd indicates how much free space is left in the TCP protocol cache at the receiving end. The sender must ensure that the transmitted data does not exceed this remaining space to avoid buffer overflow. This window is used by the receiving end to limit traffic.
  • Cwnd is the window used by the sender for flow control.
  • TCP performs data transmission on a variety of networks. Because it does not know the data transmission characteristics of the network being operated, TCP must continuously increase or decrease the size of the sliding window to cope with changes in network conditions and perform network conditions. probe. TCP uses four control mechanisms: slow start, congestion avoidance, fast retransmission, and fast recovery for network traffic control.
  • the TCP sender After the TCP connection is established, the TCP sender first tentatively sends a packet message without knowing the network capability.
  • the size of the cwnd is a packet message.
  • ACK acknowledgement
  • Packet packet when receiving the ACK of the two packet messages, cwnd is increased to 4 packet messages, so that each time a ACK of a packet message is received, the value of cwnd is increased by one packet message.
  • SDN Software Defined Network
  • the embodiments of the present invention provide a data transmission method, apparatus, and system, which implement optimization of TCP data transmission in an SDN network.
  • an embodiment of the present invention provides a data transmission method, which is applied to a software-defined network SDN.
  • the controller in the SDN network is connected to a switching device through a southbound interface, and is connected to an application server through a northbound interface.
  • the controller receives a TCP transmission resource allocation request from the application server, where the TCP transmission resource allocation request carries an address of the sending device and an address of the receiving device;
  • the controller Determining, by the controller, the first transmission path and the second transmission path according to the TCP transmission resource allocation request, where the first transmission path is used by the sending device to transmit the data to the receiving device, and the second Transmitting a path for the receiving device to transmit a TCP response message to the sending device;
  • the controller sends a TCP transmission resource allocation response message to the application server, where the TCP transmission resource allocation response message includes bandwidth information of the first transmission path and a TCP round-trip transmission delay, and the TCP round-trip transmission delay indication a pre-time between the time T1 at which the transmitting device issues each data packet through the first transmission path and the time T2 at which the transmitting device receives the TCP response message of each of the data packets through the second transmission path
  • the estimated time difference value, the bandwidth information of the first transmission path and the TCP round-trip transmission delay are used to determine an initial value of a transmission window for performing TCP data transmission between the transmitting device and the receiving device.
  • the method before the controller sends a TCP transmission resource allocation response message to the application server, the method further includes: when the controller acquires the first transmission path And delaying the delay of the second transmission path, and determining the TCP round-trip transmission delay according to a transmission delay of the first transmission path and a transmission delay of the second transmission path, where The TCP round-trip transmission delay is positively correlated with the sum of the transmission delay of the first transmission path and the transmission delay of the second transmission path.
  • the method before the controller sends a TCP transmission resource allocation response message to the application server, the method further includes: the controller Determining a packet loss rate of the first transmission path;
  • the TCP transmission resource allocation response message further includes the packet loss rate of the first transmission path.
  • the TCP transmission resource allocation request further carries a maximum transmission unit MTU value information, where the MTU value information includes Determining a maximum value of the MTU value of the sending device and a maximum value of the MTU value of the receiving device;
  • the method further includes: determining, by the controller, the MTU value of the data transmission in the first transmission path according to the MTU value information in the TCP transmission resource allocation request, where the first transmission path is performed
  • the MTU value of the data transmission is not greater than a smaller value of a maximum value of the MTU value of the sending device and a maximum value of the MTU value of the receiving device;
  • the TCP transmission resource allocation response message further includes an MTU value of the first transmission path for performing the data transmission.
  • the TCP transmission resource allocation request further includes a bandwidth required for transmitting the data
  • the path required for the data is taken as the first transmission path.
  • the controller selects a remaining bandwidth resource from the path between the sending device and the receiving device to satisfy the transmission.
  • the path required by the data as the first transmission path includes: the controller selects remaining bandwidth resources from the transmission device and the receiving device, and the remaining bandwidth resources satisfy all paths required for transmitting the data. The smallest path or the path with the fewest hops is taken as the first transmission path.
  • an embodiment of the present invention provides a controller, which is applied to a software-defined network SDN.
  • the controller is connected to a switching device through a southbound interface, and is connected to an application server through a northbound interface.
  • the controller includes: a processor, a memory, a bus, and a communication interface;
  • the memory is for storing a computing device execution instruction
  • the processor is coupled to the memory via the bus, and when the computing device is running, the processor executes the computer-executed instruction stored by the memory to A method of causing the computing device to perform the first aspect or any of the possible implementations of the first aspect.
  • an embodiment of the present invention provides a data transmission method, which is applied to a software-defined network SDN.
  • the controller in the SDN network is connected to a switching device through a southbound interface, and is connected to an application server through a northbound interface.
  • the application server runs at least one application, and when the application server determines that the data is currently required to be transmitted from the sending device to the receiving device by using the TCP protocol, the method includes:
  • TCP transmission resource allocation request Sending, by the application server, a TCP transmission resource allocation request to the controller, where the TCP transmission resource allocation request carries an address of the sending device and an address of the receiving device;
  • the application server receives a TCP transmission resource allocation response message from the controller, where the TCP transmission resource allocation response message includes a bandwidth of a first transmission path and a TCP round-trip transmission delay, and the TCP round-trip transmission delay indicates the The estimated time difference between the time T1 at which the transmitting device issues each data packet through the first transmission path and the time T2 at which the transmitting device receives the TCP response message of each of the data packets through the second transmission path a value, the first transmission path is used by the sending device to transmit the data to the receiving device, and the second transmission path is used by the receiving device to transmit an answer message to the sending device;
  • the application server determines, according to the bandwidth of the first transmission path and the TCP round-trip transmission delay, that the initial value of the transmission window for performing TCP data transmission between the transmitting device and the receiving device is positively correlated.
  • an initial value of the sending window is positively correlated with a bandwidth of the first transmission path and the TCP round-trip transmission delay, respectively.
  • the TCP transmission resource allocation response message further carries a packet loss ratio of the first transmission path
  • the method further includes: the application server determining an initial value of the sending window according to the packet loss rate, where a positive value of the initial value of the sending window is negatively correlated with the packet loss rate.
  • the method further includes: determining, by the application server, the bandwidth of the first transmission path and the TCP round-trip transmission delay The initial value of the receiving window of the receiving device, the initial value of the receiving window is positively correlated with the bandwidth of the first transmission path and the TCP round-trip transmission delay, respectively.
  • the method further includes: the application server according to the bandwidth of the first transmission path, the TCP round-trip transmission delay, and Determining a packet loss rate, determining an initial value of a receiving window of the receiving device, where an initial value of the receiving window is positively correlated with a bandwidth of the first transmission path and the TCP round-trip transmission delay, respectively, and the packet loss The rate is negatively correlated.
  • the method further includes: the application server sending a sending window setting message to the sending device, where the sending window setting message includes The initial value of the send window.
  • the method further includes: the application server sending a receiving window setting message to the receiving device, where the receiving window setting message includes The initial value of the receive window.
  • the TCP transmission resource allocation request further carries a maximum transmission unit MTU value information, where the MTU value information is used. And indicating a maximum value of the MTU value of the sending device and a maximum value of the MTU value of the receiving device;
  • the TCP transmission resource allocation response message further includes an MTU value of the first transmission path for performing the data transmission;
  • the method further includes: determining, by the application server, an MTU value of the sending device and the receiving device as an MTU value of the data transmission by using the first transmission path.
  • the method further includes: the application server sending an MTU setting message to the sending device and the receiving device, where the MTU setting The message includes an MTU value of the first transmission path.
  • the method the application server determining, according to the TCP round-trip transmission delay, a retransmission timeout period of the sending device, The retransmission timeout period is positively correlated with the TCP round trip transmission delay.
  • the application server further includes: sending, by the application server, a retransmission timeout time setting message to the sending device, where the retransmission timeout period is The setup message contains the retransmission timeout.
  • the method further includes: determining, by the application server, the response waiting time of the receiving device according to the TCP round-trip transmission delay, The response waiting time is positively correlated with the TCP round-trip transmission delay.
  • the method further includes: the application server sending an acknowledgement waiting time setting message to the receiving device, the response message setting message The response waiting time is included.
  • an embodiment of the present invention provides an application server, which is applied to a software-defined network SDN.
  • the SDN controller is connected to the switching device through a southbound interface, and is connected to the application server through a northbound interface, including: a processor, Memory, bus and communication interface;
  • the memory is for storing a computing device execution instruction
  • the processor is coupled to the memory via the bus, and when the computing device is running, the processor executes the computer-executed instruction stored by the memory to A method of causing the computing device to perform any of the possible implementations of the third aspect or the third aspect.
  • an embodiment of the present invention provides a data transmission method, which is applied to a software-defined network SDN.
  • the controller in the SDN network is connected to a switching device through a southbound interface, and is connected to an application server through a northbound interface.
  • the application server runs at least one application, and when the application server determines that the data is currently required to be transmitted from the sending device to the receiving device by using the TCP protocol, the method includes:
  • the sending device receives a sending window setting message, where the sending window setting message includes an initial value of a sending window of the sending device;
  • the transmitting device performs TCP data transmission according to an initial value of the transmission window.
  • the sending device is further configured to receive a maximum transmission unit MTU setting message, where the MTU setting message includes an MTU value when the sending device performs data transmission; And setting an MTU value of the sending device according to the MTU setting message indication.
  • the sending device is further configured to receive a retransmission timeout time setting message, where the retransmission timeout time setting message includes the The retransmission timeout time value of the sending device for performing TCP data transmission is set; and the retransmission timeout time value of the sending device is set according to the retransmission timeout time setting message indication.
  • an embodiment of the present invention provides a computing device, which is applied to a software-defined network SDN.
  • the SDN controller is connected to the switching device through a southbound interface, and is connected to the application server through a northbound interface, where the application server uses
  • the control data is sent from the computing device to the receiving device, including: a processor, a memory, a bus, and a communication interface;
  • the memory is configured to store a computing device execution instruction, and the processor and the memory pass The bus connection, the processor executing the computer-executed instructions stored by the memory to cause the computing device to perform the method of any one of claims 22-24 when the computing device is in operation.
  • an embodiment of the present invention provides a data transmission apparatus, which is applied to a software-defined network SDN, where an SDN controller is connected to a switching device through a southbound interface, and is connected to the application server through a northbound interface, where the application server For transmitting control data from the device to the receiving device, including:
  • a receiving unit configured to receive a sending window setting message, where the sending window setting message includes an initial value of a sending window of the sending device
  • a sending unit configured to perform TCP data transmission according to an initial value of the sending window.
  • the receiving unit is further configured to receive a maximum transmission unit MTU setting message, where the MTU setting message includes an MTU value when the transmitting device performs data transmission.
  • the receiving unit is further configured to receive a retransmission timeout time setting message, where the retransmission timeout time setting message includes the The value of the retransmission timeout time when the sending device performs TCP data transmission.
  • an embodiment of the present invention provides a data transmission apparatus, which is applied to a software-defined network SDN, where the device is connected to a switching device through a southbound interface, and is connected to an application server through a northbound interface, where the application server is used.
  • Control data is sent from the sending device to the receiving device, including:
  • a receiving unit configured to receive a TCP transmission resource allocation request from the application server, where the TCP transmission resource allocation request carries an address of the sending device and an address of the receiving device;
  • a determining unit configured to determine, according to the TCP transmission resource allocation request, a first transmission path and a second transmission path, where the first transmission path is used by the sending device to transmit the data to the receiving device, where The second transmission path is used by the receiving device to transmit a TCP response message to the sending device;
  • a sending unit configured to send, by the application server, a TCP transmission resource allocation response message, where the TCP transmission resource allocation response message includes bandwidth information of the first transmission path and a TCP round-trip transmission delay, and the TCP round-trip transmission delay indication a pre-time between the time T1 at which the transmitting device issues each data packet through the first transmission path and the time T2 at which the transmitting device receives the TCP response message of each of the data packets through the second transmission path Estimated time difference value, bandwidth information of the first transmission path and the TCP round-trip transmission delay are used to determine the transmitting device and the The initial value of the transmission window for performing TCP data transmission between the receiving devices.
  • the determining unit is further configured to: acquire a delay of the first transmission path and a delay of the second transmission path, and according to the first a transmission delay of the transmission path and a transmission delay of the second transmission path determining the TCP round-trip transmission delay, the TCP round-trip transmission delay and the transmission delay of the first transmission path, and the second transmission The sum of the transmission delays of the paths is positively correlated.
  • the determining unit is further configured to: determine a packet loss rate of the first transmission path, in a second possible implementation manner;
  • the TCP transmission resource allocation response message further includes the packet loss rate of the first transmission path.
  • the TCP transmission resource allocation request further carries a maximum transmission unit MTU value information, where the MTU value information includes Determining a maximum value of the MTU value of the sending device and a maximum value of the MTU value of the receiving device;
  • the determining unit is further configured to: determine, according to the MTU value information in the TCP transmission resource allocation request, the MTU value of the data transmission by the first transmission path, where the first transmission path performs the data
  • the MTU value of the transmission is not greater than a smaller value of a maximum value of the MTU value of the sending device and a maximum value of the MTU value of the receiving device;
  • the TCP transmission resource allocation response message further includes an MTU value of the first transmission path for performing the data transmission.
  • the TCP transmission resource allocation request further includes a bandwidth required for transmitting the data
  • the determining unit is configured to determine, according to the TCP transmission resource allocation request, that the first transmission path includes: the determining unit selects, according to a network topology of the switching device, a path between the sending device and the receiving device A remaining bandwidth resource satisfies a path required to transmit the data as the first transmission path.
  • selecting a remaining bandwidth resource from the path between the sending device and the receiving device to satisfy the transmitting the data The required path is used as the first transmission path, and the determining unit is configured to select, between the sending device and the receiving device, that the remaining bandwidth resource meets all the paths required for transmitting the data, and select the remaining bandwidth resource to be the smallest.
  • the path or the path with the fewest hops The first transmission path is described.
  • an embodiment of the present invention provides a data transmission apparatus, which is applied to a software-defined network SDN, where a controller is connected to a switching device through a southbound interface, and is connected to the device through a northbound interface.
  • Running at least one application on the device, the device is configured to control data sent from the sending device to the receiving device, including:
  • a sending unit configured to send a TCP transmission resource allocation request to the controller, where the TCP transmission resource allocation request carries an address of the sending device and an address of the receiving device;
  • a receiving unit configured to receive a TCP transmission resource allocation response message from the controller, where the TCP transmission resource allocation response message includes a bandwidth of a first transmission path and a TCP round-trip transmission delay, where the TCP round-trip transmission delay indicates An estimated time between a time T1 at which the transmitting device issues each data packet through the first transmission path and a time T2 at which the transmitting device receives the TCP response message of each of the data packets through the second transmission path a difference, the first transmission path is used by the sending device to transmit the data to the receiving device, and the second transmission path is used by the receiving device to transmit an answer message to the sending device;
  • a determining unit configured to determine an initial value of a transmission window for performing TCP data transmission between the transmitting device and the receiving device according to a bandwidth of the first transmission path and the TCP round-trip transmission delay, where the sending The initial value of the window is positively correlated with the bandwidth of the first transmission path and the TCP round-trip transmission delay, respectively.
  • an initial value of the sending window is positively correlated with a bandwidth of the first transmission path and the TCP round-trip transmission delay, respectively.
  • the TCP transmission resource allocation response message further carries a packet loss ratio of the first transmission path
  • the determining unit is further configured to: determine an initial value of the sending window according to the packet loss rate, where an initial value of the sending window is negatively correlated with the packet loss rate.
  • the determining unit is further configured to: according to the bandwidth of the first transmission path and the TCP round-trip transmission delay, Determining an initial value of a receiving window of the receiving device, the initial value of the receiving window being positively correlated with a bandwidth of the first transmission path and the TCP round-trip transmission delay, respectively.
  • the determining unit is further configured to: according to a bandwidth of the first transmission path, the TCP round-trip transmission delay, and Determining a packet rate, determining an initial value of a receiving window of the receiving device, the receiving window The initial value of the port is positively correlated with the bandwidth of the first transmission path and the TCP round-trip transmission delay, and is negatively correlated with the packet loss rate.
  • the sending unit is further configured to send a sending window setting message to the sending device, where the sending window setting message includes The initial value of the send window.
  • the sending unit is further configured to send a receiving window setting message to the receiving device, where the receiving window setting message includes The initial value of the receive window.
  • the TCP transmission resource allocation request further carries a maximum transmission unit MTU value information, where the MTU value information is used. And indicating a maximum value of the MTU value of the sending device and a maximum value of the MTU value of the receiving device;
  • the TCP transmission resource allocation response message further includes an MTU value of the first transmission path for performing the data transmission;
  • the determining unit is further configured to determine an MTU value of the sending device and the receiving device as an MTU value of the data transmission by using the first transmission path.
  • the sending unit is further configured to send an MTU setup message to the sending device and the receiving device, where the MTU setting is The message includes an MTU value of the first transmission path.
  • the determining unit is further configured to determine, according to the TCP round-trip transmission delay, a retransmission timeout period of the sending device, The retransmission timeout period is positively correlated with the TCP round trip transmission delay.
  • the sending unit is further configured to send a retransmission timeout time setting message to the sending device, where the retransmission timeout period
  • the setup message contains the retransmission timeout.
  • the determining unit is further configured to determine, according to the TCP round-trip transmission delay, a response waiting time of the receiving device, The response waiting time is positively correlated with the TCP round-trip transmission delay.
  • the sending unit is further configured to send an acknowledgement waiting time setting message to the receiving device, where the response message setting message is The response waiting time is included.
  • an embodiment of the present invention provides a data transmission system, which is applied to a software-defined network SDN, including an application server, a controller, a sending device, a receiving device, and a switching device, where the controller in the SDN network passes through the south direction.
  • the interface is connected to the switching device, and is connected to the application server through the northbound interface, where the application server runs at least one application, and the application server is configured to send control data from the sending device to the receiving device,
  • the application server is configured to send a TCP transmission resource allocation request to the controller, where the TCP transmission resource allocation request carries an address of the sending device and an address of the receiving device;
  • the controller is configured to determine, according to the TCP transmission resource allocation request, a first transmission path and a second transmission path, where the first transmission path is used by the sending device to transmit the data to the receiving device, where And the second transmission path is used by the receiving device to transmit a TCP response message to the sending device, and send a TCP transmission resource allocation response message to the application, where the TCP transmission resource allocation response message includes bandwidth information of the first transmission path.
  • a TCP round-trip transmission delay the TCP round-trip transmission delay indicating a time T1 at which the transmitting device issues each data packet through the first transmission path, and the transmitting device receiving the time through the second transmission path The estimated time difference between times T2 of the TCP response message for each packet;
  • the application server is further configured to determine an initial value of a sending window for performing TCP data transmission between the sending device and the receiving device according to a bandwidth of the first transmission path and the TCP round-trip transmission delay, and Sending a sending window setting message to the sending device, where the sending window setting message includes an initial value of the sending window;
  • the sending device is configured to set a sending window to an initial value of the sending window according to the sending window setting message, and perform TCP data transmission.
  • an initial value of the sending window is positively correlated with a bandwidth of the first transmission path and the TCP round-trip transmission delay, respectively.
  • the controller is further configured to: acquire a delay of the first transmission path and a second transmission path Delaying, and determining, according to the transmission delay of the first transmission path and the transmission delay of the second transmission path, the TCP round-trip transmission delay, the TCP round-trip transmission delay and the first transmission path The sum of the transmission delay and the transmission delay of the second transmission path is positively correlated.
  • the controller is further configured to determine a packet loss ratio of the first transmission path
  • the TCP transmission resource allocation response message further includes the lost of the first transmission path Package rate.
  • the application server is further configured to determine an initial value of the sending window according to the packet loss rate, where the sending window is The initial value is inversely related to the packet loss rate.
  • the application server is further configured to: according to a bandwidth of the first transmission path and the TCP round-trip transmission delay, Determining an initial value of a receiving window of the receiving device, the initial value of the receiving window being positively correlated with a bandwidth of the first transmission path and the TCP round-trip transmission delay, respectively.
  • the application server is further configured to: according to a bandwidth of the first transmission path, the TCP round-trip transmission delay, and Determining, by the packet loss rate, an initial value of a receiving window of the receiving device, where an initial value of the receiving window is positively correlated with a bandwidth of the first transmission path and the TCP round-trip transmission delay, respectively.
  • the packet rate is negatively correlated.
  • the application server is further configured to send a receiving window setting message to the receiving device, where the receiving window setting message includes The initial value of the receiving window;
  • the receiving device is configured to set a value of the receiving window to an initial value of the sending window according to the receiving window setting message indication, and perform TCP data transmission.
  • the TCP transmission resource allocation request further carries a maximum transmission unit MTU value information, where the MTU value information is used. And indicating a maximum value of the MTU value of the sending device and a maximum value of the MTU value of the receiving device;
  • the controller is further configured to: determine, according to the MTU value information in the TCP transmission resource allocation request, the MTU value of the data transmission by the first transmission path, where the first transmission path performs the data
  • the MTU value of the transmission is not greater than a smaller value of a maximum value of the MTU value of the sending device and a maximum value of the MTU value of the receiving device;
  • the TCP transmission resource allocation response message further includes an MTU value of the first transmission path for performing the data transmission.
  • the application server is further configured to determine an MTU value of the sending device and the receiving device as the first a transmission path performs the MTU value of the data transmission, and sends the value to the sending device And sending, by the receiving device, an MTU setting message, where the MTU setting message includes an MTU value of the first transmission path.
  • the application server is further configured to: determine, according to the TCP round-trip transmission delay, a retransmission timeout period of the sending device The retransmission timeout period is positively correlated with the TCP round-trip transmission delay; and the retransmission timeout time setting message is sent to the sending device, where the retransmission timeout time setting message includes the retransmission timeout time.
  • the application server is further configured to: determine, according to the TCP round-trip transmission delay, a response waiting time of the receiving device And the response waiting time is positively correlated with the TCP round-trip transmission delay; and the response waiting time setting message is sent to the receiving device, where the response message setting message includes the response waiting time.
  • the TCP transmission resource allocation request further includes a bandwidth required for transmitting the data
  • the path required by the data is taken as the first transmission path.
  • the controller selects a remaining bandwidth resource from a path between the sending device and the receiving device Having the path required for transmitting the data as the first transmission path includes: the controller from among the sending device and the receiving device, the remaining bandwidth resources satisfy all paths required for transmitting the data, and selecting the remaining The path with the smallest bandwidth resource or the path with the smallest number of hops is used as the first transmission path.
  • the initial transmission window size of the TCP data transmission can be set to bypass the slow start process of the TCP, and the initial value of the transmission window is determined according to the bandwidth of the data transmission path and the TCP round-trip delay. It can transmit at a large throughput, avoiding the problem of halving the sliding window caused by repeated network detection in the prior art, and ultimately affecting the throughput of the network.
  • FIG. 1 is a block diagram of an exemplary networking environment of an SDN data center
  • Figure 2 is a schematic illustration of a computer device suitable for use with the present invention
  • FIG. 3 is a schematic structural diagram of a data transmission system according to an embodiment of the invention.
  • FIG. 4 is an exemplary flowchart of a data transmission method according to an embodiment of the present invention.
  • FIG. 5 is an exemplary flowchart of a data transmission method according to an embodiment of the present invention.
  • FIG. 6 is a schematic structural diagram of a data transmission apparatus according to an embodiment of the present invention.
  • FIG. 7 is a schematic structural diagram of a data transmission apparatus according to an embodiment of the present invention.
  • FIG. 8 is an exemplary flowchart of a data transmission method according to an embodiment of the present invention.
  • FIG. 9 is a schematic structural diagram of a data transmission apparatus according to an embodiment of the present invention.
  • FIG. 10 is a schematic structural diagram of a data transmission apparatus according to an embodiment of the present invention.
  • FIG. 1 shows a prior art SDN data center networking environment 100 in which a network 102 is coupled to an application server 110, a controller 108, a switching device 106, and a computing device 104.
  • the application server 110 runs an application (application), which is in the application layer of the SDN network, including different network services and applications; the controller 108 is in the control layer of the SDN network, and is the logical control center of the SDN network.
  • the switch is connected to the switching device 106 through the southbound interface, provides network commands, maintains the network topology, controls the forwarding of the data by the switching device 106, and then connects to the application server 110 through the northbound interface; the switching device 106 is located at the data forwarding layer of the SDN network.
  • computing device 104 is a host running in the data center network, and data can be transmitted between the two through the TCP protocol.
  • the network 102 may be the Internet, an intranet, a local area network (LAN), a wireless local area network (WLANs), a storage area network (SANs), or the like, or a combination of the above.
  • LAN local area network
  • WLANs wireless local area network
  • SANs storage area network
  • Figure 1 The purpose of Figure 1 is to introduce data center TCP data transfer participants and their interrelationships.
  • the depicted SDN data center environment 100 is greatly simplified. Since some aspects of the SDN data center network are well known in the art, these aspects, such as authentication schemes and security, are not repeated herein.
  • the application server 110, controller 108, transmitting device 104, or receiving device 104 of Figure 1 can be of any architecture.
  • 2 is a block diagram generally showing an exemplary computer device 200 system suitable for use with the application server 110, controller 108, transmitting device 104, or receiving device 104 of FIG.
  • the implementation device system of FIG. 2 is only an example, and does not attempt to impose any limitation on the scope of use or function of the embodiments of the present invention, nor should the application server 110, the controller 108, the transmitting device 104, or the receiving device 104 be interpreted as having Any dependency or requirement relating to any one or combination of the components shown in Figure 2.
  • Computer device 200 includes a memory module 202, a memory controller 216, one or more processors (CPUs) 218, a peripheral interface 220, and a peripheral port 214. These components communicate via one or more communication buses or signal lines 212.
  • Computer device 200 can be any communication electronic device including, but not limited to, a portable computer, a personal desktop computer, a tablet, a cell phone, a personal digital assistant (PDA), a server, a multi-processor system, a microprocessor-based system, a set top box, Programming consumer electronics, network PCs, microcomputers, mainframe computers, and distributed computing environments including any of the above systems or devices.
  • the computer device 200 of FIG. 2 is merely an example of a computer device 200 that may include more or fewer components than those shown in FIG. 2, or have different component configurations.
  • the various components shown in Figure 2 can be implemented in hardware, software, or a combination of hardware and software.
  • the storage module 202 may include high speed random access memory (RAM), and may also include non-volatile memory, such as one or more disk memories, flash memories, or other non-volatile memory.
  • the memory module may further include remote memory separate from the one or more processors 218, such as a network that the RF circuit 222 peripheral port 214 and a communication network (not shown in Figure 2) access.
  • the communication network may be the Internet, Intranets, local area networks (LANs), wide area networks (WLANs), storage area networks (SANs), etc., or a combination of the above.
  • Access to the storage module 202 by other components of the computer device 200, such as access by the CPU 218 and the peripheral interface 220 to the storage module 202, may be controlled by the storage controller 216.
  • Peripheral interface 220 couples peripheral inputs and outputs of computer device 200 to CPU 218 and storage module 202 of the device.
  • the one or more processors 218 process data and perform various functions of the device 200 by running a variety of software and/or executing various instructions stored in the storage module 202.
  • peripheral interface 220, one or more processors 218, and memory controller 216 may be integrated on one chip, such as chip 214. In other embodiments, they may be implemented by different chips.
  • the radio frequency circuit 222 receives and transmits electromagnetic waves.
  • the RF circuit 222 performs electrical/magnetic signal conversion and communicates with a communication network or other communication device via electromagnetic waves.
  • the radio frequency circuit 222 may include circuitry well known to those skilled in the art to perform the above functions, including, for example but not limited to, an antenna system, an RF transceiver, one or more amplifiers, a tuner, one or more oscillators, and one Digital signal processor, a codec chipset, a user identification card (SIM card), memory, and the like.
  • Radio frequency circuitry 222 may be in communication with a communication network, such as the Internet, an intranet, and/or a wireless network, such as a mobile telephone network, a wireless local area network, and/or a metropolitan area network (MAN), or in communication with other devices connected to the network.
  • a communication network such as the Internet, an intranet, and/or a wireless network, such as a mobile telephone network, a wireless local area network, and/or a metropolitan area network (MAN), or in communication with other devices connected to the network.
  • the communication can use a variety of communication standards, protocols and technologies including, for example but not limited to, Hypertext Transfer (HTTP) protocols, Global System for Mobile Communications (GSM), Enhanced Data GSM Environment (EDGE), and Wideband Code Division.
  • HTTP Hypertext Transfer
  • GSM Global System for Mobile Communications
  • EDGE Enhanced Data GSM Environment
  • Wideband Code Division Wideband Code Division
  • W-CDMA Code Division Multiple Access
  • TDMA Time Division Multiple Access
  • Wi-fi Wireless Fidelity
  • VoIP Internet Telephony Protocol
  • Wi-MAX Wireless Wide Area Network
  • IM instant messaging
  • SMS short message service
  • computer device 200 also includes audio circuitry, audio output devices, and audio input devices (not shown) that provide an audio interface between computer device 200 and the user.
  • the audio circuit receives audio data from the peripheral interface 220, converts the audio data into an electrical signal, and transmits the electrical signal to an audio output device, such as a speaker, the audio output device will The learning signal is transformed into a sound wave that the user can hear.
  • the audio circuit is further configured to receive an electrical signal converted from the sound wave by the audio input device, convert the electrical signal to audio data, and transmit the audio data to the peripheral interface 220 for processing. Audio data may be transmitted by peripheral interface 220 to storage module 202 and/or RF circuitry 222 or from storage module 202 and/or RF circuitry 222.
  • the audio circuit may also include a headphone jack (not shown in Figure 2).
  • the headphone jack provides an interface between the audio circuit and the removable audio input/output peripheral, which may be an output-only headset or an input (microphone) and A device that outputs two functions.
  • computer device 200 also includes an I/O subsystem (not shown) that provides an interface between the input/output peripherals of computer device 200 and peripheral interface 220, including, for example, but not Limited to displays and other input/control devices, including I/O subsystems and one or more input controllers for other output or control devices.
  • the one or more input controllers receive/transmit electrical signals from/to other input or control devices.
  • the other input/control devices may include physical buttons (eg, push buttons, rocker buttons, etc.), a keyboard, a joystick, and the like.
  • storage module 202 includes an operating system 204, a communication module (or set of instructions) 206, a graphics module (or set of instructions) 208, and one or more application software (or sets of instructions) 208.
  • Operating system 204 includes controls and management of general system tasks (eg, memory management, storage device control, power management, etc.) Etc.) and various software components and/or drivers that facilitate communication between various hardware and software components.
  • general system tasks eg, memory management, storage device control, power management, etc.
  • software components and/or drivers that facilitate communication between various hardware and software components.
  • Communication module 206 facilitates communication with other devices via one or more peripheral ports 214, and it also includes various software components for processing data received by RF circuitry 222 and/or peripheral port 214.
  • Peripheral port 214 e.g., Universal Serial Bus (USB), FIREWIRE, etc.
  • USB Universal Serial Bus
  • FIREWIRE FireWire
  • Communication module 206 facilitates communication with other devices via one or more peripheral ports 214, and it also includes various software components for processing data received by RF circuitry 222 and/or peripheral port 214.
  • Peripheral port 214 e.g., Universal Serial Bus (USB), FIREWIRE, etc.
  • USB Universal Serial Bus
  • FIREWIRE FireWire
  • Communication module 206 facilitates communication with other devices via one or more peripheral ports 214, and it also includes various software components for processing data received by RF circuitry 222 and/or peripheral port 214.
  • Peripheral port 214 e.g., Universal Serial Bus (USB), FIREWIRE,
  • the one or more application software 208 can include any application installed on the device 200, including but not limited to a browser, address book, contact list, email, instant messaging, word processing, keyboard emulation, widgets ( Widget), JAVA application, encryption, speech recognition, voice replication, positioning (eg GPS by Global Positioning System), music player, etc.
  • FIG. 3 is a schematic diagram of the composition of a data transmission system 300 according to an embodiment of the present invention.
  • the TCP transmission system may include: an application server, a controller, a transmitting device, a receiving device, and a switching device.
  • the system is connected via network 102.
  • the controller is a logical control center of the SDN network, which is connected to the switching device through the southbound interface, provides network instructions to the switching device, and manages the network topology between the switching devices, and connects to the application server through the northbound interface.
  • the application server can control the transmission of data from the transmitting device to the receiving device.
  • the sending device and the receiving device run computing logic or an application program, and the computing logic or the application program is managed by the application running on the application server, and the large amount of data is processed by the computing logic or the application program of the sending device to form a new one.
  • the batch data needs to be coordinated by the application scheduling to send data to the receiving device for processing.
  • the physical ports of the sending device and the receiving device are connected to the SDN network managed by the controller, and the network of the transmitting device and the receiving device communicate with each other. As shown in FIG. 3, the transmitting device is connected to port 11 of the switching device, and the receiving device is connected to the switching device. Port 33 of the device.
  • the controller provides a northbound interface and provides customization of the network path Quality of Service (QOS).
  • QOS Quality of Service
  • the application running on the application server can access the controller's northbound interface through the management network.
  • the application server is configured to send a TCP transmission resource allocation request to the controller, where the TCP transmission resource allocation request carries an address of the sending device and an address of the receiving device.
  • the controller is configured to determine, according to the TCP transmission resource allocation request, a first transmission path and a second transmission path, where the first transmission path is used by the sending device to transmit the data to the receiving device, where And the second transmission path is used by the receiving device to transmit a TCP response message to the sending device, and send a TCP transmission resource allocation response message to the application, where the TCP transmission resource allocation response message includes bandwidth information of the first transmission path.
  • a TCP round-trip transmission delay the TCP round-trip transmission delay indicating a time T1 at which the transmitting device issues each data packet through the first transmission path, and the transmitting device receiving the time through the second transmission path The estimated time difference between times T2 of the TCP response message for each packet.
  • the application server is further configured to determine an initial value of a sending window for performing TCP data transmission between the sending device and the receiving device according to the bandwidth of the first transmission path and the TCP round-trip transmission delay. Determining an initial value of the transmission window and a bandwidth of the first transmission path The TCP round-trip transmission delays are respectively positively correlated, and send a sending window setting message to the sending device, where the sending window setting message includes an initial value of the sending window.
  • the sending device is configured to set a sending window to an initial value of the sending window according to the sending window setting message, and perform TCP data transmission.
  • the initial value of the sending window refers to the amount of data that is allowed to be sent in the first RTT time when the transmitting device performs TCP data transmission.
  • the controller is further configured to: acquire a delay of the first transmission path and a delay of the second transmission path, and according to a transmission delay of the first transmission path and a transmission of the second transmission path The delay determines the TCP round-trip transmission delay, and the TCP round-trip transmission delay is positively correlated with the sum of the transmission delay of the first transmission path and the transmission delay of the second transmission path.
  • the controller detects a transmission delay of the first transmission path and a transmission of the second transmission path according to an operation management and maintenance (OAM) characteristic of the first transmission path and the second transmission path. Delaying the transmission delay of the transmission path, and determining the TCP round-trip transmission according to the transmission delay of the transmission delay transmission path of the first transmission path and the transmission delay of the transmission delay transmission path of the second transmission path The delay, the transmission delay of the TCP round-trip transmission delay and the transmission delay transmission path of the first transmission path, and the transmission delay of the transmission delay transmission path of the second transmission path are respectively positively correlated.
  • OFAM operation management and maintenance
  • the TCP round-trip transmission delay is a sum of a transmission delay of the transmission delay transmission path of the first transmission path and a transmission delay of the transmission delay transmission path of the second transmission path.
  • the controller further estimates a TCP layer processing delay of the receiving device, where a TCP round-trip transmission delay is a transmission delay of the transmission delay transmission path of the first transmission path, and the second transmission The transmission delay of the path and the sum of the TCP layer processing delays of the receiving device.
  • a TCP round-trip transmission delay is a transmission delay of the transmission delay transmission path of the first transmission path, and the second transmission The transmission delay of the path and the sum of the TCP layer processing delays of the receiving device.
  • the controller further estimates a TCP layer processing delay of the sending device, where a TCP round-trip transmission delay is a transmission delay of the transmission delay transmission path of the first transmission path, and the second transmission The transmission delay of the path and the sum of the TCP layer processing delays of the transmitting device and the receiving device.
  • the application server first determines a round-trip delay RTT between the sending device and the receiving device according to the TCP round-trip transmission delay, and the RTT is positively correlated with the TCP round-trip transmission delay.
  • the TCP round-trip transmission delay is determined as a round-trip delay RTT.
  • the application server further estimates a TCP layer processing delay of the sending device and the receiving device, a round-trip delay RTT is a TCP round-trip transmission delay, and a TCP layer processing of the sending device and the receiving device. The sum of the delays.
  • the application server further estimates a TCP layer processing delay of the receiving device, a round-trip delay RTT is a TCP round-trip transmission delay, and a sum of TCP layer processing delays of the receiving device.
  • the sending window size of the sending device can be expressed as:
  • the controller is further configured to determine a packet loss rate of the first transmission path. Then, the TCP transmission resource allocation response message further includes the packet loss rate of the first transmission path.
  • the application server is further configured to determine an initial value of the sending window according to the packet loss rate, where an initial value of the sending window is positively correlated with a bandwidth of the first transmission path and the TCP round-trip transmission delay, respectively. Negative correlation with the packet loss rate.
  • the sending window size of the sending device can be expressed as:
  • Send window first transmission path bandwidth *RTT* (1 - packet loss rate)
  • the application server is further configured to: determine an initial value of a receiving window of the receiving device according to a bandwidth of the first transmission path and the TCP round-trip transmission delay, where an initial value of the receiving window is The bandwidth of the first transmission path and the TCP round-trip transmission delay are respectively positively correlated.
  • the receiving window size of the receiving device can be expressed as:
  • the application server is further configured to: determine an initial value of a receiving window of the receiving device according to the bandwidth of the first transmission path, the TCP round-trip transmission delay, and the packet loss rate, The initial value of the receiving window is positively correlated with the bandwidth of the first transmission path and the TCP round-trip transmission delay, respectively, and is negatively correlated with the packet loss rate.
  • the receiving window size of the receiving device can be expressed as:
  • Rwnd first transmission path bandwidth*RTT*(1-packet loss rate)
  • the application server is further configured to send a receiving window setting message to the receiving device, where the receiving window setting message includes an initial value of the receiving window;
  • the receiving window setting message indicates that the value of the receiving window is set to the initial value of the transmitting window, and TCP data transmission is performed.
  • the sending window is equal to Rwnd, and the sending window size for performing TCP data transmission is determined.
  • the application server is further configured to: determine an initial value of a congestion window Cwnd of the sending device according to a bandwidth of the first transmission path and the TCP round-trip transmission delay, where an initial value of the Cwnd is The bandwidth of the first transmission path and the TCP round-trip transmission delay are respectively positively correlated.
  • the size of the congestion window of the sending device can be expressed as:
  • the application server is further configured to: determine an initial value of a congestion window Cwnd of the sending device according to the bandwidth of the first transmission path, the TCP round-trip transmission delay, and the packet loss rate, where The initial value of Cwnd is positively correlated with the bandwidth of the first transmission path and the TCP round-trip transmission delay, and is negatively correlated with the packet loss rate.
  • the size of the congestion window of the sending device can be expressed as:
  • the application server is further configured to send a congestion window setting message to the sending device, where the congestion window setting message includes an initial value of the congestion window, and the sending device is configured to set a message according to the congestion window. Instructing to set the value of the congestion window to the initial value of the congestion window and perform TCP data transmission.
  • the value of the sending window takes a smaller value of the congestion window and the receiving window.
  • the TCP transmission resource allocation request further carries a maximum transmission unit MTU value information, where the MTU value information is used to indicate a maximum value of the MTU value of the sending device and an MTU of the receiving device. a maximum value; the controller is further configured to: determine, according to the MTU value information in the TCP transmission resource allocation request, the MTU value of the data transmission by the first transmission path, where the first transmission The MTU value of the path for performing the data transmission is not greater than a smaller value of a maximum value of the MTU value of the sending device and a maximum value of the MTU value of the receiving device; the TCP transmission resource allocation response message further includes First transmission path The MTU value of the data transmission is performed.
  • the application server is further configured to determine an MTU value of the sending device and the receiving device as an MTU value of the data transmission by using the first transmission path, and send the value to the sending device and the receiving device. And sending an MTU setting message, where the MTU setting message includes an MTU value of the first transmission path.
  • the controller determines an optimal MTU value of the first transmission path, according to an OAM characteristic of the first transmission path, within a value range indicated by the MTU value information.
  • the sending device and the receiving device set the MTU value of the device to the optimal MTU value, so that the data can be segmented according to the optimal length, thereby achieving more efficient TCP data transmission.
  • the controller is further configured to send an MTU setup message to the switching device on the first transmission path, where the MTU setup message is used to indicate that the switching device on the first transmission path sets the MTU value to the first The transmission path performs the MTU value of the data transmission.
  • the application server is further configured to: determine, according to the TCP round-trip transmission delay, a retransmission timeout period of the sending device, where the retransmission timeout period is positively correlated with the TCP round-trip transmission delay;
  • the sending device sends a retransmission timeout time setting message, where the retransmission timeout time setting message includes the retransmission timeout time.
  • the application server sets the retransmission timeout to the round trip delay RTT.
  • the retransmission timeout period is the maximum waiting time for the response message of the data packet to be returned after the sending device sends a data packet.
  • the application server is further configured to: determine, according to the TCP round-trip transmission delay, a response waiting time of the receiving device, where the response waiting time is positively correlated with the TCP round-trip transmission delay;
  • the receiving device sends an acknowledgement waiting time setting message, and the response message setting message includes the response waiting time.
  • the application server sets the response wait time to the round trip delay RTT.
  • the response waiting time is a maximum waiting time for sending a response message after the receiving device receives a data packet.
  • the application server estimates the expected network bandwidth according to the data volume, the scheduling, the network card characteristics on the sending device and the receiving device, and carries the path bandwidth of the request TCP data transmission in the TCP transmission resource allocation request.
  • the controller determines, according to the TCP transmission resource allocation request, the first transmission.
  • the path includes: selecting, according to a network topology of the switching device, a path of a remaining bandwidth resource from the path between the sending device and the receiving device to satisfy a path required for transmitting the data as the first transmission path.
  • the controller selects, from the path between the sending device and the receiving device, a remaining bandwidth resource that meets a path required for transmitting the data, where the first transmission path includes: the controller Between the transmitting device and the receiving device, the remaining bandwidth resources satisfy all the paths required for transmitting the data, and the path with the smallest remaining bandwidth resource or the path with the smallest hop count is selected as the first transmission path.
  • the controller selects a set of available paths between the sending device and the receiving device according to the network topology of the switching device. As shown in FIG. 3, two paths are optional, and the switching device port can be represented as path 1 (P11). , P12, P31, P33), path 2 (P11, P13, P21, P22, P32, P33). Determine the remaining bandwidth of the switching device port on path 1 and path 2. The physical bandwidth of the port minus the allocated bandwidth is the remaining bandwidth of the port. The minimum remaining bandwidth in the port on the path is the remaining bandwidth of the path.
  • the path with the largest bandwidth is selected as the first transmission path.
  • the controller sends a bandwidth control message to the switching device on the first transmission path, where the bandwidth control message is used to indicate that the switching device on the first transmission path performs the bandwidth of the data transmission.
  • the controller is further configured to: respectively send a flow entry to the switching device on the first transmission path and the second transmission path, to indicate that the switching device on the first transmission path performs TCP data transmission, the switching device on the second transmission path performs the TCP response message transmission.
  • the controller further sends a network resource identifier to the application server, and after the TCP data transmission is completed, the application server further sends a TCP transmission resource release request to the controller, where the TCP transmission resource release request carries the network resource identifier, The controller releases the path resource for performing the TCP data transmission according to the network resource identifier.
  • the TCP data transmission resource and the parameter can be configured reasonably.
  • the application server sends a TCP transmission resource allocation request to the controller through the northbound interface provided by the controller.
  • the controller transmits the data according to TCP.
  • the source allocation request configures the path for performing TCP data transmission, and determines path information such as path bandwidth, TCP round-trip transmission delay, path packet loss rate, and path optimal MTU value.
  • the application server can be implemented. Reasonably configure the parameters of TCP data transmission.
  • the application server can bypass the slow start process of TCP by setting the initial sending window size of the TCP data transmission, and the initial value of the sending window is determined according to the bandwidth of the data transmission path and the TCP round-trip delay.
  • Large throughput transmission avoids the halving of the sliding window caused by repeated network detection in the prior art, and ultimately affects the throughput of the network.
  • the MTU value returned by the controller determines that the data can be followed. The optimal length is segmented and transmitted on the network device for more efficient TCP data transmission.
  • the TCP transmission method 400 can be performed by a controller of the SDN data center.
  • the method 400 is specifically applied to a software-defined network SDN.
  • the controller in the SDN network is a logical control center of the SDN network, which is connected to the switching device through the southbound interface, provides network instructions to the switching device, and manages between the switching devices.
  • the network topology is connected to the application server through the northbound interface, and the application server runs at least one application. When the application server determines that the data needs to be transmitted from the sending device to the receiving device by using the TCP protocol, as shown in FIG. 4, the method is as shown in FIG. Specifically:
  • the controller receives a TCP transmission resource allocation request from the application server, where the TCP transmission resource allocation request carries an address of the sending device and an address of the receiving device.
  • the sending device address and the receiving device address are an Internet Protocol (IP) address or a Media Access Control (MAC) address.
  • IP Internet Protocol
  • MAC Media Access Control
  • the controller provides a northbound interface, and provides a network path quality of service (QOS) customization function, and the application running on the application server can access the controller's northbound interface through the management network.
  • QOS quality of service
  • S404 The controller determines, according to the TCP transmission resource allocation request, a first transmission path and a second transmission path, where the first transmission path is used by the sending device to transmit the data to the receiving device, where The second transmission path is used by the receiving device to transmit a TCP response message to the sending device.
  • the controller sends a TCP transmission resource allocation response message to the application server, where the TCP transmission resource allocation response message includes bandwidth information of the first transmission path and a TCP round-trip transmission delay, where the TCP round-trip transmission Deferred between the time T1 at which the transmitting device sends each data packet through the first transmission path and the time T2 when the transmitting device receives the TCP response message of each data packet through the second transmission path Estimated time difference value, the bandwidth information of the first transmission path and the TCP round-trip transmission delay are used to determine an initial value of a transmission window for performing TCP data transmission between the transmitting device and the receiving device .
  • the method 400 further includes: the controller acquiring a delay of the first transmission path and a delay of the second transmission path, and Determining, according to the transmission delay of the first transmission path and the transmission delay of the second transmission path, the TCP round-trip transmission delay, the TCP round-trip transmission delay and the transmission delay of the first transmission path The sum of the transmission delays of the second transmission path is positively correlated.
  • the controller detects a transmission delay of the first transmission path and a transmission of the second transmission path according to an operation management and maintenance (OAM) characteristic of the first transmission path and the second transmission path. Delaying, and determining a TCP round-trip transmission delay according to the transmission delay of the first transmission path and the transmission delay of the second transmission path.
  • OAM operation management and maintenance
  • the TCP round-trip transmission delay is a sum of a transmission delay of the first transmission path and a transmission delay of the second transmission path.
  • the controller further estimates a TCP layer processing delay of the receiving device, a TCP round-trip transmission delay is a transmission delay of the first transmission path, and a transmission delay of the second transmission path, And a sum of TCP layer processing delays of the receiving device.
  • the controller further estimates a TCP layer processing delay of the sending device, a TCP round-trip transmission delay is a transmission delay of the first transmission path, and a transmission delay of the second transmission path, And a sum of TCP layer processing delays of the transmitting device and the receiving device.
  • the method 400 further includes: before the controller sends the TCP transmission resource allocation response message to the application server, the method further includes: the controller determining a packet loss rate of the first transmission path; The TCP transmission resource allocation response message further includes the first transmission path The packet loss rate.
  • the controller calculates the packet loss rate on the first transmission path according to the experience database, and superimposes the reserved packet loss rate to determine the packet loss rate information of the first transmission path.
  • the TCP transmission resource allocation request further carries a maximum transmission unit MTU value information, where the MTU value information includes a maximum value of the MTU value of the sending device and an MTU value of the receiving device.
  • the method 400 further includes: the controller determining, according to the MTU value information in the TCP transmission resource allocation request, the MTU value of the data transmission by the first transmission path, where the first The value of the MTU of the data transmission for the transmission path is not greater than a smaller value of the maximum value of the MTU of the sending device and the maximum value of the MTU of the receiving device; then, the TCP transmission resource allocation response message The MTU value of the data transmission performed by the first transmission path is further included.
  • the controller determines, according to the OAM characteristic of the first transmission path, the optimal MTU value of the first transmission path within a value range indicated by the MTU value information, so as to ensure that the data is divided according to the optimal length. Segments to achieve more efficient TCP data transfer.
  • the TCP transmission resource allocation request further includes a bandwidth required for transmitting the data; and the controller determines, according to the TCP transmission resource allocation request, that the first transmission path includes: according to a network topology of the switching device, In the path between the transmitting device and the receiving device, a remaining bandwidth resource is selected as a path required to transmit the data as the first transmission path.
  • the controller selects, from the path between the sending device and the receiving device, a remaining bandwidth resource that meets a path required for transmitting the data as the first transmission path, where the controller includes: Between the sending device and the receiving device, the remaining bandwidth resources satisfy all paths required for transmitting the data, and the path with the smallest remaining bandwidth resource or the path with the smallest hop count is selected as the first transmission path.
  • the controller selects a set of available paths between the sending device and the receiving device according to the network topology of the switching device, determines remaining bandwidth of the switching device port on the available path, and subtracts the allocated bandwidth from the physical bandwidth of the port. That is, the remaining bandwidth of the port is obtained, and the value of the remaining bandwidth in the port on the path is the smallest remaining bandwidth of the path.
  • the path with the largest bandwidth is selected as the first transmission path.
  • the method 400 further includes: the controller sending a bandwidth control message to the switching device on the first transmission path, where the bandwidth control message is used to indicate that the switching device on the first transmission path performs the bandwidth of the data transmission .
  • the method 400 further includes: sending a flow entry to the switching device on the first transmission path and the second transmission path, respectively, for indicating that the switching device on the first transmission path performs TCP data transmission. And the switching device on the second transmission path performs the TCP response message transmission.
  • the controller can reasonably allocate the TCP data transmission resource, and the controller receives the TCP transmission resource allocation request of the application server through the northbound interface, and configures the TCP data transmission according to the TCP transmission resource allocation request.
  • the application server can bypass the slow start process of TCP by setting the initial sending window size of the TCP data transmission, and the initial value of the sending window is determined according to the bandwidth of the data transmission path and the TCP round-trip delay.
  • the MTU value returned by the controller determines that the data can be followed.
  • the optimal length is segmented and transmitted on the network device for more efficient TCP data transmission.
  • FIG. 5 is an exemplary flowchart of a data transmission method 500 for implementing a more efficient TCP data transmission according to an embodiment of the present invention.
  • the method 500 is specifically applied to a software-defined network SDN, where the controller is an SDN network.
  • the logical control center connects to the switching device through the southbound interface, provides network commands to the switching device, manages the network topology between the switching devices, and connects to the application server through the northbound interface.
  • the TCP transmission method 500 can be performed by an application server of the SDN data center. More specifically, the method 500 can be performed by an application running on the application server.
  • the application determines that data needs to be transmitted from the sending device to the receiving device by using the TCP protocol, as shown in FIG. 5, the method is specifically:
  • the application server sends a TCP transmission resource allocation request to the controller, where the TCP transmission resource allocation request carries an address of the sending device and an address of the receiving device.
  • the application server receives a TCP transmission resource allocation response message from the controller, where the TCP transmission resource allocation response message includes a bandwidth of a first transmission path and a TCP round-trip transmission delay, and the TCP round-trip transmission delay indication
  • the estimated time between the time T1 at which the transmitting device issues each data packet through the first transmission path and the time T2 at which the transmitting device receives the TCP response message of each of the data packets through the second transmission path a time difference, the first transmission path is used by the sending device to transmit the data to the receiving device, and the second transmission path is used by the receiving device to transmit an answer message to the sending device.
  • the application server determines an initial value of a sending window for performing TCP data transmission between the sending device and the receiving device according to the bandwidth of the first transmission path and the TCP round-trip transmission delay.
  • the initial value of the transmission window is positively correlated with the bandwidth of the first transmission path and the TCP round-trip transmission delay, respectively.
  • the application server first determines a round-trip delay RTT between the sending device and the receiving device according to the TCP round-trip transmission delay, and the RTT is positively correlated with the TCP round-trip transmission delay.
  • the TCP round-trip transmission delay is determined as a round-trip delay RTT.
  • the application server further estimates a TCP layer processing delay of the sending device and the receiving device, a round-trip delay RTT is a TCP round-trip transmission delay, and a TCP layer processing of the sending device and the receiving device. The sum of the delays.
  • the application server further estimates a TCP layer processing delay of the receiving device, a round-trip delay RTT is a TCP round-trip transmission delay, and a sum of TCP layer processing delays of the receiving device.
  • the initial value of the sending window is positively correlated with the bandwidth of the first transmission path and the TCP round-trip transmission delay, respectively.
  • the sending window size of the sending device can be expressed as:
  • the TCP transmission resource allocation response message further includes a packet loss rate of the first transmission path, where the application server is further configured to determine an initial value of the sending window according to the packet loss rate, The initial value of the transmission window is positively correlated with the bandwidth of the first transmission path and the TCP round-trip transmission delay, respectively, and is negatively correlated with the packet loss rate.
  • the sending window size of the sending device can be expressed as:
  • Send window first transmission path bandwidth *RTT* (1 - packet loss rate)
  • the application server is further configured to: determine an initial value of a receiving window of the receiving device according to a bandwidth of the first transmission path and the TCP round-trip transmission delay, where an initial value of the receiving window is The bandwidth of the first transmission path and the TCP round-trip transmission delay are respectively positively correlated.
  • the receiving window size of the receiving device can be expressed as:
  • the application server is further configured to: determine an initial value of a receiving window of the receiving device according to the bandwidth of the first transmission path, the TCP round-trip transmission delay, and the packet loss rate, The initial value of the receiving window is positively correlated with the bandwidth of the first transmission path and the TCP round-trip transmission delay, respectively, and is negatively correlated with the packet loss rate.
  • the receiving window size of the receiving device can be expressed as:
  • Rwnd first transmission path bandwidth*RTT*(1-packet loss rate)
  • the application server is further configured to send a sending window setting message to the sending device, where the sending window setting message includes an initial value of the sending window.
  • the transmitting device receives a sending window setting message, sets a sending window as an initial value of the sending window according to the sending window setting message, and performs TCP data transmission according to the size of the sending window.
  • the application server is further configured to send a receiving window setting message to the receiving device, where the receiving window setting message includes an initial value of the receiving window.
  • the receiving device receives the receiving window setting message, and sets a receiving window size of the receiving device to the receiving window initial value according to the receiving window setting message indication.
  • the sending window is equal to Rwnd, and the sending window size for performing TCP data transmission is determined.
  • the application server is further configured to: determine an initial value of a congestion window Cwnd of the sending device according to a bandwidth of the first transmission path and the TCP round-trip transmission delay, where an initial value of the Cwnd is The bandwidth of the first transmission path and the TCP round-trip transmission delay are respectively positively correlated.
  • the size of the congestion window of the sending device can be expressed as:
  • the application server is further configured to: according to the bandwidth of the first transmission path, Determining a TCP round-trip transmission delay and the packet loss rate, determining an initial value of a congestion window Cwnd of the sending device, where an initial value of the Cwnd is different from a bandwidth of the first transmission path and the TCP round-trip transmission delay respectively Positive correlation, negatively correlated with the packet loss rate.
  • the size of the congestion window of the sending device can be expressed as:
  • the application server is further configured to send a congestion window setting message to the sending device, where the congestion window setting message includes an initial value of the congestion window, and the sending device is configured to set a message according to the congestion window. Instructing to set the value of the congestion window to the initial value of the congestion window and perform TCP data transmission.
  • the value of the sending window takes a smaller value of the congestion window and the receiving window.
  • the TCP transmission resource allocation request further carries a maximum transmission unit MTU value information, where the MTU value information is used to indicate a maximum value of the MTU value of the sending device and an MTU of the receiving device. a maximum value of the value;
  • the TCP transmission resource allocation response message further includes an MTU value of the first transmission path for performing the data transmission;
  • the application server is further configured to: use the MTU of the sending device and the receiving device The value is determined as the MTU value of the data transmission performed by the first transmission path.
  • the application server is further configured to send an MTU setup message to the sending device and the receiving device, where the MTU setup message includes an MTU value of the first transmission path.
  • the transmitting device receives a maximum transmission unit MTU setting message, and sets an MTU value of the sending device according to the MTU setting message indication.
  • the receiving device receives a maximum transmission unit MTU setting message, and sets an MTU value of the receiving device according to the MTU setting message indication.
  • the controller determines an optimal MTU value of the first transmission path, according to an OAM characteristic of the first transmission path, within a value range indicated by the MTU value information.
  • the sending device and the receiving device set the MTU value of the device to the optimal MTU value, so that the data can be segmented according to the optimal length, thereby achieving more efficient TCP data transmission.
  • the application server is further configured to: determine, according to the TCP round-trip transmission delay, a retransmission timeout period of the sending device, the retransmission timeout period and the TCP round-trip transmission delay Positively correlating; and sending a retransmission timeout setting message to the sending device, where the retransmission timeout setting message includes the retransmission timeout period.
  • the application server sets the retransmission timeout to the round trip delay RTT.
  • the retransmission timeout period is the maximum waiting time for the response message of the data packet to be returned after the sending device sends a data packet.
  • the application server is further configured to: determine, according to the TCP round-trip transmission delay, a response waiting time of the receiving device, where the response waiting time is positively correlated with the TCP round-trip transmission delay;
  • the receiving device sends an acknowledgement waiting time setting message, and the response message setting message includes the response waiting time.
  • the application server sets the response wait time to the round trip delay RTT.
  • the response waiting time is a maximum waiting time for sending a response message after the receiving device receives a data packet.
  • the application server sends a TCP transmission resource allocation request to the controller through the northbound interface of the controller.
  • the application server estimates the expected network bandwidth according to the data volume, the scheduling, the network card characteristics on the sending device and the receiving device, and carries the path bandwidth of the request TCP data transmission in the TCP transmission resource allocation request.
  • the TCP layer Because the bandwidth of TCP data transmission is already reserved when the path is lost, when the TCP layer receives the third repeated ACK, it indicates that the path is in the congestion phase, keeps the transmission window unchanged, and retransmits the lost message.
  • the application server can properly configure the parameters of the TCP data transmission.
  • the application server sends a TCP transmission resource allocation request to the controller through the northbound interface of the controller, requesting The path resource for performing TCP data transmission, after the controller configures the path according to the TCP transmission resource allocation request, receives the TCP transmission resource allocation response message sent by the controller, and the application server determines the parameter of the TCP data transmission according to the TCP transmission resource allocation response message.
  • the initial send window size of the TCP data transmission By setting the initial send window size of the TCP data transmission, bypassing the slow start process of TCP, and the initial value of the send window is based on
  • the bandwidth of the data transmission path and the TCP round-trip delay are determined to be transmitted with a large throughput, which avoids the halving of the sliding window caused by repeated network detection in the prior art, and ultimately affects the throughput of the network.
  • the problem through the MTU value returned by the controller, determines that the data can be segmented according to the optimal length and transmitted on the network device, so that more efficient TCP data transmission can be realized.
  • FIG. 6 is a schematic diagram showing the logical structure of a data transmission device 600 according to an embodiment of the present invention.
  • the device 600 is applied to a software-defined network SDN, which is connected to a switching device through a southbound interface, and is connected to an application server through a northbound interface.
  • the server is configured to send control data from the sending device to the receiving device.
  • the data transmitting device 600 may include: a receiving unit 602, a determining unit 604, and a sending unit 606.
  • the receiving unit 602 is configured to receive a TCP transmission resource allocation request from the application server, where the TCP transmission resource allocation request carries an address of the sending device and an address of the receiving device.
  • a determining unit 604 configured to determine, according to the TCP transmission resource allocation request, a first transmission path and a second transmission path, where the first transmission path is used by the sending device to transmit the data to the receiving device, The second transmission path is used by the receiving device to transmit a TCP response message to the sending device.
  • the sending unit 606 is configured to send, by the application server, a TCP transmission resource allocation response message, where the TCP transmission resource allocation response message includes bandwidth information of the first transmission path and a TCP round-trip transmission delay, and the TCP round-trip transmission delay Determining between the time T1 at which the transmitting device issues each data packet through the first transmission path and the time T2 at which the transmitting device receives the TCP response message of each of the data packets through the second transmission path.
  • the estimated time difference value, the bandwidth information of the first transmission path and the TCP round-trip transmission delay are used to determine an initial value of a transmission window for performing TCP data transmission between the transmitting device and the receiving device.
  • the determining unit 604 is further configured to: acquire a delay of the first transmission path and a delay of the second transmission path, and according to the transmission delay of the first transmission path and the second transmission path
  • the transmission delay determines the TCP round-trip transmission delay, and the TCP round-trip transmission delay is positively correlated with the sum of the transmission delay of the first transmission path and the transmission delay of the second transmission path.
  • the determining unit 604 is further configured to: determine a packet loss rate of the first transmission path; then, the TCP transmission resource allocation response message further includes the packet loss of the first transmission path rate.
  • the TCP transmission resource allocation request further carries a maximum transmission unit MTU value information, where the MTU value information includes a maximum value of the MTU value of the sending device and an MTU value of the receiving device.
  • the determining unit 604 is further configured to: determine, according to the MTU value information in the TCP transmission resource allocation request, the MTU value of the data transmission by the first transmission path, where the first transmission path is The value of the MTU for performing the data transmission is not greater than a value of a maximum value of the value of the MTU of the sending device and a maximum value of the value of the MTU of the receiving device; and the TCP transmission resource allocation response message further includes The first transmission path performs an MTU value of the data transmission.
  • the TCP transmission resource allocation request further includes a bandwidth required for transmitting the data;
  • the determining unit 604 is configured to determine, according to the TCP transmission resource allocation request, that the first transmission path includes: the determining unit 604 is configured according to And a network topology of the switching device, from the path between the sending device and the receiving device, selecting a remaining bandwidth resource to satisfy a path required for transmitting the data as the first transmission path.
  • the determining unit 604 is configured to select, from a path between the sending device and the receiving device, a remaining bandwidth resource that meets a path required for transmitting the data as the first transmission path, where: The determining unit 604 is configured to select, from the sending device and the receiving device, that the remaining bandwidth resource meets all paths required for transmitting the data, and select a path with the smallest remaining bandwidth resource or a path with the least hop count as the first Transmission path.
  • the sending unit 606 is further configured to: send a bandwidth control message to the switching device on the first transmission path, where the bandwidth control message is used to indicate that the switching device on the first transmission path performs the bandwidth of the data transmission. .
  • the sending device address and the receiving device address are an Internet Protocol (IP) address or a Media Access Control (MAC) address.
  • IP Internet Protocol
  • MAC Media Access Control
  • the device 600 provides a northbound interface, and provides a network path quality of service (QOS) customization function, and the application running on the application server can access the northbound interface of the controller through the management network.
  • QOS quality of service
  • the determining unit 604 selects an available path set between the sending device and the receiving device according to a network topology of the switching device, determines a remaining bandwidth of the switching device port on the available path, and subtracts the physical bandwidth of the port from the allocated device.
  • Bandwidth is the remaining bandwidth of the port, the road The minimum remaining bandwidth in the port on the trail is the remaining bandwidth of the path.
  • the determining unit 604 selects the path with the largest bandwidth as the first transmission path.
  • the determining unit 604 detects the transmission delay of the first transmission path and the second transmission path according to an operation management and maintenance (OAM) characteristic of the first transmission path and the second transmission path. Transmitting a delay, and determining a TCP round-trip transmission delay, a TCP round-trip transmission delay, and a transmission delay of the first transmission path according to the transmission delay of the first transmission path and the transmission delay of the second transmission path The transmission delay of the second transmission path is positively correlated.
  • OAM operation management and maintenance
  • the TCP round-trip transmission delay is a sum of a transmission delay of the first transmission path and a transmission delay of the second transmission path.
  • the determining unit 604 further estimates a TCP layer processing delay of the sending device and the receiving device, where a TCP round-trip transmission delay is a transmission delay of the first transmission path, and the second transmission The transmission delay of the path and the sum of the TCP layer processing delays of the transmitting device and the receiving device.
  • the determining unit 604 further estimates a TCP layer processing delay of the receiving device, a TCP round-trip transmission delay is a transmission delay of the first transmission path, and a transmission delay of the second transmission path. And the sum of the TCP layer processing delays of the receiving device.
  • the determining unit 604 calculates the packet loss rate on the first transmission path according to the experience database, and superimposes the reserved packet loss rate to determine the packet loss rate information of the first transmission path.
  • the determining unit 604 determines, according to the OAM characteristic of the first transmission path, an optimal MTU value of the first transmission path within a value range indicated by the MTU value information, so as to ensure that the data is performed according to an optimal length. Segmentation for more efficient TCP data transfer.
  • the sending unit 606 is further configured to: respectively send a flow entry to the switching device on the first transmission path and the second transmission path, to indicate the switching device on the first transmission path Performing TCP data transmission, the switching device on the second transmission path performs the TCP response message transmission.
  • the device 600 can implement reasonable allocation of TCP data transmission resources, and the device 600 receives the TCP transmission resource of the application server through the northbound interface.
  • the allocation request, the path and bandwidth of the TCP data transmission are reasonably configured according to the TCP transmission resource allocation request, and the information such as the TCP round-trip transmission delay, the path packet loss rate, and the path optimal MTU value of the path are determined, and the path information is returned to the application.
  • the parameters of the TCP data transmission can be properly configured by the application server.
  • the application server can bypass the slow start process of TCP by setting the initial sending window size of the TCP data transmission, and the initial value of the sending window is determined according to the bandwidth of the data transmission path and the TCP round-trip delay.
  • Large throughput transmission avoids the halving of the sliding window caused by repeated network detection in the prior art, and ultimately affects the throughput of the network.
  • the MTU value returned by the controller determines that the data can be followed. The optimal length is segmented and transmitted on the network device for more efficient TCP data transmission.
  • FIG. 7 is a schematic diagram of a logical structure of a data transmission apparatus 700 according to an embodiment of the present invention.
  • the apparatus 700 is applied to a software-defined network SDN.
  • the controller in the SDN network is connected to a switching device through a southbound interface, and passes through a northbound interface.
  • the device is connected, and the device runs an application, and the application is used to send control data from the sending device to the receiving device.
  • the data transmitting device 700 may include: a sending unit 702, a receiving unit 704. Determine unit 706.
  • the sending unit 702 is configured to send a TCP transmission resource allocation request to the controller, where the TCP transmission resource allocation request carries an address of the sending device and an address of the receiving device.
  • the receiving unit 704 is configured to receive a TCP transmission resource allocation response message from the controller, where the TCP transmission resource allocation response message includes a bandwidth of the first transmission path and a TCP round-trip transmission delay, and the TCP round-trip transmission delay indication
  • the estimated time between the time T1 at which the transmitting device issues each data packet through the first transmission path and the time T2 at which the transmitting device receives the TCP response message of each of the data packets through the second transmission path a time difference, the first transmission path is used by the sending device to transmit the data to the receiving device, and the second transmission path is used by the receiving device to transmit an answer message to the sending device.
  • a determining unit 706, configured to determine an initial value of a sending window for performing TCP data transmission between the sending device and the receiving device according to a bandwidth of the first transmission path and the TCP round-trip transmission delay, The initial value of the transmission window is positively correlated with the bandwidth of the first transmission path and the TCP round-trip transmission delay, respectively.
  • the TCP transmission resource allocation response message further carries the first transmission path
  • the determining unit 706 is further configured to determine an initial value of the sending window according to the packet loss rate, an initial value of the sending window, and a bandwidth of the first transmission path and the TCP round-trip transmission.
  • the delays are positively correlated, respectively, and are negatively correlated with the packet loss rate.
  • the determining unit 706 is further configured to: determine an initial value of a receiving window of the receiving device according to a bandwidth of the first transmission path and the TCP round-trip transmission delay, and an initial value of the receiving window There is a positive correlation with the bandwidth of the first transmission path and the TCP round-trip transmission delay, respectively.
  • the determining unit 706 is further configured to: determine an initial value of the receiving window of the receiving device according to the bandwidth of the first transmission path, the TCP round-trip transmission delay, and the packet loss rate, where The initial value of the receiving window is positively correlated with the bandwidth of the first transmission path and the TCP round-trip transmission delay, and is negatively correlated with the packet loss rate.
  • the sending unit 702 is further configured to send a sending window setting message to the sending device, where the sending window setting message includes an initial value of the sending window.
  • the sending unit 702 is further configured to send a receiving window setting message to the receiving device, where the receiving window setting message includes an initial value of the receiving window.
  • the determining unit 706 is further configured to: determine an initial value of a congestion window Cwnd of the sending device according to a bandwidth of the first transmission path and the TCP round-trip transmission delay, and an initial value of the Cwnd There is a positive correlation with the bandwidth of the first transmission path and the TCP round-trip transmission delay, respectively.
  • the determining unit 706 is further configured to: determine an initial value of the congestion window Cwnd of the sending device according to the bandwidth of the first transmission path, the TCP round-trip transmission delay, and the packet loss rate, The initial value of the Cwnd is positively correlated with the bandwidth of the first transmission path and the TCP round-trip transmission delay, respectively, and is negatively correlated with the packet loss rate.
  • the sending unit 702 is further configured to send a congestion window setting message to the sending device, where the congestion window setting message includes an initial value of the congestion window; and the sending device indicates, according to the congestion window setting message The value of the congestion window is set to the initial value of the congestion window, and TCP data transmission is performed.
  • the value of the sending window takes a smaller value of the congestion window and the receiving window.
  • the TCP transmission resource allocation request further carries a maximum transmission unit MTU value information, where the MTU value information is used to indicate a maximum value of the MTU value of the sending device and an MTU of the receiving device. a maximum value of the value; the TCP transmission resource allocation response message further includes an MTU value of the first transmission path for performing the data transmission; the determining unit 706 is further configured to: the sending device and the receiving device The MTU value is determined as the MTU value of the data transmission performed by the first transmission path.
  • the sending unit 702 is further configured to send an MTU setting message to the sending device and the receiving device, where the MTU setting message includes an MTU value of the first transmission path.
  • the determining unit 706 is further configured to determine, according to the TCP round-trip transmission delay, a retransmission timeout period of the sending device, where the retransmission timeout period is positively correlated with the TCP round-trip transmission delay.
  • the sending unit 702 is further configured to send a retransmission timeout setting message to the sending device, where the retransmission timeout setting message includes the retransmission timeout period.
  • the determining unit 706 is further configured to determine, according to the TCP round-trip transmission delay, a response waiting time of the receiving device, where the response waiting time is positively correlated with the TCP round-trip transmission delay. Then, the sending unit is further configured to send an acknowledgement waiting time setting message to the receiving device, where the response message setting message includes the response waiting time.
  • the transmitting unit 702 transmits a TCP transmission resource allocation request to the controller through the northbound interface of the controller.
  • the determining unit 706 first determines a round-trip delay RTT between the sending device and the receiving device according to the TCP round-trip transmission delay, and the RTT is positively correlated with the TCP round-trip transmission delay.
  • the determining unit 706 determines the TCP round-trip transmission delay as a round-trip delay RTT.
  • the determining unit 706 further estimates a TCP layer processing delay of the sending device and the receiving device, a round-trip delay RTT is a TCP round-trip transmission delay, and a TCP layer of the sending device and the receiving device. Handle the sum of delays.
  • the determining unit 706 further estimates a TCP layer processing delay of the receiving device, a round-trip delay RTT is a TCP round-trip transmission delay, and a sum of TCP layer processing delays of the receiving device.
  • the sending window size of the sending device can be expressed as:
  • the receiving window size of the receiving device can be expressed as:
  • the sending window size of the sending device can be expressed as:
  • Send window first transmission path bandwidth *RTT* (1 - packet loss rate)
  • the receiving window size of the receiving device can be expressed as:
  • Rwnd first transmission path bandwidth*RTT*(1-packet loss rate)
  • the determining unit 706 sets the retransmission timeout time to a round trip delay RTT.
  • the determining unit 706 sets the response waiting time to the round trip delay RTT.
  • the determining unit 706 is further configured to: determine an initial value of a congestion window Cwnd of the sending device according to a bandwidth of the first transmission path and the TCP round-trip transmission delay, and an initial value of the Cwnd There is a positive correlation with the bandwidth of the first transmission path and the TCP round-trip transmission delay, respectively.
  • the size of the congestion window of the sending device can be expressed as:
  • the determining unit 706 is further configured to: determine an initial value of the congestion window Cwnd of the sending device according to the bandwidth of the first transmission path, the TCP round-trip transmission delay, and the packet loss rate, The initial value of the Cwnd is positively correlated with the bandwidth of the first transmission path and the TCP round-trip transmission delay, respectively, and is negatively correlated with the packet loss rate.
  • the size of the congestion window of the sending device can be expressed as:
  • the sending unit 702 is further configured to send a congestion window setting message to the sending device, where the congestion window setting message includes an initial value of the congestion window, and the sending device is configured to set according to the congestion window.
  • the message indicates that the value of the congestion window is set to the initial value of the congestion window, and TCP data transmission is performed.
  • the value of the sending window takes a smaller value of the congestion window and the receiving window.
  • the device 700 can reasonably configure the parameters of the TCP data transmission.
  • the device 700 sends a TCP transmission resource allocation request to the controller through the northbound interface of the controller, requesting The path of TCP data transmission
  • the path resource receives the TCP transmission resource allocation response message sent by the controller after the controller configures the path according to the TCP transmission resource allocation request, and the device 700 determines the parameter of the TCP data transmission according to the TCP transmission resource allocation response message.
  • the problem of halving the sliding window caused by repeated network detection and finally affecting the throughput of the network is avoided, and the MTU value returned by the controller determines that the data can be segmented according to the optimal length. And transmit on the network device, which can achieve more efficient TCP data transmission.
  • FIG. 8 is an exemplary flow diagram of a data transmission method 800 to achieve more efficient TCP data transmission in accordance with an embodiment of the present invention.
  • the method 800 is applied to a software-defined network SDN.
  • the controller in the SDN network is connected to the switching device through the southbound interface, and is connected to the application server through the northbound interface, and the application server runs at least one application, and the data is
  • the transmission method 800 can be performed by a controller of the SDN data center.
  • the application server determines that data is currently required to be transmitted from the transmitting device to the receiving device by using the TCP protocol, as shown in FIG. 8, the method is specifically as follows:
  • the controller receives a TCP transmission resource allocation request from the application server, where the TCP transmission resource allocation request carries an address of the sending device and an address of the receiving device.
  • the controller determines, according to the TCP transmission resource allocation request, a first transmission path and a second transmission path, where the first transmission path is used by the sending device to transmit the data to the receiving device, where The second transmission path is used by the receiving device to transmit a TCP response message to the sending device.
  • the controller determines, according to the first transmission path and/or the second transmission path, a value of a parameter that is performed by the sending device and/or the receiving device for performing TCP data transmission.
  • S808 The controller sends a parameter setting message, where the parameter setting message carries the value of the parameter of the TCP data transmission.
  • the sending device address and the receiving device address are an Internet Protocol (IP) address or a Media Access Control (MAC) address.
  • IP Internet Protocol
  • MAC Media Access Control
  • the controller provides a northbound interface to provide network path quality of service (Quality of Service, QOS) customization function, the application running on the application server can access the controller's northbound interface through the management network.
  • QOS Quality of Service
  • the controller selects a set of available paths between the sending device and the receiving device according to the network topology of the switching device, determines remaining bandwidth of the switching device port on the available path, and subtracts the allocated bandwidth from the physical bandwidth of the port. That is, the remaining bandwidth of the port is obtained, and the value of the remaining bandwidth in the port on the path is the smallest remaining bandwidth of the path.
  • the TCP transmission resource allocation request further includes a bandwidth required for the data transmission; and the controller determines, according to the TCP transmission resource allocation request, that the first transmission path includes: according to a network topology of the switching device, In the path between the transmitting device and the receiving device, a path in which the remaining bandwidth resource satisfies the data transmission requirement and the remaining bandwidth resource is the smallest is selected as the first transmission path.
  • the controller determines, according to the TCP transmission resource allocation request, that the first transmission path includes: selecting a remaining bandwidth from a path between the sending device and the receiving device according to a network topology of the switching device.
  • the path that satisfies the data transmission requirement and has the few hop counts is used as the first transmission path.
  • the path with the largest bandwidth is selected as the first transmission path.
  • the TCP round-trip transmission delay is positively correlated with the sum of the transmission delay of the first transmission path and the transmission delay of the second transmission path.
  • the controller detects a transmission delay of the first transmission path and a transmission of the second transmission path according to an operation management and maintenance (OAM) characteristic of the first transmission path and the second transmission path. Delaying, and determining, according to the transmission delay of the first transmission path and the transmission delay of the second transmission path, a TCP round-trip transmission delay, a TCP round-trip transmission delay, and a transmission delay of the first transmission path, The transmission delays of the second transmission path are respectively positively correlated.
  • OFAM operation management and maintenance
  • the TCP round-trip transmission delay is a sum of a transmission delay of the first transmission path and a transmission delay of the second transmission path.
  • the controller further estimates the TCP layer processing of the sending device and the receiving device.
  • a delay, a TCP round-trip transmission delay is a transmission delay of the first transmission path, a transmission delay of the second transmission path, and a sum of a TCP layer processing delay of the transmitting device and the receiving device .
  • the controller further estimates a TCP layer processing delay of the receiving device, a TCP round-trip transmission delay is a transmission delay of the first transmission path, and a transmission delay of the second transmission path, And a sum of TCP layer processing delays of the receiving device.
  • the TCP transmission resource allocation request further carries MTU value information, where the MTU value information is used to indicate a maximum value of the MTU value of the sending device and a maximum value of the MTU value of the receiving device;
  • the method 800 further includes: determining, by the controller, the MTU value of the data transmission in the first transmission path according to the MTU value information in the TCP transmission resource allocation request, where the first transmission path performs the The value of the MTU of the data transmission is not greater than the smaller of the maximum value of the MTU of the sending device and the maximum value of the MTU of the receiving device.
  • the controller determines an optimal MTU value of the first transmission path, according to an OAM characteristic of the first transmission path, within a value range indicated by the MTU value information.
  • the sending the parameter setting message includes: sending the MTU value setting information to the sending device and the receiving device.
  • the method 800 further includes: sending a flow entry to the switching device on the first transmission path and the second transmission path, respectively, for indicating that the switching device on the first transmission path performs TCP data transmission. And the switching device on the second transmission path performs the TCP response message transmission.
  • the method 800 further includes: the controller sending a bandwidth control message to the switching device on the first transmission path, where the bandwidth control message is used to indicate that the switching device on the first transmission path performs the The bandwidth of data transmission.
  • determining, by the controller, the value of the parameter of the TCP data transmission according to the first transmission path and/or the second transmission path that: the controller is configured according to a bandwidth of the first transmission path Determining, by the TCP round-trip transmission delay, an initial value of a sending window of the sending device, where an initial value of the sending window is positively correlated with a bandwidth of the first transmission path and the TCP round-trip transmission delay;
  • the sending the parameter setting message includes: sending an initial value setting message of the sending window to the sending device.
  • the controller first determines a round-trip delay RTT between the sending device and the receiving device according to the TCP round-trip transmission delay, and the RTT is positively correlated with the TCP round-trip transmission delay.
  • the TCP round-trip transmission delay is determined as a round-trip delay RTT.
  • the sending window size of the sending device can be expressed as:
  • the controller determines, by the controller, the value of the parameter of the TCP data transmission according to the first transmission path and/or the second transmission path, that: the controller allocates a response message according to the TCP transmission resource, Determining, by the sending device and/or the receiving device, a value of a parameter for performing TCP data transmission, determining, according to a bandwidth of the first transmission path and the TCP round-trip transmission delay, determining a receiving window of the receiving device An initial value, the initial value of the receiving window is positively correlated with the bandwidth of the first transmission path and the TCP round-trip transmission delay respectively; then the sending parameter setting message includes: setting an initial value setting message of the receiving window Sent to the receiving device.
  • the receiving window size of the receiving device can be expressed as:
  • the method 800 further includes: the controller determining a packet loss rate of the first transmission path, where the packet loss rate is used to indicate a packet loss situation when the first transmission path performs data transmission.
  • the controller calculates the packet loss rate on the first transmission path according to the experience database, and superimposes the reserved packet loss rate to determine the packet loss rate information of the first transmission path.
  • the controller starts the first transmission path OAM characteristic, and determines a packet loss rate of the first transmission path.
  • the determining, according to the first transmission path and/or the second transmission path, the value of the parameter of the TCP data transmission includes: according to the bandwidth of the first transmission path, and the TCP round-trip transmission Deferring the packet loss rate, determining an initial value of a sending window of the sending device, where an initial value of the sending window is positively correlated with a bandwidth of the first transmission path and the TCP round-trip transmission delay, respectively The packet loss rate is negatively correlated; the sending parameter setting message includes: sending an initial value setting message of the sending window to the sending device.
  • the sending window size of the sending device can be expressed as:
  • Send window first transmission path bandwidth *RTT* (1 - packet loss rate)
  • the determining is performed according to the first transmission path and/or the second transmission path.
  • the value of the parameter of the TCP data transmission includes: determining an initial value of the receiving window of the receiving device according to the bandwidth of the first transmission path, the TCP round-trip transmission delay, and the packet loss rate, the receiving window The initial value is positively correlated with the bandwidth of the first transmission path and the TCP round-trip transmission delay, and is negatively correlated with the packet loss rate; and the sending parameter setting message includes: initializing the receiving window A value setting message is sent to the receiving device.
  • the receiving window size of the receiving device can be expressed as:
  • Rwnd first transmission path bandwidth*RTT*(1-packet loss rate)
  • determining, according to the first transmission path and/or the second transmission path, a value of a parameter of the TCP data transmission including: determining, according to the TCP round-trip transmission delay, a retransmission timeout period of the sending device.
  • the retransmission timeout period is positively correlated with the TCP round-trip transmission delay.
  • the sending parameter setting message includes: sending the retransmission timeout time setting message to the sending device.
  • the controller sets the retransmission timeout to a round trip delay RTT.
  • determining, according to the first transmission path and/or the second transmission path, a value of a parameter of the TCP data transmission including: determining, according to the TCP round-trip transmission delay, a response waiting time of the receiving device, The response waiting time is positively correlated with the TCP round-trip transmission delay; and the sending parameter setting message includes: sending a response waiting time of the receiving window to the receiving device.
  • the controller sets the response wait time to the round trip delay RTT.
  • the controller is further configured to: determine an initial value of a congestion window Cwnd of the sending device according to a bandwidth of the first transmission path and the TCP round-trip transmission delay, where an initial value of the Cwnd is The bandwidth of the first transmission path and the TCP round-trip transmission delay are respectively positively correlated.
  • the size of the congestion window of the sending device can be expressed as:
  • the controller is further configured to: determine an initial value of a congestion window Cwnd of the sending device according to a bandwidth of the first transmission path, the TCP round-trip transmission delay, and the packet loss rate, where The initial value of Cwnd is positively correlated with the bandwidth of the first transmission path and the TCP round-trip transmission delay, and is negatively correlated with the packet loss rate.
  • the size of the congestion window of the sending device can be expressed as:
  • the controller is further configured to send a congestion window setting message to the sending device, where the congestion window setting message includes an initial value of the congestion window, and the sending device is configured to set a message according to the congestion window. Instructing to set the value of the congestion window to the initial value of the congestion window and perform TCP data transmission.
  • the value of the sending window takes a smaller value of the congestion window and the receiving window.
  • the controller can properly configure the TCP data transmission resource and parameters, and the controller receives the TCP transmission resource allocation request of the application server through the northbound interface, and performs TCP configuration according to the TCP transmission resource allocation request.
  • the path and bandwidth of the data transmission, and the path information such as the TCP round-trip transmission delay, the path packet loss rate, and the path optimal MTU value of the path are determined, and the parameters of the TCP data transmission are reasonably configured according to the path information.
  • the controller can bypass the slow start process of TCP by setting the initial sending window size of TCP data transmission, and the initial value of the sending window is determined according to the bandwidth of the data transmission path and the TCP round-trip delay.
  • the MTU value returned by the controller determines that the data can be followed.
  • the optimal length is segmented and transmitted on the network device for more efficient TCP data transmission.
  • FIG. 9 is a schematic diagram of a logical structure of a data transmission device 900 according to an embodiment of the present invention.
  • the device 900 is applied to a software-defined network SDN.
  • the device 900 is connected to a switching device through a southbound interface, and is connected to an application server through a northbound interface.
  • the application server is configured to send control data from the sending device to the receiving device.
  • the data transmitting device 900 may include: a receiving unit 902, a determining unit 904, and a sending unit 906.
  • the receiving unit 902 receives a TCP transmission resource allocation request from the application server, where the TCP transmission resource allocation request carries an address of the sending device and an address of the receiving device.
  • a determining unit 904 configured to determine, according to the TCP transmission resource allocation request, a first transmission path and a second transmission path, where the first transmission path is used by the sending device to transmit the data to the receiving device, a second transmission path is used by the receiving device to transmit to the sending device Transmitting a TCP response message, determining, according to the first transmission path and/or the second transmission path, a value of a parameter for performing TCP data transmission by the sending device and/or the receiving device.
  • the sending unit 906 is configured to send a parameter setting message, where the parameter setting message carries the value of the parameter of the TCP data transmission.
  • the sending device address and the receiving device address are an Internet Protocol (IP) address or a Media Access Control (MAC) address.
  • IP Internet Protocol
  • MAC Media Access Control
  • the device 900 provides a northbound interface, and provides a network path quality of service (QOS) customization function, and the application running on the application server can access the northbound interface of the controller through the management network.
  • QOS quality of service
  • the determining unit 904 is configured to select, according to a network topology of the switching device, a set of available paths between the sending device and the receiving device, determine a remaining bandwidth of the switching device port on the available path, and subtract the allocated physical bandwidth of the port.
  • the outgoing bandwidth is the remaining bandwidth of the port, and the smallest remaining bandwidth in the port on the path is used as the remaining bandwidth of the path.
  • the TCP transmission resource allocation request further includes a bandwidth required for the data transmission;
  • the determining unit 904 is configured to determine, according to a network topology of the switching device and the TCP transmission resource allocation request, that the first transmission path includes: The determining unit 904 selects, as the first transmission, a path in which the remaining bandwidth resource satisfies the data transmission requirement and the remaining bandwidth resource is the smallest from the path between the sending device and the receiving device according to the network topology of the switching device. path.
  • the determining unit 904 is configured to determine, according to the network topology of the switching device and the TCP transmission resource allocation request, that the first transmission path includes: the determining unit 904, according to the network topology of the switching device, from the sending device and the In the path between the receiving devices, a path in which the remaining bandwidth resources satisfy the data transmission requirement and the hop count is the smallest is selected as the first transmission path.
  • the determining unit 904 selects the path with the largest bandwidth as the first transmission path.
  • the determining unit 904 determines a delay of the first transmission path delay and the second transmission path, and determines, according to a transmission delay of the first transmission path and a transmission delay of the second transmission path.
  • the TCP round-trip transmission delay is positively correlated with the sum of the transmission delay of the first transmission path and the transmission delay of the second transmission path.
  • the determining unit 904 manages operations according to the first transmission path and the second transmission path.
  • the Operation Administration and Maintenance (OAM) feature detects a transmission delay of the first transmission path and a transmission delay of the second transmission path, and according to the transmission delay and the transmission of the first transmission path
  • the transmission delay of the second transmission path determines the TCP round-trip transmission delay, the TCP round-trip transmission delay and the transmission delay of the first transmission path, and the transmission delay of the second transmission path are positively correlated.
  • the TCP round-trip transmission delay is a sum of a transmission delay of the first transmission path and a transmission delay of the second transmission path.
  • the determining unit 904 further estimates a TCP layer processing delay of the sending device and the receiving device, where a TCP round-trip transmission delay is a transmission delay of the first transmission path, and the second transmission The transmission delay of the path and the sum of the TCP layer processing delays of the transmitting device and the receiving device.
  • the determining unit 904 further estimates a TCP layer processing delay of the receiving device, a TCP round-trip transmission delay is a transmission delay of the first transmission path, and a transmission delay of the second transmission path. And the sum of the TCP layer processing delays of the receiving device.
  • the TCP transmission resource allocation request further carries MTU value information, where the MTU value information is used to indicate a maximum value of the MTU value of the sending device and a maximum value of the MTU of the receiving device.
  • the value is optional.
  • the determining unit 904 is further configured to determine, according to the MTU value information in the TCP transmission resource allocation request, the MTU value of the data transmission by the first transmission path, where the first transmission path is The value of the MTU for performing the data transmission is not greater than a smaller value of a maximum value of the MTU value of the transmitting device and a maximum value of the MTU value of the receiving device.
  • the determining unit 904 determines, according to the OAM characteristic of the first transmission path, an optimal MTU value of the first transmission path within a value range indicated by the MTU value information.
  • the sending unit 906, configured to send the parameter setting message includes: sending the MTU value setting information to the sending device and the receiving device.
  • the sending unit 906 is further configured to separately send a flow entry to the switching device on the first transmission path and the second transmission path, to indicate that the switching device on the first transmission path performs TCP data. Transmitting, the switching device on the second transmission path performs the TCP response message transmission.
  • the sending unit 906 is further configured to send to the switching device on the first transmission path. And a bandwidth control message, where the bandwidth control message is used to indicate a bandwidth of a port on which the switching device on the first transmission path performs TCP data transmission.
  • the determining unit 904 is configured to determine, according to the first transmission path and/or the second transmission path, a value of a parameter of the TCP data transmission, where the determining unit 904 is configured according to the first transmission path. And determining, by the bandwidth and the TCP round-trip transmission delay, an initial value of a sending window of the sending device, where an initial value of the sending window is positively correlated with a bandwidth of the first transmission path and the TCP round-trip transmission delay respectively;
  • the sending, by the sending unit 906, the sending of the parameter setting message includes: sending an initial value setting message of the sending window to the sending device.
  • the determining unit 904 first determines a round-trip delay RTT between the sending device and the receiving device according to the TCP round-trip transmission delay, and the RTT is positively correlated with the TCP round-trip transmission delay.
  • the TCP round-trip transmission delay is determined as a round-trip delay RTT.
  • the sending window size of the sending device can be expressed as:
  • the determining unit 904 is configured to determine, according to the first transmission path and/or the second transmission path, a value of a parameter of the TCP data transmission, where the determining unit 904 is configured according to the first transmission path. And determining, by the bandwidth and the TCP round-trip transmission delay, an initial value of a receiving window of the receiving device, where an initial value of the receiving window is positively correlated with a bandwidth of the first transmission path and the TCP round-trip transmission delay respectively;
  • the sending unit 906 is configured to send the parameter setting message to: send an initial value setting message of the receiving window to the receiving device.
  • the receiving window size of the receiving device can be expressed as:
  • the determining unit 904 is further configured to determine a packet loss rate of the first transmission path, where the packet loss rate is used to indicate a packet loss situation when the first transmission path performs data transmission.
  • the determining unit 904 calculates a packet loss rate on the first transmission path according to the experience database, and superimposes the reserved packet loss rate to determine a packet loss rate of the first transmission path.
  • the determining unit 904 starts the first transmission path OAM characteristic, and determines a packet loss rate of the first transmission path.
  • the determining unit 904 is configured to determine, according to the first transmission path and/or the second transmission path, a value of a parameter of the TCP data transmission, where the determining unit 904 is configured according to the Determining an initial value of a transmission window of the transmitting device, a bandwidth of the first transmission path, the TCP round-trip transmission delay, and the packet loss rate, and an initial value of the transmission window and a bandwidth of the first transmission path
  • the TCP round-trip transmission delay is positively correlated, and is negatively correlated with the packet loss rate.
  • the sending unit 906 is configured to send the parameter setting message to: send the initial value setting message of the sending window to the sending device.
  • the sending window size of the sending device can be expressed as:
  • Send window first transmission path bandwidth *RTT* (1 - packet loss rate)
  • the determining unit 904 is configured to determine, according to the first transmission path and/or the second transmission path, a value of a parameter of the TCP data transmission, where the determining unit 904 is configured according to the first transmission path. Determining an initial value of a receiving window of the receiving device, an initial value of the receiving window and a bandwidth of the first transmission path and the TCP round-trip transmission, the bandwidth, the TCP round-trip transmission delay, and the packet loss rate The delays are positively correlated, and are negatively correlated with the packet loss rate.
  • the sending unit 906 is configured to send the parameter setting message to: send the initial value setting message of the receiving window to the receiving device.
  • the receiving window size of the receiving device can be expressed as:
  • Rwnd first transmission path bandwidth*RTT*(1-packet loss rate)
  • the determining unit 904 is configured to determine, according to the first transmission path and/or the second transmission path, a value of a parameter of the TCP data transmission, including: determining, according to the TCP round-trip transmission delay, a sending device.
  • the retransmission timeout period, the retransmission timeout period is positively correlated with the TCP round-trip transmission delay; and the sending unit 906, configured to send the parameter setting message, includes: sending the retransmission timeout time setting message to the Send the device.
  • the determining unit 904 sets the retransmission timeout time to a round trip delay RTT.
  • the determining unit 904 is configured to determine, according to the first transmission path and/or the second transmission path, a value of a parameter of the TCP data transmission, including: determining, according to the TCP round-trip transmission delay, a receiving device.
  • the response waiting time, the response waiting time is positively correlated with the TCP round-trip transmission delay; and the sending unit 906 is configured to: send the parameter setting message to: send the response waiting time of the receiving window to the receiving device .
  • the determining unit 904 sets the response waiting time to the round trip delay RTT.
  • the determining unit 904 is further configured to: according to the bandwidth of the first transmission path
  • the TCP round-trip transmission delay determines an initial value of a congestion window Cwnd of the transmitting device, and the initial value of the Cwnd is positively correlated with a bandwidth of the first transmission path and the TCP round-trip transmission delay, respectively.
  • the size of the congestion window of the sending device can be expressed as:
  • the determining unit 904 is further configured to: determine an initial value of the congestion window Cwnd of the sending device according to the bandwidth of the first transmission path, the TCP round-trip transmission delay, and the packet loss rate, The initial value of the Cwnd is positively correlated with the bandwidth of the first transmission path and the TCP round-trip transmission delay, respectively, and is negatively correlated with the packet loss rate.
  • the size of the congestion window of the sending device can be expressed as:
  • the sending unit 906 is further configured to send a congestion window setting message to the sending device, where the congestion window setting message includes an initial value of the congestion window, and the sending device is configured to set according to the congestion window.
  • the message indicates that the value of the congestion window is set to the initial value of the congestion window, and TCP data transmission is performed.
  • the value of the sending window takes a smaller value of the congestion window and the receiving window.
  • the device 900 can properly configure the TCP data transmission resource and parameters, and the device 900 receives the TCP transmission resource allocation request of the application server through the northbound interface, and performs TCP configuration according to the TCP transmission resource allocation request.
  • the path and bandwidth of the data transmission, and the path information such as the TCP round-trip transmission delay, the path packet loss rate, and the path optimal MTU value of the path are determined, and the parameters of the TCP data transmission are reasonably configured according to the path information.
  • the device 900 can bypass the slow start process of the TCP by setting the initial transmission window size of the TCP data transmission according to these parameters, and the initial value of the transmission window is determined according to the bandwidth of the data transmission path and the TCP round-trip delay, and can be determined by Large throughput transmission avoids the halving of the sliding window caused by repeated network detection in the prior art, and ultimately affects the throughput of the network.
  • the MTU value returned by the controller determines that the data can be followed. The optimal length is segmented and transmitted on the network device for more efficient TCP data transmission.
  • FIG. 10 is a schematic diagram showing the hardware structure of a computing device 1000 according to an embodiment of the invention.
  • computing device 1000 includes a processor 1002, a memory 1004, an input/output interface 1006, a communication interface 1008, and a bus 1010.
  • the processor 1002, the memory 1004, the input/output interface 1006, and the communication interface 1008 implement a communication connection with each other through the bus 1010.
  • the processor 1002 may be a general-purpose central processing unit (CPU), a microprocessor, an application specific integrated circuit (ASIC), or one or more integrated circuits for executing related programs.
  • CPU central processing unit
  • ASIC application specific integrated circuit
  • the memory 1004 may be a read only memory (ROM), a static storage device, a dynamic storage device, or a random access memory (RAM).
  • the memory 1004 can store an operating system and other applications.
  • the program code for implementing the technical solution provided by the embodiment of the present invention is saved in the memory 1004 and executed by the processor 1002.
  • the input/output interface 1006 is for receiving input data and information, and outputting data such as operation results.
  • Communication interface 1008 enables communication between computing device 1000 and other devices or communication networks using transceivers such as, but not limited to, transceivers.
  • Bus 1010 can include a path for communicating information between various components of computing device 1000 (e.g., processor 1002, memory 1004, input/output interface 1006, and communication interface 1008).
  • computing device 1000 shown in FIG. 10 only shows the processor 1002, the memory 1004, the input/output interface 1006, the communication interface 1008, and the bus 1010, in a specific implementation process, those skilled in the art should It is understood that computing device 1000 also includes other devices necessary to achieve proper operation. Also, those skilled in the art will appreciate that computing device 1000 may also include hardware devices that implement other additional functions, depending on the particular needs. Moreover, those skilled in the art will appreciate that computing device 1000 may also only include the components necessary to implement embodiments of the present invention, and does not necessarily include all of the devices shown in FIG.
  • the hardware structure shown in FIG. 10 and the above description are applicable to various data transmission devices and systems provided by the embodiments of the present invention, and are applicable to performing various data transmission methods provided by the embodiments of the present invention.
  • the disclosed system, device And methods can be implemented in other ways.
  • the device embodiments described above are merely illustrative.
  • the division of the modules is only a logical function division, and may be implemented in another manner, for example, multiple modules or components may be combined or may be Integrate into another system, or some features can be ignored or not executed.
  • the mutual coupling or direct coupling or communication connection shown or discussed may be an indirect coupling or communication connection through some interface, device or module, and may be electrical, mechanical or otherwise.
  • the modules described as separate components may or may not be physically separated.
  • the components displayed as modules may or may not be physical modules, that is, may be located in one place, or may be distributed to multiple network modules. Some or all of the modules may be selected according to actual needs to achieve the purpose of the solution of the embodiment.
  • each functional module in each embodiment of the present invention may be integrated into one processing module, or each module may exist physically separately, or two or more modules may be integrated into one module.
  • the above integrated modules can be implemented in the form of hardware or in the form of hardware plus software function modules.
  • the above-described integrated modules implemented in the form of software function modules can be stored in a computer readable storage medium.
  • the software functional modules described above are stored in a storage medium and include instructions for causing a computer device (which may be a personal computer, server, or network device, etc.) to perform some of the steps of the methods described in various embodiments of the present invention.
  • the foregoing storage medium includes: a mobile hard disk, a read-only memory (English: Read-Only Memory, ROM for short), a random access memory (English: Random Access Memory, RAM for short), a magnetic disk or an optical disk, and the like. The medium of the code.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Environmental & Geological Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本发明实施例提供了一种数据传输方法、装置和系统,应用于SDN网络,实现配置TCP数据传输路径,并根据路径参数设置发送窗口大小,方法包括:控制器接收来自应用服务器的TCP传输资源分配请求,根据所述TCP传输资源分配请求,确定第一传输路径和第二传输路径,第一传输路径用于发送设备向接收设备传输所述数据,第二传输路径用于接收设备向发送设备传输TCP应答消息,向应用服务器发送TCP传输资源分配响应消息,所述TCP传输资源分配响应消息包含第一传输路径的带宽信息和TCP往返传输时延。根据第一传输路径的带宽信息和TCP往返传输时延计算发送窗口,实现了以最大的吞吐量传输数据,并避免了网络探测导致滑动窗口的减半震荡。

Description

一种数据传输方法、装置和系统 技术领域
本发明实施例涉及通信领域,尤其涉及一种数据传输方法、装置和系统。
背景技术
传输控制协议(Transmission Control Protocol,TCP)是一种面向连接的、可靠的、基于字节流的传输层通信协议。TCP层是位于互联网协议(Internet Protocol,IP)层之上,应用层之下的中间层,给不同主机的应用层之间提供可靠的、像管道一样的连接。应用层向TCP层发送用于网间传输的数据流,然后TCP把数据流分区成适当长度的报文段,之后TCP把报文段传给IP层,通过网络将报文段传送给接收端实体的TCP层。
TCP是一个滑动窗口协议,即一个TCP连接的发送端在某个时刻能发多少数据是由滑动窗口(发送窗口)控制的,而滑动窗口的大小可以由接收窗口(Receive Window,Rwnd)和拥塞窗口(Congestion window,Cwnd)两个窗口共同决定,其大小取Rwnd和Cwnd的较小值。Rwnd表示的是在接收端的TCP协议缓存中还有多少剩余空间,发送端必须保证发送的数据不超过这个剩余空间以免造成缓冲区溢出,这个窗口是接收端用来进行流量限制的。Cwnd是发送端用来进行流量控制的窗口。
TCP在各种各样的网络上进行数据传输,因为不知道所运行的网络的数据传输特性,TCP要不断的增大或者减小滑动窗口的大小以应对网络状况的变化,并对网络状况进行探测。TCP采用四种控制机制:慢启动、拥塞避免、快速重传和快速恢复,来进行网络流量控制。
当TCP连接建立以后,在不了解网络能力的情况下,TCP发送端先试探性的发送一个分组报文,cwnd的大小为一个分组报文,收到应答(Acknowledgement,ACK)后再发两个分组报文,当收到这两个分组报文的ACK后,cwnd就增长为4个分组报文,这样,每收到一个分组报文的ACK后,cwnd的值增加一个分组报文。
在传统网络中,由于两个通信节点之间的路由路线和网络状况不断变化,导致TCP协议中围绕单机如何探测网络的状况的算法也不断演进,由于网络的不灵活,带宽达不到充分利用,并各个TCP传输节点之间互相竞争,导致 都处于一个低水平下的吞吐量。
在一些分布式计算的应用中,需要在两个计算节点之间在一定时间内进行高效数据传输,使得基于TCP的优化也越来越重要,而软件定义网络(Software Defined Network,SDN)提供了基于应用的灵活管控能力,因此基于SDN的TCP优化也显得越来越重要。
发明内容
有鉴于此,本发明实施例提供了一种数据传输方法、装置和系统,实现了在SDN网络中,对TCP数据传输的优化。
第一方面,本发明实施例提供了一种数据传输方法,应用于软件定义网络SDN中,所述SDN网络中控制器通过南向接口与交换设备连接,通过北向接口与应用服务器连接,所述应用服务器上运行至少一个应用,当所述应用服务器确定当前需要采用传输控制协议TCP将数据从发送设备传送到接收设备时,所述方法包括:
所述控制器接收来自所述应用服务器的TCP传输资源分配请求,所述TCP传输资源分配请求携带所述发送设备的地址和所述接收设备的地址;
所述控制器根据所述TCP传输资源分配请求,确定第一传输路径和第二传输路径,所述第一传输路径用于所述发送设备向所述接收设备传输所述数据,所述第二传输路径用于所述接收设备向所述发送设备传输TCP应答消息;
所述控制器向所述应用服务器发送TCP传输资源分配响应消息,所述TCP传输资源分配响应消息包含所述第一传输路径的带宽信息和TCP往返传输时延,所述TCP往返传输时延表示所述发送设备通过所述第一传输路径发出每个数据包的时间T1与所述发送设备通过所述第二传输路径接收到所述每个数据包的TCP应答消息的时间T2之间的预估的时间差值,所述第一传输路径的带宽信息和所述TCP往返传输时延用于确定在所述发送设备和所述接收设备之间进行TCP数据传输的发送窗口的初始值。
结合第一方面,在第一种可能的实现方式中,在所述控制器向所述应用服务器发送TCP传输资源分配响应消息之前,还包括:所述控制器获取所述第一传输路径的时延和所述第二传输路径的时延,并根据所述第一传输路径的传输时延和所述第二传输路径的传输时延确定所述TCP往返传输时延,所 述TCP往返传输时延同所述第一传输路径的传输时延和所述第二传输路径的传输时延之和呈正相关。
结合第一方面或以上任一项可能的实现方式,在第二种可能的实现方式中,在所述控制器向所述应用服务器发送TCP传输资源分配响应消息之前,还包括:所述控制器确定所述第一传输路径的丢包率;
则,所述TCP传输资源分配响应消息还包含所述第一传输路径的所述丢包率。
结合第一方面或以上任一项可能的实现方式,在第三种可能的实现方式中,所述TCP传输资源分配请求中还携带最大传输单元MTU取值信息,所述MTU取值信息包括所述发送设备的MTU取值的最大值和所述接收设备的MTU取值的最大值;
所述方法还包括:所述控制器根据所述TCP传输资源分配请求中的MTU取值信息,确定所述第一传输路径进行所述数据传输的MTU取值,所述第一传输路径进行所述数据传输的MTU取值不大于所述发送设备MTU取值的最大值和所述接收设备MTU取值的最大值中的较小值;
则,所述TCP传输资源分配响应消息还包含所述第一传输路径进行所述数据传输的MTU取值。
结合第一方面或以上任一项可能的实现方式,在第四种可能的实现方式中,所述TCP传输资源分配请求还包含传输所述数据需要的带宽;
所述控制器根据所述TCP传输资源分配请求,确定第一传输路径包括:根据交换设备的网络拓扑,从所述发送设备和所述接收设备之间的路径中,选择剩余带宽资源满足传输所述数据需要的路径作为所述第一传输路径。
结合第一方面或以上任一项可能的实现方式,在第五种可能的实现方式中,所述控制器从所述发送设备和所述接收设备之间的路径中,选择剩余带宽资源满足传输所述数据需要的路径作为所述第一传输路径包括:所述控制器从所述发送设备和所述接收设备之间,剩余带宽资源满足传输所述数据需要的所有路径中,选择剩余带宽资源最小的路径或者跳数最少的路径作为所述第一传输路径。
第二方面,本发明实施例提供了一种控制器,应用于软件定义网络SDN中,所述控制器通过南向接口与交换设备连接,通过北向接口与应用服务器连接,所述控制器包括:处理器、存储器、总线和通信接口;
所述存储器用于存储计算设备执行指令,所述处理器与所述存储器通过所述总线连接,当所述计算设备运行时,所述处理器执行所述存储器存储的所述计算机执行指令,以使所述计算设备执行第一方面或第一方面任一项可能的实现方式的方法。
第三方面,本发明实施例提供了一种数据传输方法,应用于软件定义网络SDN中,所述SDN网络中控制器通过南向接口与交换设备连接,通过北向接口与应用服务器连接,所述应用服务器上运行至少一个应用,当所述应用服务器确定当前需要采用TCP协议将数据从发送设备传送到接收设备时,所述方法包括:
所述应用服务器向所述控制器发送TCP传输资源分配请求,所述TCP传输资源分配请求携带所述发送设备的地址和所述接收设备的地址;
所述应用服务器接收来自所述控制器的TCP传输资源分配响应消息,所述TCP传输资源分配响应消息包含第一传输路径的带宽和TCP往返传输时延,所述TCP往返传输时延表示所述发送设备通过所述第一传输路径发出每个数据包的时间T1与所述发送设备通过第二传输路径接收到所述每个数据包的TCP应答消息的时间T2之间的预估的时间差值,所述第一传输路径用于所述发送设备向所述接收设备传输所述数据,所述第二传输路径用于所述接收设备向所述发送设备传输答消息;
所述应用服务器根据所述第一传输路径的带宽和所述TCP往返传输时延,确定在所述发送设备和所述接收设备之间进行TCP数据传输的发送窗口的初始值呈正相关。
结合第三方面,在第一种可能的实现方式中,所述发送窗口的初始值与所述第一传输路径的带宽和所述TCP往返传输时延分别呈正相关。
结合第三方面或以上任一项可能的实现方式,在第二种可能的实现方式中,所述TCP传输资源分配响应消息中还携带所述第一传输路径的丢包率;
所述方法还包括:所述应用服务器根据所述丢包率确定所述发送窗口的初始值,所述发送窗口的初始值呈正相关与所述丢包率呈负相关。
结合第三方面或以上任一项可能的实现方式,在第三种可能的实现方式中,还包括:所述应用服务器根据所述第一传输路径的带宽和所述TCP往返传输时延,确定所述接收设备的接收窗口的初始值,所述接收窗口的初始值与所述第一传输路径的带宽和所述TCP往返传输时延分别呈正相关。
结合第三方面或以上任一项可能的实现方式,在第四种可能的实现方式中,还包括:所述应用服务器根据所述第一传输路径的带宽、所述TCP往返传输时延和所述丢包率,确定所述接收设备的接收窗口的初始值,所述接收窗口的初始值与所述第一传输路径的带宽和所述TCP往返传输时延分别呈正相关,与所述丢包率呈负相关。
结合第三方面或以上任一项可能的实现方式,在第五种可能的实现方式中,还包括:所述应用服务器向所述发送设备发送发送窗口设置消息,所述发送窗口设置消息包含所述发送窗口的初始值。
结合第三方面或以上任一项可能的实现方式,在第六种可能的实现方式中,还包括:所述应用服务器向所述接收设备发送接收窗口设置消息,所述接收窗口设置消息包含所述接收窗口的初始值。
结合第三方面或以上任一项可能的实现方式,在第七种可能的实现方式中,所述TCP传输资源分配请求中还携带最大传输单元MTU取值信息,所述MTU取值信息用于指示所述发送设备的MTU取值的最大值和所述接收设备的MTU取值的最大值;
所述TCP传输资源分配响应消息还包含所述第一传输路径进行所述数据传输的MTU取值;
所述方法还包括:所述应用服务器将所述发送设备和所述接收设备的MTU取值确定为所述第一传输路径进行所述数据传输的MTU取值。
结合第三方面或以上任一项可能的实现方式,在第八种可能的实现方式中,还包括:所述应用服务器向所述发送设备和所述接收设备发送MTU设置消息,所述MTU设置消息包含所述第一传输路径的MTU取值。
结合第三方面或以上任一项可能的实现方式,在第九种可能的实现方式中,还包括:所述应用服务器根据所述TCP往返传输时延确定所述发送设备的重传超时时间,所述重传超时时间与所述TCP往返传输时延呈正相关。
结合第三方面或以上任一项可能的实现方式,在第十种可能的实现方式中,还包括:所述应用服务器向所述发送设备发送重传超时时间设置消息,所述重传超时时间设置消息包含所述重传超时时间。
结合第三方面或以上任一项可能的实现方式,在第十一种可能的实现方式中,还包括:所述应用服务器根据所述TCP往返传输时延确定所述接收设备的应答等待时间,所述应答等待时间与所述TCP往返传输时延呈正相关。
结合第三方面或以上任一项可能的实现方式,在第十二种可能的实现方式中,还包括:所述应用服务器向所述接收设备发送应答等待时间设置消息,所述应答消息设置消息包含所述应答等待时间。
第四方面,本发明实施例提供了一种应用服务器,应用于软件定义网络SDN中,SDN控制器通过南向接口与交换设备连接,通过北向接口与所述应用服务器连接,包括:处理器、存储器、总线和通信接口;
所述存储器用于存储计算设备执行指令,所述处理器与所述存储器通过所述总线连接,当所述计算设备运行时,所述处理器执行所述存储器存储的所述计算机执行指令,以使所述计算设备执行第三方面或第三方面任一项可能的实现方式的方法。
第五方面,本发明实施例提供了一种数据传输方法,应用于软件定义网络SDN中,所述SDN网络中控制器通过南向接口与交换设备连接,通过北向接口与应用服务器连接,所述应用服务器上运行至少一个应用,当所述应用服务器确定当前需要采用TCP协议将数据从发送设备传送到接收设备时,所述方法包括:
所述发送设备接收发送窗口设置消息,所述发送窗口设置消息包含所述发送设备的发送窗口的初始值;
所述发送设备根据所述发送窗口的初始值进行TCP数据传输。
结合第五方面,在第一种可能的实现方式中,所述发送设备还用于接收最大传输单元MTU设置消息,所述MTU设置消息包含所述发送设备进行数据传输时的MTU取值;并根据所述MTU设置消息指示,设置所述发送设备的MTU值。
结合第五方面或以上任一项可能的实现方式,在第二种可能的实现方式中,所述发送设备还用于接收重传超时时间设置消息,所述重传超时时间设置消息包含所述发送设备进行TCP数据传输时的重传超时时间取值;并根据所述重传超时时间设置消息指示,设置所述发送设备的重传超时时间值。
第六方面,本发明实施例提供了一种计算设备,应用于软件定义网络SDN中,SDN控制器通过南向接口与交换设备连接,通过北向接口与所述应用服务器连接,所述应用服务器用于控制数据从所述计算设备发送至接收设备,包括:处理器、存储器、总线和通信接口;
所述存储器用于存储计算设备执行指令,所述处理器与所述存储器通过 所述总线连接,当所述计算设备运行时,所述处理器执行所述存储器存储的所述计算机执行指令,以使所述计算设备执行权利要求22-24任一项所述的方法。
第七方面,本发明实施例提供了一种数据传输装置,应用于软件定义网络SDN中,SDN控制器通过南向接口与交换设备连接,通过北向接口与所述应用服务器连接,所述应用服务器用于控制数据从所述装置发送至接收设备,包括:
接收单元,用于接收发送窗口设置消息,所述发送窗口设置消息包含所述发送设备的发送窗口的初始值;
发送单元,用于根据所述发送窗口的初始值进行TCP数据传输。
结合第七方面,在第一种可能的实现方式中,所述接收单元还用于接收最大传输单元MTU设置消息,所述MTU设置消息包含所述发送设备进行数据传输时的MTU取值。
结合第七方面或以上任一项可能的实现方式,在第二种可能的实现方式中,所述接收单元还用于接收重传超时时间设置消息,所述重传超时时间设置消息包含所述发送设备进行TCP数据传输时的重传超时时间取值。
第八方面,本发明实施例提供了一种数据传输装置,应用于软件定义网络SDN中,所述装置通过南向接口与交换设备连接,通过北向接口与应用服务器连接,所述应用服务器用于控制数据从发送设备发送至接收设备,包括:
接收单元,用于接收来自所述应用服务器的TCP传输资源分配请求,所述TCP传输资源分配请求携带所述发送设备的地址和所述接收设备的地址;
确定单元,用于根据所述TCP传输资源分配请求,确定第一传输路径和第二传输路径,所述第一传输路径用于所述发送设备向所述接收设备传输所述数据,所述第二传输路径用于所述接收设备向所述发送设备传输TCP应答消息;
发送单元,用于所述应用服务器发送TCP传输资源分配响应消息,所述TCP传输资源分配响应消息包含所述第一传输路径的带宽信息和TCP往返传输时延,所述TCP往返传输时延表示所述发送设备通过所述第一传输路径发出每个数据包的时间T1与所述发送设备通过所述第二传输路径接收到所述每个数据包的TCP应答消息的时间T2之间的预估的时间差值,所述第一传输路径的带宽信息和所述TCP往返传输时延用于确定在所述发送设备和所 述接收设备之间进行TCP数据传输的发送窗口的初始值。
结合第八方面,在第一种可能的实现方式中,所述确定单元还用于:获取所述第一传输路径的时延和所述第二传输路径的时延,并根据所述第一传输路径的传输时延和所述第二传输路径的传输时延确定所述TCP往返传输时延,所述TCP往返传输时延与所述第一传输路径的传输时延和所述第二传输路径的传输时延之和呈正相关。
结合第八方面或以上任一项可能的实现方式,在第二种可能的实现方式中,所述确定单元还用于:确定所述第一传输路径的丢包率;
则,所述TCP传输资源分配响应消息还包含所述第一传输路径的所述丢包率。
结合第八方面或以上任一项可能的实现方式,在第三种可能的实现方式中,所述TCP传输资源分配请求中还携带最大传输单元MTU取值信息,所述MTU取值信息包括所述发送设备的MTU取值的最大值和所述接收设备的MTU取值的最大值;
所述确定单元还用于:根据所述TCP传输资源分配请求中的MTU取值信息,确定所述第一传输路径进行所述数据传输的MTU取值,所述第一传输路径进行所述数据传输的MTU取值不大于所述发送设备MTU取值的最大值和所述接收设备MTU取值的最大值中的较小值;
则,所述TCP传输资源分配响应消息还包含所述第一传输路径进行所述数据传输的MTU取值。
结合第八方面或以上任一项可能的实现方式,在第四种可能的实现方式中,所述TCP传输资源分配请求还包含传输所述数据需要的带宽;
所述确定单元用于根据所述TCP传输资源分配请求,确定第一传输路径包括:所述确定单元根据交换设备的网络拓扑,从所述发送设备和所述接收设备之间的路径中,选择一条剩余带宽资源满足传输所述数据需要的路径作为所述第一传输路径。
结合第八方面或以上任一项可能的实现方式,在第五种可能的实现方式中,从所述发送设备和所述接收设备之间的路径中,选择一条剩余带宽资源满足传输所述数据需要的路径作为所述第一传输路径包括:所述确定单元用于从所述发送设备和所述接收设备之间,剩余带宽资源满足传输所述数据需要的所有路径中,选择剩余带宽资源最小的路径或者跳数最少的路径作为所 述第一传输路径。
第九方面,本发明实施例提供了一种数据传输装置,应用于软件定义网络SDN中,所述SDN网络中控制器通过南向接口与交换设备连接,通过北向接口与所述装置连接,所述装置上运行至少一个应用,所述装置用于控制数据从发送设备发送至接收设备,包括:
发送单元,用于向所述控制器发送TCP传输资源分配请求,所述TCP传输资源分配请求携带所述发送设备的地址和所述接收设备的地址;
接收单元,用于接收来自所述控制器的TCP传输资源分配响应消息,所述TCP传输资源分配响应消息包含第一传输路径的带宽和TCP往返传输时延,所述TCP往返传输时延表示所述发送设备通过所述第一传输路径发出每个数据包的时间T1与所述发送设备通过第二传输路径接收到所述每个数据包的TCP应答消息的时间T2之间的预估的时间差值,所述第一传输路径用于所述发送设备向所述接收设备传输所述数据,所述第二传输路径用于所述接收设备向所述发送设备传输答消息;
确定单元,用于根据所述第一传输路径的带宽和所述TCP往返传输时延,确定在所述发送设备和所述接收设备之间进行TCP数据传输的发送窗口的初始值,所述发送窗口的初始值与所述第一传输路径的带宽和所述TCP往返传输时延分别呈正相关。
结合第九方面,在第一种可能的实现方式中,所述发送窗口的初始值与所述第一传输路径的带宽和所述TCP往返传输时延分别呈正相关。
结合第九方面或以上任一项可能的实现方式,在第二种可能的实现方式中,所述TCP传输资源分配响应消息中还携带所述第一传输路径的丢包率;
所述确定单元还用于:根据所述丢包率确定所述发送窗口的初始值,所述发送窗口的初始值与所述丢包率呈负相关。
结合第九方面或以上任一项可能的实现方式,在第三种可能的实现方式中,所述确定单元还用于:根据所述第一传输路径的带宽和所述TCP往返传输时延,确定所述接收设备的接收窗口的初始值,所述接收窗口的初始值与所述第一传输路径的带宽和所述TCP往返传输时延分别呈正相关。
结合第九方面或以上任一项可能的实现方式,在第四种可能的实现方式中,所述确定单元还用于:根据所述第一传输路径的带宽、所述TCP往返传输时延和所述丢包率,确定所述接收设备的接收窗口的初始值,所述接收窗 口的初始值与所述第一传输路径的带宽和所述TCP往返传输时延分别呈正相关,与所述丢包率呈负相关。
结合第九方面或以上任一项可能的实现方式,在第五种可能的实现方式中,所述发送单元还用于向所述发送设备发送发送窗口设置消息,所述发送窗口设置消息包含所述发送窗口的初始值。
结合第九方面或以上任一项可能的实现方式,在第六种可能的实现方式中,所述发送单元还用于向所述接收设备发送接收窗口设置消息,所述接收窗口设置消息包含所述接收窗口的初始值。
结合第九方面或以上任一项可能的实现方式,在第七种可能的实现方式中,所述TCP传输资源分配请求中还携带最大传输单元MTU取值信息,所述MTU取值信息用于指示所述发送设备的MTU取值的最大值和所述接收设备的MTU取值的最大值;
所述TCP传输资源分配响应消息还包含所述第一传输路径进行所述数据传输的MTU取值;
所述确定单元还用于将所述发送设备和所述接收设备的MTU取值确定为所述第一传输路径进行所述数据传输的MTU取值。
结合第九方面或以上任一项可能的实现方式,在第八种可能的实现方式中,所述发送单元还用于向所述发送设备和所述接收设备发送MTU设置消息,所述MTU设置消息包含所述第一传输路径的MTU取值。
结合第九方面或以上任一项可能的实现方式,在第九种可能的实现方式中,所述确定单元还用于根据所述TCP往返传输时延确定所述发送设备的重传超时时间,所述重传超时时间与所述TCP往返传输时延呈正相关。
结合第九方面或以上任一项可能的实现方式,在第十种可能的实现方式中,所述发送单元还用于向所述发送设备发送重传超时时间设置消息,所述重传超时时间设置消息包含所述重传超时时间。
结合第九方面或以上任一项可能的实现方式,在第十一种可能的实现方式中,所述确定单元还用于根据所述TCP往返传输时延确定所述接收设备的应答等待时间,所述应答等待时间与所述TCP往返传输时延呈正相关。
结合第九方面或以上任一项可能的实现方式,在第十二种可能的实现方式中,所述发送单元还用于向所述接收设备发送应答等待时间设置消息,所述应答消息设置消息包含所述应答等待时间。
第十方面,本发明实施例提供了一种数据传输系统,应用于软件定义网络SDN中,包括应用服务器,控制器,发送设备,接收设备和交换设备,所述SDN网络中控制器通过南向接口与交换设备连接,通过北向接口与运行在所述应用服务器连接,所述应用服务器上运行至少一个应用,所述应用服务器用于控制数据从所述发送设备发送至所述接收设备,
所述应用服务器用于向所述控制器发送TCP传输资源分配请求,所述TCP传输资源分配请求携带所述发送设备的地址和所述接收设备的地址;
所述控制器用于根据所述TCP传输资源分配请求,确定第一传输路径和第二传输路径,所述第一传输路径用于所述发送设备向所述接收设备传输所述数据,所述第二传输路径用于所述接收设备向所述发送设备传输TCP应答消息,并向所述应用发送TCP传输资源分配响应消息,所述TCP传输资源分配响应消息包含所述第一传输路径的带宽信息和TCP往返传输时延,所述TCP往返传输时延表示所述发送设备通过所述第一传输路径发出每个数据包的时间T1与所述发送设备通过所述第二传输路径接收到所述每个数据包的TCP应答消息的时间T2之间的预估的时间差值;
所述应用服务器还用于根据所述第一传输路径的带宽和所述TCP往返传输时延,确定在所述发送设备和所述接收设备之间进行TCP数据传输的发送窗口的初始值,并向所述发送设备发送发送窗口设置消息,所述发送窗口设置消息包含所述发送窗口的初始值;
所述发送设备用于根据所述发送窗口设置消息,将发送窗口设置为所述发送窗口的初始值,并进行TCP数据传输。
结合第十方面,在第一种可能的实现方式中,所述发送窗口的初始值与所述第一传输路径的带宽和所述TCP往返传输时延分别呈正相关。
结合第十方面或以上任一项可能的实现方式,在第二种可能的实现方式中,所述控制器还用于:获取所述第一传输路径的时延和所述第二传输路径的时延,并根据所述第一传输路径的传输时延和所述第二传输路径的传输时延确定所述TCP往返传输时延,所述TCP往返传输时延与所述第一传输路径的传输时延和所述第二传输路径的传输时延之和呈正相关。
结合第十方面或以上任一项可能的实现方式,在第三种可能的实现方式中,所述控制器还用于确定所述第一传输路径的丢包率;
则,所述TCP传输资源分配响应消息还包含所述第一传输路径的所述丢 包率。
结合第十方面或以上任一项可能的实现方式,在第四种可能的实现方式中,所述应用服务器还用于根据所述丢包率确定所述发送窗口的初始值,所述发送窗口的初始值与所述丢包率呈负相关。
结合第十方面或以上任一项可能的实现方式,在第五种可能的实现方式中,所述应用服务器还用于:根据所述第一传输路径的带宽和所述TCP往返传输时延,确定所述接收设备的接收窗口的初始值,所述接收窗口的初始值与所述第一传输路径的带宽和所述TCP往返传输时延分别呈正相关。
结合第十方面或以上任一项可能的实现方式,在第六种可能的实现方式中,所述应用服务器还用于:根据所述第一传输路径的带宽、所述TCP往返传输时延和所述丢包率,确定所述接收设备的接收窗口的初始值,所述接收窗口的初始值与所述第一传输路径的带宽和所述TCP往返传输时延分别呈正相关,与所述丢包率呈负相关。
结合第十方面或以上任一项可能的实现方式,在第七种可能的实现方式中,所述应用服务器还用于向所述接收设备发送接收窗口设置消息,所述接收窗口设置消息包含所述接收窗口的初始值;
所述接收设备用于根据所述接收窗口设置消息指示,将接收窗口的值设置为所述发送窗口的初始值,并进行TCP数据传输。
结合第十方面或以上任一项可能的实现方式,在第八种可能的实现方式中,所述TCP传输资源分配请求中还携带最大传输单元MTU取值信息,所述MTU取值信息用于指示所述发送设备的MTU取值的最大值和所述接收设备的MTU取值的最大值;
所述控制器还用于:根据所述TCP传输资源分配请求中的MTU取值信息,确定所述第一传输路径进行所述数据传输的MTU取值,所述第一传输路径进行所述数据传输的MTU取值不大于所述发送设备MTU取值的最大值和所述接收设备MTU取值的最大值中的较小值;
所述TCP传输资源分配响应消息还包含所述第一传输路径进行所述数据传输的MTU取值。
结合第十方面或以上任一项可能的实现方式,在第九种可能的实现方式中,所述应用服务器还用于将所述发送设备和所述接收设备的MTU取值确定为所述第一传输路径进行所述数据传输的MTU取值,并向所述发送设备 和所述接收设备发送MTU设置消息,所述MTU设置消息包含所述第一传输路径的MTU取值。
结合第十方面或以上任一项可能的实现方式,在第十种可能的实现方式中,所述应用服务器还用于:根据所述TCP往返传输时延确定所述发送设备的重传超时时间,所述重传超时时间与所述TCP往返传输时延呈正相关;并向所述发送设备发送重传超时时间设置消息,所述重传超时时间设置消息包含所述重传超时时间。
结合第十方面或以上任一项可能的实现方式,在第十一种可能的实现方式中,所述应用服务器还用于:根据所述TCP往返传输时延确定所述接收设备的应答等待时间,所述应答等待时间与所述TCP往返传输时延呈正相关;并向所述接收设备发送应答等待时间设置消息,所述应答消息设置消息包含所述应答等待时间。
结合第十方面或以上任一项可能的实现方式,在第十二种可能的实现方式中,所述TCP传输资源分配请求还包含传输所述数据需要的带宽;
所述控制器根据所述TCP传输资源分配请求,确定第一传输路径包括:根据交换设备的网络拓扑,从所述发送设备和所述接收设备之间的路径中,选择一条剩余带宽资源满足传输所述数据需要的路径作为所述第一传输路径。
结合第十方面或以上任一项可能的实现方式,在第十三种可能的实现方式中,所述控制器从所述发送设备和所述接收设备之间的路径中,选择一条剩余带宽资源满足传输所述数据需要的路径作为所述第一传输路径包括:所述控制器从所述发送设备和所述接收设备之间,剩余带宽资源满足传输所述数据需要的所有路径中,选择剩余带宽资源最小的路径或者跳数最少的路径作为所述第一传输路径。
根据本发明提供的技术方案,可以通过设置TCP数据传输的初始发送窗口大小,绕过TCP的慢启动过程,且发送窗口的的初始值大小是根据数据传输路径的带宽和TCP往返时延确定的,能以较大的吞吐量传输,避免了现有技术中因为进行反复网络探测所导致的滑动窗口的减半震荡,最终影响网络的吞吐量的问题。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为SDN数据中心的示例性联网环境框图;
图2为适用于本发明的计算机设备的示意图;
图3为依据本发明一实施例的数据传输系统结构示意图;
图4为依据本发明一实施例的数据传输方法的示范性流程图;
图5为依据本发明一实施例的数据传输方法的示范性流程图;
图6为依据本发明一实施例的数据传输装置的结构示意图;
图7为依据本发明一实施例的数据传输装置的结构示意图;
图8为依据本发明一实施例的数据传输方法的示范性流程图;
图9为依据本发明一实施例的数据传输装置的结构示意图;
图10为依据本发明一实施例的数据传输装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1示出了现有技术中SDN数据中心连网环境100,其中网络102连接了应用服务器110,控制器108、交换设备106和计算设备104。其中应用服务器110上运行着应用程序(应用lication,应用),处于SDN网络的应用层,包括不同的网络业务和应用;控制器108处于SDN网络的控制层,是SDN网络的逻辑控制中心,它通过南向接口与交换设备106连接,提供网络指令,维护网络拓扑、控制交换设备106对数据的转发等,再通过北向接口与应用服务器110连接,;交换设备106位于SDN网络的数据转发层,负责数据处理、转发和状态收集等;计算设备104是运行在数据中心网络里的主机,二者之间可以通过TCP协议进行数据的传输。
网络102可以是因特网,内联网,局域网(Local Area Networks,简称LANs),广域网络(Wireless Local Area Networks,简称WLANs),存储区域网络(Storage Area Networks,简称SANs)等,或者以上网络的组合。
图1的目的是为了引入数据中心TCP数据传输参与者以及它们的相互关系。因此,所描绘的SDN数据中心环境100被大大地简化。由于SDN数据中心网络的一些方面在本领域中是公知的,因此这些方面,诸如认证方案和安全等在此不再赘述。
图1中的应用服务器110、控制器108、发送设备104或接收设备104可以是任意体系结构的。图2是一般化地示出适用于图1中的应用服务器110、控制器108、发送设备104或接收设备104的示例性的计算机设备200系统的框图。图2的实施设备系统仅是一个例子,并不试图对本发明实施例的使用范围或功能提出任何限定,也不应当将应用服务器110、控制器108、发送设备104或接收设备104解释为具有与图2中所示的组件中的任何一个或其组合有关的任何依赖性或要求。
计算机设备200包括一个存储模块202,一个存储控制器216,一个或者多个处理器(CPU)218,一个外设接口220和一个外设端口214。这些组件通过一条或者多条通信总线或者信号线212进行通信。计算机设备200可以为任何通信电子设备,包括但不限于便携计算机、个人台式计算机、平板电脑、手机、个人数字助理(PDA)、服务器、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电器、网络PC、微型计算机、大型计算机、以及包括任意以上系统或设备的分布式计算环境。图2的计算机设备200仅仅是一个计算机设备200的例子,计算机设备200可能包含相比于图2展示的更多或者更少的组件,或者有不同的组件配置方式。图2中展示的各种组件可以用硬件、软件或者硬件与软件的结合方式实施。
存储模块202可能包含高速随机存储器(RAM),也可能包含非易失性存储器,例如一个或者多个磁盘存储器,闪速存储器,或者其他非易失性存储器。在一些实施例中,存储模块还可能进一步包含与所述一个和多个处理器218分离的远程存储器,例如RF电路222外设端口214与一个通信网络(图2未示出)进行访问的网盘,所述通信网络可以为因特网, 内联网,局域网(LANs),广域网络(WLANs),存储区域网络(SANs)等,或者以上网络的组合。计算机设备200的其他组件对存储模块202的访问,例如CPU218和外设接口220对存储模块202的访问可以通过存储控制器216进行控制。
外围接口220把计算机设备200的外围输入和输出耦合到设备的CPU218和存储模块202。所述一个或者多个处理器218通过运行各种各样的软件和/或执行存储在存储模块202的各种指令来处理数据和完成设备200的各种功能。
在一些实施例中,外围接口220,一个或者多个处理器218和存储控制器216可能被集成在一个芯片上,例如芯片214。在其他的一些实施例中,它们可能通过不同的芯片来实现。
射频电路222接收和发送电磁波。射频电路222进行电/磁信号转换,并通过电磁波与通信网络或者其他通信设备进行通信。射频电路222可能包含被行业内技术人员所熟知的电路系统来执行上述功能,包括例如但不限于天线系统,RF收发器,一个或者多个放大器,一个调谐器,一个或者多个振荡器,一个数字信号处理器,一个编码解码芯片集,一个用户身份识别卡(SIM卡),存储器等。射频电路222可能与通信网络通信,例如因特网,内联网和/或无线网,例如移动电话网络,无线局域网和/或城域网(MAN),或者与连接到上述网络的其他设备通信。所述通信可以使用各种各样的通信标准,协议和技术,包括例如但不限于超文本传输(HTTP)协议,全球移动通信系统(GSM),增强数据GSM环境(EDGE),宽带码分多址技术(W-CDMA)码分多址技术(CDMA),时分多址技术(TDMA),蓝牙,无线保真技术(wi-fi)(例如,IEEE 802.21a,IEEE 802.21b,IEEE802.21g and/or IEEE 802.21n),网际网络电话协议(VoIP),无线广域网络(Wi-MAX),一个邮件传输协议,即时消息(IM)和/或短消息服务(SMS),或者其他的通信协议,包括本申请日期时尚未被开发的其他适合通信协议。
在一些实施例中,计算机设备200还包含音频电路,音频输出设备和音频输入设备(未示出),提供了计算机设备200与用户之间的音频接口。音频电路从外围接口220接收音频数据,将所述音频数据转化为电学信号,并将电学信号传输给音频输出设备,例如扬声器,音频输出设备将所述电 学信号转化为用户可以听到的声波。音频电路还用于接收音频输入设备从声波转化的电学信号,将电学信号转化为音频数据,并把音频数据传输给外围接口220以供处理。音频数据可能被外围接口220向存储模块202和/或RF电路222传输或者从存储模块202和/或RF电路222获取。在一些实施例中,音频电路可能还包括一个耳机插孔(图2未示出)。耳机插孔在音频电路和可移动音频输入/输出外围设备之间提供了一个接口,所述可移动音频输入/输出设备可以是一个只有输出功能的耳机,也可以是一个包含输入(麦克风)和输出两种功能的设备。
在一些实施例中,计算机设备200还包含I/O子系统(未示出),提供计算机设备200的输入/输出外设和外围接口220之间的接口,输入/输出外设包括例如但不限显示器和其他输入/控制设备,该I/O子系统包括显示控制器以及用于其他输出或控制设备的一个或多个输入控制器。所述一个或多个输入控制器接收/发送来自/去往其他输入或控制设备的电学信号。所述其他输入/控制设备可包括物理按钮(例如按压按钮,摇杆按钮等等)、键盘、操纵杆等等。
在某些实施例中,存储模块202包括操作系统204、通信模块(或指令集)206、图形模块(或指令集)208,以及一个或多个应用软件(或指令集)208。
操作系统204(例如Darwin、RTXC、LINUX、UNIX、OS X、WINDOWS或是诸如Vxworks之类的嵌入式操作系统)包括用于控制和管理常规系统任务(例如内存管理、存储设备控制、电源管理等等)以及有助于各种软硬件组件之间通信的各种软件组件和/或驱动器。
通信模块206有助于经一个或多个外设端口214而与其他设备进行通信,并且它还包括用于处理RF电路222和/或外设端口214接收的数据的各种软件组件。外设端口214(例如通用串行总线(USB)、FIREWIRE等等)适合于直接或者经网络(例如因特网,无线LAN等等)间接耦接到其他设备。
所述一个或多个应用软件208可以包括安装在设备200上的任何应用,包括但不限于浏览器、地址簿、联系人列表、电子邮件、即时消息、文字处理、键盘模拟、窗口小部件(widget)、JAVA应用、加密、语音识别、语音复制、定位(例如由全球定位系统GPS)、音乐播放器等。
图3是依据本发明一实施例的数据传输系统300的组成示意图,如图 3所示,所述TCP传输系统可以包括:应用服务器、制器、发送设备、接收设备和交换设备。系统通过网络102进行连接。控制器是SDN网络的逻辑控制中心,它通过南向接口与交换设备连接,向交换设备提供网络指令,并管理交换设备之间的网络拓扑,通过北向接口与运行在所述应用服务器连接,所述应用服务器可以控制数据从所述发送设备到所述接收设备的传输。
其中,发送设备和接收设备上运行着计算逻辑或者应用程序,该计算逻辑或者应用程序被运行在应用服务器上的应用管理,当大批量数据经过发送设备的计算逻辑或者应用程序处理完,形成新的批量数据,需要由应用调度协调将数据发送到接收设备上进行处理。
发送设备和接收设备的物理端口连接到由控制器管理的SDN网络中,而且发送设备和接收设备的网络互通,如图3所示,发送设备连接到交换设备的11端口,接收设备连接到交换设备的33端口。
控制器提供北向接口,提供网络路径服务质量(Quality of Service,QOS)的定制功能,运行在应用服务器上的应用可以通过管理网络访问控制器的北向接口。
在本发明实施例中,所述应用服务器用于向所述控制器发送TCP传输资源分配请求,所述TCP传输资源分配请求携带所述发送设备的地址和所述接收设备的地址。
所述控制器用于根据所述TCP传输资源分配请求,确定第一传输路径和第二传输路径,所述第一传输路径用于所述发送设备向所述接收设备传输所述数据,所述第二传输路径用于所述接收设备向所述发送设备传输TCP应答消息,并向所述应用发送TCP传输资源分配响应消息,所述TCP传输资源分配响应消息包含所述第一传输路径的带宽信息和TCP往返传输时延,所述TCP往返传输时延表示所述发送设备通过所述第一传输路径发出每个数据包的时间T1与所述发送设备通过所述第二传输路径接收到所述每个数据包的TCP应答消息的时间T2之间的预估的时间差值。
所述应用服务器还用于根据所述第一传输路径的带宽和所述TCP往返传输时延,确定在所述发送设备和所述接收设备之间进行TCP数据传输的发送窗口的初始值,所述发送窗口的初始值与所述第一传输路径的带宽和 所述TCP往返传输时延分别呈正相关,并向所述发送设备发送发送窗口设置消息,所述发送窗口设置消息包含所述发送窗口的初始值。
所述发送设备用于根据所述发送窗口设置消息,将发送窗口设置为所述发送窗口的初始值,并进行TCP数据传输。
其中,发送窗口的初始值是指发送设备进行TCP数据传输时,第一个RTT时间内允许发送的数据量的大小。
所述控制器还用于:获取所述第一传输路径的时延和所述第二传输路径的时延,并根据所述第一传输路径的传输时延和所述第二传输路径的传输时延确定所述TCP往返传输时延,所述TCP往返传输时延与所述第一传输路径的传输时延和所述第二传输路径的传输时延之和呈正相关。
可选的,控制器根据第一传输路径和第二传输路径的操作管理维护(Operation Administration and Maintenance,OAM)特性,探测所述第一传输路径的传输时延和所述第二传输路径的传输时延传输路径的传输时延,并根据所述所述第一传输路径的传输时延传输路径的传输时延和所述第二传输路径的传输时延传输路径的传输时延确定TCP往返传输时延,TCP往返传输时延与第一传输路径的传输时延传输路径的传输时延,第二传输路径的传输时延传输路径的传输时延分别呈正相关。
可选的,TCP往返传输时延为所述所述第一传输路径的传输时延传输路径的传输时延和所述第二传输路径的传输时延传输路径的传输时延之和。
可选的,控制器还预估所述接收设备的TCP层处理时延,TCP往返传输时延为所述所述第一传输路径的传输时延传输路径的传输时延,所述第二传输路径的传输时延,以及所述接收设备的TCP层处理时延之和。
可选的,控制器还预估所述发送设备的TCP层处理时延,TCP往返传输时延为所述所述第一传输路径的传输时延传输路径的传输时延,所述第二传输路径的传输时延,以及所述发送设备和所述接收设备的TCP层处理时延之和。
可选的,应用服务器首先根据TCP往返传输时延确定发送设备与接收设备之间的往返时延RTT,RTT与TCP往返传输时延呈正相关。
可选的,将TCP往返传输时延确定为往返时延RTT。
可选的,应用服务器还预估所述发送设备和所述接收设备的TCP层处理时延,往返时延RTT为TCP往返传输时延,以及所述发送设备和所述接收设备的TCP层处理时延之和。
可选的,应用服务器还预估所述接收设备的TCP层处理时延,往返时延RTT为TCP往返传输时延,以及所述接收设备的TCP层处理时延之和。
可选的,发送设备的发送窗口大小可表示为:
发送窗口=第一传输路径带宽*RTT
可选的,所述控制器还用于确定所述第一传输路径的丢包率;则,所述TCP传输资源分配响应消息还包含所述第一传输路径的所述丢包率。所述应用服务器还用于根据所述丢包率确定所述发送窗口的初始值,所述发送窗口的初始值与所述第一传输路径的带宽和所述TCP往返传输时延分别呈正相关,与所述丢包率呈负相关。
可选的,发送设备的发送窗口大小可表示为:
发送窗口=第一传输路径带宽*RTT*(1-丢包率)
可选的,所述应用服务器还用于:根据所述第一传输路径的带宽和所述TCP往返传输时延,确定所述接收设备的接收窗口的初始值,所述接收窗口的初始值与所述第一传输路径的带宽和所述TCP往返传输时延分别呈正相关。
可选的,接收设备的接收窗口大小可表示为:
Rwnd=第一传输路径带宽*RTT
可选的,所述应用服务器还用于:根据所述第一传输路径的带宽、所述TCP往返传输时延和所述丢包率,确定所述接收设备的接收窗口的初始值,所述接收窗口的初始值与所述第一传输路径的带宽和所述TCP往返传输时延分别呈正相关,与所述丢包率呈负相关。
可选的,接收设备的接收窗口大小可表示为:
Rwnd=第一传输路径带宽*RTT*(1-丢包率)
所述应用服务器还用于向所述接收设备发送接收窗口设置消息,所述接收窗口设置消息包含所述接收窗口的初始值;所述接收设备用于根据所 述接收窗口设置消息指示,将接收窗口的值设置为所述发送窗口的初始值,并进行TCP数据传输。
可选的,发送设备后续进行TCP数据传输时可以根据:发送窗口等于Rwnd,确定进行TCP数据传输的发送窗口大小。
可选的,所述应用服务器还用于:根据所述第一传输路径的带宽和所述TCP往返传输时延,确定所述发送设备的拥塞窗口Cwnd的初始值,所述Cwnd的初始值与所述第一传输路径的带宽和所述TCP往返传输时延分别呈正相关。
可选的,发送设备的拥塞窗口大小可表示为:
Cwnd=第一传输路径带宽*RTT
可选的,所述应用服务器还用于:根据所述第一传输路径的带宽、所述TCP往返传输时延和所述丢包率,确定所述发送设备的拥塞窗口Cwnd的初始值,所述Cwnd的初始值与所述第一传输路径的带宽和所述TCP往返传输时延分别呈正相关,与所述丢包率呈负相关。
可选的,发送设备的拥塞窗口大小可表示为:
Cwnd=第一传输路径带宽*RTT*(1-丢包率)
可选的,所述应用服务器还用于向所述发送设备发送拥塞窗口设置消息,所述拥塞窗口设置消息包含所述拥塞窗口的初始值;所述发送设备用于根据所述拥塞窗口设置消息指示,将拥塞窗口的值设置为所述拥塞窗口的初始值,并进行TCP数据传输。
可选的,所述发送设备在进行TCP数据传输时,发送窗口的值取拥塞窗口和接收窗口的较小值。
可选的,所述TCP传输资源分配请求中还携带最大传输单元MTU取值信息,所述MTU取值信息用于指示所述发送设备的MTU取值的最大值和所述接收设备的MTU取值的最大值;所述控制器还用于:根据所述TCP传输资源分配请求中的MTU取值信息,确定所述第一传输路径进行所述数据传输的MTU取值,所述第一传输路径进行所述数据传输的MTU取值不大于所述发送设备MTU取值的最大值和所述接收设备MTU取值的最大值中的较小值;所述TCP传输资源分配响应消息还包含所述第一传输路径 进行所述数据传输的MTU取值。所述应用服务器还用于将所述发送设备和所述接收设备的MTU取值确定为所述第一传输路径进行所述数据传输的MTU取值,并向所述发送设备和所述接收设备发送MTU设置消息,所述MTU设置消息包含所述第一传输路径的MTU取值。
可选的,控制器根据第一传输路径的OAM特性,在MTU取值信息指示的取值范围内,确定所述第一传输路径的最佳MTU值。
发送设备和接收设备将设备的MTU值设置为最佳MTU值,从而可以保证数据按照最佳长度进行分段,从而实现更加有效的TCP数据传输。
所述控制器还用于向所述第一传输路径上的交换设备发送MTU设置消息,所述MTU设置消息用于指示所述第一传输路径上的交换设备将MTU值设置为所述第一传输路径进行所述数据传输的MTU取值。
可选的,所述应用服务器还用于:根据所述TCP往返传输时延确定所述发送设备的重传超时时间,所述重传超时时间与所述TCP往返传输时延呈正相关;并向所述发送设备发送重传超时时间设置消息,所述重传超时时间设置消息包含所述重传超时时间。
可选的,应用服务器将重传超时时间设置为往返时延RTT。
其中,重传超时时间是指发送设备发送一个数据报文后,等待该一个数据报文的应答消息返回的最大等待时间。
可选的,所述应用服务器还用于:根据所述TCP往返传输时延确定所述接收设备的应答等待时间,所述应答等待时间与所述TCP往返传输时延呈正相关;并向所述接收设备发送应答等待时间设置消息,所述应答消息设置消息包含所述应答等待时间。
可选的,应用服务器将应答等待时间设置为往返时延RTT。
其中,应答等待时间为接收设备接收到一个数据报文后,延迟发送应答消息的最大等待时间。
可选的,应用服务器根据传输数据量,时间安排,发送设备和接收设备上的网卡特性,估算预期的网络带宽,并在TCP传输资源分配请求中携带请求TCP数据传输的路径带宽。
可选的,所述控制器根据所述TCP传输资源分配请求,确定第一传输 路径包括:根据交换设备的网络拓扑,从所述发送设备和所述接收设备之间的路径中,选择一条剩余带宽资源满足传输所述数据需要的路径作为所述第一传输路径。
可选的,所述控制器从所述发送设备和所述接收设备之间的路径中,选择一条剩余带宽资源满足传输所述数据需要的路径作为所述第一传输路径包括:所述控制器从所述发送设备和所述接收设备之间,剩余带宽资源满足传输所述数据需要的所有路径中,选择剩余带宽资源最小的路径或者跳数最少的路径作为所述第一传输路径。
所述控制器根据交换设备的网络拓扑,选择在发送设备和接收设备之间的可用路径集合,如图3所示,有两条路径可选,用交换设备端口可表示为,路径1(P11,P12,P31,P33),路径2(P11,P13,P21,P22,P32,P33)。确定路径1和路径2上的交换设备端口的剩余带宽,端口的物理带宽减去已经分配出去的带宽即得到端口的剩余带宽,路径上的端口中剩余带宽最小的值作为路径的剩余带宽。
可选的,如果可选的路径集合的剩余带宽都小于应用服务器申请的带宽,则选择带宽最大的路径作为所述第一传输路径。
所述控制器向所述第一传输路径上的交换设备发送带宽控制消息,所述带宽控制消息用于指示所述第一传输路径上的交换设备进行所述数据传输的带宽。
可选的,所述控制器还用于:向所述第一传输路径和所述第二传输路径上的交换设备分别发送流表项,用于指示所述第一传输路径上的交换设备进行TCP数据传输,所述第二传输路径上的交换设备进行所述TCP应答消息传输。
可选的,控制器还向应用服务器发送网络资源标识,当完成TCP数据传输后,应用服务器还向控制器发送TCP传输资源释放请求,所述TCP传输资源释放请求中携带所述网络资源标识,控制器根据所述网络资源标识释放进行所述TCP数据传输的路径资源。
根据本实施例提供的技术方案,可以实现对TCP数据传输资源和参数的合理配置,当需要进行TCP数据传输时,应用服务器通过控制器提供的北向接口,向控制器发送TCP传输资源分配请求,控制器根据TCP传输资 源分配请求配置进行TCP数据传输的路径,并确定路径的带宽、TCP往返传输时延、路径的丢包率以及路径最佳MTU值等路径信息,将路径消息返回应用服务器后,可以实现应用服务器合理配置TCP数据传输的参数。应用服务器根据这些参数可以通过设置TCP数据传输的初始发送窗口大小,绕过TCP的慢启动过程,且发送窗口的的初始值大小是根据数据传输路径的带宽和TCP往返时延确定的,能以较大的吞吐量传输,避免了现有技术中因为进行反复网络探测所导致的滑动窗口的减半震荡,最终影响网络的吞吐量的问题,通过控制器返回的MTU值,决定了数据能按照最佳长度进行分段,并在网络设备上进行传输,从而实现更加有效的TCP数据传输。
图4是依据本发明一实施例的数据传输方法400示范性流程图,以实现更加有效的TCP数据传输。在具体实现过程中,TCP传输方法400可以由SDN数据中心的控制器来执行。方法400具体应用于软件定义网络SDN中,所述SDN网络中控制器是SDN网络的逻辑控制中心,它通过南向接口与交换设备连接,向交换设备提供网络指令,并管理交换设备之间的网络拓扑,通过北向接口与应用服务器连接,应用服务器上运行着至少一个应用,当所述应用服务器确定当前需要将数据采用TCP协议从发送设备传送到接收设备时,如图4所示,该方法具体为:
S402:所述控制器接收来自所述应用服务器的TCP传输资源分配请求,所述TCP传输资源分配请求携带所述发送设备的地址和所述接收设备的地址。
可选的,所述发送设备地址和所述接收设备地址为网际协议(Internet Protocol,IP)地址或者媒体访问控制(Media Access Control,MAC)地址。
可选的,控制器提供北向接口,提供网络路径服务质量(Quality of Service,QOS)的定制功能,运行在应用服务器上的应用可以通过管理网络访问控制器的北向接口。
S404:所述控制器根据所述TCP传输资源分配请求,确定第一传输路径和第二传输路径,所述第一传输路径用于所述发送设备向所述接收设备传输所述数据,所述第二传输路径用于所述接收设备向所述发送设备传输TCP应答消息。
S406:所述控制器向所述应用服务器发送TCP传输资源分配响应消息,所述TCP传输资源分配响应消息包含所述第一传输路径的带宽信息和TCP往返传输时延,所述TCP往返传输时延表示所述发送设备通过所述第一传输路径发出每个数据包的时间T1与所述发送设备通过所述第二传输路径接收到所述每个数据包的TCP应答消息的时间T2之间的预估的时间差值,所述第一传输路径的带宽信息和所述TCP往返传输时延用于确定在所述发送设备和所述接收设备之间进行TCP数据传输的发送窗口的初始值。
在所述控制器向所述应用服务器发送TCP传输资源分配响应消息之前,方法400还包括:所述控制器获取所述第一传输路径的时延和所述第二传输路径的时延,并根据所述第一传输路径的传输时延和所述第二传输路径的传输时延确定所述TCP往返传输时延,所述TCP往返传输时延与所述第一传输路径的传输时延和所述第二传输路径的传输时延之和呈正相关。
可选的,控制器根据第一传输路径和第二传输路径的操作管理维护(Operation Administration and Maintenance,OAM)特性,探测所述第一传输路径的传输时延和所述第二传输路径的传输时延,并根据所述所述第一传输路径的传输时延和所述第二传输路径的传输时延确定TCP往返传输时延。
可选的,TCP往返传输时延为所述所述第一传输路径的传输时延和所述第二传输路径的传输时延之和。
可选的,控制器还预估所述接收设备的TCP层处理时延,TCP往返传输时延为所述所述第一传输路径的传输时延,所述第二传输路径的传输时延,以及所述接收设备的TCP层处理时延之和。
可选的,控制器还预估所述发送设备的TCP层处理时延,TCP往返传输时延为所述所述第一传输路径的传输时延,所述第二传输路径的传输时延,以及所述发送设备和所述接收设备的TCP层处理时延之和。
可选的,方法400还包括:在所述控制器向所述应用服务器发送TCP传输资源分配响应消息之前,还包括:所述控制器确定所述第一传输路径的丢包率;则,所述TCP传输资源分配响应消息还包含所述第一传输路径 的所述丢包率。
可选的,控制器根据经验库统计第一传输路径上的丢包率,并叠加预留的丢包率,确定第一传输路径的丢包率信息。
可选的,所述TCP传输资源分配请求中还携带最大传输单元MTU取值信息,所述MTU取值信息包括所述发送设备的MTU取值的最大值和所述接收设备的MTU取值的最大值;所述方法400还包括:所述控制器根据所述TCP传输资源分配请求中的MTU取值信息,确定所述第一传输路径进行所述数据传输的MTU取值,所述第一传输路径进行所述数据传输的MTU取值不大于所述发送设备MTU取值的最大值和所述接收设备MTU取值的最大值中的较小值;则,所述TCP传输资源分配响应消息还包含所述第一传输路径进行所述数据传输的MTU取值。
可选的,控制器根据第一传输路径的OAM特性,在MTU取值信息指示的取值范围内,确定所述第一传输路径的最佳MTU值,从而可以保证数据按照最佳长度进行分段,从而实现更加有效的TCP数据传输。
可选的,所述TCP传输资源分配请求还包含传输所述数据需要的带宽;所述控制器根据所述TCP传输资源分配请求,确定第一传输路径包括:根据交换设备的网络拓扑,从所述发送设备和所述接收设备之间的路径中,选择一条剩余带宽资源满足传输所述数据需要的路径作为所述第一传输路径。
具体的,所述控制器从所述发送设备和所述接收设备之间的路径中,选择一条剩余带宽资源满足传输所述数据需要的路径作为所述第一传输路径包括:所述控制器从所述发送设备和所述接收设备之间,剩余带宽资源满足传输所述数据需要的所有路径中,选择剩余带宽资源最小的路径或者跳数最少的路径作为所述第一传输路径。
可选的,控制器根据交换设备的网络拓扑,选择在发送设备和接收设备之间的可用路径集合,确定可用路径上的交换设备端口的剩余带宽,端口的物理带宽减去已经分配出去的带宽即得到端口的剩余带宽,路径上的端口中剩余带宽最小的值作为路径的剩余带宽。
可选的,如果可选的路径集合的剩余带宽都小于应用服务器申请的带宽,则选择带宽最大的路径作为所述第一传输路径。
方法400还包括:所述控制器向所述第一传输路径上的交换设备发送带宽控制消息,所述带宽控制消息用于指示所述第一传输路径上的交换设备进行所述数据传输的带宽。
可选的,方法400还包括:向所述第一传输路径和所述第二传输路径上的交换设备分别发送流表项,用于指示所述第一传输路径上的交换设备进行TCP数据传输,所述第二传输路径上的交换设备进行所述TCP应答消息传输。
根据本实施例提供的技术方案,可以实现控制器对TCP数据传输资源的合理分配,控制器通过北向接口接收到应用服务器的TCP传输资源分配请求,根据TCP传输资源分配请求合理配置进行TCP数据传输的路径及带宽,并确定路径的TCP往返传输时延、路径的丢包率以及路径最佳MTU值等信息,将路径信息返回给应用服务器侧后,可以实现应用服务器合理配置TCP数据传输的参数。应用服务器根据这些参数可以通过设置TCP数据传输的初始发送窗口大小,绕过TCP的慢启动过程,且发送窗口的的初始值大小是根据数据传输路径的带宽和TCP往返时延确定的,能以较大的吞吐量传输,避免了现有技术中因为进行反复网络探测所导致的滑动窗口的减半震荡,最终影响网络的吞吐量的问题,通过控制器返回的MTU值,决定了数据能按照最佳长度进行分段,并在网络设备上进行传输,从而实现更加有效的TCP数据传输。
图5是依据本发明一实施例的数据传输方法500示范性流程图,以实现更加有效的TCP数据传输,方法500具体应用于软件定义网络SDN中,所述SDN网络中控制器是SDN网络的逻辑控制中心,它通过南向接口与交换设备连接,向交换设备提供网络指令,并管理交换设备之间的网络拓扑,通过北向接口与应用服务器连接。在具体实现过程中,TCP传输方法500可以由SDN数据中心的应用服务器来执行,更具体的,方法500可以由运行在应用服务器上的应用执行。当所述应用确定当前需要将数据采用TCP协议从发送设备传送到接收设备时,如图5所示,该方法具体为:
S502:所述应用服务器向所述控制器发送TCP传输资源分配请求,所述TCP传输资源分配请求携带所述发送设备的地址和所述接收设备的地址。
S504:所述应用服务器接收来自所述控制器的TCP传输资源分配响应消息,所述TCP传输资源分配响应消息包含第一传输路径的带宽和TCP往返传输时延,所述TCP往返传输时延表示所述发送设备通过所述第一传输路径发出每个数据包的时间T1与所述发送设备通过第二传输路径接收到所述每个数据包的TCP应答消息的时间T2之间的预估的时间差值,所述第一传输路径用于所述发送设备向所述接收设备传输所述数据,所述第二传输路径用于所述接收设备向所述发送设备传输答消息。
S506:所述应用服务器根据所述第一传输路径的带宽和所述TCP往返传输时延,确定在所述发送设备和所述接收设备之间进行TCP数据传输的发送窗口的初始值,所述发送窗口的初始值与所述第一传输路径的带宽和所述TCP往返传输时延分别呈正相关。
可选的,应用服务器首先根据TCP往返传输时延确定发送设备与接收设备之间的往返时延RTT,RTT与TCP往返传输时延呈正相关。
可选的,将TCP往返传输时延确定为往返时延RTT。
可选的,应用服务器还预估所述发送设备和所述接收设备的TCP层处理时延,往返时延RTT为TCP往返传输时延,以及所述发送设备和所述接收设备的TCP层处理时延之和。
可选的,应用服务器还预估所述接收设备的TCP层处理时延,往返时延RTT为TCP往返传输时延,以及所述接收设备的TCP层处理时延之和。
可选的,所述发送窗口的初始值与所述第一传输路径的带宽和所述TCP往返传输时延分别呈正相关。
可选的,发送设备的发送窗口大小可表示为:
发送窗口=第一传输路径带宽*RTT
可选的,所述TCP传输资源分配响应消息中还携带所述第一传输路径的丢包率;所述应用服务器还用于根据所述丢包率确定所述发送窗口的初始值,所述发送窗口的初始值与所述第一传输路径的带宽和所述TCP往返传输时延分别呈正相关,与所述丢包率呈负相关。
可选的,发送设备的发送窗口大小可表示为:
发送窗口=第一传输路径带宽*RTT*(1-丢包率)
可选的,所述应用服务器还用于:根据所述第一传输路径的带宽和所述TCP往返传输时延,确定所述接收设备的接收窗口的初始值,所述接收窗口的初始值与所述第一传输路径的带宽和所述TCP往返传输时延分别呈正相关。
可选的,接收设备的接收窗口大小可表示为:
Rwnd=第一传输路径带宽*RTT
可选的,所述应用服务器还用于:根据所述第一传输路径的带宽、所述TCP往返传输时延和所述丢包率,确定所述接收设备的接收窗口的初始值,所述接收窗口的初始值与所述第一传输路径的带宽和所述TCP往返传输时延分别呈正相关,与所述丢包率呈负相关。
可选的,接收设备的接收窗口大小可表示为:
Rwnd=第一传输路径带宽*RTT*(1-丢包率)
具体的,所述应用服务器还用于向所述发送设备发送发送窗口设置消息,所述发送窗口设置消息包含所述发送窗口的初始值。所述发送设备接收发送窗口设置消息,根据所述发送窗口设置消息,将发送窗口设置为所述发送窗口的初始值,并根据所述发送窗口的大小进行TCP数据传输。
具体的,所述应用服务器还用于向所述接收设备发送接收窗口设置消息,所述接收窗口设置消息包含所述接收窗口的初始值。所述接收设备接收所述接收窗口设置消息,根据接收窗口设置消息指示,将接收设备的接收窗口大小设置为所述接收窗口初始值。
可选的,发送设备后续进行TCP数据传输时可以根据:发送窗口等于Rwnd,确定进行TCP数据传输的发送窗口大小。
可选的,所述应用服务器还用于:根据所述第一传输路径的带宽和所述TCP往返传输时延,确定所述发送设备的拥塞窗口Cwnd的初始值,所述Cwnd的初始值与所述第一传输路径的带宽和所述TCP往返传输时延分别呈正相关。
可选的,发送设备的拥塞窗口大小可表示为:
Cwnd=第一传输路径带宽*RTT
可选的,所述应用服务器还用于:根据所述第一传输路径的带宽、所 述TCP往返传输时延和所述丢包率,确定所述发送设备的拥塞窗口Cwnd的初始值,所述Cwnd的初始值与所述第一传输路径的带宽和所述TCP往返传输时延分别呈正相关,与所述丢包率呈负相关。
可选的,发送设备的拥塞窗口大小可表示为:
Cwnd=第一传输路径带宽*RTT*(1-丢包率)
可选的,所述应用服务器还用于向所述发送设备发送拥塞窗口设置消息,所述拥塞窗口设置消息包含所述拥塞窗口的初始值;所述发送设备用于根据所述拥塞窗口设置消息指示,将拥塞窗口的值设置为所述拥塞窗口的初始值,并进行TCP数据传输。
可选的,所述发送设备在进行TCP数据传输时,发送窗口的值取拥塞窗口和接收窗口的较小值。
可选的,所述TCP传输资源分配请求中还携带最大传输单元MTU取值信息,所述MTU取值信息用于指示所述发送设备的MTU取值的最大值和所述接收设备的MTU取值的最大值;所述TCP传输资源分配响应消息还包含所述第一传输路径进行所述数据传输的MTU取值;所述应用服务器还用于将所述发送设备和所述接收设备的MTU取值确定为所述第一传输路径进行所述数据传输的MTU取值。则,所述应用服务器还用于向所述发送设备和所述接收设备发送MTU设置消息,所述MTU设置消息包含所述第一传输路径的MTU取值。
所述发送设备接收最大传输单元MTU设置消息,并根据所述MTU设置消息指示,设置所述发送设备的MTU值。
所述接收设备接收最大传输单元MTU设置消息,并根据所述MTU设置消息指示,设置所述接收设备的MTU值。
可选的,控制器根据第一传输路径的OAM特性,在MTU取值信息指示的取值范围内,确定所述第一传输路径的最佳MTU值。
发送设备和接收设备将设备的MTU值设置为最佳MTU值,从而可以保证数据按照最佳长度进行分段,从而实现更加有效的TCP数据传输。
可选的,所述应用服务器还用于:根据所述TCP往返传输时延确定所述发送设备的重传超时时间,所述重传超时时间与所述TCP往返传输时延 呈正相关;并向所述发送设备发送重传超时时间设置消息,所述重传超时时间设置消息包含所述重传超时时间。
可选的,应用服务器将重传超时时间设置为往返时延RTT。
其中,重传超时时间是指发送设备发送一个数据报文后,等待该一个数据报文的应答消息返回的最大等待时间。
可选的,所述应用服务器还用于:根据所述TCP往返传输时延确定所述接收设备的应答等待时间,所述应答等待时间与所述TCP往返传输时延呈正相关;并向所述接收设备发送应答等待时间设置消息,所述应答消息设置消息包含所述应答等待时间。
可选的,应用服务器将应答等待时间设置为往返时延RTT。
其中,应答等待时间为接收设备接收到一个数据报文后,延迟发送应答消息的最大等待时间。
具体的,应用服务器通过控制器的北向接口将TCP传输资源分配请求发送给控制器。
可选的,应用服务器根据传输数据量,时间安排,发送设备和接收设备上的网卡特性,估算预期的网络带宽,并在TCP传输资源分配请求中携带请求TCP数据传输的路径带宽。
因为已经预留路径丢包时进行TCP数据传输的带宽,当TCP层收到第3个重复的ACK时,则表明路径处于拥塞阶段,保持发送窗口不变,并重传丢失的报文。
因为已经预留路径丢包时进行TCP数据传输的带宽,当超时时,则重传未收到ACK的分组报文,保持发送窗口不变。
根据本实施例提供的技术方案,可以实现应用服务器对TCP数据传输的参数的合理配置,当需要进行TCP数据传输时,应用服务器通过控制器的北向接口向控制器发送TCP传输资源分配请求,请求进行TCP数据传输的路径资源,待控制器根据TCP传输资源分配请求配置路径后,会接收到控制器发送的TCP传输资源分配响应消息,应用服务器根据TCP传输资源分配响应消息确定TCP数据传输的参数。通过设置TCP数据传输的初始发送窗口大小,绕过TCP的慢启动过程,且发送窗口的的初始值大小是根据 数据传输路径的带宽和TCP往返时延确定的,能以较大的吞吐量传输,避免了现有技术中因为进行反复网络探测所导致的滑动窗口的减半震荡,最终影响网络的吞吐量的问题,通过控制器返回的MTU值,决定了数据能按照最佳长度进行分段,并在网络设备上进行传输,从而可以实现更加有效的TCP数据传输。
图6是依据本发明一实施例的数据传输装置600的逻辑结构示意图,装置600应用于软件定义网络SDN中,其通过南向接口与交换设备连接,通过北向接口与应用服务器连接,所述应用服务器用于控制数据从所述发送设备发送至所述接收设备,如图6所示,数据传输装置600可以包括:接收单元602,确定单元604,发送单元606。
接收单元602,用于接收来自所述应用服务器的TCP传输资源分配请求,所述TCP传输资源分配请求携带所述发送设备的地址和所述接收设备的地址。
确定单元604,用于根据所述TCP传输资源分配请求,确定第一传输路径和第二传输路径,所述第一传输路径用于所述发送设备向所述接收设备传输所述数据,所述第二传输路径用于所述接收设备向所述发送设备传输TCP应答消息。
发送单元606,用于所述应用服务器发送TCP传输资源分配响应消息,所述TCP传输资源分配响应消息包含所述第一传输路径的带宽信息和TCP往返传输时延,所述TCP往返传输时延表示所述发送设备通过所述第一传输路径发出每个数据包的时间T1与所述发送设备通过所述第二传输路径接收到所述每个数据包的TCP应答消息的时间T2之间的预估的时间差值,所述第一传输路径的带宽信息和所述TCP往返传输时延用于确定在所述发送设备和所述接收设备之间进行TCP数据传输的发送窗口的初始值。
所述确定单元604还用于:获取所述第一传输路径的时延和所述第二传输路径的时延,并根据所述第一传输路径的传输时延和所述第二传输路径的传输时延确定所述TCP往返传输时延,所述TCP往返传输时延与所述第一传输路径的传输时延和所述第二传输路径的传输时延之和呈正相关。
可选的,所述确定单元604还用于:确定所述第一传输路径的丢包率;则,所述TCP传输资源分配响应消息还包含所述第一传输路径的所述丢包 率。
可选的,所述TCP传输资源分配请求中还携带最大传输单元MTU取值信息,所述MTU取值信息包括所述发送设备的MTU取值的最大值和所述接收设备的MTU取值的最大值;所述确定单元604还用于:根据所述TCP传输资源分配请求中的MTU取值信息,确定所述第一传输路径进行所述数据传输的MTU取值,所述第一传输路径进行所述数据传输的MTU取值不大于所述发送设备MTU取值的最大值和所述接收设备MTU取值的最大值中的较小值;则,所述TCP传输资源分配响应消息还包含所述第一传输路径进行所述数据传输的MTU取值。
可选的,所述TCP传输资源分配请求还包含传输所述数据需要的带宽;所述确定单元604用于根据所述TCP传输资源分配请求,确定第一传输路径包括:所述确定单元604根据交换设备的网络拓扑,从所述发送设备和所述接收设备之间的路径中,选择一条剩余带宽资源满足传输所述数据需要的路径作为所述第一传输路径。
具体的,所述确定单元604用于从所述发送设备和所述接收设备之间的路径中,选择一条剩余带宽资源满足传输所述数据需要的路径作为所述第一传输路径包括:所述确定单元604用于从所述发送设备和所述接收设备之间,剩余带宽资源满足传输所述数据需要的所有路径中,选择剩余带宽资源最小的路径或者跳数最少的路径作为所述第一传输路径。
所述发送单元606还用于:向所述第一传输路径上的交换设备发送带宽控制消息,所述带宽控制消息用于指示所述第一传输路径上的交换设备进行所述数据传输的带宽。
可选的,所述发送设备地址和所述接收设备地址为网际协议(Internet Protocol,IP)地址或者媒体访问控制(Media Access Control,MAC)地址。
可选的,装置600提供北向接口,提供网络路径服务质量(Quality of Service,QOS)的定制功能,运行在应用服务器上的应用可以通过管理网络访问控制器的北向接口。
可选的,确定单元604根据交换设备的网络拓扑,选择在发送设备和接收设备之间的可用路径集合,确定可用路径上的交换设备端口的剩余带宽,端口的物理带宽减去已经分配出去的带宽即得到端口的剩余带宽,路 径上的端口中剩余带宽最小的值作为路径的剩余带宽。
可选的,如果可选的路径集合的剩余带宽都小于应用服务器申请的带宽,则所述确定单元604选择带宽最大的路径作为所述第一传输路径。
可选的,确定单元604根据第一传输路径和第二传输路径的操作管理维护(Operation Administration and Maintenance,OAM)特性,探测所述第一传输路径的传输时延和所述第二传输路径的传输时延,并根据所述所述第一传输路径的传输时延和所述第二传输路径的传输时延确定TCP往返传输时延,TCP往返传输时延与第一传输路径的传输时延,第二传输路径的传输时延分别呈正相关。
可选的,TCP往返传输时延为所述所述第一传输路径的传输时延和所述第二传输路径的传输时延之和。
可选的,确定单元604还预估所述发送设备和所述接收设备的TCP层处理时延,TCP往返传输时延为所述所述第一传输路径的传输时延,所述第二传输路径的传输时延,以及所述发送设备和所述接收设备的TCP层处理时延之和。
可选的,确定单元604还预估所述接收设备的TCP层处理时延,TCP往返传输时延为所述所述第一传输路径的传输时延,所述第二传输路径的传输时延,以及所述接收设备的TCP层处理时延之和。
可选的,确定单元604根据经验库统计第一传输路径上的丢包率,并叠加预留的丢包率,确定第一传输路径的丢包率信息。
可选的,确定单元604根据第一传输路径的OAM特性,在MTU取值信息指示的取值范围内,确定所述第一传输路径的最佳MTU值,从而可以保证数据按照最佳长度进行分段,从而实现更加有效的TCP数据传输。
可选的,所述发送单元606还用于:向所述第一传输路径和所述第二传输路径上的交换设备分别发送流表项,用于指示所述第一传输路径上的交换设备进行TCP数据传输,所述第二传输路径上的交换设备进行所述TCP应答消息传输。
根据本实施例提供的技术方案,可以实现装置600对TCP数据传输资源的合理分配,装置600通过北向接口接收到应用服务器的TCP传输资源 分配请求,根据TCP传输资源分配请求合理配置进行TCP数据传输的路径及带宽,并确定路径的TCP往返传输时延、路径的丢包率以及路径最佳MTU值等信息,将路径信息返回给应用服务器侧后,可以实现应用服务器合理配置TCP数据传输的参数。应用服务器根据这些参数可以通过设置TCP数据传输的初始发送窗口大小,绕过TCP的慢启动过程,且发送窗口的的初始值大小是根据数据传输路径的带宽和TCP往返时延确定的,能以较大的吞吐量传输,避免了现有技术中因为进行反复网络探测所导致的滑动窗口的减半震荡,最终影响网络的吞吐量的问题,通过控制器返回的MTU值,决定了数据能按照最佳长度进行分段,并在网络设备上进行传输,从而实现更加有效的TCP数据传输。
图7是依据本发明一实施例的数据传输装置700的逻辑结构示意图,装置700应用于软件定义网络SDN中,所述SDN网络中控制器通过南向接口与交换设备连接,通过北向接口与所述装置连接,所述装置上运行着应用,所述应用用于控制数据从所述发送设备发送至所述接收设备,如图7所示,数据传输装置700可以包括:发送单元702,接收单元704,确定单元706。
发送单元702,用于向所述控制器发送TCP传输资源分配请求,所述TCP传输资源分配请求携带所述发送设备的地址和所述接收设备的地址。
接收单元704,用于接收来自所述控制器的TCP传输资源分配响应消息,所述TCP传输资源分配响应消息包含第一传输路径的带宽和TCP往返传输时延,所述TCP往返传输时延表示所述发送设备通过所述第一传输路径发出每个数据包的时间T1与所述发送设备通过第二传输路径接收到所述每个数据包的TCP应答消息的时间T2之间的预估的时间差值,所述第一传输路径用于所述发送设备向所述接收设备传输所述数据,所述第二传输路径用于所述接收设备向所述发送设备传输答消息。
确定单元706,用于根据所述第一传输路径的带宽和所述TCP往返传输时延,确定在所述发送设备和所述接收设备之间进行TCP数据传输的发送窗口的初始值,所述发送窗口的初始值与所述第一传输路径的带宽和所述TCP往返传输时延分别呈正相关。
可选的,所述TCP传输资源分配响应消息中还携带所述第一传输路径 的丢包率;所述确定单元706还用于根据所述丢包率确定所述发送窗口的初始值,所述发送窗口的初始值与所述第一传输路径的带宽和所述TCP往返传输时延分别呈正相关,与所述丢包率呈负相关。
可选的,所述确定单元706还用于:根据所述第一传输路径的带宽和所述TCP往返传输时延,确定所述接收设备的接收窗口的初始值,所述接收窗口的初始值与所述第一传输路径的带宽和所述TCP往返传输时延分别呈正相关。
可选的,所述确定单元706还用于:根据所述第一传输路径的带宽、所述TCP往返传输时延和所述丢包率,确定所述接收设备的接收窗口的初始值,所述接收窗口的初始值与所述第一传输路径的带宽和所述TCP往返传输时延分别呈正相关,与所述丢包率呈负相关。
具体的,所述发送单元702还用于向所述发送设备发送发送窗口设置消息,所述发送窗口设置消息包含所述发送窗口的初始值。
具体的,所述发送单元702还用于向所述接收设备发送接收窗口设置消息,所述接收窗口设置消息包含所述接收窗口的初始值。
可选的,所述确定单元706还用于:根据所述第一传输路径的带宽和所述TCP往返传输时延,确定所述发送设备的拥塞窗口Cwnd的初始值,所述Cwnd的初始值与所述第一传输路径的带宽和所述TCP往返传输时延分别呈正相关。
可选的,所述确定单元706还用于:根据所述第一传输路径的带宽、所述TCP往返传输时延和所述丢包率,确定所述发送设备的拥塞窗口Cwnd的初始值,所述Cwnd的初始值与所述第一传输路径的带宽和所述TCP往返传输时延分别呈正相关,与所述丢包率呈负相关。
可选的,所述发送单元702还用于向所述发送设备发送拥塞窗口设置消息,所述拥塞窗口设置消息包含所述拥塞窗口的初始值;所述发送设备根据所述拥塞窗口设置消息指示,将拥塞窗口的值设置为所述拥塞窗口的初始值,并进行TCP数据传输。
可选的,所述发送设备在进行TCP数据传输时,发送窗口的值取拥塞窗口和接收窗口的较小值。
可选的,所述TCP传输资源分配请求中还携带最大传输单元MTU取值信息,所述MTU取值信息用于指示所述发送设备的MTU取值的最大值和所述接收设备的MTU取值的最大值;所述TCP传输资源分配响应消息还包含所述第一传输路径进行所述数据传输的MTU取值;所述确定单元706还用于将所述发送设备和所述接收设备的MTU取值确定为所述第一传输路径进行所述数据传输的MTU取值。则,所述发送单元702还用于向所述发送设备和所述接收设备发送MTU设置消息,所述MTU设置消息包含所述第一传输路径的MTU取值。
可选的,所述确定单元706还用于根据所述TCP往返传输时延确定所述发送设备的重传超时时间,所述重传超时时间与所述TCP往返传输时延呈正相关。则,所述发送单元702还用于向所述发送设备发送重传超时时间设置消息,所述重传超时时间设置消息包含所述重传超时时间。
可选的,所述确定单元706还用于根据所述TCP往返传输时延确定所述接收设备的应答等待时间,所述应答等待时间与所述TCP往返传输时延呈正相关。则,所述发送单元还用于向所述接收设备发送应答等待时间设置消息,所述应答消息设置消息包含所述应答等待时间。
发送单元702通过控制器的北向接口将TCP传输资源分配请求发送给控制器。
可选的,确定单元706首先根据TCP往返传输时延确定发送设备与接收设备之间的往返时延RTT,RTT与TCP往返传输时延呈正相关。
可选的,确定单元706将TCP往返传输时延确定为往返时延RTT。
可选的,确定单元706还预估所述发送设备和所述接收设备的TCP层处理时延,往返时延RTT为TCP往返传输时延,以及所述发送设备和所述接收设备的TCP层处理时延之和。
可选的,确定单元706还预估所述接收设备的TCP层处理时延,往返时延RTT为TCP往返传输时延,以及所述接收设备的TCP层处理时延之和。
可选的,发送设备的发送窗口大小可表示为:
发送窗口=第一传输路径带宽*RTT
可选的,接收设备的接收窗口大小可表示为:
Rwnd=第一传输路径带宽*RTT
可选的,发送设备的发送窗口大小可表示为:
发送窗口=第一传输路径带宽*RTT*(1-丢包率)
可选的,接收设备的接收窗口大小可表示为:
Rwnd=第一传输路径带宽*RTT*(1-丢包率)
可选的,确定单元706将重传超时时间设置为往返时延RTT。
可选的,确定单元706将应答等待时间设置为往返时延RTT。
可选的,所述确定单元706还用于:根据所述第一传输路径的带宽和所述TCP往返传输时延,确定所述发送设备的拥塞窗口Cwnd的初始值,所述Cwnd的初始值与所述第一传输路径的带宽和所述TCP往返传输时延分别呈正相关。
可选的,发送设备的拥塞窗口大小可表示为:
Cwnd=第一传输路径带宽*RTT
可选的,所述确定单元706还用于:根据所述第一传输路径的带宽、所述TCP往返传输时延和所述丢包率,确定所述发送设备的拥塞窗口Cwnd的初始值,所述Cwnd的初始值与所述第一传输路径的带宽和所述TCP往返传输时延分别呈正相关,与所述丢包率呈负相关。
可选的,发送设备的拥塞窗口大小可表示为:
Cwnd=第一传输路径带宽*RTT*(1-丢包率)
可选的,所述发送单元702还用于向所述发送设备发送拥塞窗口设置消息,所述拥塞窗口设置消息包含所述拥塞窗口的初始值;所述发送设备用于根据所述拥塞窗口设置消息指示,将拥塞窗口的值设置为所述拥塞窗口的初始值,并进行TCP数据传输。
可选的,所述发送设备在进行TCP数据传输时,发送窗口的值取拥塞窗口和接收窗口的较小值。
根据本实施例提供的技术方案,可以实现装置700对TCP数据传输的参数的合理配置,当需要进行TCP数据传输时,装置700通过控制器的北向接口向控制器发送TCP传输资源分配请求,请求进行TCP数据传输的路 径资源,待控制器根据TCP传输资源分配请求配置路径后,会接收到控制器发送的TCP传输资源分配响应消息,装置700根据TCP传输资源分配响应消息确定TCP数据传输的参数。通过设置TCP数据传输的初始发送窗口大小,绕过TCP的慢启动过程,且发送窗口的的初始值大小是根据数据传输路径的带宽和TCP往返时延确定的,能以较大的吞吐量传输,避免了现有技术中因为进行反复网络探测所导致的滑动窗口的减半震荡,最终影响网络的吞吐量的问题,通过控制器返回的MTU值,决定了数据能按照最佳长度进行分段,并在网络设备上进行传输,从而可以实现更加有效的TCP数据传输。
图8是依据本发明一实施例的数据传输方法800示范性流程图,以实现更加有效的TCP数据传输。在具体实现过程中,方法800应用于软件定义网络SDN中,所述SDN网络中控制器通过南向接口与交换设备连接,通过北向接口与应用服务器连接,应用服务器上运行着至少一个应用,数据传输方法800可以由SDN数据中心的控制器来执行,当所述应用服务器确定当前需要将数据采用TCP协议从发送设备传送到接收设备时,如图8所示,该方法具体为:
S802:所述控制器接收来自所述应用服务器的TCP传输资源分配请求,所述TCP传输资源分配请求携带所述发送设备的地址和所述接收设备的地址。
S804:所述控制器根据所述TCP传输资源分配请求,确定第一传输路径和第二传输路径,所述第一传输路径用于所述发送设备向所述接收设备传输所述数据,所述第二传输路径用于所述接收设备向所述发送设备传输TCP应答消息。
S806:所述控制器根据所述第一传输路径和/或所述第二传输路径,确定所述发送设备和/或所述接收设备进行TCP数据传输的参数的取值。
S808:所述控制器发送参数设置消息,所述参数设置消息中携带所述TCP数据传输的参数的取值。
可选的,所述发送设备地址和所述接收设备地址为网际协议(Internet Protocol,IP)地址或者媒体访问控制(Media Access Control,MAC)地址。
可选的,控制器提供北向接口,提供网络路径服务质量(Quality of  Service,QOS)的定制功能,运行在应用服务器上的应用可以通过管理网络访问控制器的北向接口。
可选的,控制器根据交换设备的网络拓扑,选择在发送设备和接收设备之间的可用路径集合,确定可用路径上的交换设备端口的剩余带宽,端口的物理带宽减去已经分配出去的带宽即得到端口的剩余带宽,路径上的端口中剩余带宽最小的值作为路径的剩余带宽。
可选的,所述TCP传输资源分配请求还包含所述数据传输需要的带宽;所述控制器根据所述TCP传输资源分配请求,确定第一传输路径包括:根据交换设备的网络拓扑,从所述发送设备和所述接收设备之间的路径中,选择剩余带宽资源满足所述数据传输需要、且剩余带宽资源最小的路径作为所述第一传输路径。
可选的,所述控制器根据所述TCP传输资源分配请求,确定第一传输路径包括:根据交换设备的网络拓扑,从所述发送设备和所述接收设备之间的路径中,选择剩余带宽资源满足所述数据传输需要、且跳数最少的路径作为所述第一传输路径。
可选的,如果可选的路径集合的剩余带宽都小于应用服务器申请的带宽,则选择带宽最大的路径作为所述第一传输路径。
所述控制器确定所述第一传输路径时延和所述第二传输路径的时延,并根据所述第一传输路径的传输时延和所述第二传输路径的传输时延确定所述TCP往返传输时延,所述TCP往返传输时延与所述第一传输路径的传输时延和所述第二传输路径的传输时延之和呈正相关。
可选的,控制器根据第一传输路径和第二传输路径的操作管理维护(Operation Administration and Maintenance,OAM)特性,探测所述第一传输路径的传输时延和所述第二传输路径的传输时延,并根据所述所述第一传输路径的传输时延和所述第二传输路径的传输时延确定TCP往返传输时延,TCP往返传输时延与第一传输路径的传输时延,第二传输路径的传输时延分别呈正相关。
可选的,TCP往返传输时延为所述所述第一传输路径的传输时延和所述第二传输路径的传输时延之和。
可选的,控制器还预估所述发送设备和所述接收设备的TCP层处理时 延,TCP往返传输时延为所述所述第一传输路径的传输时延,所述第二传输路径的传输时延,以及所述发送设备和所述接收设备的TCP层处理时延之和。
可选的,控制器还预估所述接收设备的TCP层处理时延,TCP往返传输时延为所述所述第一传输路径的传输时延,所述第二传输路径的传输时延,以及所述接收设备的TCP层处理时延之和。
所述TCP传输资源分配请求中还携带MTU取值信息,所述MTU取值信息用于指示所述发送设备的MTU取值的最大值和所述接收设备的MTU取值的最大值;所述方法800还包括:所述控制器根据所述TCP传输资源分配请求中的MTU取值信息,确定所述第一传输路径进行所述数据传输的MTU取值,所述第一传输路径进行所述数据传输的MTU取值不大于所述发送设备MTU取值的最大值和所述接收设备MTU取值的最大值中的较小值。
可选的,控制器根据第一传输路径的OAM特性,在MTU取值信息指示的取值范围内,确定所述第一传输路径的最佳MTU值。则所述发送参数设置消息包括:将所述MTU值设置信息发送给所述发送设备和所述接收设备。
可选的,方法800还包括:向所述第一传输路径和所述第二传输路径上的交换设备分别发送流表项,用于指示所述第一传输路径上的交换设备进行TCP数据传输,所述第二传输路径上的交换设备进行所述TCP应答消息传输。
可选的,方法800还包括:所述控制器向所述第一传输路径上的交换设备发送带宽控制消息,所述带宽控制消息用于指示所述第一传输路径上的交换设备进行所述数据传输的带宽。
可选的,所述控制器根据所述第一传输路径和/或所述第二传输路径,确定TCP数据传输的参数的取值包括:所述控制器根据所述第一传输路径的带宽和所述TCP往返传输时延,确定所述发送设备的发送窗口的初始值,所述发送窗口的初始值与所述第一传输路径的带宽和所述TCP往返传输时延分别呈正相关;则所述发送参数设置消息包括:将所述发送窗口的初始值设置消息发送给所述发送设备。
可选的,控制器首先根据TCP往返传输时延确定发送设备与接收设备之间的往返时延RTT,RTT与TCP往返传输时延呈正相关。
可选的,将TCP往返传输时延确定为往返时延RTT。
可选的,发送设备的发送窗口大小可表示为:
发送窗口=第一传输路径带宽*RTT
可选的,所述控制器根据所述第一传输路径和/或所述第二传输路径,确定TCP数据传输的参数的取值包括:所述控制器根据所述TCP传输资源分配响应消息,确定所述发送设备和/或所述接收设备进行TCP数据传输的参数的取值包括:根据所述第一传输路径的带宽和所述TCP往返传输时延,确定所述接收设备的接收窗口的初始值,所述接收窗口的初始值与所述第一传输路径的带宽和所述TCP往返传输时延分别呈正相关;则所述发送参数设置消息包括:将所述接收窗口的初始值设置消息发送给所述接收设备。
可选的,接收设备的接收窗口大小可表示为:
Rwnd=第一传输路径带宽*RTT
可选的,方法800还包括:所述控制器确定所述第一传输路径的丢包率,所述丢包率用于指示所述第一传输路径进行数据传输时的丢包情况。
可选的,控制器根据经验库统计第一传输路径上的丢包率,并叠加预留的丢包率,确定第一传输路径的丢包率信息。
可选的,控制器启动第一传输路径OAM特性,并确定第一传输路径的丢包率。
可选的,所述根据所述第一传输路径和/或所述第二传输路径,确定TCP数据传输的参数的取值包括:根据所述第一传输路径的带宽、所述TCP往返传输时延和所述丢包率,确定所述发送设备的发送窗口的初始值,所述发送窗口的初始值与所述第一传输路径的带宽和所述TCP往返传输时延分别呈正相关,与所述丢包率呈负相关;则所述发送参数设置消息包括:将所述发送窗口的初始值设置消息发送给所述发送设备。
可选的,发送设备的发送窗口大小可表示为:
发送窗口=第一传输路径带宽*RTT*(1-丢包率)
可选的,所述根据所述第一传输路径和/或所述第二传输路径,确定 TCP数据传输的参数的取值包括:根据所述第一传输路径的带宽、所述TCP往返传输时延和所述丢包率,确定所述接收设备的接收窗口的初始值,所述接收窗口的初始值与所述第一传输路径的带宽和所述TCP往返传输时延分别呈正相关,与所述丢包率呈负相关;则所述发送参数设置消息包括:将所述接收窗口的初始值设置消息发送给所述接收设备。
可选的,接收设备的接收窗口大小可表示为:
Rwnd=第一传输路径带宽*RTT*(1-丢包率)
可选的,所述根据所述第一传输路径和/或所述第二传输路径,确定TCP数据传输的参数的取值包括:根据所述TCP往返传输时延确定发送设备的重传超时时间,所述重传超时时间与所述TCP往返传输时延呈正相关;则所述发送参数设置消息包括:将所述重传超时时间设置消息发送给所述发送设备。
可选的,控制器将重传超时时间设置为往返时延RTT。
可选的,所述根据所述第一传输路径和/或所述第二传输路径,确定TCP数据传输的参数的取值包括:根据所述TCP往返传输时延确定接收设备的应答等待时间,所述应答等待时间与所述TCP往返传输时延呈正相关;则所述发送参数设置消息包括:将所述接收窗口的应答等待时间发送给所述接收设备。
可选的,控制器将应答等待时间设置为往返时延RTT。
可选的,所述控制器还用于:根据所述第一传输路径的带宽和所述TCP往返传输时延,确定所述发送设备的拥塞窗口Cwnd的初始值,所述Cwnd的初始值与所述第一传输路径的带宽和所述TCP往返传输时延分别呈正相关。
可选的,发送设备的拥塞窗口大小可表示为:
Cwnd=第一传输路径带宽*RTT
可选的,所述控制器还用于:根据所述第一传输路径的带宽、所述TCP往返传输时延和所述丢包率,确定所述发送设备的拥塞窗口Cwnd的初始值,所述Cwnd的初始值与所述第一传输路径的带宽和所述TCP往返传输时延分别呈正相关,与所述丢包率呈负相关。
可选的,发送设备的拥塞窗口大小可表示为:
Cwnd=第一传输路径带宽*RTT*(1-丢包率)
可选的,所述控制器还用于向所述发送设备发送拥塞窗口设置消息,所述拥塞窗口设置消息包含所述拥塞窗口的初始值;所述发送设备用于根据所述拥塞窗口设置消息指示,将拥塞窗口的值设置为所述拥塞窗口的初始值,并进行TCP数据传输。
可选的,所述发送设备在进行TCP数据传输时,发送窗口的值取拥塞窗口和接收窗口的较小值。
根据本实施例提供的技术方案,可以实现控制器对TCP数据传输资源和参数的合理配置,控制器通过北向接口接收到应用服务器的TCP传输资源分配请求,根据TCP传输资源分配请求合理配置进行TCP数据传输的路径及带宽,并确定路径的TCP往返传输时延、路径的丢包率以及路径最佳MTU值等路径信息,并根据路径信息合理配置TCP数据传输的参数。控制器根据这些参数可以通过设置TCP数据传输的初始发送窗口大小,绕过TCP的慢启动过程,且发送窗口的的初始值大小是根据数据传输路径的带宽和TCP往返时延确定的,能以较大的吞吐量传输,避免了现有技术中因为进行反复网络探测所导致的滑动窗口的减半震荡,最终影响网络的吞吐量的问题,通过控制器返回的MTU值,决定了数据能按照最佳长度进行分段,并在网络设备上进行传输,从而实现更加有效的TCP数据传输。
图9是依据本发明一实施例的数据传输装置900的逻辑结构示意图,装置900应用于软件定义网络SDN中,装置900通过南向接口与交换设备连接,通过北向接口与应用服务器连接,所述应用服务器用于控制数据从所述发送设备发送至所述接收设备,如图9所示,数据传输装置900可以包括:接收单元902,确定单元904,发送单元906。
接收单元902,接收来自所述应用服务器的TCP传输资源分配请求,所述TCP传输资源分配请求携带所述发送设备的地址和所述接收设备的地址。
确定单元904,用于根据所述TCP传输资源分配请求,确定第一传输路径和第二传输路径,所述第一传输路径用于所述发送设备向所述接收设备传输所述数据,所述第二传输路径用于所述接收设备向所述发送设备传 输TCP应答消息,根据所述第一传输路径和/或所述第二传输路径,确定所述发送设备和/或所述接收设备进行TCP数据传输的参数的取值。
发送单元906,用于发送参数设置消息,所述参数设置消息中携带所述TCP数据传输的参数的取值。
可选的,所述发送设备地址和所述接收设备地址为网际协议(Internet Protocol,IP)地址或者媒体访问控制(Media Access Control,MAC)地址。
可选的,装置900提供北向接口,提供网络路径服务质量(Quality of Service,QOS)的定制功能,运行在应用服务器上的应用可以通过管理网络访问控制器的北向接口。
可选的,确定单元904用于根据交换设备的网络拓扑,选择在发送设备和接收设备之间的可用路径集合,确定可用路径上的交换设备端口的剩余带宽,端口的物理带宽减去已经分配出去的带宽即得到端口的剩余带宽,路径上的端口中剩余带宽最小的值作为路径的剩余带宽。
可选的,所述TCP传输资源分配请求还包含所述数据传输需要的带宽;所述确定单元904用于根据交换设备的网络拓扑和所述TCP传输资源分配请求,确定第一传输路径包括:确定单元904根据交换设备的网络拓扑,从所述发送设备和所述接收设备之间的路径中,选择剩余带宽资源满足所述数据传输需要、且剩余带宽资源最小的路径作为所述第一传输路径。
可选的,所述确定单元904用于根据交换设备的网络拓扑和所述TCP传输资源分配请求,确定第一传输路径包括:确定单元904根据交换设备的网络拓扑,从所述发送设备和所述接收设备之间的路径中,选择剩余带宽资源满足所述数据传输需要、且跳数最少的路径作为所述第一传输路径。
可选的,如果可选的路径集合的剩余带宽都小于应用服务器申请的带宽,则确定单元904选择带宽最大的路径作为所述第一传输路径。
所述确定单元904确定所述第一传输路径时延和所述第二传输路径的时延,并根据所述第一传输路径的传输时延和所述第二传输路径的传输时延确定所述TCP往返传输时延,所述TCP往返传输时延与所述第一传输路径的传输时延和所述第二传输路径的传输时延之和呈正相关。
可选的,确定单元904根据第一传输路径和第二传输路径的操作管理 维护(Operation Administration and Maintenance,OAM)特性,探测所述第一传输路径的传输时延和所述第二传输路径的传输时延,并根据所述所述第一传输路径的传输时延和所述第二传输路径的传输时延确定TCP往返传输时延,TCP往返传输时延与第一传输路径的传输时延,第二传输路径的传输时延分别呈正相关。
可选的,TCP往返传输时延为所述所述第一传输路径的传输时延和所述第二传输路径的传输时延之和。
可选的,确定单元904还预估所述发送设备和所述接收设备的TCP层处理时延,TCP往返传输时延为所述所述第一传输路径的传输时延,所述第二传输路径的传输时延,以及所述发送设备和所述接收设备的TCP层处理时延之和。
可选的,确定单元904还预估所述接收设备的TCP层处理时延,TCP往返传输时延为所述所述第一传输路径的传输时延,所述第二传输路径的传输时延,以及所述接收设备的TCP层处理时延之和。
可选的,所述TCP传输资源分配请求中还携带MTU取值信息,所述MTU取值信息用于指示所述发送设备的MTU取值的最大值和所述接收设备的MTU取值的最大值;可选的,确定单元904还用于根据所述TCP传输资源分配请求中的MTU取值信息,确定所述第一传输路径进行所述数据传输的MTU取值,所述第一传输路径进行所述数据传输的MTU取值不大于所述发送设备MTU取值的最大值和所述接收设备MTU取值的最大值中的较小值。
可选的,确定单元904根据第一传输路径的OAM特性,在MTU取值信息指示的取值范围内,确定所述第一传输路径的最佳MTU值。可选的,则发送单元906用于发送参数设置消息包括:将所述MTU值设置信息发送给所述发送设备和所述接收设备。
可选的,发送单元906还用于向所述第一传输路径和所述第二传输路径上的交换设备分别发送流表项,用于指示所述第一传输路径上的交换设备进行TCP数据传输,所述第二传输路径上的交换设备进行所述TCP应答消息传输。
可选的,发送单元906还用于向所述第一传输路径上的交换设备发送 带宽控制消息,所述带宽控制消息用于指示所述第一传输路径上的交换设备进行TCP数据传输的端口的带宽。
可选的,所述确定单元904用于根据所述第一传输路径和/或所述第二传输路径,确定TCP数据传输的参数的取值包括:确定单元904根据所述第一传输路径的带宽和所述TCP往返传输时延,确定所述发送设备的发送窗口的初始值,所述发送窗口的初始值与所述第一传输路径的带宽和所述TCP往返传输时延分别呈正相关;则所述发送单元906用于发送参数设置消息包括:将所述发送窗口的初始值设置消息发送给所述发送设备。
可选的,确定单元904首先根据TCP往返传输时延确定发送设备与接收设备之间的往返时延RTT,RTT与TCP往返传输时延呈正相关。
可选的,将TCP往返传输时延确定为往返时延RTT。
可选的,发送设备的发送窗口大小可表示为:
发送窗口=第一传输路径带宽*RTT
可选的,所述确定单元904用于根据所述第一传输路径和/或所述第二传输路径,确定TCP数据传输的参数的取值包括:确定单元904根据所述第一传输路径的带宽和所述TCP往返传输时延,确定所述接收设备的接收窗口的初始值,所述接收窗口的初始值与所述第一传输路径的带宽和所述TCP往返传输时延分别呈正相关;则所述发送单元906用于发送参数设置消息包括:将所述接收窗口的初始值设置消息发送给所述接收设备。
可选的,接收设备的接收窗口大小可表示为:
Rwnd=第一传输路径带宽*RTT
可选的,确定单元904还用于确定所述第一传输路径的丢包率,所述丢包率用于指示所述第一传输路径进行数据传输时的丢包情况。
可选的,确定单元904根据经验库统计第一传输路径上的丢包率,并叠加预留的丢包率,确定第一传输路径的丢包率。
可选的,确定单元904启动第一传输路径OAM特性,并确定第一传输路径的丢包率。
可选的,所述确定单元904用于根据所述第一传输路径和/或所述第二传输路径,确定TCP数据传输的参数的取值包括:确定单元904根据所述 第一传输路径的带宽、所述TCP往返传输时延和所述丢包率,确定所述发送设备的发送窗口的初始值,所述发送窗口的初始值与所述第一传输路径的带宽和所述TCP往返传输时延分别呈正相关,与所述丢包率呈负相关;则所述发送单元906用于发送参数设置消息包括:将所述发送窗口的初始值设置消息发送给所述发送设备。
可选的,发送设备的发送窗口大小可表示为:
发送窗口=第一传输路径带宽*RTT*(1-丢包率)
可选的,所述确定单元904用于根据所述第一传输路径和/或所述第二传输路径,确定TCP数据传输的参数的取值包括:确定单元904根据所述第一传输路径的带宽、所述TCP往返传输时延和所述丢包率,确定所述接收设备的接收窗口的初始值,所述接收窗口的初始值与所述第一传输路径的带宽和所述TCP往返传输时延分别呈正相关,与所述丢包率呈负相关;则所述发送单元906用于发送参数设置消息包括:将所述接收窗口的初始值设置消息发送给所述接收设备。
可选的,接收设备的接收窗口大小可表示为:
Rwnd=第一传输路径带宽*RTT*(1-丢包率)
可选的,所述确定单元904用于根据所述第一传输路径和/或所述第二传输路径,确定TCP数据传输的参数的取值包括:根据所述TCP往返传输时延确定发送设备的重传超时时间,所述重传超时时间与所述TCP往返传输时延呈正相关;则所述发送单元906用于发送参数设置消息包括:将所述重传超时时间设置消息发送给所述发送设备。
可选的,确定单元904将重传超时时间设置为往返时延RTT。
可选的,所述确定单元904用于根据所述第一传输路径和/或所述第二传输路径,确定TCP数据传输的参数的取值包括:根据所述TCP往返传输时延确定接收设备的应答等待时间,所述应答等待时间与所述TCP往返传输时延呈正相关;则所述发送单元906用于发送参数设置消息包括:将所述接收窗口的应答等待时间发送给所述接收设备。
可选的,确定单元904将应答等待时间设置为往返时延RTT。
可选的,所述确定单元904还用于:根据所述第一传输路径的带宽和 所述TCP往返传输时延,确定所述发送设备的拥塞窗口Cwnd的初始值,所述Cwnd的初始值与所述第一传输路径的带宽和所述TCP往返传输时延分别呈正相关。
可选的,发送设备的拥塞窗口大小可表示为:
Cwnd=第一传输路径带宽*RTT
可选的,所述确定单元904还用于:根据所述第一传输路径的带宽、所述TCP往返传输时延和所述丢包率,确定所述发送设备的拥塞窗口Cwnd的初始值,所述Cwnd的初始值与所述第一传输路径的带宽和所述TCP往返传输时延分别呈正相关,与所述丢包率呈负相关。
可选的,发送设备的拥塞窗口大小可表示为:
Cwnd=第一传输路径带宽*RTT*(1-丢包率)
可选的,所述发送单元906还用于向所述发送设备发送拥塞窗口设置消息,所述拥塞窗口设置消息包含所述拥塞窗口的初始值;所述发送设备用于根据所述拥塞窗口设置消息指示,将拥塞窗口的值设置为所述拥塞窗口的初始值,并进行TCP数据传输。
可选的,所述发送设备在进行TCP数据传输时,发送窗口的值取拥塞窗口和接收窗口的较小值。
根据本实施例提供的技术方案,可以实现装置900对TCP数据传输资源和参数的合理配置,装置900通过北向接口接收到应用服务器的TCP传输资源分配请求,根据TCP传输资源分配请求合理配置进行TCP数据传输的路径及带宽,并确定路径的TCP往返传输时延、路径的丢包率以及路径最佳MTU值等路径信息,并根据路径信息合理配置TCP数据传输的参数。装置900根据这些参数可以通过设置TCP数据传输的初始发送窗口大小,绕过TCP的慢启动过程,且发送窗口的的初始值大小是根据数据传输路径的带宽和TCP往返时延确定的,能以较大的吞吐量传输,避免了现有技术中因为进行反复网络探测所导致的滑动窗口的减半震荡,最终影响网络的吞吐量的问题,通过控制器返回的MTU值,决定了数据能按照最佳长度进行分段,并在网络设备上进行传输,从而实现更加有效的TCP数据传输。
图10是依据本发明一实施例的计算设备1000的硬件结构示意图。如 图10所示,计算设备1000包括处理器1002、存储器1004、输入/输出接口1006、通信接口1008和总线1010。其中,处理器1002、存储器1004、输入/输出接口1006和通信接口1008通过总线1010实现彼此之间的通信连接。
处理器1002可以采用通用的中央处理器(Central Processing Unit,CPU),微处理器,应用专用集成电路(应用lication Specific Integrated Circuit,ASIC),或者一个或多个集成电路,用于执行相关程序,以实现本发明实施例所提供的技术方案。
存储器1004可以是只读存储器(Read Only Memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(Random Access Memory,RAM)。存储器1004可以存储操作系统和其他应用程序。在通过软件或者固件来实现本发明实施例提供的技术方案时,用于实现本发明实施例提供的技术方案的程序代码保存在存储器1004中,并由处理器1002来执行。
输入/输出接口1006用于接收输入的数据和信息,输出操作结果等数据。
通信接口1008使用例如但不限于收发器一类的收发装置,来实现计算设备1000与其他设备或通信网络之间的通信。
总线1010可包括一通路,在计算设备1000各个部件(例如处理器1002、存储器1004、输入/输出接口1006和通信接口1008)之间传送信息。
应注意,尽管图10所示的计计算设备1000仅仅示出了处理器1002、存储器1004、输入/输出接口1006、通信接口1008以及总线1010,但是在具体实现过程中,本领域的技术人员应当明白,计算设备1000还包含实现正常运行所必须的其他器件。同时,根据具体需要,本领域的技术人员应当明白,计算设备1000还可包含实现其他附加功能的硬件器件。此外,本领域的技术人员应当明白,计算设备1000也可仅仅包含实现本发明实施例所必须的器件,而不必包含图10中所示的全部器件。
图10所示的硬件结构以及上述描述适用于本发明实施例所提供的各种数据传输设备及系统,适用于执行本发明实施例所提供的各种数据传输方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置 和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:移动硬盘、只读存储器(英文:Read-Only Memory,简称ROM)、随机存取存储器(英文:Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的保护范围。

Claims (61)

  1. 一种数据传输方法,其特征在于,应用于软件定义网络SDN中,所述SDN网络中控制器通过南向接口与交换设备连接,通过北向接口与应用服务器连接,所述应用服务器上运行至少一个应用,当所述应用服务器确定当前需要采用传输控制协议TCP将数据从发送设备传送到接收设备时,所述方法包括:
    所述控制器接收来自所述应用服务器的TCP传输资源分配请求,所述TCP传输资源分配请求携带所述发送设备的地址和所述接收设备的地址;
    所述控制器根据所述TCP传输资源分配请求,确定第一传输路径和第二传输路径,所述第一传输路径用于所述发送设备向所述接收设备传输所述数据,所述第二传输路径用于所述接收设备向所述发送设备传输TCP应答消息;
    所述控制器向所述应用服务器发送TCP传输资源分配响应消息,所述TCP传输资源分配响应消息包含所述第一传输路径的带宽信息和TCP往返传输时延,所述TCP往返传输时延表示所述发送设备通过所述第一传输路径发出每个数据包的时间T1与所述发送设备通过所述第二传输路径接收到所述每个数据包的TCP应答消息的时间T2之间的预估的时间差值,所述第一传输路径的带宽信息和所述TCP往返传输时延用于确定在所述发送设备和所述接收设备之间进行TCP数据传输的发送窗口的初始值。
  2. 根据权利要求1所述的方法,其特征在于,在所述控制器向所述应用服务器发送TCP传输资源分配响应消息之前,还包括:所述控制器获取所述第一传输路径的时延和所述第二传输路径的时延,并根据所述第一传输路径的传输时延和所述第二传输路径的传输时延确定所述TCP往返传输时延,所述TCP往返传输时延同所述第一传输路径的传输时延和所述第二传输路径的传输时延之和呈正相关。
  3. 根据权利要求1或2所述的方法,其特征在于,在所述控制器向所述应用服务器发送TCP传输资源分配响应消息之前,还包括:所述控制器确定所述第一传输路径的丢包率;
    则,所述TCP传输资源分配响应消息还包含所述第一传输路径的所述丢包率。
  4. 根据权利要求1-3任一项所述的方法,其特征在于,所述TCP传输资源分配请求中还携带最大传输单元MTU取值信息,所述MTU取值信息包括所述发送设备的MTU取值的最大值和所述接收设备的MTU取值的最大值;
    所述方法还包括:所述控制器根据所述TCP传输资源分配请求中的MTU取值信息,确定所述第一传输路径进行所述数据传输的MTU取值,所述第一传输路径进行所述数据传输的MTU取值不大于所述发送设备MTU取值的最大值和所述接收设备MTU取值的最大值中的较小值;
    则,所述TCP传输资源分配响应消息还包含所述第一传输路径进行所述数据传输的MTU取值。
  5. 根据权利要求1-4任一项所述的方法,其特征在于,所述TCP传输资源分配请求还包含传输所述数据需要的带宽;
    所述控制器根据所述TCP传输资源分配请求,确定第一传输路径包括:根据交换设备的网络拓扑,从所述发送设备和所述接收设备之间的路径中,选择剩余带宽资源满足传输所述数据需要的路径作为所述第一传输路径。
  6. 根据权利要求5所述的方法,其特征在于,所述控制器从所述发送设备和所述接收设备之间的路径中,选择剩余带宽资源满足传输所述数据需要的路径作为所述第一传输路径包括:所述控制器从所述发送设备和所述接收设备之间,剩余带宽资源满足传输所述数据需要的所有路径中,选择剩余带宽资源最小的路径或者跳数最少的路径作为所述第一传输路径。
  7. 一种控制器,其特征在于,应用于软件定义网络SDN中,所述控制器通过南向接口与交换设备连接,通过北向接口与应用服务器连接,所述控制器包括:处理器、存储器、总线和通信接口;
    所述存储器用于存储计算设备执行指令,所述处理器与所述存储器通过所述总线连接,当所述计算设备运行时,所述处理器执行所述存储器存储的所述计算机执行指令,以使所述计算设备执行权利要求1-6任一项所述的方法。
  8. 一种数据传输方法,其特征在于,应用于软件定义网络SDN中,所述SDN网络中控制器通过南向接口与交换设备连接,通过北向接口与应用服务器连接,所述应用服务器上运行至少一个应用,当所述应用服务器确定当前需要采用TCP协议将数据从发送设备传送到接收设备时,所述方法包 括:
    所述应用服务器向所述控制器发送TCP传输资源分配请求,所述TCP传输资源分配请求携带所述发送设备的地址和所述接收设备的地址;
    所述应用服务器接收来自所述控制器的TCP传输资源分配响应消息,所述TCP传输资源分配响应消息包含第一传输路径的带宽和TCP往返传输时延,所述TCP往返传输时延表示所述发送设备通过所述第一传输路径发出每个数据包的时间T1与所述发送设备通过第二传输路径接收到所述每个数据包的TCP应答消息的时间T2之间的预估的时间差值,所述第一传输路径用于所述发送设备向所述接收设备传输所述数据,所述第二传输路径用于所述接收设备向所述发送设备传输答消息;
    所述应用服务器根据所述第一传输路径的带宽和所述TCP往返传输时延,确定在所述发送设备和所述接收设备之间进行TCP数据传输的发送窗口的初始值呈正相关。
  9. 根据权利要求8所述的方法,其特征在于,所述发送窗口的初始值与所述第一传输路径的带宽和所述TCP往返传输时延分别呈正相关。
  10. 根据权利要求9所述的方法,其特征在于,所述TCP传输资源分配响应消息中还携带所述第一传输路径的丢包率;
    所述方法还包括:所述应用服务器根据所述丢包率确定所述发送窗口的初始值,所述发送窗口的初始值呈正相关与所述丢包率呈负相关。
  11. 根据权利要求8-10任一项所述的方法,其特征在于,还包括:所述应用服务器根据所述第一传输路径的带宽和所述TCP往返传输时延,确定所述接收设备的接收窗口的初始值,所述接收窗口的初始值与所述第一传输路径的带宽和所述TCP往返传输时延分别呈正相关。
  12. 根据权利要求10所述的方法,其特征在于,还包括:所述应用服务器根据所述第一传输路径的带宽、所述TCP往返传输时延和所述丢包率,确定所述接收设备的接收窗口的初始值,所述接收窗口的初始值与所述第一传输路径的带宽和所述TCP往返传输时延分别呈正相关,与所述丢包率呈负相关。
  13. 根根据权利要求8-12任一项所述的方法,其特征在于,还包括:所述应用服务器向所述发送设备发送发送窗口设置消息,所述发送窗口设置消息包含所述发送窗口的初始值。
  14. 根据权利要求11或12所述的方法,其特征在于,还包括:所述应用服务器向所述接收设备发送接收窗口设置消息,所述接收窗口设置消息包含所述接收窗口的初始值。
  15. 根据权利要求8-14任一项所述的方法,其特征在于,所述TCP传输资源分配请求中还携带最大传输单元MTU取值信息,所述MTU取值信息用于指示所述发送设备的MTU取值的最大值和所述接收设备的MTU取值的最大值;
    所述TCP传输资源分配响应消息还包含所述第一传输路径进行所述数据传输的MTU取值;
    所述方法还包括:所述应用服务器将所述发送设备和所述接收设备的MTU取值确定为所述第一传输路径进行所述数据传输的MTU取值。
  16. 根据权利要求15所述的方法,其特征在于,还包括:所述应用服务器向所述发送设备和所述接收设备发送MTU设置消息,所述MTU设置消息包含所述第一传输路径的MTU取值。
  17. 根据权利要求8-16任一项所述的方法,其特征在于,还包括:所述应用服务器根据所述TCP往返传输时延确定所述发送设备的重传超时时间,所述重传超时时间与所述TCP往返传输时延呈正相关。
  18. 根据权利要求17所述的方法,其特征在于,还包括:所述应用服务器向所述发送设备发送重传超时时间设置消息,所述重传超时时间设置消息包含所述重传超时时间。
  19. 根据权利要求8-18任一项所述的方法,其特征在于,还包括:所述应用服务器根据所述TCP往返传输时延确定所述接收设备的应答等待时间,所述应答等待时间与所述TCP往返传输时延呈正相关。
  20. 根据权利要求19所述的方法,其特征在于,还包括:所述应用服务器向所述接收设备发送应答等待时间设置消息,所述应答消息设置消息包含所述应答等待时间。
  21. 一种应用服务器,其特征在于,应用于软件定义网络SDN中,SDN控制器通过南向接口与交换设备连接,通过北向接口与所述应用服务器连接,包括:处理器、存储器、总线和通信接口;
    所述存储器用于存储计算设备执行指令,所述处理器与所述存储器通过所述总线连接,当所述计算设备运行时,所述处理器执行所述存储器存储的 所述计算机执行指令,以使所述计算设备执行权利要求8-20任一项所述的方法。
  22. 一种数据传输方法,其特征在于,应用于软件定义网络SDN中,所述SDN网络中控制器通过南向接口与交换设备连接,通过北向接口与应用服务器连接,所述应用服务器上运行至少一个应用,当所述应用服务器确定当前需要采用TCP协议将数据从发送设备传送到接收设备时,所述方法包括:
    所述发送设备接收发送窗口设置消息,所述发送窗口设置消息包含所述发送设备的发送窗口的初始值;
    所述发送设备根据所述发送窗口的初始值进行TCP数据传输。
  23. 根据权利要求22所述的方法,其特征在于,所述发送设备还用于接收最大传输单元MTU设置消息,所述MTU设置消息包含所述发送设备进行数据传输时的MTU取值;并根据所述MTU设置消息指示,设置所述发送设备的MTU值。
  24. 根据权利要求22或23所述的方法,其特征在于,所述发送设备还用于接收重传超时时间设置消息,所述重传超时时间设置消息包含所述发送设备进行TCP数据传输时的重传超时时间取值;并根据所述重传超时时间设置消息指示,设置所述发送设备的重传超时时间值。
  25. 一种计算设备,其特征在于,应用于软件定义网络SDN中,SDN控制器通过南向接口与交换设备连接,通过北向接口与所述应用服务器连接,所述应用服务器用于控制数据从所述计算设备发送至接收设备,包括:处理器、存储器、总线和通信接口;
    所述存储器用于存储计算设备执行指令,所述处理器与所述存储器通过所述总线连接,当所述计算设备运行时,所述处理器执行所述存储器存储的所述计算机执行指令,以使所述计算设备执行权利要求22-24任一项所述的方法。
  26. 一种数据传输装置,其特征在于,应用于软件定义网络SDN中,SDN控制器通过南向接口与交换设备连接,通过北向接口与所述应用服务器连接,所述应用服务器用于控制数据从所述装置发送至接收设备,包括:
    接收单元,用于接收发送窗口设置消息,所述发送窗口设置消息包含所述发送设备的发送窗口的初始值;
    发送单元,用于根据所述发送窗口的初始值进行TCP数据传输。
  27. 根据权利要求26所述的装置,其特征在于,所述接收单元还用于接收最大传输单元MTU设置消息,所述MTU设置消息包含所述发送设备进行数据传输时的MTU取值。
  28. 根据权利要求26或27所述的装置,其特征在于,所述接收单元还用于接收重传超时时间设置消息,所述重传超时时间设置消息包含所述发送设备进行TCP数据传输时的重传超时时间取值。
  29. 一种数据传输装置,其特征在于,应用于软件定义网络SDN中,所述装置通过南向接口与交换设备连接,通过北向接口与应用服务器连接,所述应用服务器用于控制数据从发送设备发送至接收设备,包括:
    接收单元,用于接收来自所述应用服务器的TCP传输资源分配请求,所述TCP传输资源分配请求携带所述发送设备的地址和所述接收设备的地址;
    确定单元,用于根据所述TCP传输资源分配请求,确定第一传输路径和第二传输路径,所述第一传输路径用于所述发送设备向所述接收设备传输所述数据,所述第二传输路径用于所述接收设备向所述发送设备传输TCP应答消息;
    发送单元,用于所述应用服务器发送TCP传输资源分配响应消息,所述TCP传输资源分配响应消息包含所述第一传输路径的带宽信息和TCP往返传输时延,所述TCP往返传输时延表示所述发送设备通过所述第一传输路径发出每个数据包的时间T1与所述发送设备通过所述第二传输路径接收到所述每个数据包的TCP应答消息的时间T2之间的预估的时间差值,所述第一传输路径的带宽信息和所述TCP往返传输时延用于确定在所述发送设备和所述接收设备之间进行TCP数据传输的发送窗口的初始值。
  30. 根据权利要求29所述的装置,其特征在于,所述确定单元还用于:获取所述第一传输路径的时延和所述第二传输路径的时延,并根据所述第一传输路径的传输时延和所述第二传输路径的传输时延确定所述TCP往返传输时延,所述TCP往返传输时延与所述第一传输路径的传输时延和所述第二传输路径的传输时延之和呈正相关。
  31. 根据权利要求29或30所述的装置,其特征在于,所述确定单元还用于:确定所述第一传输路径的丢包率;
    则,所述TCP传输资源分配响应消息还包含所述第一传输路径的所述丢包率。
  32. 根据权利要求29-31任一项所述的装置,其特征在于,所述TCP传输资源分配请求中还携带最大传输单元MTU取值信息,所述MTU取值信息包括所述发送设备的MTU取值的最大值和所述接收设备的MTU取值的最大值;
    所述确定单元还用于:根据所述TCP传输资源分配请求中的MTU取值信息,确定所述第一传输路径进行所述数据传输的MTU取值,所述第一传输路径进行所述数据传输的MTU取值不大于所述发送设备MTU取值的最大值和所述接收设备MTU取值的最大值中的较小值;
    则,所述TCP传输资源分配响应消息还包含所述第一传输路径进行所述数据传输的MTU取值。
  33. 根据权利要求29-32任一项所述的装置,其特征在于,所述TCP传输资源分配请求还包含传输所述数据需要的带宽;
    所述确定单元用于根据所述TCP传输资源分配请求,确定第一传输路径包括:所述确定单元根据交换设备的网络拓扑,从所述发送设备和所述接收设备之间的路径中,选择一条剩余带宽资源满足传输所述数据需要的路径作为所述第一传输路径。
  34. 根据权利要求33所述的装置,其特征在于,从所述发送设备和所述接收设备之间的路径中,选择一条剩余带宽资源满足传输所述数据需要的路径作为所述第一传输路径包括:所述确定单元用于从所述发送设备和所述接收设备之间,剩余带宽资源满足传输所述数据需要的所有路径中,选择剩余带宽资源最小的路径或者跳数最少的路径作为所述第一传输路径。
  35. 一种数据传输装置,其特征在于,应用于软件定义网络SDN中,所述SDN网络中控制器通过南向接口与交换设备连接,通过北向接口与所述装置连接,所述装置上运行至少一个应用,所述装置用于控制数据从发送设备发送至接收设备,包括:
    发送单元,用于向所述控制器发送TCP传输资源分配请求,所述TCP传输资源分配请求携带所述发送设备的地址和所述接收设备的地址;
    接收单元,用于接收来自所述控制器的TCP传输资源分配响应消息,所述TCP传输资源分配响应消息包含第一传输路径的带宽和TCP往返传输 时延,所述TCP往返传输时延表示所述发送设备通过所述第一传输路径发出每个数据包的时间T1与所述发送设备通过第二传输路径接收到所述每个数据包的TCP应答消息的时间T2之间的预估的时间差值,所述第一传输路径用于所述发送设备向所述接收设备传输所述数据,所述第二传输路径用于所述接收设备向所述发送设备传输答消息;
    确定单元,用于根据所述第一传输路径的带宽和所述TCP往返传输时延,确定在所述发送设备和所述接收设备之间进行TCP数据传输的发送窗口的初始值,所述发送窗口的初始值与所述第一传输路径的带宽和所述TCP往返传输时延分别呈正相关。
  36. 根据权利要求35所述的装置,其特征在于,所述发送窗口的初始值与所述第一传输路径的带宽和所述TCP往返传输时延分别呈正相关。
  37. 根据权利要求36所述的装置,其特征在于,所述TCP传输资源分配响应消息中还携带所述第一传输路径的丢包率;
    所述确定单元还用于:根据所述丢包率确定所述发送窗口的初始值,所述发送窗口的初始值与所述丢包率呈负相关。
  38. 根据权利要求35-37任一项所述的装置,其特征在于,所述确定单元还用于:根据所述第一传输路径的带宽和所述TCP往返传输时延,确定所述接收设备的接收窗口的初始值,所述接收窗口的初始值与所述第一传输路径的带宽和所述TCP往返传输时延分别呈正相关。
  39. 根据权利要求37所述的装置,其特征在于,所述确定单元还用于:根据所述第一传输路径的带宽、所述TCP往返传输时延和所述丢包率,确定所述接收设备的接收窗口的初始值,所述接收窗口的初始值与所述第一传输路径的带宽和所述TCP往返传输时延分别呈正相关,与所述丢包率呈负相关。
  40. 根根据权利要求35-39任一项所述的装置,其特征在于,所述发送单元还用于向所述发送设备发送发送窗口设置消息,所述发送窗口设置消息包含所述发送窗口的初始值。
  41. 根据权利要求38或39所述的装置,其特征在于,所述发送单元还用于向所述接收设备发送接收窗口设置消息,所述接收窗口设置消息包含所述接收窗口的初始值。
  42. 根据权利要求35-41任一项所述的装置,其特征在于,所述TCP 传输资源分配请求中还携带最大传输单元MTU取值信息,所述MTU取值信息用于指示所述发送设备的MTU取值的最大值和所述接收设备的MTU取值的最大值;
    所述TCP传输资源分配响应消息还包含所述第一传输路径进行所述数据传输的MTU取值;
    所述确定单元还用于将所述发送设备和所述接收设备的MTU取值确定为所述第一传输路径进行所述数据传输的MTU取值。
  43. 根据权利要求42所述的装置,其特征在于,所述发送单元还用于向所述发送设备和所述接收设备发送MTU设置消息,所述MTU设置消息包含所述第一传输路径的MTU取值。
  44. 根据权利要求35-43任一项所述的装置,其特征在于,所述确定单元还用于根据所述TCP往返传输时延确定所述发送设备的重传超时时间,所述重传超时时间与所述TCP往返传输时延呈正相关。
  45. 根据权利要求44所述的装置,其特征在于,所述发送单元还用于向所述发送设备发送重传超时时间设置消息,所述重传超时时间设置消息包含所述重传超时时间。
  46. 根据权利要求35-45任一项所述的装置,其特征在于,所述确定单元还用于根据所述TCP往返传输时延确定所述接收设备的应答等待时间,所述应答等待时间与所述TCP往返传输时延呈正相关。
  47. 根据权利要求46所述的装置,其特征在于,所述发送单元还用于向所述接收设备发送应答等待时间设置消息,所述应答消息设置消息包含所述应答等待时间。
  48. 一种数据传输系统,其特征在于,应用于软件定义网络SDN中,包括应用服务器,控制器,发送设备,接收设备和交换设备,所述SDN网络中控制器通过南向接口与交换设备连接,通过北向接口与运行在所述应用服务器连接,所述应用服务器上运行至少一个应用,所述应用服务器用于控制数据从所述发送设备发送至所述接收设备,
    所述应用服务器用于向所述控制器发送TCP传输资源分配请求,所述TCP传输资源分配请求携带所述发送设备的地址和所述接收设备的地址;
    所述控制器用于根据所述TCP传输资源分配请求,确定第一传输路径和第二传输路径,所述第一传输路径用于所述发送设备向所述接收设备传输 所述数据,所述第二传输路径用于所述接收设备向所述发送设备传输TCP应答消息,并向所述应用发送TCP传输资源分配响应消息,所述TCP传输资源分配响应消息包含所述第一传输路径的带宽信息和TCP往返传输时延,所述TCP往返传输时延表示所述发送设备通过所述第一传输路径发出每个数据包的时间T1与所述发送设备通过所述第二传输路径接收到所述每个数据包的TCP应答消息的时间T2之间的预估的时间差值;
    所述应用服务器还用于根据所述第一传输路径的带宽和所述TCP往返传输时延,确定在所述发送设备和所述接收设备之间进行TCP数据传输的发送窗口的初始值,并向所述发送设备发送发送窗口设置消息,所述发送窗口设置消息包含所述发送窗口的初始值;
    所述发送设备用于根据所述发送窗口设置消息,将发送窗口设置为所述发送窗口的初始值,并进行TCP数据传输。
  49. 根据权利要求48所述的系统,其特征在于,所述发送窗口的初始值与所述第一传输路径的带宽和所述TCP往返传输时延分别呈正相关。
  50. 根据权利要求49所述的系统,其特征在于,所述控制器还用于:获取所述第一传输路径的时延和所述第二传输路径的时延,并根据所述第一传输路径的传输时延和所述第二传输路径的传输时延确定所述TCP往返传输时延,所述TCP往返传输时延与所述第一传输路径的传输时延和所述第二传输路径的传输时延之和呈正相关。
  51. 根据权利要求49或50所述的系统,其特征在于,所述控制器还用于确定所述第一传输路径的丢包率;
    则,所述TCP传输资源分配响应消息还包含所述第一传输路径的所述丢包率。
  52. 根据权利要求51所述的系统,其特征在于,所述应用服务器还用于根据所述丢包率确定所述发送窗口的初始值,所述发送窗口的初始值与所述丢包率呈负相关。
  53. 根据权利要求48-52任一项所述的系统,其特征在于,所述应用服务器还用于:根据所述第一传输路径的带宽和所述TCP往返传输时延,确定所述接收设备的接收窗口的初始值,所述接收窗口的初始值与所述第一传输路径的带宽和所述TCP往返传输时延分别呈正相关。
  54. 根据权利要求51或52所述的系统,其特征在于,所述应用服务器 还用于:根据所述第一传输路径的带宽、所述TCP往返传输时延和所述丢包率,确定所述接收设备的接收窗口的初始值,所述接收窗口的初始值与所述第一传输路径的带宽和所述TCP往返传输时延分别呈正相关,与所述丢包率呈负相关。
  55. 根据权利要求53或54所述的系统,其特征在于,所述应用服务器还用于向所述接收设备发送接收窗口设置消息,所述接收窗口设置消息包含所述接收窗口的初始值;
    所述接收设备用于根据所述接收窗口设置消息指示,将接收窗口的值设置为所述发送窗口的初始值,并进行TCP数据传输。
  56. 根据权利要求48-55任一项所述的系统,其特征在于,所述TCP传输资源分配请求中还携带最大传输单元MTU取值信息,所述MTU取值信息用于指示所述发送设备的MTU取值的最大值和所述接收设备的MTU取值的最大值;
    所述控制器还用于:根据所述TCP传输资源分配请求中的MTU取值信息,确定所述第一传输路径进行所述数据传输的MTU取值,所述第一传输路径进行所述数据传输的MTU取值不大于所述发送设备MTU取值的最大值和所述接收设备MTU取值的最大值中的较小值;
    所述TCP传输资源分配响应消息还包含所述第一传输路径进行所述数据传输的MTU取值。
  57. 根据权利要求56所述的系统,其特征在于,所述应用服务器还用于将所述发送设备和所述接收设备的MTU取值确定为所述第一传输路径进行所述数据传输的MTU取值,并向所述发送设备和所述接收设备发送MTU设置消息,所述MTU设置消息包含所述第一传输路径的MTU取值。
  58. 根据权利要求48-57任一项所述的系统,其特征在于,所述应用服务器还用于:根据所述TCP往返传输时延确定所述发送设备的重传超时时间,所述重传超时时间与所述TCP往返传输时延呈正相关;并向所述发送设备发送重传超时时间设置消息,所述重传超时时间设置消息包含所述重传超时时间。
  59. 根据权利要求48-58任一项所述的系统,其特征在于,所述应用服务器还用于:根据所述TCP往返传输时延确定所述接收设备的应答等待时间,所述应答等待时间与所述TCP往返传输时延呈正相关;并向所述接收 设备发送应答等待时间设置消息,所述应答消息设置消息包含所述应答等待时间。
  60. 根据权利要求48-59任一项所述的系统,其特征在于,所述TCP传输资源分配请求还包含传输所述数据需要的带宽;
    所述控制器根据所述TCP传输资源分配请求,确定第一传输路径包括:根据交换设备的网络拓扑,从所述发送设备和所述接收设备之间的路径中,选择一条剩余带宽资源满足传输所述数据需要的路径作为所述第一传输路径。
  61. 根据权利要求60所述的系统,其特征在于,所述控制器从所述发送设备和所述接收设备之间的路径中,选择一条剩余带宽资源满足传输所述数据需要的路径作为所述第一传输路径包括:所述控制器从所述发送设备和所述接收设备之间,剩余带宽资源满足传输所述数据需要的所有路径中,选择剩余带宽资源最小的路径或者跳数最少的路径作为所述第一传输路径。
PCT/CN2015/075316 2015-03-27 2015-03-27 一种数据传输方法、装置和系统 WO2016154823A1 (zh)

Priority Applications (7)

Application Number Priority Date Filing Date Title
PCT/CN2015/075316 WO2016154823A1 (zh) 2015-03-27 2015-03-27 一种数据传输方法、装置和系统
KR1020177020720A KR102045974B1 (ko) 2015-03-27 2015-03-27 데이터 전송 방법, 장치, 및 시스템
JP2017544327A JP6389339B2 (ja) 2015-03-27 2015-03-27 データ伝送方法、装置、およびシステム
EP15886810.9A EP3232638B1 (en) 2015-03-27 2015-03-27 Data transmission method, apparatus and system
CN201580003394.9A CN106537867B (zh) 2015-03-27 2015-03-27 一种数据传输方法、装置和系统
SG11201705572WA SG11201705572WA (en) 2015-03-27 2015-03-27 Data transmission method, apparatus, and system
US15/700,174 US10461986B2 (en) 2015-03-27 2017-09-10 Data transmission method, apparatus, and system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2015/075316 WO2016154823A1 (zh) 2015-03-27 2015-03-27 一种数据传输方法、装置和系统

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US15/700,174 Continuation US10461986B2 (en) 2015-03-27 2017-09-10 Data transmission method, apparatus, and system

Publications (1)

Publication Number Publication Date
WO2016154823A1 true WO2016154823A1 (zh) 2016-10-06

Family

ID=57005379

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2015/075316 WO2016154823A1 (zh) 2015-03-27 2015-03-27 一种数据传输方法、装置和系统

Country Status (7)

Country Link
US (1) US10461986B2 (zh)
EP (1) EP3232638B1 (zh)
JP (1) JP6389339B2 (zh)
KR (1) KR102045974B1 (zh)
CN (1) CN106537867B (zh)
SG (1) SG11201705572WA (zh)
WO (1) WO2016154823A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112152919A (zh) * 2020-09-23 2020-12-29 杭州迪普科技股份有限公司 路由维护方法、装置、设备及计算机可读存储介质
CN114401225A (zh) * 2021-12-02 2022-04-26 北京快乐茄信息技术有限公司 数据处理方法及装置、电子设备及存储介质

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170056879A (ko) * 2015-11-16 2017-05-24 한국전자통신연구원 Sdn 다중 오케스트레이터
US10193761B1 (en) * 2018-03-09 2019-01-29 Loon Llc Hybrid LEO/HAPs constellation for fixed broadband
CN108632262A (zh) * 2018-04-24 2018-10-09 合肥合优智景科技有限公司 基于声音标记的机器人定位系统及方法
CN109284266A (zh) * 2018-10-18 2019-01-29 郑州云海信息技术有限公司 通用网络文件系统共享目录的访问方法及装置
US10936355B2 (en) * 2019-04-02 2021-03-02 Dell Products L.P. Virtual machine allocation analysis for physical network deployments
CN110647293B (zh) * 2019-08-21 2021-07-09 华为技术有限公司 发送目标指令的方法和存储系统
CN111669333A (zh) * 2020-04-28 2020-09-15 视联动力信息技术股份有限公司 数据传输方法、装置、计算设备和存储介质
US11743193B2 (en) * 2021-11-01 2023-08-29 Seagate Technology Llc Sliding window protocol for communication among more than two participants
CN113726677B (zh) * 2021-11-02 2022-04-12 阿里云计算有限公司 一种网络拥塞控制方法及设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030117974A1 (en) * 2001-12-26 2003-06-26 Lg Electronics Inc. TCP processing apparatus of base transceiver subsystem in wired/wireless integrated network and method thereof
US20050013245A1 (en) * 2003-07-15 2005-01-20 Srinivas Sreemanthula Method and apparatus for accelerating throughput in a wireless or other telecommunication system
US7352700B2 (en) * 2003-09-09 2008-04-01 Lucent Technologies Inc. Methods and devices for maximizing the throughput of TCP/IP data along wireless links
CN101534573A (zh) * 2008-11-20 2009-09-16 上海交通大学 无线自组织网络中链路层实现传输层确认的方法
CN101645765A (zh) * 2009-08-03 2010-02-10 四川大学 面向高误码率、长时延特性网络的可靠传输加速方法
CN101982951A (zh) * 2010-11-19 2011-03-02 华为技术有限公司 数据传输控制方法和中间节点

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100296077B1 (ko) 1999-05-14 2001-07-12 이계철 비동기전송모드(atm) 망에서 전송제어프로토콜(tcp) 윈도우 사이즈 제어 방법
FI20040737A0 (fi) * 2004-05-31 2004-05-31 Nokia Corp Menetelmä yhteydellisen tiedonsiirtoprotokollan toteuttamiseksi langattomissa verkoissa
CN100486249C (zh) * 2005-03-29 2009-05-06 华为技术有限公司 一种调整传输控制协议接收窗口的方法
US8639835B2 (en) 2010-11-29 2014-01-28 Verizon Patent And Licensing Inc. TCP window size performance optimization in wireless networks
CN102333209B (zh) * 2011-10-26 2014-06-25 杭州华三通信技术有限公司 应用于视频监控系统的数据传输方法及设备
CN104885431B (zh) 2012-12-13 2018-11-20 华为技术有限公司 软件定义信息中心网络中基于内容的流量工程的方法及装置
CN103051555A (zh) * 2013-01-05 2013-04-17 北京航空航天大学 基于网络有效带宽和ecn机制的tcp拥塞控制方法
CN103929370A (zh) * 2013-01-11 2014-07-16 中国科学院声学研究所 一种用于带宽预留网络的tcp拥塞控制方法
JPWO2014133066A1 (ja) * 2013-02-28 2017-02-02 日本電気株式会社 通信システム、端末、通信制御装置、通信方法及びプログラム
KR20150116094A (ko) * 2014-04-04 2015-10-15 한국전자통신연구원 소프트웨어 정의 네트워크에서 온-디멘드 연결 서비스 제공 방법
US9491031B2 (en) * 2014-05-06 2016-11-08 At&T Intellectual Property I, L.P. Devices, methods, and computer readable storage devices for collecting information and sharing information associated with session flows between communication devices and servers
CN104518973B (zh) 2014-12-17 2018-01-26 华中科技大学 一种基于sdn环境的数据的可靠组播传输方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030117974A1 (en) * 2001-12-26 2003-06-26 Lg Electronics Inc. TCP processing apparatus of base transceiver subsystem in wired/wireless integrated network and method thereof
US20050013245A1 (en) * 2003-07-15 2005-01-20 Srinivas Sreemanthula Method and apparatus for accelerating throughput in a wireless or other telecommunication system
US7352700B2 (en) * 2003-09-09 2008-04-01 Lucent Technologies Inc. Methods and devices for maximizing the throughput of TCP/IP data along wireless links
CN101534573A (zh) * 2008-11-20 2009-09-16 上海交通大学 无线自组织网络中链路层实现传输层确认的方法
CN101645765A (zh) * 2009-08-03 2010-02-10 四川大学 面向高误码率、长时延特性网络的可靠传输加速方法
CN101982951A (zh) * 2010-11-19 2011-03-02 华为技术有限公司 数据传输控制方法和中间节点

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3232638A4 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112152919A (zh) * 2020-09-23 2020-12-29 杭州迪普科技股份有限公司 路由维护方法、装置、设备及计算机可读存储介质
CN114401225A (zh) * 2021-12-02 2022-04-26 北京快乐茄信息技术有限公司 数据处理方法及装置、电子设备及存储介质

Also Published As

Publication number Publication date
EP3232638A4 (en) 2017-11-15
JP6389339B2 (ja) 2018-09-12
KR20170100001A (ko) 2017-09-01
CN106537867A (zh) 2017-03-22
CN106537867B (zh) 2019-07-19
US20170373915A1 (en) 2017-12-28
US10461986B2 (en) 2019-10-29
EP3232638B1 (en) 2019-07-17
SG11201705572WA (en) 2017-08-30
EP3232638A1 (en) 2017-10-18
JP2018514101A (ja) 2018-05-31
KR102045974B1 (ko) 2019-11-18

Similar Documents

Publication Publication Date Title
WO2016154823A1 (zh) 一种数据传输方法、装置和系统
Polese et al. A survey on recent advances in transport layer protocols
US11044290B2 (en) TCP cross traffic rate control
US11277313B2 (en) Data transmission method and corresponding device
US10826830B2 (en) Congestion processing method, host, and system
WO2019080938A1 (zh) 一种传输数据的方法、装置和设备
Coudron et al. An implementation of multipath TCP in ns3
WO2021088584A1 (zh) 一种业务流量调整方法及装置
US20230090622A1 (en) Network Congestion Control Method and Network Device
CN115396372B (zh) 数据流的速率控制方法、智能网卡、云端设备及存储介质
WO2016000481A1 (zh) 路径切换的方法和网络设备
CN102710501B (zh) 一种移动终端及其在隧道通信模式下的带宽动态调整方法
CN113950099A (zh) 一种网络拥塞控制方法及设备
US8300643B2 (en) Method and system for providing user configurable differentiated service
US11870865B2 (en) Distributed proxy for encrypted transport protocol with efficient multi-priority multiplexed transport for improving user's traffic QoS
WO2024098757A1 (zh) 网络集群系统、报文传输方法及网络设备
US20240137801A1 (en) Adaptive forwarding handling of data packets
WO2022027341A1 (zh) 无线通信方法和终端设备
WO2023005723A1 (zh) 一种报文传输方法以及通信装置
WO2023225172A1 (en) Distributed proxy for encrypted transport protocol with efficient multi-priority multiplexed transport for improving user's traffic qos
CN118101649A (zh) 跨区域的虚拟私有云之间通信的配置方法及相关装置
WO2013040965A1 (zh) 数字用户线路参数的配置方法及装置
WO2017041569A1 (zh) 业务数据传输方法及装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15886810

Country of ref document: EP

Kind code of ref document: A1

REEP Request for entry into the european phase

Ref document number: 2015886810

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 11201705572W

Country of ref document: SG

ENP Entry into the national phase

Ref document number: 20177020720

Country of ref document: KR

Kind code of ref document: A

ENP Entry into the national phase

Ref document number: 2017544327

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE