[R-C] One congestion control to bind them all!

Randell Jesup randell-ietf at jesup.org
Sun Apr 8 10:12:49 CEST 2012


On 4/5/2012 11:21 AM, Michael Welzl wrote:
>
> On Apr 5, 2012, at 4:03 PM, Justin Uberti wrote:
>

>> On Thu, Apr 5, 2012 at 8:14 AM, Michael Welzl <michawe at ifi.uio.no> wrote:

>> I have now figured out that the best way to do transport for RTCWEB
>> would involve using only ONE type of congestion control for everything
>> (note that I'm not making any specific argument here about whether
>> this is based on draft-alvestrand-rtcweb-congestion or LEDBAT or
>> whatever).

[SNIP]

>> I think that the correct solution to that problem is to have only one
>> type of congestion control, make it (mostly) delay-based to minimize
>> queuing delay, and let that congestion control dictate the total rate
>> available to the RTCWEB sender. Then, let the sender schedule packets
>> across the video-, audio- and file-transfer streams based on some
>> fairness policy. This gives you the best possible control over
>> fairness as an extra - it's much better than trying to influence how
>> the flows compete with each other on the bottleneck. Well, and again
>> it seems to me that SCTP looks ideal for that type of usage.
>>
>> Theoretically, it could perhaps be okay to use multiple different
>> types of delay-based (delay-minimizing) controls in parallel, e.g.
>> using draft-alvestrand-rtcweb-congestion-01 for video / audio and
>> LEDBAT for data transfer, but that just seems to make the situation
>> more complicated and it would give you less control over the fairness
>> among the streams.
>>
>> Curious to hear what you think :-) because I *know* I'm right :-D

Justin replied:

>> I think we agree - to avoid the exact problems you mention, the plan
>> has been to replace the SCTP CC module with a CC that is common across
>> media and data.
>
> Oh, cool! I wasn't aware of that - is that documented somewhere? Sorry
> if I missed it! I'm a bit new to the whole forest of RTCWEB documents...

If you read the early archives of this list (and discussions predating 
it on rtcweb), you'll find that goal articulated a number of times.

As one of those driving the congestion-control issue and also the data 
channel design, I've always spoken to wanting to in some manner merge 
the congestion control regimes of media and data flows, and barring that 
to at least provide feedback between them.  The last fallback to 
avoiding problems would be to partially punt the problem up to the 
application (which also knows the relative priorities of the media and 
data, and of each data flow), by reporting back to the JS application 
the current automatic distribution of available bits to the different 
streams, and allow the application to change the distribution of those 
bits to the various media and data sub-flows (but not let it increase 
the total number of bits sent directly; it could decrease it directly or 
indirectly (by removing flows, such as dropping a video stream, etc)).

We will very likely be doing that application-level reporting, and 
probably allowing the application to adjust the distribution. My 
proposal on the API for that is outstanding in the W3 side of this 
standardization effort.

I spoke more directly to this at the rtcweb Interim meeting in Febuary; 
my slides are at:
http://www.ietf.org/proceedings/interim/2012/01/31/rtcweb/slides/rtcweb-1.pdf
The relevant slides are 10-13.  While not stated on the slides, this 
discussion emanates from the goal to in some manner merge them or make 
them work together (and not fight), and this was I think re-iterated 
from the podium there.

-- 
Randell Jesup
randell-ietf at jesup.org


More information about the Rtp-congestion mailing list