IP Library Granted Patent US 8,705,357
Granted Patent B2
US 8,705,357 · App. 13/306,214 · Granted Apr 22, 2014

Method and system for controlling TCP traffic with random early detection and window size adjustments

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 8,705,357
App. No.
13/306,214
Granted
Apr 22, 2014
Kind
B2
Abstract

A method for controlling data traffic with random early detection and window size adjustments including performing random early detection on incoming data packets, calculating a simple moving average of packet dropping probabilities for the data packets as calculated when performing random early detection, decreasing an advertised window size if the simple moving average is greater than a probability target plus a tolerance factor, increasing the advertised window size if the simple moving average is less than the probability target minus a tolerance factor, and not adjusting the window size if the simple moving average is not greater than a probability target plus a tolerance factor and not less than a probability target minus a tolerance factor.

Claims (164)

1. A method for controlling data traffic with random early detection and window size adjustments comprising:

performing random early detection on incoming data packets;

calculating a simple moving average of packet dropping probabilities for the data packets;

decreasing an advertised window size if the simple moving average is greater than a probability target plus a tolerance factor;

increasing the advertised window size if the simple moving average is less than the probability target minus a tolerance factor; and

not adjusting the window size if the simple moving average is not greater than a probability target plus a tolerance factor and not less than a probability target minus a tolerance factor.

2. The method of claim 1 , wherein performing random early detection on incoming data packets comprises:

calculating an average aggregate queue size;

calculating an average link capacity;

estimating an average queuing delay using the average aggregate queue size and the average link capacity;

enqueuing an incoming data packet and setting the packet dropping probability for the incoming data packet to 1 if the average queuing delay is less than a delay minimum;

dropping the incoming data packet and setting the packet dropping probability for the incoming data packet to 0 if the average queuing delay is greater than a delay maximum; and

calculating the packet dropping probability for the packet if the average queuing delay is not less than the delay minimum and not greater than the delay maximum and using the packet dropping probability to determine if the packet should be dropped.

3. The method of claim 2 , wherein the average aggregate queue size is calculated according to:

Q ( t )= aQ ( t )+(1 −a ) {circumflex over (Q)} ( t− 1)

wherein Q(t) is the summation of queue size of each flow queried at the beginning of a scheduling period, a is a forgetting factor wherein 0<a≦1, {circumflex over (Q)}(t) is the average aggregate queue size, and t is a time tick of a scheduling clock.

4. The method of claim 2 , wherein the average link capacity is calculated according to:

Ĉ ( t )= bC ( t )+(1 −b ) Ĉ ( t− 1)

wherein C(t) is the instant offered capacity at time t, t is a time tick of a scheduling clock, b is a forgetting factor wherein 0<b≦1, and Ĉ(t) is the average link capacity.

5. The method of claim 2 , wherein the average queuing delay is calculated according to:

{circumflex over (D)} ( t )=α D ( t )+(1−α) {circumflex over (D)} ( t− 1)

wherein D(t)={circumflex over (Q)}(t)Ĉ(t), Ĉ(t) is the average link capacity, {circumflex over (Q)}(t) is the average aggregate queue size, t is a time tick of a scheduling clock, and α is a forgetting factor wherein 0<α≦1.

6. The method of claim 2 , where the packet dropping probability of the incoming data packet when the average queuing delay is not less than the delay minimum and not greater than the delay maximum is calculated according to

P

RED

=

(

P

max

-

P

min

)

·

D

^

(

t

)

-

D_min

D_max

-

D_min

wherein P max is the maximum dropping probability wherein 0≦P max ≦1, P min is the minimum packet dropping probability, D_min is the delay minimum, D_max is the delay maximum, {circumflex over (D)}(t) is the average queuing delay, t is a time tick of a scheduling clock, and P RED is the packet dropping probability.

7. The method of claim 1 , wherein the simple moving average is calculated according to:

P

RED

,

SMA

=

t

0

=

1

K

P

RED

(

t

-

t

0

+

1

)

K

wherein K is the number of samples used for the simple moving average, P RED is the packet dropping probability for an incoming data packet, t is a time tick of a scheduling clock, and P RED,SMA is the simple moving average.

8. The method of claim 1 , wherein the incoming data packets are TCP packets.

9. A system for controlling data traffic with random early detection and window size adjustments comprising:

an IP gateway connected to a gateway;

wherein the IP gateway is configured to receive incoming data packets from packet sources,

perform random early detection on the incoming data packets,

calculate a simple moving average of packet dropping probabilities for the incoming data packets, wherein the packet dropping probabilities are calculated by the IP gateway performing random early detection,

decrease a size of a window advertised to the packet sources if the simple moving average is greater than a probability target plus a tolerance factor,

increase the size of the window advertised to the packet sources if the simple moving average is less than the probability target minus a tolerance factor, and

not adjust the size of the window if the simple moving average is not greater than a probability target plus a tolerance factor and not less than a probability target minus a tolerance factor.

