Skip to content

Commit 788df89

Browse files
Merge branch 'main' into spellcheck
2 parents 8784a2c + 2c19caf commit 788df89

File tree

2 files changed

+174
-14
lines changed

2 files changed

+174
-14
lines changed

draft-ietf-quic-version-negotiation.md

+16-14
Original file line numberDiff line numberDiff line change
@@ -58,10 +58,10 @@ round trip.
5858

5959
# Introduction
6060

61-
The version-invariant properties of QUIC {{!INV=RFC8999}} define a Version
62-
Negotiation packet but do not specify how an endpoint reacts when it receives
63-
one. QUIC version 1 {{!QUIC=RFC9000}} allows the server to use a Version
64-
Negotiation packet to indicate that the version the client chose is
61+
The version-invariant properties of QUIC {{!QUIC-INVARIANTS=RFC8999}} define a
62+
Version Negotiation packet but do not specify how an endpoint reacts when it
63+
receives one. QUIC version 1 {{!QUIC=RFC9000}} allows the server to use a
64+
Version Negotiation packet to indicate that the version the client chose is
6565
unacceptable, but doesn't allow the client to safely make use of that
6666
information to create a new connection with a mutually supported version.
6767

@@ -116,10 +116,11 @@ and one "compatible" that allows saving the round trip but only applies when the
116116
versions are compatible.
117117

118118
The client initiates a QUIC connection by choosing an initial version and
119-
sending a first flight of QUIC packets with a long header to the server {{INV}}.
120-
The client's first flight includes Version Information (see {{vers-info}}) which
121-
will be used to optionally enable compatible version negotiation (see
122-
{{compat-vn}}), and to prevent version downgrade attacks (see {{downgrade}}).
119+
sending a first flight of QUIC packets with a long header to the server
120+
{{QUIC-INVARIANTS}}. The client's first flight includes Version Information (see
121+
{{vers-info}}) which will be used to optionally enable compatible version
122+
negotiation (see {{compat-vn}}), and to prevent version downgrade attacks (see
123+
{{downgrade}}).
123124

124125
Upon receiving this first flight, the server verifies whether it knows how to
125126
parse first flights from the original version. If it does not, then it starts
@@ -151,7 +152,8 @@ Supported Version fields.
151152

152153
Clients will ignore a Version Negotiation packet if it contains the original
153154
version attempted by the client. The client also ignores a Version Negotiation
154-
packet that contains incorrect connection ID fields; see {{Section 6 of INV}}.
155+
packet that contains incorrect connection ID fields; see {{Section 6 of
156+
QUIC-INVARIANTS}}.
155157

156158
Upon receiving the Version Negotiation packet, the client will search for a
157159
version it supports in the list provided by the server. If it doesn't find one,
@@ -275,11 +277,11 @@ packet, but the server preferred D and then selected it from the client's offer.
275277

276278
## Connections and Version Negotiation {#connections}
277279

278-
QUIC connections are shared state between a client and a server {{INV}}. The
279-
compatible version negotiation mechanism defined in this document (see
280-
{{compat-vn}}) is performed as part of a single QUIC connection; that is, the
281-
packets with the client's chosen version are part of the same connection as the
282-
packets with the negotiated version.
280+
QUIC connections are shared state between a client and a server
281+
{{QUIC-INVARIANTS}}. The compatible version negotiation mechanism defined in
282+
this document (see {{compat-vn}}) is performed as part of a single QUIC
283+
connection; that is, the packets with the client's chosen version are part of
284+
the same connection as the packets with the negotiated version.
283285

284286
In comparison, the incompatible version negotiation mechanism, which leverages
285287
QUIC Version Negotiation packets (see {{incompat-vn}}) conceptually operates

writeups/vn.txt

