[R-C] LEDBAT vs RTCWeb
Randell Jesup
randell-ietf at jesup.org
Tue Apr 10 16:02:33 CEST 2012
On 4/10/2012 7:51 AM, Stefan Holmer wrote:
>
>
> On Tue, Apr 10, 2012 at 12:10 PM, Harald Alvestrand
> <harald at alvestrand.no <mailto:harald at alvestrand.no>> wrote:
>
> Just to summarize what I currently understand about LEDBAT as
> compared to the scenario that RTCWEB envisions.....
>
> - RTCWEB assumes a set of media streams, possibly supplemented by a
> set of data streams carrying data with real-time requirements.
> LEDBAT assumes that there is some amount of data that needs
> transferring, and that it's appropriate to delay data if congestion
> occurs.
>
> - RTCWEB wants to make sure delay is low as long as it's not
> fighting with TCP, and wants its "fair share" when competing with
> TCP. LEDBAT wants to back off when encountering TCP, and uses low
> delay as a signal of "no competition is occuring"; it doesn't care
> about the specific delay.
>
>
> I don't think it's clear that an RTCWEB flow at all times want to
> compete with a TCP flow to get its fair share. For instance I can
> imagine that a user may find that a delay of 1-2 seconds caused by the
> TCP flow makes the experience too bad, and that it's better to leave
> more bandwidth for TCP so that the TCP transfer will finish more
> quickly. Depends on the amount of buffer bloat, the length of the TCP
> flow, user preference, etc.
1-2 seconds is effectively unusable.
When we compete with a (saturating) TCP flow, there are a few options:
1) reduce bandwidth and hope the TCP flow won't take it all (not all TCP
flows can sustain infinite bandwidth, and the TCP flow may have
bottlenecks or RTT-based limits that stop it from taking everything) or
that the TCP flow will use the bandwidth to end faster.
2) reduce bandwidth and hope the TCP flow may not take the extra
bandwidth fast enough to force the queues too deep - we reduce bandwidth
and cause the queues to drain, and TCP will keep adding to its bandwidth
- but at a certain rate depending on RTT/etc. We may be able to keep
the queues low as we give up bandwidth in chunks, though eventually we
will be driven down to our base. If we're lucky the TCP flow will (as
per 1) hit another limit, or will end (not unusual for web browsing!).
This really is a variant of #1.
3) reduce bandwidth, but allow queues to rise to a degree (say
100-200ms, perhaps an adaptive amount). This may allow an AQM or
short-queue router to cause losses to the TCP flow(s) and cause them to
back off. This could be a secondary measure after initial bandwidth
reductions.
4) switch to pure loss-based, which means letting queue depths rise to
the point of loss. Cx-TCP uses this (see recent (Nov? Dec?) ToN article
referenced in my rtcweb Interim presentation from the end of Jan/early
Feb). In some cases this will result in seconds of delay.
There might be some possible dynamic tricks, though they may not result
in a reasonable experience, such as allowing or forcing a spike in queue
depths to get TCP to back off a lot, then reducing bandwidth a lot to
let them drain while TCP starts to ramp back up. Eventually TCP will
saturate again and force queues depths to rise, requiring you to repeat
the behavior. This will cause periodic bursts of delay or loss which
will be annoying, and also may lead to poor overall link utilization
(though it's an attempt to get a fair share most of the time for the
delay-based protocol). I doubt that overall this is practical.
>
> - RTCWEB's RTP streams consists of unidirectional streams with
> (currently) fairly infrequent feedback messages. LEDBAT assumes an
> acknowledgement stream with nearly the same packet intervals as the
> forward stream.
>
> My conclusion: When discussing behaviour of specific models, we can
> learn from LEDBAT's experiences and the scenarios it was tested in,
> but the design goals of LEDBAT do not resemble the design goals for
> congestion control in the RTCWEB scenario, and we should not expect
> specific properties of the implementation to fit.
>
>
> I agree.
As do I. Also, I *REALLY* worry about the interaction of LEDBAT flows
and rtcweb flows... If it targets 100ms queuing delay as the "I'm out
of the way of TCP" level, that could seriously negatively impact us (and
general VoIP as well, but even more so us, since we'll again get driven
into the ground trying to keep the queues drained. It may take longer,
but LEDBAT flows tend to be close-to-infinite I would assume.
If it targets 25ms, that's less problematic I suspect.
I'm not saying I know there will be a problem here, but that I fear
there will be since LEDBAT has a non-0 queuing target - it may "poison
the waters" for any delay-based algorithm that wants to target a lower
number.
--
Randell Jesup
randell-ietf at jesup.org
More information about the Rtp-congestion
mailing list