Sally,
On 10 Jul 2007, at 21:15, Internet-Drafts@xxxxxxxx wrote:
A New Internet-Draft is available from the on-line Internet-Drafts
directories.
This draft is a work item of the Datagram Congestion Control
Protocol Working Group of the IETF.
Title : TCP Friendly Rate Control (TFRC): Protocol Specification
Author(s) : M. Handley, et al.
Filename : draft-ietf-dccp-rfc3448bis-02.txt,.ps
Pages : 50
Date : 2007-7-10
This document specifies TCP-Friendly Rate Control (TFRC). TFRC is a
congestion control mechanism for unicast flows operating in a
best-
effort Internet environment. It is reasonably fair when competing
for bandwidth with TCP flows, but has a much lower variation of
throughput over time compared with TCP, making it more suitable
for
applications such as streaming media where a relatively smooth
sending rate is of importance.
A URL for this Internet-Draft is:
http://www.ietf.org/internet-drafts/draft-ietf-dccp-rfc3448bis-02.txt
I read this closely, and think it's in very good shape. The only
issues I found were some minor points for clarification.
There's an assumption that tld, t_now, etc. count time in since some
epoch in millisecond units, but this doesn't appear to be explicitly
stated. It may be appropriate to clarify this, perhaps in appendix A
(the need for a millisecond resolution timer is stated, but the
requirement that it counts from some epoch is not, yet many of the
calculations assume it).
Section 4.2: "...and the tld is set either to 0 or to -1". It's not
clear why there's a choice, and which value should be preferred.
Section 4.2: should "Upon receiving a round trip time measurement
(e.g., after the first..." be "Upon receiving the first round trip
measurement" for clarity?
Section 4.3 sometime refers to X_recv_set as a list, and sometimes as
a single value. For clarity, consider changing "X_recv_set is first
initialized to contain the value Infinity" to "...to contain a single
item, with value infinity" in the first paragraph of this section.
Similarly, in the code in item 4 of the list, change "Replace
X_recv_set contents by Infinity" to "Replace X_recv_set contents by a
single item, of value Infinity".
Section 4.3: The code in item 4 of the list would be clearer if the
If/Else clauses included explicit braces to indicate scope, rather
than relying on (inconsistent) indentation.
Section 4.3 (just after the "Update X_recv_set" definition): should
"We define a sender a data-limited any time..." be "We define a
sender _as_ data-limited..."?
Section 4.4, list item 1, first paragraph, discussed reducing the
sending rate by setting X_recv, but doesn't specify to what it is
set. From the later text, it looks to be set to half it's previous
value, but it would be good to clarify. Also, it's unclear where this
is reflected in the code on page 20.
Section 4.4, list item 1, last paragraph on page 19 is incorrectly
indented.
Section 4.4, list item 1, last paragraph on page 19, the sentence
"X_recv_set is the set of recent X_recv values" duplicates earlier
information, and can be removed.
Section 4.4, again, the code would be clearer if the If/Else clauses
included braces to indicate scope.
Section 6.2, list item 1: "as described above" - where?
Section 6.2, list item 2: isn't clear why this is split into 2a and
2b. Is the only difference that 2a includes the possibility that this
is a regular expiration of the time?
Section 6.3.1, last paragraph on page 33, should:
"X_target by the maximum X_rec so far, for X_recv the receive rate" be
"X_target by the maximum X_recv so far, where X_recv is the receive
rate"
^ ^^^^^ ^^
--
Colin Perkins
http://csperkins.org/