[R-C] One congestion control to bind them all!
Michael Welzl
michawe at ifi.uio.no
Thu Apr 5 17:21:10 CEST 2012
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:
> Dear all,
>
> First, let me apologize for giving you "Michael's view of how our
> transport should be built" in this piecemeal fashion... you're
> getting a glimpse at how gradual my brain operates :-( I just
> can't help it.
>
> 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).
>
> Why?
>
> Simply because your goal is to keep the delay low, by avoiding queue
> growth. TCP - and also SCTP's standard congestion control - will
> always try to push up the bottleneck queue until it sees a packet
> loss (or ECN), and therefore always be detrimental. Now, that's just
> a fact of life that we have to deal with - there may be other TCP
> traffic sharing the same bottleneck, and we want to do reasonably
> well in competition while trying to minimize queuing delay. This is
> not an ideal situation but it's what we have to live with. However,
> what we really don't want to do is to embed a standard-TCP-like
> congestion control mechanism WITHIN RTCWEB?!
>
> If an RTCWEB user wants to have a video phone conversation and at
> the same time sends a file, if I understand it correctly, that file
> would be transferred using SCTP and its standard TCP-like congestion
> control. So the file transfer would push up the queue at the
> bottleneck and thereby increase the delay experienced by the user -
> the user would shoot her/himself in her/his foot by sending the
> file. You really don't want that to happen, I guess?
>
> 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
>
>
> 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...
Cheers,
Michael
More information about the Rtp-congestion
mailing list