Subject: An alternate solution to prevent handshake deadlocks

From: Ian Swett <[email-masked]>
Date: Mon, 3 Feb 2020 07:24:01 -0500

At the New York interim, there was substantial discussion around how to
prevent a handshake deadlock when the server hits the amplification limit.(
#1764 <https://github.com/quicwg/base-drafts/issues/1764>)

At the time, the only clear solution was to force the client to continue
sending Initial or Handshake packets, even if it had nothing to send in
them.(#1862 <https://github.com/quicwg/base-drafts/pull/1862>)

A few months ago, I realized there is an alternate solution which is
simpler, at least for my implementation.  This is for the server to send a
packet only containing a PING when it becomes limited by the
amplification factor.  This elicits an Initial(always full-sized or
Handshake(provides address confirmation) packet from the client, unblocking
the server.  It does slightly increase network load, but it's less than a
single full-sized packet due to exponential backoff.

Only a few people looked at this change(#3162
<https://github.com/quicwg/base-drafts/issues/3161>) closely, with no clear
consensus, so I'd like to get more input, so the WG can decide on how to
proceed with the design issue I filed(#3161
<https://github.com/quicwg/base-drafts/issues/3161>), possibly with no
action.

Thanks, Ian