Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Immediately close with INVALID_TOKEN #3107

Merged
merged 17 commits into from Dec 3, 2019
Merged
18 changes: 12 additions & 6 deletions draft-ietf-quic-transport.md
Expand Up @@ -1643,12 +1643,18 @@ more resources available for new connections.

If a server receives a client Initial that can be unprotected but contains an
invalid Retry token, it knows the client will not accept another Retry token.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This only applies if the token is a Retry token (and not a NEW_TOKEN token).
When the client uses a NEW_TOKEN token, it would exchange this token for the Retry token when it receives a Retry packet, wouldn't it?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note that the text explicitly says "Retry token", so I don't see how this is a problem.

It can proceed with the handshake without verifying the token, drop the Initial
packet, or immediately close ({{immediate-close}}) the connection with an
INVALID_TOKEN error to cause the handshake to fail quickly instead of waiting
for the client to timeout. The server MAY close the connection without creating
connection state, including not adding the connection to those in the closing
state.



If a server receives a client Initial that can be unprotected but contains an
invalid Retry token, it knows the client will not accept another Retry token.

The server can drop such a packet and allow the client to time out to detect
handshake failure, but that is a significant latency penalty to the client.
martinthomson marked this conversation as resolved.
Show resolved Hide resolved
If possible, the server SHOULD either immediately close ({{immediate-close}})
the connection with an INVALID_TOKEN error or proceed with the handshake
without verifying the token. The server MAY close the connection without
creating connection state, including skipping the closing state.

A flow showing the use of a Retry packet is shown in {{fig-retry}}.

Expand Down