A Google Congestion Control Algorithm for Real-Time Communication
Holmer, S.; Lundin, H.; Carlucci, G.; De Cicco, L.; Mascolo, S.
Abstract
This document describes two methods of congestion control when using real-time communications on the World Wide Web (RTCWEB): one delay-based and one loss-based. It is published as an input document to the RMCAT working group on congestion control for media streams. The proposed Google Congestion Control algorithm combines a delay-based controller, based on packet arrival timing, adaptive filtering, over-use detection, and rate control, with a loss-based controller that uses packet loss, round-trip time, and delay-based available bandwidth estimates. The delay-based controller estimates network parameters through an arrival-time model and Kalman filtering, dynamically adapts the over-use detection threshold to improve fairness, and updates the available bandwidth estimate using increase, decrease, and hold states. The loss-based controller adjusts the target sending bitrate according to packet loss thresholds and TCP Friendly Rate Control constraints. The draft also discusses feedback mechanisms, RTP/RTCP extensions, interoperability, implementation experience in WebRTC, Chrome, and Google Hangouts, further work, IANA considerations, and security considerations.