IP Library › Granted Patent US 10,361,963
Granted Patent B2
US 10,361,963 · App. 15/150,778 · Granted Jul 23, 2019

Controlling a congestion window size

Inventors: Feng Li (Lexington, MA); Jae Won Chung (Lexington, MA); Haim S. Ner (Fair Lawn, NJ); Eduard Rubinshtein (Belmont, MA)
Assignee: Verizon Patent and Licensing Inc.
H04L47/27H04L43/0829H04L43/0864H04L43/16H04L47/30H04L69/16
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,361,963
App. No.
15/150,778
Granted
Jul 23, 2019
Kind
B2
Abstract

A device may determine one or more round-trip time threshold values and may determine a round-trip time value associated with a flow. The device may determine a smoothed round-trip time value based on the one or more round-trip time threshold values and the round-trip time value. The device may determine a congestion window threshold value based on the smoothed round-trip time value and may determine a congestion window value based on the congestion window threshold value. The device may provide traffic associated with the flow based on the congestion window value.

Claims (113)

1. A device, comprising:

a memory; and

one or more processors to:

determine a plurality of round-trip time threshold values,

the plurality of round-trip time threshold values including a high round-trip time threshold value and a low round-trip time threshold value;

determine a round-trip time value and a first smoothed round-trip time value,

the round-trip time value and the first smoothed round-trip time value being associated with a flow,

the flow being associated with the device and a user device;

determine one or more weight values,

the one or more weight values including one or more of:

a weight value based on comparing the round-trip time value to a round-trip time pass filter threshold value,

a weight value based on comparing the first smoothed round-trip time value to the high round-trip time threshold value, or

a weight value based on comparing the first smoothed round-trip time value to the low round-trip time threshold value;

determine a second smoothed round-trip time value based on the plurality of round-trip time threshold values, the round-trip time value, the first smoothed round-trip time value, and the one or more weight values;

determine a congestion window threshold value based on the second smoothed round-trip time value and at least one congestion window limit,

a congestion window limit, from the at least one congestion window limit, including a value associated with an advertise receive window associated with the user device;

determine a congestion window value based on the congestion window threshold value and the at least one congestion window limit; and

provide traffic associated with the flow based on the congestion window value.

2. The device of claim 1 , where the one or more processors are further to:

compare the second smoothed round-trip time value and the plurality of round-trip time threshold values; and

where the one or more processors, when determining the congestion window threshold value, are further to:

determine the congestion window threshold value based on comparing the second smoothed round-trip time value and the plurality of round-trip time threshold values.

3. The device of claim 1 , where the one or more processors are further to:

detect a packet loss associated with the flow; and

adjust the congestion window value to a different congestion window value based on detecting the packet loss.

4. The device of claim 1 , where the one or more processors are further to:

determine another congestion window value;

detect a retransmission timeout associated with the flow; and

adjust the other congestion window value to match the congestion window value based on detecting the retransmission timeout.

5. The device of claim 1 , where the one or more processors are further to:

determine that a quantity of packets associated with a first buffer satisfies a threshold; and

increase a receive window value based on determining that the quantity of packets associated with the first buffer satisfies the threshold,

the receive window value being associated with a second buffer.

6. The device of claim 1 , where the one or more processors are further to:

provide a first message to the user device;

receive a second message, from the user device, based on providing the first message; and

where the one or more processors, when determining the plurality of round-trip time threshold values, are to:

determine at least one of the plurality of round-trip time threshold values based on receiving the second message.

7. The device of claim 1 , where the one or more processors are further to:

determine a receive window value associated with the user device; and

where the one or more processors, when determining the congestion window threshold value, are to:

determine the congestion window threshold value based on determining the receive window value associated with the user device.

8. A non-transitory computer-readable medium storing instructions, the instructions comprising:

one or more instructions that, when executed by one or more processors of a device, cause the one or more processors to:

determine a high round-trip time threshold value and a low round-trip time threshold value;

determine a round-trip time value and a first smoothed round-trip time value,

the round-trip time value and the first smoothed round-trip time value being associated with a flow,

the flow being associated with the device and a user device;

determine one or more weight values,

the one or more weight values including one or more of:

a weight value based on comparing the round-trip time value to a round trip time pass filter threshold value,

a weight value based on comparing the first smoothed round-trip time value to the high round-trip time threshold value, or

a weight value based on comparing the first smoothed round-trip time value to the low round-trip time threshold value;

