Subject: A more complete connection migration

From: Jana Iyengar <[email-masked]>
Date: Tue, 12 Dec 2017 16:22:21 -0800

Hi all,

Tommy Pauly, Eric Kinnear, and I worked through a design of connection
migration that we have now written up in PR #1012
<https://github.com/quicwg/base-drafts/pull/1012>. This PR describes a more
complete connection migration design. Among other small bits, this design
includes the following:
- Allow a client to probe alternate paths without having to use them for
data. The PR introduces PATH_CHALLENGE and PATH_RESPONSE frames for this
purpose.
- Allow a client to do PMTU verification on a new path.
- Ensure that a server validates client ownership of a new address. The
server also uses the PATH_CHALLENGE and PATH_RESPONSE frames for this
purpose.

The new frames obviate the need for PING with data, so PING is now back to
being what it used to be -- a frame with no data -- and PONG is gone as
well. Note that this allows for a clean implementation and semantic
separation. PING can be considered a "retransmittable" frame, with
retransmission when not acknowledged, whereas PATH_CHALLENGE/RESPONSE are
less onerous, since an implementation may choose to not retransmit (or
limit retransmission attempts differently on) probing frames sent to
alternate paths.

Please keep discussion of the mechanism preferably on Issue #880
<https://github.com/quicwg/base-drafts/issues/880>, and not on the PR.