Skip to content

Commit

Permalink
Fix: detect stateless reset if connection not found
Browse files Browse the repository at this point in the history
If connection for incoming packet cannot be found, check whether
this is a stateless reset packet.  Fixes #2269.
  • Loading branch information
Dmitri Tikhonov committed Dec 28, 2018
1 parent 1cdf42b commit 5004c91
Showing 1 changed file with 9 additions and 7 deletions.
16 changes: 9 additions & 7 deletions draft-ietf-quic-transport.md
Expand Up @@ -2420,13 +2420,15 @@ the packet other than the last 16 bytes for carrying data.

### Detecting a Stateless Reset

An endpoint detects a potential stateless reset when a packet with a short
header either cannot be decrypted or is marked as a duplicate packet. The
endpoint then compares the last 16 bytes of the packet with the Stateless Reset
Token provided by its peer, either in a NEW_CONNECTION_ID frame or the server's
transport parameters. If these values are identical, the endpoint MUST enter
the draining period and not send any further packets on this connection. If the
comparison fails, the packet can be discarded.
An endpoint detects a potential stateless reset when a incoming packet
with a short header either cannot be associated with a connection;
cannot be decrypted; or is marked as a duplicate packet. The endpoint
then compares the last 16 bytes of the packet with the Stateless Reset
Token provided by its peer, either in a NEW_CONNECTION_ID frame or
the server's transport parameters. If these values are identical,
the endpoint MUST enter the draining period and not send any further
packets on this connection. If the comparison fails, the packet can be
discarded.


### Calculating a Stateless Reset Token {#reset-token}
Expand Down

0 comments on commit 5004c91

Please sign in to comment.