<br><div class="gmail_quote">Hi Randell,<br><br>   I've follow your directions, seems webrtc is using TFRC to give an estimation of the bandwidth, I've read chapter 10 of "<b>RTP: Audio and Video for the Internet" </b>written by <a href="http://www.informit.com/safari/author_bio.asp@ISBN=0672322498" target="_blank">Colin Perkins</a>, according to the description on this, "<i>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>", I've got no hands-on TFRC yet, and wondering how well it works.<br><br>  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.<br><br>  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. <br>

<br>  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.<br>

<br>  Another difficult problem when coordinate interactive app and data app is how to identify the shared bottleneck, in shaping network, using the correlation of queuing delay seems work fine, but I've no idea how to do this in policing link. And I'm not very sure the congestion occurs at the access network.<br>

<br>  We're going to gather network statistics in the real network, in intrusive way currently. The metrics including RTT, Qdelay, Loss, Bandwidth, Lossy
    link information, protocol used, route etc. And I hope these can be used to improve the congestion control algorithm.(For example, as you suggested, using the user history bandwidth as a hint as the initial value)<br>

<br>  I've got numerous questions remains, listed above is some what messy. Very appreciate to your insights on these.<br><br><br>Thanks,<br>Jeromy<div class="HOEnZb"><div class="h5"><br>  <br><br><div class="gmail_quote">
2012/3/9 Fu Jiantao <span dir="ltr"><<a href="mailto:fuji246@gmail.com" target="_blank">fuji246@gmail.com</a>></span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Thanks Randell for giving me the direction, it's extremely helpful for me. <br><div><div>
<br><div class="gmail_quote">2012/3/9 Randell Jesup <span dir="ltr"><<a href="mailto:randell1@jesup.org" target="_blank">randell1@jesup.org</a>></span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div>On 3/8/2012 12:42 AM, Fu Jiantao wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi all,<br>
<br>
    Does anybody know how video rate control is done in webrtc?  How did<br>
it adjust the rate according to the bandwidth available? I haven't found<br>
the relating code of congestion control, however i've seem some code to<br>
do QoS, which set the DSCP in the packet.<br>
<br>
    I'm really curious about how webrtc coordinate between different<br>
kinds of applications, for example, when there's file transfer and video<br>
call. I've familiar with libjingle code, and seems it lack of thus QoS<br>
and traffic control logic.<br>
</blockquote>
<br></div></div>
See src/modules/rtp_rtcp/source/<u></u>bandwidth_management.cc, and related files and uses of REMB rtcp messages.<br>
<br>
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)).<span><font color="#888888"><br>



<br>
<br>
-- <br>
Randell Jesup<br>
<a href="mailto:randell-ietf@jesup.org" target="_blank">randell-ietf@jesup.org</a><br>
</font></span></blockquote></div><br>
</div></div></blockquote></div><br>
</div></div></div><br>