Most of today's TCP congestion control schemes were developed with a focus on a use of the Internet for reliable bulk transfer of non-time-critical data, such as transfer of large files. They have also been used successfully to govern the reliable transfer of smaller chunks of data in as short a time as possible, such as when fetching web pages.
These algorithms have also been used for transfer of media streams that are viewed in a non-interactive manner, such as "streaming" video, where having the data ready when the viewer wants it is important, but the exact timing of the delivery is not.
When handling real-time interactive media, the requirements are different. One needs to provide the data continuously, within a very limited time window (no more delay than hundreds of milliseconds end-to-end). In addition, the sources of data may be able to adapt the amount of data that needs sending within fairly wide margins, but they can be rate limited by the application -- even not always having data to send. They may tolerate some amount of packet loss, but since the data is generated in real time, sending "future" data is impossible, and since it's consumed in real time, data delivered late is commonly useless.
While the requirements for real-time interactive media differ from the requirements for the other flow types, these other flow types will be present in the network. The congestion control algorithm for real-time interactive media must work properly when these other flow types are present as cross traffic on the network.
One particular protocol portfolio being developed for this use case is WebRTC [
RFC 8825], where one envisions sending multiple flows using the Real-time Transport Protocol (RTP) [
RFC 3550] between two peers, in conjunction with data flows, all at the same time, without having special arrangements with the intervening service providers. As RTP does not provide any congestion control mechanism, a set of circuit breakers, such as those described in [
RFC 8083], are required to protect the network from excessive congestion caused by non-congestion-controlled flows. When the real-time interactive media is congestion controlled, it is recommended that the congestion control mechanism operate within the constraints defined by these circuit breakers when a circuit breaker is present and that it should not cause congestion collapse when a circuit breaker is not implemented.
Given that this use case is the focus of this document, use cases involving non-interactive media such as video streaming and those using multicast/broadcast-type technologies, are out of scope.
The terminology defined in [
RFC 8825] is used in this memo.