Subject: [quicwg/base-drafts] In Initial and Handshake packets, knowing undecryptable packets could accelerate handshakes with loss (#2894)

From: ianswett <[email-masked]>
Date: Sat, 13 Jul 2019 04:00:01 -0700

Currently Initial and Handshake packets include ACK frames, but the ack_delay is now unused when ACK frames are sent at those encryption levels.  We still have the ack_delay field, it just has no meaning and SHOULD be set to 0.
https://tools.ietf.org/html/draft-ietf-quic-transport-22#section-19.3

We could use the field to represent the number of undecryptable packets.  If we also changed the ack frame to allow 0 ack ranges(see below), then we could indicate a packet was received, but it was undecryptable early in the handshake.

This provides a richer signal than the previously proposed EMPTY_ACK frame, but should be optional to support in my opinion.  ie: The handshake will never rely on this field.

I expect this could be very useful for debugging as well.

Current Ack Frame format:

  0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Largest Acknowledged (i)                ...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          ACK Delay (i)                      ...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                       ACK Range Count (i)                   ...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                       First ACK Range (i)                   ...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          ACK Ranges (*)                     ...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          [ECN Counts]                       ...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Proposed ACK frame format(so 0 ranges can be represented):
  0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     ACK Delay / Undecryptable Packets (i)            ...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                       ACK Range Count (i)                   ...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          ACK Ranges (*)                     ...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          [ECN Counts]                       ...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

I thought removing Largest Acknowledged would be referenced elsewhere in the draft, but I can't find it anywhere else in transport, so that's not an issue.

If this seems like an idea people want to punt to v2, I'm fine with that, but I think it's worth considering.

-- 
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/2894

---

From: Martin Thomson <[email-masked]>
Date: Sun, 14 Jul 2019 17:13:10 -0700

I don't get how the removal of Largest Acknowledged would work.  We use that as an anchor point for the ACK frame, but without it you need to start at 0.  Then you need to allow the first range (or gap, depending on where you want to start) be zero-length.  It's not really that simple.

This smells a lot like a v2 issue to me.

-- 
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/2894#issuecomment-511246804

---

From: ianswett <[email-masked]>
Date: Sun, 21 Jul 2019 05:04:59 -0700

SG, v2-ing and closing.

-- 
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/2894#issuecomment-513547821

---

From: ianswett <[email-masked]>
Date: Sun, 21 Jul 2019 05:05:00 -0700

Closed #2894.

-- 
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/2894#event-2498012840