From: Gerrit Renker <gerrit@erg.abdn.ac.uk>
To: dccp@vger.kernel.org
Subject: Re: CCID 3 question: length of the `open' loss interval I_0
Date: Thu, 11 Jan 2007 10:49:28 +0000 [thread overview]
Message-ID: <200701111049.28942@strip-the-willow> (raw)
In-Reply-To: <200701091321.00592@strip-the-willow>
Eddie,
many thanks for the answer; which does clarify an issue which has cost quite
a lot of reading RFC 3448 / 4342. In particular the example you give below,
where I_0 is promoted to I_1, makes quite clear that - despite the wording in
RFC 3448 - it is indeed better to use the distance from X_prev to measure
the interval I_0. It is also more consistent with the way I_1 ... I_k are
computed, so I think the Linux implementation is heading in the right direction.
Cheers
Gerrit
Quoting Eddie Kohler:
| 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
| -
| To unsubscribe from this list: send the line "unsubscribe dccp" in
| the body of a message to majordomo@vger.kernel.org
| More majordomo info at http://vger.kernel.org/majordomo-info.html
|
|
next prev parent reply other threads:[~2007-01-11 10:49 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
2007-01-11 10:49 ` Gerrit Renker [this message]
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=200701111049.28942@strip-the-willow \
--to=gerrit@erg.abdn.ac.uk \
--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