+158
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,158 @@
1+
Thank you for your service as a document shepherd. Among the responsibilities is
2+
answering the questions in this write-up to give helpful context to Last Call
3+
and Internet Engineering Steering Group ([IESG][1]) reviewers, and your
4+
diligence in completing it is appreciated. The full role of the shepherd is
5+
further described in [RFC 4858][2]. You will need the cooperation of the authors
6+
and editors to complete these checks.
7+
8+
Note that some numbered items contain multiple related questions; please be sure
9+
to answer all of them.
10+
11+
## Document History
12+
13+
1. Does the working group (WG) consensus represent the strong concurrence of a
14+
few individuals, with others being silent, or did it reach broad agreement?
15+
16+
Broad agreement. This document was widely discussed on github, the mailing list, and at multiple IETF meetings.
17+
18+
2. Was there controversy about particular points, or were there decisions where
19+
the consensus was particularly rough?
20+
21+
Given the nature of the work (versions and moving between versions) there were some philosophical questions that had to be ironed out, but ultimately the consensus was not unusually rough.
22+
23+
3. Has anyone threatened an appeal or otherwise indicated extreme discontent? If
24+
so, please summarize the areas of conflict in separate email messages to the
25+
responsible Area Director. (It should be in a separate email because this
26+
questionnaire is publicly available.)
27+
28+
No.
29+
30+
4. For protocol documents, are there existing implementations of the contents of
31+
the document? Have a significant number of potential implementers indicated
32+
plans to implement? Are any existing implementations reported somewhere,
33+
either in the document itself (as [RFC 7942][3] recommends) or elsewhere
34+
(where)?
35+
36+
There are multiple interoperating implementations which have been reported and tested through the typical form of social testing on the QUIC dev slack workspace. This includes major implementers who intend to use it in production.
37+
38+
### Additional Reviews
39+
40+
5. Do the contents of this document closely interact with technologies in other
41+
IETF working groups or external organizations, and would it therefore benefit
42+
from their review? Have those reviews occurred? If yes, describe which
43+
reviews took place.
44+
45+
No.
46+
47+
6. Describe how the document meets any required formal expert review criteria,
48+
such as the MIB Doctor, YANG Doctor, media type, and URI type reviews.
49+
50+
None.
51+
52+
7. If the document contains a YANG module, has the final version of the module
53+
been checked with any of the [recommended validation tools][4] for syntax and
54+
formatting validation? If there are any resulting errors or warnings, what is
55+
the justification for not fixing them at this time? Does the YANG module
56+
comply with the Network Management Datastore Architecture (NMDA) as specified
57+
in [RFC 8342][5]?
58+
59+
N/A
60+
61+
8. Describe reviews and automated checks performed to validate sections of the
62+
final version of the document written in a formal language, such as XML code,
63+
BNF rules, MIB definitions, CBOR's CDDL, etc.
64+
65+
Normal linting.
66+
67+
### Document Shepherd Checks
68+
69+
9. Based on the shepherd's review of the document, is it their opinion that this
70+
document is needed, clearly written, complete, correctly designed, and ready
71+
to be handed off to the responsible Area Director?
72+
73+
I believe these documents are cclearly written, complete, correctly designed, and ready for AD review.
74+
75+
10. Several IETF Areas have assembled [lists of common issues that their
76+
reviewers encounter][6]. For which areas have such issues been identified and addressed?
77+
For which does this still need to happen in subsequent reviews?
78+
79+
N/A.
80+
81+
11. What type of RFC publication is being requested on the IETF stream ([Best
82+
Current Practice][12], [Proposed Standard, Internet Standard][13],
83+
[Informational, Experimental or Historic][14])? Why is this the proper type
84+
of RFC? Do all Datatracker state attributes correctly reflect this intent?
85+
86+
Proposed Standard; because we believe there is consensus to publish it
87+
88+
12. Have reasonable efforts been made to remind all authors of the intellectual
89+
property rights (IPR) disclosure obligations described in [BCP 79][8]?
90+
To the best of your knowledge, have all required disclosures been filed?
91+
If not, explain why. If yes, summarize any relevant discussion, including
92+
links to publicly-available messages when applicable.
93+
94+
Yes, there are no disclosures to file.
95+
96+
13. Has each author, editor, and contributor shown their willingness to be listed
97+
as such? If the total number of authors and editors on the front page is
98+
greater than five, please provide a justification.
99+
100+
Yes.
101+
102+
14. Document any remaining I-D nits in this document. Simply running the [idnits
103+
tool][8] is not enough; please review the ["Content Guidelines" on
104+
authors.ietf.org][15]. (Also note that the current idnits tool generates
105+
some incorrect warnings; a rewrite is underway.)
106+
107+
None.
108+
109+
15. Should any informative references be normative or vice-versa? See the [IESG
110+
Statement on Normative and Informative References][16].
111+
112+
Not that I can see.
113+
114+
16. List any normative references that are not freely available to anyone. Did
115+
the community have sufficient access to review any such normative
116+
references?
117+
118+
None.
119+
120+
17. Are there any normative downward references (see [RFC 3967][9] and
121+
[BCP 97][10]) that are not already listed in the [DOWNREF registry][17]?
122+
If so, list them.
123+
124+
None.
125+
126+
18. Are there normative references to documents that are not ready to be
127+
submitted to the IESG for publication or are otherwise in an unclear state?
128+
If so, what is the plan for their completion?
129+
130+
None.
131+
132+
19. Will publication of this document change the status of any existing RFCs? If
133+
so, does the Datatracker metadata correctly reflect this and are those RFCs
134+
listed on the title page, in the abstract, and discussed in the
135+
introduction? If not, explain why and point to the part of the document
136+
where the relationship of this document to these other RFCs is discussed.
137+
138+
No.
139+
140+
20. Describe the document shepherd's review of the IANA considerations section,
141+
especially with regard to its consistency with the body of the document.
142+
Confirm that all aspects of the document requiring IANA assignments are
143+
associated with the appropriate reservations in IANA registries. Confirm
144+
that any referenced IANA registries have been clearly identified. Confirm
145+
that each newly created IANA registry specifies its initial contents,
146+
allocations procedures, and a reasonable name (see [RFC 8126][11]).
147+
148+
The document clearly identifies the registration of new values in established
149+
QUIC registries. While developed in the WG, the document has used values in the
150+
provisional range. Once the document is approved, values in the permanent range
151+
will be requested for allocation. This document, as a Proposed Standard, meets
152+
the permanent registration criteria.
153+
154+
155+
21. List any new IANA registries that require Designated Expert Review for
156+
future allocations. Are the instructions to the Designated Expert clear?
157+
Please include suggestions of designated experts, if appropriate.
158+
N/A

0 commit comments

Comments
 (0)