Skip to content

Commit

Permalink
Drop "unless the client address is validated", merging the requirements.
Browse files Browse the repository at this point in the history
As @marten-seemann points out, a server might have a validated path with MTU less
than 1200 bytes when it uses Retry.
  • Loading branch information
kazuho committed Oct 9, 2020
1 parent 97b8798 commit bd089c9
Showing 1 changed file with 6 additions and 9 deletions.
15 changes: 6 additions & 9 deletions draft-ietf-quic-transport.md
Expand Up @@ -1920,10 +1920,12 @@ that are uniquely attributed to a single connection. This includes datagrams
that contain packets that are successfully processed and datagrams that contain
packets that are all discarded.

Clients MUST ensure that UDP datagrams containing Initial packets have UDP
payloads of at least 1200 bytes, adding PADDING frames as necessary.
A client that sends padded datagrams allows the server to
send more data prior to completing address validation.
Clients MUST and servers SHOULD ensure that UDP datagrams containing Initial
packets have UDP payloads of at least 1200 bytes, adding PADDING frames as
necessary. A client that sends padded datagrams allows the server to send more
data prior to completing address validation. Endpoints using UDP datagrams of
at least 1200 bytes ensures that the handshake progresses only if the path is
capable of handling QUIC traffic; see {{packet-size}}.

Loss of an Initial or Handshake packet from the server can cause a deadlock if
the client does not send additional Initial or Handshake packets. A deadlock
Expand All @@ -1943,11 +1945,6 @@ the client during connection establishment with a Retry packet (see
{{validate-retry}}) or in a previous connection using the NEW_TOKEN frame (see
{{validate-future}}).

Until the client address is validated, servers SHOULD ensure that UDP datagrams
containing Initial packets have UDP payloads of at least 1200 bytes. Doing so
ensures that the handshake progresses only if the path is capable of handling
QUIC traffic; see {{packet-size}}.

In addition to sending limits imposed prior to address validation, servers are
also constrained in what they can send by the limits set by the congestion
controller. Clients are only constrained by the congestion controller.
Expand Down

0 comments on commit bd089c9

Please sign in to comment.