diff --git a/draft-ietf-quic-transport.md b/draft-ietf-quic-transport.md index 9e09b89050..f672220134 100644 --- a/draft-ietf-quic-transport.md +++ b/draft-ietf-quic-transport.md @@ -1641,6 +1641,17 @@ of connection establishment. By giving the client a different connection ID to use, a server can cause the connection to be routed to a server instance with 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. +The server can discard such a packet and allow the client to time out to +detect handshake failure, but that could impose a significant latency penalty on +the client. A server MAY proceed with the connection without verifying the +token, though the server MUST NOT consider the client address validated. If a +server chooses not to proceed with the handshake, it SHOULD immediately close +({{immediate-close}}) the connection with an INVALID_TOKEN error. Note that a +server has not established any state for the connection at this point and so +does not enter the closing period. + A flow showing the use of a Retry packet is shown in {{fig-retry}}. ~~~~ @@ -5578,6 +5589,9 @@ PROTOCOL_VIOLATION (0xA): : An endpoint detected an error with protocol compliance that was not covered by more specific error codes. +INVALID_TOKEN (0xB): +: A server received a Retry Token in a client Initial that is invalid. + CRYPTO_BUFFER_EXCEEDED (0xD): : An endpoint has received more data in CRYPTO frames than it can buffer. @@ -5973,6 +5987,7 @@ The initial contents of this registry are shown in {{iana-error-table}}. | 0x7 | FRAME_ENCODING_ERROR | Frame encoding error | {{error-codes}} | | 0x8 | TRANSPORT_PARAMETER_ERROR | Error in transport parameters | {{error-codes}} | | 0xA | PROTOCOL_VIOLATION | Generic protocol violation | {{error-codes}} | +| 0xB | INVALID_TOKEN | Invalid Token Received | {{error-codes}} | | 0xD | CRYPTO_BUFFER_EXCEEDED | CRYPTO data buffer overflowed | {{error-codes}} | {: #iana-error-table title="Initial QUIC Transport Error Codes Entries"}