Miscellaneous 2015

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 Google Congestion Control algorithm combines a delay-based controller, based on packet arrival timing, scalar Kalman 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 inter-group delay variation, dynamically adapts the over-use detection threshold to improve fairness and prevent starvation, and updates the available bandwidth estimate through increase, decrease, and hold states. The loss-based controller adjusts the target sending bitrate using packet-loss thresholds and selects the actual sending rate based on both delay-based and loss-based estimates. 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.