DCCP protocol discussions
 help / color / mirror / Atom feed
From: Eddie Kohler <kohler@cs.ucla.edu>
To: dccp@vger.kernel.org
Subject: Re: CCID 3 question: length of the `open' loss interval I_0
Date: Wed, 10 Jan 2007 17:03:25 +0000	[thread overview]
Message-ID: <45A51C5D.6020101@cs.ucla.edu> (raw)
In-Reply-To: <200701091321.00592@strip-the-willow>

Hi Gerrit,

Strictly speaking one can identify a loss event with a single ECN-marked 
packet, so I_0 might be < 3, but let that pass.  The RFC occasionally 
uses "lost" to mean "lost or marked".

The correct answer is simply to subtract X_prev from the sequence number 
of the currently received packet.  This is certainly what we were 
thinking while writing RFC4342, although I don't have time now to check 
whether the text actually defines this explicitly.

I'm almost certain but am cc'ing the IETF list for possible correction.

Among the reasons for this choice is that if you measure it the other 
way, I_0 will use different units from every other loss interval length.

However, to be honest, I'd say that RFC3448 appears to define it as 
"number of packets received since last loss event".  I think this is a 
misstatement in RFC3448 and should be considered for fixing in 
RFC3448bis.  Every other loss interval is defined as a length in 
sequence space INCLUDING lost and marked packets (RFC3448 5.3).  There 
seems no reason to EXCLUDE lost and marked packets for I_0; this might 
lead to weird rate hiccups where the TFRC rate INCREASED after a loss 
(because I_0 got longer when it became I_1)!  I would define I_0 as "the 
most recent interval, which includes the most recent loss event and all 
packets thereafter" (5.4), and say later that I_0 "includes the packets 
received since the last loss event" (rather than REPRESENTS the number 
of packets received since the last loss event) (5.5).

Eddie




Gerrit Renker wrote:
> Eddie, 
> 
> sorry to trouble you with yet another question, but it is extremely important to get this
> right. This concerns the length of I_0, the interval since the most recent loss event.
> 
> In the current implementation, we are relying on the highest sequence numbers received
> before a loss occurred. Using the terminology from [RFC 4342, 10.2], this corresponds
> to X_prev and Y_prev.
> 
> For subsequent loss intervals (assuming that more than 1 RTT lies between X_prev/Y_prev),
> we can compute the loss interval length [RFC 3448, 5.3] as modulo-2^48 distance between
> X_prev and Y_prev.
> ( Strictly speaking, the first packet known to be lost - starting the loss event - 
>   has sequence number (X_prev + 1) % 2^48. Since the next loss event begins at sequence 
>   number (Y_prev + 1) % 2^48, the distance is however the same as from X_prev to Y_prev. )
> 
> With the open loss interval I_0, however, the situation is different. In [RFC 3448, 5.5],
> I_0 is defined as "the number of packets received since the last loss event". Taking this 
> literally means the following:
> 
>   * at the instant this loss is detected,              I_0 = 3 
>     (since NUMDUPACK=3 packets need to be received to identify a loss event)
>   * when the first data packet after the loss arrives, I_0 = 4,
>   * when the i-th  data packet after the loss arrives, I_0 = 3 + i
>   * ... and so on until the next loss is detected 
> 
> Question: Is this reasoning correct, or is the intention to determine the number of 
>           data packets in I_0 by using X_prev and simply subtracting X_prev from the
>           sequence number of the currently received packet (modulo 2^48)? 
>           
> 
> The first variant seems to be conform with the RFC, the latter is conform with the way 
> the other loss intervals are computed.
> 
> Resolving this will help to clear up the loss detection algorithm we are currently using.
> 
> Gerrit

  reply	other threads:[~2007-01-10 17:03 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-01-09 13:21 CCID 3 question: length of the `open' loss interval I_0 Gerrit Renker
2007-01-10 17:03 ` Eddie Kohler [this message]
2007-01-11 10:49 ` Gerrit Renker
2007-03-05  4:06 ` [dccp] " Sally Floyd

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=45A51C5D.6020101@cs.ucla.edu \
    --to=kohler@cs.ucla.edu \
    --cc=dccp@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox