Hi Michael,<br><br><div class="gmail_quote">On Wed, Mar 28, 2012 at 1:16 AM, Michael Welzl <span dir="ltr"><<a href="mailto:michawe@ifi.uio.no">michawe@ifi.uio.no</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi all,<br>
<br>
I have read draft-alvestrand-rtcweb-<u></u>congestion-01.<br>
<br>
<br>
High-level comments:<br>
<br>
Today, this has been called a "strawman proposal". I agree with this way of looking at it. There are some quite interesting ideas there; however, a lot seems to appear "out of the blue", leaving the reader puzzled about the rationale behind some design choices. I wonder if these design choices are based on some academic papers out there - could citations help? Anyway, instead of trying to discuss the algorithm "in the air", it would be better to first work with some data: how does the mechanism really work in a real-life system? How does it interact with TCP? How sensitive is this mechanism to the typical issues raised for delay-based controls (the latecomer unfairness problem, behavior with very small queues, ..)? How likely is it for the derived rate of the mechanism to fall below the TFRC-function limit, under what conditions will this happen?<br>
</blockquote><div><br></div><div>We are currently working on producing some numbers on performance. It is very helpful to get suggestions on what kind of measurements and scenarios are most interesting.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<br>
As for the writing style, around the middle of section 3.2 you depart from what I would consider a reasonable amount of equations for an RFC. It might be better to point to a document where the derivation is given.<br>
<br>
<br>
<br>
Finer-grain comments:<br>
<br>
I got confused by your usage of "frame" - typically, to me, a frame is a packet at the link layer, or a picture in a video. Generally I have the impression that you use the word "frame" to refer to packets, but then towards the end of section 3.2 you talk about "the highest rate at which frames have been captured by the camera".  On a side note, that is anyhow inappropriate, I guess, as this mechanism shouldn't necessarily be restricted to video (could be audio too), right?<br>
</blockquote><div><br></div><div>In the draft a frame refers to a video frame. However, if an extension such as <a href="http://tools.ietf.org/html/rfc5450">http://tools.ietf.org/html/rfc5450</a> is used frames can be substituted for packets. I agree that the draft shouldn't mention video, as it might as well act on audio frames.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Same paragraph: "Since our assumption that v(i) should be zero mean WGN is less accurate in some cases" => why?<br></blockquote><div><br></div><div>Assuming that the jitter has a WGN distribution is a very strong assumption. For instance there are situations where a frame <i>i</i> is queued up behind another frame <i>i-1</i> and in that situation the jitter will not even be white. </div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Section 3.1: "Since the time ts to send a frame of size L over a path with a capacity C is" => this should at least say "roughly", as it omits a lot of (arguably, perhaps irrelevant) factors.<br></blockquote>
<div><br></div><div>Agreed.</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Equation 5: I don't think that m(i) and v(i) have been defined before.  (even though it seems obvious what is meant)<br></blockquote><div><br></div><div>Probably makes sense to refer to them from the text. E.g., "<span style="font-size:1em">Breaking out the mean m(i) of w(i), leaving us with the zero mean process v(i), we get"</span></div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Section 3.4: it's confusing to talk about increasing or decreasing "the available bandwidth" - if I got this right, what you do increase or decrease is the *receiver-side estimate* of the available bandwidth.<br>
</blockquote><div><br></div><div>Yes, I agree that should be clarified.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Section 4: par 3, "This algorithm is run every time a receive report arrives..." => so in case of severe congestion, when nothing else arrives, this algorithm waits for 2 * t_max_fb_interval... so can we rely on the mechanism to react to this congestion after roughly an RTO or not? (sounds like not)  Is that bad?  (I guess)<br>
</blockquote><div><br></div><div>There is a need for some emergency break mechanism if no feedback gets through.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<br>
I hope that's useful,<br>
<br>
<br>
Cheers<br>
Michael<br>
<br>
______________________________<u></u>_________________<br>
Rtp-congestion mailing list<br>
<a href="mailto:Rtp-congestion@alvestrand.no" target="_blank">Rtp-congestion@alvestrand.no</a><br>
<a href="http://www.alvestrand.no/mailman/listinfo/rtp-congestion" target="_blank">http://www.alvestrand.no/<u></u>mailman/listinfo/rtp-<u></u>congestion</a><br>
</blockquote></div><br>