P
US10091118B2ActiveUtilityPatentIndex 51

Maximizing throughput over a TCP link by boosting packet transmission

Assignee: VERIZON PATENT & LICENSING INCPriority: Jan 27, 2017Filed: Jan 27, 2017Granted: Oct 2, 2018
Est. expiryJan 27, 2037(~10.6 yrs left)· nominal 20-yr term from priority
Inventors:LI FENGCHUNG JAE WONRubinshtein EduardNER HAIM S
H04W 28/0273H04L 47/283H04W 28/0289H04L 47/27
51
PatentIndex Score
0
Cited by
8
References
20
Claims

Abstract

A device can transmit, to a transmission control protocol (TCP) receiver, a quantity of packets based on a congestion window (CWND) value. The device can receive, from the TCP receiver, a quantity of acknowledgement (ACK) packets, that include a corresponding quantity of advertised receive window (RWND) values, based on transmitting the quantity of packets. The device can determine a maximum value for an updated CWND based on the CWND value and the corresponding quantity of RWND values. The device can provide a quantity of additional packets, to the TCP receiver, based on the maximum value for the updated CWND to cause the TCP receiver to selectively increase a size of a receive buffer.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. A device, comprising:
 one or more processors to:
 transmit, to a transmission control protocol (TCP) receiver, a quantity of packets based on a congestion window (CWND) value; 
 receive, from the TCP receiver, a quantity of acknowledgement (ACK) packets, that include a corresponding quantity of advertised receive window (RWND) values, based on transmitting the quantity of packets; 
 determine a maximum value for an updated CWND based on the CWND value and the corresponding quantity of RWND values; and 
 provide a quantity of additional packets, to the TCP receiver, based on the maximum value for the updated CWND to cause the TCP receiver to selectively increase a size of a receive buffer. 
 
 
     
     
       2. The device of  claim 1 , where the one or more processors are further to:
 receive, from the TCP receiver, a quantity of additional ACK packets, that include a corresponding quantity of additional RWND values,
 the corresponding quantity of additional RWND values to be based on the TCP receiver increasing the size of the receive buffer; and 
 
 determine a new CWND value based on the maximum value for the updated CWND and the corresponding quantity of additional RWND values. 
 
     
     
       3. The device of  claim 1 , where the one or more processors, when determining the maximum value for the updated CWND, are to:
 compare the CWND value and the corresponding quantity of RWND values; 
 determine a greatest value among the CWND value and the corresponding quantity of RWND values based on comparing the CWND value and the corresponding quantity of RWND values; and 
 set the maximum value for the updated CWND to the greatest value. 
 
     
     
       4. The device of  claim 1 , where the one or more processors, when determining the maximum value for the updated CWND, are to:
 compare the CWND value and the corresponding quantity of RWND values; 
 determine that an RWND value, of the corresponding quantity of RWND values, is a greatest value among the CWND value and the corresponding quantity of RWND values based on comparing the CWND value and the corresponding quantity of RWND values; and 
 set the maximum value for the updated CWND to a value equal to the RWND value. 
 
     
     
       5. The device of  claim 4 , where the quantity of additional packets, associated with the maximum value for updated CWND, is greater than the quantity of packets transmitted based on the CWND value. 
     
     
       6. The device of  claim 1 , where the one or more processors, when determining the maximum value for the updated CWND, are to:
 compare the CWND value and the corresponding quantity of RWND values; and 
 determine that the CWND value is a greatest value among the CWND value and the corresponding quantity of RWND values based on comparing the CWND value and the corresponding quantity of RWND values; and 
 set or maintain the maximum value for the updated CWND to a value equal to the CWND value. 
 
     
     
       7. The device of  claim 6 , where the quantity of additional packets, associated with the maximum value for the updated CWND, is equal to the quantity of packets transmitted based on the CWND value. 
     
     
       8. A non-transitory computer-readable medium storing instructions, the instructions comprising:
 one or more instructions that, when executed by one or more processors, cause the one or more processors to:
 determine a congestion window (CWND) value for a transmission control protocol (TCP) flow; 
 transmit, to a TCP receiver, a quantity of packets based on the CWND value; 
 receive, from the TCP receiver, a quantity of acknowledgement (ACK) packets, that include a corresponding quantity of advertised receive window (RWND) values, based on transmitting the quantity of packets; 
 determine an updated CWND value based on the CWND value and the corresponding quantity of RWND values; and 
 provide a quantity of additional packets, to the TCP receiver, based on the updated CWND value to cause the TCP receiver to selectively increase a size of a receive buffer. 
 
 
     
     
       9. The non-transitory computer-readable medium of  claim 8 , where the one or more instructions, when executed by the one or more processors, further cause the one or more processors to:
 receive, from the TCP receiver, a quantity of additional ACK packets, that include a corresponding quantity of additional RWND values,
 the corresponding quantity of additional RWND values to be based on the TCP receiver increasing the size of the receive buffer; 
 
 determine a new CWND value based on the updated CWND value and the corresponding quantity of additional RWND values; and 
 provide, to the TCP receiver, another quantity of additional packets based on the new CWND value,
 the other quantity of additional packets being different from the quantity of additional packets. 
 
 
     
     
       10. The non-transitory computer-readable medium of  claim 8 , where the one or more instructions, that cause the one or more processors to determine the updated CWND value, cause the one or more processors to:
 compare the CWND value and the corresponding quantity of RWND values; and 
 determine the updated CWND value based on comparing the CWND value and the corresponding quantity of RWND values. 
 
     
     
       11. The non-transitory computer-readable medium of  claim 8 , where the one or more instructions, that cause the one or more processors to determine the updated CWND value, cause the one or more processors to:
 compare the CWND value and the corresponding quantity of RWND values, 
 determine that an RWND value, of the corresponding quantity of RWND values, is a maximum value, among the CWND value and the corresponding quantity of RWND values, based on comparing the CWND value and the corresponding quantity of RWND values; and 
 where the one or more instructions, that cause the one or more processors to determine the updated CWND value, cause the one or more processors to:
 set the updated CWND value to a value equal to the RWND value. 
 
 
     
     
       12. The non-transitory computer-readable medium of  claim 11 , where the quantity of additional packets associated with the updated CWND value is greater than the quantity of packets transmitted based on the CWND value. 
     
     
       13. The non-transitory computer-readable medium of  claim 8 , where the one or more instructions, that cause the one or more processors to determine the updated CWND value, cause the one or more processors to:
 compare the CWND value and the corresponding quantity of RWND values, and 
 determine that the CWND value is a greatest value among the CWND value and the corresponding quantity of RWND values based on comparing the CWND value and the corresponding quantity of RWND values; and 
 set the updated CWND value to a value equal to the CWND value. 
 
     
     
       14. The non-transitory computer-readable medium of  claim 8 , where increasing a rate at which the additional packets are provided to the TCP receiver causes throughput over the TCP flow to increase. 
     
     
       15. A method, comprising:
 transmitting, by a device and to a transmission control protocol (TCP) receiver, a quantity of packets based on a congestion window (CWND) value; 
 receiving, by the device and from the TCP receiver, a quantity of acknowledgement (ACK) packets, that include a corresponding quantity of advertised receive window (RWND) values, based on transmitting the quantity of packets; 
 determining, by the device, an updated CWND value as a maximum of the CWND value and the corresponding quantity of RWND values; and 
 providing, by the device, a quantity of additional packets, to the TCP receiver, based on the updated CWND value to cause the TCP receiver to selectively increase a size of a receive buffer associated with a TCP flow involving the device and the TCP receiver. 
 
     
     
       16. The method of  claim 15 , further comprising:
 receiving, from the TCP receiver, a quantity of additional ACK packets that include a corresponding quantity of additional RWND values,
 the corresponding quantity of additional RWND values to be based on the TCP receiver increasing the size of the receive buffer; 
 
 determining a new CWND value as a maximum of the updated CWND value and the corresponding quantity of additional RWND values; and 
 providing, to the TCP receiver, another quantity of additional packets, based on the new CWND value. 
 
     
     
       17. The method of  claim 15 , where determining the updated CWND value comprises:
 comparing the CWND value and the corresponding quantity of RWND values, and 
 determining the updated CWND value, as the maximum of the CWND value and the corresponding quantity of RWND values, based on comparing the CWND value and the corresponding quantity of RWND values. 
 
     
     
       18. The method of  claim 15 , where determining the updated CWND value comprises:
 determining that an RWND value, of the corresponding quantity of RWND values, is a maximum value among the CWND value and the corresponding quantity of RWND values; and 
 where determining the updated CWND value comprises:
 setting the updated CWND value to a value equal to the RWND value. 
 
 
     
     
       19. The method of  claim 15 , where the quantity of additional packets is greater than the quantity of packets transmitted based on the CWND value. 
     
     
       20. The method of  claim 15 , where determining the updated CWND value comprises:
 determining that the CWND value is a maximum value among the CWND value and the corresponding quantity of RWND values; and 
 where determining the updated CWND value comprises:
 using the CWND value as the updated CWND value.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.