determine a second smoothed round-trip time value based on the high round-trip time threshold value, the low round-trip time threshold value, the round-trip time value, the first smoothed round-trip time value, and the one or more weight values;

determine a congestion window threshold value based on the second smoothed round-trip time value and at least one congestion window limit,

a congestion window limit, from the at least one congestion window limit, including a value associated with an advertise receive window associated with the user device;

determine a congestion window value based on the congestion window threshold value and the at least one congestion window limit; and

provide traffic associated with the flow based on the congestion window value.

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:

determine another round-trip time value;

compare the other round-trip time value with a high bound and a low bound associated with the high round-trip time threshold value; and

where the one or more instructions, that cause the one or more processors to determine the high round-trip time threshold value, cause the one or more processors to:

determine the high round-trip time threshold value based on comparing the other round-trip time value with the high bound and the low bound.

10. 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:

compare the second smoothed round-trip time value and the high round-trip time threshold value; and

where the one or more instructions, that cause the one or more processors to determine the congestion window threshold value, cause the one or more processors to:

determine the congestion window threshold value based on comparing the second smoothed round-trip time value and the high round-trip time threshold value.

11. 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:

increase the congestion window value to another congestion window value; and

increase a receive window value based on increasing the congestion window value to the other congestion window value.

12. The non-transitory computer-readable medium of claim 8 , where the flow is a first transmission control protocol flow,

the first transmission control protocol flow being associated with the device and the user device; and

where the one or more instructions, when executed by the one or more processors, further cause the one or more processors to:

cause a second transmission control protocol flow to be established with another device,

the device receiving the traffic from the other device.

13. 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:

determine that a quantity of packets associated with a first buffer satisfies a threshold,

the packets to be provided to the user device; and

increase a receive window value associated with a second buffer based on determining that the quantity of packets associated with the first buffer satisfies the threshold.

14. A method, comprising:

determining, by a device, one or more round-trip time threshold values;

determining, by the device, a round-trip time value and a first smoothed round-trip time value,

the round-trip time value and the first smoothed round-trip time value being associated with a flow;

determining, by the device, one or more weight values,

the one or more weight values including one or more of:

a weight value based on comparing the round-trip time value to a round trip time pass filter threshold value, or

a weight value based on comparing the first smoothed round-trip time value to the one or more round-trip time threshold values;

determining, by the device, a second smoothed round-trip time value based on the one or more round-trip time threshold values, the round-trip time value, the first smoothed round-trip time value, and the one or more weight values;

determining, by the device, a congestion window threshold value based on the second smoothed round-trip time value and at least one congestion window limit,

a congestion window limit, from the at least one congestion window limit, including a value associated with an advertise receive window associated with a user device;

determining, by the device, a congestion window value based on the congestion window threshold value and the at least one congestion window limit; and

providing, by the device, traffic associated with the flow based on the congestion window value.

15. The method of claim 14 , further comprising:

comparing the second smoothed round-trip time value and the one or more round-trip time threshold values; and

where determining the congestion window threshold value based on the second smoothed round-trip time value and at least one congestion window limit comprises:

determining the congestion window threshold value being a high congestion window limit, of the at least one congestion window limit, when the second smoothed round-trip time value is less than a low round-trip time threshold value of the one or more round-trip time threshold values.

16. The method of claim 14 , further comprising:

adjusting a receive window value based on the congestion window value; and

where providing traffic associated with the flow comprises:

providing traffic associated with the flow based on the congestion window value and the receive window value.

17. The method of claim 14 , further comprising:

detecting a retransmission timeout; and

performing a slow-start process based on detecting the retransmission timeout.

18. The method of claim 14 , further comprising:

detecting a packet loss associated with the flow; and

adjusting the congestion window value based on detecting the packet loss.

19. The method of claim 14 , further comprising:

classifying the flow into one or more states; and

where determining the congestion window threshold value comprises:

determining the congestion window threshold value based on classifying the flow into the one or more states.

20. 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:

detect a packet loss associated with the flow; and

set the congestion window value to a value associated with a percentage of the congestion window threshold value based on detecting the packet loss.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 10, 2016
From: LI, FENG; CHUNG, JAE WON; NER, HAIM S.; RUBINSHTEIN, EDUARD
To: VERIZON PATENT AND LICENSING INC.
Reel/Frame 038658/0902 →
Continuity (1)
Related Publication 20170331753A1 · Nov 16, 2017
Cited By (1)
US 12,513,089