[R-C] About the all-SCTP way of doing it
Michael Welzl
michawe at ifi.uio.no
Sun Apr 1 11:17:02 CEST 2012
Hi all,
I've been giving this some more thought, and now think that it is a
mistake to try to build a RTP-UDP-based congestion control mechanism
with logic at the receiver, to plan when to send feedback and minimize
it accordingly. The reason is that you want to sample the path often
enough anyway, and that you may have SCTP operating on the data stream
in parallel too. So that can give you a situation where you get a lot
of ACKs all the time in SCTP, which will be ignored by the UDP-based
algorithm, which is meanwhile struggling to reduce its own feedback.
All this feedback is really only about the congestion status on the
path anyway, i.e. SCTP ACKs give you all the information you need.
So my proposal would be:
- use SCTP for everything
- add per-stream congestion control to it, all on the sender side
- use some other RTCWeb based signalling to negotiate the congestion
control mechanism, in the style of DCCP
- let all streams benefit from SCTP's ACKs; if we anyhow need to
reduce the amount of feedback, we could use an appropriate means
that's related to transport, and not the RTCP rule which has nothing
to do with congestion control: ACK-CC, RFC 5690 would give a good
basis for that. (on a side note, when you run RTP over SCTP, you
don't break any RTP rules regarding the amount of feedback I think...)
This way, with all the congestion control logic happening on the
sender side, it would be much easier to manage the joint congestion
control behavior across streams - to control fairness among them, as
desired by this group. Note that this can yield MUCH more benefits
than meets the eye: e.g., if an ongoing transfer is already in
Congestion Avoidance, a newly starting transfer across the same
bottleneck (which you'll have to - correctly or not - assume for
RTCWeb anyway) can skip Slow Start. In a prototypical example
documented in:
Michael Welzl, Florian Niederbacher, Stein Gjessing: "Beneficial
Transparent Deployment of SCTP: the Missing Pieces", IEEE GlobeCom
2011, 5-9 December 2011, Houston, Texas
(fig.7)
...we transferred two files across a testbed where we used the (at
least then, very large) default Linux queue length (txqueuelen). The
transfer time of the shorter file was reduced by almost 4 seconds, at
no significant cost for the other transfer.
In such a setup, a mechanism based on LEDBAT could perhaps be used (in
a similar style as in the current proposal, using the TCP equation as
a lower limit, and maybe tuning some parameters to be a bit more
aggressive?), giving the benefit that LEDBAT has already been tested.
What do y'all think?
Cheers,
Michael
More information about the Rtp-congestion
mailing list