Subject: [quicwg/base-drafts] b37554: Rework Retry packet

From: Martin Thomson <[email-masked]>
Date: Thu, 28 Jun 2018 17:37:46 -0700

Branch: refs/heads/move-retry
  Home:   https://github.com/quicwg/base-drafts
  Commit: b3755446d985d542105628c0a6509328976e89da
      https://github.com/quicwg/base-drafts/commit/b3755446d985d542105628c0a6509328976e89da
  Author: Martin Thomson <[email-masked]>
  Date:   2018-06-29 (Fri, 29 Jun 2018)

  Changed paths:
    M draft-ietf-quic-transport.md

  Log Message:
  -----------
  Rework Retry packet

This includes several changes:

* I moved the Retry packet description.  It is more like Version Negotiation than Handshake or Initial, so it made sense to move it up.

* Retry doesn't include a packet number or payload.  Like Version Negotiation, it includes a complete definition.

* As discussed in #1451, this requires a server that might send another Retry to provide a connection ID of at least 8 octets.

* I clarified the description of fields, expanded the pictures, and made some other editorial tweaks.

Open Question: would it make sense to normalize the encoding of Retry and Initial?  The former includes a token without a length (because it's the last piece of the packet), whereas the latter includes a length-prefixed token.  It might be easier to invert the ODCID and token on Retry.  That would make the token processing more consistent.  I'm not sure if we want to consider adding a token to 0-RTT and Handshake packets, but that would fully normalize things.

Closes #1492, #1451.

      **NOTE:** This service been marked for deprecation: https://developer.github.com/changes/2018-04-25-github-services-deprecation/

      Functionality will be removed from GitHub.com on January 31st, 2019.