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.
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.
88 Citations
20 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. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. 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 reducing said rate of transmission until said congestion is no longer detected. - View Dependent Claims (17, 18, 19)
-
-
20. A computer readable storage medium 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