Subject: [quicwg/base-drafts] Define how an "out of order" packet is detected (#3347)

From: Jana Iyengar <[email-masked]>
Date: Tue, 14 Jan 2020 17:58:31 -0800

[Section 13.2.1 of the transport draft](https://quicwg.org/base-drafts/draft-ietf-quic-transport.html#section-13.2.1-3) currently states:
```
     In order to assist loss detection at the sender, an endpoint SHOULD send an ACK
     frame immediately on receiving an ack-eliciting packet that is out of order.
```
@kazuho notes that nowhere do we define precisely how a receiver might do this detection. Specifically a receiver could implement this as when a newly received packet is smaller than the largest acked, or as when the packet is larger than largest acked plus one. Doing the former would actually not help with loss detection, since the receiver would not ack immediately on a gap. We should add some text codifying the latter.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/issues/3347

---

From: ianswett <[email-masked]>
Date: Mon, 20 Jan 2020 11:48:19 -0800

That section used to be in recovery, where we have a definition already(which is now unused), so I'd suggest we move it over.

"Out-of-order Packets:

: Packets that do not increase the largest received packet number for its packet number space by exactly one. Packets arrive out of order when earlier packets are lost or delayed."

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/issues/3347#issuecomment-576409427

---

From: Martin Thomson <[email-masked]>
Date: Mon, 20 Jan 2020 16:19:14 -0800

Isn't this supposed to be "Packets that increase the largest received packet number ... by more than one." in this case?

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/issues/3347#issuecomment-576468213

---

From: Jana Iyengar <[email-masked]>
Date: Mon, 20 Jan 2020 16:40:00 -0800

Thinking about this some more, there are three possible definitions here for out-of-order:
1. a newly received packet is greater than largest received by more than one,
2. a newly received packet is smaller than the largest received,
3. both (1) and (2).

(1) is the obvious case where a loss happens and a subsequent packet is received. (2) is the reordering case, where an earlier packet is delivered later, and while it does not indicate loss, it does indicate that a gap was filled. It's useful to signal (2) as well immediately to prevent a sender from unnecessarily retransmitting what it believes to be a missing packet.

The definition we want for "out-of-order" is the one that is most useful for determining when to send an immediate ack. The definition in the PR captures both (1) and (2), and is probably the one we want.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/issues/3347#issuecomment-576471603

---

From: Jana Iyengar <[email-masked]>
Date: Tue, 21 Jan 2020 10:07:52 -0800

Closed #3347 via #3369.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/issues/3347#event-2967232890

---

From: Jana Iyengar <[email-masked]>
Date: Tue, 21 Jan 2020 10:09:03 -0800

@martinthomson : If you believe we ought to change the definition, please re-open, and we can continue this discussion.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/issues/3347#issuecomment-576807611