Systems and methods for providing virtual fair queuing of network traffic
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.
Claims
exact text as granted — not AI-modifiedI claim:
1. A method of distributing congestion events by a device among a plurality of transport layer connections based on protocol, the method comprising:
(a) assigning, by a device, a priority to each of a plurality of transport layer connections based on a corresponding protocol carried via each of the plurality of transport layer connections;
(b) receiving, by the device, via a first transport layer connection of the plurality of transport layer connections, a first congestion event; and
(c) transmitting, by the device responsive to receiving the first congestion event, a second congestion event via a second transport layer connection selected from the plurality of transport layer connections based on assigned priorities, wherein the device has not received an indication of a congestion event via the second transport layer connection within a predetermined time period.
2. The method of claim 1 , wherein step (a) further comprises assigning a different priority to user datagram protocol (UDP) transport layer connections than transport control protocol (TCP).
3. The method of claim 1 , wherein step (b) further comprises receiving a packet comprising marked Explicit Congestion Notification (ECN) bits.
4. The method of claim 1 , wherein step (b) further comprises receiving a packet comprising a duplicate acknowledgment of a packet that has previously been acknowledged.
5. The method of claim 1 , wherein step (c) further comprises selecting the second transport layer connection from the plurality of transport layer connections according to the assigned priorities.
6. The method of claim 1 , wherein step (c) further comprises selecting the second transport layer connection from the plurality of transport layer connections according to according to a bandwidth usage of each of the plurality of transport layer connections.
7. A method of distributing congestion events by a device among a plurality of transport layer connections based on average transaction size, the method comprising:
(a) assigning, by a device, a priority to each of a plurality of transport layer connections based on a corresponding average transaction size of network traffic traversing each of the plurality of transport layer connections;
(b) receiving, by the device, via a first transport layer connection of the plurality of transport layer connections, a first congestion event;
(c) transmitting, by the device responsive to receiving the first congestion event, a second congestion event via a second transport layer connection selected from the plurality of transport layer connections based on assigned priorities, wherein the device has not received an indication of a congestion event via the second transport layer connection within a predetermined time period.
8. The method of claim 7 , wherein step (a) further comprises assigning a higher priority to transport layer connections carrying shorter transactions.
9. The method of claim 7 , wherein step (a) further comprises assigning the priority to each of the plurality of transport layer connections based on a current transaction size.
10. The method of claim 7 , wherein step (b) further comprises receiving a packet comprising marked Explicit Congestion Notification (ECN) bits.
11. The method of claim 7 , wherein step (b) further comprises receiving a packet comprising a duplicate acknowledgment of a packet that has previously been acknowledged.
12. The method of claim 7 , wherein step (c) further comprises selecting the second transport layer connection from the plurality of transport layer connections according to the assigned priorities.
13. A method of distributing congestion events by a device among a plurality of transport layer connections based on bandwidth, the method comprising:
(a) assigning, by a device, a priority to each of a plurality of transport layer connections based on a corresponding bandwidth assigned to each of the plurality of transport layer connections;
(b) receiving, by the device, via a first transport layer connection of the plurality of transport layer connections, a first congestion event; and
(c) transmitting, by the device responsive to receiving the first congestion event, a second congestion event via a second transport layer connection selected from the plurality of transport layer connections based on assigned priorities, wherein the device has not received an indication of a congestion event via the second transport layer connection within a predetermined time period.
14. The method of claim 13 , wherein step (a) further comprises assigning the priority to each of the plurality of transport layer connections based on a target bandwidth assigned to each transport connection.
15. The method of claim 13 , wherein step (a) further comprises assigning the priority to each of the plurality of transport layer connections based on a maximum bandwidth identified for each transport layer connection.
16. The method of claim 13 , wherein step (b) further comprises receiving a packet comprising marked Explicit Congestion Notification (ECN) bits.
17. The method of claim 13 , wherein step (b) further comprises receiving a packet comprising a duplicate acknowledgment of a packet that has previously been acknowledged.
18. The method of claim 13 , wherein step (c) further comprises selecting the second transport layer connection from the plurality of transport layer connections according to the assigned priorities.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.