APPLICATION AWARE RATE CONTROL
First Claim
1. A method for performing real-time estimation of available bandwidth between endpoints in a network for dynamically controlling communication data rates, comprising using a computing device for:
- establishing a communications session between a first network endpoint and a second network endpoint across a network path including one or more network nodes between the first and second network endpoints;
wherein the communications session includes an ongoing transmission of encoded communications data packets from the first network endpoint to the second network endpoint at a current sending rate;
periodically collecting network statistical information during the communications session;
periodically computing a current packet queuing delay for at least some of the communications data packets transmitted from the first network endpoint to the second network endpoint;
periodically performing a real-time estimate of a current available bandwidth from current network statistical information; and
periodically adjusting the current sending rate to be as close as possible to the current available bandwidth, with the current available bandwidth representing an upper maximum limit on the current sending rate, based on a computed relationship between the current packet queuing delay and an allowable delay threshold.
2 Assignments
0 Petitions
Accused Products
Abstract
A “communications rate controller” provides various techniques for maximizing a quality of real-time communications (RTC) (including audio and/or video broadcasts and conferencing) over multi-hop networks such as, for example, the Internet. Endpoints in such networks generally communicate via a segmented path that extends through one or more routers between each endpoint. Maximization of conferencing quality is generally accomplished by providing in-session bandwidth estimation across segments of the network path between endpoints (i.e., communication/conference participants) in combination with a robust non-oscillating dynamic rate control strategy for maximizing usage of available bandwidth between RTC endpoints. Further, the dynamic rate control techniques provided by the communications rate controller are designed to prevent degradation in end-to-end delay, jitter, and packet loss characteristics of the RTC.
164 Citations
20 Claims
-
1. A method for performing real-time estimation of available bandwidth between endpoints in a network for dynamically controlling communication data rates, comprising using a computing device for:
-
establishing a communications session between a first network endpoint and a second network endpoint across a network path including one or more network nodes between the first and second network endpoints; wherein the communications session includes an ongoing transmission of encoded communications data packets from the first network endpoint to the second network endpoint at a current sending rate; periodically collecting network statistical information during the communications session; periodically computing a current packet queuing delay for at least some of the communications data packets transmitted from the first network endpoint to the second network endpoint; periodically performing a real-time estimate of a current available bandwidth from current network statistical information; and periodically adjusting the current sending rate to be as close as possible to the current available bandwidth, with the current available bandwidth representing an upper maximum limit on the current sending rate, based on a computed relationship between the current packet queuing delay and an allowable delay threshold. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A process for dynamically controlling a sending rate of a communications session between endpoints in a network, comprising steps for:
-
(a) establishing a communications session along a network communications path from a first network endpoint and a second network endpoint, said path including one or more network nodes; (b) setting an acceptable quality level for the communications session; (c) beginning with an initial sending rate, increasing a current sending rate of the communications session until a current packet queuing delay at the current sending rate at any of the network nodes exceeds the allowable delay threshold; (d) gathering current network statistical information; (e) computing an available bandwidth based on the current network statistical information, said statistical information comprising at least the current packet queuing delay; (f) using a computed relationship between the current packet queuing delay and the allowable delay threshold for setting a real-time communications rate for sending communications data packets from the first network endpoint to the second network endpoint, and using the computed available bandwidth as an upper limit on the real-time communications rate; and (g) periodically repeating steps (d) through (f) during the communications session to dynamically adjust the real-time communications rate for maximally utilizing available bandwidth between the first network endpoint and the second network endpoint. - View Dependent Claims (11, 12, 13, 14, 15)
-
-
16. A computer-readable medium having computer executable instructions stored thereon for performing in-session bandwidth estimation and rate control during a communications session between network endpoints, comprising instructions for:
-
setting an allowable delay threshold in a network path between a first network endpoint and a second network endpoint, said path including one or more network nodes; beginning with an initial current sending rate, increasing the current sending rate of communications data packets from the first network endpoint to the second network endpoint until a current packet queuing delay at the current sending rate at any of the network nodes exceeds the allowable delay threshold; periodically recomputing the current packet queuing delay; periodically computing a current available bandwidth using the current sending rate and the current packet queuing delay in combination with periodically collected network statistical information; and periodically evaluating the current packet queuing delay and adjusting the current sending rate relative to the current available bandwidth. - View Dependent Claims (17, 18, 19, 20)
-
Specification