10. The system of claim 9 , wherein the IP gateway is configured to perform random early detection on the incoming data packets by

calculating an average aggregate queue size at the IP gateway;

calculating an average link capacity of the IP gateway;

estimating an average queuing delay using the average aggregate queue size and the average link capacity;

enqueuing an incoming data packet to be transmitted and setting the packet dropping probability for the incoming data packet to 1 if the average queuing delay is less than a delay minimum;

dropping the incoming data packet and setting the packet dropping probability for the incoming data packet to 0 if the average queuing delay is greater than a delay maximum; and

calculating the packet dropping probability for the packet if the average queuing delay is not less than the delay minimum and not greater than the delay maximum and using the packet dropping probability to determine if the packet should be dropped.

11. The system of claim 10 , wherein the average aggregate queue size is calculated according to:

{circumflex over (Q)} ( t )= aQ ( t )+(1 −a ) {circumflex over (Q)} ( t− 1)

wherein Q(t) is the summation of queue size of each flow queried at the beginning of a scheduling period, a is a forgetting factor wherein 0<a≦1, {circumflex over (Q)}(t) is the average aggregate queue size, and t is a time tick of a scheduling clock.

12. The system of claim 10 , wherein the average link capacity is calculated according to:

Ĉ ( t )= bC ( t )+(1 −b ) Ĉ ( t− 1)

wherein C(t) is the instant offered capacity at time t, t is a time tick of a scheduling clock, b is a forgetting factor wherein 0<b≦1, and Ĉ(t) is the average link capacity.

13. The system of claim 10 , wherein the average queuing delay is calculated according to:

{circumflex over (D)} ( t )=α D ( t )+(1−α) {circumflex over (D)} ( t− 1)

wherein D(t)={circumflex over (Q)}(t)Ĉ(t), Ĉ(t) is the average link capacity, {circumflex over (Q)}(t) is the average aggregate queue size, t is a time tick of a scheduling clock, and α is a forgetting factor wherein 0<α≦1.

14. The system of claim 10 , where the packet dropping probability of the incoming data packet when the average queuing delay is not less than the delay minimum and not greater than the delay maximum is calculated according to

P

RED

=

(

P

max

-

P

min

)

·

D

^

(

t

)

-

D_min

D_max

-

D_min

wherein P max is the maximum dropping probability wherein 0≦P max ≦1, P min is the minimum packet dropping probability, D_min is the delay minimum, D_max is the delay maximum, {circumflex over (D)}(t) is the average queuing delay, t is a time tick of a scheduling clock, and P RED is the packet dropping probability.

15. The system of claim 9 , wherein the simple moving average is calculated according to:

P

RED

,

SMA

=

t

0

=

1

K

P

RED

(

t

-

t

0

+

1

)

K

wherein K is the number of samples used for the simple moving average, P RED is the packet dropping probability for an incoming data packet, t is a time tick of a scheduling clock, and P RED,SMA is the simple moving average.

16. The system of claim 9 , wherein the incoming data packets are TCP packets.

17. A system for controlling data traffic with random early detection and window size adjustments comprising:

a terminal;

wherein the terminal is configured to receive incoming data packets from packet sources,

perform random early detection on the incoming data packets,

calculate a simple moving average of packet dropping probabilities for the incoming data packets, wherein the packet dropping probabilities are calculated by an IP gateway performing random early detection,

decrease a size of a window advertised to the packet sources if the simple moving average is greater than a probability target plus a tolerance factor,

increase the size of the window advertised to the packet sources if the simple moving average is less than the probability target minus a tolerance factor, and

not adjust the size of the window if the simple moving average is not greater than a probability target plus a tolerance factor and not less than a probability target minus a tolerance factor.

Assignments (5)
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION NUMBER 15649418 PREVIOUSLY RECORDED ON REEL 050600 FRAME 0314. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT OF PATENT SECURITY AGREEMENTS. Recorded Sep 3, 2020
From: WELLS FARGO, NATIONAL BANK ASSOCIATION
To: U.S. BANK NATIONAL ASSOCIATION
Reel/Frame 053703/0367 →
ASSIGNMENT OF PATENT SECURITY AGREEMENTS Recorded Oct 1, 2019
From: WELLS FARGO BANK, NATIONAL ASSOCIATION
To: U.S. BANK NATIONAL ASSOCIATION
Reel/Frame 050600/0314 →
SECURITY INTEREST Recorded Feb 19, 2015
From: HUGHES NETWORK SYSTEMS LLC
To: WELLS FARGO BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 034989/0218 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 16, 2014
From: TORRES, ROBERT; BORDER, JOHN; STEVENS, PATRICK; XU, JUN; JONG, JE-HONG
To: HUGHES NETWORK SYSTEMS, LLC
Reel/Frame 034517/0825 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 30, 2011
From: TORRES, ROBERT; BORDER, JOHN; STEVENS, PAT; XU, JUN; JONG, JE-HONG
To: HUGHES NETWORKS SYSTEMS, LLC
Reel/Frame 027305/0096 →