Thank you for the note, only had time for a quick read through,
three small issues.
1. Related open issue: To deal with idle periods and the like,
in Section 4.7 say that t_i := max(t_i, t_now - RTT/2), to
limit bursts to RTT/2 packets? Has anyone implemented this?
Email from Eddie Kohler and Ian McDonald.
I have implemented this and have come up with an upper bound
of using less than one t_ipi as a threshold. I can provide
a detailed derivation for this but I don't want to post my
patches here - this is from an yet unsubmitted patch set (to be
submitted soon). The experience of using this for over one month
affirms that using (less than) t_ipi as uppper bound cures the
problem of disproportionally large bursts after longer idle times
or when application is sending at a low (constant) bit rate.
2. One minor thing where a clarification would be very helpful:
-> In section 4.6 "Preventing Oscillations"
-> Here it says "The sender obtains the base allowed transmit rate,
X, from the throughput function."
-> But this is confusing, since the result of the throughput function
is X_calc. Since the sender only gets a new R_sample when it gets
feedback, is it meant that the sender obtains the allowed sending
rate X as described in step (4) of section 4.3?
3. Minor Nit in section 8 (formatting)
T_loss = T_before + (T_after - T_before)
* Dist(S_loss,S_before)/Dist(S_after, S_before)
Many thanks,
Gerrit
Quoting Sally Floyd:
| I have submitted the revised version of draft-ietf-dccp-rfc3448bis-01,
| available from
| "http://www.icir.org/floyd/papers/draft-ietf-dccp-rfc3448bis-01.txt",
| and the list of changes and some known open issues is appended
| below.
|
| If people could look at the changes and check them, that would be
| great.
|
| It would also be good to have feedback on the open issues:
| limitations by X_recv after a loss event; using DCCP's
| Receive Rate Length instead of ignoring one feedback packet?;
| mechanism for limiting the burst size? Is there consensus
| on any of these, that I have missed? Or other issues
| that I have missed?
|
| Many thanks,
|
| - Sally
| http://www.icir.org/floyd/
|
|
| Changes from draft-ietf-dccp-rfc3448bis-00.txt:
|
| * When initializing the loss history after the first
| data packet sent is lost or ECN-marked, TFRC uses
| a minimum receive rate of 0.5 packets per second.
|
| * For initializing the estimated packet drop rate
| for the first loss interval when coming out of slow-start,
| it is ok to use the maximum receive rate so far, not just
| the receive rate in the last round-trip time.
| Feedback from Ladan Gharai.
|
| * General feedback from Gorry Fairhurst:
| - Added a reference for TFRC-SP.
| - Clarified that R_m is sender's estimate of RTT, as reported
| in Section 3.2.1.
| - Added a definition of terms.
| - Added a discussion of why the initial value of the nofeedback
| timer is two seconds, instead of three seconds for the
| recommended initial value for TCP's retransmit timer.
|
| * General feedback from Arjuna Sathiaseelan:
| - Added more details about sending multiple feedback
| packets per RTT.
| - Added change to Section 4.3 to use the first feedback
| packet, or the first feedback packet after a
| nofeedback timer during slow-start, *if min_rate > X*.
|
| * General feedback from Gerrit Renker:
| - Changed "delta" to "t_delta".
| - Changed X_calc to X_Bps, clarified X.
| - Clarified send times in Section 4.7.
| - Changed so that tld can be initialized to either 0 or -1.
| - Fixed Section 5.5 to say that the most recent lost
| interval has weight 1/(0.75*n) *when there have been
| at least eight loss intervals*.
| - Clarified introduction about fixed-size and variable-size
| packets.
|
| * Added more about sender-based variants.
| Feedback from Guillaume Jourjon.
|
| * Corrected that the loss interval I_0 includes all transmitted
| packets, including lost and marked packets (as defined in Section
| 5.3 in the general definition.) Email from Eddie Kohler and
| Gerrit Renker.
|
| * Open issue: Feedback from Ian about problems being limited by
| X_recv after a loss event. There might not be an easy answer.
|
| * Related open issue: Add Faster Restart to RFC3448bis? Or not?
| From Ian McDonald.
|
| * Open issue: Adopt something like DCCP's Receive Rate Length,
| instead of ignoring one feedback packet? From Eddie Kohler.
|
| * Open issue: Add possible mechanisms for limited the maximum
| burst size? Using a token bucket size based on the
| current rate? Or not? Email from Eddie Kohler and Gerrit
| Renker.
|
| * Related open issue: To deal with idle periods and the like,
| in Section 4.7 say that t_i := max(t_i, t_now - RTT/2), to
| limit bursts to RTT/2 packets? Has anyone implemented this?
| Email from Eddie Kohler and Ian McDonald.
|
| * Not done: I didn't add a minimum value for the nofeedback
| timer. (Why would a nofeedback timer need to be bigger
| than max(4*R, 2*s/X)? Email discussing pros and cons from
| Arjuna.
|
| * Not addressed yet: Email thread on "RFC 3448, 4.4: Modifying
| X_recv if p = 0 at the time of last feedback".
|
| * Todo: Update Section 9 on "Changes from RFC 3448" with
| changes since draft-floyd-rfc3448bis-00.txt.
|
|
|