WO2016138786A1 - 传输控制协议tcp数据包的发送方法、发送装置和系统 - Google Patents
传输控制协议tcp数据包的发送方法、发送装置和系统 Download PDFInfo
- Publication number
- WO2016138786A1 WO2016138786A1 PCT/CN2015/099278 CN2015099278W WO2016138786A1 WO 2016138786 A1 WO2016138786 A1 WO 2016138786A1 CN 2015099278 W CN2015099278 W CN 2015099278W WO 2016138786 A1 WO2016138786 A1 WO 2016138786A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- congestion window
- tcp
- trip delay
- throughput rate
- packet
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 96
- 230000005540 biological transmission Effects 0.000 title claims abstract description 83
- 230000000875 corresponding effect Effects 0.000 claims description 29
- 238000011084 recovery Methods 0.000 claims description 28
- 230000008569 process Effects 0.000 claims description 26
- 230000002596 correlated effect Effects 0.000 claims description 19
- 230000002829 reductive effect Effects 0.000 claims description 17
- 238000004891 communication Methods 0.000 claims description 12
- 230000003247 decreasing effect Effects 0.000 claims description 6
- 238000001514 detection method Methods 0.000 claims description 4
- 230000004044 response Effects 0.000 description 26
- 230000003993 interaction Effects 0.000 description 17
- 230000006870 function Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 12
- 230000007246 mechanism Effects 0.000 description 8
- 230000001276 controlling effect Effects 0.000 description 7
- 230000004048 modification Effects 0.000 description 7
- 238000012986 modification Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000012790 confirmation Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 239000000654 additive Substances 0.000 description 2
- 230000000996 additive effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 241000700605 Viruses Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000009616 inductively coupled plasma Methods 0.000 description 1
- 230000002147 killing effect Effects 0.000 description 1
- 230000003449 preventive effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000009747 swallowing Effects 0.000 description 1
- 235000010384 tocopherol Nutrition 0.000 description 1
- 235000019731 tricalcium phosphate Nutrition 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/19—Flow control; Congestion control at layers above the network layer
- H04L47/193—Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
- H04L43/0864—Round trip delays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/27—Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/28—Flow control; Congestion control in relation to timing considerations
- H04L47/283—Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/163—In-band adaptation of TCP data exchange; In-band control procedures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Definitions
- the embodiments of the present invention relate to the field of network technologies, and in particular, to a method, a sending apparatus, and a system for transmitting a TCP packet of a transmission control protocol.
- Network congestion means that there are too many packets transmitted in the network, but the resources of the storage and forwarding nodes in the network are limited, resulting in a decrease in network transmission performance.
- network congestion occurs, data loss, increased delay, and decreased throughput are common.
- congestion collapses When the network is severely congested, congestion collapses.
- high throughput applications such as online video and audio applications
- the amount of data that needs to be transmitted over the network has also increased dramatically, requiring the network to maintain high throughput, if congestion control measures for coordinating network resources are insufficient. Reasonable, even if the network bandwidth is sufficient, it will seriously affect the good use of high throughput applications.
- TCP Transmission Control Protocol
- congestion control includes congestion avoidance and congestion recovery.
- congestion avoidance is a preventive mechanism to prevent the network from entering the congestion state and keep the network working under high throughput and low latency.
- Congestion recovery is a kind of congestion recovery. The recovery mechanism, that is, congestion has occurred, needs to recover the network from the congestion state and re-enter the high throughput and low latency state.
- TCP congestion control is to adjust the size of the congestion window (CWND) to control the throughput of TCP packets.
- the size of the congestion window is the maximum number of TCP packets that can be sent in a Round Trip Time (RTT).
- RTT Round Trip Time
- the larger the congestion window the faster the data transmission rate and the higher the throughput rate, but the more likely the network congestion occurs.
- the smaller the congestion window the slower the data transmission rate and the throughput rate.
- MSS Maximum Segment Size
- TCP congestion control is to adjust the optimal congestion window value, so that the throughput rate is maximized and no congestion occurs.
- Reno algorithm and CUBIC algorithm there are many mature window adjustment algorithms, including Reno algorithm and CUBIC algorithm.
- the Reno algorithm is the most widely used and mature TCP congestion control algorithm.
- the slow start, congestion avoidance and fast retransmission and fast recovery mechanisms included in the algorithm are the basis of many existing algorithms.
- the AIMD Additional Increase Multiplicative Decrease
- the shrinkage of the congestion window caused by the loss of a TCP packet takes a long time to recover, and the bandwidth utilization is not high, especially in the case of a large congestion window, the drawback is more obvious.
- the congestion window is reduced to half when a TCP packet is detected is lost.
- the congestion window of the data transmission in each round of congestion window increases the congestion window by 1 MSS (ie, the increase is 1 MSS).
- the congestion window takes longer to recover from half the size.
- the congestion window value is about 863MSS, Reno.
- the algorithm needs 431 rounds of RTT to recover the congestion window when the TCP packet is lost from half the size, which takes about 43.1 seconds.
- the CUBIC algorithm is improved in terms of congestion window growth.
- the CUBIC algorithm records the congestion window when the TCP packet is lost.
- the window is increased in an exponential manner similar to the slow start.
- the growth step of the congestion window is greatly reduced.
- the growth step of the congestion window is re-adjusted to approximate the rapid growth of the index. If the time is only maintained by chance, the CUBIC algorithm is still in the The rapid growth of the congestion window after the period of time will inevitably cause more TCP packets to be lost when the network is congested again, causing the network condition to deteriorate further.
- the above two algorithms have the same disadvantages in performing TCP congestion control: the congestion window grows according to a preset fixed value, cannot effectively utilize the current good network bandwidth, and even adjusts the congestion window. It is possible to make an adjustment strategy that is diametrically opposed to the actual network conditions, affecting the application's throughput requirements.
- an embodiment of the present invention provides a method, a sending apparatus, and a system for transmitting a TCP packet of a transmission control protocol, and adjusting a congestion window according to a throughput rate expected by a service and a round-trip delay for transmitting the TCP packet. Controlling the transmission of TCP packets with the adjusted congestion window can satisfy the throughput of the service as much as possible.
- an embodiment of the present invention provides a method for transmitting a TCP packet of a transmission control protocol, where the method includes:
- the second round-trip delay is a round-trip delay when the congestion window determined according to the first algorithm has the same size as the congestion window determined according to the second algorithm, wherein the first algorithm is based on Determining, by the first round-trip delay, a growth stride of the congestion window, the second algorithm determining a growth stride of the congestion window according to the first round-trip delay and a target throughput rate, the target throughput rate being the TCP packet The throughput rate expected by the corresponding business;
- the congestion window determined by the first algorithm is used as the first congestion window
- the congestion window determined by the second algorithm is used as the first congestion window
- the TCP packet is transmitted in the first congestion window.
- a growth stride of the congestion window determined in the second algorithm is positively correlated with the target throughput rate and negatively related to the first round-trip delay.
- the growth step of the congestion window determined in the first algorithm is inversely related to the first round trip delay.
- the target throughput rate is based on the service that is parsed from the packet of the TCP packet The bit rate is determined.
- the target throughput rate is determined according to a bit rate of the service that is parsed from a packet of the TCP packet.
- the algorithm is that the target throughput rate is equal to a bit rate of the service multiplied by an expansion factor, wherein the expansion factor is greater than one.
- the method further includes:
- the congestion window of the TCP packet transmission is adjusted to a second congestion window according to a third algorithm, wherein the second congestion window is based on the TCP data.
- the third round-trip delay when the packet is lost is determined, and the congestion window of the TCP packet transmission is adjusted to be the second
- the reduced step size of the plug window is inversely related to the third round trip delay;
- the TCP packet is transmitted in the second congestion window.
- the adjusting, by the third algorithm, the congestion window of the TCP packet transmission to a second congestion window specifically includes:
- the congestion window when the TCP packet is lost is used as the second congestion window, if the third round trip delay is equal to the delay
- the upper limit of the interval is used as the second congestion window, where the upper limit of the delay interval is the timeout retransmission RTO of the TCP in the network, and the lower limit of the delay interval It is a round trip delay when the network is lightly loaded.
- the congestion window determined by the first algorithm is used as the first congestion window, and specifically includes:
- the growth step of the congestion window is taken as a fast recovery value to obtain the first congestion window, and the fast recovery value and the slow start value are The same order of magnitude;
- the growth step of the congestion window is taken as one maximum segment length MSS to obtain the first congestion window;
- the growth step of the congestion window is taken as 1 MSS and The first congestion window is obtained between the fast recovery values and negatively correlated with the first round trip delay.
- the congestion window determined by the second algorithm is used as the first congestion window, and specifically includes:
- the method further includes:
- the ratio of the actual throughput rate to the target throughput rate is greater than the first threshold, and the difference between the fourth round-trip delay of the network sending the TCP packet and the round-trip delay detected when the network is lightly loaded is less than a second threshold, increasing the target throughput rate;
- the target throughput rate is decreased.
- the target throughput rate is delivered to the TCP protocol stack by using a target throughput parameter.
- an embodiment of the present invention provides a device for transmitting a TCP packet of a transmission control protocol, where the device includes:
- a delay determining unit configured to acquire a first round-trip delay of sending a TCP packet in the network, and determine a second round-trip delay, where the second round-trip delay is a congestion window determined according to the first algorithm and according to the second algorithm Determining a congestion window having a round-trip delay when the size is equal, wherein the first algorithm determines a growth step of the congestion window according to the first round-trip delay, and the second algorithm is based on the first round-trip delay and The target throughput rate determines a growth step of the congestion window, the target throughput rate being a desired throughput rate of the service corresponding to the TCP data packet;
- a window adjustment unit configured to: if the first round trip delay is greater than the second round trip delay, the congestion window determined by the first algorithm is used as the first congestion window, if the first round trip delay is less than or equal to Referring to the second round-trip delay, the congestion window determined by the second algorithm is used as the first congestion window;
- a data packet sending unit configured to send the TCP data packet in the first congestion window.
- a growth stride of the congestion window determined in the second algorithm is positively correlated with the target throughput rate and negatively related to the first round-trip delay.
- the growth step of the congestion window determined in the first algorithm is inversely related to the first round trip delay.
- the target throughput rate is based on the service that is parsed from the packet of the TCP packet The bit rate is determined.
- the target throughput rate is determined according to a bit rate of the service that is parsed from a packet of the TCP packet.
- the algorithm is that the target throughput rate is equal to a bit rate of the service multiplied by an expansion factor, wherein the expansion factor is greater than one.
- the window adjusting unit is further configured to: if the TCP packet is sent, a packet, the congestion window of the TCP packet transmission is adjusted to a second congestion window according to a third algorithm, wherein the second congestion window is determined according to a third round-trip delay when the TCP packet is lost. And adjusting, by the congestion window of the TCP packet transmission, that the reduced stride of the second congestion window is negatively related to the third round trip delay;
- the data packet sending unit is further configured to send the TCP data packet in the second congestion window.
- the window is adjusted
- the whole unit is further configured to adjust the congestion window of the TCP packet transmission to a second congestion window according to a third algorithm, specifically:
- the window adjusting unit is configured to: if the third round-trip delay is equal to a lower limit of the delay interval, use a congestion window when the TCP packet is lost as the second congestion window, if the third The round-trip delay is equal to the upper limit of the delay interval, and the preset congestion window is used as the second congestion window, where the upper limit of the delay interval is a timeout retransmission RTO of the TCP in the network.
- the lower limit of the delay interval is a round trip delay when the network is lightly loaded.
- the window adjustment unit is configured to use a congestion window determined by the first algorithm as the first congestion window, Specifically include:
- the window adjusting unit is configured to: if the first round trip delay is equal to a round trip delay of the light load of the network, take a growth step of the congestion window as a fast recovery value to obtain the first congestion window, where The fast recovery value is the same as the magnitude of the slow start;
- the window adjusting unit is configured to obtain, if the first round-trip delay is equal to a timeout retransmission RTO of the TCP in the network, obtain a growth step of the congestion window as a maximum segment length MSS.
- the window adjustment unit is configured to increase a growth step of the congestion window if the first round-trip delay is in a round trip delay of the network light load and a timeout retransmission RTO interval of the TCP in the network changes
- the value is between 1 MSS and the fast recovery value and is negatively correlated with the first round trip delay to obtain the first congestion window.
- the window adjustment unit is configured to use a congestion window determined by a second algorithm as the first congestion
- the window is specifically:
- the window adjusting unit is configured to calculate a target window according to the target throughput rate and the first round trip delay, and take a growth step of the congestion window as the target window and the TCP in the network The difference in the current congestion window determines the first congestion window.
- the device further includes:
- a throughput detection unit configured to detect an actual throughput rate of sending the TCP packet in the network
- a target throughput adjustment unit configured to detect, when the ratio of the actual throughput rate to the target throughput rate is greater than a first threshold, and the fourth round-trip delay of the network sending the TCP packet and the network light load Round trip If the difference is less than the second threshold, increase the target throughput rate, if the ratio of the actual throughput rate to the target throughput rate is less than a third threshold, and the fourth round trip delay is lighter than the network When the difference of the round trip delay detected at the time of loading is greater than the fourth threshold, the target throughput rate is decreased.
- the target throughput rate is delivered to the TCP protocol stack by using a target throughput parameter.
- an embodiment of the present invention provides a transmitting control protocol TCP data packet sending apparatus, where the sending apparatus includes a processor, a memory, and a network interface, where the processor passes the memory and the network interface respectively.
- the memory is configured to store a computer execution instruction, the processor reading the computer execution instruction stored in the memory to execute the first aspect or any one of the above aspects based on the first aspect when the transmitting device is running A possible implementation manner of the transmission control protocol TCP packet transmission method.
- an embodiment of the present invention provides a system, where the system includes a server and a terminal, and the server is connected to the terminal through a network; the server is the second aspect or any of the foregoing A possible implementation manner of the item or a transmitting device of a transmission control protocol TCP data packet provided by the third aspect, by which the TCP data packet is sent to the terminal.
- an embodiment of the present invention provides a system, where the system includes a server, a first proxy device, and a terminal, where the first proxy device is respectively connected to the server and the terminal;
- the server configured to send, by the first proxy device proxy, a TCP data packet to the terminal;
- the first proxy device is the transmitting device of the second aspect or the foregoing any possible implementation manner of the second aspect or the transmission control protocol TCP data packet provided by the third aspect, for receiving the server to the terminal Sending the TCP packet and proxying the server to send the TCP packet to the terminal.
- the terminal is configured to pass, by using a target throughput rate parameter, a TCP protocol stack of the terminal to a TCP protocol stack of the first proxy device by using a target throughput parameter .
- an embodiment of the present invention provides a system, where the system includes a server, a first proxy device, a second proxy device, and a terminal, where the first proxy device is respectively connected to a server and a second proxy device;
- the server configured to send, by the first proxy device proxy, a TCP data packet to the terminal;
- the first proxy device is the transmitting device of the second aspect or the foregoing any possible implementation manner of the second aspect or the transmission control protocol TCP data packet provided by the third aspect, for receiving the server to the terminal Transmitting the TCP data packet, and proxying the server to send the TCP data packet to the second proxy device;
- the second proxy device is configured to receive the TCP data packet and forward the packet to the terminal.
- the terminal a TCP protocol for transmitting a target throughput rate by using a target throughput parameter from a TCP protocol stack of the terminal to the second proxy device In the stack
- the second proxy device is further configured to pass the target throughput rate by the target throughput rate parameter in a TCP protocol stack of the second proxy device to a TCP protocol stack of the first proxy device.
- the first congestion window is determined according to the target throughput rate and the first round-trip delay reflecting the current network condition, the current congestion window is updated with the first congestion window, and the TCP packet is controlled by the first congestion window under the current network condition.
- the transmission can meet the throughput expected by the business as much as possible; follow the target throughput rate and network status, and directly increase from the current congestion window to the first congestion window, which can better meet the throughput requirements of the service and more effectively Take advantage of network bandwidth.
- 1A is a schematic diagram of a system logic structure of an application scenario of a method for transmitting a TCP packet of a transmission control protocol
- FIG. 1B is a schematic diagram of still another system logic structure of an application scenario of a method for transmitting a TCP packet of a transmission control protocol
- 1C is a schematic diagram of another system logic structure of an application scenario of a method for transmitting a TCP packet of a transmission control protocol
- FIG. 2 is a flow chart of a method for transmitting a TCP packet of a transmission control protocol
- FIG. 3 is a workflow diagram of a method for transmitting a TCP packet based on a packet loss
- FIG. 4 is an optional optimization flowchart of a method for transmitting a TCP packet based on the Transmission Control Protocol shown in FIG. 2;
- 5 is a flow chart of updating a target throughput rate in a method for transmitting a TCP packet of a transmission control protocol
- FIG. 6 is a schematic diagram showing the logical structure of a transmitting apparatus 600 for transmitting a control protocol TCP packet;
- FIG. 7 is a schematic diagram showing an optimized logical structure of a transmitting apparatus 600 based on a TCP packet of the Transmission Control Protocol shown in FIG. 6;
- FIG. 8 is a schematic diagram showing a hardware structure of a transmission control protocol TCP packet sending apparatus 800 according to an embodiment of the present invention.
- FIG. 1A is a schematic diagram of a system logic structure of an application scenario of a method for transmitting a TCP packet of a transmission control protocol according to an embodiment of the present invention. For convenience of description, only parts related to the embodiment of the present invention are provided.
- the system 100 includes a server 101, a terminal 102, and a network 103; the server 101 is interconnected with the terminal 102 via a network 103, through which the server 101 and the server are implemented.
- TCP/IP protocol Transmission Control Protocol/Internet Protocol
- the network 103 may include a forwarding device that forwards TCP data packets, such as a switch, a router, and the like, by which the TCP data packet exchanged between the server 101 and the terminal 102 is forwarded.
- a forwarding device that forwards TCP data packets, such as a switch, a router, and the like, by which the TCP data packet exchanged between the server 101 and the terminal 102 is forwarded.
- the server according to the embodiment of the present invention is an electronic device having a data processing function formed by using an electronic device; the electronic device is composed of an electronic component such as an integrated circuit, a transistor, an electron tube, etc.; and the electronic device can be operated by the electronic device.
- Software consisting of program instructions to implement data processing, control of other devices, and so on. If an electronic device is installed with an operating system, if the electronic device has a network card installed and network configuration is completed, the electronic device can access a network formed based on the TCP/IP protocol and perform TCP data with other electronic devices (such as terminals). The interaction of the packages to achieve data interaction.
- the terminal in the embodiment of the present invention is an electronic device with data processing functions formed by using an electronic device; the terminal can access a network formed by using a TCP/IP protocol, and other electronic devices (for example, the server interacts with TCP packets to implement data interaction.
- the server 101 is directly in communication with the terminal 102, and the TCP data packet exchanged between the server 101 and the terminal 102 via the network 103 does not need to be forwarded by the forwarding device (such as a router) in the network 103 for TCP data packets.
- the forwarding device such as a router
- the server 101 can perform peer-to-peer TCP packet interaction with the terminal 102.
- Server 101 can The terminal 102 transmits a TCP packet, and correspondingly, the terminal 102 can also transmit a TCP packet to the server 101.
- the system 100 is provided in FIG. 1A.
- the server 101 performs a master-slave TCP packet exchange with the terminal 102 through the network 103.
- the server 101 serves as a server, and the terminal 102 functions as a master-slave communication.
- the client corresponding to the server.
- the server 101 can send a TCP packet to the terminal 102.
- the terminal 102 downloads the audio and video file from the server 101
- the server 101 transmits the TCP packet carrying the audio and video file to the terminal 102; correspondingly, the terminal 102 can also send the server to the server.
- the 101 transmits a TCP packet, and when the terminal 102 uploads a text file to the server 101, the terminal 102 transmits the TCP packet carrying the text file to the server 101.
- FIG. 1B is a schematic diagram of another system logical structure of an application scenario of a method for transmitting a TCP packet of a transmission control protocol according to an embodiment of the present invention.
- the system 200 includes a server 201, a terminal 202, a network 203, and a first proxy device 204.
- the server 201 is TCP
- the protocol stack does not support modification, and the first proxy device 204 is added.
- the first proxy device 204 supports a protocol stack for modifying its TCP, and the first proxy device 204 proxies the server 201 and the terminal 202 to perform the TCP packet.
- the interaction between the first proxy device 204 and the TCP of the terminal 202 in FIG. 1B is similar to the TCP packet interaction between the server 101 and the terminal 102 in FIG. 1A; of course, the first proxy device 204 may be added due to other factors. Adding, for example, the first proxy device 204 to reduce the load imposed by the server 201 by sending TCP packets; preferably, the first proxy device 204 is implemented using a proxy server; preferably, the first proxy The device 204 is a service board on the router, and the function is implemented by logically programming the service board.
- FIG. 1C is a schematic diagram of another system logical structure of an application scenario of a method for transmitting a TCP packet of a transmission control protocol according to an embodiment of the present invention. For convenience of description, only parts related to the embodiment of the present invention are provided.
- the system 300 includes a server 301, a terminal 302, a network 303, and a first proxy device 304.
- the TCP of the server 301 is The protocol stack does not support being modified, then adding a first proxy device 304, which supports the protocol stack of the TCP that modifies it, and the first proxy device 304 proxyes the server 301 to perform the interaction of the TCP packet.
- a second proxy device 305 can also be added, by which the second proxy device 305 acts on the terminal 302 to perform the interaction of the TCP data packet, so that between the first proxy device 304 and the second proxy device 305 Performing the interaction of the TCP data packet, the first proxy device 304 and the second proxy device 305 in FIG.
- the TCP packet interaction is similar to the TCP packet interaction of the server 101 and the terminal 102 in FIG. 1A; of course, the first proxy device 304 and the second proxy device 305 may be simultaneously added due to other factors, see above, here No longer.
- One reason for adding the second proxy device 305 is that the protocol stack of the TCP of the terminal 302 does not support modification; the second proxy device 305 supports the protocol stack of the TCP that modifies it, and the second proxy device 305 represents the protocol stack.
- the terminal 302 performs the interaction of the TCP data packet, thereby performing the interaction of the TCP data packet between the first proxy device 304 and the second proxy device 305.
- the first proxy device 304 is implemented by using a proxy server; preferably, the first proxy device 304 is a service card on the router, and the function is implemented by logically programming the service card.
- the second proxy device 305 is implemented by using a proxy server; preferably, the second proxy device 305 is a service card on the router, and the function is implemented by logically programming the service card.
- the server designs a TCP TCP packet transmission method in the process of the network sending the TCP data packet to the terminal in order to satisfy the throughput expected by the service.
- FIG. 1A the method provided by the embodiment of the present invention is applied to the server 101; in FIG. 1B, the method provided by the embodiment of the present invention is applied to the first proxy device 204; in FIG. 1C, the present invention is implemented.
- the method provided by the example is applicable to the first proxy device 304.
- FIG. 2 shows the basic implementation flow of the method, but For convenience of description, FIG. 2 only shows parts related to the embodiment of the present invention.
- the method for transmitting the TCP TCP packet shown in FIG. 2 includes: step A201, step A202, step A203, step A204, and step A205.
- Step A201 Acquire a first round trip time (RTT) of sending a TCP packet in the network.
- RTT round trip time
- step A201 is detailed.
- the server When the server provides services to the terminal, it establishes a TCP stream for each service provided, and sends a TCP packet carrying the corresponding service in each TCP stream.
- the RTT required to send the TCP packet is calculated, and the calculated RTT is used as the first round trip.
- the RTT of the TCP packet is optionally calculated using an algorithm provided by RFC6289 (Jacobson/Karels algorithm).
- Step A202 determining a second round-trip delay, where the second round-trip delay is a round-trip delay when the congestion window determined according to the first algorithm has the same size as the congestion window determined according to the second algorithm, where the first Algorithm root Determining, according to the first round trip delay, a growth stride of the congestion window, the second algorithm determining a growth stride of the congestion window according to the first round trip delay and a target throughput rate, the target throughput rate being the TCP The throughput rate expected by the service corresponding to the packet.
- the embodiment of the present invention does not limit the specific form of the service, including: audio service, video service, audio and video service, online killing virus service, instant communication service, and online application service. .
- the server In the process of the server providing the service to the terminal, if the service is expected to be normally provided, the server needs to transmit the TCP packet carrying the service, and the throughput rate is defined as the target throughput rate.
- the server establishes a TCP flow for the service, and establishes a congestion window for the TCP flow, and sends the TCP carrying the service through the TCP flow under the control of the congestion window.
- the packet, the throughput that the server can provide is determined by the congestion window. Therefore, in order to achieve the throughput required by the service under the current network conditions of the network, it is necessary to adjust the congestion window.
- the server determines the target throughput rate required by the server to provide each service to the terminal separately; establishes a TCP flow for each service separately, and sets a congestion window for each TCP stream. For each service, the corresponding congestion window is separately adjusted to provide the throughput rate that the service expects to obtain.
- the embodiment of the present invention provides a first algorithm and a second algorithm.
- the first algorithm or the second algorithm is used to adjust the size of the congestion window, and the congestion window obtained by the adjustment is adopted.
- step A202 is to determine a growth step of the congestion window according to the first algorithm or the second algorithm to implement adjustment of the size of the congestion window.
- the first algorithm or the second algorithm is used to adjust the congestion window, and according to the RTT determining the network condition, step A202 determines the second round trip delay. If the RTT reflecting the network condition is less than or equal to the second round-trip delay, that is, the RTT reflecting the network condition is small, and the current network condition is good, the second algorithm is used to determine the growth step of the congestion window; When the growth step of the congestion window is increased, the growth step is determined according to the RTT reflecting the network condition and the target throughput rate, that is, the second algorithm considers the network condition and the target throughput rate at the same time, usually, the second When the congestion window determined by the algorithm controls the transmission of the TCP packet, the server can provide the target throughput rate required by the service.
- the first algorithm is used to determine the growth step of the congestion window; and the first algorithm is used to determine the congestion.
- the growth step is determined according to the RTT delay reflecting the network condition, that is, the first algorithm considers the network condition more, usually,
- the congestion window determined by the second algorithm controls the transmission of the TCP packet, the throughput provided by the server does not reach the target throughput rate required by the service.
- Step A203 If the first round trip delay is greater than the second round trip delay, the congestion window determined by the first algorithm is used as the first congestion window.
- Step A204 If the first round trip delay is less than or equal to the second round trip delay, the congestion window determined by the second algorithm is used as the first congestion window.
- Step A205 sending the TCP data packet in the first congestion window.
- Step A201 calculates an RTT that reflects the current network condition, and uses the calculated RTT as the first round trip delay.
- step A203 is performed by using the first algorithm. Determining a growth step of the congestion window, determining a growth step of the congestion window according to the first round trip delay; and increasing the growth determined according to the first algorithm on the basis of detecting a congestion window corresponding to the delay of the first round trip
- the stride gets the first congestion window.
- step A204 determine congestion by using a second algorithm. a growth step of the window, and determining a growth step of the congestion window according to the first round trip delay and the target throughput rate; and increasing the second according to the congestion window corresponding to the delay of detecting the first round trip.
- the first congestion window is re-determined every step A204 or every execution step A205, and the service is updated once in the first congestion window.
- Corresponding congestion window replaces the pre-update congestion window with the first congestion window; in the TCP flow of the service, the update is to control the number of transmissions of the TCP packet by the first congestion window.
- the embodiment of the present invention triggers at which time or condition triggers according to the first round trip delay and Determining the first congestion window by the target throughput rate and updating the current congestion window with the first congestion window is not limited; for example, determining the first congestion window according to the first round trip delay and the target throughput rate in real time, and determining the first congestion window a congestion window update a current congestion window of the TCP stream of the service; for example, the first congestion window may be determined according to the first round trip delay and the target throughput rate, and the current congestion window is updated with the first congestion window; For example, after the TCP packet is lost and the congestion window is reduced to the second congestion window, if the first round of receiving the acknowledgement response (ACK) of the TCP packet is controlled by the second congestion window, The first congestion window is determined according to the first round trip delay and the target throughput rate, and the current congestion window is updated with the first congestion window.
- ACK acknowledgement response
- the embodiment of the present invention can adjust the first congestion window that satisfies the target throughput rate according to the target throughput rate that the service expects, and control the sending by the first congestion window.
- a TCP packet that provides as much as possible the target throughput that the service expects to achieve.
- the method of the embodiment of the present invention is used to adjust the congestion window, and the method provided by the embodiment of the present invention is described in detail as follows:
- the target throughput rate required to send the TCP packet of the service in the network is obtained, and the target throughput rate is added in the protocol stack of the TCP.
- the server needs to transmit the TCP packet carrying the service, and the throughput required for the service is defined as the target throughput rate.
- a TCP flow is established for the service, and the server sends the TCP packet carrying the service in the TCP stream.
- the server also establishes a congestion window for the TCP stream; under the control of the congestion window, controlling the sending of the TCP packet carrying the service in the TCP stream, The congestion window determines the maximum number of TCP packets that can be sent, so the size of the congestion window can be adjusted to adjust the throughput provided by the server for the service.
- the server 101 of FIG. 1A supports The protocol stack of the TCP is modified.
- the server directly sends the TCP data packet carrying the service to the terminal, instead of sending the server to the terminal and carrying the service by the first proxy device as shown in FIG. 1B.
- the TCP packet thus, when the server only provides a certain service to the terminal, the server adjusts the congestion window according to the target throughput rate in the protocol stack of the TCP and the first round trip delay in response to the current network condition.
- the target throughput rate is added as a protocol stack of the TCP of the server 101 of FIG. 1A.
- An optional implementation manner is to modify the socket interface and add a parameter of the target throughput rate parameter. After the server provides the terminal with the target throughput rate required by the service, the target throughput rate is determined and the target throughput rate parameter is assigned. And transmitting, by the set of interfaces, the target throughput parameter and its corresponding assignment (ie, the target throughput rate expected by the service) to the TCP protocol stack of the server, and adding the target to the TCP protocol stack.
- the throughput rate parameter and its corresponding assignment is to modify the socket interface and add a parameter of the target throughput rate parameter.
- target throughput parameter of "target_throughput” For example, add the target throughput parameter of "target_throughput" to the set function of "setsockopt()". After determining the target throughput rate that the service expects to obtain based on the throughput required by the server to provide services to the terminal, The determined target throughput rate is assigned to the "target_throughput", the "target_throughput” and its assignment are transmitted to the protocol stack of the TCP of the server by "setsockopt()", and "target_throughput” is added to the protocol stack of the TCP. This target throughput parameter and its assignment.
- step B301, step B302, step B303, and step B304 are sequentially performed, as shown in FIG. 3.
- Step B301 in the process of sending the TCP data packet by the network, if the TCP data packet is lost, adjusting a congestion window when the TCP data packet is lost to a second congestion window, where the network control station is The TCP packet is sent in the second congestion window.
- the server sends the TCP packet carrying the service to the TCP stream that provides the service to the terminal
- the terminal receives a certain TCP packet in the correct order
- the terminal returns a confirmation response corresponding to the TCP packet to the server.
- the server deletes the TCP data packet in the cache when receiving the acknowledgment response of the TCP data packet, and adds other TCP data packets to be sent in the cache; the embodiment of the present invention is based on The cache further sets a congestion window through which congestion control is performed.
- the congestion window of the TCP stream is decreased, and the congestion window is adjusted to the second.
- the second congestion window is smaller than the congestion window when the TCP packet is lost, and the second congestion window is not limited according to which algorithm, such as the existing Reno algorithm or the CUBIC algorithm.
- the server determines that a TCP packet in the congestion window has been lost, and the scenario of triggering the loss of the TCP packet is not limited; for example, after the server sends the TCP packet, the preset time is still exceeded.
- the acknowledgment response of the terminal to the TCP packet is not received; for example, the TCP packet is lost when the TCP packet is transmitted in the network after the server sends the TCP packet, for example, when the TCP packet is transmitted in the wireless network.
- the lost TCP packet for example, after the server sends the TCP packet, the terminal does not promptly feed back the acknowledgment response of the TCP packet; for another example, the service
- the device sequentially sends a plurality of TCP data packets to the terminal, and the time when the TCP data packets arrive at the terminal is out of order, and the terminal has received the sorted multiple TCP data packets (for example, the three TCP packets sorted in the following).
- the terminal Upon receiving a certain sorted TCP packet, the terminal sends an acknowledgment response (ACK response) requesting the sorting of the preceding TCP packet to each server every time the TCP packet is sorted.
- the server receives the acknowledgment response multiple times (eg, three times), and the server determines that the TCP packet that was prior to the sort has been lost.
- step B301 adjusts a congestion window when the TCP packet is lost to a second congestion window, and controls transmission of the TCP packet by using the second congestion window, and the server can at most The number of TCP packets sent by the network is determined by the second congestion window.
- step B301 is entered.
- Step B302 If an acknowledgment response of sending the TCP packet in the second congestion window is received, determining a first round trip delay corresponding to the second congestion window.
- step B301 adjusts the TCP congestion window when the TCP packet is lost to the second congestion window
- the server controls the TCP packet of the service by using the second congestion window in the TCP stream of the service.
- the terminal sends, if the server completes the first round to send the TCP packet in the second congestion window to the terminal, and receives the acknowledgment response of all the TCP packets sent in the first round, the first round of the calculation is calculated.
- the RTT of the last TCP packet in the second congestion window defines the calculated RTT as the first round trip delay;
- the server completes the first round of sending the TCP packet in the second congestion window to the terminal and receiving the acknowledgment response of all the TCP packets sent in the first round
- the algorithm provided by RFC6289 is adopted (The Jacobson/Karels algorithm calculates the RTT of the last received acknowledgment response (the last received acknowledgment response in the acknowledgment response of all TCP packets sent in the first round), and uses the calculated RTT as the first round trip delay.
- Step B303 determining a first congestion window according to the first algorithm or the second algorithm, based on the target throughput rate and the first round trip delay.
- the first round trip delay is strongly related to the current network condition of the reaction (such as the network path length of forwarding TCP packets in the network), and the network Situation The better, the first round trip delay is relatively small; in an extreme case, when the network is seriously overloaded, the first round trip delay is equal to the network's Retransmission Time Out (RTO) mechanism. Being in serious congestion.
- RTO Retransmission Time Out
- step B302 receives an acknowledgment response of the TCP packet in the second congestion window of the first round
- the representative network may allow more TCP packets to be transmitted; in this case, the second congestion window may be appropriately increased, The second congestion window is increased to the first congestion window.
- the first congestion window is determined by using a first algorithm or a second algorithm; in particular, in the second algorithm, the target throughput rate parameter is introduced, and the first round-trip delay is introduced. a parameter; because the current network condition determined according to the first round-trip delay is better, for the first congestion window determined according to the second algorithm, controlling the sending of the TCP packet by the first congestion window enables: the server is transmitting The terminal can obtain the desired target throughput rate when carrying the TCP packet of the service; in addition, controlling the sending of the TCP packet by using the first congestion window determined according to the first algorithm, and also under the current network condition, Try to increase the throughput rate when the server provides services, so that the terminal can get the maximum throughput under the current network conditions.
- Step B304 adjusting the second congestion window to the first congestion window, and controlling, by the network, the TCP data packet to be sent in the first congestion window.
- the server controls, in the step B304, the TCP packet carrying the service sent to the terminal by using the first congestion window, that is, at a certain moment.
- the server sends at most all the TCP data packets (the TCP data packets carrying the service) included in the first congestion window to the terminal.
- the target throughput rate required for the server to transmit the TCP packet carrying the service is determined, and the target throughput rate is written to the protocol stack of the TCP.
- the server sends the TCP packet to the terminal in the TCP stream, if the occurrence of the TCP packet is lost, the TCP congestion window is adjusted to the second congestion window; if the second round of the first congestion window is successfully sent to the terminal a TCP packet (ie, receiving a confirmation response of the terminal to the TCP packet in the second congestion window of the first round), and determining a first round trip delay corresponding to the second congestion window of the first round;
- Step B303 according to the first round-trip delay, determining a network condition (sending a network condition of a TCP packet in a second congestion window of the first round), and determining, in the network condition, the first congestion that satisfies a target throughput rate as much as possible a window; thus, after determining the network condition based on the first round trip delay, step B304 can adjust the second
- Reno algorithm greatly reduce the congestion window of TCP when TCP packet loss occurs.
- Reno algorithm reduces the congestion window by half when TCP packet is lost, and then the CUBIC algorithm is When the TCP packet is lost, the congestion window is reduced to 717/1024 (reduced by nearly one-third); however, after the congestion window is reduced, the server needs to go through a round when using the existing window adjustment algorithm to adjust the congestion window.
- Another round of tentatively sending TCP packets after each round of sending TCP packets, if the TCP packets sent in the round are lost, the congestion window is greatly reduced again, if the terminal feedback is successfully received.
- the response increases the congestion window once; but after each round successfully receives the confirmation response from the terminal feedback, the existing algorithm does not consider the target throughput rate expected by the service, but gradually increases the congestion one after another according to the algorithm. Window, slowly reaching the maximum congestion window that can be provided for the service under the current network condition (the first congestion window);
- the target throughput rate that the service is expected to obtain is determined in advance. Even if the server sends the TCP packet to the terminal, the TCP packet is lost, and the TCP congestion window is adjusted to the second congestion window; if the TCP data in the first round of the second congestion window is successfully sent to the terminal a packet, determining a first round-trip delay corresponding to the second congestion window of the first round, determining a network condition according to the first round-trip delay, and determining the first of the network conditions to satisfy the target throughput rate a congestion window; the congestion window is added from the second congestion window to the first congestion window at a time to satisfy the target throughput rate corresponding to the service; wherein, if the TCP packet in the second congestion window of the first round is sent The network condition is good.
- sending the TCP packet in the first congestion window can satisfy the target throughput rate; wherein, even if the network condition is not good, combining the first round trip delay and The first congestion window determined by the target throughput rate is also a congestion window that best satisfies the bit rate of the service under network conditions.
- the method is particularly applicable to a wireless network with a large network bandwidth; compared with a wired network, a probability of random packet loss occurs in a wireless network, and each time a random packet loss occurs, the existing algorithm reduces the congestion window, but Each time the congestion window is reduced, the user can only gradually increase to the first congestion window.
- the time delay for resuming the service to the terminal is long, which is not conducive to the server to provide services to the terminal.
- the embodiment of the present invention supports the service, and the congestion window when the packet loss occurs is adjusted to the first congestion window after two steps.
- the two steps include: adjusting from the congestion window at the time of random packet loss to the second congestion window, and adjusting from the second congestion window to the first congestion window, effectively utilizing the network bandwidth, as timely as possible Support business.
- FIG. 4 is an optional workflow of the method for transmitting TCP-based TCP packets based on FIG. 2, but for ease of description, FIG. 4 only shows portions related to the embodiments.
- an optional refinement is performed to adjust a congestion window when packet loss occurs in the process of sending the TCP data packet by the network, where the method is Also included are step C401 and step C402.
- Step C401 If a packet loss occurs during the process of sending the TCP packet, adjust a congestion window of the TCP packet transmission to a second congestion window according to a third algorithm, where the second congestion window is The third round-trip delay is determined when the TCP packet is lost, and the congestion window of the TCP packet transmission is adjusted to be a negative correlation between the reduced stride of the second congestion window and the third round-trip delay.
- the server sequentially sends multiple TCP data packets to the terminal, and the time when the TCP data packet arrives at the terminal is out of order, and the terminal After receiving the sorted TCP packets (for example, the last three TCP packets), the TCP packet that has been sorted is not received, the terminal will sort after each received.
- Each TCP packet is sent to the server to request an acknowledgment response (ACK response) of the preceding TCP packet, and the server receives the acknowledgment response multiple times (for example, three times), and the server determines the ranking.
- ACK response acknowledgment response
- the server sends the TCP data packet and exceeds the RTO (which belongs to the preset time)
- the acknowledgment response of the terminal to the TCP data packet is not received, and it is determined that the TCP data packet has been received. Lost.
- the RTT when the TCP packet is lost is detected, and the RTT detected when the TCP packet is lost is used as the third round trip delay, and therefore, the third round trip delay Reflects the network condition when the TCP packet is lost. It is worth noting that if the TCP packet is randomly lost, the detected third round trip delay is equal to the RTT when the network is lightly loaded.
- Step C401 determines, according to a third round-trip delay, the second congestion window according to a third algorithm when the data packet is lost.
- the second congestion window determined in the third algorithm is negatively correlated with the third round trip delay; specifically, the third round trip delay is used as the input of the third algorithm, along with the third round trip time. As the delay increases, the second congestion window determined according to the third algorithm will be smaller.
- the specific implementation form or the step of the third algorithm is not limited in this embodiment; for example, the number of TCPs may be determined according to service requirements.
- the third algorithm is designed according to the need to reduce the amplitude of the congestion window when the packet is lost; for example, an existing algorithm (for example, Reno algorithm or CUBIC algorithm) may be used as the third algorithm.
- step C401 the adjusting, by using the third algorithm, the congestion window of the TCP packet transmission to the second congestion window, specifically includes:
- the congestion window when the TCP packet is lost is used as the second congestion window, if the third round trip delay is equal to the delay
- the upper limit of the interval is used as the second congestion window, where the upper limit of the delay interval is a timeout retransmission (RTO) of the TCP in the network.
- the lower limit of the delay interval is a round trip delay when the network is lightly loaded.
- the preset congestion window refers to a congestion window preset by the user.
- the TCP protocol defines an RTO for the TCP stream; optionally, the RTO can be artificially modified, or the RTO is set according to experimental data of the current network. This embodiment determines the upper bound of the delay interval by the RTO.
- the server sends the TCP packet carrying the service to the terminal, the acknowledgment response of the terminal to the TCP packet is not received after the specific time exceeds the specific time, and the packet is also determined to be lost.
- the round-trip delay when the network is lightly loaded refers to: after the network does not have network congestion (that is, in the light load of the network), the server receives the TCP packet carrying the service to the terminal, and receives the packet.
- the RTT of the TCP packet calculated when the terminal responds to the acknowledgment of the TCP packet.
- the server sends a TCP packet carrying a service to the terminal when the network is lightly loaded, detects an RTT of each TCP packet, and selects a minimum RTT from the detected RTT; The embodiment determines that the lower bound of the delay interval is: the smallest RTT is selected in the detected RTT.
- the server uses the TCP congestion window to control the TCP packet loss in the process of transmitting the TCP packet carrying the service to the terminal, and if the TCP packet is lost, the third round trip delay is equal to the lower bound of the delay interval. , indicating that the network is in good condition, the loss of the TCP packet is only an accidental factor (such as random packet loss), and does not reduce the congestion window when the TCP packet is lost, that is, the congestion window when the TCP packet is lost is taken as the second. Congestion window, resend the lost TCP packets.
- this embodiment can more effectively utilize the network bandwidth and support the service as much as possible.
- the server generates the TCP packet loss in the process of transmitting the TCP packet carrying the service to the terminal by using the congestion window of the TCP, and if the third round trip delay when the TCP packet is sent is detected, the third round trip delay is equal to The upper bound of the delay interval, that is, the third round trip delay is equal to RTO, indicating that the network is heavily congested, and the congestion window needs to be reduced to reduce the congestion window when the TCP packet is lost to the preset congestion window. It should be noted that the third round trip delay reaches the RTO and determines that the TCP packet is lost, and does not continue to wait for the third round trip delay of detecting the TCP packet, so the third round trip delay can only be the RTO.
- the third round-trip delay belongs to a lower bound and an upper bound of the delay interval, determining, according to the third algorithm, that the second congestion window is greater than the preset congestion window, and is smaller than when the TCP packet is lost.
- the congestion window, and as the third round trip delay increases, the second congestion window determined according to the third algorithm is smaller.
- Step C402 sending the TCP data packet in the second congestion window.
- the step C401 determines a second congestion window, and the step C402 replaces the congestion window when the TCP packet is lost with the second congestion window to perform congestion.
- the update of the window is replaced, and the transmission of the TCP packet of the service is controlled by the second congestion window.
- the second algorithm is further optionally refined according to the foregoing embodiment and the embodiment of the present invention, and the growth step of the congestion window determined in the first algorithm is related to the target throughput.
- the rate is positively correlated and negatively correlated with the first round trip delay
- the growth step of the congestion window determined in the first algorithm is negatively correlated with the first round trip delay.
- the network does not have network congestion, and the network bandwidth when the TCP packet is lost can meet the target throughput rate, according to the The second algorithm increases the congestion window; specifically, when the first congestion window is determined according to the second algorithm, as the target throughput rate increases, the first congestion window determined according to the second algorithm is also larger. As the first round trip delay increases, the first congestion window determined according to the second algorithm is smaller.
- the first round trip delay is less than or equal to the second round trip delay, indicating that no network congestion occurs, and the target throughput rate is compared to the first round trip when the first congestion window is determined according to the second algorithm.
- the weight of the delay is significant.
- the target throughput rate can be achieved, so that the bit rate of the service parsed by the terminal from the TCP packet satisfies : The bit rate required for this service; the server can normally provide the service to the terminal.
- the first algorithm determines a first congestion window when the first congestion window is determined according to the first round-trip delay, and the first congestion window determined according to the second algorithm increases as the first round-trip delay increases small.
- the server determines the TCP packet sent to the terminal according to the first congestion window determined by the first algorithm
- the throughput rate provided by the first congestion window determined according to the first algorithm cannot reach the target throughput rate, and only The difference between the target and the throughput rate is reduced, so that the service that the terminal parses the TCP packet has a bit rate that cannot meet the bit rate required by the service, but can support the current network state to the greatest extent.
- Business reduce the gap with the target throughput rate, try to support the server to provide the service to the terminal.
- the second algorithm is further optionally refined according to the foregoing embodiment and the embodiment of the present invention, where the congestion window determined by the first algorithm is used as the first congestion window, and specifically includes:
- the growth step of the congestion window is taken as a fast recovery value to obtain the first congestion window, and the fast recovery value and the slow start value are The same order of magnitude;
- the growth step of the congestion window is taken as a maximum segment size (MSS) to obtain the The first congestion window;
- the growth step of the congestion window is taken as 1 MSS and The first congestion window is obtained between the fast recovery values and negatively correlated with the first round trip delay.
- a slow start threshold (ssthresh) is set in advance for the congestion window. If the first round trip delay is equal to the round trip delay of the network light load, indicating that the network condition is good, if the congestion window of the first round trip delay is detected to be smaller than the slow start threshold, then When the first algorithm determines the growth step of the congestion window, the fast recovery value determined according to the first algorithm (the growth step determined according to the first algorithm) is of the same order of magnitude as the growth step determined according to the slow start algorithm, and will be detected. The congestion window of the first round trip delay increases the fast recovery value to obtain the first congestion window. It should be noted that the slow start and the corresponding slow start algorithm are not limited in this embodiment, and may be implemented by using an existing slow start and a slow start algorithm.
- the first algorithm takes the value of the growth step of the congestion window as a value. 1 MSS; in this case, even if a TCP packet of a congested window is successfully transmitted, only one MSS is added to the current congestion window to obtain the first congestion window, and the first congestion window is updated and replaced. Current congestion window.
- the first algorithm correspondingly increases the growth step of the congestion window Between 1 MSS and the fast recovery value, but the growth step determined according to the first algorithm is negatively correlated with the first round trip delay; in this case, even if a congestion window is successfully transmitted
- the TCP packet adds the growth step to the current congestion window to obtain the first congestion window.
- the second algorithm is further optionally refined according to the foregoing embodiment and the embodiment of the present invention, where the congestion window determined by the second algorithm is used as the first congestion window, which specifically includes :
- the network condition reflected by the first round trip delay is good, and the network bandwidth is greater than or equal to the target throughput rate, which may increase congestion.
- Window to increase the throughput rate provided for the service in order to increase the current congestion window to a target window capable of providing the target throughput rate under the current network condition, the growth step of the congestion window is taken as: the target window and The difference in the current congestion window of the TCP in the network.
- the first congestion window obtained by detecting the congestion window of the first round trip delay is increased by the growth step, and the first congestion window is directly equal to the target window; thereby directly meeting the target throughput rate of the service directly under the current network condition.
- the target window controls the sending of TCP packets and provides this service to the greatest extent possible.
- the foregoing embodiment and the embodiment of the present invention are further optionally refineable, and the target throughput rate is determined according to a bit rate of the service parsed from a packet of the TCP packet.
- the server may parse the bit rate required for each service to be provided to the terminal, and then calculate the server to provide each service to the terminal according to the parsed bit rate.
- the specific throughput of the target is not limited to the specific implementation manner of the present invention.
- each service has a standard corresponding bit rate, and the target throughput rate required to transmit the TCP packet carrying the service is determined according to the bit rate, and the value of the target throughput rate corresponding to the service is greater than the value. The value of the bit rate of the service.
- the bit rate parsed by the terminal from the TCP packet satisfies the bit rate required by the service, that is, the bit of the service parsed by the terminal. Rate is greater than or equal to The service corresponds to the standard bit rate.
- the algorithm for determining the target throughput rate according to the bit rate of the service parsed from the packet of the TCP packet is: the target throughput rate is equal to a bit rate of the service multiplied by an expansion factor Wherein the expansion factor is greater than one.
- FIG. 5 is a workflow for updating the target throughput rate, but for convenience of description, FIG. 5 only shows portions related to the embodiment.
- the method further includes step D501, step D502. , step D503.
- Step D501 Detect an actual throughput rate of sending the TCP packet in the network.
- Step D502 if the ratio of the actual throughput rate to the target throughput rate is greater than a first threshold, and the network sends the fourth round-trip delay of the TCP packet and the round-trip delay detected when the network is lightly loaded. If the difference is less than the second threshold, increasing the target throughput rate;
- Step D503 if the ratio of the actual throughput rate to the target throughput rate is less than a third threshold, and the difference between the fourth round trip delay and the round trip delay detected when the network is lightly loaded is greater than a fourth threshold. , then the target throughput rate is reduced.
- the third threshold is smaller than the first threshold, and the second threshold is smaller than the fourth threshold.
- the congestion window of the TCP stream corresponding to the service may be adjusted according to the target throughput rate, so that the TCP packet of the service is sent in the adjusted congestion window. It is possible to meet the target throughput rate required by the business as much as possible.
- the foregoing embodiment only introduces the parameter of the bit rate of the service when determining the target throughput rate, and does not consider the network condition. In this embodiment, when determining the target throughput rate, not only the bit rate of the service but also the bit rate of the service is considered. Current network status.
- the process of sending the TCP data packet by the network detecting an RTT that currently sends a TCP data packet, using the currently detected RTT as a fourth round-trip delay, and detecting that the TCP data is currently sent in the network.
- the throughput rate of the packet, the currently detected throughput rate being the actual throughput rate.
- the factors determining the actual throughput rate include the network status, the throughput rate of the transmitting end, and the throughput rate of the receiving end. Taking the system shown in FIG. 1A as an example, the factors determining the actual throughput rate include the network status of the network 103, and the server 101. Throughput rate and terminal 102 swallowing Taking the system shown in FIG.
- the factors determining the actual throughput rate include the network status of the network 203, the throughput rate of the first proxy device 204, and the throughput rate of the terminal 202.
- the system shown in FIG. 1C is
- the factors determining the actual throughput rate include the network status of the network 303, the throughput rate of the first proxy device 304, and the throughput rate of the second proxy device 305.
- the frequency and time of simultaneously detecting the fourth round trip delay and the actual throughput rate are not limited.
- the fourth round trip delay and the actual throughput rate may be simultaneously detected every time interval.
- step D502 may be performed to increase the target throughput rate, and the protocol in the TCP Updating the target throughput rate in the stack; optionally, the first threshold is a value close to 1, for example the first threshold is 90%; alternatively, the second threshold is a value close to 0; optionally In the case where the target throughput rate after the step D502 is increased is smaller than the network bandwidth, the step size of increasing the target throughput rate in step D502 is not limited.
- step D503 may be performed to decrease the target throughput rate, and the protocol in the TCP Updating the target throughput rate in the stack; optionally, the third threshold is less than or equal to 50%, for example, the first threshold is 20%; alternatively, the second threshold is a larger delay value; optionally In the case that the target throughput rate after the step D502 is reduced is less than the network bandwidth, the step size of reducing the target throughput rate in step D503 is not limited.
- the current network condition is also considered, and the target throughput rate in the protocol stack is adjusted in real time according to the current network condition.
- the value of the network can be avoided by increasing the probability of TCP packet loss due to the congestion window determined by the excessive target throughput. It can also increase the target throughput by too small to increase the congestion window and effectively utilize the physical bandwidth of the network. .
- the target throughput rate is delivered to the TCP protocol stack through the target throughput rate parameter.
- a target throughput rate parameter is added to the TCP protocol stack of the server 101 in FIG. 1A, and the target throughput rate parameter is assigned to the target throughput rate.
- the TCP at the first proxy server 204 The target throughput rate parameter is added to the protocol stack, and the target throughput rate parameter is assigned to the target throughput rate.
- a target throughput rate parameter is added to the TCP protocol stack of the first proxy server 304, and the target throughput rate parameter is assigned the target throughput rate.
- the present embodiment further simplifies and refines the foregoing embodiments and embodiments of the present invention based on the application of the method to the server 101 in FIG. 1A; the method includes:
- the server parses the bit rate of the service from the message of the TCP packet, and multiplies the bit rate by an expansion factor to obtain the target throughput rate.
- the server determines a field in the packet included in the TCP data packet for the TCP data packet that is sent to the terminal and carries the service, and records the required field for the service in the field.
- the bit rate if the service parsed by the terminal from the TCP packet can satisfy the bit rate required by the service, the representative server successfully provides the service to the terminal normally.
- the target throughput rate calculated according to the third algorithm is The value is greater than the value of the bit rate required for the service.
- the first in FIG. 1B is adopted.
- the proxy device 204 proxies the server 201, which supports protocol stack modification of TCP over it (including support for adding the target throughput rate to the protocol stack of the TCP).
- a first proxy device 204 is added to the network, and the proxy server 201 transmits the TCP packet carrying the service to the terminal 202 by the first proxy device 204.
- FIG. 1B the above is based on the The method is applied to the server embodiment of the server 101 in FIG. 1A as an example, and is not applied to the server 201 in FIG. 1B, but to the first proxy device 204 in FIG. 1B.
- the foregoing embodiments and implementations of the present invention provide a method for sending a TCP packet to a first proxy device, where the first proxy device proxy server sends the TCP packet to a terminal; the target throughput rate is determined by the terminal, and is determined.
- the method includes: parsing a bit rate of the service from a message of the TCP packet, multiplying the bit rate by an expansion factor to obtain the target throughput rate; and acquiring, by the first proxy device, the target from the terminal Target throughput rate.
- the server has a protocol stack that does not support modified TCP
- the first proxy device has a protocol stack that supports modified TCP
- the terminal has a protocol stack of TCP.
- the server may generate a TCP packet carrying the service according to the protocol stack of the TCP, and perform TCP packet interaction between the server and the first proxy device based on the TCP/IP protocol.
- the first proxy device modifies the TCP packet based on its TCP protocol stack for the TCP packet carrying the service received from the server (may not modify the service contained in the packet included in the TCP packet), and will modify
- the subsequent TCP packet is sent to the terminal, and the terminal parses the TCP packet based on the protocol stack of the TCP, parses the packet carrying the service, and parses the data related to the service from the packet.
- the packet also records the bit rate required for the service. After the terminal parses the packet from the TCP packet, the terminal can parse the bit rate required for the service from the packet, and the bit rate is obtained. Multiplying the expansion factor to obtain the target throughput rate;
- the terminal modifies the socket of the TCP, adds a parameter of the target throughput parameter, and assigns the target throughput parameter to the target throughput rate, and the target throughput parameter and the assignment thereof through the interface (the target)
- the throughput of the protocol stack of the TCP transmitted to the terminal; for example, adding the target throughput parameter of "target_throughput” to the set function of "setsockopt()", and calculating the bit rate and the expansion coefficient according to the bit rate and the expansion coefficient
- the "target_throughput” is assigned with the calculated target throughput rate, and the "target_throughput” and its assignment are transmitted to the TCP protocol stack of the terminal through "setsockopt()";
- the terminal generates a message, expands the TCP option of the packet, and adds a target throughput parameter and its assignment in the TCP option (the target throughput parameter of the protocol stack transmitted by the socket to the TCP and its assignment);
- the first proxy device can parse the TCP packet by sending a TCP packet to the first proxy device (the TCP packet includes the packet having the option of the TCP (with the target throughput parameter and its assignment)) Then, the target throughput parameter included in the TCP option in the message and its assignment are obtained; further, the first proxy server may add the target throughput parameter and its assignment in the protocol stack of the TCP.
- the embodiment may add the target throughput rate parameter and its assignment to the terminal after receiving the target throughput rate parameter and the assignment thereof through the socket.
- the embodiment may not directly add the target throughput parameter and its assignment to the TCP protocol stack of the terminal, but directly generate The message (the target throughput parameter and the assignment thereof are added to the TCP option of the message), the terminal sends the TCP packet carrying the packet to the first proxy device, so that the first proxy device uses the target throughput rate parameter. And its assignment is added to its TCP stack.
- the embodiment and the embodiment of the invention described above based on the application of the method to the server 101 in FIG. 1A are optionally optimized. If the server 101 in FIG. 1A does not support the TCP on it. Protocol stack modification (including support for adding the target throughput rate to the protocol stack of the TCP), then the first proxy device 304 is used to proxy the server 101 in FIG. 1C, and the first proxy device 304 supports the protocol for TCP on it. Stack modification (including support for adding the target throughput rate to the TCP protocol stack); in addition, a second proxy device 305 can also be added to the network, as shown in FIG.
- Protocol stack modification including support for adding the target throughput rate to the protocol stack of the TCP
- Stack modification including support for adding the target throughput rate to the TCP protocol stack
- a second proxy device 305 can also be added to the network, as shown in FIG.
- the second proxy device 305 proxyes the terminal 302 and the A proxy device 304 performs the interaction of TCP packets.
- One reason for adding the second proxy device 305 is that the first proxy device 304 shares the TCP protocol stack with the second proxy device 305, including the second proxy device 305, which will carry the target throughput rate parameter and its assigned message as TCP data.
- the method of the packet is sent to the first proxy device 304; another reason for adding the second proxy device 305 is that the plurality of terminals 302 are represented by the same second proxy device 305, and the second proxy device 305 represents each terminal 302 and the second A proxy device 304 performs the interaction of TCP packets.
- the above-described embodiment and embodiment of the invention described based on the application of the method to the server 101 in FIG. 1A are no longer applied to the server 101 in FIG. 1C, but are applied to FIG. 1C.
- the first proxy device 304 when the inventive embodiment and embodiment described by the method applied to the server 101 in FIG. 1A is applied to the first proxy device 304 in FIG. 1C, the target is calculated by the terminal backup 302.
- the above-described inventive embodiments and embodiments can be applied to the first proxy device 304; the details are as follows:
- the foregoing embodiments and implementations of the present invention provide a method for transmitting a TCP packet to be applied to a first proxy device; the first proxy device proxy server sends the TCP packet to a second proxy device to be used by the second proxy device The TCP packet is forwarded to the terminal. Then, the terminal determines the target throughput rate and sends the target throughput rate to the second proxy device, and the method for determining the target throughput rate includes: from the TCP data The bit rate of the service is parsed in the packet of the packet, and the bit rate is multiplied by the expansion factor to obtain the target throughput rate. Then, the first proxy device acquires the target throughput rate from the second proxy device.
- the server has a protocol stack that does not support modified TCP
- the first proxy device has a protocol stack that supports the modified TCP
- the second proxy device has a protocol stack of TCP
- the terminal has a protocol stack of TCP.
- the server may generate a TCP packet carrying the service according to the protocol stack of the TCP, and perform TCP packet interaction between the server and the first proxy device based on the TCP/IP protocol.
- the first proxy device modifies the TCP packet based on its TCP protocol stack for the TCP packet carrying the service received from the server (the service included in the packet included in the TCP packet may not be modified), and the modified packet will be modified.
- the TCP packet is sent to the second proxy device; the second proxy device re-modifies the TCP packet based on the protocol stack of its TCP, and sends the modified TCP packet to the terminal, and the terminal re-modifies the TCP packet. Parsing and parsing the message carrying the service, and parsing the data related to the service from the message.
- the packet also records the bit rate required for the service. After the terminal parses the packet from the TCP packet, the terminal can parse the bit rate required for the service from the packet, and the bit rate is obtained. Multiplying the expansion factor to obtain the target throughput rate;
- the terminal modifies the TCP socket interface, adds a parameter of the target throughput rate parameter, and assigns the target throughput rate parameter to the target throughput rate calculated according to the bit rate required by the service, and the The target throughput parameter and its assignment (the target throughput rate) are transmitted to the TCP protocol stack of the terminal; for example, the target throughput parameter of "target_throughput” is added to the set function of "setsockopt()", After calculating the target throughput rate based on the throughput required by the service, the terminal assigns the target_throughput to the calculated target throughput rate, and transmits the "target_throughput" and its assignment to the TCP protocol stack of the terminal through "setsockopt()". ;
- the terminal generates a first packet, and expands a TCP option of the first packet, and adds a target throughput parameter and an assignment thereof to the TCP option (a target throughput parameter of the protocol stack transmitted to the TCP through the socket and Its assignment); the terminal sends a TCP packet to the second proxy device (the TCP packet includes the first message with the option of the TCP (with the target throughput parameter and its assignment));
- the second proxy device After the TCP packet is parsed, the second proxy device obtains the target throughput rate parameter included in the TCP option in the first packet and its assignment; the second proxy device generates a second packet, and the second packet
- the TCP option is extended to add the target throughput parameter and its assignment (the target throughput parameter in the first packet and its assignment) in the TCP option; the second proxy device sends the TCP to the first proxy device.
- Packet (the TCP data)
- the packet includes the second message having the option of the TCP (having the target throughput parameter and its assignment);
- the first proxy device parses the TCP packet received from the second proxy device, parses out the second packet, and obtains the target throughput rate parameter and its assignment from the second packet, where the first proxy device TCP The target throughput rate parameter and its assignment are added to the protocol stack;
- the target throughput rate parameter and the assignment thereof may be added to the TCP protocol stack of the second proxy device;
- the embodiment may not modify the protocol stack of the second proxy device's TCP (that is, add the target in the TCP protocol stack of the second proxy device).
- the throughput parameter and its assignment directly generate a second packet (the target throughput parameter is added to the TCP option of the second packet and its assignment), and the second proxy device sends the identifier to the first proxy device.
- the TCP packet of the message causes the first proxy device to add the target throughput rate parameter and its assignment to its TCP protocol stack.
- the second proxy device is added, because the routing path of the first proxy device and the second proxy device is determined, so when the network is under light load, the TCP packet is from the first proxy device to the second proxy device.
- RTT is basically unchanged. Therefore, when the second proxy device represents a plurality of terminals, the RTT of the existing TCP flow between the second proxy device and the first proxy device is determined to be at the time of the light load of the network, and the existing TCP is determined.
- the lower bound of the delay interval corresponding to the flow (the existing TCP stream is RTT when the network is lightly loaded); if a TCP stream of a certain service is newly added between the second proxy device and the first proxy device, there is no need to go through
- the RTT of the congestion window is used to filter the minimum RTT in the RTT of the congestion window as the lower bound of the delay interval corresponding to the newly added TCP stream, but directly to the delay corresponding to the existing TCP stream.
- the lower bound of the interval is as follows: the lower bound of the delay interval corresponding to the newly added TCP stream of the service; that is, the RTT of the existing TCP stream when the network is lightly loaded is used as: the newly added service of the service
- the TCP stream is RTT when the network is lightly loaded.
- the target throughput rate is calculated based on the bit rate of the service (the bit rate is multiplied by the expansion factor to obtain the target throughput rate).
- the service is refined as follows:
- the bit rate of the service is an audio bit rate of the audio service
- the bit rate of the service is a video code rate of the video service
- the bit rate of the service is an audio and video bit of the audio and video service. rate.
- the server when the server provides the service to the terminal, the packet carrying the service is generated; and at the same time, a field is determined in the message, and the bit rate required for the service is recorded in the field.
- the service is an audio service
- the audio bit rate required for the audio service is recorded in the field of the message
- the record is recorded in the field of the message.
- the video bit rate required for the video service wherein, if the service is an audio and video service, the audio and video bit rate required for the audio and video service is recorded in the field of the message.
- FIG. 6 is a schematic diagram showing the logical structure of a transmission control protocol TCP packet sending apparatus 600 according to an embodiment of the present invention. As shown in FIG. 6, the apparatus 600 includes at least a delay determining unit 601. The window adjusting unit 602 and the packet transmitting unit 603.
- the delay determining unit 601 is configured to acquire a first round-trip delay for sending a TCP packet in the network, and determine a second round-trip delay, where the second round-trip delay is a congestion window determined according to the first algorithm, and according to the second The algorithm determines that the congestion window has a round-trip delay when the size is equal, wherein the first algorithm determines a growth stride of the congestion window according to the first round-trip delay, and the second algorithm is configured according to the first round-trip delay And a target throughput rate determining a growth step of the congestion window, the target throughput rate being a desired throughput rate of the service corresponding to the TCP packet;
- the window adjustment unit 602 is configured to: if the first round trip delay is greater than the second round trip delay, the congestion window determined by the first algorithm is used as the first congestion window, if the first round trip delay is less than or equal to The second round trip delay, the congestion window determined by the second algorithm is used as the first congestion window;
- the data packet sending unit 603 is configured to send the TCP data packet in the first congestion window.
- the growth stride of the congestion window determined in the second algorithm is positively correlated with the target throughput rate, and negatively related to the first round trip delay, and the congestion window determined in the first algorithm is The growth step is inversely related to the first round trip delay.
- the target throughput rate is determined according to a bit rate of the service parsed from a message of the TCP data packet.
- the algorithm for determining the target throughput rate according to the bit rate of the service parsed from the packet of the TCP packet is: the target throughput rate is equal to a bit rate of the service multiplied by an expansion factor Wherein the expansion factor is greater than one.
- the window adjusting unit 602 is further configured to: if a packet loss occurs in the process of sending the TCP packet, adjust a congestion window of the TCP packet transmission to a second congestion window according to a third algorithm. ,among them, The second congestion window is determined according to a third round trip delay when the TCP packet is lost, and the congestion window of the TCP packet transmission is adjusted to a lower stride of the second congestion window and the third round trip. Time delay is negatively correlated;
- the data packet sending unit 603 is further configured to send the TCP data packet in the second congestion window.
- the window adjustment unit 602 is further configured to adjust the congestion window of the TCP packet transmission to a second congestion window according to a third algorithm, specifically:
- the window adjusting unit 602 is configured to: if the third round-trip delay is equal to a lower limit of the delay interval, use a congestion window when packet loss occurs in the TCP packet as the second congestion window, if the If the three round-trip delay is equal to the upper limit of the delay interval, the preset congestion window is used as the second congestion window, where the upper limit of the delay interval is a timeout retransmission of the TCP in the network. RTO, the lower limit of the delay interval is a round trip delay when the network is lightly loaded.
- the window adjustment unit 602 is configured to use the congestion window determined by the first algorithm as the first congestion window, and specifically includes:
- the window adjustment unit 602 is configured to obtain the first congestion window by taking a growth step of the congestion window as a fast recovery value if the first round trip delay is equal to a round trip delay of the network light load.
- the fast recovery value is of the same order of magnitude as the slow start;
- the window adjusting unit 602 is configured to: if the first round trip delay is equal to the timeout retransmission RTO of the TCP in the network, set the growth step of the congestion window to a maximum segment length MSS. Obtaining the first congestion window;
- the window adjusting unit 602 is configured to: if the first round-trip delay is in a round trip delay of the network light load and a timeout retransmission RTO interval of the TCP in the network changes, the growth step of the congestion window is The amplitude value is between 1 MSS and the fast recovery value and is negatively correlated with the first round trip delay to obtain the first congestion window.
- the window adjustment unit 602 is configured to use the congestion window determined by the second algorithm as the first congestion window, specifically:
- the window adjustment unit 602 is configured to calculate a target window according to the target throughput rate and the first round trip delay, and take the growth step of the congestion window as the target window and the network in the network. The difference in the current congestion window of TCP determines the first congestion window.
- the device further includes a throughput rate detecting unit 604 and a target throughput rate adjusting unit 605.
- the throughput detection unit 604 is configured to detect an actual throughput rate of the TCP packet sent by the network.
- the target throughput rate adjustment unit 605 is configured to: if the ratio of the actual throughput rate to the target throughput rate is greater than a first threshold, and the fourth round-trip delay of the network sending the TCP packet and the network light load detection If the difference between the round trip delays is less than the second threshold, the target throughput rate is increased, if the ratio of the actual throughput rate to the target throughput rate is less than a third threshold, and the fourth round trip delay is When the difference between the round trip delay detected when the network is lightly loaded is greater than the fourth threshold, the target throughput rate is decreased.
- the target throughput rate is delivered to the TCP protocol stack through the target throughput parameter.
- FIG. 8 is a schematic diagram showing the hardware structure of a transmission control protocol TCP packet transmission apparatus 800 according to the present embodiment, and shows a hardware configuration of the transmission apparatus 800.
- the transmitting device 800 includes a processor 801, a memory 802, and a network interface 804, and the processor 801 is respectively connected to the memory 802 and the network interface 804 through the bus 803;
- the transmitting device 800 accesses the network 103 through the network interface 804 to send/receive the TCP data packet;
- the memory 802 is configured to store computer execution instructions, and when the transmitting device 800 is running, the processor 801 reads the computer execution instructions stored by the memory 802 to perform application to the transmitting device 800.
- the transmission control protocol TCP packet transmission method provided by the above embodiments and embodiments of the invention.
- the processor 801 can 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 802 can be a read only memory (ROM), a static storage device, a dynamic storage device, or a random access memory (RAM). Memory 802 can store operating systems and other applications.
- ROM read only memory
- RAM random access memory
- Memory 802 can store operating systems and other applications.
- the program code for implementing the technical solution provided by the embodiment of the present invention is stored in the memory 802, including the above-mentioned invention implementation to be applied to the transmitting device 800.
- the program code of the transmission control protocol TCP packet transmission method provided by the example and the embodiment is stored in the memory 802 and executed by the processor 801.
- the network interface 804 implements network communication between the transmitting device 800 and other devices or communication networks using, for example, but not limited to, transceivers such as transceivers; alternatively, the network interface 804 may be for access Various interfaces of the network, such as an Ethernet interface for accessing Ethernet, including but not limited to RJ-45 interface, RJ-11 interface, SC optical interface, FDDI interface, AUI interface, BNC interface, and Console Interface, etc.
- an Ethernet interface for accessing Ethernet including but not limited to RJ-45 interface, RJ-11 interface, SC optical interface, FDDI interface, AUI interface, BNC interface, and Console Interface, etc.
- the bus 803 can include a path for communicating information between various components (e.g., processor 801, memory 802, and network interface 804) in the transmitting device 800.
- various components e.g., processor 801, memory 802, and network interface 804 in the transmitting device 800.
- the sending device 800 further includes an input/output interface 805 for receiving input data and information, and outputting an operation result and the like.
- the transmitting device 800 shown in FIG. 8 only shows the processor 801, the memory 802, the network interface 804, and the bus 803, in a specific implementation process, those skilled in the art should understand that the transmitting Device 800 also contains other devices necessary to achieve proper operation. In the meantime, those skilled in the art will appreciate that the transmitting device 800 may also include hardware devices that implement other additional functions, depending on the particular needs. Moreover, those skilled in the art will appreciate that the transmitting device 800 may also only include the components necessary to implement the embodiments of the present invention, and does not necessarily include all of the devices shown in FIG.
- a system 100 is provided.
- the system 100 includes a server 101 and a terminal 102.
- the server 101 is communicably connected to the terminal 102 through a network 103.
- the server 101 is as described above.
- the transmitting device 800 transmitting the control protocol TCP packet transmits a TCP packet to the terminal 102 via the network 103.
- a system 200 is provided.
- the system 200 includes a server 201, a first proxy device 204, and a terminal 202.
- the first proxy device 204 and the server 201 are respectively
- the terminal 202 is in communication connection;
- the server 201 is configured to send, by the first proxy device 204, a TCP data packet to the terminal 202;
- the first proxy device 204 is the foregoing transmission control protocol TCP packet sending device 800, configured to receive the TCP packet sent by the server 201 to the terminal 202, and proxy the server 201 to the The terminal 202 transmits the TCP packet.
- the terminal 202 is configured to pass the target throughput rate by the TCP protocol stack of the terminal 202 to the TCP protocol stack of the first proxy device 204 by using a target throughput rate parameter.
- a system 300 is provided.
- the system 300 includes a server 301, a first proxy device 304, a second proxy device 305, and a terminal 302.
- the first proxy device 304 and the server 301 respectively. Communicating with the second proxy device 305; the server 301, configured to pass the first proxy device 304
- the proxy sends a TCP packet to the terminal 302;
- the first proxy device 304 is the foregoing transmission control protocol TCP packet sending device 800, configured to receive the TCP packet sent by the server 301 to the terminal 302, and proxy the server 301 to the
- the second proxy device 305 sends the TCP data packet;
- the second proxy device 305 is configured to receive the TCP packet and forward it to the terminal 302.
- the terminal 302 is configured to pass the target throughput rate to the TCP protocol stack of the second proxy device 305 by using the target throughput parameter from the TCP protocol stack of the terminal 302;
- the second proxy device 305 is further configured to pass the target throughput rate to the TCP protocol stack of the first proxy device 304 by using the target throughput rate parameter from a TCP protocol stack of the second proxy device 305. in.
- the disclosed systems, devices, devices, and methods may be implemented in other manners.
- the device embodiments described above are merely illustrative.
- the division of the modules and units is only a logical functional division, and may be implemented in another manner, such as multiple modules or units or components. It can be combined or integrated 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, and the components of the 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 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)
Abstract
Description
Claims (26)
- 一种传输控制协议TCP数据包的发送方法,其特征在于,所述方法包括:获取在网络中发送TCP数据包的第一往返时延;确定第二往返时延,所述第二往返时延为按照第一算法确定的拥塞窗口与按照第二算法确定的拥塞窗口具有同等大小时的往返时延,其中,所述第一算法根据所述第一往返时延确定拥塞窗口的增长步幅,所述第二算法根据所述第一往返时延和目标吞吐率确定拥塞窗口的增长步幅,所述目标吞吐率为所述TCP数据包对应的业务所期望获得的吞吐率;如果所述第一往返时延大于所述第二往返时延,则以第一算法确定的拥塞窗口作为第一拥塞窗口;如果所述第一往返时延小于或等于所述第二往返时延,则以第二算法确定的拥塞窗口作为所述第一拥塞窗口;将所述TCP数据包以所述第一拥塞窗口进行发送。
- 根据权利要求1所述的方法,其特征在于,所述第二算法中所确定的拥塞窗口的增长步幅与所述目标吞吐率正相关、与所述第一往返时延负相关,所述第一算法中所确定的拥塞窗口的增长步幅与所述第一往返时延负相关。
- 根据权利要求1或2所述的方法,其特征在于,所述目标吞吐率根据从所述TCP数据包的报文中解析出的所述业务的比特率确定。
- 根据权利要求3所述的方法,其特征在于,所述目标吞吐率根据从所述TCP数据包的报文中解析出的所述业务的比特率确定的算法为:所述目标吞吐率等于所述业务的比特率乘以扩大系数,其中,所述扩大系数大于1。
- 根据权利要求1至4任一项所述的方法,其特征在于,所述方法还包括:如果在发送所述TCP数据包的过程中发生丢包,则按照第三算法将所述TCP数据包传输的拥塞窗口调整为第二拥塞窗口,其中,所述第二拥塞窗口根据所述TCP数据包发生丢包时的第三往返时延确定,且所述TCP数据包传输的拥塞窗口调整为第二拥 塞窗口的降低步幅与所述第三往返时延负相关;将所述TCP数据包以所述第二拥塞窗口进行发送。
- 根据权利要求5所述的方法,其特征在于,所述按照第三算法将所述TCP数据包传输的拥塞窗口调整为第二拥塞窗口,具体包括:如果所述第三往返时延等于时延区间的下限,则将所述TCP数据包发生丢包时的拥塞窗口作为所述第二拥塞窗口,如果所述第三往返时延等于所述时延区间的上限,则将预设的拥塞窗口作为所述第二拥塞窗口,其中,所述时延区间的上限为在所述网络中所述TCP的超时重传RTO,所述时延区间的下限为在所述网络轻载时的往返时延。
- 根据权利要求1至6任一项所述的方法,其特征在于,所述以第一算法确定的拥塞窗口作为第一拥塞窗口,具体包括:若所述第一往返时延等于所述网络轻载的往返时延,将拥塞窗口的增长步幅取值为快速恢复值来获得所述第一拥塞窗口,所述快速恢复值与慢启动的数量级相同;若所述第一往返时延等于所述网络中所述TCP的超时重传RTO,将拥塞窗口的增长步幅取值为1个最大报文段长度MSS来获得所述第一拥塞窗口;若所述第一往返时延在所述网络轻载的往返时延和所述网络中所述TCP的超时重传RTO区间变化时,将拥塞窗口的增长步幅取值在1个MSS和所述快速恢复值之间且与所述第一往返时延负相关来获得所述第一拥塞窗口。
- 根据权利要求1至7任一项所述的方法,其特征在于,所述以第二算法确定的拥塞窗口作为所述第一拥塞窗口,具体包括:根据所述目标吞吐率和所述第一往返时延计算目标窗口,将所述拥塞窗口的增长步幅取值为所述目标窗口与在所述网络所述TCP的当前拥塞窗口的差值来确定所述第一拥塞窗口。
- 根据权利要求1至8任一项所述的方法,其特征在于,所述方法还包括:检测在所述网络发送所述TCP数据包的实际吞吐率;如果所述实际吞吐率与所述目标吞吐率的比值大于第一阈值、且所述网络发送所述 TCP数据包的第四往返时延与网络轻载时检测到的往返时延的差值小于第二阈值,则增大所述目标吞吐率;如果所述实际吞吐率与所述目标吞吐率的比值小于第三阈值、且所述第四往返时延与所述网络轻载时检测到的往返时延的差值大于第四阈值,则减小所述目标吞吐率。
- 根据权利要求1至9任一项所述的方法,其特征在于,所述目标吞吐率通过目标吞吐率参数传递到TCP协议栈中。
- 一种传输控制协议TCP数据包的发送装置,其特征在于,所述装置包括:时延确定单元,用于获取在网络中发送TCP数据包的第一往返时延,确定第二往返时延,所述第二往返时延为按照第一算法确定的拥塞窗口与按照第二算法确定的拥塞窗口具有同等大小时的往返时延,其中,所述第一算法根据所述第一往返时延确定拥塞窗口的增长步幅,所述第二算法根据所述第一往返时延和目标吞吐率确定拥塞窗口的增长步幅,所述目标吞吐率为所述TCP数据包对应的业务所期望获得的吞吐率;窗口调整单元,用于如果所述第一往返时延大于所述第二往返时延,则以第一算法确定的拥塞窗口作为第一拥塞窗口,如果所述第一往返时延小于或等于所述第二往返时延,则以第二算法确定的拥塞窗口作为所述第一拥塞窗口;数据包发送单元,用于将所述TCP数据包以所述第一拥塞窗口进行发送。
- 根据权利要求11所述的装置,其特征在于,所述第二算法中所确定的拥塞窗口的增长步幅与所述目标吞吐率正相关、与所述第一往返时延负相关,所述第一算法中所确定的拥塞窗口的增长步幅与所述第一往返时延负相关。
- 根据权利要求11或12所述的装置,其特征在于,所述目标吞吐率根据从所述TCP数据包的报文中解析出的所述业务的比特率确定。
- 根据权利要求13所述的装置,其特征在于,所述目标吞吐率根据从所述TCP数据包的报文中解析出的所述业务的比特率确定的算法为:所述目标吞吐率等于所述业务的比特率乘以扩大系数,其中,所述扩大系数大于1。
- 根据权利要求11至14任一项所述的装置,其特征在于,所述窗口调整单元,还用于如果在发送所述TCP数据包的过程中发生丢包,则按照第三算法将所述TCP数据包传输的拥塞窗口调整为第二拥塞窗口,其中,所述第二拥塞窗口根据所述TCP数据包发生丢包时的第三往返时延确定,且所述TCP数据包传输的拥塞窗口调整为第二拥塞窗口的降低步幅与所述第三往返时延负相关;所述数据包发送单元,还用于将所述TCP数据包以所述第二拥塞窗口进行发送。
- 根据权利要求15所述的装置,其特征在于,所述窗口调整单元,还用于按照第三算法将所述TCP数据包传输的拥塞窗口调整为第二拥塞窗口,具体为:所述窗口调整单元,用于如果所述第三往返时延等于时延区间的下限,则将所述TCP数据包发生丢包时的拥塞窗口作为所述第二拥塞窗口,如果所述第三往返时延等于所述时延区间的上限,则将预设的拥塞窗口作为所述第二拥塞窗口,其中,所述时延区间的上限为在所述网络中所述TCP的超时重传RTO,所述时延区间的下限为在所述网络轻载时的往返时延。
- 根据权利要求11至16任一项所述的装置,其特征在于,所述窗口调整单元,用于以第一算法确定的拥塞窗口作为第一拥塞窗口,具体包括:所述窗口调整单元,用于若所述第一往返时延等于所述网络轻载的往返时延,将拥塞窗口的增长步幅取值为快速恢复值来获得所述第一拥塞窗口,所述快速恢复值与慢启动的数量级相同;所述窗口调整单元,用于若所述第一往返时延等于所述网络中所述TCP的超时重传RTO,将拥塞窗口的增长步幅取值为1个最大报文段长度MSS来获得所述第一拥塞窗口;所述窗口调整单元,用于若所述第一往返时延在所述网络轻载的往返时延和所述网络中所述TCP的超时重传RTO区间变化时,将拥塞窗口的增长步幅取值在1个MSS和所述快速恢复值之间且与所述第一往返时延负相关来获得所述第一拥塞窗口。
- 根据权利要求11至17任一项所述的装置,其特征在于,所述窗口调整单元,用于以第二算法确定的拥塞窗口作为所述第一拥塞窗口,具体为:所述窗口调整单元,用于根据所述目标吞吐率和所述第一往返时延计算目标窗口,将所述拥塞窗口的增长步幅取值为所述目标窗口与在所述网络所述TCP的当前拥塞窗口的差值来确定所述第一拥塞窗口。
- 根据权利要求11至18任一项所述的装置,其特征在于,所述装置还包括:吞吐率检测单元,用于检测在所述网络发送所述TCP数据包的实际吞吐率;目标吞吐率调整单元,用于如果所述实际吞吐率与所述目标吞吐率的比值大于第一阈值、且所述网络发送所述TCP数据包的第四往返时延与网络轻载时检测到的往返时延的差值小于第二阈值,则增大所述目标吞吐率,如果所述实际吞吐率与所述目标吞吐率的比值小于第三阈值、且所述第四往返时延与所述网络轻载时检测到的往返时延的差值大于第四阈值,则减小所述目标吞吐率。
- 根据权利要求11至19任一项所述的装置,其特征在于,所述目标吞吐率通过目标吞吐率参数传递到TCP协议栈中。
- 一种传输控制协议TCP数据包的发送装置,其特征在于,所述发送装置包括处理器、存储器和网络接口,所述处理器分别与所述存储器和所述网络接口通过所述总线连接;所述存储器用于存储计算机执行指令,当所述发送装置运行时,所述处理器读取所述存储器存储的所述计算机执行指令,以执行权利要求1至10任一项所述的传输控制协议TCP数据包的发送方法。
- 一种系统,所述系统包括服务器和终端,所述服务器通过网络与所述终端通信连接,其特征在于,所述服务器为权利要求11至21任一项所述的传输控制协议TCP数据包的发送装置,通过所述网络向所述终端发送TCP数据包。
- 一种系统,所述系统包括服务器、第一代理设备和终端,所述第一代理设备分别与所述服务器和所述终端通信连接;其特征在于,所述服务器,用于经所述第一代理设备代理向所述终端发送TCP数据包;所述第一代理设备为权利要求11至21任一项所述的传输控制协议TCP数据包的发送装置,用于接收所述服务器向所述终端发送的所述TCP数据包,并代理所述服务器向所述终端发送所述TCP数据包。
- 根据权利要求23所述的系统,其特征在于,所述终端,用于将目标吞吐率通过目标吞吐率参数由所述终端的TCP协议栈传递给所述第一代理设备的TCP协议栈。
- 一种系统,所述系统包括服务器、第一代理设备、第二代理设备和终端,所述第一代理设备分别与服务器和第二代理设备通信连接;其特征在于,所述服务器,用于经所述第一代理设备代理向所述终端发送TCP数据包;所述第一代理设备为权利要求11至21任一项所述的传输控制协议TCP数据包的发送装置,用于接收所述服务器向所述终端发送的所述TCP数据包,并代理所述服务器向所述第二代理设备发送所述TCP数据包;所述第二代理设备,用于接收所述TCP数据包并转发至所述终端。
- 根据权利要求23所述的系统,其特征在于,所述终端,用于将目标吞吐率通过目标吞吐率参数由所述终端的TCP协议栈中传递给所述第二代理设备的TCP协议栈中;所述第二代理设备,还用于将所述目标吞吐率通过所述目标吞吐率参数由所述第二代理设备的TCP协议栈中传递给所述第一代理设备的TCP协议栈中。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017546188A JP6526825B2 (ja) | 2015-03-02 | 2015-12-28 | 伝送制御プロトコルtcpデータパケットを送信する方法及び装置、並びにシステム |
EP15883836.7A EP3255847B1 (en) | 2015-03-02 | 2015-12-28 | Transmission control protocol data packet transmission method, transmission device and system |
KR1020177027525A KR102030574B1 (ko) | 2015-03-02 | 2015-12-28 | 전송 제어 프로토콜(tcp) 데이터 패킷을 송신하는 방법 및 장치 그리고 시스템 |
US15/694,581 US10367922B2 (en) | 2015-03-02 | 2017-09-01 | Method and apparatus for sending transmission control protocol TCP data packet and system |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510093011.3A CN105991462B (zh) | 2015-03-02 | 2015-03-02 | 传输控制协议tcp数据包的发送方法、发送装置和系统 |
CN201510093011.3 | 2015-03-02 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/694,581 Continuation US10367922B2 (en) | 2015-03-02 | 2017-09-01 | Method and apparatus for sending transmission control protocol TCP data packet and system |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2016138786A1 true WO2016138786A1 (zh) | 2016-09-09 |
Family
ID=56849185
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2015/099278 WO2016138786A1 (zh) | 2015-03-02 | 2015-12-28 | 传输控制协议tcp数据包的发送方法、发送装置和系统 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10367922B2 (zh) |
EP (1) | EP3255847B1 (zh) |
JP (1) | JP6526825B2 (zh) |
KR (1) | KR102030574B1 (zh) |
CN (1) | CN105991462B (zh) |
WO (1) | WO2016138786A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113271316A (zh) * | 2021-06-09 | 2021-08-17 | 腾讯科技(深圳)有限公司 | 多媒体数据的传输控制方法和装置、存储介质及电子设备 |
CN115022247A (zh) * | 2022-06-02 | 2022-09-06 | 成都卫士通信息产业股份有限公司 | 流控制传输方法、装置、设备及介质 |
CN115514710A (zh) * | 2022-11-08 | 2022-12-23 | 中国电子科技集团公司第二十八研究所 | 一种基于自适应滑动窗的弱连接流量管控方法 |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102363534B1 (ko) * | 2015-06-08 | 2022-02-17 | 삼성전자주식회사 | 통신 시스템에서 tcp 기반의 전송 제어 방법 및 장치 |
CN105827537B (zh) * | 2016-06-01 | 2018-12-07 | 四川大学 | 一种基于quic协议的拥塞改进方法 |
WO2018041366A1 (en) * | 2016-09-02 | 2018-03-08 | Telefonaktiebolaget Lm Ericsson (Publ) | Tcp proxy using a communication distance indicator |
CN108023686B (zh) * | 2016-11-02 | 2022-03-25 | 中兴通讯股份有限公司 | 一种tcp延时处理方法、装置及系统 |
CN106713432B (zh) * | 2016-12-13 | 2019-11-05 | 深信服科技股份有限公司 | 数据缓存方法及网络代理设备 |
CN109274704B (zh) * | 2017-07-17 | 2021-06-29 | 中国电信股份有限公司 | Tcp加速方法和装置、加速效果判断控制器和网关 |
CN109510801B (zh) * | 2017-09-15 | 2021-08-31 | 北京华耀科技有限公司 | 显式正向代理与ssl侦听集成系统及其运行方法 |
CN108075988A (zh) * | 2017-11-16 | 2018-05-25 | 华为技术有限公司 | 数据传输方法和装置 |
CN111010261A (zh) * | 2018-10-08 | 2020-04-14 | 西安旌旗电子股份有限公司 | 智能远控水表系统及其方法 |
US11082883B2 (en) * | 2018-12-20 | 2021-08-03 | Verizon Patent And Licensing Inc. | Providing passive bandwidth estimation of a wireless link in a transmission control protocol (TCP) slow start state |
CN110138608B (zh) * | 2019-05-09 | 2022-08-30 | 网宿科技股份有限公司 | 网络业务服务质量管理的方法及服务器 |
CN110120921B (zh) * | 2019-05-13 | 2022-07-01 | 深圳市赛为智能股份有限公司 | 拥塞避免方法、装置、计算机设备及存储介质 |
US10999206B2 (en) * | 2019-06-27 | 2021-05-04 | Google Llc | Congestion control for low latency datacenter networks |
US11329922B2 (en) * | 2019-12-31 | 2022-05-10 | Opanga Networks, Inc. | System and method for real-time mobile networks monitoring |
CN117676695A (zh) * | 2020-02-19 | 2024-03-08 | 航天恒星科技有限公司 | Tcp传输方法、装置和系统 |
CN111404783B (zh) * | 2020-03-20 | 2021-11-16 | 南京大学 | 一种网络状态数据采集方法及其系统 |
CN113556213B (zh) * | 2020-04-23 | 2022-12-06 | 华为技术有限公司 | 超时重传时间rto确定方法及相关装置 |
EP3907943B1 (en) * | 2020-05-05 | 2022-04-27 | Axis AB | Round-trip estimation |
US11483249B2 (en) * | 2020-09-29 | 2022-10-25 | Edgecast Inc. | Systems and methods for dynamic optimization of network congestion control |
CN112511451B (zh) * | 2020-11-24 | 2022-11-08 | 南京邮电大学 | 控制bbr收敛周期长度的方法及服务器 |
CN112702362B (zh) * | 2021-03-24 | 2021-06-08 | 北京翼辉信息技术有限公司 | Tcp/ip协议栈的增强方法、装置、电子设备及存储介质 |
CN114268988B (zh) * | 2021-12-30 | 2022-10-21 | 广州爱浦路网络技术有限公司 | 基于5g的低轨卫星拥塞控制方法、系统、装置及介质 |
CN114401224B (zh) * | 2022-01-19 | 2023-07-11 | 平安科技(深圳)有限公司 | 一种数据限流方法、装置、电子设备以及存储介质 |
CN115766519A (zh) * | 2022-10-24 | 2023-03-07 | 株洲华通科技有限责任公司 | 便携通信设备的数据传输方法及系统 |
CN116055402A (zh) * | 2023-01-05 | 2023-05-02 | 果子(青岛)数字技术有限公司 | 用于大数据和边缘计算的高速通信网络优化方法和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1836418A (zh) * | 2003-08-14 | 2006-09-20 | 国际商业机器公司 | 分组重新排序期间的改进的传输控制协议性能 |
US20090073975A1 (en) * | 2007-09-19 | 2009-03-19 | Nec Corporation | Communication method and communication device |
US20120213069A1 (en) * | 2011-02-23 | 2012-08-23 | Fujitsu Limited | Transmission control method, transmission control system, communication device and recording medium of transmission control program |
CN102739515A (zh) * | 2010-04-13 | 2012-10-17 | 北京英华高科科技有限公司 | 异构网络的tcp拥塞控制 |
US20150049611A1 (en) * | 2005-11-30 | 2015-02-19 | Cisco Technology, Inc. | Transmission control protocol (tcp) congestion control using transmission delay components |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7423977B1 (en) * | 2004-08-23 | 2008-09-09 | Foundry Networks Inc. | Smoothing algorithm for round trip time (RTT) measurements |
WO2009146726A1 (en) * | 2008-06-06 | 2009-12-10 | Telefonaktiebolaget Lm Ericsson (Publ) | Technique for improving congestion control |
US8877880B2 (en) * | 2010-11-17 | 2014-11-04 | Exxonmobil Chemical Patents Inc. | Method for controlling polyolefin properties |
KR102016446B1 (ko) * | 2011-12-28 | 2019-10-21 | 씨디에프 케 유안 | 지연이 큰 네트워크들에 대한 tcp 혼잡 제어 |
JP5867160B2 (ja) * | 2012-02-28 | 2016-02-24 | 富士通株式会社 | 通信制御装置、通信制御方法および通信制御プログラム |
US8711690B2 (en) * | 2012-10-03 | 2014-04-29 | LiveQoS Inc. | System and method for a TCP mapper |
JP6173826B2 (ja) | 2013-08-07 | 2017-08-02 | 日本放送協会 | パケット送信装置およびそのプログラム |
CN104158760B (zh) | 2014-08-29 | 2018-08-03 | 中国科学技术大学 | 一种广域网tcp单边加速的方法及系统 |
-
2015
- 2015-03-02 CN CN201510093011.3A patent/CN105991462B/zh active Active
- 2015-12-28 JP JP2017546188A patent/JP6526825B2/ja active Active
- 2015-12-28 WO PCT/CN2015/099278 patent/WO2016138786A1/zh active Application Filing
- 2015-12-28 EP EP15883836.7A patent/EP3255847B1/en active Active
- 2015-12-28 KR KR1020177027525A patent/KR102030574B1/ko active IP Right Grant
-
2017
- 2017-09-01 US US15/694,581 patent/US10367922B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1836418A (zh) * | 2003-08-14 | 2006-09-20 | 国际商业机器公司 | 分组重新排序期间的改进的传输控制协议性能 |
US20150049611A1 (en) * | 2005-11-30 | 2015-02-19 | Cisco Technology, Inc. | Transmission control protocol (tcp) congestion control using transmission delay components |
US20090073975A1 (en) * | 2007-09-19 | 2009-03-19 | Nec Corporation | Communication method and communication device |
CN102739515A (zh) * | 2010-04-13 | 2012-10-17 | 北京英华高科科技有限公司 | 异构网络的tcp拥塞控制 |
US20120213069A1 (en) * | 2011-02-23 | 2012-08-23 | Fujitsu Limited | Transmission control method, transmission control system, communication device and recording medium of transmission control program |
Non-Patent Citations (1)
Title |
---|
CARDONA, E. ET AL.: "A Uniform Resource Name (URN) Namespace for CableLabs", INTERNET ENGINEERING TASK FORCE (IETF), REQUEST FOR COMMENCE: 6289, 30 June 2011 (2011-06-30), XP015076065, ISSN: 2070-1721 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113271316A (zh) * | 2021-06-09 | 2021-08-17 | 腾讯科技(深圳)有限公司 | 多媒体数据的传输控制方法和装置、存储介质及电子设备 |
CN115022247A (zh) * | 2022-06-02 | 2022-09-06 | 成都卫士通信息产业股份有限公司 | 流控制传输方法、装置、设备及介质 |
CN115022247B (zh) * | 2022-06-02 | 2023-10-20 | 成都卫士通信息产业股份有限公司 | 流控制传输方法、装置、设备及介质 |
CN115514710A (zh) * | 2022-11-08 | 2022-12-23 | 中国电子科技集团公司第二十八研究所 | 一种基于自适应滑动窗的弱连接流量管控方法 |
CN115514710B (zh) * | 2022-11-08 | 2023-03-10 | 中国电子科技集团公司第二十八研究所 | 一种基于自适应滑动窗的弱连接流量管控方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105991462A (zh) | 2016-10-05 |
KR20170121269A (ko) | 2017-11-01 |
JP6526825B2 (ja) | 2019-06-05 |
CN105991462B (zh) | 2019-05-28 |
EP3255847A4 (en) | 2018-02-28 |
KR102030574B1 (ko) | 2019-10-10 |
JP2018508151A (ja) | 2018-03-22 |
EP3255847A1 (en) | 2017-12-13 |
US20170366650A1 (en) | 2017-12-21 |
US10367922B2 (en) | 2019-07-30 |
EP3255847B1 (en) | 2020-08-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2016138786A1 (zh) | 传输控制协议tcp数据包的发送方法、发送装置和系统 | |
US10462707B2 (en) | Data transmission method and apparatus | |
Briscoe et al. | Reducing internet latency: A survey of techniques and their merits | |
US10715282B2 (en) | Method and related device for improving TCP transmission efficiency using delayed ACK | |
US9444749B2 (en) | Apparatus and method for selectively delaying network data flows | |
US10560382B2 (en) | Data transmission method and apparatus | |
US20180349803A1 (en) | Dynamically optimized transport system | |
US11088957B2 (en) | Handling of data packet transfer via a proxy | |
US11496403B2 (en) | Modifying the congestion control algorithm applied to a connection based on request characteristics | |
Shen et al. | On TCP-based SIP server overload control | |
JP2010504688A (ja) | ネットワーク・プロトコルスタックのハンドオフおよび最適化を実装するための方法およびモジュール | |
CN104683259A (zh) | Tcp拥塞控制方法及装置 | |
Mudambi et al. | A transport protocol for dedicated end-to-end circuits | |
CN108337171B (zh) | 与dtn网络兼容的ip分组转发方法、网络节点及存储介质 | |
US10015288B2 (en) | Communication apparatus and control method of communication apparatus | |
Nikitinskiy et al. | A stateless transport protocol in software defined networks | |
Ahsan et al. | Performace evaluation of TCP cubic, compound TCP and NewReno under Windows 20H1, via 802.11 n Link to LTE Core Network | |
Xie et al. | NLPC: A nimble low-priority congestion control algorithm for high-speed and lossy networks | |
Ogura et al. | Congestion Control with Two Fair Allocation Modes to Achieve RTT-Fairness | |
Tekala et al. | Dynamic adapting of Scalable TCP congestion control parameters | |
Davern et al. | Optimising Internet Access over Satellite Backhaul | |
Tullimalli | Multimedia streaming using multiple TCP connections |
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: 15883836 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2017546188 Country of ref document: JP Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
REEP | Request for entry into the european phase |
Ref document number: 2015883836 Country of ref document: EP |
|
ENP | Entry into the national phase |
Ref document number: 20177027525 Country of ref document: KR Kind code of ref document: A |