Re: revision of draft-ietf-dccp-rfc3448bis

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

 



This is a much-overdue note of warning.

Initially we started to make the implementation clearly RFC 3448/4342
compatible. But then people got dissatisfied and wanted RTT sample from
initial Request/Response exchange, handling of idle periods, and all the
new stuff which is only in the drafts. 

Personally, I found "If (sender has been idle or data-limited within
last two round-trip times)" much more useful and concrete than
"sender has been data-limited over period covered by the last feedback packet"
The last feedback packet could have been lost, the former condition (from -01)
is something which can be tested directly, locally at the sender, without
recourse to other (potentially lost or wrong) information.


|  draft-ietf-dccp-rfc3448bis is just an internet-draft, at the moment, 
|  and doesn't
|  represent IETF consensus until it has been through both Working Group 
|  last call
|  and IETF last call, and been approved by the IESG.   There could be 
|  more changes
|  to this particular algorithm until then.
|  
|  The history is as follows:
|  
|  RFC 3448 was started at a time when the TCP initial window was one 
|  packet.
|  So RFC 3448 started with an initial sending rate of one packet per RTT, 
|  and
|  resumes after an idle period with an initial sending rate of one packet 
|  per RTT,
|  RFC 3448 didn't have to worry about feedback packets after an idle 
|  period that
|  reported a receive rate of one packet per RTT, when the receiver was 
|  eventually
|  going to receive K packets in that RTT, for K>0.
|  
|  Then TCP was modified to allow larger initial windows.
|  
|  Then CCID3 was written to allow larger initial windows also,
|  and to allow the same larger windows after an idle period.
|  
|  Then rfc3448bis was requested, to incorporate the RFC 3448 Errata
|  and also to incorporate the larger initial windows from CCID 3.
|  
|  Then the issue was raised that one part of incorporating larger
|  initial windows was to deal with the misleading information in
|  the first feedback packet after an idle period, which reported
|  the (misleading and overly-limiting) receive rate of one
|  packet per RTT.
|  
|  The first version of this draft, draft-floyd-rfc3448bis-00.txt,
|  had the following in step 4 of Section 4.3, for responding
|  to the receipt of a feedback packet:
|  
|               If (sender has been idle or data-limited)
|  
|  However, it didn't say anything about *how* the sender would
|  figure out that it had been idle or data-limited in a way that
|  affected the receive rate reported in the feedback packet.
|  The current version of draft-ietf-dccp-rfc3448bis says that
|  TFRC could use the optional "Limited Receive Rate"
|  indication in the feedback for this, but could also figure it out
|  on its own, or use the feedback proposed in the
|  Faster Restart draft.  Clearly there isn't convergence
|  yet of a recommendation of *how* the sender will figure
|  out, when it receives a feedback packet, that it had been
|  idle or data-limited in a way that affected the receive rate
|  reported in the feedback packet.
|  
|  My opinion would be that in this case, an implementor
|  could either leave it as specified in CCID 3 (based on
|  RFC 3448), or an implementor *could* add some
|  mechanism for responding differently to the receive rate
|  in feedback packets sent after an idle period.
|  
|  An implementor *can not* add the
|  "Limited Receive Rate" feedback in this version of
|  draft-ietf-dccp-rfc3448bis, and *can not* add the
|  "Receive Rate Length" feedback proposed in the
|  Faster Restart draft, until one of them is standardized
|  in the IETF.   Except for experimentation in a closed
|  environment, of course.
|  
|  It is a drag, of course, not to have everything right
|  and taken care of, with full consensus, the first time
|  around, but there it is...
|  
|  - Sally
|  http://www.icir.org/floyd/
|  
|  
|  


[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