Congestion control for delay sensitive applications
First Claim
1. A method for transmitting data over a communications network, the method comprising:
- upon determining that a number of queued data packets is below a predetermined threshold, transmitting data packets from a first computing device to a second computing device over the communications network in a predetermined order and at a transmission rate set at least in part based on congestion control implemented at the first computing device, the data packets including presentation data formatted according to a remote desktop protocol and the communications network including a lossy communication connection between the first computing device and the second computing device; and
adjusting the transmission rate of the data packets at the first computing device based upon a congestion level of the communications network, the congestion level based at least in part on received acknowledgements and absence of one or more received acknowledgements from the second computing device of the transmitted data packets.
1 Assignment
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.
-
Citations
20 Claims
-
1. A method for transmitting data over a communications network, the method comprising:
-
upon determining that a number of queued data packets is below a predetermined threshold, transmitting data packets from a first computing device to a second computing device over the communications network in a predetermined order and at a transmission rate set at least in part based on congestion control implemented at the first computing device, the data packets including presentation data formatted according to a remote desktop protocol and the communications network including a lossy communication connection between the first computing device and the second computing device; and adjusting the transmission rate of the data packets at the first computing device based upon a congestion level of the communications network, the congestion level based at least in part on received acknowledgements and absence of one or more received acknowledgements from the second computing device of the transmitted data packets. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A computing system configured to transmit data over a communications network, the computing system comprising:
-
a programmable circuit; a memory communicatively coupled to the programmable circuit and configured to store executable instructions that, upon execution by the programmable circuit, cause the computing system to perform a method including; upon determining that a number of queued data packets is below a predetermined threshold, transmitting data packets to a second computing device over the communications network in a predetermined order and at a transmission rate set at least in part based on congestion control component, the data packets including presentation data formatted according to a remote desktop protocol and the communications network including a lossy communication connection between the first computing device and the second computing device; and adjusting the transmission rate of the data packets at the first computing device based upon a congestion level of the communications network, the congestion level based at least in part on received acknowledgements and absence of one or more received acknowledgements from the second computing device of the transmitted data packets. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
16. A computer-readable storage device comprising computer-readable instructions, which, when executed, cause a computing system to perform a method for transmitting data over a communications network, the method comprising:
-
upon determining that a number of queued data packets is below a predetermined threshold, transmitting data packets from a first computing device to a second computing device over the communications network in a predetermined order and at a transmission rate set at least in part based on congestion control implemented at the first computing device, the data packets including presentation data formatted according to a remote desktop protocol and the communications network including a lossy communication connection between the first computing device and the second computing device; and adjusting the transmission rate of the data packets at the first computing device based upon a congestion level of the communications network, the congestion level based at least in part on received acknowledgements and absence of one or more received acknowledgements from the second computing device of the transmitted data packets. - View Dependent Claims (17, 18, 19, 20)
-
Specification