See src/modules/rtp_rtcp/source/bandwidth_management.cc, and related
files and uses of REMB rtcp messages.
This is an ongoing discussion on the rtp-congestion IETF mailing list,
which was spun out of the rtcweb (IETF side of webrtc) mailing list.
We're presenting some I-D's at IETF paris, and if you read the archives
of the list, we have proposals for how to congestion-control multiple
streams and also we hope to include the data-channels in the congestion
regime. libsctp includes a congestion module that provides low-delay,
and Cx-TCP is based on the same research and provides low-delay when
possible and switches to higher-delay, loss-based functionality if it
finds it can't stay in low-delay mode (fighting a saturating TCP
connection(s)).
--
Randell Jesup
randel...@jesup.org
The delay-based congestion control algorithm is documented in
draft-alvestrand-rtcweb-congestion-01.txt
Good luck!
Hi Randell,
I've follow your directions, seems webrtc is using TFRC to give an estimation of the bandwidth, I've read chapter 10 of "RTP: Audio and Video for the Internet" written by Colin Perkins, according to the description on this, "This seems to be a simple matter, but in practice there are issues to be resolved. The most critical matter is how the loss rate is measured and averaged, but there are secondary issues with packet sizing, slow start, and noncontinuous transmission", I've got no hands-on TFRC yet, and wondering how well it works.
Another question is about "Google disclosed an algorithm for doing "predictive" bottleneck-buffer queue-length sensing based on packet arrival times compared to RTP timestamps." you mentioned, I've searched but no found of the relating publication.
As for the queue-length, as far as i know, there are some ISPs are using policing instead of shaping, so delay-based congestion control should not work.
I've test on Skype, seems it does well in the rate control, it reacts on the bandwidth changes well, in both shaping and policing links( I use linux traffic control toolset to emulate different network environments), and it has done QoS control over different kinds of applications(In shaping network, when during video call, start a file transfer will not hurt the quality of video, the rtt is control around 90ms(2ms when no congestion), and when cancel the video call, the delay ramps up to about 120ms to make full use of the bandwidth. However, the video quality will affected in policing link when the congestion control probe for more bandwidth due to packet loss even there maybe FEC.