TCP rate control with adaptive thresholds
First Claim
1. A method for controlling the transmission of data packets through a network by controlling a Transmission Control Protocol (TCP) rate in a network device having a shared buffer with shared buffer space, the method comprising:
- organizing a forward data buffer into one or more queues that store at least one forward data packet;
calculating the network device'"'"'s advertised window size by;
(1) initializing a timer to a predetermined time interval Δ
t, and an iteration counter to a predetermined initial value n;
(2) sampling a current queue size qi(n) during the predetermined time interval Δ
t;
(3) calculating a current error signal ei(n) based, at least in part, upon the current queue size qi(n);
(4) calculating the network device'"'"'s advertised window size Wi(n), based, at least in part, upon the current error signal ei(n) according to the equation;
Wi(n)=[Wi(n−
1)+α
ei(n)]WminWmax, where α
, Wmax, and Wmin, are predetermined parameters;
(5) resetting the timer, upon expiration of the predetermined interval Δ
t; and
(6) iterating the iteration counter, upon expiration of the predetermined time interval Δ
t;
providing the network device'"'"'s advertised window size to a TCP source; and
calculating a dynamic buffer threshold based, at least in part, upon the sum of the queue sizes and the shared buffer space.
15 Assignments
0 Petitions
Accused Products
Abstract
The TCP receiver'"'"'s advertised window (i.e., the receive buffer of a TCP connection) limits the maximum window and consequently the throughput that can be achieved by the sender. Thus, the idea behind TCP rate control is to match the offered network load to the available resources by modifying at an intermediate network device, the receiver'"'"'s advertised window in TCP acknowledgments returning to the sources. In this disclosure, we propose a new TCP rate control scheme for a shared buffer where the buffer is logically organized into multiple queues. In the scheme, dynamic buffer thresholds are used to ensure efficient and fair usage of buffer memory among the queues. Conventional schemes allocate buffer space to each queue through the use of static buffer thresholds. This can result in unnecessary packet drops which leads to poor network performance since congested or heavily loaded queues cannot gain access to buffers not utilized by lightly loaded queues.
-
Citations
24 Claims
-
1. A method for controlling the transmission of data packets through a network by controlling a Transmission Control Protocol (TCP) rate in a network device having a shared buffer with shared buffer space, the method comprising:
-
organizing a forward data buffer into one or more queues that store at least one forward data packet; calculating the network device'"'"'s advertised window size by; (1) initializing a timer to a predetermined time interval Δ
t, and an iteration counter to a predetermined initial value n;(2) sampling a current queue size qi(n) during the predetermined time interval Δ
t;(3) calculating a current error signal ei(n) based, at least in part, upon the current queue size qi(n); (4) calculating the network device'"'"'s advertised window size Wi(n), based, at least in part, upon the current error signal ei(n) according to the equation;
Wi(n)=[Wi(n−
1)+α
ei(n)]Wmin Wmax , where α
, Wmax, and Wmin, are predetermined parameters;(5) resetting the timer, upon expiration of the predetermined interval Δ
t; and(6) iterating the iteration counter, upon expiration of the predetermined time interval Δ
t;providing the network device'"'"'s advertised window size to a TCP source; and calculating a dynamic buffer threshold based, at least in part, upon the sum of the queue sizes and the shared buffer space. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. An apparatus for controlling the transmission of data packets through a network by controlling a Transmission Control Protocol (TCP) rate in a network device having a shared buffer with shared buffer space, the apparatus comprising:
-
a forward data buffer, organized into one or more queues that store at least one forward data packet; a network device'"'"'s advertised window size calculation module further comprising; (1) a timer, initially set to a predetermined time interval Δ
t, and an iteration counter initially set to a predetermined initial value n;(2) a current queue size sampler that samples a current queue size qi(n) during the predetermined time interval Δ
t;(3) a current error signal calculation module that calculates a current error signal ei(n) based, at least in part, upon the current queue size qi(n); and (4) a window size calculation module that calculates the network device'"'"'s advertised window size Wi(n), based, at least in part, upon the current error signal ei(n) according to the equation;
Wi(n)=[Wi(n−
1)+α
ei(n)]Wmin Wmax , where α
, Wmax, and Wmin, are predetermined parameters;a feed back module that provides the network device'"'"'s advertised window size to a TCP source; and a dynamic buffer threshold module that calculates a dynamic buffer threshold based, at least in part, upon the sum of the queue sizes and the shared buffer space. - View Dependent Claims (11, 12, 13, 14, 15)
-
-
16. An article of manufacture for controlling the transmission of data packets through a network by controlling a Transmission Control Protocol (TCP) rate in a network device having a shared buffer with shared buffer space, the article of manufacture comprising:
-
at least one processor readable carrier; and instructions carried on the at least one carrier; wherein the instructions are configured to be readable from the at least one carrier by at least one processor and thereby cause the at least one processor to operate so as to; organize a forward data buffer into one or more queues that store at least one forward data packet; calculate a network device'"'"'s advertised window size by; (1) initializing a timer to a predetermined time interval Δ
t, and an iteration counter to a predetermined initial value n;(2) sampling a current queue size qi(n) during the predetermined time interval Δ
t;(3) calculating a current error signal ei(n) based, at least in part, upon the current queue size qi(n); (4) calculating the network device'"'"'s advertised window size Wi(n), based, at least in part, upon the current error signal ei(n) according to the equation;
Wi(n)=[Wi(n−
1)+α
ei(n)]Wmin Wmax , where α
, Wmax, and Wmin, are predetermined parameters;(5) resetting the timer, upon expiration of the predetermined interval Δ
t; and(6) iterating the iteration counter, upon expiration of the predetermined time interval Δ
t;provide the network device'"'"'s advertised window size to a TCP source; and calculate a dynamic buffer threshold based, at least in part, upon the sum of the queue sizes and the shared buffer space. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24)
-
Specification