Skip to content

Commit

Permalink
Script updating gh-pages from 963546a. [ci skip]
Browse files Browse the repository at this point in the history
  • Loading branch information
ID Bot committed May 4, 2019
1 parent 7f941fa commit 342ce57
Show file tree
Hide file tree
Showing 3 changed files with 1,645 additions and 1,638 deletions.
31 changes: 19 additions & 12 deletions ianswett-recovery-editorial/draft-ietf-quic-recovery.html
Expand Up @@ -288,9 +288,10 @@
<link href="#rfc.section.3.1" rel="Chapter" title="3.1 Relevant Differences Between QUIC and TCP">
<link href="#rfc.section.3.1.1" rel="Chapter" title="3.1.1 Separate Packet Number Spaces">
<link href="#rfc.section.3.1.2" rel="Chapter" title="3.1.2 Monotonically Increasing Packet Numbers">
<link href="#rfc.section.3.1.3" rel="Chapter" title="3.1.3 No Reneging">
<link href="#rfc.section.3.1.4" rel="Chapter" title="3.1.4 More ACK Ranges">
<link href="#rfc.section.3.1.5" rel="Chapter" title="3.1.5 Explicit Correction For Delayed Acknowledgements">
<link href="#rfc.section.3.1.3" rel="Chapter" title="3.1.3 Clearer end to a loss epoch">
<link href="#rfc.section.3.1.4" rel="Chapter" title="3.1.4 No Reneging">
<link href="#rfc.section.3.1.5" rel="Chapter" title="3.1.5 More ACK Ranges">
<link href="#rfc.section.3.1.6" rel="Chapter" title="3.1.6 Explicit Correction For Delayed Acknowledgements">
<link href="#rfc.section.4" rel="Chapter" title="4 Generating Acknowledgements">
<link href="#rfc.section.4.1" rel="Chapter" title="4.1 Crypto Handshake Data">
<link href="#rfc.section.4.2" rel="Chapter" title="4.2 ACK Ranges">
Expand Down Expand Up @@ -451,11 +452,13 @@ <h1 class="np" id="rfc.toc"><a href="#rfc.toc">Table of Contents</a></h1>
</li>
<li>3.1.2. <a href="#rfc.section.3.1.2">Monotonically Increasing Packet Numbers</a>
</li>
<li>3.1.3. <a href="#rfc.section.3.1.3">No Reneging</a>
<li>3.1.3. <a href="#rfc.section.3.1.3">Clearer end to a loss epoch</a>
</li>
<li>3.1.4. <a href="#rfc.section.3.1.4">More ACK Ranges</a>
<li>3.1.4. <a href="#rfc.section.3.1.4">No Reneging</a>
</li>
<li>3.1.5. <a href="#rfc.section.3.1.5">Explicit Correction For Delayed Acknowledgements</a>
<li>3.1.5. <a href="#rfc.section.3.1.5">More ACK Ranges</a>
</li>
<li>3.1.6. <a href="#rfc.section.3.1.6">Explicit Correction For Delayed Acknowledgements</a>
</li>
</ul></ul><li>4. <a href="#rfc.section.4">Generating Acknowledgements</a>
</li>
Expand Down Expand Up @@ -682,17 +685,21 @@ <h3 id="rfc.section.3.1.2">
<p id="rfc.section.3.1.2.p.2">QUIC&#8217;s packet number is strictly increasing within a packet number space, and directly encodes transmission order. A higher packet number signifies that the packet was sent later, and a lower packet number signifies that the packet was sent earlier. When a packet containing ack-eliciting frames is detected lost, QUIC rebundles necessary frames in a new packet with a new packet number, removing ambiguity about which packet is acknowledged when an ACK is received. Consequently, more accurate RTT measurements can be made, spurious retransmissions are trivially detected, and mechanisms such as Fast Retransmit can be applied universally, based only on packet number.</p>
<p id="rfc.section.3.1.2.p.3">This design point significantly simplifies loss detection mechanisms for QUIC. Most TCP mechanisms implicitly attempt to infer transmission ordering based on TCP sequence numbers - a non-trivial task, especially when TCP timestamps are not available.</p>
<h3 id="rfc.section.3.1.3">
<a href="#rfc.section.3.1.3">3.1.3.</a> <a href="#no-reneging" id="no-reneging">No Reneging</a>
<a href="#rfc.section.3.1.3">3.1.3.</a> <a href="#clearer-end-to-a-loss-epoch" id="clearer-end-to-a-loss-epoch">Clearer end to a loss epoch</a>
</h3>
<p id="rfc.section.3.1.3.p.1">QUIC ACKs contain information that is similar to TCP SACK, but QUIC does not allow any acked packet to be reneged, greatly simplifying implementations on both sides and reducing memory pressure on the sender.</p>
<p id="rfc.section.3.1.3.p.1">QUIC may reduce cwnd several times on successive losses whereas TCP will keep cwnd constant until (longer) recovery exit or an RTO occurs, because QUIC uses packet numbers to determine when a loss epoch has ended and TCP uses packet sequence numbers.</p>
<h3 id="rfc.section.3.1.4">
<a href="#rfc.section.3.1.4">3.1.4.</a> <a href="#more-ack-ranges" id="more-ack-ranges">More ACK Ranges</a>
<a href="#rfc.section.3.1.4">3.1.4.</a> <a href="#no-reneging" id="no-reneging">No Reneging</a>
</h3>
<p id="rfc.section.3.1.4.p.1">QUIC supports many ACK ranges, opposed to TCP&#8217;s 3 SACK ranges. In high loss environments, this speeds recovery, reduces spurious retransmits, and ensures forward progress without relying on timeouts.</p>
<p id="rfc.section.3.1.4.p.1">QUIC ACKs contain information that is similar to TCP SACK, but QUIC does not allow any acked packet to be reneged, greatly simplifying implementations on both sides and reducing memory pressure on the sender.</p>
<h3 id="rfc.section.3.1.5">
<a href="#rfc.section.3.1.5">3.1.5.</a> <a href="#explicit-correction-for-delayed-acknowledgements" id="explicit-correction-for-delayed-acknowledgements">Explicit Correction For Delayed Acknowledgements</a>
<a href="#rfc.section.3.1.5">3.1.5.</a> <a href="#more-ack-ranges" id="more-ack-ranges">More ACK Ranges</a>
</h3>
<p id="rfc.section.3.1.5.p.1">QUIC supports many ACK ranges, opposed to TCP&#8217;s 3 SACK ranges. In high loss environments, this speeds recovery, reduces spurious retransmits, and ensures forward progress without relying on timeouts.</p>
<h3 id="rfc.section.3.1.6">
<a href="#rfc.section.3.1.6">3.1.6.</a> <a href="#explicit-correction-for-delayed-acknowledgements" id="explicit-correction-for-delayed-acknowledgements">Explicit Correction For Delayed Acknowledgements</a>
</h3>
<p id="rfc.section.3.1.5.p.1">QUIC endpoints measure the delay incurred between when a packet is received and when the corresponding acknowledgment is sent, allowing a peer to maintain a more accurate round-trip time estimate (see <a href="#host-delay" class="xref">Section 4.4</a>).</p>
<p id="rfc.section.3.1.6.p.1">QUIC endpoints measure the delay incurred between when a packet is received and when the corresponding acknowledgment is sent, allowing a peer to maintain a more accurate round-trip time estimate (see <a href="#host-delay" class="xref">Section 4.4</a>).</p>
<h1 id="rfc.section.4">
<a href="#rfc.section.4">4.</a> <a href="#generating-acks" id="generating-acks">Generating Acknowledgements</a>
</h1>
Expand Down

0 comments on commit 342ce57

Please sign in to comment.