Congestion control for delay sensitive applications
First Claim
1. A method for transmitting data over a communications network, the method comprising:
- queuing data packets for transmission over the communications network;
determining that a number of queued data packets is less than a predetermined queuing threshold and transmitting one of the data packets, wherein the predetermined queuing threshold indicates a maximum quantity of data that can be queued and not transmitted over the communications network; and
adjusting the transmission rate of the data packets based upon a congestion level of the communications network, the congestion level based at least in part on received acknowledgement of the transmitted data packets and determined as a function of a packet queuing delay, packet loss rate, and one way delay (OWD) trend estimated based on acknowledgement packets.
2 Assignments
0 Petitions
Accused Products
Abstract
In various embodiments, methods and systems are disclosed for a hybrid rate plus window based congestion protocol that controls the rate of packet transmission into the network and provides low queuing delay, practically zero packet loss, fair allocation of network resources amongst multiple flows, and full link utilization. In one embodiment, a congestion window may be used to control the maximum number of outstanding bits, a transmission rate may be used to control the rate of packets entering the network (packet pacing), a queuing delay based rate update may be used to control queuing delay within tolerated bounds and minimize packet loss, and aggressive ramp-up/graceful back-off may be used to fully utilize the link capacity and additive-increase, multiplicative-decrease (AIMD) rate control may be used to provide fairness amongst multiple flows.
37 Citations
19 Claims
-
1. A method for transmitting data over a communications network, the method comprising:
-
queuing data packets for transmission over the communications network; determining that a number of queued data packets is less than a predetermined queuing threshold and transmitting one of the data packets, wherein the predetermined queuing threshold indicates a maximum quantity of data that can be queued and not transmitted over the communications network; and adjusting the transmission rate of the data packets based upon a congestion level of the communications network, the congestion level based at least in part on received acknowledgement of the transmitted data packets and determined as a function of a packet queuing delay, packet loss rate, and one way delay (OWD) trend estimated based on acknowledgement packets. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 17, 18, 19)
-
-
14. A system configured to transmit data over a communications network, comprising:
-
at least one processor; and at least one memory communicatively coupled to said at least one processor when the system is operational, the memory having stored therein computer-executable instructions that, upon execution by the processor, cause; queuing data packets for transmission over the communications network; determining that a number of queued data packets is less than a predetermined queuing threshold and transmitting one of the data packets, wherein the predetermined queuing threshold indicates a maximum quantity of data that can be queued and not transmitted over the communications network; increasing a rate of transmission until congestion is detected, the congestion detected as a function of packet queuing delay, packet loss rate, and one-way delay (OWD) trend and based at least in part on received acknowledgement of the transmitted data packets; and reducing said rate of transmission until said congestion is no longer detected; wherein the transmission rate (Rn) is updated using the OWD trend, packet loss, the current average packet queuing delay estimate (δ
avg), and the current zone classification which is based on the current average packet queuing delay estimate (δ
avg), packet loss, and OWD trend, using - View Dependent Claims (15)
-
-
16. A computer readable storage device storing thereon computer executable instructions, said instructions comprising:
-
instructions for queuing data packets for transmission over the communications network; instructions for determining that a number of queued data packets is less than a predetermined queuing threshold and transmitting one of the data packets, wherein the predetermined queuing threshold indicates a maximum quantity of data that can be queued and not transmitted over the communications network; instructions for increasing a rate of transmission until congestion is detected, the congestion detected as a function of packet queuing delay, packet loss rate, and one-way delay (OWD) trend; instructions for reducing said rate of transmission until said congestion is no longer detected; and
instructions for classifying network utilization level into one of three zones;(1) OWD is not increasing and the average packet queuing delay is less than a predetermined delay threshold, (2) OWD is not increasing, packet loss is below a predetermined loss threshold, and the average queuing delay is greater than the predetermined delay threshold but less than an upper threshold, and (3) OWD is increasing, the average queuing delay is greater than the upper threshold or packet loss above a packet loss threshold is accompanied by average queuing delay above a queuing delay threshold, wherein the transmission rate is increased when the congestion level is in zone 1, the transmission rate is reduced when the congestion level is in zone 2 or zone 3, and the transmission rate is reduced at a greater rate in zone 3 than in zone 2; wherein; the congestion is determined as a function of a packet queuing delay, packet loss rate, and OWD trend, and the transmission rate (Rn) is updated using the current zone classification, the current average packet queuing delay estimate (δ
avg), packet loss, and OWD trend (increasing or non-increasing), using
-
Specification