Skip to content

Commit

Permalink
Script updating gh-pages from 66cf75c. [ci skip]
Browse files Browse the repository at this point in the history
  • Loading branch information
ID Bot committed May 20, 2021
1 parent c7c8a86 commit 4af3d5c
Show file tree
Hide file tree
Showing 2 changed files with 83 additions and 77 deletions.
99 changes: 51 additions & 48 deletions simplify/draft-ietf-quic-version-negotiation.html
Expand Up @@ -853,7 +853,7 @@
</tr></thead>
<tfoot><tr>
<td class="left">Schinazi &amp; Rescorla</td>
<td class="center">Expires 15 November 2021</td>
<td class="center">Expires 21 November 2021</td>
<td class="right">[Page]</td>
</tr></tfoot>
</table>
Expand All @@ -866,12 +866,12 @@
<dd class="internet-draft">draft-ietf-quic-version-negotiation-latest</dd>
<dt class="label-published">Published:</dt>
<dd class="published">
<time datetime="2021-05-14" class="published">14 May 2021</time>
<time datetime="2021-05-20" class="published">20 May 2021</time>
</dd>
<dt class="label-intended-status">Intended Status:</dt>
<dd class="intended-status">Standards Track</dd>
<dt class="label-expires">Expires:</dt>
<dd class="expires"><time datetime="2021-11-15">15 November 2021</time></dd>
<dd class="expires"><time datetime="2021-11-21">21 November 2021</time></dd>
<dt class="label-authors">Authors:</dt>
<dd class="authors">
<div class="author">
Expand Down Expand Up @@ -925,7 +925,7 @@ <h2 id="name-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."<a href="#section-boilerplate.1-3" class="pilcrow"></a></p>
<p id="section-boilerplate.1-4">
This Internet-Draft will expire on 15 November 2021.<a href="#section-boilerplate.1-4" class="pilcrow"></a></p>
This Internet-Draft will expire on 21 November 2021.<a href="#section-boilerplate.1-4" class="pilcrow"></a></p>
</section>
</div>
<div id="copyright">
Expand Down Expand Up @@ -953,74 +953,74 @@ <h2 id="name-copyright-notice">
<a href="#" onclick="scroll(0,0)" class="toplink"></a><h2 id="name-table-of-contents">
<a href="#name-table-of-contents" class="section-name selfRef">Table of Contents</a>
</h2>
<nav class="toc"><ul class="ulEmpty compact toc">
<li class="ulEmpty compact toc" id="section-toc.1-1.1">
<nav class="toc"><ul class="ulEmpty toc compact">
<li class="ulEmpty toc compact" id="section-toc.1-1.1">
<p id="section-toc.1-1.1.1" class="keepWithNext"><a href="#section-1" class="xref">1</a>.  <a href="#name-introduction" class="xref">Introduction</a></p>
<ul class="ulEmpty compact toc">
<li class="ulEmpty compact toc" id="section-toc.1-1.1.2.1">
<ul class="ulEmpty toc compact">
<li class="ulEmpty toc compact" id="section-toc.1-1.1.2.1">
<p id="section-toc.1-1.1.2.1.1" class="keepWithNext"><a href="#section-1.1" class="xref">1.1</a>.  <a href="#name-conventions-and-definitions" class="xref">Conventions and Definitions</a></p>
</li>
</ul>
</li>
<li class="ulEmpty compact toc" id="section-toc.1-1.2">
<li class="ulEmpty toc compact" id="section-toc.1-1.2">
<p id="section-toc.1-1.2.1" class="keepWithNext"><a href="#section-2" class="xref">2</a>.  <a href="#name-server-deployments-of-quic" class="xref">Server Deployments of QUIC</a></p>
</li>
<li class="ulEmpty compact toc" id="section-toc.1-1.3">
<li class="ulEmpty toc compact" id="section-toc.1-1.3">
<p id="section-toc.1-1.3.1"><a href="#section-3" class="xref">3</a>.  <a href="#name-compatible-versions" class="xref">Compatible Versions</a></p>
</li>
<li class="ulEmpty compact toc" id="section-toc.1-1.4">
<li class="ulEmpty toc compact" id="section-toc.1-1.4">
<p id="section-toc.1-1.4.1"><a href="#section-4" class="xref">4</a>.  <a href="#name-version-negotiation-mechani" class="xref">Version Negotiation Mechanism</a></p>
<ul class="ulEmpty compact toc">
<li class="ulEmpty compact toc" id="section-toc.1-1.4.2.1">
<ul class="ulEmpty toc compact">
<li class="ulEmpty toc compact" id="section-toc.1-1.4.2.1">
<p id="section-toc.1-1.4.2.1.1"><a href="#section-4.1" class="xref">4.1</a>.  <a href="#name-connections-and-version-neg" class="xref">Connections and Version Negotiation</a></p>
</li>
<li class="ulEmpty compact toc" id="section-toc.1-1.4.2.2">
<li class="ulEmpty toc compact" id="section-toc.1-1.4.2.2">
<p id="section-toc.1-1.4.2.2.1"><a href="#section-4.2" class="xref">4.2</a>.  <a href="#name-incompatible-version-negoti" class="xref">Incompatible Version Negotiation</a></p>
</li>
<li class="ulEmpty compact toc" id="section-toc.1-1.4.2.3">
<li class="ulEmpty toc compact" id="section-toc.1-1.4.2.3">
<p id="section-toc.1-1.4.2.3.1"><a href="#section-4.3" class="xref">4.3</a>.  <a href="#name-compatible-version-negotiat" class="xref">Compatible Version Negotiation</a></p>
</li>
</ul>
</li>
<li class="ulEmpty compact toc" id="section-toc.1-1.5">
<li class="ulEmpty toc compact" id="section-toc.1-1.5">
<p id="section-toc.1-1.5.1"><a href="#section-5" class="xref">5</a>.  <a href="#name-version-information" class="xref">Version Information</a></p>
</li>
<li class="ulEmpty compact toc" id="section-toc.1-1.6">
<li class="ulEmpty toc compact" id="section-toc.1-1.6">
<p id="section-toc.1-1.6.1"><a href="#section-6" class="xref">6</a>.  <a href="#name-version-downgrade-preventio" class="xref">Version Downgrade Prevention</a></p>
</li>
<li class="ulEmpty compact toc" id="section-toc.1-1.7">
<li class="ulEmpty toc compact" id="section-toc.1-1.7">
<p id="section-toc.1-1.7.1"><a href="#section-7" class="xref">7</a>.  <a href="#name-client-choice-of-original-v" class="xref">Client Choice of Original Version</a></p>
</li>
<li class="ulEmpty compact toc" id="section-toc.1-1.8">
<li class="ulEmpty toc compact" id="section-toc.1-1.8">
<p id="section-toc.1-1.8.1"><a href="#section-8" class="xref">8</a>.  <a href="#name-interaction-with-retry" class="xref">Interaction with Retry</a></p>
</li>
<li class="ulEmpty compact toc" id="section-toc.1-1.9">
<li class="ulEmpty toc compact" id="section-toc.1-1.9">
<p id="section-toc.1-1.9.1"><a href="#section-9" class="xref">9</a>.  <a href="#name-interaction-with-0-rtt" class="xref">Interaction with 0-RTT</a></p>
</li>
<li class="ulEmpty compact toc" id="section-toc.1-1.10">
<li class="ulEmpty toc compact" id="section-toc.1-1.10">
<p id="section-toc.1-1.10.1"><a href="#section-10" class="xref">10</a><a href="#name-considerations-for-future-v" class="xref">Considerations for Future Versions</a></p>
</li>
<li class="ulEmpty compact toc" id="section-toc.1-1.11">
<li class="ulEmpty toc compact" id="section-toc.1-1.11">
<p id="section-toc.1-1.11.1"><a href="#section-11" class="xref">11</a><a href="#name-security-considerations" class="xref">Security Considerations</a></p>
</li>
<li class="ulEmpty compact toc" id="section-toc.1-1.12">
<li class="ulEmpty toc compact" id="section-toc.1-1.12">
<p id="section-toc.1-1.12.1"><a href="#section-12" class="xref">12</a><a href="#name-iana-considerations" class="xref">IANA Considerations</a></p>
<ul class="ulEmpty compact toc">
<li class="ulEmpty compact toc" id="section-toc.1-1.12.2.1">
<ul class="ulEmpty toc compact">
<li class="ulEmpty toc compact" id="section-toc.1-1.12.2.1">
<p id="section-toc.1-1.12.2.1.1"><a href="#section-12.1" class="xref">12.1</a>.  <a href="#name-quic-transport-parameter" class="xref">QUIC Transport Parameter</a></p>
</li>
<li class="ulEmpty compact toc" id="section-toc.1-1.12.2.2">
<li class="ulEmpty toc compact" id="section-toc.1-1.12.2.2">
<p id="section-toc.1-1.12.2.2.1"><a href="#section-12.2" class="xref">12.2</a>.  <a href="#name-quic-transport-error-code" class="xref">QUIC Transport Error Code</a></p>
</li>
</ul>
</li>
<li class="ulEmpty compact toc" id="section-toc.1-1.13">
<li class="ulEmpty toc compact" id="section-toc.1-1.13">
<p id="section-toc.1-1.13.1"><a href="#section-13" class="xref">13</a><a href="#name-normative-references" class="xref">Normative References</a></p>
</li>
<li class="ulEmpty compact toc" id="section-toc.1-1.14">
<li class="ulEmpty toc compact" id="section-toc.1-1.14">
<p id="section-toc.1-1.14.1"><a href="#section-appendix.a" class="xref"></a><a href="#name-acknowledgments" class="xref">Acknowledgments</a></p>
</li>
<li class="ulEmpty compact toc" id="section-toc.1-1.15">
<li class="ulEmpty toc compact" id="section-toc.1-1.15">
<p id="section-toc.1-1.15.1"><a href="#section-appendix.b" class="xref"></a><a href="#name-authors-addresses" class="xref">Authors' Addresses</a></p>
</li>
</ul>
Expand Down Expand Up @@ -1055,6 +1055,9 @@ <h3 id="name-conventions-and-definitions">
"SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in BCP 14 <span>[<a href="#RFC2119" class="xref">RFC2119</a>]</span> <span>[<a href="#RFC8174" class="xref">RFC8174</a>]</span>
when, and only when, they appear in all capitals, as shown here.<a href="#section-1.1-1" class="pilcrow"></a></p>
<p id="section-1.1-2">In this document, the Maximum Segment Lifetime (MSL) represents the time a QUIC
packet can exist in the network. Implementations can make this configurable,
and a RECOMMENDED value is one minute.<a href="#section-1.1-2" class="pilcrow"></a></p>
</section>
</div>
</section>
Expand All @@ -1069,28 +1072,28 @@ <h2 id="name-server-deployments-of-quic">
therefore define the following terms:<a href="#section-2-1" class="pilcrow"></a></p>
<span class="break"></span><dl class="dlParallel" id="section-2-2">
<dt id="section-2-2.1">
Accepted Versions: </dt>
Acceptable Versions: </dt>
<dd style="margin-left: 1.5em" id="section-2-2.2">
<p id="section-2-2.2.1">This is the set of versions supported by a given server instance. More
specifically, these are the versions that a given server instance will use if a
client sends a first flight using them.<a href="#section-2-2.2.1" class="pilcrow"></a></p>
</dd>
<dd class="break"></dd>
<dt id="section-2-2.3">
Negotiated Versions: </dt>
Offered Versions: </dt>
<dd style="margin-left: 1.5em" id="section-2-2.4">
<p id="section-2-2.4.1">This is the set of versions that a given server instance will send in a
Version Negotiation packet if it receives a first flight from an unknown
version. This set will most often be equal to the Accepted Versions set, except
during short transitions while versions are added or removed (see below).<a href="#section-2-2.4.1" class="pilcrow"></a></p>
version. This set will most often be equal to the Acceptaple Versions set,
except during short transitions while versions are added or removed (see below).<a href="#section-2-2.4.1" class="pilcrow"></a></p>
</dd>
<dd class="break"></dd>
<dt id="section-2-2.5">
Fully-Deployed Versions: </dt>
<dd style="margin-left: 1.5em" id="section-2-2.6">
<p id="section-2-2.6.1">This is the set of QUIC versions that is supported and negotiated by every
single QUIC server instance in this deployment. If a deployment only contains a
single server instance, then this set is equal to the Negotiated Versions set,
single server instance, then this set is equal to the Offered Versions set,
except during short transitions while versions are added or removed (see below).<a href="#section-2-2.6.1" class="pilcrow"></a></p>
</dd>
<dd class="break"></dd>
Expand All @@ -1110,14 +1113,14 @@ <h2 id="name-server-deployments-of-quic">
<p id="section-2-6">When adding support for a new version:<a href="#section-2-6" class="pilcrow"></a></p>
<ul class="normal">
<li class="normal" id="section-2-7.1">The first step is to progressively add support for the new version to all
server instances. This step updates the Accepted Versions but not the
Negotiated Versions nor the Fully-Deployed Versions. Once all server
instances have been updated, operators wait for at least one minute to allow
any in-flight Version Negotiation packets to arrive.<a href="#section-2-7.1" class="pilcrow"></a>
server instances. This step updates the Acceptable Versions but not the
Offered Versions nor the Fully-Deployed Versions. Once all server instances
have been updated, operators wait for at least one MSL to allow any in-flight
Version Negotiation packets to arrive.<a href="#section-2-7.1" class="pilcrow"></a>
</li>
<li class="normal" id="section-2-7.2">Then, the second step is to progressively add the new version to Negotiated
<li class="normal" id="section-2-7.2">Then, the second step is to progressively add the new version to Offered
Versions on all server instances. Once complete, operators wait for at least
another minute.<a href="#section-2-7.2" class="pilcrow"></a>
another MSL.<a href="#section-2-7.2" class="pilcrow"></a>
</li>
<li class="normal" id="section-2-7.3">Finally, the third step is to progressively add the new version to
Fully-Deployed Versions on all server instances.<a href="#section-2-7.3" class="pilcrow"></a>
Expand All @@ -1127,15 +1130,15 @@ <h2 id="name-server-deployments-of-quic">
<ul class="normal">
<li class="normal" id="section-2-9.1">The first step is to progressively remove the version from Fully-Deployed
Versions on all server instances. Once it has been removed on all server
instances, operators wait for at least one minute to allow any in-flight
instances, operators wait for at least one MSL to allow any in-flight
Version Negotiation packets to arrive.<a href="#section-2-9.1" class="pilcrow"></a>
</li>
<li class="normal" id="section-2-9.2">Then, the second step is to progressively remove the version from Negotiated
<li class="normal" id="section-2-9.2">Then, the second step is to progressively remove the version from Offered
Versions on all server instances. Once complete, operators wait for at least
another minute.<a href="#section-2-9.2" class="pilcrow"></a>
another MSL.<a href="#section-2-9.2" class="pilcrow"></a>
</li>
<li class="normal" id="section-2-9.3">Finally, the third step is to progressively remove support for the version
from all server instances. That step updates the Supported Versions.<a href="#section-2-9.3" class="pilcrow"></a>
from all server instances. That step updates the Acceptable Versions.<a href="#section-2-9.3" class="pilcrow"></a>
</li>
</ul>
<p id="section-2-10">Note that this opens connections to version downgrades (but only for
Expand Down Expand Up @@ -1223,7 +1226,7 @@ <h3 id="name-incompatible-version-negoti">
</h3>
<p id="section-4.2-1">The server starts incompatible version negotiation by sending a Version
Negotiation packet. This packet SHALL include each entry from the server's set
of Negotiated Versions (see <a href="#server-fleet" class="xref">Section 2</a>) in a Supported Version field. The
of Offered Versions (see <a href="#server-fleet" class="xref">Section 2</a>) in a Supported Version field. The
server MAY add reserved versions (as defined in the Versions section of
<span>[<a href="#QUIC" class="xref">QUIC</a>]</span>) in Supported Version fields.<a href="#section-4.2-1" class="pilcrow"></a></p>
<p id="section-4.2-2">Upon receiving the VN packet, the client will search for a version it supports
Expand Down Expand Up @@ -1345,16 +1348,16 @@ <h2 id="name-version-downgrade-preventio">
<p id="section-6-2">Both endpoints MUST parse their peer's Version Information during the
handshake. If the Version Information was missing or if parsing it failed (for
example, if it is too short or if its length is not divisible by four), then
the endpoint MUST close the connection. If the connection was using QUIC
the endpoint MUST close the connection; if the connection was using QUIC
version 1, it MUST be closed with a transport error of type
<code>TRANSPORT_PARAMETER_ERROR</code>.<a href="#section-6-2" class="pilcrow"></a></p>
<p id="section-6-3">If a client has reacted to a Version Negotiation packet, it MUST validate that
the server's <code>Other Versions</code> field does not contain the client's original
version, and that the client would have selected the same negotiated version if
it had received a Version Negotiation packet whose Supported Versions field had
the same contents as the server's <code>Other Versions</code> field. If any of these
validations fail, the client MUST close the connection. If the connection was
using QUIC version 1, it MUST be closed with a transport error of type
checks fail, the client MUST close the connection; if the connection was using
QUIC version 1, it MUST be closed with a transport error of type
<code>VERSION_NEGOTIATION_ERROR</code>. This prevents an attacker from being able to use
forged Version Negotiation packets to force a version downgrade.<a href="#section-6-3" class="pilcrow"></a></p>
<p id="section-6-4">After the process of version negotiation in this document completes, the
Expand Down

0 comments on commit 4af3d5c

Please sign in to comment.