SYSTEMS AND METHODS FOR PROVIDING QUALITY OF SERVICE PRECEDENCE IN TCP CONGESTION CONTROL
First Claim
1. A method for dynamically controlling connection bandwidth by a sender of one or more transport layer connections according to a priority assigned to one or more of the transport layer connections, the method comprising:
- (a) transmitting, by a sender, data via a first transport layer connection, wherein the first transport layer connection has a first congestion window size identifying an amount data to be transmitted by the sender in the absence of an acknowledgement from a receiver;
(b) receiving, by the sender via the first transport layer connection, an indication of a packet loss via the first transport layer connection;
(c) identifying a reduction factor, the reduction factor corresponding to a priority assigned by the sender to the first transport layer connection;
(d) determining a second congestion window size, the second congestion window size comprising the first congestion window size reduced by the reduction factor; and
(e) transmitting, by the sender via the first transport-layer connection, data according to the second congestion window size.
7 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods for dynamically controlling bandwidth of connections are described. In some embodiments, a proxy for one or more connections may allocate, distribute, or generate indications of network congestion via one or more connections in order to induce the senders of the connections to reduce their rates of transmission. The proxy may allocate, distribute, or generate these indications in such a way as to provide quality of service to one or more connections, or to ensure that a number of connections transmit within an accepted bandwidth limit. In other embodiments, a sender of a transport layer connection may have a method for determining a response to congestion indications which accounts for a priority of the connection. In these embodiments, a sender may reduce or increase parameters related to transmission rate at different rates according to a priority of the connection.
59 Citations
66 Claims
-
1. A method for dynamically controlling connection bandwidth by a sender of one or more transport layer connections according to a priority assigned to one or more of the transport layer connections, the method comprising:
-
(a) transmitting, by a sender, data via a first transport layer connection, wherein the first transport layer connection has a first congestion window size identifying an amount data to be transmitted by the sender in the absence of an acknowledgement from a receiver; (b) receiving, by the sender via the first transport layer connection, an indication of a packet loss via the first transport layer connection; (c) identifying a reduction factor, the reduction factor corresponding to a priority assigned by the sender to the first transport layer connection; (d) determining a second congestion window size, the second congestion window size comprising the first congestion window size reduced by the reduction factor; and (e) transmitting, by the sender via the first transport-layer connection, data according to the second congestion window size. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A system for dynamically controlling connection bandwidth according to a priority assigned to one or more transport layer connections by a network appliance serving as an intermediary for the one or more transport layer connections, the system comprising:
a network appliance which serves as an intermediary for a first transport layer connection between a sender and a receiver, the network appliance comprising; a packet processing engine which transmits data via the first transport layer connection, wherein the first transport layer connection has a first congestion window size corresponding to the maximum amount of unacknowledged data to be transmitted; and
receives, via the first transport layer connection, an indication of a packet loss; anda flow control module in communication with the packet processing engine which computes a reduction factor, the reduction factor corresponding to a priority assigned by the appliance to the first transport layer connection;
computes a second congestion window size, the second congestion window size comprising the first congestion window size divided by the reduction factor; and
transmits, via the first transport layer connection, data according to the second congestion window size.- View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 21, 22)
-
20. The system of claim 0, wherein the packet processing engine transmits, via the first transport-layer connection, an acknowledgement comprising the second congestion window size.
-
23. A computer-implemented system for dynamically controlling connection bandwidth by a sender of one or more transport layer connections according to a priority assigned to one or more of the transport layer connections, the system comprising:
-
a network stack which transmits data via a first transport layer connection, wherein the first transport layer connection has a first congestion window size corresponding to the maximum amount of unacknowledged data to be transmitted; and
receives, via the first transport layer connection, an indication of a packet loss; anda flow controller in communication with the network stack which computes a reduction factor, the reduction factor corresponding to a priority assigned by the flow controller to the first transport layer connection;
computes a second congestion window size, the second congestion window size comprising the first congestion window size divided by the reduction factor; and
transmits, via the first transport layer connection, data according to the second congestion window size. - View Dependent Claims (24, 25, 26, 27, 28, 29, 30, 31, 32, 33)
-
-
34. A method for dynamically controlling connection bandwidth by a sender of one or more transport layer connections according to a priority assigned to one or more of the transport layer connections, the method comprising:
-
(a) transmitting, by a sender, data via a first transport layer connection, wherein the first transport layer connection has a first congestion window size identifying an amount data to be transmitted by the sender in the absence of an acknowledgement from a receiver; (b) receiving, by the sender via the first transport layer connection, no indications of packet loss events during a time interval; (c) determining an enlargement factor, the enlargement factor corresponding to a priority assigned by the sender to the first transport layer connection; (d) computing a second congestion window size, the second congestion window size computed with respect to the first congestion window size and an enlargement factor; and (e) transmitting, by the sender via the first transport layer connection, data according to the second congestion window size. - View Dependent Claims (35, 36, 37, 38, 39, 40, 41, 42, 43, 44)
-
-
45. A computer-implemented system for dynamically controlling connection bandwidth by a sender of one or more transport layer connections according to a priority assigned to one or more of the transport layer connections, the system comprising:
a network appliance which serves as an intermediary for a first transport layer connection between a sender and a receiver, the network appliance comprising; a packet processing engine which transmits data via a first transport layer connection, wherein the first transport layer connection has a first congestion window size identifying an amount data to be transmitted by the sender in the absence of an acknowledgement from a receiver; and
receives, via the first transport layer connection, no indications of packet loss events during a time interval;a flow controller which determines an enlargement factor, the enlargement factor corresponding to a priority assigned by the network appliance to the first transport layer connection;
computes a second congestion window size, the second congestion window size computed with respect to the first congestion window size and an enlargement factor; and
transmits, via the first transport layer connection, data according to the second congestion window size.- View Dependent Claims (46, 47, 48, 49, 50, 51, 52, 53, 54, 55)
-
56. A computer-implemented system for dynamically controlling connection bandwidth by a sender of one or more transport layer connections according to a priority assigned to one or more of the transport layer connections, the system comprising:
-
a network stack which transmits data via a first transport layer connection, wherein the first transport layer connection has a first congestion window size identifying an amount data to be transmitted by the sender in the absence of an acknowledgement from a receiver; and
receives, via the first transport layer connection, no indications of packet loss events during a time interval;a flow controller which determines an enlargement factor, the enlargement factor corresponding to a priority assigned by the network appliance to the first transport layer connection;
computes a second congestion window size, the second congestion window size computed with respect to the first congestion window size and an enlargement factor; and
transmits, via the first transport layer connection, data according to the second congestion window size. - View Dependent Claims (57, 58, 59, 60, 61, 62, 63, 64, 65, 66)
-
Specification