The smallest unit of communication on a stream in HTTP/3, consisting of a
header and a variable-length sequence of bytes structured according to the
frame type.
@@ -1428,29 +1428,29 @@
RFC Editor's Note: Please remove this section prior to publication of a
final version of this document.¶
-
+
HTTP/3 uses the token "h3" to identify itself in ALPN and Alt-Svc. Only
implementations of the final, published RFC can identify themselves as "h3".
Until such an RFC exists, implementations MUST NOT identify themselves using
@@ -1592,13 +1592,13 @@
the message header (see [RFC7230], Section 3.2), sent as a single HEADERS
frame (see Section 7.2.2),¶
-
optionally, the payload body, if present (see [RFC7230], Section 3.3),
+
optionally, the payload body, if present (see [RFC7230], Section 3.3),
sent as a series of DATA frames (see Section 7.2.1),¶
-
optionally, trailing headers, if present (see [RFC7230], Section 4.1.2),
+
optionally, trailing headers, if present (see [RFC7230], Section 4.1.2),
sent as a single HEADERS frame.¶
-
+
A server MAY send one or more PUSH_PROMISE (see Section 7.2.5) or
DUPLICATE_PUSH (see Section 7.2.8) frames before, after, or
interleaved with the frames of a response message. These PUSH_PROMISE and
@@ -2307,16 +2307,16 @@
A variable-length integer that identifies the server push operation. A Push
ID is used in push stream headers (Section 4.4), CANCEL_PUSH frames
(Section 7.2.3), and DUPLICATE_PUSH frames (Section 7.2.8).¶
Header Block:
-
+
QPACK-compressed request header fields for the promised response. See [QPACK]
for more details.¶
@@ -2794,74 +2794,74 @@
aborting reading of streams, or immediately closing connections.¶
H3_NO_ERROR (0x100):
-
+
No error. This is used when the connection or stream needs to be closed, but
there is no error to signal.¶
H3_GENERAL_PROTOCOL_ERROR (0x101):
-
+
Peer violated protocol requirements in a way which doesn't match a more
specific error code, or endpoint declines to use the more specific error code.¶
H3_INTERNAL_ERROR (0x102):
-
+
An internal error has occurred in the HTTP stack.¶
H3_STREAM_CREATION_ERROR (0x103):
-
+
The endpoint detected that its peer created a stream that it will not accept.¶
H3_CLOSED_CRITICAL_STREAM (0x104):
-
+
A stream required by the connection was closed or reset.¶
H3_FRAME_UNEXPECTED (0x105):
-
+
A frame was received which was not permitted in the current state or on the
current stream.¶
H3_FRAME_ERROR (0x106):
-
+
A frame that fails to satisfy layout requirements or with an invalid size
was received.¶
H3_EXCESSIVE_LOAD (0x107):
-
+
The endpoint detected that its peer is exhibiting a behavior that might be
generating excessive load.¶
H3_ID_ERROR (0x108):
-
+
A Stream ID or Push ID was used incorrectly, such as exceeding a limit,
reducing a limit, or being reused.¶
H3_SETTINGS_ERROR (0x109):
-
+
An endpoint detected an error in the payload of a SETTINGS frame.¶
H3_MISSING_SETTINGS (0x10A):
-
+
No SETTINGS frame was received at the beginning of the control stream.¶
H3_REQUEST_REJECTED (0x10B):
-
+
A server rejected a request without performing any application processing.¶
H3_REQUEST_CANCELLED (0x10C):
-
+
The request or its response (including pushed response) is cancelled.¶
H3_REQUEST_INCOMPLETE (0x10D):
-
+
The client's stream terminated without containing a fully-formed request.¶
H3_CONNECT_ERROR (0x10F):
-
+
The connection established in response to a CONNECT request was reset or
abnormally closed.¶
H3_VERSION_FALLBACK (0x110):
-
+
The requested operation cannot be served over HTTP/3. The peer should
retry over HTTP/1.1.¶
Belshe, M., Peon, R., and M. Thomson, Ed., "Hypertext Transfer Protocol Version 2 (HTTP/2)", RFC 7540, DOI 10.17487/RFC7540, , <https://www.rfc-editor.org/info/rfc7540>.
Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, , <https://www.rfc-editor.org/info/rfc2119>.
[RFC5234]
-
+
Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax Specifications: ABNF", STD 68, RFC 5234, DOI 10.17487/RFC5234, , <https://www.rfc-editor.org/info/rfc5234>.
[RFC6066]
-
+
Eastlake 3rd, D., "Transport Layer Security (TLS) Extensions: Extension Definitions", RFC 6066, DOI 10.17487/RFC6066, , <https://www.rfc-editor.org/info/rfc6066>.
Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing", RFC 7230, DOI 10.17487/RFC7230, , <https://www.rfc-editor.org/info/rfc7230>.
[RFC7231]
-
+
Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content", RFC 7231, DOI 10.17487/RFC7231, , <https://www.rfc-editor.org/info/rfc7231>.
Cotton, M., Leiba, B., and T. Narten, "Guidelines for Writing an IANA Considerations Section in RFCs", BCP 26, RFC 8126, DOI 10.17487/RFC8126, , <https://www.rfc-editor.org/info/rfc8126>.
Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, , <https://www.rfc-editor.org/info/rfc8174>.
Friedl, S., Popov, A., Langley, A., and E. Stephan, "Transport Layer Security (TLS) Application-Layer Protocol Negotiation Extension", RFC 7301, DOI 10.17487/RFC7301, , <https://www.rfc-editor.org/info/rfc7301>.
Padding is not defined in HTTP/3 frames. See Section 7.2.1.¶
HEADERS (0x1):
-
+
The PRIORITY region of HEADERS is not defined in HTTP/3 frames. Padding is not
defined in HTTP/3 frames. See Section 7.2.2.¶
PRIORITY (0x2):
-
+
As described in Appendix A.2.1, HTTP/3 does not provide a means of
signaling priority.¶
RST_STREAM (0x3):
-
+
RST_STREAM frames do not exist, since QUIC provides stream lifecycle
management. The same code point is used for the CANCEL_PUSH frame
(Section 7.2.3).¶
This is removed in favor of the MAX_PUSH_ID which provides a more granular
control over server push.¶
SETTINGS_MAX_CONCURRENT_STREAMS:
-
+
QUIC controls the largest open Stream ID as part of its flow control logic.
Specifying SETTINGS_MAX_CONCURRENT_STREAMS in the SETTINGS frame is an error.¶
SETTINGS_INITIAL_WINDOW_SIZE:
-
+
QUIC requires both stream and connection flow control window sizes to be
specified in the initial transport handshake. Specifying
SETTINGS_INITIAL_WINDOW_SIZE in the SETTINGS frame is an error.¶
SETTINGS_MAX_FRAME_SIZE:
-
+
This setting has no equivalent in HTTP/3. Specifying it in the SETTINGS frame
is an error.¶
This is mapped to H3_GENERAL_PROTOCOL_ERROR except in cases where more
specific error codes have been defined. This includes H3_FRAME_UNEXPECTED
and H3_CLOSED_CRITICAL_STREAM defined in Section 8.1.¶
Not applicable, since no acknowledgement of SETTINGS is defined.¶
STREAM_CLOSED (0x5):
-
+
Not applicable, since QUIC handles stream management.¶
FRAME_SIZE_ERROR (0x6):
-
+
H3_FRAME_ERROR error code defined in Section 8.1.¶
REFUSED_STREAM (0x7):
-
+
H3_REQUEST_REJECTED (in Section 8.1) is used to indicate that a
request was not processed. Otherwise, not applicable because QUIC handles
stream management.¶
HTTP_MALFORMED_FRAME replaced by HTTP_FRAME_ERROR, HTTP_ID_ERROR, and others¶
+
HTTP_MALFORMED_FRAME replaced by HTTP_FRAME_ERROR, HTTP_ID_ERROR, and others¶
-
+
-
Clarify how unknown frame types interact with required frame sequence
+
Clarify how unknown frame types interact with required frame sequence
(#2867,#2858)¶
-
Describe interactions with the transport in terms of defined interface terms
+
Describe interactions with the transport in terms of defined interface terms
(#2857,#2805)¶
-
Require the use of the http-opportunistic resource (RFC 8164) when scheme is
+
Require the use of the http-opportunistic resource (RFC 8164) when scheme is
http (#2439,#2973)¶
-
Settings identifiers cannot be duplicated (#2979)¶
+
Settings identifiers cannot be duplicated (#2979)¶
-
+
Changes to SETTINGS frames in 0-RTT (#2972,#2790,#2945):¶
Servers must send all settings with non-default values in their SETTINGS
frame, even when resuming¶
-
If a client doesn't have settings associated with a 0-RTT ticket, it uses
+
If a client doesn't have settings associated with a 0-RTT ticket, it uses
the defaults¶
-
Servers can't accept early data if they cannot recover the settings the
+
Servers can't accept early data if they cannot recover the settings the
client will have remembered¶
-
+
-
Clarify that Upgrade and the 101 status code are prohibited (#2898,#2889)¶
+
Clarify that Upgrade and the 101 status code are prohibited (#2898,#2889)¶
-
Clarify that frame types reserved for greasing can occur on any stream, but
+
Clarify that frame types reserved for greasing can occur on any stream, but
frame types reserved due to HTTP/2 correspondence are prohibited
(#2997,#2692,#2693)¶
-
Unknown error codes cannot be treated as errors (#2998,#2816)¶
+
Unknown error codes cannot be treated as errors (#2998,#2816)¶
-
+
@@ -3972,46 +3972,46 @@
Prohibit closing the control stream (#2509, #2666)¶
-
Change default priority to use an orphan node (#2502, #2690)¶
+
Change default priority to use an orphan node (#2502, #2690)¶
-
Exclusive priorities are restored (#2754, #2781)¶
+
Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, , <https://www.rfc-editor.org/info/rfc2119>.
[RFC8174]
-
+
Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, , <https://www.rfc-editor.org/info/rfc8174>.
QUIC uses TLS [QUIC-TLS] and some TLS messages are visible on the wire¶
-
QUIC long headers are only exchanged during connection establishment¶
+
QUIC long headers are only exchanged during connection establishment¶
-
Every flow on a given 5-tuple will include a connection establishment phase¶
+
Every flow on a given 5-tuple will include a connection establishment phase¶
-
The first packets exchanged on a flow use the long header¶
+
The first packets exchanged on a flow use the long header¶
-
QUIC forbids acknowledgments of packets that only contain ACK frames,
+
QUIC forbids acknowledgments of packets that only contain ACK frames,
therefore the last packet before a long period of quiescence might be assumed
to contain an acknowledgment¶
-
QUIC uses an AEAD (AEAD_AES_128_GCM [RFC5116]) to protect the packets it
+
QUIC uses an AEAD (AEAD_AES_128_GCM [RFC5116]) to protect the packets it
exchanges during connection establishment¶
-
QUIC packet numbers appear after the Version field¶
+
QUIC packet numbers appear after the Version field¶
-
QUIC packet numbers increase by one for every packet sent¶
+
QUIC packet numbers increase by one for every packet sent¶
-
QUIC has a minimum size for the first handshake packet sent by a client¶
+
QUIC has a minimum size for the first handshake packet sent by a client¶
QUIC endpoints change the version they speak if they are sent a Version
+
QUIC endpoints change the version they speak if they are sent a Version
Negotiation packet¶
-
The version field in a QUIC long header is the same in both directions¶
+
The version field in a QUIC long header is the same in both directions¶
-
Only one connection at a time is established between any pair of QUIC
+
Only one connection at a time is established between any pair of QUIC
endpoints¶
-
+
diff --git a/ecn-alg/draft-ietf-quic-invariants.txt b/ecn-alg/draft-ietf-quic-invariants.txt
index fe9e13592b..2444a581d1 100644
--- a/ecn-alg/draft-ietf-quic-invariants.txt
+++ b/ecn-alg/draft-ietf-quic-invariants.txt
@@ -4,8 +4,8 @@
QUIC M. Thomson
Internet-Draft Mozilla
-Intended status: Standards Track 7 January 2020
-Expires: 10 July 2020
+Intended status: Standards Track 8 January 2020
+Expires: 11 July 2020
Version-Independent Properties of QUIC
@@ -45,7 +45,7 @@ Status of This Memo
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
- This Internet-Draft will expire on 10 July 2020.
+ This Internet-Draft will expire on 11 July 2020.
@@ -53,7 +53,7 @@ Status of This Memo
-Thomson Expires 10 July 2020 [Page 1]
+Thomson Expires 11 July 2020 [Page 1]
Internet-Draft QUIC Invariants January 2020
@@ -109,7 +109,7 @@ Table of Contents
-Thomson Expires 10 July 2020 [Page 2]
+Thomson Expires 11 July 2020 [Page 2]
Internet-Draft QUIC Invariants January 2020
@@ -165,7 +165,7 @@ Internet-Draft QUIC Invariants January 2020
-Thomson Expires 10 July 2020 [Page 3]
+Thomson Expires 11 July 2020 [Page 3]
Internet-Draft QUIC Invariants January 2020
@@ -221,7 +221,7 @@ Internet-Draft QUIC Invariants January 2020
-Thomson Expires 10 July 2020 [Page 4]
+Thomson Expires 11 July 2020 [Page 4]
Internet-Draft QUIC Invariants January 2020
@@ -277,7 +277,7 @@ Internet-Draft QUIC Invariants January 2020
-Thomson Expires 10 July 2020 [Page 5]
+Thomson Expires 11 July 2020 [Page 5]
Internet-Draft QUIC Invariants January 2020
@@ -333,7 +333,7 @@ Internet-Draft QUIC Invariants January 2020
-Thomson Expires 10 July 2020 [Page 6]
+Thomson Expires 11 July 2020 [Page 6]
Internet-Draft QUIC Invariants January 2020
@@ -389,7 +389,7 @@ Internet-Draft QUIC Invariants January 2020
-Thomson Expires 10 July 2020 [Page 7]
+Thomson Expires 11 July 2020 [Page 7]
Internet-Draft QUIC Invariants January 2020
@@ -399,7 +399,7 @@ Internet-Draft QUIC Invariants January 2020
[QUIC-TRANSPORT]
Iyengar, J., Ed. and M. Thomson, Ed., "QUIC: A UDP-Based
Multiplexed and Secure Transport", Work in Progress,
- Internet-Draft, draft-ietf-quic-transport-latest, 7
+ Internet-Draft, draft-ietf-quic-transport-latest, 8
January 2020, .
@@ -416,7 +416,7 @@ Internet-Draft QUIC Invariants January 2020
[QUIC-TLS] Thomson, M., Ed. and S. Turner, Ed., "Using Transport
Layer Security (TLS) to Secure QUIC", Work in Progress,
- Internet-Draft, draft-ietf-quic-tls-latest, 7 January
+ Internet-Draft, draft-ietf-quic-tls-latest, 8 January
2020,
.
@@ -445,7 +445,7 @@ Appendix A. Incorrect Assumptions
-Thomson Expires 10 July 2020 [Page 8]
+Thomson Expires 11 July 2020 [Page 8]
Internet-Draft QUIC Invariants January 2020
@@ -501,4 +501,4 @@ Author's Address
-Thomson Expires 10 July 2020 [Page 9]
+Thomson Expires 11 July 2020 [Page 9]
diff --git a/ecn-alg/draft-ietf-quic-qpack.html b/ecn-alg/draft-ietf-quic-qpack.html
index b100ac26fe..3182078c38 100644
--- a/ecn-alg/draft-ietf-quic-qpack.html
+++ b/ecn-alg/draft-ietf-quic-qpack.html
@@ -13,7 +13,7 @@
representing HTTP header fields, to be used in HTTP/3. This is a variation of
HPACK header compression that seeks to reduce head-of-line blocking.
" name="description">
-
+
@@ -822,7 +822,7 @@
Krasic, et al.
-
Expires 10 July 2020
+
Expires 11 July 2020
[Page]
@@ -835,12 +835,12 @@
draft-ietf-quic-qpack-latest
Published:
-
+
Intended Status:
Standards Track
Expires:
-
+
Authors:
@@ -896,7 +896,7 @@
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."¶
- This Internet-Draft will expire on 10 July 2020.¶
+ This Internet-Draft will expire on 11 July 2020.¶
Definitions of terms that are used in this document:¶
Header field:
-
+
A name-value pair sent as part of an HTTP message.¶
Header list:
-
+
An ordered collection of header fields associated with an HTTP message. A
header list can contain multiple header fields with the same name. It can
also contain duplicate header fields.¶
Indicates that x uses the prefixed integer encoding defined in
Section 4.1.1, beginning with an A-bit prefix.¶
x ...
-
+
Indicates that x is variable-length and extends to the end of the region.¶
@@ -1801,11 +1801,11 @@
It carries an unframed sequence of encoder instructions from encoder
to decoder.¶
-
A decoder stream is a unidirectional stream of type 0x03.
+
A decoder stream is a unidirectional stream of type 0x03.
It carries an unframed sequence of decoder instructions from decoder
to encoder.¶
-
+
HTTP/3 endpoints contain a QPACK encoder and decoder. Each endpoint MUST
initiate at most one encoder stream and at most one decoder stream. Receipt of a
second instance of either stream type MUST be treated as a connection error of
@@ -2383,12 +2383,12 @@
QPACK defines two settings which are included in the HTTP/3 SETTINGS frame.¶
SETTINGS_QPACK_MAX_TABLE_CAPACITY (0x1):
-
+
The default value is zero. See Section 3.2 for usage. This is
the equivalent of the SETTINGS_HEADER_TABLE_SIZE from HTTP/2.¶
Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, , <https://www.rfc-editor.org/info/rfc2119>.
Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, , <https://www.rfc-editor.org/info/rfc8174>.
Belshe, M., Peon, R., and M. Thomson, Ed., "Hypertext Transfer Protocol Version 2 (HTTP/2)", RFC 7540, DOI 10.17487/RFC7540, , <https://www.rfc-editor.org/info/rfc7540>.
@@ -3187,7 +3187,7 @@
RFC Editor's Note: Please remove this section prior to publication of a
final version of this document.¶
-
+
@@ -3204,11 +3204,11 @@
Decoders MUST emit Header Acknowledgements (#2939)¶
-
Updated error code for multiple encoder or decoder streams (#2970)¶
+
Updated error code for multiple encoder or decoder streams (#2970)¶
-
Added explicit defaults for new SETTINGS (#2974)¶
+
Buck's contribution was supported by Google during his employment there.¶
A substantial portion of Mike's contribution was supported by Microsoft during
his employment there.¶
diff --git a/ecn-alg/draft-ietf-quic-qpack.txt b/ecn-alg/draft-ietf-quic-qpack.txt
index 5f813c45ff..af3b3c5eb8 100644
--- a/ecn-alg/draft-ietf-quic-qpack.txt
+++ b/ecn-alg/draft-ietf-quic-qpack.txt
@@ -5,10 +5,10 @@
QUIC C. Krasic
Internet-Draft Netflix
Intended status: Standards Track M. Bishop
-Expires: 10 July 2020 Akamai Technologies
+Expires: 11 July 2020 Akamai Technologies
A. Frindell, Ed.
Facebook
- 7 January 2020
+ 8 January 2020
QPACK: Header Compression for HTTP/3
@@ -48,12 +48,12 @@ Status of This Memo
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
- This Internet-Draft will expire on 10 July 2020.
+ This Internet-Draft will expire on 11 July 2020.
-Krasic, et al. Expires 10 July 2020 [Page 1]
+Krasic, et al. Expires 11 July 2020 [Page 1]
Internet-Draft QPACK January 2020
@@ -109,7 +109,7 @@ Table of Contents
-Krasic, et al. Expires 10 July 2020 [Page 2]
+Krasic, et al. Expires 11 July 2020 [Page 2]
Internet-Draft QPACK January 2020
@@ -165,7 +165,7 @@ Internet-Draft QPACK January 2020
-Krasic, et al. Expires 10 July 2020 [Page 3]
+Krasic, et al. Expires 11 July 2020 [Page 3]
Internet-Draft QPACK January 2020
@@ -221,7 +221,7 @@ Internet-Draft QPACK January 2020
-Krasic, et al. Expires 10 July 2020 [Page 4]
+Krasic, et al. Expires 11 July 2020 [Page 4]
Internet-Draft QPACK January 2020
@@ -277,7 +277,7 @@ Internet-Draft QPACK January 2020
-Krasic, et al. Expires 10 July 2020 [Page 5]
+Krasic, et al. Expires 11 July 2020 [Page 5]
Internet-Draft QPACK January 2020
@@ -333,7 +333,7 @@ Internet-Draft QPACK January 2020
-Krasic, et al. Expires 10 July 2020 [Page 6]
+Krasic, et al. Expires 11 July 2020 [Page 6]
Internet-Draft QPACK January 2020
@@ -389,7 +389,7 @@ Internet-Draft QPACK January 2020
-Krasic, et al. Expires 10 July 2020 [Page 7]
+Krasic, et al. Expires 11 July 2020 [Page 7]
Internet-Draft QPACK January 2020
@@ -445,7 +445,7 @@ Internet-Draft QPACK January 2020
-Krasic, et al. Expires 10 July 2020 [Page 8]
+Krasic, et al. Expires 11 July 2020 [Page 8]
Internet-Draft QPACK January 2020
@@ -501,7 +501,7 @@ Internet-Draft QPACK January 2020
-Krasic, et al. Expires 10 July 2020 [Page 9]
+Krasic, et al. Expires 11 July 2020 [Page 9]
Internet-Draft QPACK January 2020
@@ -557,7 +557,7 @@ Internet-Draft QPACK January 2020
-Krasic, et al. Expires 10 July 2020 [Page 10]
+Krasic, et al. Expires 11 July 2020 [Page 10]
Internet-Draft QPACK January 2020
@@ -613,7 +613,7 @@ Internet-Draft QPACK January 2020
-Krasic, et al. Expires 10 July 2020 [Page 11]
+Krasic, et al. Expires 11 July 2020 [Page 11]
Internet-Draft QPACK January 2020
@@ -669,7 +669,7 @@ Internet-Draft QPACK January 2020
-Krasic, et al. Expires 10 July 2020 [Page 12]
+Krasic, et al. Expires 11 July 2020 [Page 12]
Internet-Draft QPACK January 2020
@@ -725,7 +725,7 @@ Internet-Draft QPACK January 2020
-Krasic, et al. Expires 10 July 2020 [Page 13]
+Krasic, et al. Expires 11 July 2020 [Page 13]
Internet-Draft QPACK January 2020
@@ -781,7 +781,7 @@ Internet-Draft QPACK January 2020
-Krasic, et al. Expires 10 July 2020 [Page 14]
+Krasic, et al. Expires 11 July 2020 [Page 14]
Internet-Draft QPACK January 2020
@@ -837,7 +837,7 @@ Internet-Draft QPACK January 2020
-Krasic, et al. Expires 10 July 2020 [Page 15]
+Krasic, et al. Expires 11 July 2020 [Page 15]
Internet-Draft QPACK January 2020
@@ -893,7 +893,7 @@ Internet-Draft QPACK January 2020
-Krasic, et al. Expires 10 July 2020 [Page 16]
+Krasic, et al. Expires 11 July 2020 [Page 16]
Internet-Draft QPACK January 2020
@@ -949,7 +949,7 @@ Internet-Draft QPACK January 2020
-Krasic, et al. Expires 10 July 2020 [Page 17]
+Krasic, et al. Expires 11 July 2020 [Page 17]
Internet-Draft QPACK January 2020
@@ -1005,7 +1005,7 @@ Internet-Draft QPACK January 2020
-Krasic, et al. Expires 10 July 2020 [Page 18]
+Krasic, et al. Expires 11 July 2020 [Page 18]
Internet-Draft QPACK January 2020
@@ -1061,7 +1061,7 @@ Internet-Draft QPACK January 2020
-Krasic, et al. Expires 10 July 2020 [Page 19]
+Krasic, et al. Expires 11 July 2020 [Page 19]
Internet-Draft QPACK January 2020
@@ -1117,7 +1117,7 @@ Internet-Draft QPACK January 2020
-Krasic, et al. Expires 10 July 2020 [Page 20]
+Krasic, et al. Expires 11 July 2020 [Page 20]
Internet-Draft QPACK January 2020
@@ -1173,7 +1173,7 @@ Internet-Draft QPACK January 2020
-Krasic, et al. Expires 10 July 2020 [Page 21]
+Krasic, et al. Expires 11 July 2020 [Page 21]
Internet-Draft QPACK January 2020
@@ -1229,7 +1229,7 @@ Internet-Draft QPACK January 2020
-Krasic, et al. Expires 10 July 2020 [Page 22]
+Krasic, et al. Expires 11 July 2020 [Page 22]
Internet-Draft QPACK January 2020
@@ -1285,7 +1285,7 @@ Internet-Draft QPACK January 2020
-Krasic, et al. Expires 10 July 2020 [Page 23]
+Krasic, et al. Expires 11 July 2020 [Page 23]
Internet-Draft QPACK January 2020
@@ -1341,7 +1341,7 @@ Internet-Draft QPACK January 2020
-Krasic, et al. Expires 10 July 2020 [Page 24]
+Krasic, et al. Expires 11 July 2020 [Page 24]
Internet-Draft QPACK January 2020
@@ -1397,7 +1397,7 @@ Internet-Draft QPACK January 2020
-Krasic, et al. Expires 10 July 2020 [Page 25]
+Krasic, et al. Expires 11 July 2020 [Page 25]
Internet-Draft QPACK January 2020
@@ -1453,7 +1453,7 @@ Internet-Draft QPACK January 2020
-Krasic, et al. Expires 10 July 2020 [Page 26]
+Krasic, et al. Expires 11 July 2020 [Page 26]
Internet-Draft QPACK January 2020
@@ -1488,13 +1488,13 @@ Internet-Draft QPACK January 2020
[HTTP3] Bishop, M., Ed., "Hypertext Transfer Protocol Version 3
(HTTP/3)", Work in Progress, Internet-Draft, draft-ietf-
- quic-http-latest, 7 January 2020,
+ quic-http-latest, 8 January 2020,
.
[QUIC-TRANSPORT]
Iyengar, J., Ed. and M. Thomson, Ed., "QUIC: A UDP-Based
Multiplexed and Secure Transport", Work in Progress,
- Internet-Draft, draft-ietf-quic-transport-latest, 7
+ Internet-Draft, draft-ietf-quic-transport-latest, 8
January 2020, .
@@ -1509,7 +1509,7 @@ Internet-Draft QPACK January 2020
-Krasic, et al. Expires 10 July 2020 [Page 27]
+Krasic, et al. Expires 11 July 2020 [Page 27]
Internet-Draft QPACK January 2020
@@ -1565,7 +1565,7 @@ Appendix A. Static Table
-Krasic, et al. Expires 10 July 2020 [Page 28]
+Krasic, et al. Expires 11 July 2020 [Page 28]
Internet-Draft QPACK January 2020
@@ -1621,7 +1621,7 @@ Internet-Draft QPACK January 2020
-Krasic, et al. Expires 10 July 2020 [Page 29]
+Krasic, et al. Expires 11 July 2020 [Page 29]
Internet-Draft QPACK January 2020
@@ -1677,7 +1677,7 @@ Internet-Draft QPACK January 2020
-Krasic, et al. Expires 10 July 2020 [Page 30]
+Krasic, et al. Expires 11 July 2020 [Page 30]
Internet-Draft QPACK January 2020
@@ -1733,7 +1733,7 @@ Internet-Draft QPACK January 2020
-Krasic, et al. Expires 10 July 2020 [Page 31]
+Krasic, et al. Expires 11 July 2020 [Page 31]
Internet-Draft QPACK January 2020
@@ -1789,7 +1789,7 @@ Appendix B. Sample One Pass Encoding Algorithm
-Krasic, et al. Expires 10 July 2020 [Page 32]
+Krasic, et al. Expires 11 July 2020 [Page 32]
Internet-Draft QPACK January 2020
@@ -1845,7 +1845,7 @@ Appendix C. Change Log
-Krasic, et al. Expires 10 July 2020 [Page 33]
+Krasic, et al. Expires 11 July 2020 [Page 33]
Internet-Draft QPACK January 2020
@@ -1901,7 +1901,7 @@ C.8. Since draft-ietf-quic-qpack-02
-Krasic, et al. Expires 10 July 2020 [Page 34]
+Krasic, et al. Expires 11 July 2020 [Page 34]
Internet-Draft QPACK January 2020
@@ -1957,7 +1957,7 @@ C.11. Since draft-ietf-quic-qcram-00
-Krasic, et al. Expires 10 July 2020 [Page 35]
+Krasic, et al. Expires 11 July 2020 [Page 35]
Internet-Draft QPACK January 2020
@@ -2013,7 +2013,7 @@ Authors' Addresses
-Krasic, et al. Expires 10 July 2020 [Page 36]
+Krasic, et al. Expires 11 July 2020 [Page 36]
Internet-Draft QPACK January 2020
@@ -2069,4 +2069,4 @@ Internet-Draft QPACK January 2020
-Krasic, et al. Expires 10 July 2020 [Page 37]
+Krasic, et al. Expires 11 July 2020 [Page 37]
diff --git a/ecn-alg/draft-ietf-quic-recovery.html b/ecn-alg/draft-ietf-quic-recovery.html
index e3dda87a4c..55c5f9532a 100644
--- a/ecn-alg/draft-ietf-quic-recovery.html
+++ b/ecn-alg/draft-ietf-quic-recovery.html
@@ -11,7 +11,7 @@
This document describes loss detection and congestion control mechanisms for
QUIC.
" name="description">
-
+
@@ -820,7 +820,7 @@
Iyengar & Swett
-
Expires 10 July 2020
+
Expires 11 July 2020
[Page]
@@ -833,12 +833,12 @@
draft-ietf-quic-recovery-latest
Published:
-
+
Intended Status:
Standards Track
Expires:
-
+
Authors:
@@ -890,7 +890,7 @@
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."¶
- This Internet-Draft will expire on 10 July 2020.¶
+ This Internet-Draft will expire on 11 July 2020.¶
Definitions of terms that are used in this document:¶
ACK-only:
-
+
Any packet containing only one or more ACK frame(s).¶
In-flight:
-
+
Packets are considered in-flight when they have been sent and
are not ACK-only, and they are not acknowledged, declared lost,
or abandoned along with old keys.¶
Ack-eliciting Frames:
-
+
All frames other than ACK, PADDING, and CONNECTION_CLOSE are considered
ack-eliciting.¶
Ack-eliciting Packets:
-
+
Packets that contain ack-eliciting frames elicit an ACK from the receiver
within the maximum ack delay and are called ack-eliciting packets.¶
Out-of-order Packets:
-
+
Packets that do not increase the largest received packet number for its
packet number space by exactly one. Packets arrive out of order
when earlier packets are lost or delayed.¶
@@ -1303,17 +1303,17 @@
ack-eliciting frames are only acknowledged along with ack-eliciting
packets.¶
-
Long header packets that contain CRYPTO frames are critical to the
+
Long header packets that contain CRYPTO frames are critical to the
performance of the QUIC handshake and use shorter timers for
acknowledgement.¶
Packets containing frames besides ACK or CONNECTION_CLOSE frames count toward
congestion control limits and are considered in-flight.¶
-
PADDING frames cause packets to contribute toward bytes in flight without
+
PADDING frames cause packets to contribute toward bytes in flight without
directly causing an acknowledgment to be sent.¶
-
+
@@ -1435,9 +1435,9 @@
the largest acknowledged packet number is newly acknowledged, and¶
-
at least one of the newly acknowledged packets was ack-eliciting.¶
+
at least one of the newly acknowledged packets was ack-eliciting.¶
-
+
The RTT sample, latest_rtt, is generated as the time elapsed since the largest
acknowledged packet was sent:¶
@@ -1503,14 +1503,14 @@
MUST ignore the Ack Delay field of the ACK frame for packets sent in the
Initial and Handshake packet number space.¶
-
MUST use the lesser of the value reported in Ack Delay field of the ACK frame
+
MUST use the lesser of the value reported in Ack Delay field of the ACK frame
and the peer's max_ack_delay transport parameter.¶
-
MUST NOT apply the adjustment if the resulting RTT sample is smaller than the
+
MUST NOT apply the adjustment if the resulting RTT sample is smaller than the
min_rtt. This limits the underestimation that a misreporting peer can cause
to the smoothed_rtt.¶
-
+
On the first RTT sample in a connection, the smoothed_rtt is set to the
latest_rtt.¶
smoothed_rtt and rttvar are computed as follows, similar to [RFC6298]. On
@@ -1562,11 +1562,11 @@
The packet is unacknowledged, in-flight, and was sent prior to an
acknowledged packet.¶
-
Either its packet number is kPacketThreshold smaller than an acknowledged
+
Either its packet number is kPacketThreshold smaller than an acknowledged
packet (Section 5.1.1), or it was sent long enough in the past
(Section 5.1.2).¶
-
+
The acknowledgement indicates that a packet sent later was delivered, and the
packet and time thresholds provide some tolerance for packet reordering.¶
Spuriously declaring packets as lost leads to unnecessary retransmissions and
@@ -1610,11 +1610,11 @@
the latest RTT sample is lower than the smoothed RTT, perhaps due to
reordering where the acknowledgement encountered a shorter path;¶
-
the latest RTT sample is higher than the smoothed RTT, perhaps due to a
+
the latest RTT sample is higher than the smoothed RTT, perhaps due to a
sustained increase in the actual RTT, but the smoothed RTT has not yet caught
up.¶
-
+
The RECOMMENDED time threshold (kTimeThreshold), expressed as a round-trip time
multiplier, is 9/8.¶
Implementations MAY experiment with absolute thresholds, thresholds from
@@ -2109,16 +2109,16 @@
Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, , <https://www.rfc-editor.org/info/rfc2119>.
[RFC8174]
-
+
Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, , <https://www.rfc-editor.org/info/rfc8174>.
@@ -2128,49 +2128,49 @@
[FACK]
-
+
Mathis, M. and J. Mahdavi, "Forward Acknowledgement: Refining TCP Congestion Control", ACM SIGCOMM , .
Ramakrishnan, K., Floyd, S., and D. Black, "The Addition of Explicit Congestion Notification (ECN) to IP", RFC 3168, DOI 10.17487/RFC3168, , <https://www.rfc-editor.org/info/rfc3168>.
Bhandarkar, S., Reddy, A. L. N., Allman, M., and E. Blanton, "Improving the Robustness of TCP to Non-Congestion Events", RFC 4653, DOI 10.17487/RFC4653, , <https://www.rfc-editor.org/info/rfc4653>.
Sarolahti, P., Kojo, M., Yamamoto, K., and M. Hata, "Forward RTO-Recovery (F-RTO): An Algorithm for Detecting Spurious Retransmission Timeouts with TCP", RFC 5682, DOI 10.17487/RFC5682, , <https://www.rfc-editor.org/info/rfc5682>.
[RFC5827]
-
+
Allman, M., Avrachenkov, K., Ayesta, U., Blanton, J., and P. Hurtig, "Early Retransmit for TCP and Stream Control Transmission Protocol (SCTP)", RFC 5827, DOI 10.17487/RFC5827, , <https://www.rfc-editor.org/info/rfc5827>.
[RFC6298]
-
+
Paxson, V., Allman, M., Chu, J., and M. Sargent, "Computing TCP's Retransmission Timer", RFC 6298, DOI 10.17487/RFC6298, , <https://www.rfc-editor.org/info/rfc6298>.
[RFC6582]
-
+
Henderson, T., Floyd, S., Gurtov, A., and Y. Nishida, "The NewReno Modification to TCP's Fast Recovery Algorithm", RFC 6582, DOI 10.17487/RFC6582, , <https://www.rfc-editor.org/info/rfc6582>.
[RFC6675]
-
+
Blanton, E., Allman, M., Wang, L., Jarvinen, I., Kojo, M., and Y. Nishida, "A Conservative Loss Recovery Algorithm Based on Selective Acknowledgment (SACK) for TCP", RFC 6675, DOI 10.17487/RFC6675, , <https://www.rfc-editor.org/info/rfc6675>.
[RFC6928]
-
+
Chu, J., Dukkipati, N., Cheng, Y., and M. Mathis, "Increasing TCP's Initial Window", RFC 6928, DOI 10.17487/RFC6928, , <https://www.rfc-editor.org/info/rfc6928>.
[RFC7661]
-
+
Fairhurst, G., Sathiaseelan, A., and R. Secchi, "Updating TCP to Support Rate-Limited Traffic", RFC 7661, DOI 10.17487/RFC7661, , <https://www.rfc-editor.org/info/rfc7661>.
[RFC8311]
-
+
Black, D., "Relaxing Restrictions on Explicit Congestion Notification (ECN) Experimentation", RFC 8311, DOI 10.17487/RFC8311, , <https://www.rfc-editor.org/info/rfc8311>.
[RFC8312]
-
+
Rhee, I., Xu, L., Ha, S., Zimmermann, A., Eggert, L., and R. Scheffenegger, "CUBIC for Fast Long-Distance Networks", RFC 8312, DOI 10.17487/RFC8312, , <https://www.rfc-editor.org/info/rfc8312>.
A boolean that indicates whether a packet is ack-eliciting.
If true, it is expected that an acknowledgement will be received,
though the peer could delay sending the ACK frame containing it
by up to the MaxAckDelay.¶
in_flight:
-
+
A boolean that indicates whether the packet counts towards bytes in
flight.¶
sent_bytes:
-
+
The number of bytes sent in the packet, not including UDP or IP
overhead, but including QUIC framing overhead.¶
Maximum reordering in packets before packet threshold loss detection
considers a packet lost. The RECOMMENDED value is 3.¶
kTimeThreshold:
-
+
Maximum reordering in time before time threshold loss detection
considers a packet lost. Specified as an RTT multiplier. The RECOMMENDED
value is 9/8.¶
kGranularity:
-
+
Timer granularity. This is a system-dependent value. However, implementations
SHOULD use a value no smaller than 1ms.¶
kInitialRtt:
-
+
The RTT used before an RTT sample is taken. The RECOMMENDED value is 500ms.¶
kPacketNumberSpace:
-
+
An enum to enumerate the three packet number spaces.¶
The most recent RTT measurement made when receiving an ack for
a previously unacked packet.¶
smoothed_rtt:
-
+
The smoothed RTT of the connection, computed as described in
[RFC6298]¶
rttvar:
-
+
The RTT variation, computed as described in [RFC6298]¶
min_rtt:
-
+
The minimum RTT seen in the connection, ignoring ack delay.¶
max_ack_delay:
-
+
The maximum amount of time by which the receiver intends to delay
acknowledgments for packets in the ApplicationData packet number space. The
actual ack_delay in a received ACK frame may be larger due to late timers,
reordering, or lost ACK frames.¶
The time the most recent ack-eliciting packet was sent.¶
largest_acked_packet[kPacketNumberSpace]:
-
+
The largest packet number acknowledged in the packet number space so far.¶
loss_time[kPacketNumberSpace]:
-
+
The time at which the next packet in that packet number space will be
considered lost based on exceeding the reordering window in time.¶
sent_packets[kPacketNumberSpace]:
-
+
An association of packet numbers in a packet number space to information
about them. Described in detail above in Appendix A.1.¶
@@ -2655,24 +2655,24 @@
in order to better suit a variety of environments.¶
kInitialWindow:
-
+
Default limit on the initial amount of data in flight, in bytes. Taken from
[RFC6928], but increased slightly to account for the smaller 8 byte
overhead of UDP vs 20 bytes for TCP. The RECOMMENDED value is the minimum
of 10 * max_datagram_size and max(2 * max_datagram_size, 14720)).¶
kMinimumWindow:
-
+
Minimum congestion window in bytes. The RECOMMENDED value is
2 * max_datagram_size.¶
kLossReductionFactor:
-
+
Reduction in congestion window when a new loss event is detected.
The RECOMMENDED value is 0.5.¶
kPersistentCongestionThreshold:
-
+
Period of time for persistent congestion to be established, specified as a PTO
multiplier. The rationale for this threshold is to enable a sender to use
initial PTOs for aggressive probing, as TCP does with Tail Loss Probe (TLP)
@@ -2693,7 +2693,7 @@
The sender's current maximum payload size. Does not include UDP or IP
overhead. The max datagram size is used for congestion window
computations. An endpoint sets the value of this variable based on its
@@ -2701,13 +2701,13 @@
The highest value reported for the ECN-CE counter in the packet number space
by the peer in an ACK frame. This value is used to detect increases in the
reported ECN-CE counter.¶
bytes_in_flight:
-
+
The sum of the size in bytes of all sent packets that contain at least one
ack-eliciting or PADDING frame, and have not been acked or declared
lost. The size does not include IP or UDP overhead, but does include the QUIC
@@ -2716,17 +2716,17 @@
Maximum number of bytes-in-flight that may be sent.¶
congestion_recovery_start_time:
-
+
The time when QUIC first detects congestion due to loss or ECN, causing
it to enter congestion recovery. When a packet sent after this time is
acknowledged, QUIC exits congestion recovery.¶
ssthresh:
-
+
Slow start threshold in bytes. When the congestion window is below ssthresh,
the mode is slow start and the window grows by the number of bytes
acknowledged.¶
@@ -2885,7 +2885,7 @@
RFC Editor's Note: Please remove this section prior to
publication of a final version of this document.¶
-
+
Issue and pull request numbers are listed with a leading octothorp.¶
@@ -2895,16 +2895,16 @@
Define under-utilizing the congestion window (#2630, #2686, #2675)¶
Merge application limited and sending after idle sections. Always limit
+
Merge application limited and sending after idle sections. Always limit
burst size instead of requiring resetting CWND to initial CWND after
idle (#2605)¶
-
Rewrite RTT estimation, allow RTT samples where a newly acked packet is
+
Rewrite RTT estimation, allow RTT samples where a newly acked packet is
ack-eliciting but the largest_acked is not (#2592)¶
-
Don't arm the handshake timer if there is no handshake data (#2590)¶
+
Don't arm the handshake timer if there is no handshake data (#2590)¶
-
Clarify that the time threshold loss alarm takes precedence over the
+
Clarify that the time threshold loss alarm takes precedence over the
crypto handshake timer (#2590, #2620)¶
-
Change initial RTT to 500ms to align with RFC6298 (#2184)¶
+
Change initial RTT to 500ms to align with RFC6298 (#2184)¶
Update PTO calculation to match RFC6298 (#2480, #2489, #2490)¶
+
Update PTO calculation to match RFC6298 (#2480, #2489, #2490)¶
-
Improve loss detection's description of multiple packet number spaces and
+
Improve loss detection's description of multiple packet number spaces and
pseudocode (#2485, #2451, #2417)¶
-
Declare persistent congestion even if non-probe packets are sent and don't
+
Declare persistent congestion even if non-probe packets are sent and don't
make persistent congestion more aggressive than RTO verified was (#2365,
#2244)¶
after one round trip and the server immediately responds after receiving the
first handshake message from the client.¶
-
A 0-RTT handshake in which the client uses information it has previously
+
A 0-RTT handshake in which the client uses information it has previously
learned about the server to send Application Data immediately. This
Application Data can be replayed by an attacker so it MUST NOT carry a
self-contained trigger for any non-idempotent action.¶
-
+
A simplified TLS handshake with 0-RTT application data is shown in Figure 2.
Note that this omits the EndOfEarlyData message, which is not used in QUIC (see
Section 8.3). Likewise, neither ChangeCipherSpec nor KeyUpdate messages are
@@ -1328,13 +1328,13 @@
Application Data may appear only in the Early Data and Application Data
levels. Handshake and Alert messages may appear in any level.¶
The 0-RTT handshake is only possible if the client and server have previously
@@ -1391,11 +1391,11 @@
The TLS component sends and receives messages via the QUIC component, with
QUIC providing a reliable stream abstraction to TLS.¶
-
The TLS component provides a series of updates to the QUIC component,
+
The TLS component provides a series of updates to the QUIC component,
including (a) new packet protection keys to install (b) state changes such as
handshake completion, the server certificate, etc.¶
-
+
Figure 4 shows these interactions in more detail, with the QUIC packet
protection being called out specially.¶
@@ -1455,18 +1455,18 @@
PADDING and PING frames MAY appear in packets of any encryption level.¶
-
CRYPTO frames and CONNECTION_CLOSE frames signaling errors at the QUIC layer
+
CRYPTO frames and CONNECTION_CLOSE frames signaling errors at the QUIC layer
(type 0x1c) MAY appear in packets of any encryption level except 0-RTT.¶
-
CONNECTION_CLOSE frames signaling application errors (type 0x1d) MUST only be
+
CONNECTION_CLOSE frames signaling application errors (type 0x1d) MUST only be
sent in packets at the 1-RTT encryption level.¶
-
ACK frames MAY appear in packets of any encryption level other than 0-RTT, but
+
ACK frames MAY appear in packets of any encryption level other than 0-RTT, but
can only acknowledge packets which appeared in that packet number space.¶
-
All other frame types MUST only be sent in the 0-RTT and 1-RTT levels.¶
+
All other frame types MUST only be sent in the 0-RTT and 1-RTT levels.¶
-
+
Note that it is not possible to send the following frames in 0-RTT for various
reasons: ACK, CRYPTO, NEW_TOKEN, PATH_RESPONSE, and RETIRE_CONNECTION_ID.¶
Because packets could be reordered on the wire, QUIC uses the packet type to
@@ -1533,14 +1533,14 @@
Additional functions might be needed to configure TLS.¶
@@ -1606,18 +1606,18 @@
find the proper location in the data sequence. If the result of this process
is that new data is available, then it is delivered to TLS in order.¶
-
If the packet is from a previously installed encryption level, it MUST not
+
If the packet is from a previously installed encryption level, it MUST not
contain data which extends past the end of previously received data in that
flow. Implementations MUST treat any violations of this requirement as a
connection error of type PROTOCOL_VIOLATION.¶
-
If the packet is from a new encryption level, it is saved for later processing
+
If the packet is from a new encryption level, it is saved for later processing
by TLS. Once TLS moves to receiving from this encryption level, saved data
can be provided. When providing data from any new encryption level to TLS, if
there is data from a previous encryption level that TLS has not consumed, this
MUST be treated as a connection error of type PROTOCOL_VIOLATION.¶
-
+
Each time that TLS is provided with new data, new handshake bytes are requested
from TLS. TLS might not provide any bytes if the handshake messages it has
received are incomplete or it has no data to send.¶
These values are based on the values that TLS negotiates and are used by QUIC to
generate packet and header protection keys (see Section 5 and
Section 5.4).¶
The Destination Connection ID is of arbitrary length, and it could be zero
length if the server sends a Retry packet with a zero-length Source Connection
ID field. In this case, the Initial keys provide no assurance to the client
@@ -2099,7 +2099,7 @@
and produce an output 16 bytes larger than their input.¶
Note:
-
+
An endpoint MUST NOT reject a ClientHello that offers a ciphersuite that it
does not support, or it would be impossible to deploy a new ciphersuite. This
also applies to TLS_AES_128_CCM_8_SHA256.¶
@@ -2365,7 +2365,7 @@
0-RTT data can be acknowledged by the server as it receives it, but any
packets containing acknowledgments of 0-RTT data cannot have packet protection
removed by the client until the TLS handshake is complete. The 1-RTT keys
@@ -2392,12 +2392,12 @@
pre-shared key and validated the client's pre-shared key binder; see Section
4.2.11 of [TLS13].¶
-
The client has not demonstrated liveness, unless a RETRY packet was used.¶
+
The client has not demonstrated liveness, unless a RETRY packet was used.¶
-
Any received 0-RTT data that the server responds to might be due to a replay
+
Any received 0-RTT data that the server responds to might be due to a replay
attack.¶
-
+
Therefore, the server's use of 1-RTT keys MUST be limited to sending data before
the handshake is complete. A server MUST NOT process incoming 1-RTT protected
packets before the TLS handshake is complete. Because sending acknowledgments
@@ -2407,7 +2407,7 @@
TLS implementations might provide all 1-RTT secrets prior to handshake
completion. Even where QUIC implementations have 1-RTT read keys, those keys
cannot be used prior to completing the handshake.¶
@@ -2507,7 +2507,7 @@
higher than or equal to the former, another key update can be initiated.¶
Note:
-
+
Keys of packets other than the 1-RTT packets are never updated; their keys are
derived solely from the TLS handshake state.¶
@@ -2795,7 +2795,7 @@
those produced by the application protocol that QUIC serves.¶
Note:
-
+
TLS session tickets and address validation tokens are used to carry QUIC
configuration information between connections. These MUST NOT be used to
carry application semantics. The potential for reuse of these tokens means
@@ -2867,7 +2867,7 @@
algorithms described in this document, that probability is one in 2^64.¶
Note:
-
+
In some cases, inputs shorter than the full size required by the packet
protection algorithm might be used.¶
@@ -2948,10 +2948,10 @@
The Recommended column is to be marked Yes. The TLS 1.3 Column is to include
CH and EE.¶
-
QUIC Transport Error Codes Registry [QUIC-TRANSPORT] - IANA is to register
+
QUIC Transport Error Codes Registry [QUIC-TRANSPORT] - IANA is to register
the KEY_UPDATE_ERROR (0xE), as described in Section 6.7.¶
"Advanced encryption standard (AES)", DOI 10.6028/nist.fips.197, National Institute of Standards and Technology report, , <https://doi.org/10.6028/nist.fips.197>.
[ALPN]
-
+
Friedl, S., Popov, A., Langley, A., and E. Stephan, "Transport Layer Security (TLS) Application-Layer Protocol Negotiation Extension", RFC 7301, DOI 10.17487/RFC7301, , <https://www.rfc-editor.org/info/rfc7301>.
Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, , <https://www.rfc-editor.org/info/rfc2119>.
[RFC8174]
-
+
Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, , <https://www.rfc-editor.org/info/rfc8174>.
[SHA]
-
+
Dang, Q., "Secure Hash Standard", DOI 10.6028/nist.fips.180-4, National Institute of Standards and Technology report, , <https://doi.org/10.6028/nist.fips.180-4>.
Katz, J. and Y. Lindell, "Introduction to Modern Cryptography, Second Edition", ISBN 978-1466570269, .
[NAN]
-
+
Bellare, M., Ng, R., and B. Tackmann, "Nonces Are Noticed: AEAD Revisited", DOI 10.1007/978-3-030-26948-7_9, Advances in Cryptology - CRYPTO 2019 pp. 235-265, , <https://doi.org/10.1007/978-3-030-26948-7_9>.
Cooper, D., Santesson, S., Farrell, S., Boeyen, S., Housley, R., and W. Polk, "Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile", RFC 5280, DOI 10.17487/RFC5280, , <https://www.rfc-editor.org/info/rfc5280>.
@@ -3045,23 +3045,23 @@
The labels generated by the HKDF-Expand-Label function are:¶
diff --git a/ecn-alg/draft-ietf-quic-tls.txt b/ecn-alg/draft-ietf-quic-tls.txt
index e6b654f9c6..c1f328b16b 100644
--- a/ecn-alg/draft-ietf-quic-tls.txt
+++ b/ecn-alg/draft-ietf-quic-tls.txt
@@ -5,8 +5,8 @@
QUIC M. Thomson, Ed.
Internet-Draft Mozilla
Intended status: Standards Track S. Turner, Ed.
-Expires: 10 July 2020 sn3rd
- 7 January 2020
+Expires: 11 July 2020 sn3rd
+ 8 January 2020
Using TLS to Secure QUIC
@@ -44,7 +44,7 @@ Status of This Memo
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
- This Internet-Draft will expire on 10 July 2020.
+ This Internet-Draft will expire on 11 July 2020.
Copyright Notice
@@ -53,7 +53,7 @@ Copyright Notice
-Thomson & Turner Expires 10 July 2020 [Page 1]
+Thomson & Turner Expires 11 July 2020 [Page 1]
Internet-Draft Using TLS to Secure QUIC January 2020
@@ -109,7 +109,7 @@ Table of Contents
-Thomson & Turner Expires 10 July 2020 [Page 2]
+Thomson & Turner Expires 11 July 2020 [Page 2]
Internet-Draft Using TLS to Secure QUIC January 2020
@@ -165,7 +165,7 @@ Internet-Draft Using TLS to Secure QUIC January 2020
-Thomson & Turner Expires 10 July 2020 [Page 3]
+Thomson & Turner Expires 11 July 2020 [Page 3]
Internet-Draft Using TLS to Secure QUIC January 2020
@@ -221,7 +221,7 @@ Internet-Draft Using TLS to Secure QUIC January 2020
-Thomson & Turner Expires 10 July 2020 [Page 4]
+Thomson & Turner Expires 11 July 2020 [Page 4]
Internet-Draft Using TLS to Secure QUIC January 2020
@@ -277,7 +277,7 @@ Internet-Draft Using TLS to Secure QUIC January 2020
-Thomson & Turner Expires 10 July 2020 [Page 5]
+Thomson & Turner Expires 11 July 2020 [Page 5]
Internet-Draft Using TLS to Secure QUIC January 2020
@@ -333,7 +333,7 @@ Internet-Draft Using TLS to Secure QUIC January 2020
-Thomson & Turner Expires 10 July 2020 [Page 6]
+Thomson & Turner Expires 11 July 2020 [Page 6]
Internet-Draft Using TLS to Secure QUIC January 2020
@@ -389,7 +389,7 @@ Internet-Draft Using TLS to Secure QUIC January 2020
-Thomson & Turner Expires 10 July 2020 [Page 7]
+Thomson & Turner Expires 11 July 2020 [Page 7]
Internet-Draft Using TLS to Secure QUIC January 2020
@@ -445,7 +445,7 @@ Internet-Draft Using TLS to Secure QUIC January 2020
-Thomson & Turner Expires 10 July 2020 [Page 8]
+Thomson & Turner Expires 11 July 2020 [Page 8]
Internet-Draft Using TLS to Secure QUIC January 2020
@@ -501,7 +501,7 @@ Internet-Draft Using TLS to Secure QUIC January 2020
-Thomson & Turner Expires 10 July 2020 [Page 9]
+Thomson & Turner Expires 11 July 2020 [Page 9]
Internet-Draft Using TLS to Secure QUIC January 2020
@@ -557,7 +557,7 @@ Internet-Draft Using TLS to Secure QUIC January 2020
-Thomson & Turner Expires 10 July 2020 [Page 10]
+Thomson & Turner Expires 11 July 2020 [Page 10]
Internet-Draft Using TLS to Secure QUIC January 2020
@@ -613,7 +613,7 @@ Internet-Draft Using TLS to Secure QUIC January 2020
-Thomson & Turner Expires 10 July 2020 [Page 11]
+Thomson & Turner Expires 11 July 2020 [Page 11]
Internet-Draft Using TLS to Secure QUIC January 2020
@@ -669,7 +669,7 @@ Internet-Draft Using TLS to Secure QUIC January 2020
-Thomson & Turner Expires 10 July 2020 [Page 12]
+Thomson & Turner Expires 11 July 2020 [Page 12]
Internet-Draft Using TLS to Secure QUIC January 2020
@@ -725,7 +725,7 @@ Internet-Draft Using TLS to Secure QUIC January 2020
-Thomson & Turner Expires 10 July 2020 [Page 13]
+Thomson & Turner Expires 11 July 2020 [Page 13]
Internet-Draft Using TLS to Secure QUIC January 2020
@@ -781,7 +781,7 @@ Internet-Draft Using TLS to Secure QUIC January 2020
-Thomson & Turner Expires 10 July 2020 [Page 14]
+Thomson & Turner Expires 11 July 2020 [Page 14]
Internet-Draft Using TLS to Secure QUIC January 2020
@@ -837,7 +837,7 @@ Internet-Draft Using TLS to Secure QUIC January 2020
-Thomson & Turner Expires 10 July 2020 [Page 15]
+Thomson & Turner Expires 11 July 2020 [Page 15]
Internet-Draft Using TLS to Secure QUIC January 2020
@@ -893,7 +893,7 @@ Internet-Draft Using TLS to Secure QUIC January 2020
-Thomson & Turner Expires 10 July 2020 [Page 16]
+Thomson & Turner Expires 11 July 2020 [Page 16]
Internet-Draft Using TLS to Secure QUIC January 2020
@@ -949,7 +949,7 @@ Internet-Draft Using TLS to Secure QUIC January 2020
-Thomson & Turner Expires 10 July 2020 [Page 17]
+Thomson & Turner Expires 11 July 2020 [Page 17]
Internet-Draft Using TLS to Secure QUIC January 2020
@@ -1005,7 +1005,7 @@ Internet-Draft Using TLS to Secure QUIC January 2020
-Thomson & Turner Expires 10 July 2020 [Page 18]
+Thomson & Turner Expires 11 July 2020 [Page 18]
Internet-Draft Using TLS to Secure QUIC January 2020
@@ -1061,7 +1061,7 @@ Internet-Draft Using TLS to Secure QUIC January 2020
-Thomson & Turner Expires 10 July 2020 [Page 19]
+Thomson & Turner Expires 11 July 2020 [Page 19]
Internet-Draft Using TLS to Secure QUIC January 2020
@@ -1117,7 +1117,7 @@ Internet-Draft Using TLS to Secure QUIC January 2020
-Thomson & Turner Expires 10 July 2020 [Page 20]
+Thomson & Turner Expires 11 July 2020 [Page 20]
Internet-Draft Using TLS to Secure QUIC January 2020
@@ -1173,7 +1173,7 @@ Internet-Draft Using TLS to Secure QUIC January 2020
-Thomson & Turner Expires 10 July 2020 [Page 21]
+Thomson & Turner Expires 11 July 2020 [Page 21]
Internet-Draft Using TLS to Secure QUIC January 2020
@@ -1229,7 +1229,7 @@ Internet-Draft Using TLS to Secure QUIC January 2020
-Thomson & Turner Expires 10 July 2020 [Page 22]
+Thomson & Turner Expires 11 July 2020 [Page 22]
Internet-Draft Using TLS to Secure QUIC January 2020
@@ -1285,7 +1285,7 @@ Internet-Draft Using TLS to Secure QUIC January 2020
-Thomson & Turner Expires 10 July 2020 [Page 23]
+Thomson & Turner Expires 11 July 2020 [Page 23]
Internet-Draft Using TLS to Secure QUIC January 2020
@@ -1341,7 +1341,7 @@ Internet-Draft Using TLS to Secure QUIC January 2020
-Thomson & Turner Expires 10 July 2020 [Page 24]
+Thomson & Turner Expires 11 July 2020 [Page 24]
Internet-Draft Using TLS to Secure QUIC January 2020
@@ -1397,7 +1397,7 @@ Internet-Draft Using TLS to Secure QUIC January 2020
-Thomson & Turner Expires 10 July 2020 [Page 25]
+Thomson & Turner Expires 11 July 2020 [Page 25]
Internet-Draft Using TLS to Secure QUIC January 2020
@@ -1453,7 +1453,7 @@ Internet-Draft Using TLS to Secure QUIC January 2020
-Thomson & Turner Expires 10 July 2020 [Page 26]
+Thomson & Turner Expires 11 July 2020 [Page 26]
Internet-Draft Using TLS to Secure QUIC January 2020
@@ -1509,7 +1509,7 @@ Internet-Draft Using TLS to Secure QUIC January 2020
-Thomson & Turner Expires 10 July 2020 [Page 27]
+Thomson & Turner Expires 11 July 2020 [Page 27]
Internet-Draft Using TLS to Secure QUIC January 2020
@@ -1565,7 +1565,7 @@ Internet-Draft Using TLS to Secure QUIC January 2020
-Thomson & Turner Expires 10 July 2020 [Page 28]
+Thomson & Turner Expires 11 July 2020 [Page 28]
Internet-Draft Using TLS to Secure QUIC January 2020
@@ -1621,7 +1621,7 @@ Internet-Draft Using TLS to Secure QUIC January 2020
-Thomson & Turner Expires 10 July 2020 [Page 29]
+Thomson & Turner Expires 11 July 2020 [Page 29]
Internet-Draft Using TLS to Secure QUIC January 2020
@@ -1677,7 +1677,7 @@ Internet-Draft Using TLS to Secure QUIC January 2020
-Thomson & Turner Expires 10 July 2020 [Page 30]
+Thomson & Turner Expires 11 July 2020 [Page 30]
Internet-Draft Using TLS to Secure QUIC January 2020
@@ -1733,7 +1733,7 @@ Internet-Draft Using TLS to Secure QUIC January 2020
-Thomson & Turner Expires 10 July 2020 [Page 31]
+Thomson & Turner Expires 11 July 2020 [Page 31]
Internet-Draft Using TLS to Secure QUIC January 2020
@@ -1789,7 +1789,7 @@ Internet-Draft Using TLS to Secure QUIC January 2020
-Thomson & Turner Expires 10 July 2020 [Page 32]
+Thomson & Turner Expires 11 July 2020 [Page 32]
Internet-Draft Using TLS to Secure QUIC January 2020
@@ -1845,7 +1845,7 @@ Internet-Draft Using TLS to Secure QUIC January 2020
-Thomson & Turner Expires 10 July 2020 [Page 33]
+Thomson & Turner Expires 11 July 2020 [Page 33]
Internet-Draft Using TLS to Secure QUIC January 2020
@@ -1901,7 +1901,7 @@ Internet-Draft Using TLS to Secure QUIC January 2020
-Thomson & Turner Expires 10 July 2020 [Page 34]
+Thomson & Turner Expires 11 July 2020 [Page 34]
Internet-Draft Using TLS to Secure QUIC January 2020
@@ -1957,7 +1957,7 @@ Internet-Draft Using TLS to Secure QUIC January 2020
-Thomson & Turner Expires 10 July 2020 [Page 35]
+Thomson & Turner Expires 11 July 2020 [Page 35]
Internet-Draft Using TLS to Secure QUIC January 2020
@@ -2013,7 +2013,7 @@ Internet-Draft Using TLS to Secure QUIC January 2020
-Thomson & Turner Expires 10 July 2020 [Page 36]
+Thomson & Turner Expires 11 July 2020 [Page 36]
Internet-Draft Using TLS to Secure QUIC January 2020
@@ -2069,7 +2069,7 @@ Internet-Draft Using TLS to Secure QUIC January 2020
-Thomson & Turner Expires 10 July 2020 [Page 37]
+Thomson & Turner Expires 11 July 2020 [Page 37]
Internet-Draft Using TLS to Secure QUIC January 2020
@@ -2125,7 +2125,7 @@ Internet-Draft Using TLS to Secure QUIC January 2020
-Thomson & Turner Expires 10 July 2020 [Page 38]
+Thomson & Turner Expires 11 July 2020 [Page 38]
Internet-Draft Using TLS to Secure QUIC January 2020
@@ -2181,7 +2181,7 @@ Internet-Draft Using TLS to Secure QUIC January 2020
-Thomson & Turner Expires 10 July 2020 [Page 39]
+Thomson & Turner Expires 11 July 2020 [Page 39]
Internet-Draft Using TLS to Secure QUIC January 2020
@@ -2207,14 +2207,14 @@ Internet-Draft Using TLS to Secure QUIC January 2020
[QUIC-RECOVERY]
Iyengar, J., Ed. and I. Swett, Ed., "QUIC Loss Detection
and Congestion Control", Work in Progress, Internet-Draft,
- draft-ietf-quic-recovery-latest, 7 January 2020,
+ draft-ietf-quic-recovery-latest, 8 January 2020,
.
[QUIC-TRANSPORT]
Iyengar, J., Ed. and M. Thomson, Ed., "QUIC: A UDP-Based
Multiplexed and Secure Transport", Work in Progress,
- Internet-Draft, draft-ietf-quic-transport-latest, 7
+ Internet-Draft, draft-ietf-quic-transport-latest, 8
January 2020, .
@@ -2237,7 +2237,7 @@ Internet-Draft Using TLS to Secure QUIC January 2020
-Thomson & Turner Expires 10 July 2020 [Page 40]
+Thomson & Turner Expires 11 July 2020 [Page 40]
Internet-Draft Using TLS to Secure QUIC January 2020
@@ -2273,7 +2273,7 @@ Internet-Draft Using TLS to Secure QUIC January 2020
[QUIC-HTTP]
Bishop, M., Ed., "Hypertext Transfer Protocol (HTTP) over
QUIC", Work in Progress, Internet-Draft, draft-ietf-quic-
- http-latest, 7 January 2020,
+ http-latest, 8 January 2020,
.
[RFC2818] Rescorla, E., "HTTP Over TLS", RFC 2818,
@@ -2293,7 +2293,7 @@ Internet-Draft Using TLS to Secure QUIC January 2020
-Thomson & Turner Expires 10 July 2020 [Page 41]
+Thomson & Turner Expires 11 July 2020 [Page 41]
Internet-Draft Using TLS to Secure QUIC January 2020
@@ -2349,7 +2349,7 @@ A.1. Keys
-Thomson & Turner Expires 10 July 2020 [Page 42]
+Thomson & Turner Expires 11 July 2020 [Page 42]
Internet-Draft Using TLS to Secure QUIC January 2020
@@ -2405,7 +2405,7 @@ A.2. Client Initial
-Thomson & Turner Expires 10 July 2020 [Page 43]
+Thomson & Turner Expires 11 July 2020 [Page 43]
Internet-Draft Using TLS to Secure QUIC January 2020
@@ -2461,7 +2461,7 @@ A.3. Server Initial
-Thomson & Turner Expires 10 July 2020 [Page 44]
+Thomson & Turner Expires 11 July 2020 [Page 44]
Internet-Draft Using TLS to Secure QUIC January 2020
@@ -2517,7 +2517,7 @@ B.1. Since draft-ietf-quic-tls-23
-Thomson & Turner Expires 10 July 2020 [Page 45]
+Thomson & Turner Expires 11 July 2020 [Page 45]
Internet-Draft Using TLS to Secure QUIC January 2020
@@ -2573,7 +2573,7 @@ B.7. Since draft-ietf-quic-tls-14
-Thomson & Turner Expires 10 July 2020 [Page 46]
+Thomson & Turner Expires 11 July 2020 [Page 46]
Internet-Draft Using TLS to Secure QUIC January 2020
@@ -2629,7 +2629,7 @@ B.14. Since draft-ietf-quic-tls-07
-Thomson & Turner Expires 10 July 2020 [Page 47]
+Thomson & Turner Expires 11 July 2020 [Page 47]
Internet-Draft Using TLS to Secure QUIC January 2020
@@ -2685,7 +2685,7 @@ B.20. Since draft-ietf-quic-tls-00
-Thomson & Turner Expires 10 July 2020 [Page 48]
+Thomson & Turner Expires 11 July 2020 [Page 48]
Internet-Draft Using TLS to Secure QUIC January 2020
@@ -2741,4 +2741,4 @@ Authors' Addresses
-Thomson & Turner Expires 10 July 2020 [Page 49]
+Thomson & Turner Expires 11 July 2020 [Page 49]
diff --git a/ecn-alg/draft-ietf-quic-transport.html b/ecn-alg/draft-ietf-quic-transport.html
index 48d6d734c0..48c09d7a7b 100644
--- a/ecn-alg/draft-ietf-quic-transport.html
+++ b/ecn-alg/draft-ietf-quic-transport.html
@@ -12,7 +12,7 @@
documents describe QUIC's loss detection and congestion control and the use of
TLS for key negotiation.
" name="description">
-
+
@@ -821,7 +821,7 @@
Iyengar & Thomson
-
Expires 10 July 2020
+
Expires 11 July 2020
[Page]
@@ -834,12 +834,12 @@
draft-ietf-quic-transport-latest
Published:
-
+
Intended Status:
Standards Track
Expires:
-
+
Authors:
@@ -892,7 +892,7 @@
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."¶
- This Internet-Draft will expire on 10 July 2020.¶
+ This Internet-Draft will expire on 11 July 2020.¶
QUIC uses UDP as a substrate to avoid requiring changes to legacy client
operating systems and middleboxes. QUIC authenticates all of its headers and
encrypts most of the data it exchanges, including its signaling, to avoid
@@ -1620,81 +1623,81 @@
Section 2 describes core concepts related to streams,¶
-
+
Section 3 provides a reference model for stream states, and¶
-
+
Section 4 outlines the operation of flow control.¶
-
+
-
+
Connections are the context in which QUIC endpoints communicate.¶
Section 5 describes core concepts related to connections,¶
Accompanying documents describe QUIC's loss detection and congestion control
[QUIC-RECOVERY], and the use of TLS for key negotiation [QUIC-TLS].¶
This document defines QUIC version 1, which conforms to the protocol invariants
@@ -1713,53 +1716,53 @@
Commonly used terms in the document are described below.¶
QUIC:
-
+
The transport protocol described by this document. QUIC is a name, not an
acronym.¶
QUIC packet:
-
+
A complete processable unit of QUIC that can be encapsulated in a UDP
datagram. Multiple QUIC packets can be encapsulated in a single UDP datagram.¶
Ack-eliciting Packet:
-
+
A QUIC packet that contains frames other than ACK, PADDING, and
CONNECTION_CLOSE. These cause a recipient to send an acknowledgment (see
Section 13.2.1).¶
Endpoint:
-
+
An entity that can participate in a QUIC connection by generating,
receiving, and processing QUIC packets. There are only two types of endpoint
in QUIC: client and server.¶
The endpoint accepting incoming QUIC connections.¶
Address:
-
+
When used without qualification, the tuple of IP version, IP address, UDP
protocol, and UDP port number that represents one end of a network path.¶
Connection ID:
-
+
An opaque identifier that is used to identify a QUIC connection at an
endpoint. Each endpoint sets a value for its peer to include in packets sent
towards the endpoint.¶
Stream:
-
+
A unidirectional or bidirectional channel of ordered bytes within a QUIC
connection. A QUIC connection can carry multiple simultaneous streams.¶
Application:
-
+
An entity that uses QUIC to send and receive data.¶
@@ -1774,23 +1777,23 @@
3.1 of [RFC2360], with the following additional conventions:¶
abort reading of the stream and request closure, possibly resulting in a
+
abort reading of the stream and request closure, possibly resulting in a
STOP_SENDING frame (Section 19.5).¶
-
+
Applications also need to be informed of state changes on streams, including
when the peer has opened or reset a stream, when a peer aborts reading on a
stream, when new data is available, and when data can or cannot be written to
@@ -1978,7 +1981,7 @@
An endpoint MUST open streams of the same type in increasing order of stream ID.¶
Note:
-
+
These states are largely informative. This document uses stream states to
describe rules for when and how different types of frames can be sent and the
reactions that are expected when different types of frames are received.
@@ -2297,7 +2300,7 @@
Note (*1):
-
+
A stream is considered "idle" if it has not yet been created, or if the
receiving part of the stream is in the "Recv" state without yet having
received any frames.¶
@@ -2383,11 +2386,11 @@
receive buffer for a connection by limiting the amount of data that can be
sent on any stream.¶
-
Connection flow control, which prevents senders from exceeding a receiver's
+
Connection flow control, which prevents senders from exceeding a receiver's
buffer capacity for the connection, by limiting the total bytes of stream data
sent in STREAM frames on all streams.¶
-
+
A receiver sets initial credits for all streams by sending transport parameters
during the handshake (Section 7.3). A receiver sends
MAX_STREAM_DATA (Section 19.10) or MAX_DATA (Section 19.9)
@@ -2801,41 +2804,41 @@
open a connection, which begins the exchange described in Section 7;¶
be informed when 0-RTT has been accepted or rejected by a server.¶
+
be informed when 0-RTT has been accepted or rejected by a server.¶
-
+
When implementing the server role, applications need to be able to:¶
listen for incoming connections, which prepares for the exchange described in
Section 7;¶
-
if Early Data is supported, embed application-controlled data in the TLS
+
if Early Data is supported, embed application-controlled data in the TLS
resumption ticket sent to the client; and¶
-
if Early Data is supported, retrieve application-controlled data from the
+
if Early Data is supported, retrieve application-controlled data from the
client's resumption ticket and enable rejecting Early Data based on that
information.¶
configure minimum values for the initial number of permitted streams of each
type, as communicated in the transport parameters (Section 7.3);¶
-
control resource allocation of various types, including flow control and the
+
control resource allocation of various types, including flow control and the
number of permitted streams of each type;¶
-
identify whether the handshake has completed successfully or is still ongoing¶
+
identify whether the handshake has completed successfully or is still ongoing¶
-
keep a connection from silently closing, either by generating PING frames
+
keep a connection from silently closing, either by generating PING frames
(Section 19.2) or by requesting that the transport send additional frames
before the idle timeout expires (Section 10.2); and¶
Omitting or setting a zero value for certain transport parameters can result in
0-RTT data being enabled, but not usable. The applicable subset of transport
parameters that permit sending of application data SHOULD be set to non-zero
@@ -3422,7 +3425,7 @@
The rationale for treating the client as unvalidated rather than discarding
the packet is that the client might have received the token in a previous
connection using the NEW_TOKEN frame, and if the server has lost state, it
@@ -3977,11 +3980,11 @@
Allowing retransmission of a closing packet contradicts other advice in this
document that recommends the creation of new packet numbers for every packet.
Sending new packet numbers is primarily of advantage to loss recovery and
@@ -4237,12 +4240,12 @@
case, endpoints will need to rely on other methods - such as timers - to
detect that the connection has failed.¶
-
The randomly generated connection ID can be used by entities other than the
+
The randomly generated connection ID can be used by entities other than the
peer to identify this as a potential stateless reset. An endpoint that
occasionally uses different connection IDs might introduce some uncertainty
about this.¶
-
+
This stateless reset design is specific to QUIC version 1. An endpoint that
supports multiple versions of QUIC needs to generate a stateless reset that will
be accepted by peers that support any version that the endpoint might support
@@ -4528,13 +4531,13 @@
Initial space: All Initial packets (Section 17.2.2) are in this space.¶
-
Handshake space: All Handshake packets (Section 17.2.4) are in this
+
Handshake space: All Handshake packets (Section 17.2.4) are in this
space.¶
-
Application data space: All 0-RTT and 1-RTT encrypted packets
+
Application data space: All 0-RTT and 1-RTT encrypted packets
(Section 12.1) are in this space.¶
-
+
As described in [QUIC-TLS], each packet type uses different protection keys.¶
Conceptually, a packet number space is the context in which a packet can be
processed and acknowledged. Initial packets can only be sent with Initial
@@ -4793,23 +4796,23 @@
frame type can appear in, indicated as up to four characters indicating:¶
A CONNECTION_CLOSE frame of type 0x1c can appear in Initial, Handshake, and
1-RTT packets, whereas a CONNECTION_CLOSE of type 0x1d can only appear in a
1-RTT packet.¶
@@ -5069,51 +5072,51 @@
frames for Initial and Handshake packets is discarded when keys for the
corresponding encryption level are discarded.¶
-
Application data sent in STREAM frames is retransmitted in new STREAM frames
+
Application data sent in STREAM frames is retransmitted in new STREAM frames
unless the endpoint has sent a RESET_STREAM for that stream. Once an endpoint
sends a RESET_STREAM frame, no further STREAM frames are needed.¶
-
ACK frames carry the most recent set of acknowledgements and the Ack Delay
+
ACK frames carry the most recent set of acknowledgements and the Ack Delay
from the largest acknowledged packet, as described in
Section 13.2.1. Delaying the transmission of packets
containing ACK frames or sending old ACK frames can cause the peer to
generate an inflated RTT sample or unnecessarily disable ECN.¶
-
Cancellation of stream transmission, as carried in a RESET_STREAM frame, is
+
Cancellation of stream transmission, as carried in a RESET_STREAM frame, is
sent until acknowledged or until all stream data is acknowledged by the peer
(that is, either the "Reset Recvd" or "Data Recvd" state is reached on the
sending part of the stream). The content of a RESET_STREAM frame MUST NOT
change when it is sent again.¶
-
Similarly, a request to cancel stream transmission, as encoded in a
+
Similarly, a request to cancel stream transmission, as encoded in a
STOP_SENDING frame, is sent until the receiving part of the stream enters
either a "Data Recvd" or "Reset Recvd" state; see
Section 3.5.¶
-
Connection close signals, including packets that contain CONNECTION_CLOSE
+
Connection close signals, including packets that contain CONNECTION_CLOSE
frames, are not sent again when packet loss is detected, but as described in
Section 10.¶
-
The current connection maximum data is sent in MAX_DATA frames. An updated
+
The current connection maximum data is sent in MAX_DATA frames. An updated
value is sent in a MAX_DATA frame if the packet containing the most recently
sent MAX_DATA frame is declared lost, or when the endpoint decides to update
the limit. Care is necessary to avoid sending this frame too often as the
limit can increase frequently and cause an unnecessarily large number of
MAX_DATA frames to be sent.¶
-
The current maximum stream data offset is sent in MAX_STREAM_DATA frames.
+
The current maximum stream data offset is sent in MAX_STREAM_DATA frames.
Like MAX_DATA, an updated value is sent when the packet containing the most
recent MAX_STREAM_DATA frame for a stream is lost or when the limit is
updated, with care taken to prevent the frame from being sent too often. An
endpoint SHOULD stop sending MAX_STREAM_DATA frames when the receiving part of
the stream enters a "Size Known" state.¶
-
The limit on streams of a given type is sent in MAX_STREAMS frames. Like
+
The limit on streams of a given type is sent in MAX_STREAMS frames. Like
MAX_DATA, an updated value is sent when a packet containing the most recent
MAX_STREAMS for a stream type frame is declared lost or when the limit is
updated, with care taken to prevent the frame from being sent too often.¶
-
Blocked signals are carried in DATA_BLOCKED, STREAM_DATA_BLOCKED, and
+
Blocked signals are carried in DATA_BLOCKED, STREAM_DATA_BLOCKED, and
STREAMS_BLOCKED frames. DATA_BLOCKED frames have connection scope,
STREAM_DATA_BLOCKED frames have stream scope, and STREAMS_BLOCKED frames are
scoped to a specific stream type. New frames are sent if packets containing
@@ -5121,29 +5124,29 @@
blocked on the corresponding limit. These frames always include the limit that
is causing blocking at the time that they are transmitted.¶
-
A liveness or path validation check using PATH_CHALLENGE frames is sent
+
A liveness or path validation check using PATH_CHALLENGE frames is sent
periodically until a matching PATH_RESPONSE frame is received or until there
is no remaining need for liveness or path validation checking. PATH_CHALLENGE
frames include a different payload each time they are sent.¶
-
Responses to path validation using PATH_RESPONSE frames are sent just once.
+
Responses to path validation using PATH_RESPONSE frames are sent just once.
The peer is expected to send more PATH_CHALLENGE frames as necessary to evoke
additional PATH_RESPONSE frames.¶
-
New connection IDs are sent in NEW_CONNECTION_ID frames and retransmitted if
+
New connection IDs are sent in NEW_CONNECTION_ID frames and retransmitted if
the packet containing them is lost. Retransmissions of this frame carry the
same sequence number value. Likewise, retired connection IDs are sent in
RETIRE_CONNECTION_ID frames and retransmitted if the packet containing them is
lost.¶
-
NEW_TOKEN frames are retransmitted if the packet containing them is lost. No
+
NEW_TOKEN frames are retransmitted if the packet containing them is lost. No
special support is made for detecting reordered and duplicated NEW_TOKEN
frames other than a direct comparison of the frame contents.¶
-
PING and PADDING frames contain no information, so lost PING or PADDING frames
+
PING and PADDING frames contain no information, so lost PING or PADDING frames
do not require repair.¶
-
+
Endpoints SHOULD prioritize retransmission of data over sending new data, unless
priorities specified by the application indicate otherwise (see
Section 2.3).¶
Endpoints validate ECN for packets sent on each network path independently. An
endpoint thus validates ECN on new connection establishment, when switching to a
-new server preferred address, and on active connection migration to a new path.¶
+new server preferred address, and on active connection migration to a new path.
+Appendix B describes one possible algorithm for testing paths for ECN support.¶
Even if an endpoint does not use ECN markings on packets it transmits, the
endpoint MUST provide feedback about ECN markings received from the peer if they
are accessible. Failing to report ECN counts will cause the peer to disable ECN
@@ -5230,10 +5234,10 @@
Set the ECT(0) codepoint in the IP header of early outgoing packets sent on a
new path to the peer [RFC8311].¶
-
If all packets that were sent with the ECT(0) codepoint are eventually deemed
+
If all packets that were sent with the ECT(0) codepoint are eventually deemed
lost [QUIC-RECOVERY], validation is deemed to have failed.¶
-
+
To reduce the chances of misinterpreting congestive loss as packets dropped by a
faulty network element, an endpoint could set the ECT(0) codepoint in the first
ten outgoing packets on a path, or for a period of three RTTs, whichever occurs
@@ -5258,18 +5262,18 @@
element that zeroes out ECN bits and a peer that is unable to access ECN
markings, since the peer could respond without ECN feedback in these cases.¶
-
For validation to succeed, the total increase in ECT(0), ECT(1), and CE counts
+
For validation to succeed, the total increase in ECT(0), ECT(1), and CE counts
MUST be no smaller than the total number of QUIC packets sent with an ECT
codepoint that are newly acknowledged in this ACK frame. This step detects
any network remarking from ECT(0), ECT(1), or CE codepoints to Not-ECT.¶
-
Any increase in either ECT(0) or ECT(1) counts, plus any increase in the CE
+
Any increase in either ECT(0) or ECT(1) counts, plus any increase in the CE
count, MUST be no smaller than the number of packets sent with the
corresponding ECT codepoint that are newly acknowledged in this ACK frame.
This step detects any erroneous network remarking from ECT(0) to ECT(1) (or
vice versa).¶
-
+
Processing ECN counts out of order can result in validation failure. An
endpoint SHOULD NOT perform this validation if this ACK frame does not advance
the largest packet number acknowledged in this connection.¶
Each time that an endpoint commences sending on a new network path, it
-determines whether the path supports ECN. If the path supports ECN, the goal is
-to use ECN. Endpoints might also periodically reassess a path that was
-determined not support ECN.¶
-
This section describes one method for testing new paths. This algorithm is
-intended to show how a path might be tested for ECN support. Endpoints can
-implement different methods.¶
-
The path has an ECN state that is one of "testing", "unknown", "failed", or
-"capable". In the "testing" and "capable" states the endpoint sends packets
-with an ECT(0) marking; otherwise, the endpoint sends unmarked packets.¶
-
To start testing a path, the ECN state is set to "testing" and existing ECN
-counts are remembered as a baseline. It should not be necessary to disregard
-the effect of packets sent prior to starting testing, though it is necessary for
-a sender to remember what markings were used for every packet that is
-acknowledged; see Section 13.4.2.2.¶
-
The testing period runs for a number of packets or round trip times as
-determined by the endpoint. During this time, packets sent are marked with
-ECT(0). The goal is to limit the duration of the testing period, but to ensure
-that enough marked packets are sent that it is likely that ECN counts will
-provide a clear indication of how the path treats marked packets.¶
-
After the testing period ends, the ECN state for the path becomes "unknown".
-From the "unknown" state, successful validation of the ECN counts an ACK frame
-(see Section 13.4.2.2) causes the ECN state for the path to become "capable", unless
-no marked packet has been acknowledged.¶
-
At any point, if validation of ECN counts fails, the ECN state becomes "failed".
-An endpoint can also mark the ECN state for a path as "failed" if all marked
-packets are declared lost.¶
-
Following this algorithm ensures that ECN is rarely disabled for paths that
-properly support ECN. Any path that incorrectly modifies markings will cause
-ECN to be disabled. For those rare cases where marked packets are discarded by
-the path, the short duration of the testing period limits the number of losses
-incurred.¶
-
-
@@ -5429,10 +5394,10 @@
of packets, so that most invalid ICMP messages arrive when there are no DF
packets outstanding, and can therefore be identified as spurious.¶
-
An endpoint could store additional information from the IP or UDP headers to
+
An endpoint could store additional information from the IP or UDP headers to
use for validation (for example, the IP ID or UDP checksum).¶
-
+
The endpoint SHOULD ignore all ICMP messages that fail validation.¶
An endpoint MUST NOT increase PMTU based on ICMP messages. Any reduction in the
QUIC maximum packet size MAY be provisional until QUIC's loss detection
@@ -5665,32 +5630,32 @@
packet format. Packets that use the long header contain the following fields:¶
Header Form:
-
+
The most significant bit (0x80) of byte 0 (the first byte) is set to 1 for
long headers.¶
Fixed Bit:
-
+
The next bit (0x40) of byte 0 is set to 1. Packets containing a zero value
for this bit are not valid packets in this version and MUST be discarded.¶
Long Packet Type (T):
-
+
The next two bits (those with a mask of 0x30) of byte 0 contain a packet type.
Packet types are listed in Table 5.¶
Type-Specific Bits (X):
-
+
The lower four bits (those with a mask of 0x0f) of byte 0 are type-specific.¶
Version:
-
+
The QUIC Version is a 32-bit field that follows the first byte. This field
indicates which version of QUIC is in use and determines how the rest of the
protocol fields are interpreted.¶
DCID Len:
-
+
The byte following the version contains the length in bytes of the Destination
Connection ID field that follows it. This length is encoded as an 8-bit
unsigned integer. In QUIC version 1, this value MUST NOT exceed 20.
@@ -5700,13 +5665,13 @@
The Destination Connection ID field follows the DCID Len and is between 0 and
20 bytes in length. Section 7.2 describes the use of this
field in more detail.¶
SCID Len:
-
+
The byte following the Destination Connection ID contains the length in bytes
of the Source Connection ID field that follows it. This length is encoded as
a 8-bit unsigned integer. In QUIC version 1, this value MUST NOT exceed 20
@@ -5716,7 +5681,7 @@
The Source Connection ID field follows the SCID Len and is between 0 and 20
bytes in length. Section 7.2 describes the use of this
field in more detail.¶
@@ -5780,7 +5745,7 @@
Two bits (those with a mask of 0x0c) of byte 0 are reserved across multiple
packet types. These bits are protected using header protection (see Section
5.4 of [QUIC-TLS]). The value included prior to protection MUST be set to 0.
@@ -5791,7 +5756,7 @@
In packet types which contain a Packet Number field, the least significant two
bits (those with a mask of 0x03) of byte 0 contain the length of the packet
number, encoded as an unsigned, two-bit integer that is one less than the
@@ -5800,13 +5765,13 @@
using header protection (see Section 5.4 of [QUIC-TLS]).¶
Length:
-
+
The length of the remainder of the packet (that is, the Packet Number and
Payload fields) in bytes, encoded as a variable-length integer
(Section 16).¶
Packet Number:
-
+
The packet number field is 1 to 4 bytes long. The packet number has
confidentiality protection separate from packet protection, as described in
Section 5.4 of [QUIC-TLS]. The length of the packet number field is encoded
@@ -5933,7 +5898,7 @@
A variable-length integer specifying the length of the Token field, in bytes.
This value is zero if no token is present. Initial packets sent by the server
MUST set the Token Length field to zero; clients that receive an Initial
@@ -5941,12 +5906,12 @@
generate a connection error of type PROTOCOL_VIOLATION.¶
Token:
-
+
The value of the token that was previously provided in a Retry packet or
NEW_TOKEN frame.¶
addition to the long header, it contains these additional fields:¶
ODCID Len:
-
+
The ODCID Len contains the length in bytes of the Original Destination
Connection ID field that follows it. This length is encoded as a 8-bit
unsigned integer. In QUIC version 1, this value MUST NOT exceed 20 bytes.
@@ -6166,13 +6131,13 @@
The Original Destination Connection ID contains the value of the Destination
Connection ID from the Initial packet that this Retry is in response to. The
length of this field is given in ODCID Len.¶
Retry Token:
-
+
An opaque token that the server can use to validate the client's address.¶
@@ -6267,21 +6232,21 @@
Packets that use the short header contain the following fields:¶
Header Form:
-
+
The most significant bit (0x80) of byte 0 is set to 0 for the short header.¶
Fixed Bit:
-
+
The next bit (0x40) of byte 0 is set to 1. Packets containing a zero value
for this bit are not valid packets in this version and MUST be discarded.¶
Spin Bit (S):
-
+
The third most significant bit (0x20) of byte 0 is the latency spin bit, set
as described in Section 17.3.1.¶
Reserved Bits (R):
-
+
The next two bits (those with a mask of 0x18) of byte 0 are reserved. These
bits are protected using header protection (see Section 5.4 of
[QUIC-TLS]). The value included prior to protection MUST be set to 0. An
@@ -6292,14 +6257,14 @@
The next bit (0x04) of byte 0 indicates the key phase, which allows a
recipient of a packet to identify the packet protection keys that are used to
protect the packet. See [QUIC-TLS] for details. This bit is protected
using header protection (see Section 5.4 of [QUIC-TLS]).¶
Packet Number Length (P):
-
+
The least significant two bits (those with a mask of 0x03) of byte 0 contain
the length of the packet number, encoded as an unsigned, two-bit integer that
is one less than the length of the packet number field in bytes. That is, the
@@ -6307,19 +6272,19 @@
bits are protected using header protection (see Section 5.4 of [QUIC-TLS]).¶
Destination Connection ID:
-
+
The Destination Connection ID is a connection ID that is chosen by the
intended recipient of the packet. See Section 5.1 for more details.¶
Packet Number:
-
+
The packet number field is 1 to 4 bytes long. The packet number has
confidentiality protection separate from packet protection, as described in
Section 5.4 of [QUIC-TLS]. The length of the packet number field is encoded
in Packet Number Length field. See Section 17.1 for details.¶
Protected Payload:
-
+
Packets with a short header always include a 1-RTT protected payload.¶
The value of the Destination Connection ID field from the first Initial packet
sent by the client. This transport parameter is only sent by a server. This
is the same value sent in the "Original Destination Connection ID" field of a
@@ -6467,13 +6432,13 @@
original_connection_id transport parameter if it sent a Retry packet.¶
idle_timeout (0x0001):
-
+
The idle timeout is a value in milliseconds that is encoded as an integer; see
(Section 10.2). If this parameter is absent or zero then the idle
timeout is disabled.¶
stateless_reset_token (0x0002):
-
+
A stateless reset token is used in verifying a stateless reset; see
Section 10.4. This parameter is a sequence of 16 bytes. This
transport parameter MUST NOT be sent by a client, but MAY be sent by a server.
@@ -6482,7 +6447,7 @@
The maximum packet size parameter is an integer value that limits the size of
packets that the endpoint is willing to receive. This indicates that packets
larger than this limit will be dropped. The default for this parameter is the
@@ -6490,14 +6455,14 @@
limit only applies to protected packets (Section 12.1).¶
initial_max_data (0x0004):
-
+
The initial maximum data parameter is an integer value that contains the
initial value for the maximum amount of data that can be sent on the
connection. This is equivalent to sending a MAX_DATA (Section 19.9) for
the connection immediately after completing the handshake.¶
initial_max_stream_data_bidi_local (0x0005):
-
+
This parameter is an integer value specifying the initial flow control limit
for locally-initiated bidirectional streams. This limit applies to newly
created bidirectional streams opened by the endpoint that sends the transport
@@ -6507,7 +6472,7 @@
This parameter is an integer value specifying the initial flow control limit
for peer-initiated bidirectional streams. This limit applies to newly created
bidirectional streams opened by the endpoint that receives the transport
@@ -6517,7 +6482,7 @@
This parameter is an integer value specifying the initial flow control limit
for unidirectional streams. This limit applies to newly created
unidirectional streams opened by the endpoint that receives the transport
@@ -6527,7 +6492,7 @@
The initial maximum bidirectional streams parameter is an integer value that
contains the initial maximum number of bidirectional streams the peer may
initiate. If this parameter is absent or zero, the peer cannot open
@@ -6536,7 +6501,7 @@
The initial maximum unidirectional streams parameter is an integer value that
contains the initial maximum number of unidirectional streams the peer may
initiate. If this parameter is absent or zero, the peer cannot open
@@ -6545,14 +6510,14 @@
The ACK delay exponent is an integer value indicating an
exponent used to decode the ACK Delay field in the ACK frame (Section 19.3).
If this value is absent, a default value of 3 is assumed (indicating a
multiplier of 8). Values above 20 are invalid.¶
max_ack_delay (0x000b):
-
+
The maximum ACK delay is an integer value indicating the
maximum amount of time in milliseconds by which the endpoint will delay
sending acknowledgments. This value SHOULD include the receiver's expected
@@ -6562,7 +6527,7 @@
The disable active migration transport parameter is included if the endpoint
does not support active connection migration (Section 9). Peers of an
endpoint that sets this transport parameter MUST NOT send any packets,
@@ -6571,7 +6536,7 @@
The server's preferred address is used to effect a change in server address at
the end of the handshake, as described in Section 9.6. The format
of this transport parameter is shown in Figure 18. This
@@ -6623,7 +6588,7 @@
active_connection_id_limit (0x000e):
-
+
The maximum number of connection IDs from the peer that an endpoint is willing
to store. This value includes the connection ID received during the handshake,
that received in the preferred_address transport parameter, and those received
@@ -6745,14 +6710,14 @@
A variable-length integer representing the largest packet number the peer is
acknowledging; this is usually the largest packet number that the peer has
received prior to generating the ACK frame. Unlike the packet number in the
QUIC long or short header, the value in an ACK frame is not truncated.¶
ACK Delay:
-
+
A variable-length integer representing the time delta in microseconds between
when this ACK was sent and when the largest acknowledged packet, as indicated
in the Largest Acknowledged field, was received by this peer. The value of
@@ -6764,12 +6729,12 @@
for Initial and Handshake packets, a sender SHOULD send a value of 0.¶
ACK Range Count:
-
+
A variable-length integer specifying the number of Gap and ACK Range fields in
the frame.¶
First ACK Range:
-
+
A variable-length integer indicating the number of contiguous packets
preceding the Largest Acknowledged that are being acknowledged. The First ACK
Range is encoded as an ACK Range (see Section 19.3.1) starting from the
@@ -6778,12 +6743,12 @@
A variable-length integer indicating the number of contiguous unacknowledged
packets preceding the packet number one lower than the smallest in the
preceding ACK Range.¶
ACK Range (repeated):
-
+
A variable-length integer indicating the number of contiguous acknowledged
packets preceding the largest packet number, as determined by the
preceding Gap.¶
@@ -6899,17 +6864,17 @@
A variable-length integer specifying the length of the token in bytes.¶
Token:
-
+
An opaque blob that the client may use with a future Initial packet. The token
MUST NOT be empty. An endpoint MUST treat receipt of a NEW_TOKEN frame with
an empty Token field as a connection error of type FRAME_ENCODING_ERROR.¶
@@ -7123,16 +7088,16 @@
(that is, the frame contains the first bytes of the stream, or the end of a
stream that includes no data).¶
-
The LEN bit (0x02) in the frame type is set to indicate that there is a Length
+
The LEN bit (0x02) in the frame type is set to indicate that there is a Length
field present. If this bit is set to 0, the Length field is absent and the
Stream Data field extends to the end of the packet. If this bit is set to 1,
the Length field is present.¶
-
The FIN bit (0x01) of the frame type is set only on frames that contain the
+
The FIN bit (0x01) of the frame type is set only on frames that contain the
final size of the stream. Setting this bit indicates that the frame
marks the end of the stream.¶
-
+
An endpoint that receives a STREAM frame for a send-only stream MUST terminate
the connection with error STREAM_STATE_ERROR.¶
A variable-length integer indicating the stream ID of the stream (see
Section 2.1).¶
Offset:
-
+
A variable-length integer specifying the byte offset in the stream for the
data in this STREAM frame. This field is present when the OFF bit is set to
1. When the Offset field is absent, the offset is 0.¶
Length:
-
+
A variable-length integer specifying the length of the Stream Data field in
this STREAM frame. This field is present when the LEN bit is set to 1. When
the LEN bit is set to 0, the Stream Data field consumes all the remaining
bytes in the packet.¶
Stream Data:
-
+
The bytes from the designated stream to be delivered.¶
A count of the cumulative number of streams of the corresponding type that
can be opened over the lifetime of the connection. Stream IDs cannot exceed
2^62-1, as it is not possible to encode stream IDs larger than this value.
@@ -7339,7 +7304,7 @@
DATA_BLOCKED frames contain the following fields:¶
Data Limit:
-
+
A variable-length integer indicating the connection-level limit at which
blocking occurred.¶
@@ -7371,11 +7336,11 @@
STREAM_DATA_BLOCKED frames contain the following fields:¶
Stream ID:
-
+
A variable-length integer indicating the stream which is flow control blocked.¶
Stream Data Limit:
-
+
A variable-length integer indicating the offset of the stream at which the
blocking occurred.¶
@@ -7407,7 +7372,7 @@
STREAMS_BLOCKED frames contain the following fields:¶
Stream Limit:
-
+
A variable-length integer indicating the stream limit at the time the frame
was sent. Stream IDs cannot exceed 2^62-1, as it is not possible to encode
stream IDs larger than this value. Receipt of a frame that encodes a larger
@@ -7451,27 +7416,27 @@
NEW_CONNECTION_ID frames contain the following fields:¶
Sequence Number:
-
+
The sequence number assigned to the connection ID by the sender. See
Section 5.1.1.¶
Retire Prior To:
-
+
A variable-length integer indicating which connection IDs should be retired.
See Section 5.1.2.¶
Length:
-
+
An 8-bit unsigned integer containing the length of the connection ID. Values
less than 1 and greater than 20 are invalid and MUST be treated as a
connection error of type FRAME_ENCODING_ERROR.¶
CONNECTION_CLOSE frames contain the following fields:¶
Error Code:
-
+
A variable length integer error code which indicates the reason for
closing this connection. A CONNECTION_CLOSE frame of type 0x1c uses codes
from the space defined in Section 20. A CONNECTION_CLOSE frame of
@@ -7636,20 +7601,20 @@
A variable-length integer encoding the type of frame that triggered the error.
A value of 0 (equivalent to the mention of the PADDING frame) is used when the
frame type is unknown. The application-specific variant of CONNECTION_CLOSE
(type 0x1d) does not include this field.¶
Reason Phrase Length:
-
+
A variable-length integer specifying the length of the reason phrase in bytes.
Because a CONNECTION_CLOSE frame cannot be split between packets, any limits
on packet size will also limit the space available for a reason phrase.¶
Reason Phrase:
-
+
A human-readable explanation for why the connection was closed. This can be
zero length if the sender chooses to not give details beyond the Error Code.
This SHOULD be a UTF-8 encoded string [RFC3629].¶
@@ -7695,36 +7660,36 @@
CONNECTION_CLOSE frame. These errors apply to the entire connection.¶
NO_ERROR (0x0):
-
+
An endpoint uses this with CONNECTION_CLOSE to signal that the connection is
being closed abruptly in the absence of any error.¶
INTERNAL_ERROR (0x1):
-
+
The endpoint encountered an internal error and cannot continue with the
connection.¶
SERVER_BUSY (0x2):
-
+
The server is currently busy and does not accept any new connections.¶
FLOW_CONTROL_ERROR (0x3):
-
+
An endpoint received more data than it permitted in its advertised data limits
(see Section 4).¶
STREAM_LIMIT_ERROR (0x4):
-
+
An endpoint received a frame for a stream identifier that exceeded its
advertised stream limit for the corresponding stream type.¶
STREAM_STATE_ERROR (0x5):
-
+
An endpoint received a frame for a stream that was not in a state that
permitted that frame (see Section 3).¶
FINAL_SIZE_ERROR (0x6):
-
+
An endpoint received a STREAM frame containing data that exceeded the
previously established final size. Or an endpoint received a STREAM frame or
a RESET_STREAM frame containing a final size that was lower than the size of
@@ -7733,37 +7698,37 @@
An endpoint received a frame that was badly formatted. For instance, a frame
of an unknown type, or an ACK frame that has more acknowledgment ranges than
the remainder of the packet could carry.¶
TRANSPORT_PARAMETER_ERROR (0x8):
-
+
An endpoint received transport parameters that were badly formatted, included
an invalid value, was absent even though it is mandatory, was present though
it is forbidden, or is otherwise in error.¶
CONNECTION_ID_LIMIT_ERROR (0x9):
-
+
The number of connection IDs provided by the peer exceeds the advertised
active_connection_id_limit.¶
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.¶
CRYPTO_ERROR (0x1XX):
-
+
The cryptographic handshake failed. A range of 256 values is reserved for
carrying error codes specific to the cryptographic handshake that is used.
Codes for errors occurring when TLS is used for the crypto handshake are
@@ -8060,27 +8025,27 @@
Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, , <https://www.rfc-editor.org/info/rfc2119>.
[RFC3168]
-
+
Ramakrishnan, K., Floyd, S., and D. Black, "The Addition of Explicit Congestion Notification (ECN) to IP", RFC 3168, DOI 10.17487/RFC3168, , <https://www.rfc-editor.org/info/rfc3168>.
Eastlake 3rd, D., Schiller, J., and S. Crocker, "Randomness Requirements for Security", BCP 106, RFC 4086, DOI 10.17487/RFC4086, , <https://www.rfc-editor.org/info/rfc4086>.
Cotton, M., Leiba, B., and T. Narten, "Guidelines for Writing an IANA Considerations Section in RFCs", BCP 26, RFC 8126, DOI 10.17487/RFC8126, , <https://www.rfc-editor.org/info/rfc8126>.
[RFC8174]
-
+
Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, , <https://www.rfc-editor.org/info/rfc8174>.
[RFC8201]
-
+
McCann, J., Deering, S., Mogul, J., and R. Hinden, Ed., "Path MTU Discovery for IP version 6", STD 87, RFC 8201, DOI 10.17487/RFC8201, , <https://www.rfc-editor.org/info/rfc8201>.
[RFC8311]
-
+
Black, D., "Relaxing Restrictions on Explicit Congestion Notification (ECN) Experimentation", RFC 8311, DOI 10.17487/RFC8311, , <https://www.rfc-editor.org/info/rfc8311>.
Belshe, M., Peon, R., and M. Thomson, Ed., "Hypertext Transfer Protocol Version 2 (HTTP/2)", RFC 7540, DOI 10.17487/RFC7540, , <https://www.rfc-editor.org/info/rfc7540>.
Mathis, M., Mahdavi, J., Floyd, S., and A. Romanow, "TCP Selective Acknowledgment Options", RFC 2018, DOI 10.17487/RFC2018, , <https://www.rfc-editor.org/info/rfc2018>.
[RFC2104]
-
+
Krawczyk, H., Bellare, M., and R. Canetti, "HMAC: Keyed-Hashing for Message Authentication", RFC 2104, DOI 10.17487/RFC2104, , <https://www.rfc-editor.org/info/rfc2104>.
Conta, A., Deering, S., and M. Gupta, Ed., "Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification", STD 89, RFC 4443, DOI 10.17487/RFC4443, , <https://www.rfc-editor.org/info/rfc4443>.
[RFC4787]
-
+
Audet, F., Ed. and C. Jennings, "Network Address Translation (NAT) Behavioral Requirements for Unicast UDP", BCP 127, RFC 4787, DOI 10.17487/RFC4787, , <https://www.rfc-editor.org/info/rfc4787>.
Krawczyk, H. and P. Eronen, "HMAC-based Extract-and-Expand Key Derivation Function (HKDF)", RFC 5869, DOI 10.17487/RFC5869, , <https://www.rfc-editor.org/info/rfc5869>.
[RFC7301]
-
+
Friedl, S., Popov, A., Langley, A., and E. Stephan, "Transport Layer Security (TLS) Application-Layer Protocol Negotiation Extension", RFC 7301, DOI 10.17487/RFC7301, , <https://www.rfc-editor.org/info/rfc7301>.
[RFC8200]
-
+
Deering, S. and R. Hinden, "Internet Protocol, Version 6 (IPv6) Specification", STD 86, RFC 8200, DOI 10.17487/RFC8200, , <https://www.rfc-editor.org/info/rfc8200>.
Each time an endpoint commences sending on a new network path, it determines
+whether the path supports ECN; see Section 13.4. If the path supports ECN, the goal
+is to use ECN. Endpoints might also periodically reassess a path that was
+determined not support ECN.¶
+
This section describes one method for testing new paths. This algorithm is
+intended to show how a path might be tested for ECN support. Endpoints can
+implement different methods.¶
+
The path is assigned an ECN state that is one of "testing", "unknown", "failed",
+or "capable". On paths with a "testing" or "capable" state the endpoint sends
+packets with an ECT marking, by default ECT(0); otherwise, the endpoint sends
+unmarked packets.¶
+
To start testing a path, the ECN state is set to "testing" and existing ECN
+counts are remembered as a baseline.¶
+
The testing period runs for a number of packets or round-trip times, as
+determined by the endpoint. The goal is not to limit the duration of the
+testing period, but to ensure that enough marked packets are sent for received
+ECN counts to provide a clear indication of how the path treats marked packets.
+Section 13.4.2.2 suggests limiting this to 10 packets or 3 round-trip times.¶
+
After the testing period ends, the ECN state for the path becomes "unknown".
+From the "unknown" state, successful validation of the ECN counts an ACK frame
+(see Section 13.4.2.2) causes the ECN state for the path to become "capable", unless
+no marked packet has been acknowledged.¶
+
If validation of ECN counts fails at any time, the ECN state for the affected
+path becomes "failed". An endpoint can also mark the ECN state for a path as
+"failed" if marked packets are all declared lost or if they are all CE marked.¶
+
Following this algorithm ensures that ECN is rarely disabled for paths that
+properly support ECN. Any path that incorrectly modifies markings will cause
+ECN to be disabled. For those rare cases where marked packets are discarded by
+the path, the short duration of the testing period limits the number of losses
+incurred.¶
Removed version negotiation; version negotiation, including authentication of
-the result, will be addressed in the next version of QUIC (#1773, #2313)¶
+
Removed version negotiation; version negotiation, including authentication of
+the result, will be addressed in the next version of QUIC (#1773, #2313)¶
-
Added discussion of the use of IPv6 flow labels (#2348, #2399)¶
+
Added discussion of the use of IPv6 flow labels (#2348, #2399)¶
-
A connection ID can't be retired in a packet that uses that connection ID
-(#2101, #2420)¶
+
A connection ID can't be retired in a packet that uses that connection ID
+(#2101, #2420)¶
-
Idle timeout transport parameter is in milliseconds (from seconds) (#2453,
-#2454)¶
+
Idle timeout transport parameter is in milliseconds (from seconds) (#2453,
+#2454)¶
-
Endpoints are required to use new connection IDs when they use new network
-paths (#2413, #2414)¶
+
Endpoints are required to use new connection IDs when they use new network
+paths (#2413, #2414)¶
-
Increased the set of permissible frames in 0-RTT (#2344, #2355)¶
+
Increased the set of permissible frames in 0-RTT (#2344, #2355)¶
Changes to integration of the TLS handshake (#829, #1018, #1094, #1165, #1190,
-#1233, #1242, #1252, #1450, #1458)¶
+
+
Changes to integration of the TLS handshake (#829, #1018, #1094, #1165, #1190,
+#1233, #1242, #1252, #1450, #1458)¶
-
The cryptographic handshake uses CRYPTO frames, not stream 0¶
+
The cryptographic handshake uses CRYPTO frames, not stream 0¶
-
QUIC packet protection is used in place of TLS record protection¶
+
QUIC packet protection is used in place of TLS record protection¶
-
Separate QUIC packet number spaces are used for the handshake¶
+
Separate QUIC packet number spaces are used for the handshake¶
-
Changed Retry to be independent of the cryptographic handshake¶
+
Changed Retry to be independent of the cryptographic handshake¶
-
Added NEW_TOKEN frame and Token fields to Initial packet¶
+
Added NEW_TOKEN frame and Token fields to Initial packet¶
-
Limit the use of HelloRetryRequest to address TLS needs (like key shares)¶
+
Limit the use of HelloRetryRequest to address TLS needs (like key shares)¶
-
+
-
Enable server to transition connections to a preferred address (#560, #1251,
-#1373)¶
+
Enable server to transition connections to a preferred address (#560, #1251,
+#1373)¶
-
Added ECN feedback mechanisms and handling; new ACK_ECN frame (#804, #805,
-#1372)¶
+
Added ECN feedback mechanisms and handling; new ACK_ECN frame (#804, #805,
+#1372)¶
-
Changed rules and recommendations for use of new connection IDs (#1258, #1264,
-#1276, #1280, #1419, #1452, #1453, #1465)¶
+
Changed rules and recommendations for use of new connection IDs (#1258, #1264,
+#1276, #1280, #1419, #1452, #1453, #1465)¶
-
Added a transport parameter to disable intentional connection migration
-(#1271, #1447)¶
+
Added a transport parameter to disable intentional connection migration
+(#1271, #1447)¶
-
Packets from different connection ID can't be coalesced (#1287, #1423)¶
+
Packets from different connection ID can't be coalesced (#1287, #1423)¶
-
Fixed sampling method for packet number encryption; the length field in long
+
Fixed sampling method for packet number encryption; the length field in long
headers includes the packet number field in addition to the packet payload
-(#1387, #1389)¶
+(#1387, #1389)¶
-
Stateless Reset is now symmetric and subject to size constraints (#466, #1346)¶
+
Stateless Reset is now symmetric and subject to size constraints (#466, #1346)¶
-
Added frame type extension mechanism (#58, #1473)¶
+
Added frame type extension mechanism (#58, #1473)¶
Added PATH_CHALLENGE and PATH_RESPONSE frames to replace PING with Data and
-PONG frame. Changed ACK frame type from 0x0e to 0x0d. (#1091, #725, #1086)¶
+
Added PATH_CHALLENGE and PATH_RESPONSE frames to replace PING with Data and
+PONG frame. Changed ACK frame type from 0x0e to 0x0d. (#1091, #725, #1086)¶
-
A server can now only send 3 packets without validating the client address
-(#38, #1090)¶
+
A server can now only send 3 packets without validating the client address
+(#38, #1090)¶
-
Delivery order of stream data is no longer strongly specified (#252, #1070)¶
+
Delivery order of stream data is no longer strongly specified (#252, #1070)¶
-
Rework of packet handling and version negotiation (#1038)¶
+
Rework of packet handling and version negotiation (#1038)¶
-
Stream 0 is now exempt from flow control until the handshake completes (#1074,
-#725, #825, #1082)¶
+
Stream 0 is now exempt from flow control until the handshake completes (#1074,
+#725, #825, #1082)¶
-
Improved retransmission rules for all frame types: information is
-retransmitted, not packets or frames (#463, #765, #1095, #1053)¶
+
Improved retransmission rules for all frame types: information is
+retransmitted, not packets or frames (#463, #765, #1095, #1053)¶
-
Added an error code for server busy signals (#1137)¶
+
Added an error code for server busy signals (#1137)¶
-
Endpoints now set the connection ID that their peer uses. Connection IDs are
+
Endpoints now set the connection ID that their peer uses. Connection IDs are
variable length. Removed the omit_connection_id transport parameter and the
corresponding short header flag. (#1089, #1052, #1146, #821, #745, #821,
-#1166, #1151)¶
+#1166, #1151)¶
Special thanks are due to the following for helping shape pre-IETF QUIC and its
+
Special thanks are due to the following for helping shape pre-IETF QUIC and its
deployment: Chris Bentzel, Misha Efimov, Roberto Peon, Alistair Riddoch,
-Siddharth Vijayakrishnan, and Assar Westerlund.¶
-
This document has benefited immensely from various private discussions and
+Siddharth Vijayakrishnan, and Assar Westerlund.¶
+
This document has benefited immensely from various private discussions and
public ones on the quic@ietf.org and proto-quic@chromium.org mailing lists. Our
-thanks to all.¶
The original authors of this specification were Ryan Hamilton, Jana Iyengar, Ian
-Swett, and Alyssa Wilk.¶
-
The original design and rationale behind this protocol draw significantly from
+
The original authors of this specification were Ryan Hamilton, Jana Iyengar, Ian
+Swett, and Alyssa Wilk.¶
+
The original design and rationale behind this protocol draw significantly from
work by Jim Roskind [EARLY-DESIGN]. In alphabetical order, the contributors to
the pre-IETF QUIC project at Google are: Britt Cyr, Jeremy Dorfman, Ryan
Hamilton, Jana Iyengar, Fedor Kouranov, Charles Krasic, Jo Kulik, Adam Langley,
Jim Roskind, Robbie Shade, Satyam Shekhar, Cherie Shi, Ian Swett, Raman Tenneti,
Victor Vasiliev, Antonio Vicente, Patrik Westin, Alyssa Wilk, Dale Worley, Fan
-Yang, Dan Zhang, Daniel Ziegler.¶
diff --git a/ecn-alg/draft-ietf-quic-transport.txt b/ecn-alg/draft-ietf-quic-transport.txt
index b9b86eff35..c42e48e026 100644
--- a/ecn-alg/draft-ietf-quic-transport.txt
+++ b/ecn-alg/draft-ietf-quic-transport.txt
@@ -5,8 +5,8 @@
QUIC J. Iyengar, Ed.
Internet-Draft Fastly
Intended status: Standards Track M. Thomson, Ed.
-Expires: 10 July 2020 Mozilla
- 7 January 2020
+Expires: 11 July 2020 Mozilla
+ 8 January 2020
QUIC: A UDP-Based Multiplexed and Secure Transport
@@ -43,7 +43,7 @@ Status of This Memo
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
- This Internet-Draft will expire on 10 July 2020.
+ This Internet-Draft will expire on 11 July 2020.
Copyright Notice
@@ -53,7 +53,7 @@ Copyright Notice
-Iyengar & Thomson Expires 10 July 2020 [Page 1]
+Iyengar & Thomson Expires 11 July 2020 [Page 1]
Internet-Draft QUIC Transport Protocol January 2020
@@ -109,7 +109,7 @@ Table of Contents
-Iyengar & Thomson Expires 10 July 2020 [Page 2]
+Iyengar & Thomson Expires 11 July 2020 [Page 2]
Internet-Draft QUIC Transport Protocol January 2020
@@ -165,7 +165,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 3]
+Iyengar & Thomson Expires 11 July 2020 [Page 3]
Internet-Draft QUIC Transport Protocol January 2020
@@ -182,26 +182,26 @@ Internet-Draft QUIC Transport Protocol January 2020
13.4. Explicit Congestion Notification . . . . . . . . . . . . 81
13.4.1. ECN Counts . . . . . . . . . . . . . . . . . . . . . 82
13.4.2. ECN Validation . . . . . . . . . . . . . . . . . . . 82
- 14. Packet Size . . . . . . . . . . . . . . . . . . . . . . . . . 85
- 14.1. Path Maximum Transmission Unit (PMTU) . . . . . . . . . 86
- 14.2. ICMP Packet Too Big Messages . . . . . . . . . . . . . . 87
- 14.3. Datagram Packetization Layer PMTU Discovery . . . . . . 88
- 14.3.1. PMTU Probes Containing Source Connection ID . . . . 88
- 15. Versions . . . . . . . . . . . . . . . . . . . . . . . . . . 88
- 16. Variable-Length Integer Encoding . . . . . . . . . . . . . . 89
- 17. Packet Formats . . . . . . . . . . . . . . . . . . . . . . . 90
- 17.1. Packet Number Encoding and Decoding . . . . . . . . . . 90
- 17.2. Long Header Packets . . . . . . . . . . . . . . . . . . 91
- 17.2.1. Version Negotiation Packet . . . . . . . . . . . . . 94
+ 14. Packet Size . . . . . . . . . . . . . . . . . . . . . . . . . 84
+ 14.1. Path Maximum Transmission Unit (PMTU) . . . . . . . . . 85
+ 14.2. ICMP Packet Too Big Messages . . . . . . . . . . . . . . 86
+ 14.3. Datagram Packetization Layer PMTU Discovery . . . . . . 87
+ 14.3.1. PMTU Probes Containing Source Connection ID . . . . 87
+ 15. Versions . . . . . . . . . . . . . . . . . . . . . . . . . . 87
+ 16. Variable-Length Integer Encoding . . . . . . . . . . . . . . 88
+ 17. Packet Formats . . . . . . . . . . . . . . . . . . . . . . . 89
+ 17.1. Packet Number Encoding and Decoding . . . . . . . . . . 89
+ 17.2. Long Header Packets . . . . . . . . . . . . . . . . . . 90
+ 17.2.1. Version Negotiation Packet . . . . . . . . . . . . . 93
17.2.2. Initial Packet . . . . . . . . . . . . . . . . . . . 95
- 17.2.3. 0-RTT . . . . . . . . . . . . . . . . . . . . . . . 98
+ 17.2.3. 0-RTT . . . . . . . . . . . . . . . . . . . . . . . 97
17.2.4. Handshake Packet . . . . . . . . . . . . . . . . . . 99
17.2.5. Retry Packet . . . . . . . . . . . . . . . . . . . . 100
- 17.3. Short Header Packets . . . . . . . . . . . . . . . . . . 103
- 17.3.1. Latency Spin Bit . . . . . . . . . . . . . . . . . . 105
- 18. Transport Parameter Encoding . . . . . . . . . . . . . . . . 106
- 18.1. Reserved Transport Parameters . . . . . . . . . . . . . 107
- 18.2. Transport Parameter Definitions . . . . . . . . . . . . 107
+ 17.3. Short Header Packets . . . . . . . . . . . . . . . . . . 102
+ 17.3.1. Latency Spin Bit . . . . . . . . . . . . . . . . . . 104
+ 18. Transport Parameter Encoding . . . . . . . . . . . . . . . . 105
+ 18.1. Reserved Transport Parameters . . . . . . . . . . . . . 106
+ 18.2. Transport Parameter Definitions . . . . . . . . . . . . 106
19. Frame Types and Formats . . . . . . . . . . . . . . . . . . . 111
19.1. PADDING Frame . . . . . . . . . . . . . . . . . . . . . 111
19.2. PING Frame . . . . . . . . . . . . . . . . . . . . . . . 111
@@ -221,7 +221,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 4]
+Iyengar & Thomson Expires 11 July 2020 [Page 4]
Internet-Draft QUIC Transport Protocol January 2020
@@ -260,43 +260,44 @@ Internet-Draft QUIC Transport Protocol January 2020
23.1. Normative References . . . . . . . . . . . . . . . . . . 143
23.2. Informative References . . . . . . . . . . . . . . . . . 144
Appendix A. Sample Packet Number Decoding Algorithm . . . . . . 146
- Appendix B. Change Log . . . . . . . . . . . . . . . . . . . . . 147
- B.1. Since draft-ietf-quic-transport-23 . . . . . . . . . . . 147
- B.2. Since draft-ietf-quic-transport-22 . . . . . . . . . . . 148
- B.3. Since draft-ietf-quic-transport-21 . . . . . . . . . . . 149
- B.4. Since draft-ietf-quic-transport-20 . . . . . . . . . . . 149
- B.5. Since draft-ietf-quic-transport-19 . . . . . . . . . . . 150
- B.6. Since draft-ietf-quic-transport-18 . . . . . . . . . . . 151
- B.7. Since draft-ietf-quic-transport-17 . . . . . . . . . . . 151
- B.8. Since draft-ietf-quic-transport-16 . . . . . . . . . . . 152
- B.9. Since draft-ietf-quic-transport-15 . . . . . . . . . . . 153
- B.10. Since draft-ietf-quic-transport-14 . . . . . . . . . . . 153
- B.11. Since draft-ietf-quic-transport-13 . . . . . . . . . . . 154
- B.12. Since draft-ietf-quic-transport-12 . . . . . . . . . . . 154
- B.13. Since draft-ietf-quic-transport-11 . . . . . . . . . . . 155
-
-
-
-Iyengar & Thomson Expires 10 July 2020 [Page 5]
-
-Internet-Draft QUIC Transport Protocol January 2020
-
-
- B.14. Since draft-ietf-quic-transport-10 . . . . . . . . . . . 155
- B.15. Since draft-ietf-quic-transport-09 . . . . . . . . . . . 156
- B.16. Since draft-ietf-quic-transport-08 . . . . . . . . . . . 157
- B.17. Since draft-ietf-quic-transport-07 . . . . . . . . . . . 157
- B.18. Since draft-ietf-quic-transport-06 . . . . . . . . . . . 158
- B.19. Since draft-ietf-quic-transport-05 . . . . . . . . . . . 159
- B.20. Since draft-ietf-quic-transport-04 . . . . . . . . . . . 159
- B.21. Since draft-ietf-quic-transport-03 . . . . . . . . . . . 160
- B.22. Since draft-ietf-quic-transport-02 . . . . . . . . . . . 160
- B.23. Since draft-ietf-quic-transport-01 . . . . . . . . . . . 161
- B.24. Since draft-ietf-quic-transport-00 . . . . . . . . . . . 163
- B.25. Since draft-hamilton-quic-transport-protocol-01 . . . . . 163
- Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 163
- Contributors . . . . . . . . . . . . . . . . . . . . . . . . . . 163
- Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 164
+ Appendix B. Sample ECN Validation Algorithm . . . . . . . . . . 147
+ Appendix C. Change Log . . . . . . . . . . . . . . . . . . . . . 148
+ C.1. Since draft-ietf-quic-transport-23 . . . . . . . . . . . 148
+ C.2. Since draft-ietf-quic-transport-22 . . . . . . . . . . . 149
+ C.3. Since draft-ietf-quic-transport-21 . . . . . . . . . . . 150
+ C.4. Since draft-ietf-quic-transport-20 . . . . . . . . . . . 150
+ C.5. Since draft-ietf-quic-transport-19 . . . . . . . . . . . 151
+ C.6. Since draft-ietf-quic-transport-18 . . . . . . . . . . . 152
+ C.7. Since draft-ietf-quic-transport-17 . . . . . . . . . . . 152
+ C.8. Since draft-ietf-quic-transport-16 . . . . . . . . . . . 153
+ C.9. Since draft-ietf-quic-transport-15 . . . . . . . . . . . 154
+ C.10. Since draft-ietf-quic-transport-14 . . . . . . . . . . . 154
+ C.11. Since draft-ietf-quic-transport-13 . . . . . . . . . . . 154
+ C.12. Since draft-ietf-quic-transport-12 . . . . . . . . . . . 155
+
+
+
+Iyengar & Thomson Expires 11 July 2020 [Page 5]
+
+Internet-Draft QUIC Transport Protocol January 2020
+
+
+ C.13. Since draft-ietf-quic-transport-11 . . . . . . . . . . . 156
+ C.14. Since draft-ietf-quic-transport-10 . . . . . . . . . . . 156
+ C.15. Since draft-ietf-quic-transport-09 . . . . . . . . . . . 157
+ C.16. Since draft-ietf-quic-transport-08 . . . . . . . . . . . 158
+ C.17. Since draft-ietf-quic-transport-07 . . . . . . . . . . . 158
+ C.18. Since draft-ietf-quic-transport-06 . . . . . . . . . . . 159
+ C.19. Since draft-ietf-quic-transport-05 . . . . . . . . . . . 159
+ C.20. Since draft-ietf-quic-transport-04 . . . . . . . . . . . 160
+ C.21. Since draft-ietf-quic-transport-03 . . . . . . . . . . . 161
+ C.22. Since draft-ietf-quic-transport-02 . . . . . . . . . . . 161
+ C.23. Since draft-ietf-quic-transport-01 . . . . . . . . . . . 162
+ C.24. Since draft-ietf-quic-transport-00 . . . . . . . . . . . 164
+ C.25. Since draft-hamilton-quic-transport-protocol-01 . . . . . 164
+ Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 164
+ Contributors . . . . . . . . . . . . . . . . . . . . . . . . . . 164
+ Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 165
1. Introduction
@@ -329,15 +330,16 @@ Internet-Draft QUIC Transport Protocol January 2020
- Section 3 provides a reference model for stream states, and
- - Section 4 outlines the operation of flow control.
-Iyengar & Thomson Expires 10 July 2020 [Page 6]
+Iyengar & Thomson Expires 11 July 2020 [Page 6]
Internet-Draft QUIC Transport Protocol January 2020
+ - Section 4 outlines the operation of flow control.
+
* Connections are the context in which QUIC endpoints communicate.
- Section 5 describes core concepts related to connections,
@@ -387,9 +389,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-
-
-Iyengar & Thomson Expires 10 July 2020 [Page 7]
+Iyengar & Thomson Expires 11 July 2020 [Page 7]
Internet-Draft QUIC Transport Protocol January 2020
@@ -445,7 +445,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 8]
+Iyengar & Thomson Expires 11 July 2020 [Page 8]
Internet-Draft QUIC Transport Protocol January 2020
@@ -501,7 +501,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 9]
+Iyengar & Thomson Expires 11 July 2020 [Page 9]
Internet-Draft QUIC Transport Protocol January 2020
@@ -557,7 +557,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 10]
+Iyengar & Thomson Expires 11 July 2020 [Page 10]
Internet-Draft QUIC Transport Protocol January 2020
@@ -613,7 +613,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 11]
+Iyengar & Thomson Expires 11 July 2020 [Page 11]
Internet-Draft QUIC Transport Protocol January 2020
@@ -669,7 +669,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 12]
+Iyengar & Thomson Expires 11 July 2020 [Page 12]
Internet-Draft QUIC Transport Protocol January 2020
@@ -725,7 +725,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 13]
+Iyengar & Thomson Expires 11 July 2020 [Page 13]
Internet-Draft QUIC Transport Protocol January 2020
@@ -781,7 +781,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 14]
+Iyengar & Thomson Expires 11 July 2020 [Page 14]
Internet-Draft QUIC Transport Protocol January 2020
@@ -837,7 +837,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 15]
+Iyengar & Thomson Expires 11 July 2020 [Page 15]
Internet-Draft QUIC Transport Protocol January 2020
@@ -893,7 +893,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 16]
+Iyengar & Thomson Expires 11 July 2020 [Page 16]
Internet-Draft QUIC Transport Protocol January 2020
@@ -949,7 +949,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 17]
+Iyengar & Thomson Expires 11 July 2020 [Page 17]
Internet-Draft QUIC Transport Protocol January 2020
@@ -1005,7 +1005,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 18]
+Iyengar & Thomson Expires 11 July 2020 [Page 18]
Internet-Draft QUIC Transport Protocol January 2020
@@ -1061,7 +1061,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 19]
+Iyengar & Thomson Expires 11 July 2020 [Page 19]
Internet-Draft QUIC Transport Protocol January 2020
@@ -1117,7 +1117,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 20]
+Iyengar & Thomson Expires 11 July 2020 [Page 20]
Internet-Draft QUIC Transport Protocol January 2020
@@ -1173,7 +1173,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 21]
+Iyengar & Thomson Expires 11 July 2020 [Page 21]
Internet-Draft QUIC Transport Protocol January 2020
@@ -1229,7 +1229,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 22]
+Iyengar & Thomson Expires 11 July 2020 [Page 22]
Internet-Draft QUIC Transport Protocol January 2020
@@ -1285,7 +1285,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 23]
+Iyengar & Thomson Expires 11 July 2020 [Page 23]
Internet-Draft QUIC Transport Protocol January 2020
@@ -1341,7 +1341,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 24]
+Iyengar & Thomson Expires 11 July 2020 [Page 24]
Internet-Draft QUIC Transport Protocol January 2020
@@ -1397,7 +1397,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 25]
+Iyengar & Thomson Expires 11 July 2020 [Page 25]
Internet-Draft QUIC Transport Protocol January 2020
@@ -1453,7 +1453,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 26]
+Iyengar & Thomson Expires 11 July 2020 [Page 26]
Internet-Draft QUIC Transport Protocol January 2020
@@ -1509,7 +1509,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 27]
+Iyengar & Thomson Expires 11 July 2020 [Page 27]
Internet-Draft QUIC Transport Protocol January 2020
@@ -1565,7 +1565,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 28]
+Iyengar & Thomson Expires 11 July 2020 [Page 28]
Internet-Draft QUIC Transport Protocol January 2020
@@ -1621,7 +1621,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 29]
+Iyengar & Thomson Expires 11 July 2020 [Page 29]
Internet-Draft QUIC Transport Protocol January 2020
@@ -1677,7 +1677,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 30]
+Iyengar & Thomson Expires 11 July 2020 [Page 30]
Internet-Draft QUIC Transport Protocol January 2020
@@ -1733,7 +1733,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 31]
+Iyengar & Thomson Expires 11 July 2020 [Page 31]
Internet-Draft QUIC Transport Protocol January 2020
@@ -1789,7 +1789,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 32]
+Iyengar & Thomson Expires 11 July 2020 [Page 32]
Internet-Draft QUIC Transport Protocol January 2020
@@ -1845,7 +1845,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 33]
+Iyengar & Thomson Expires 11 July 2020 [Page 33]
Internet-Draft QUIC Transport Protocol January 2020
@@ -1901,7 +1901,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 34]
+Iyengar & Thomson Expires 11 July 2020 [Page 34]
Internet-Draft QUIC Transport Protocol January 2020
@@ -1957,7 +1957,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 35]
+Iyengar & Thomson Expires 11 July 2020 [Page 35]
Internet-Draft QUIC Transport Protocol January 2020
@@ -2013,7 +2013,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 36]
+Iyengar & Thomson Expires 11 July 2020 [Page 36]
Internet-Draft QUIC Transport Protocol January 2020
@@ -2069,7 +2069,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 37]
+Iyengar & Thomson Expires 11 July 2020 [Page 37]
Internet-Draft QUIC Transport Protocol January 2020
@@ -2125,7 +2125,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 38]
+Iyengar & Thomson Expires 11 July 2020 [Page 38]
Internet-Draft QUIC Transport Protocol January 2020
@@ -2181,7 +2181,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 39]
+Iyengar & Thomson Expires 11 July 2020 [Page 39]
Internet-Draft QUIC Transport Protocol January 2020
@@ -2237,7 +2237,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 40]
+Iyengar & Thomson Expires 11 July 2020 [Page 40]
Internet-Draft QUIC Transport Protocol January 2020
@@ -2293,7 +2293,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 41]
+Iyengar & Thomson Expires 11 July 2020 [Page 41]
Internet-Draft QUIC Transport Protocol January 2020
@@ -2349,7 +2349,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 42]
+Iyengar & Thomson Expires 11 July 2020 [Page 42]
Internet-Draft QUIC Transport Protocol January 2020
@@ -2405,7 +2405,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 43]
+Iyengar & Thomson Expires 11 July 2020 [Page 43]
Internet-Draft QUIC Transport Protocol January 2020
@@ -2461,7 +2461,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 44]
+Iyengar & Thomson Expires 11 July 2020 [Page 44]
Internet-Draft QUIC Transport Protocol January 2020
@@ -2517,7 +2517,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 45]
+Iyengar & Thomson Expires 11 July 2020 [Page 45]
Internet-Draft QUIC Transport Protocol January 2020
@@ -2573,7 +2573,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 46]
+Iyengar & Thomson Expires 11 July 2020 [Page 46]
Internet-Draft QUIC Transport Protocol January 2020
@@ -2629,7 +2629,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 47]
+Iyengar & Thomson Expires 11 July 2020 [Page 47]
Internet-Draft QUIC Transport Protocol January 2020
@@ -2685,7 +2685,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 48]
+Iyengar & Thomson Expires 11 July 2020 [Page 48]
Internet-Draft QUIC Transport Protocol January 2020
@@ -2741,7 +2741,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 49]
+Iyengar & Thomson Expires 11 July 2020 [Page 49]
Internet-Draft QUIC Transport Protocol January 2020
@@ -2797,7 +2797,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 50]
+Iyengar & Thomson Expires 11 July 2020 [Page 50]
Internet-Draft QUIC Transport Protocol January 2020
@@ -2853,7 +2853,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 51]
+Iyengar & Thomson Expires 11 July 2020 [Page 51]
Internet-Draft QUIC Transport Protocol January 2020
@@ -2909,7 +2909,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 52]
+Iyengar & Thomson Expires 11 July 2020 [Page 52]
Internet-Draft QUIC Transport Protocol January 2020
@@ -2965,7 +2965,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 53]
+Iyengar & Thomson Expires 11 July 2020 [Page 53]
Internet-Draft QUIC Transport Protocol January 2020
@@ -3021,7 +3021,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 54]
+Iyengar & Thomson Expires 11 July 2020 [Page 54]
Internet-Draft QUIC Transport Protocol January 2020
@@ -3077,7 +3077,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 55]
+Iyengar & Thomson Expires 11 July 2020 [Page 55]
Internet-Draft QUIC Transport Protocol January 2020
@@ -3133,7 +3133,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 56]
+Iyengar & Thomson Expires 11 July 2020 [Page 56]
Internet-Draft QUIC Transport Protocol January 2020
@@ -3189,7 +3189,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 57]
+Iyengar & Thomson Expires 11 July 2020 [Page 57]
Internet-Draft QUIC Transport Protocol January 2020
@@ -3245,7 +3245,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 58]
+Iyengar & Thomson Expires 11 July 2020 [Page 58]
Internet-Draft QUIC Transport Protocol January 2020
@@ -3301,7 +3301,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 59]
+Iyengar & Thomson Expires 11 July 2020 [Page 59]
Internet-Draft QUIC Transport Protocol January 2020
@@ -3357,7 +3357,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 60]
+Iyengar & Thomson Expires 11 July 2020 [Page 60]
Internet-Draft QUIC Transport Protocol January 2020
@@ -3413,7 +3413,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 61]
+Iyengar & Thomson Expires 11 July 2020 [Page 61]
Internet-Draft QUIC Transport Protocol January 2020
@@ -3469,7 +3469,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 62]
+Iyengar & Thomson Expires 11 July 2020 [Page 62]
Internet-Draft QUIC Transport Protocol January 2020
@@ -3525,7 +3525,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 63]
+Iyengar & Thomson Expires 11 July 2020 [Page 63]
Internet-Draft QUIC Transport Protocol January 2020
@@ -3581,7 +3581,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 64]
+Iyengar & Thomson Expires 11 July 2020 [Page 64]
Internet-Draft QUIC Transport Protocol January 2020
@@ -3637,7 +3637,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 65]
+Iyengar & Thomson Expires 11 July 2020 [Page 65]
Internet-Draft QUIC Transport Protocol January 2020
@@ -3693,7 +3693,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 66]
+Iyengar & Thomson Expires 11 July 2020 [Page 66]
Internet-Draft QUIC Transport Protocol January 2020
@@ -3749,7 +3749,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 67]
+Iyengar & Thomson Expires 11 July 2020 [Page 67]
Internet-Draft QUIC Transport Protocol January 2020
@@ -3805,7 +3805,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 68]
+Iyengar & Thomson Expires 11 July 2020 [Page 68]
Internet-Draft QUIC Transport Protocol January 2020
@@ -3861,7 +3861,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 69]
+Iyengar & Thomson Expires 11 July 2020 [Page 69]
Internet-Draft QUIC Transport Protocol January 2020
@@ -3917,7 +3917,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 70]
+Iyengar & Thomson Expires 11 July 2020 [Page 70]
Internet-Draft QUIC Transport Protocol January 2020
@@ -3973,7 +3973,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 71]
+Iyengar & Thomson Expires 11 July 2020 [Page 71]
Internet-Draft QUIC Transport Protocol January 2020
@@ -4029,7 +4029,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 72]
+Iyengar & Thomson Expires 11 July 2020 [Page 72]
Internet-Draft QUIC Transport Protocol January 2020
@@ -4085,7 +4085,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 73]
+Iyengar & Thomson Expires 11 July 2020 [Page 73]
Internet-Draft QUIC Transport Protocol January 2020
@@ -4141,7 +4141,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 74]
+Iyengar & Thomson Expires 11 July 2020 [Page 74]
Internet-Draft QUIC Transport Protocol January 2020
@@ -4197,7 +4197,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 75]
+Iyengar & Thomson Expires 11 July 2020 [Page 75]
Internet-Draft QUIC Transport Protocol January 2020
@@ -4253,7 +4253,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 76]
+Iyengar & Thomson Expires 11 July 2020 [Page 76]
Internet-Draft QUIC Transport Protocol January 2020
@@ -4309,7 +4309,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 77]
+Iyengar & Thomson Expires 11 July 2020 [Page 77]
Internet-Draft QUIC Transport Protocol January 2020
@@ -4365,7 +4365,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 78]
+Iyengar & Thomson Expires 11 July 2020 [Page 78]
Internet-Draft QUIC Transport Protocol January 2020
@@ -4421,7 +4421,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 79]
+Iyengar & Thomson Expires 11 July 2020 [Page 79]
Internet-Draft QUIC Transport Protocol January 2020
@@ -4477,7 +4477,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 80]
+Iyengar & Thomson Expires 11 July 2020 [Page 80]
Internet-Draft QUIC Transport Protocol January 2020
@@ -4533,7 +4533,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 81]
+Iyengar & Thomson Expires 11 July 2020 [Page 81]
Internet-Draft QUIC Transport Protocol January 2020
@@ -4589,13 +4589,14 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 82]
+Iyengar & Thomson Expires 11 July 2020 [Page 82]
Internet-Draft QUIC Transport Protocol January 2020
establishment, when switching to a new server preferred address, and
- on active connection migration to a new path.
+ on active connection migration to a new path. Appendix B describes
+ one possible algorithm for testing paths for ECN support.
Even if an endpoint does not use ECN markings on packets it
transmits, the endpoint MUST provide feedback about ECN markings
@@ -4640,16 +4641,18 @@ Internet-Draft QUIC Transport Protocol January 2020
* For validation to succeed, the total increase in ECT(0), ECT(1),
and CE counts MUST be no smaller than the total number of QUIC
packets sent with an ECT codepoint that are newly acknowledged in
- this ACK frame. This step detects any network remarking from
- ECT(0), ECT(1), or CE codepoints to Not-ECT.
-Iyengar & Thomson Expires 10 July 2020 [Page 83]
+
+Iyengar & Thomson Expires 11 July 2020 [Page 83]
Internet-Draft QUIC Transport Protocol January 2020
+ this ACK frame. This step detects any network remarking from
+ ECT(0), ECT(1), or CE codepoints to Not-ECT.
+
* Any increase in either ECT(0) or ECT(1) counts, plus any increase
in the CE count, MUST be no smaller than the number of packets
sent with the corresponding ECT codepoint that are newly
@@ -4683,59 +4686,6 @@ Internet-Draft QUIC Transport Protocol January 2020
Even if validation fails, an endpoint MAY revalidate ECN on the same
path at any later time in the connection.
-13.4.2.4. Exemplary ECN Validation Algorithm
-
- Each time that an endpoint commences sending on a new network path,
- it determines whether the path supports ECN. If the path supports
- ECN, the goal is to use ECN. Endpoints might also periodically
- reassess a path that was determined not support ECN.
-
- This section describes one method for testing new paths. This
- algorithm is intended to show how a path might be tested for ECN
- support. Endpoints can implement different methods.
-
- The path has an ECN state that is one of "testing", "unknown",
- "failed", or "capable". In the "testing" and "capable" states the
- endpoint sends packets with an ECT(0) marking; otherwise, the
- endpoint sends unmarked packets.
-
-
-
-Iyengar & Thomson Expires 10 July 2020 [Page 84]
-
-Internet-Draft QUIC Transport Protocol January 2020
-
-
- To start testing a path, the ECN state is set to "testing" and
- existing ECN counts are remembered as a baseline. It should not be
- necessary to disregard the effect of packets sent prior to starting
- testing, though it is necessary for a sender to remember what
- markings were used for every packet that is acknowledged; see
- Section 13.4.2.2.
-
- The testing period runs for a number of packets or round trip times
- as determined by the endpoint. During this time, packets sent are
- marked with ECT(0). The goal is to limit the duration of the testing
- period, but to ensure that enough marked packets are sent that it is
- likely that ECN counts will provide a clear indication of how the
- path treats marked packets.
-
- After the testing period ends, the ECN state for the path becomes
- "unknown". From the "unknown" state, successful validation of the
- ECN counts an ACK frame (see Section 13.4.2.2) causes the ECN state
- for the path to become "capable", unless no marked packet has been
- acknowledged.
-
- At any point, if validation of ECN counts fails, the ECN state
- becomes "failed". An endpoint can also mark the ECN state for a path
- as "failed" if all marked packets are declared lost.
-
- Following this algorithm ensures that ECN is rarely disabled for
- paths that properly support ECN. Any path that incorrectly modifies
- markings will cause ECN to be disabled. For those rare cases where
- marked packets are discarded by the path, the short duration of the
- testing period limits the number of losses incurred.
-
14. Packet Size
The QUIC packet size includes the QUIC header and protected payload,
@@ -4747,21 +4697,22 @@ Internet-Draft QUIC Transport Protocol January 2020
Section 12.2). Sending a UDP datagram of this size ensures that the
network path from the client to the server supports a reasonable
Maximum Transmission Unit (MTU). Padding datagrams also helps reduce
- the amplitude of amplification attacks caused by server responses
- toward an unverified client address; see Section 8.
-
- Datagrams containing Initial packets MAY exceed 1200 bytes if the
- client believes that the Path Maximum Transmission Unit (PMTU)
- supports the size that it chooses.
-Iyengar & Thomson Expires 10 July 2020 [Page 85]
+Iyengar & Thomson Expires 11 July 2020 [Page 84]
Internet-Draft QUIC Transport Protocol January 2020
+ the amplitude of amplification attacks caused by server responses
+ toward an unverified client address; see Section 8.
+
+ Datagrams containing Initial packets MAY exceed 1200 bytes if the
+ client believes that the Path Maximum Transmission Unit (PMTU)
+ supports the size that it chooses.
+
A server MAY send a CONNECTION_CLOSE frame with error code
PROTOCOL_VIOLATION in response to an Initial packet it receives from
a client if the UDP datagram is smaller than 1200 bytes. It MUST NOT
@@ -4803,21 +4754,21 @@ Internet-Draft QUIC Transport Protocol January 2020
therefore SHOULD maintain a maximum packet size for each combination
of local and remote IP addresses.
- If a QUIC endpoint determines that the PMTU between any pair of local
- and remote IP addresses has fallen below the size needed to support
- the smallest allowed maximum packet size, it MUST immediately cease
- sending QUIC packets, except for PMTU probe packets, on the affected
- path. An endpoint MAY terminate the connection if an alternative
- path cannot be found.
-
-Iyengar & Thomson Expires 10 July 2020 [Page 86]
+Iyengar & Thomson Expires 11 July 2020 [Page 85]
Internet-Draft QUIC Transport Protocol January 2020
+ If a QUIC endpoint determines that the PMTU between any pair of local
+ and remote IP addresses has fallen below the size needed to support
+ the smallest allowed maximum packet size, it MUST immediately cease
+ sending QUIC packets, except for PMTU probe packets, on the affected
+ path. An endpoint MAY terminate the connection if an alternative
+ path cannot be found.
+
14.2. ICMP Packet Too Big Messages
PMTU discovery [RFC1191] [RFC8201] relies on reception of ICMP
@@ -4859,21 +4810,21 @@ Internet-Draft QUIC Transport Protocol January 2020
headers to use for validation (for example, the IP ID or UDP
checksum).
- The endpoint SHOULD ignore all ICMP messages that fail validation.
-
- An endpoint MUST NOT increase PMTU based on ICMP messages. Any
- reduction in the QUIC maximum packet size MAY be provisional until
- QUIC's loss detection algorithm determines that the quoted packet has
- actually been lost.
-
-Iyengar & Thomson Expires 10 July 2020 [Page 87]
+Iyengar & Thomson Expires 11 July 2020 [Page 86]
Internet-Draft QUIC Transport Protocol January 2020
+ The endpoint SHOULD ignore all ICMP messages that fail validation.
+
+ An endpoint MUST NOT increase PMTU based on ICMP messages. Any
+ reduction in the QUIC maximum packet size MAY be provisional until
+ QUIC's loss detection algorithm determines that the quoted packet has
+ actually been lost.
+
14.3. Datagram Packetization Layer PMTU Discovery
Section 6.4 of [DPLPMTUD] provides considerations for implementing
@@ -4914,6 +4865,15 @@ Internet-Draft QUIC Transport Protocol January 2020
QUIC versions are identified using a 32-bit unsigned number.
+
+
+
+
+Iyengar & Thomson Expires 11 July 2020 [Page 87]
+
+Internet-Draft QUIC Transport Protocol January 2020
+
+
The version 0x00000000 is reserved to represent version negotiation.
This version of the specification is identified by the number
0x00000001.
@@ -4923,13 +4883,6 @@ Internet-Draft QUIC Transport Protocol January 2020
across all versions of the protocol are described in
[QUIC-INVARIANTS].
-
-
-Iyengar & Thomson Expires 10 July 2020 [Page 88]
-
-Internet-Draft QUIC Transport Protocol January 2020
-
-
Version 0x00000001 of QUIC uses TLS as a cryptographic handshake
protocol, as described in [QUIC-TLS].
@@ -4969,6 +4922,14 @@ Internet-Draft QUIC Transport Protocol January 2020
non-negative integer values. This encoding ensures that smaller
integer values need fewer bytes to encode.
+
+
+
+Iyengar & Thomson Expires 11 July 2020 [Page 88]
+
+Internet-Draft QUIC Transport Protocol January 2020
+
+
The QUIC variable-length integer encoding reserves the two most
significant bits of the first byte to encode the base 2 logarithm of
the integer encoding length in bytes. The integer value is encoded
@@ -4978,14 +4939,6 @@ Internet-Draft QUIC Transport Protocol January 2020
encode 6, 14, 30, or 62 bit values respectively. Table 4 summarizes
the encoding properties.
-
-
-
-Iyengar & Thomson Expires 10 July 2020 [Page 89]
-
-Internet-Draft QUIC Transport Protocol January 2020
-
-
+------+--------+-------------+-----------------------+
| 2Bit | Length | Usable Bits | Range |
+======+========+=============+=======================+
@@ -5026,6 +4979,13 @@ Internet-Draft QUIC Transport Protocol January 2020
The encoded packet number is protected as described in Section 5.4 of
[QUIC-TLS].
+
+
+Iyengar & Thomson Expires 11 July 2020 [Page 89]
+
+Internet-Draft QUIC Transport Protocol January 2020
+
+
The sender MUST use a packet number size able to represent more than
twice as large a range than the difference between the largest
acknowledged packet and packet number being sent. A peer receiving
@@ -5033,15 +4993,6 @@ Internet-Draft QUIC Transport Protocol January 2020
packet is delayed in transit such that it arrives after many higher-
numbered packets have been received. An endpoint SHOULD use a large
enough packet number encoding to allow the packet number to be
-
-
-
-
-Iyengar & Thomson Expires 10 July 2020 [Page 90]
-
-Internet-Draft QUIC Transport Protocol January 2020
-
-
recovered even if the packet arrives after packets that are sent
afterwards.
@@ -5073,6 +5024,24 @@ Internet-Draft QUIC Transport Protocol January 2020
17.2. Long Header Packets
+
+
+
+
+
+
+
+
+
+
+
+
+
+Iyengar & Thomson Expires 11 July 2020 [Page 90]
+
+Internet-Draft QUIC Transport Protocol January 2020
+
+
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+
@@ -5091,13 +5060,6 @@ Internet-Draft QUIC Transport Protocol January 2020
Figure 9: Long Header Packet Format
-
-
-Iyengar & Thomson Expires 10 July 2020 [Page 91]
-
-Internet-Draft QUIC Transport Protocol January 2020
-
-
Long headers are used for packets that are sent prior to the
establishment of 1-RTT keys. Once both conditions are met, a sender
switches to sending packets using the short header (Section 17.3).
@@ -5128,6 +5090,14 @@ Internet-Draft QUIC Transport Protocol January 2020
bytes of the Destination Connection ID field that follows it.
This length is encoded as an 8-bit unsigned integer. In QUIC
version 1, this value MUST NOT exceed 20. Endpoints that receive
+
+
+
+Iyengar & Thomson Expires 11 July 2020 [Page 91]
+
+Internet-Draft QUIC Transport Protocol January 2020
+
+
a version 1 long header with a value larger than 20 MUST drop the
packet. Servers SHOULD be able to read longer connection IDs from
other QUIC versions in order to properly form a version
@@ -5146,14 +5116,6 @@ Internet-Draft QUIC Transport Protocol January 2020
IDs from other QUIC versions in order to properly form a version
negotiation packet.
-
-
-
-Iyengar & Thomson Expires 10 July 2020 [Page 92]
-
-Internet-Draft QUIC Transport Protocol January 2020
-
-
Source Connection ID: The Source Connection ID field follows the
SCID Len and is between 0 and 20 bytes in length. Section 7.2
describes the use of this field in more detail.
@@ -5183,6 +5145,15 @@ Internet-Draft QUIC Transport Protocol January 2020
The interpretation of the fields and the payload are specific to a
version and packet type. While type-specific semantics for this
+
+
+
+
+Iyengar & Thomson Expires 11 July 2020 [Page 92]
+
+Internet-Draft QUIC Transport Protocol January 2020
+
+
version are described in the following sections, several long-header
packets in this version of QUIC contain these additional fields:
@@ -5202,14 +5173,6 @@ Internet-Draft QUIC Transport Protocol January 2020
as an unsigned, two-bit integer that is one less than the length
of the packet number field in bytes. That is, the length of the
packet number field is the value of this field, plus one. These
-
-
-
-Iyengar & Thomson Expires 10 July 2020 [Page 93]
-
-Internet-Draft QUIC Transport Protocol January 2020
-
-
bits are protected using header protection (see Section 5.4 of
[QUIC-TLS]).
@@ -5235,6 +5198,18 @@ Internet-Draft QUIC Transport Protocol January 2020
The layout of a Version Negotiation packet is:
+
+
+
+
+
+
+
+Iyengar & Thomson Expires 11 July 2020 [Page 93]
+
+Internet-Draft QUIC Transport Protocol January 2020
+
+
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+
@@ -5259,13 +5234,6 @@ Internet-Draft QUIC Transport Protocol January 2020
| [Supported Version N (32)] ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
-
-Iyengar & Thomson Expires 10 July 2020 [Page 94]
-
-Internet-Draft QUIC Transport Protocol January 2020
-
-
Figure 10: Version Negotiation Packet
The value in the Unused field is selected randomly by the server.
@@ -5289,6 +5257,15 @@ Internet-Draft QUIC Transport Protocol January 2020
version 1 limit, Version Negotiation packets could carry Connection
IDs that are longer than 20 bytes.
+
+
+
+
+Iyengar & Thomson Expires 11 July 2020 [Page 94]
+
+Internet-Draft QUIC Transport Protocol January 2020
+
+
The remainder of the Version Negotiation packet is a list of 32-bit
versions which the server supports.
@@ -5312,16 +5289,6 @@ Internet-Draft QUIC Transport Protocol January 2020
carries the first CRYPTO frames sent by the client and server to
perform key exchange, and carries ACKs in either direction.
-
-
-
-
-
-Iyengar & Thomson Expires 10 July 2020 [Page 95]
-
-Internet-Draft QUIC Transport Protocol January 2020
-
-
+-+-+-+-+-+-+-+-+
|1|1| 0 |R R|P P|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
@@ -5348,6 +5315,13 @@ Internet-Draft QUIC Transport Protocol January 2020
Figure 11: Initial Packet
+
+
+Iyengar & Thomson Expires 11 July 2020 [Page 95]
+
+Internet-Draft QUIC Transport Protocol January 2020
+
+
The Initial packet contains a long header as well as the Length and
Packet Number fields. The first byte contains the Reserved and
Packet Number Length bits. Between the SCID and Length fields, there
@@ -5371,13 +5345,6 @@ Internet-Draft QUIC Transport Protocol January 2020
provide confidentiality or integrity against on-path attackers, but
provides some level of protection against off-path attackers.
-
-
-Iyengar & Thomson Expires 10 July 2020 [Page 96]
-
-Internet-Draft QUIC Transport Protocol January 2020
-
-
The client and server use the Initial packet type for any packet that
contains an initial cryptographic handshake message. This includes
all cases where a new packet containing the initial cryptographic
@@ -5403,6 +5370,14 @@ Internet-Draft QUIC Transport Protocol January 2020
Note that if the server sends a HelloRetryRequest, the client will
send another series of Initial packets. These Initial packets will
+
+
+
+Iyengar & Thomson Expires 11 July 2020 [Page 96]
+
+Internet-Draft QUIC Transport Protocol January 2020
+
+
continue the cryptographic handshake and will contain CRYPTO frames
starting at an offset matching the size of the CRYPTO frames sent in
the first flight of Initial packets.
@@ -5421,40 +5396,53 @@ Internet-Draft QUIC Transport Protocol January 2020
Any data in CRYPTO frames is discarded - and no longer retransmitted
- when Initial keys are discarded.
+17.2.3. 0-RTT
+ A 0-RTT packet uses long headers with a type value of 0x1, followed
+ by the Length and Packet Number fields. The first byte contains the
+ Reserved and Packet Number Length bits. It is used to carry "early"
+ data from the client to the server as part of the first flight, prior
+ to handshake completion. As part of the TLS handshake, the server
+ can accept or reject this early data.
+ See Section 2.3 of [TLS13] for a discussion of 0-RTT data and its
+ limitations.
-Iyengar & Thomson Expires 10 July 2020 [Page 97]
-
-Internet-Draft QUIC Transport Protocol January 2020
-17.2.3. 0-RTT
- A 0-RTT packet uses long headers with a type value of 0x1, followed
- by the Length and Packet Number fields. The first byte contains the
- Reserved and Packet Number Length bits. It is used to carry "early"
- data from the client to the server as part of the first flight, prior
- to handshake completion. As part of the TLS handshake, the server
- can accept or reject this early data.
- See Section 2.3 of [TLS13] for a discussion of 0-RTT data and its
- limitations.
- +-+-+-+-+-+-+-+-+
- |1|1| 1 |R R|P P|
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Version (32) |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | DCID Len (8) |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | Destination Connection ID (0..160) ...
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+
+
+
+
+
+
+
+
+
+
+Iyengar & Thomson Expires 11 July 2020 [Page 97]
+
+Internet-Draft QUIC Transport Protocol January 2020
+
+
+ +-+-+-+-+-+-+-+-+
+ |1|1| 1 |R R|P P|
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Version (32) |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | DCID Len (8) |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Destination Connection ID (0..160) ...
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SCID Len (8) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source Connection ID (0..160) ...
@@ -5482,14 +5470,6 @@ Internet-Draft QUIC Transport Protocol January 2020
protection for all 0-RTT packets because the same key and nonce could
be used to protect different content.
-
-
-
-Iyengar & Thomson Expires 10 July 2020 [Page 98]
-
-Internet-Draft QUIC Transport Protocol January 2020
-
-
A client only receives acknowledgments for its 0-RTT packets once the
handshake is complete. Consequently, a server might expect 0-RTT
packets to start with a packet number of 0. Therefore, in
@@ -5502,6 +5482,14 @@ Internet-Draft QUIC Transport Protocol January 2020
A client MUST NOT send 0-RTT packets once it starts processing 1-RTT
packets from the server. This means that 0-RTT packets cannot
contain any response to frames from 1-RTT packets. For instance, a
+
+
+
+Iyengar & Thomson Expires 11 July 2020 [Page 98]
+
+Internet-Draft QUIC Transport Protocol January 2020
+
+
client cannot send an ACK frame in a 0-RTT packet, because that can
only acknowledge a 1-RTT packet. An acknowledgment for a 1-RTT
packet MUST be carried in a 1-RTT packet.
@@ -5538,14 +5526,6 @@ Internet-Draft QUIC Transport Protocol January 2020
| Payload (*) ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
-
-
-Iyengar & Thomson Expires 10 July 2020 [Page 99]
-
-Internet-Draft QUIC Transport Protocol January 2020
-
-
Figure 13: Handshake Protected Packet
Once a client has received a Handshake packet from a server, it uses
@@ -5557,6 +5537,15 @@ Internet-Draft QUIC Transport Protocol January 2020
Source Connection ID includes the connection ID that the sender of
the packet wishes to use (see Section 7.2).
+
+
+
+
+Iyengar & Thomson Expires 11 July 2020 [Page 99]
+
+Internet-Draft QUIC Transport Protocol January 2020
+
+
Handshake packets are their own packet number space, and thus the
first Handshake packet sent by a server contains a packet number of
0.
@@ -5576,32 +5565,6 @@ Internet-Draft QUIC Transport Protocol January 2020
It carries an address validation token created by the server. It is
used by a server that wishes to perform a retry (see Section 8.1).
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Iyengar & Thomson Expires 10 July 2020 [Page 100]
-
-Internet-Draft QUIC Transport Protocol January 2020
-
-
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+
@@ -5631,6 +5594,14 @@ Internet-Draft QUIC Transport Protocol January 2020
server. In addition to the long header, it contains these additional
fields:
+
+
+
+Iyengar & Thomson Expires 11 July 2020 [Page 100]
+
+Internet-Draft QUIC Transport Protocol January 2020
+
+
ODCID Len: The ODCID Len contains the length in bytes of the
Original Destination Connection ID field that follows it. This
length is encoded as a 8-bit unsigned integer. In QUIC version 1,
@@ -5650,14 +5621,6 @@ Internet-Draft QUIC Transport Protocol January 2020
connection ID that the client included in the Source Connection ID of
the Initial packet.
-
-
-
-Iyengar & Thomson Expires 10 July 2020 [Page 101]
-
-Internet-Draft QUIC Transport Protocol January 2020
-
-
The server includes a connection ID of its choice in the Source
Connection ID field. This value MUST not be equal to the Destination
Connection ID field of the packet sent by the client. A client MUST
@@ -5688,6 +5651,13 @@ Internet-Draft QUIC Transport Protocol January 2020
includes the provided Retry Token to continue connection
establishment.
+
+
+Iyengar & Thomson Expires 11 July 2020 [Page 101]
+
+Internet-Draft QUIC Transport Protocol January 2020
+
+
A client sets the Destination Connection ID field of this Initial
packet to the value from the Source Connection ID in the Retry
packet. Changing Destination Connection ID also results in a change
@@ -5705,15 +5675,6 @@ Internet-Draft QUIC Transport Protocol January 2020
MAY treat a packet that contains a different cryptographic handshake
message as a connection error or discard it.
-
-
-
-
-Iyengar & Thomson Expires 10 July 2020 [Page 102]
-
-Internet-Draft QUIC Transport Protocol January 2020
-
-
A client MAY attempt 0-RTT after receiving a Retry packet by sending
0-RTT packets to the connection ID provided by the server. A client
MUST NOT change the cryptographic handshake message it sends in
@@ -5744,6 +5705,15 @@ Internet-Draft QUIC Transport Protocol January 2020
This version of QUIC defines a single packet type which uses the
short packet header.
+
+
+
+
+Iyengar & Thomson Expires 11 July 2020 [Page 102]
+
+Internet-Draft QUIC Transport Protocol January 2020
+
+
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+
@@ -5762,14 +5732,6 @@ Internet-Draft QUIC Transport Protocol January 2020
negotiated. Packets that use the short header contain the following
fields:
-
-
-
-Iyengar & Thomson Expires 10 July 2020 [Page 103]
-
-Internet-Draft QUIC Transport Protocol January 2020
-
-
Header Form: The most significant bit (0x80) of byte 0 is set to 0
for the short header.
@@ -5800,6 +5762,14 @@ Internet-Draft QUIC Transport Protocol January 2020
a mask of 0x03) of byte 0 contain the length of the packet number,
encoded as an unsigned, two-bit integer that is one less than the
length of the packet number field in bytes. That is, the length
+
+
+
+Iyengar & Thomson Expires 11 July 2020 [Page 103]
+
+Internet-Draft QUIC Transport Protocol January 2020
+
+
of the packet number field is the value of this field, plus one.
These bits are protected using header protection (see Section 5.4
of [QUIC-TLS]).
@@ -5817,15 +5787,6 @@ Internet-Draft QUIC Transport Protocol January 2020
Protected Payload: Packets with a short header always include a
1-RTT protected payload.
-
-
-
-
-Iyengar & Thomson Expires 10 July 2020 [Page 104]
-
-Internet-Draft QUIC Transport Protocol January 2020
-
-
The header form bit and the connection ID field of a short header
packet are version-independent. The remaining fields are specific to
the selected QUIC version. See [QUIC-INVARIANTS] for details on how
@@ -5857,6 +5818,14 @@ Internet-Draft QUIC Transport Protocol January 2020
process performed at the beginning of the connection SHOULD be
applied for all paths used by the connection.
+
+
+
+Iyengar & Thomson Expires 11 July 2020 [Page 104]
+
+Internet-Draft QUIC Transport Protocol January 2020
+
+
When the spin bit is disabled, endpoints MAY set the spin bit to any
value, and MUST ignore any incoming value. It is RECOMMENDED that
endpoints set the spin bit to a random value either chosen
@@ -5874,14 +5843,6 @@ Internet-Draft QUIC Transport Protocol January 2020
highest packet number seen by the server from the client, it sets the
spin value to be equal to the spin bit in the received packet.
-
-
-
-Iyengar & Thomson Expires 10 July 2020 [Page 105]
-
-Internet-Draft QUIC Transport Protocol January 2020
-
-
When a client receives a short header packet that increments the
highest packet number seen by the client from the server, it sets the
spin value to the inverse of the spin bit in the received packet.
@@ -5903,6 +5864,24 @@ Internet-Draft QUIC Transport Protocol January 2020
are encoded as a length-prefixed sequence of transport parameters, as
shown in Figure 16:
+
+
+
+
+
+
+
+
+
+
+
+
+
+Iyengar & Thomson Expires 11 July 2020 [Page 105]
+
+Internet-Draft QUIC Transport Protocol January 2020
+
+
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
@@ -5931,13 +5910,6 @@ Internet-Draft QUIC Transport Protocol January 2020
| Transport Parameter Value (*) ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
-
-Iyengar & Thomson Expires 10 July 2020 [Page 106]
-
-Internet-Draft QUIC Transport Protocol January 2020
-
-
Figure 17: Transport Parameter Encoding
The Transport Param Length field contains the length of the Transport
@@ -5958,6 +5930,14 @@ Internet-Draft QUIC Transport Protocol January 2020
This section details the transport parameters defined in this
document.
+
+
+
+Iyengar & Thomson Expires 11 July 2020 [Page 106]
+
+Internet-Draft QUIC Transport Protocol January 2020
+
+
Many transport parameters listed here have integer values. Those
transport parameters that are identified as integers use a variable-
length integer encoding (see Section 16) and have a default value of
@@ -5985,15 +5965,6 @@ Internet-Draft QUIC Transport Protocol January 2020
(Section 10.4) for the connection ID negotiated during the
handshake.
-
-
-
-
-Iyengar & Thomson Expires 10 July 2020 [Page 107]
-
-Internet-Draft QUIC Transport Protocol January 2020
-
-
max_packet_size (0x0003): The maximum packet size parameter is an
integer value that limits the size of packets that the endpoint is
willing to receive. This indicates that packets larger than this
@@ -6015,6 +5986,14 @@ Internet-Draft QUIC Transport Protocol January 2020
sends the transport parameter. In client transport parameters,
this applies to streams with an identifier with the least
significant two bits set to 0x0; in server transport parameters,
+
+
+
+Iyengar & Thomson Expires 11 July 2020 [Page 107]
+
+Internet-Draft QUIC Transport Protocol January 2020
+
+
this applies to streams with the least significant two bits set to
0x1.
@@ -6041,15 +6020,6 @@ Internet-Draft QUIC Transport Protocol January 2020
maximum number of bidirectional streams the peer may initiate. If
this parameter is absent or zero, the peer cannot open
bidirectional streams until a MAX_STREAMS frame is sent. Setting
-
-
-
-
-Iyengar & Thomson Expires 10 July 2020 [Page 108]
-
-Internet-Draft QUIC Transport Protocol January 2020
-
-
this parameter is equivalent to sending a MAX_STREAMS
(Section 19.11) of the corresponding type with the same value.
@@ -6072,6 +6042,14 @@ Internet-Draft QUIC Transport Protocol January 2020
endpoint will delay sending acknowledgments. This value SHOULD
include the receiver's expected delays in alarms firing. For
example, if a receiver sets a timer for 5ms and alarms commonly
+
+
+
+Iyengar & Thomson Expires 11 July 2020 [Page 108]
+
+Internet-Draft QUIC Transport Protocol January 2020
+
+
fire up to 1ms late, then it should send a max_ack_delay of 6ms.
If this value is absent, a default of 25 milliseconds is assumed.
Values of 2^14 or greater are invalid.
@@ -6101,7 +6079,29 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 109]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Iyengar & Thomson Expires 11 July 2020 [Page 109]
Internet-Draft QUIC Transport Protocol January 2020
@@ -6157,7 +6157,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 110]
+Iyengar & Thomson Expires 11 July 2020 [Page 110]
Internet-Draft QUIC Transport Protocol January 2020
@@ -6213,7 +6213,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 111]
+Iyengar & Thomson Expires 11 July 2020 [Page 111]
Internet-Draft QUIC Transport Protocol January 2020
@@ -6269,7 +6269,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 112]
+Iyengar & Thomson Expires 11 July 2020 [Page 112]
Internet-Draft QUIC Transport Protocol January 2020
@@ -6325,7 +6325,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 113]
+Iyengar & Thomson Expires 11 July 2020 [Page 113]
Internet-Draft QUIC Transport Protocol January 2020
@@ -6381,7 +6381,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 114]
+Iyengar & Thomson Expires 11 July 2020 [Page 114]
Internet-Draft QUIC Transport Protocol January 2020
@@ -6437,7 +6437,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 115]
+Iyengar & Thomson Expires 11 July 2020 [Page 115]
Internet-Draft QUIC Transport Protocol January 2020
@@ -6493,7 +6493,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 116]
+Iyengar & Thomson Expires 11 July 2020 [Page 116]
Internet-Draft QUIC Transport Protocol January 2020
@@ -6549,7 +6549,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 117]
+Iyengar & Thomson Expires 11 July 2020 [Page 117]
Internet-Draft QUIC Transport Protocol January 2020
@@ -6605,7 +6605,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 118]
+Iyengar & Thomson Expires 11 July 2020 [Page 118]
Internet-Draft QUIC Transport Protocol January 2020
@@ -6661,7 +6661,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 119]
+Iyengar & Thomson Expires 11 July 2020 [Page 119]
Internet-Draft QUIC Transport Protocol January 2020
@@ -6717,7 +6717,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 120]
+Iyengar & Thomson Expires 11 July 2020 [Page 120]
Internet-Draft QUIC Transport Protocol January 2020
@@ -6773,7 +6773,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 121]
+Iyengar & Thomson Expires 11 July 2020 [Page 121]
Internet-Draft QUIC Transport Protocol January 2020
@@ -6829,7 +6829,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 122]
+Iyengar & Thomson Expires 11 July 2020 [Page 122]
Internet-Draft QUIC Transport Protocol January 2020
@@ -6885,7 +6885,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 123]
+Iyengar & Thomson Expires 11 July 2020 [Page 123]
Internet-Draft QUIC Transport Protocol January 2020
@@ -6941,7 +6941,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 124]
+Iyengar & Thomson Expires 11 July 2020 [Page 124]
Internet-Draft QUIC Transport Protocol January 2020
@@ -6997,7 +6997,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 125]
+Iyengar & Thomson Expires 11 July 2020 [Page 125]
Internet-Draft QUIC Transport Protocol January 2020
@@ -7053,7 +7053,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 126]
+Iyengar & Thomson Expires 11 July 2020 [Page 126]
Internet-Draft QUIC Transport Protocol January 2020
@@ -7109,7 +7109,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 127]
+Iyengar & Thomson Expires 11 July 2020 [Page 127]
Internet-Draft QUIC Transport Protocol January 2020
@@ -7165,7 +7165,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 128]
+Iyengar & Thomson Expires 11 July 2020 [Page 128]
Internet-Draft QUIC Transport Protocol January 2020
@@ -7221,7 +7221,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 129]
+Iyengar & Thomson Expires 11 July 2020 [Page 129]
Internet-Draft QUIC Transport Protocol January 2020
@@ -7277,7 +7277,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 130]
+Iyengar & Thomson Expires 11 July 2020 [Page 130]
Internet-Draft QUIC Transport Protocol January 2020
@@ -7333,7 +7333,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 131]
+Iyengar & Thomson Expires 11 July 2020 [Page 131]
Internet-Draft QUIC Transport Protocol January 2020
@@ -7389,7 +7389,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 132]
+Iyengar & Thomson Expires 11 July 2020 [Page 132]
Internet-Draft QUIC Transport Protocol January 2020
@@ -7445,7 +7445,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 133]
+Iyengar & Thomson Expires 11 July 2020 [Page 133]
Internet-Draft QUIC Transport Protocol January 2020
@@ -7501,7 +7501,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 134]
+Iyengar & Thomson Expires 11 July 2020 [Page 134]
Internet-Draft QUIC Transport Protocol January 2020
@@ -7557,7 +7557,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 135]
+Iyengar & Thomson Expires 11 July 2020 [Page 135]
Internet-Draft QUIC Transport Protocol January 2020
@@ -7613,7 +7613,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 136]
+Iyengar & Thomson Expires 11 July 2020 [Page 136]
Internet-Draft QUIC Transport Protocol January 2020
@@ -7669,7 +7669,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 137]
+Iyengar & Thomson Expires 11 July 2020 [Page 137]
Internet-Draft QUIC Transport Protocol January 2020
@@ -7725,7 +7725,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 138]
+Iyengar & Thomson Expires 11 July 2020 [Page 138]
Internet-Draft QUIC Transport Protocol January 2020
@@ -7781,7 +7781,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 139]
+Iyengar & Thomson Expires 11 July 2020 [Page 139]
Internet-Draft QUIC Transport Protocol January 2020
@@ -7837,7 +7837,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 140]
+Iyengar & Thomson Expires 11 July 2020 [Page 140]
Internet-Draft QUIC Transport Protocol January 2020
@@ -7893,7 +7893,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 141]
+Iyengar & Thomson Expires 11 July 2020 [Page 141]
Internet-Draft QUIC Transport Protocol January 2020
@@ -7949,7 +7949,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 142]
+Iyengar & Thomson Expires 11 July 2020 [Page 142]
Internet-Draft QUIC Transport Protocol January 2020
@@ -7968,13 +7968,13 @@ Internet-Draft QUIC Transport Protocol January 2020
[QUIC-RECOVERY]
Iyengar, J., Ed. and I. Swett, Ed., "QUIC Loss Detection
and Congestion Control", Work in Progress, Internet-Draft,
- draft-ietf-quic-recovery-latest, 7 January 2020,
+ draft-ietf-quic-recovery-latest, 8 January 2020,
.
[QUIC-TLS] Thomson, M., Ed. and S. Turner, Ed., "Using Transport
Layer Security (TLS) to Secure QUIC", Work in Progress,
- Internet-Draft, draft-ietf-quic-tls-latest, 7 January
+ Internet-Draft, draft-ietf-quic-tls-latest, 8 January
2020,
.
@@ -8005,7 +8005,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 143]
+Iyengar & Thomson Expires 11 July 2020 [Page 143]
Internet-Draft QUIC Transport Protocol January 2020
@@ -8061,7 +8061,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 144]
+Iyengar & Thomson Expires 11 July 2020 [Page 144]
Internet-Draft QUIC Transport Protocol January 2020
@@ -8069,7 +8069,7 @@ Internet-Draft QUIC Transport Protocol January 2020
[QUIC-INVARIANTS]
Thomson, M., "Version-Independent Properties of QUIC",
Work in Progress, Internet-Draft, draft-ietf-quic-
- invariants-latest, 7 January 2020,
+ invariants-latest, 8 January 2020,
.
@@ -8117,7 +8117,7 @@ Internet-Draft QUIC Transport Protocol January 2020
-Iyengar & Thomson Expires 10 July 2020 [Page 145]
+Iyengar & Thomson Expires 11 July 2020 [Page 145]
Internet-Draft QUIC Transport Protocol January 2020
@@ -8173,7 +8173,7 @@ Appendix A. Sample Packet Number Decoding Algorithm
-Iyengar & Thomson Expires 10 July 2020 [Page 146]
+Iyengar & Thomson Expires 11 July 2020 [Page 146]
Internet-Draft QUIC Transport Protocol January 2020
@@ -8203,14 +8203,65 @@ Internet-Draft QUIC Transport Protocol January 2020
return candidate_pn - pn_win
return candidate_pn
-Appendix B. Change Log
+Appendix B. Sample ECN Validation Algorithm
+
+ Each time an endpoint commences sending on a new network path, it
+ determines whether the path supports ECN; see Section 13.4. If the
+ path supports ECN, the goal is to use ECN. Endpoints might also
+ periodically reassess a path that was determined not support ECN.
+
+ This section describes one method for testing new paths. This
+ algorithm is intended to show how a path might be tested for ECN
+ support. Endpoints can implement different methods.
+
+ The path is assigned an ECN state that is one of "testing",
+ "unknown", "failed", or "capable". On paths with a "testing" or
+ "capable" state the endpoint sends packets with an ECT marking, by
+ default ECT(0); otherwise, the endpoint sends unmarked packets.
+
+ To start testing a path, the ECN state is set to "testing" and
+ existing ECN counts are remembered as a baseline.
+
+ The testing period runs for a number of packets or round-trip times,
+ as determined by the endpoint. The goal is not to limit the duration
+ of the testing period, but to ensure that enough marked packets are
+ sent for received ECN counts to provide a clear indication of how the
+
+
+
+Iyengar & Thomson Expires 11 July 2020 [Page 147]
+
+Internet-Draft QUIC Transport Protocol January 2020
+
+
+ path treats marked packets. Section 13.4.2.2 suggests limiting this
+ to 10 packets or 3 round-trip times.
+
+ After the testing period ends, the ECN state for the path becomes
+ "unknown". From the "unknown" state, successful validation of the
+ ECN counts an ACK frame (see Section 13.4.2.2) causes the ECN state
+ for the path to become "capable", unless no marked packet has been
+ acknowledged.
+
+ If validation of ECN counts fails at any time, the ECN state for the
+ affected path becomes "failed". An endpoint can also mark the ECN
+ state for a path as "failed" if marked packets are all declared lost
+ or if they are all CE marked.
+
+ Following this algorithm ensures that ECN is rarely disabled for
+ paths that properly support ECN. Any path that incorrectly modifies
+ markings will cause ECN to be disabled. For those rare cases where
+ marked packets are discarded by the path, the short duration of the
+ testing period limits the number of losses incurred.
+
+Appendix C. Change Log
*RFC Editor's Note:* Please remove this section prior to
publication of a final version of this document.
Issue and pull request numbers are listed with a leading octothorp.
-B.1. Since draft-ietf-quic-transport-23
+C.1. Since draft-ietf-quic-transport-23
* Allow ClientHello to span multiple packets (#2928, #3045)
@@ -8225,21 +8276,20 @@ B.1. Since draft-ietf-quic-transport-23
- tokens cannot be reused (#2785, #2968)
+ * Clearer rules for sharing of UDP ports and use of connection IDs
+ when doing so (#2844, #2851)
+ * A new connection ID is necessary when responding to migration
+ (#2778, #2969)
-Iyengar & Thomson Expires 10 July 2020 [Page 147]
+
+Iyengar & Thomson Expires 11 July 2020 [Page 148]
Internet-Draft QUIC Transport Protocol January 2020
- * Clearer rules for sharing of UDP ports and use of connection IDs
- when doing so (#2844, #2851)
-
- * A new connection ID is necessary when responding to migration
- (#2778, #2969)
-
* Stronger requirements for connection ID retirement (#3046, #3096)
* NEW_TOKEN cannot be empty (#2978, #2977)
@@ -8255,7 +8305,7 @@ Internet-Draft QUIC Transport Protocol January 2020
* Servers have to change connection IDs in Retry (#2837, #3147)
-B.2. Since draft-ietf-quic-transport-22
+C.2. Since draft-ietf-quic-transport-22
* Rules for preventing correlation by connection ID tightened
(#2084, #2929)
@@ -8282,19 +8332,19 @@ B.2. Since draft-ietf-quic-transport-22
* A maximum ACK delay of 0 is used for handshake packet number
spaces (#2646, #2638)
+ * Improved rules for use of congestion control state on new paths
+ (#2685, #2918)
+ * Removed recommendation to coordinate spin for multiple connections
+ that share a path (#2763, #2882)
-Iyengar & Thomson Expires 10 July 2020 [Page 148]
-
-Internet-Draft QUIC Transport Protocol January 2020
- * Improved rules for use of congestion control state on new paths
- (#2685, #2918)
+Iyengar & Thomson Expires 11 July 2020 [Page 149]
+
+Internet-Draft QUIC Transport Protocol January 2020
- * Removed recommendation to coordinate spin for multiple connections
- that share a path (#2763, #2882)
* Allow smaller stateless resets and recommend a smaller minimum on
packets that might trigger a stateless reset (#2770, #2869, #2927,
@@ -8317,12 +8367,12 @@ Internet-Draft QUIC Transport Protocol January 2020
* Moved ACK generation guidance from recovery draft to transport
draft (#1860, #2916).
-B.3. Since draft-ietf-quic-transport-21
+C.3. Since draft-ietf-quic-transport-21
* Connection ID lengths are now one octet, but limited in version 1
to 20 octets of length (#2736, #2749)
-B.4. Since draft-ietf-quic-transport-20
+C.4. Since draft-ietf-quic-transport-20
* Error codes are encoded as variable-length integers (#2672, #2680)
@@ -8338,18 +8388,19 @@ B.4. Since draft-ietf-quic-transport-20
* More normative language about use of stateless reset (#2471,
#2574)
+ * Allow reuse of stateless reset tokens (#2732, #2733)
+ * Allow, but not require, enforcing non-duplicate transport
+ parameters (#2689, #2691)
-Iyengar & Thomson Expires 10 July 2020 [Page 149]
-
-Internet-Draft QUIC Transport Protocol January 2020
- * Allow reuse of stateless reset tokens (#2732, #2733)
- * Allow, but not require, enforcing non-duplicate transport
- parameters (#2689, #2691)
+Iyengar & Thomson Expires 11 July 2020 [Page 150]
+
+Internet-Draft QUIC Transport Protocol January 2020
+
* Added an active_connection_id_limit transport parameter (#1994,
#1998)
@@ -8374,7 +8425,7 @@ Internet-Draft QUIC Transport Protocol January 2020
* Document hack for enabling routing of ICMP when doing PMTU probing
(#1243, #2402)
-B.5. Since draft-ietf-quic-transport-19
+C.5. Since draft-ietf-quic-transport-19
* Refine discussion of 0-RTT transport parameters (#2467, #2464)
@@ -8393,24 +8444,23 @@ B.5. Since draft-ietf-quic-transport-19
* The "QUIC bit" is ignored in Version Negotiation (#2400, #2561)
+ * Initial packets from clients need to be padded to 1200 unless a
+ Handshake packet is sent as well (#2522, #2523)
+
+ * CRYPTO frames can be discarded if too much data is buffered
+ (#1834, #2524)
-Iyengar & Thomson Expires 10 July 2020 [Page 150]
+Iyengar & Thomson Expires 11 July 2020 [Page 151]
Internet-Draft QUIC Transport Protocol January 2020
- * Initial packets from clients need to be padded to 1200 unless a
- Handshake packet is sent as well (#2522, #2523)
-
- * CRYPTO frames can be discarded if too much data is buffered
- (#1834, #2524)
-
* Stateless reset uses a short header packet (#2599, #2600)
-B.6. Since draft-ietf-quic-transport-18
+C.6. Since draft-ietf-quic-transport-18
* Removed version negotiation; version negotiation, including
authentication of the result, will be addressed in the next
@@ -8429,7 +8479,7 @@ B.6. Since draft-ietf-quic-transport-18
* Increased the set of permissible frames in 0-RTT (#2344, #2355)
-B.7. Since draft-ietf-quic-transport-17
+C.7. Since draft-ietf-quic-transport-17
* Stream-related errors now use STREAM_STATE_ERROR (#2305)
@@ -8450,14 +8500,6 @@ B.7. Since draft-ietf-quic-transport-17
* Disable ECN count verification for packets that arrive out of
order (#2198, #2215)
-
-
-
-Iyengar & Thomson Expires 10 July 2020 [Page 151]
-
-Internet-Draft QUIC Transport Protocol January 2020
-
-
* Use Probe Timeout (PTO) instead of RTO (#2206, #2238)
* Loosen constraints on retransmission of ACK ranges (#2199, #2245)
@@ -8465,6 +8507,13 @@ Internet-Draft QUIC Transport Protocol January 2020
* Limit Retry and Version Negotiation to once per datagram (#2259,
#2303)
+
+
+Iyengar & Thomson Expires 11 July 2020 [Page 152]
+
+Internet-Draft QUIC Transport Protocol January 2020
+
+
* Set a maximum value for max_ack_delay transport parameter (#2282,
#2301)
@@ -8476,7 +8525,7 @@ Internet-Draft QUIC Transport Protocol January 2020
* ACK of non-existent packet is illegal (#2298, #2302)
-B.8. Since draft-ietf-quic-transport-16
+C.8. Since draft-ietf-quic-transport-16
* Stream limits are defined as counts, not maximums (#1850, #1906)
@@ -8506,20 +8555,20 @@ B.8. Since draft-ietf-quic-transport-16
- Move packet number length to first byte
+ - Move ODCIL to first byte of retry packets
+ - Simplify packet number protection (#1575)
+ * Allow STOP_SENDING to open a remote bidirectional stream (#1797,
+ #2013)
-Iyengar & Thomson Expires 10 July 2020 [Page 152]
-
-Internet-Draft QUIC Transport Protocol January 2020
- - Move ODCIL to first byte of retry packets
- - Simplify packet number protection (#1575)
+Iyengar & Thomson Expires 11 July 2020 [Page 153]
+
+Internet-Draft QUIC Transport Protocol January 2020
- * Allow STOP_SENDING to open a remote bidirectional stream (#1797,
- #2013)
* Added mitigation for off-path migration attacks (#1278, #1749,
#2033)
@@ -8539,11 +8588,11 @@ Internet-Draft QUIC Transport Protocol January 2020
* ICMP PTB validation clarifications (#2161, #2109, #2108)
-B.9. Since draft-ietf-quic-transport-15
+C.9. Since draft-ietf-quic-transport-15
Substantial editorial reorganization; no technical changes.
-B.10. Since draft-ietf-quic-transport-14
+C.10. Since draft-ietf-quic-transport-14
* Merge ACK and ACK_ECN (#1778, #1801)
@@ -8562,15 +8611,7 @@ B.10. Since draft-ietf-quic-transport-14
* Prevent handshake deadlock (#1764, #1824)
-
-
-
-Iyengar & Thomson Expires 10 July 2020 [Page 153]
-
-Internet-Draft QUIC Transport Protocol January 2020
-
-
-B.11. Since draft-ietf-quic-transport-13
+C.11. Since draft-ietf-quic-transport-13
* Streams open when higher-numbered streams of the same type open
(#1342, #1549)
@@ -8578,6 +8619,13 @@ B.11. Since draft-ietf-quic-transport-13
* Split initial stream flow control limit into 3 transport
parameters (#1016, #1542)
+
+
+Iyengar & Thomson Expires 11 July 2020 [Page 154]
+
+Internet-Draft QUIC Transport Protocol January 2020
+
+
* All flow control transport parameters are optional (#1610)
* Removed UNSOLICITED_PATH_RESPONSE error code (#1265, #1539)
@@ -8608,7 +8656,7 @@ B.11. Since draft-ietf-quic-transport-13
* Remove frame type field from APPLICATION_CLOSE (#1508, #1528)
-B.12. Since draft-ietf-quic-transport-12
+C.12. Since draft-ietf-quic-transport-12
* Changes to integration of the TLS handshake (#829, #1018, #1094,
#1165, #1190, #1233, #1242, #1252, #1450, #1458)
@@ -8618,14 +8666,6 @@ B.12. Since draft-ietf-quic-transport-12
- QUIC packet protection is used in place of TLS record
protection
-
-
-
-Iyengar & Thomson Expires 10 July 2020 [Page 154]
-
-Internet-Draft QUIC Transport Protocol January 2020
-
-
- Separate QUIC packet number spaces are used for the handshake
- Changed Retry to be independent of the cryptographic handshake
@@ -8635,6 +8675,13 @@ Internet-Draft QUIC Transport Protocol January 2020
- Limit the use of HelloRetryRequest to address TLS needs (like
key shares)
+
+
+Iyengar & Thomson Expires 11 July 2020 [Page 155]
+
+Internet-Draft QUIC Transport Protocol January 2020
+
+
* Enable server to transition connections to a preferred address
(#560, #1251, #1373)
@@ -8659,7 +8706,7 @@ Internet-Draft QUIC Transport Protocol January 2020
* Added frame type extension mechanism (#58, #1473)
-B.13. Since draft-ietf-quic-transport-11
+C.13. Since draft-ietf-quic-transport-11
* Enable server to transition connections to a preferred address
(#560, #1251)
@@ -8671,16 +8718,7 @@ B.13. Since draft-ietf-quic-transport-11
* STREAM frames can now be empty (#1350)
-B.14. Since draft-ietf-quic-transport-10
-
-
-
-
-
-Iyengar & Thomson Expires 10 July 2020 [Page 155]
-
-Internet-Draft QUIC Transport Protocol January 2020
-
+C.14. Since draft-ietf-quic-transport-10
* Swap payload length and packed number fields in long header
(#1294)
@@ -8692,6 +8730,14 @@ Internet-Draft QUIC Transport Protocol January 2020
* Coalescing multiple QUIC packets in a UDP datagram (#1262, #1285)
+
+
+
+Iyengar & Thomson Expires 11 July 2020 [Page 156]
+
+Internet-Draft QUIC Transport Protocol January 2020
+
+
* A more complete connection migration (#1249)
* Refine opportunistic ACK defense text (#305, #1030, #1185)
@@ -8716,7 +8762,7 @@ Internet-Draft QUIC Transport Protocol January 2020
* Remove implication that Version Negotiation is sent when a packet
of the wrong version is received (#1197)
-B.15. Since draft-ietf-quic-transport-09
+C.15. Since draft-ietf-quic-transport-09
* Added PATH_CHALLENGE and PATH_RESPONSE frames to replace PING with
Data and PONG frame. Changed ACK frame type from 0x0e to 0x0d.
@@ -8730,14 +8776,6 @@ B.15. Since draft-ietf-quic-transport-09
* Rework of packet handling and version negotiation (#1038)
-
-
-
-Iyengar & Thomson Expires 10 July 2020 [Page 156]
-
-Internet-Draft QUIC Transport Protocol January 2020
-
-
* Stream 0 is now exempt from flow control until the handshake
completes (#1074, #725, #825, #1082)
@@ -8748,10 +8786,18 @@ Internet-Draft QUIC Transport Protocol January 2020
* Endpoints now set the connection ID that their peer uses.
Connection IDs are variable length. Removed the
+
+
+
+Iyengar & Thomson Expires 11 July 2020 [Page 157]
+
+Internet-Draft QUIC Transport Protocol January 2020
+
+
omit_connection_id transport parameter and the corresponding short
header flag. (#1089, #1052, #1146, #821, #745, #821, #1166, #1151)
-B.16. Since draft-ietf-quic-transport-08
+C.16. Since draft-ietf-quic-transport-08
* Clarified requirements for BLOCKED usage (#65, #924)
@@ -8779,21 +8825,12 @@ B.16. Since draft-ietf-quic-transport-08
* Removed transport parameters from NewSessionTicket (#1015)
-B.17. Since draft-ietf-quic-transport-07
+C.17. Since draft-ietf-quic-transport-07
* The long header now has version before packet number (#926, #939)
* Rename and consolidate packet types (#846, #822, #847)
-
-
-
-
-Iyengar & Thomson Expires 10 July 2020 [Page 157]
-
-Internet-Draft QUIC Transport Protocol January 2020
-
-
* Packet types are assigned new codepoints and the Connection ID
Flag is inverted (#426, #956)
@@ -8806,6 +8843,13 @@ Internet-Draft QUIC Transport Protocol January 2020
- Stream limits now have separate uni- and bi-directional
transport parameters (#909, #958)
+
+
+Iyengar & Thomson Expires 11 July 2020 [Page 158]
+
+Internet-Draft QUIC Transport Protocol January 2020
+
+
- Stream limit transport parameters are now optional and default
to 0 (#970, #971)
@@ -8832,7 +8876,7 @@ Internet-Draft QUIC Transport Protocol January 2020
* Increased the range over which packet numbers are randomized
(#864, #850, #964)
-B.18. Since draft-ietf-quic-transport-06
+C.18. Since draft-ietf-quic-transport-06
* Replaced FNV-1a with AES-GCM for all "Cleartext" packets (#554)
@@ -8842,14 +8886,6 @@ B.18. Since draft-ietf-quic-transport-06
* 1-RTT-protected long header types removed (#848)
-
-
-
-Iyengar & Thomson Expires 10 July 2020 [Page 158]
-
-Internet-Draft QUIC Transport Protocol January 2020
-
-
* No acknowledgments during draining period (#852)
* Remove "application close" as a separate close type (#854)
@@ -8858,10 +8894,18 @@ Internet-Draft QUIC Transport Protocol January 2020
* Require transport parameters to only appear once (#792)
-B.19. Since draft-ietf-quic-transport-05
+C.19. Since draft-ietf-quic-transport-05
* Stateless token is server-only (#726)
+
+
+
+Iyengar & Thomson Expires 11 July 2020 [Page 159]
+
+Internet-Draft QUIC Transport Protocol January 2020
+
+
* Refactor section on connection termination (#733, #748, #328,
#177)
@@ -8873,7 +8917,7 @@ B.19. Since draft-ietf-quic-transport-05
* Clarify Keep-alive requirements (#729)
-B.20. Since draft-ietf-quic-transport-04
+C.20. Since draft-ietf-quic-transport-04
* Introduce STOP_SENDING frame, RESET_STREAM only resets in one
direction (#165)
@@ -8897,15 +8941,6 @@ B.20. Since draft-ietf-quic-transport-04
* Clarifications to the stream state machine (#572, #571)
-
-
-
-
-Iyengar & Thomson Expires 10 July 2020 [Page 159]
-
-Internet-Draft QUIC Transport Protocol January 2020
-
-
* Increased the maximum length of the Largest Acknowledged field in
ACK frames to 64 bits (#629)
@@ -8916,13 +8951,24 @@ Internet-Draft QUIC Transport Protocol January 2020
* Update labels used in HKDF-Expand-Label to match TLS 1.3 (#642)
-B.21. Since draft-ietf-quic-transport-03
+
+
+
+
+
+
+Iyengar & Thomson Expires 11 July 2020 [Page 160]
+
+Internet-Draft QUIC Transport Protocol January 2020
+
+
+C.21. Since draft-ietf-quic-transport-03
* Change STREAM and RESET_STREAM layout
* Add MAX_STREAM_ID settings
-B.22. Since draft-ietf-quic-transport-02
+C.22. Since draft-ietf-quic-transport-02
* The size of the initial packet payload has a fixed minimum (#267,
#472)
@@ -8955,13 +9001,6 @@ B.22. Since draft-ietf-quic-transport-02
- BLOCKED split to match WINDOW_UPDATE split (#454)
-
-
-Iyengar & Thomson Expires 10 July 2020 [Page 160]
-
-Internet-Draft QUIC Transport Protocol January 2020
-
-
- Define STREAM_ID_NEEDED frame (#455)
* A NEW_CONNECTION_ID frame supports connection migration without
@@ -8970,12 +9009,21 @@ Internet-Draft QUIC Transport Protocol January 2020
* Transport parameters for 0-RTT are retained from a previous
connection (#405, #513, #512)
+
+
+
+
+Iyengar & Thomson Expires 11 July 2020 [Page 161]
+
+Internet-Draft QUIC Transport Protocol January 2020
+
+
- A client in 0-RTT no longer required to reset excess streams
(#425, #479)
* Expanded security considerations (#440, #444, #445, #448)
-B.23. Since draft-ietf-quic-transport-01
+C.23. Since draft-ietf-quic-transport-01
* Defined short and long packet headers (#40, #148, #361)
@@ -9009,15 +9057,6 @@ B.23. Since draft-ietf-quic-transport-01
* Path MTU Discovery (#64, #106)
-
-
-
-
-Iyengar & Thomson Expires 10 July 2020 [Page 161]
-
-Internet-Draft QUIC Transport Protocol January 2020
-
-
* The initial handshake packet from the client needs to fit in a
single packet (#338)
@@ -9027,6 +9066,14 @@ Internet-Draft QUIC Transport Protocol January 2020
* Require that frames are processed when packets are acknowledged
(#381, #341)
+
+
+
+Iyengar & Thomson Expires 11 July 2020 [Page 162]
+
+Internet-Draft QUIC Transport Protocol January 2020
+
+
* Removed the STOP_WAITING frame (#66)
* Don't require retransmission of old timestamps for lost ACK frames
@@ -9067,13 +9114,6 @@ Internet-Draft QUIC Transport Protocol January 2020
* Moved length-determining fields to the start of STREAM and ACK
(#168, #277)
-
-
-Iyengar & Thomson Expires 10 July 2020 [Page 162]
-
-Internet-Draft QUIC Transport Protocol January 2020
-
-
* Added the ability to pad between frames (#158, #276)
* Remove error code and reason phrase from GOAWAY (#352, #355)
@@ -9083,10 +9123,17 @@ Internet-Draft QUIC Transport Protocol January 2020
* Error codes for RESET_STREAM and CONNECTION_CLOSE are now at a
consistent offset (#249)
+
+
+Iyengar & Thomson Expires 11 July 2020 [Page 163]
+
+Internet-Draft QUIC Transport Protocol January 2020
+
+
* Defined priority as the responsibility of the application protocol
(#104, #303)
-B.24. Since draft-ietf-quic-transport-00
+C.24. Since draft-ietf-quic-transport-00
* Replaced DIVERSIFICATION_NONCE flag with KEY_PHASE flag
@@ -9098,7 +9145,7 @@ B.24. Since draft-ietf-quic-transport-00
* Use big endian for all numeric values
-B.25. Since draft-hamilton-quic-transport-protocol-01
+C.25. Since draft-hamilton-quic-transport-protocol-01
* Adopted as base for draft-ietf-quic-tls
@@ -9123,13 +9170,6 @@ Contributors
The original authors of this specification were Ryan Hamilton, Jana
Iyengar, Ian Swett, and Alyssa Wilk.
-
-
-Iyengar & Thomson Expires 10 July 2020 [Page 163]
-
-Internet-Draft QUIC Transport Protocol January 2020
-
-
The original design and rationale behind this protocol draw
significantly from work by Jim Roskind [EARLY-DESIGN]. In
alphabetical order, the contributors to the pre-IETF QUIC project at
@@ -9139,6 +9179,13 @@ Internet-Draft QUIC Transport Protocol January 2020
Victor Vasiliev, Antonio Vicente, Patrik Westin, Alyssa Wilk, Dale
Worley, Fan Yang, Dan Zhang, Daniel Ziegler.
+
+
+Iyengar & Thomson Expires 11 July 2020 [Page 164]
+
+Internet-Draft QUIC Transport Protocol January 2020
+
+
Authors' Addresses
Jana Iyengar (editor)
@@ -9181,4 +9228,13 @@ Authors' Addresses
-Iyengar & Thomson Expires 10 July 2020 [Page 164]
+
+
+
+
+
+
+
+
+
+Iyengar & Thomson Expires 11 July 2020 [Page 165]
diff --git a/index.html b/index.html
index 34c106889a..0b1eab48d2 100644
--- a/index.html
+++ b/index.html
@@ -73,696 +73,696 @@
Editor's drafts for master branch of hs-done-where
-