Slow-Start Adaptive Mechanisms to Improve Efficiency of Bandwidth Allocation
First Claim
1. A method comprisingestimating an initial rate demand for a data flow between a first host and a second host, wherein the first host and the second host implement, relative to the data flow, a protocol that utilizes a slow-start phase;
- allocating a target rate to the data flow wherein the target rate is less than the initial rate demand for the data flow;
enforcing the target rate on the data flow;
maintaining a count of packets associated with the data flow; and
increasing the target rate allocated to the data flow as the count of packets crosses at least one threshold.
12 Assignments
0 Petitions
Accused Products
Abstract
Methods, apparatuses and systems directed to improving the efficiency of bandwidth allocation schemes by adapting to slow-start mechanisms associated with network communications protocols, such as the TCP/IP protocol suite. In one implementation, the present invention scales down the initial target rate assigned to a data flow to a fraction of an initial estimate of the effective rate capacity of the communications path between two hosts. As packets are received, the target rate is gradually increased, eventually up to the detected rate capacity of the communications path. Implementations of the present invention improve the efficiency of bandwidth allocation by reducing the over-allocation of bandwidth to data flows during the slow-start phase, leaving more bandwidth available to other data flows.
-
Citations
22 Claims
-
1. A method comprising
estimating an initial rate demand for a data flow between a first host and a second host, wherein the first host and the second host implement, relative to the data flow, a protocol that utilizes a slow-start phase; -
allocating a target rate to the data flow wherein the target rate is less than the initial rate demand for the data flow; enforcing the target rate on the data flow; maintaining a count of packets associated with the data flow; and increasing the target rate allocated to the data flow as the count of packets crosses at least one threshold. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A method comprising
estimating the initial rate demand for a data flow between a first host and a second host, wherein the first host and the second host implement, relative to the data flow, a protocol that utilizes a slow-start phase; -
allocating a target rate for the data flow wherein the target rate is less than the initial rate demand for the data flow; enforcing the target rate on the data flow; maintaining a count of transmitted bytes associated with the data flow; and increasing the target rate allocated to the data flow as the count of transmitted bytes increases. - View Dependent Claims (13, 14, 15)
-
-
16. An apparatus comprising:
-
a packet processor operative to detect a data flow in network traffic traversing a communications path between a first host and a second host, wherein the first host and the second host implement, relative to the data flow, a protocol that utilizes a slow-start phase; maintain a count of packets or bytes associated with the data flow; a path rate detection module operative to estimate the initial rate demand for the data flow; a bandwidth allocation module operative to allocate bandwidth to the data flow based in part on a target rate associated with the data flow; and wherein the apparatus is operative to set a target rate for the data flow wherein the target rate is less than the initial rate demand for the data flow; and increase the target rate associated with the data flow as the count of packets or bytes crosses a threshold value. - View Dependent Claims (17, 18, 19, 20, 21)
associate at least one bandwidth utilization control to the data flow based on the identified traffic class; and wherein the bandwidth allocation module is operative to allocate bandwidth based, at least in part, on the target rate, and the at least one bandwidth utilization control, associated with the data flow.
-
-
18. The apparatus of claim 16 wherein the packet processor is further operative to
parse at least one packet associated with the data flow into a flow specification, wherein said flow specification contains at least one instance of any one of the following: - a protocol family designation, a direction of packet flow designation, a protocol type designation, a pair of hosts, a pair of ports, a pointer to a MIME type a pointer to an application-specific attribute.
-
19. The apparatus of claim 18 wherein the traffic classification database is operative to
match the flow specification to a plurality of traffic classes, each of the traffic classes defined by one or more matching attributes; - and thereupon,
having found a matching traffic class in the matching step, associate said flow specification with a traffic class from the plurality of traffic classes.
- and thereupon,
-
20. The apparatus of claim 16 wherein the apparatus is further operative to
monitor for at least one indication that the sending host has re-initiated the slow start mechanism for the data flow; - and
upon detection of at least one of the indications, reset the count of bytes for the flow; and reset the target rate for the data flow to the initial target rate.
- and
-
21. The apparatus of claim 16 wherein the path rate detection module is further operative to estimate the number of bytes that a sending host will transmit before achieving the initial rate demand.
-
22. A method comprising
allocating a limited amount of bandwidth to a plurality of data flows traversing a network between respective first and second hosts based on target rates associated with the data flows; - and
for each data flow of at least a subset of the data flows, estimating an initial rate demand for the data flow between a first host and a second host, wherein the first host and the second host implement, relative to the data flow, a protocol that utilizes a slow-start phase; setting a target rate to the data flow wherein the target rate is less than the initial rate demand for the data flow; maintaining a count of packets associated with the data flow; and increasing the target rate of the data flow as the count of packets crosses at least one threshold.
- and
Specification