Re: AD review of draft-ietf-dccp-rfc3448bis-05.txt

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi All,

What is the relationship of this update to CCID 3?  Should CCID 3
implementations follow this instead of RFC 3448?  I thought that was the
intent but RFC 4342 (CCID 3) says CCID 3 implementations MAY track
changes to the throughput equation, but SHOULD wait for explicit updates
to CCID 3 for other changes...

Tom P.

> -----Original Message-----
> From: dccp-bounces@xxxxxxxx [mailto:dccp-bounces@xxxxxxxx] On Behalf
Of
> Lars Eggert
> Sent: Friday, February 29, 2008 9:53 AM
> To: gorry@xxxxxxxxxxxxxx
> Cc: ''dccp' working group'
> Subject:  AD review of draft-ietf-dccp-rfc3448bis-05.txt
> 
> Hi,
> 
> On 2008-2-27, at 10:05, ext Gorry Fairhurst wrote:
> > This note starts the WG Last-Call for comments for the WG document
> > named
> > below:
> >
> > TCP Friendly Rate Control (TFRC): Protocol Specification
> > http://tools.ietf.org/html/draft-ietf-dccp-rfc3448bis-05.txt
> 
> I'm trying to do my AD reviews during WGLC time. For this document,
> that has actually happened.
> 
> Summary: Basically good to go. Needs a few tweaks that introduce
> RFC2119 terms in order to make it a bit clearer what implementors
> should be doing. Suggestions for that in the detailed comments below.
> 
> Lars
> 
> Detailed comments:
> 
>    Add an "Obsoletes: 3448 (if approved)" header, and add "This
document
>    obsoletes RFC 3448" to both the abstract and the introduction.
> 
> Section 1., paragraph 0:
>  > 1.  Introduction
> 
>    Thinking about eventually moving TFRC to Draft Standard, it would
be
>    good to mention in the introduction which Sections of this document
>    contain the normative specification, and which are informative.
This
>    will make it easier to determine whether any future changes have
>    impacted the specification or are informative in nature. (I'd think
>    that only Sections 3-6 are normative.)
> 
> 
> Section 3.1., paragraph 2:
>  > The throughput equation we currently recommend for TFRC is a
>  > slightly simplified version of the throughput equation for Reno TCP
> 
>    s/The throughput equation we currently recommend for/
>      The throughput equation currently REQUIRED for/
> 
> 
> Section 3.1., paragraph 11:
>  > We further simplify this by setting t_RTO = 4*R.
> 
>    s/We further simplify this by setting/Implementations SHOULD set/
> 
>  > A more accurate
>  > calculation of t_RTO is possible, but experiments with the current
>  > setting have resulted in reasonable fairness with existing TCP
>  > implementations [W00].
> 
>    s/A more accurate calculation of t_RTO is possible/
>      Implementations MAY choose to implement a more accurate
> calculation of t_RTO/
> 
>  > Another possibility would be to set t_RTO to
>  > max(4R, one second), to match the recommended minimum of one second
>  > on the RTO [RFC2988].
> 
>      s/Another possibility would be to set/Implementatins MAY also
set/
> 
> 
> Section 3.1., paragraph 12:
>  > Because many TCP implementations do not use
>  > delayed acknowledgements, we recommend b = 1.
> 
>    s/we recommend b = 1/b = 1 is RECOMMENDED/
> 
> 
> Section 3.1., paragraph 13:
>  > For the revised TCP
>  > congestion control mechanisms, [RFC2581bis] currently specifies
that
>  > the delayed acknowledgement algorithm SHOULD be used with TCP.
> 
>    s/SHOULD/should/ (or use quotes)
> 
> 
> Section 3.1., paragraph 17:
>  > In future, different TCP equations may be substituted for this
>  > equation.  The requirement is that the throughput equation be a
>  > reasonable approximation of the sending rate of TCP for conformant
>  > TCP congestion control.
> 
>    Please add a sentence stating that this will require an update to
the
>    specification in this RFC (i.e., that it isn't up to an implementor
> to
>    pick a different equation and still call it TFRC.)
> 
>    Nit: s/In future/In the future/
> 
> 
> Section 3.2.1., paragraph 2:
>  > o   A sequence number. This number is incremented by one for each
>  > data packet transmitted.  The field must be sufficiently large
>  > that it does not wrap causing two different packets with the
>  > same sequence number to be in the receiver's recent packet
>  > history at the same time.
> 
>    s/is incremented/MUST be incremented/
>    s/field must be/field MUST be/
> 
> 
> Section 3.2.1., paragraph 3:
>  > o   A timestamp indicating when the packet is sent. We denote by
>  > ts_i the timestamp of the packet with sequence number i.  The
>  > resolution of the timestamp should typically be measured in
>  > milliseconds.
> 
>    s/should/SHOULD/
> 
> 
> Section 3.2.1., paragraph 5:
>  > We note that as an alternative to a timestamp incremented in
>  > milliseconds, a "timestamp" that increments every quarter of a
>  > round-trip time would be sufficient for determining when losses
>  > belong to the same loss event, in the context of a protocol
>  > where this is understood by both sender and receiver, and where
>  > the sender saves the timestamps of transmitted data packets.
> 
>    Rephrase to use the RFC2119 term MAY instead of "would be
> sufficient".
> 
> 
> Section 4.1., paragraph 4:
>  > For the first class of applications where the segment size varies
>  > depending on the data, the sender MAY estimate the segment size s
as
>  > the average segment size over the last four loss intervals.  The
>  > sender MAY also estimate the average segment size over longer time
>  > intervals, if so desired.  The TFRC sender uses the segment size s
>  > in the throughput equation, in the setting of the maximum receive
>  > rate and the minimum and initial sending rates, and in the setting
>  > of the nofeedback timer.
> 
>    This paragraph describes two MAYs. Can we recommend one as a
SHOULD?
> 
> 
> Section 4.1., paragraph 5:
>  > The TFRC receiver may use the average segment size s in
initializing
>  > the loss history after the first loss event, but Section 6.3.1 also
>  > gives an alternate procedure that does not use the average segment
>  > size s.
> 
>    s/may/MAY/
> 
>    Also, its not clear is the procedure in Section 6.3.1 is a
>    MAY, SHOULD or a MUST. Please indicate this here and there.
> 
> 
> Section 4.3., paragraph 2:
>  > When a feedback packet is received by the sender at time t_now, the
>  > current time in seconds, the following actions should be performed.
> 
>    s/should/MUST/ (Or at least SHOULD, but what other options are
> there?)
> 
> 
> Section 4.3., paragraph 6:
>  > TFRC is not sensitive to the precise value for the filter
>  > constant q, but we recommend a default value of 0.9.
> 
>    s/we recommend a default value of 0.9/
>      a default value of 0.9 is RECOMMENDED/
> 
> 
> Section 4.4., paragraph 2:
>  > Future documents may explore other possible values for the
> recover_rate.
> 
>    s/Future documents/Future updates to this specification/
> 
> 
> Section 4.4., paragraph 3:
>  > If the nofeedback timer expires, the sender should perform the
>  > following actions:
> 
>    s/should/MUST/ (Or at least SHOULD, but what other options are
> there?)
> 
> 
> Section 4.5., paragraph 1:
>  > To reduce oscillations in queueing delay and sending rate in
>  > environments with a low degree of statistical multiplexing at the
>  > congested link, it can be useful for the sender to reduce the
>  > transmit rate as the queuing delay (and hence RTT) increases.
> 
>    s/it can be useful for the sender to/
>      it is RECOMMENDED that the sender/
> 
> 
> Section 4.5., paragraph 4:
>  > We recommend a value of 0.9 as the default for q2.
> 
>    s/We recommend a value of 0.9 as the default for q2/
>      A value of 0.9 as the default for q2 is RECOMMENDED/
> 
> 
> Section 4.5., paragraph 9:
>  > If it is
>  > not implemented, we recommend using a very low value of the weight
q
>  > for the average round-trip time.
> 
>    s/we recommend using/implementations SHOULD use/
> 
> 
> Section 4.6., paragraph 1:
>  > system.  To help maintain the correct average sending rate, the
TFRC
>  > sender may send some packets before their nominal send time.
> 
>    s/may/MAY/
> 
> 
> Section 4.6., paragraph 2:
>  > The TFRC sender is allowed to accumulate sending 'credits' for past
>  > unused send times;
> 
>    s/is allowed to/MAY/
> 
> 
> Section 5.1., paragraph 1:
>  > For the purposes
>  > of this specification, we require that if a lost packet is
>  > retransmitted, the retransmission is given a new sequence number
>  > that is the latest in the transmission sequence, and not the same
>  > sequence number as the packet that was lost.
> 
>    s/we require that/it is REQUIRED that/
> 
> 
> Section 5.1., paragraph 4:
>  > Future versions of
>  > TFRC might make the requirement for NDUPACK subsequent packets
>  > adaptive based on experienced packet reordering, but we do not
>  > specify such a mechanism here.
> 
>    s/but we do not specify such a mechanism here/
>    but such a mechanism is not part of the current specification/
> 
> 
> Section 5.2., paragraph 1:
>  > TFRC is not sensitive
>  > to how the RTT measurement sent to the receiver is made, but we
>  > recommend using the sender's calculated RTT, R, (see Section 4.3)
>  > for this purpose.
> 
>    s/we recommend using/it is RECOMMENDED to use/
> 
> 
> Section 5.4., paragraph 6:
>  > As currently specified, TFRC SHOULD NOT
>  > use values of n greater than 8, for traffic that might compete in
>  > the global Internet with TCP.
> 
>    Is 8 the RECOMMENDED value? If so, say so. If not, some uses of
>    that number (see some of the following comments) need to change.
> 
> 
> Section 5.5., paragraph 1:
>  > As described in Section 5.4, when there have been at least eight
>  > loss intervals,
> 
>    The "eight" is only an example in Section 5.4; it's a parameter
"n".
>    Rephrase. (Unless 8 becomes recommended there.)
> 
> 
> Section 5.5., paragraph 2:
>  > This section describes an optional history discounting mechanism,
> 
>    s/optional/OPTIONAL/
> 
> 
> Section 5.5., paragraph 16:
>  > This completes the description of the optional history discounting
>  > mechanism. We emphasize that this is an optional mechanism whose
>  > sole purpose is to allow TFRC to respond somewhat more quickly to
>  > the sudden absence of congestion, as represented by a long current
>  > loss interval.
> 
>    s/optional/OPTIONAL/
> 
> 
> Section 6., paragraph 1:
>  > Feedback packets should normally be sent at least once per RTT,
>  > unless the sender is sending at a rate of less than one packet per
>  > RTT, in which case a feedback packet should be send for every data
>  > packet received.  A feedback packet should also be sent whenever a
>  > new loss event is detected without waiting for the end of an RTT,
>  > and whenever an out-of-order data packet is received that removes a
>  > loss event from the history.
> 
>    s/should/SHOULD/ (twice)
> 
> 
> Section 6.1., paragraph 4:
>  > An optimization might check to see if the arrival of the packet
>  > caused a hole in the packet history to be filled and
>  > consequently two loss intervals were merged into one.
> 
>    s/An optimization/An OPTIONAL optimization/
> 
> 
> Section 6.3.1., paragraph 1:
>  > The number of packets until the first loss can not be used to
>  > compute the allowed sending rate directly, as the sending rate
>  > changes rapidly during this time.
> 
>    s/can not/MUST NOT/ (or SHOULD NOT?)
> 
> 
> Section 6.3.1., paragraph 5:
>  > In this case, the loss interval length for this
>  > (null) loss interval should be set to give a similar sending rate
to
>  > that of TCP.
> 
>    s/should/SHOULD/
> 
> 
> Section 9.2., paragraph 12:
> 
>  > Section 5.4, clarification: Section 5.4 was modified to clarify the
>  > receiver's calculation of the average loss interval when the
>  > receiver has not yet seen eight loss intervals.
> 
>    "Eight" is currently a suggestion for a parameter "n". May need to
>    rephrase.
> 
> 
> 
> 
> ------------------------------------------------------------------
> Nits; only of interest to the authors
> 
> 
> INTRODUCTION, paragraph 24:
>  >   add CWV-styoe behavior to TFRC for data-limited periods,
> 
>    Nit: s/CWV-styoe/CWV-style/
> 
> 
> INTRODUCTION, paragraph 45:
>  > It must have been deleted accidently.
> 
>    Nit: s/accidently./accidentally./
> 
> 
> Section 4.1., paragraph 6:
>  > The second class of applications are discussed separately in a
>  > separate document on TFRC-SP.  For the remainder of this section we
>  > assume the sender can estimate the segment size, and that
congestion
>  > control is performed by adjusting the number of packets sent per
>  > second.
> 
>    Nit: Cite RFC 4828 for TFRC-SP.
> 
> 
> Section 7., paragraph 4:
>  > RFC 4340 and RFC 4342 together specify CCID 3, which can be used as
>  > a sender-based variant of TFRC.  In CCID 3, each feedback packet
>  > from the receiver contains a Loss Intervals option, reporting the
>  > lengths of the most recent loss intervals.
> 
>    Nit: s/CCID3/DCCP's CCID3/
> 
> 
> Section 8.2.1., paragraph 4:
>  > Else if (NotLimited2 <= t_next)
>  > // Goal: Notlimited2 > t_next.
> 
>    Nit: s/Notlimited2/NotLimited2/
> 
> 
> Section 12., paragraph 103:
>  > window during data-limited periods (in the absense of loss).
> 
>    Nit: s/absense/absence/
> 
> 
> Section 12., paragraph 105:
>  > immdiately reported value of X_recv during a data-limited interval
> 
>    Nit: s/immdiately/immediately/
> 
> 
> Section 12., paragraph 112:
>  > losses in a data-limited period when, during the data-limied
period,
> 
>    Nit: s/data-limied/data-limited/



[Index of Archives]     [Linux Kernel Development]     [Linux DCCP]     [IETF Annouce]     [Linux Networking]     [Git]     [Security]     [Linux Assembly]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [DDR & Rambus]

  Powered by Linux