diff --git a/draft-ietf-quic-http.html b/draft-ietf-quic-http.html index 5bddb70430..16d3bf70f9 100644 --- a/draft-ietf-quic-http.html +++ b/draft-ietf-quic-http.html @@ -929,398 +929,398 @@
1. Introduction¶
1.1. Prior versions of HTTP¶
1.2. Delegation to QUIC¶
2. HTTP/3 Protocol Overview¶
2.1. Document Organization¶
2.2. Conventions and Terminology¶
3. Connection Setup and Management¶
3.1. Discovering an HTTP/3 Endpoint¶
3.1.1. HTTP Alternative Services¶
3.1.2. Other Schemes¶
3.2. Connection Establishment¶
3.3. Connection Reuse¶
4. HTTP Request Lifecycle¶
4.1. HTTP Message Exchanges¶
4.1.1. Field Formatting and Compression¶
4.1.2. Request Cancellation and Rejection¶
4.1.3. Malformed Requests and Responses¶
4.2. The CONNECT Method¶
4.3. HTTP Upgrade¶
4.4. Server Push¶
5. Connection Closure¶
5.1. Idle Connections¶
5.2. Connection Shutdown¶
5.3. Immediate Application Closure¶
5.4. Transport Closure¶
6. Stream Mapping and Usage¶
6.1. Bidirectional Streams¶
6.2. Unidirectional Streams¶
6.2.1. Control Streams¶
6.2.2. Push Streams¶
6.2.3. Reserved Stream Types¶
7. HTTP Framing Layer¶
7.1. Frame Layout¶
7.2. Frame Definitions¶
7.2.1. DATA¶
7.2.2. HEADERS¶
7.2.3. CANCEL_PUSH¶
7.2.4. SETTINGS¶
7.2.5. PUSH_PROMISE¶
7.2.6. GOAWAY¶
7.2.7. MAX_PUSH_ID¶
7.2.8. Reserved Frame Types¶
8. Error Handling¶
8.1. HTTP/3 Error Codes¶
9. Extensions to HTTP/3¶
10. Security Considerations¶
10.1. Server Authority¶
10.2. Cross-Protocol Attacks¶
10.3. Intermediary Encapsulation Attacks¶
10.4. Cacheability of Pushed Responses¶
10.5. Denial-of-Service Considerations¶
10.5.1. Limits on Field Section Size¶
10.5.2. CONNECT Issues¶
10.6. Use of Compression¶
10.7. Padding and Traffic Analysis¶
10.8. Frame Parsing¶
10.9. Early Data¶
10.10. Migration¶
10.11. Privacy Considerations¶
11. IANA Considerations¶
11.1. Registration of HTTP/3 Identification String¶
11.2. New Registries¶
11.2.1. Frame Types¶
11.2.2. Settings Parameters¶
11.2.3. Error Codes¶
11.2.4. Stream Types¶
12. References¶
12.1. Normative References¶
12.2. Informative References¶
Appendix A. Considerations for Transitioning from HTTP/2¶
A.1. Streams¶
A.2. HTTP Frame Types¶
A.2.1. Prioritization Differences¶
A.2.2. Field Compression Differences¶
A.2.3. Flow Control Differences¶
A.2.4. Guidance for New Frame Type Definitions¶
A.2.5. Mapping Between HTTP/2 and HTTP/3 Frame Types¶
A.3. HTTP/2 SETTINGS Parameters¶
A.4. HTTP/2 Error Codes¶
A.4.1. Mapping Between HTTP/2 and HTTP/3 Errors¶
Appendix B. Change Log¶
B.1. Since draft-ietf-quic-http-32¶
B.2. Since draft-ietf-quic-http-31¶
B.3. Since draft-ietf-quic-http-30¶
B.4. Since draft-ietf-quic-http-29¶
B.5. Since draft-ietf-quic-http-28¶
B.6. Since draft-ietf-quic-http-27¶
B.7. Since draft-ietf-quic-http-26¶
B.8. Since draft-ietf-quic-http-25¶
B.9. Since draft-ietf-quic-http-24¶
B.10. Since draft-ietf-quic-http-23¶
B.11. Since draft-ietf-quic-http-22¶
B.12. Since draft-ietf-quic-http-21¶
B.13. Since draft-ietf-quic-http-20¶
B.14. Since draft-ietf-quic-http-19¶
B.15. Since draft-ietf-quic-http-18¶
B.16. Since draft-ietf-quic-http-17¶
B.17. Since draft-ietf-quic-http-16¶
B.18. Since draft-ietf-quic-http-15¶
B.19. Since draft-ietf-quic-http-14¶
B.20. Since draft-ietf-quic-http-13¶
B.21. Since draft-ietf-quic-http-12¶
B.22. Since draft-ietf-quic-http-11¶
B.23. Since draft-ietf-quic-http-10¶
B.24. Since draft-ietf-quic-http-09¶
B.25. Since draft-ietf-quic-http-08¶
B.26. Since draft-ietf-quic-http-07¶
B.27. Since draft-ietf-quic-http-06¶
B.28. Since draft-ietf-quic-http-05¶
B.29. Since draft-ietf-quic-http-04¶
B.30. Since draft-ietf-quic-http-03¶
B.31. Since draft-ietf-quic-http-02¶
B.32. Since draft-ietf-quic-http-01¶
B.33. Since draft-ietf-quic-http-00¶
B.34. Since draft-shade-quic-http2-mapping-00¶
Acknowledgments¶
Author's Address¶
1. An Extremely Abstract Description of QUIC¶
2. Fixed Properties of All QUIC Versions¶
3. Conventions and Definitions¶
4. Notational Conventions¶
5. QUIC Packets¶
5.1. Long Header¶
5.2. Short Header¶
5.3. Connection ID¶
5.4. Version¶
6. Version Negotiation¶
7. Security and Privacy Considerations¶
8. IANA Considerations¶
9. References¶
9.1. Normative References¶
9.2. Informative References¶
Appendix A. Incorrect Assumptions¶
Packet diagrams in this document use a format defined in [QUIC-TRANSPORT] to -illustrate the order and size of fields.¶
The format of packets is described using the notation defined in this section. +This notation is the same as that used in [QUIC-TRANSPORT].¶
Complex fields are named and then followed by a list of fields surrounded by a pair of matching braces. Each field in this list is separated by commas.¶
Individual fields include length information, plus indications about fixed diff --git a/draft-ietf-quic-invariants.txt b/draft-ietf-quic-invariants.txt index 40df371491..b4adb52a13 100644 --- a/draft-ietf-quic-invariants.txt +++ b/draft-ietf-quic-invariants.txt @@ -126,8 +126,8 @@ Table of Contents 4. Notational Conventions - Packet diagrams in this document use a format defined in - [QUIC-TRANSPORT] to illustrate the order and size of fields. + The format of packets is described using the notation defined in this + section. This notation is the same as that used in [QUIC-TRANSPORT]. Complex fields are named and then followed by a list of fields surrounded by a pair of matching braces. Each field in this list is diff --git a/draft-ietf-quic-qpack.html b/draft-ietf-quic-qpack.html index eea6e190c7..0da41f87ce 100644 --- a/draft-ietf-quic-qpack.html +++ b/draft-ietf-quic-qpack.html @@ -928,312 +928,312 @@
1.1. Conventions and Definitions¶
1.2. Notational Conventions¶
2. Compression Process Overview¶
2.1. Encoder¶
2.1.1. Limits on Dynamic Table Insertions¶
2.1.2. Blocked Streams¶
2.1.3. Avoiding Flow Control Deadlocks¶
2.1.4. Known Received Count¶
2.2. Decoder¶
2.2.1. Blocked Decoding¶
2.2.2. State Synchronization¶
2.2.3. Invalid References¶
3. Reference Tables¶
3.1. Static Table¶
3.2. Dynamic Table¶
3.2.1. Dynamic Table Size¶
3.2.2. Dynamic Table Capacity and Eviction¶
3.2.3. Maximum Dynamic Table Capacity¶
3.2.4. Absolute Indexing¶
3.2.5. Relative Indexing¶
3.2.6. Post-Base Indexing¶
4. Wire Format¶
4.1. Primitives¶
4.1.1. Prefixed Integers¶
4.1.2. String Literals¶
4.2. Encoder and Decoder Streams¶
4.3. Encoder Instructions¶
4.3.1. Set Dynamic Table Capacity¶
4.3.2. Insert With Name Reference¶
4.3.3. Insert With Literal Name¶
4.3.4. Duplicate¶
4.4. Decoder Instructions¶
4.4.1. Section Acknowledgment¶
4.4.2. Stream Cancellation¶
4.4.3. Insert Count Increment¶
4.5. Field Line Representations¶
4.5.1. Encoded Field Section Prefix¶
4.5.2. Indexed Field Line¶
4.5.3. Indexed Field Line With Post-Base Index¶
4.5.4. Literal Field Line With Name Reference¶
4.5.5. Literal Field Line With Post-Base Name Reference¶
4.5.6. Literal Field Line With Literal Name¶
5. Configuration¶
6. Error Handling¶
7. Security Considerations¶
7.1. Probing Dynamic Table State¶
7.1.1. Applicability to QPACK and HTTP¶
7.1.2. Mitigation¶
7.1.3. Never-Indexed Literals¶
7.2. Static Huffman Encoding¶
7.3. Memory Consumption¶
7.4. Implementation Limits¶
8.1. Settings Registration¶
8.2. Stream Type Registration¶
8.3. Error Code Registration¶
Appendix A. Static Table¶
Appendix B. Encoding and Decoding Examples¶
B.1. Literal Field Line With Name Reference¶
B.2. Dynamic Table¶
B.3. Speculative Insert¶
B.4. Duplicate Instruction, Stream Cancellation¶
B.5. Dynamic Table Insert, Eviction¶
Appendix C. Sample One Pass Encoding Algorithm¶
Appendix D. Change Log¶
D.1. Since draft-ietf-quic-qpack-19¶
D.2. Since draft-ietf-quic-qpack-18¶
D.3. Since draft-ietf-quic-qpack-17¶
D.4. Since draft-ietf-quic-qpack-16¶
D.5. Since draft-ietf-quic-qpack-15¶
D.6. Since draft-ietf-quic-qpack-14¶
D.7. Since draft-ietf-quic-qpack-13¶
D.8. Since draft-ietf-quic-qpack-12¶
D.9. Since draft-ietf-quic-qpack-11¶
D.10. Since draft-ietf-quic-qpack-10¶
D.11. Since draft-ietf-quic-qpack-09¶
D.12. Since draft-ietf-quic-qpack-08¶
D.13. Since draft-ietf-quic-qpack-06¶
D.14. Since draft-ietf-quic-qpack-05¶
D.15. Since draft-ietf-quic-qpack-04¶
D.16. Since draft-ietf-quic-qpack-03¶
D.17. Since draft-ietf-quic-qpack-02¶
D.18. Since draft-ietf-quic-qpack-01¶
D.19. Since draft-ietf-quic-qpack-00¶
D.20. Since draft-ietf-quic-qcram-00¶
Authors' Addresses¶
2. Conventions and Definitions¶
3. Design of the QUIC Transmission Machinery¶
4. Relevant Differences Between QUIC and TCP¶
4.1. Separate Packet Number Spaces¶
4.2. Monotonically Increasing Packet Numbers¶
4.3. Clearer Loss Epoch¶
4.4. No Reneging¶
4.5. More ACK Ranges¶
4.6. Explicit Correction For Delayed Acknowledgments¶
4.7. Probe Timeout Replaces RTO and TLP¶
4.8. The Minimum Congestion Window is Two Packets¶
5. Estimating the Round-Trip Time¶
5.1. Generating RTT samples¶
5.2. Estimating min_rtt¶
5.3. Estimating smoothed_rtt and rttvar¶
6. Loss Detection¶
6.1. Acknowledgment-Based Detection¶
6.1.1. Packet Threshold¶
6.1.2. Time Threshold¶
6.2. Probe Timeout¶
6.2.1. Computing PTO¶
6.2.2. Handshakes and New Paths¶
6.2.3. Speeding Up Handshake Completion¶
6.2.4. Sending Probe Packets¶
6.3. Handling Retry Packets¶
6.4. Discarding Keys and Packet State¶
7. Congestion Control¶
7.1. Explicit Congestion Notification¶
7.2. Initial and Minimum Congestion Window¶
7.3. Congestion Control States¶
7.3.1. Slow Start¶
7.3.2. Recovery¶
7.3.3. Congestion Avoidance¶
7.4. Ignoring Loss of Undecryptable Packets¶
7.5. Probe Timeout¶
7.6. Persistent Congestion¶
7.6.1. Duration¶
7.6.2. Establishing Persistent Congestion¶
7.6.3. Example¶
7.7. Pacing¶
7.8. Under-utilizing the Congestion Window¶
8. Security Considerations¶
8.1. Congestion Signals¶
8.2. Traffic Analysis¶
8.3. Misreporting ECN Markings¶
9. IANA Considerations¶
10. References¶
10.1. Normative References¶
10.2. Informative References¶
Appendix A. Loss Recovery Pseudocode¶
A.1. Tracking Sent Packets¶
A.1.1. Sent Packet Fields¶
A.2. Constants of Interest¶
A.3. Variables of interest¶
A.4. Initialization¶
A.5. On Sending a Packet¶
A.6. On Receiving a Datagram¶
A.7. On Receiving an Acknowledgment¶
A.8. Setting the Loss Detection Timer¶
A.9. On Timeout¶
A.10. Detecting Lost Packets¶
A.11. Upon Dropping Initial or Handshake Keys¶
Appendix B. Congestion Control Pseudocode¶
B.1. Constants of interest¶
B.2. Variables of interest¶
B.3. Initialization¶
B.4. On Packet Sent¶
B.5. On Packet Acknowledgment¶
B.6. On New Congestion Event¶
B.7. Process ECN Information¶
B.8. On Packets Lost¶
B.9. Removing Discarded Packets From Bytes In Flight¶
Appendix C. Change Log¶
C.1. Since draft-ietf-quic-recovery-32¶
C.2. Since draft-ietf-quic-recovery-31¶
C.3. Since draft-ietf-quic-recovery-30¶
C.4. Since draft-ietf-quic-recovery-29¶
C.5. Since draft-ietf-quic-recovery-28¶
C.6. Since draft-ietf-quic-recovery-27¶
C.7. Since draft-ietf-quic-recovery-26¶
C.8. Since draft-ietf-quic-recovery-25¶
C.9. Since draft-ietf-quic-recovery-24¶
C.10. Since draft-ietf-quic-recovery-23¶
C.11. Since draft-ietf-quic-recovery-22¶
C.12. Since draft-ietf-quic-recovery-21¶
C.13. Since draft-ietf-quic-recovery-20¶
C.14. Since draft-ietf-quic-recovery-19¶
C.15. Since draft-ietf-quic-recovery-18¶
C.16. Since draft-ietf-quic-recovery-17¶
C.17. Since draft-ietf-quic-recovery-16¶
C.18. Since draft-ietf-quic-recovery-14¶
C.19. Since draft-ietf-quic-recovery-13¶
C.20. Since draft-ietf-quic-recovery-12¶
C.21. Since draft-ietf-quic-recovery-11¶
C.22. Since draft-ietf-quic-recovery-10¶
C.23. Since draft-ietf-quic-recovery-09¶
C.24. Since draft-ietf-quic-recovery-08¶
C.25. Since draft-ietf-quic-recovery-07¶
C.26. Since draft-ietf-quic-recovery-06¶
C.27. Since draft-ietf-quic-recovery-05¶
C.28. Since draft-ietf-quic-recovery-04¶
C.29. Since draft-ietf-quic-recovery-03¶
C.30. Since draft-ietf-quic-recovery-02¶
C.31. Since draft-ietf-quic-recovery-01¶
C.32. Since draft-ietf-quic-recovery-00¶
C.33. Since draft-iyengar-quic-loss-recovery-01¶
Appendix D. Contributors¶
2. Notational Conventions¶
2.1. TLS Overview¶
3. Protocol Overview¶
4. Carrying TLS Messages¶
4.1. Interface to TLS¶
4.1.1. Handshake Complete¶
4.1.2. Handshake Confirmed¶
4.1.3. Sending and Receiving Handshake Messages¶
4.1.4. Encryption Level Changes¶
4.1.5. TLS Interface Summary¶
4.2. TLS Version¶
4.3. ClientHello Size¶
4.4. Peer Authentication¶
4.5. Session Resumption¶
4.6. 0-RTT¶
4.6.1. Enabling 0-RTT¶
4.6.2. Accepting and Rejecting 0-RTT¶
4.6.3. Validating 0-RTT Configuration¶
4.7. HelloRetryRequest¶
4.8. TLS Errors¶
4.9. Discarding Unused Keys¶
4.9.1. Discarding Initial Keys¶
4.9.2. Discarding Handshake Keys¶
4.9.3. Discarding 0-RTT Keys¶
5. Packet Protection¶
5.1. Packet Protection Keys¶
5.2. Initial Secrets¶
5.3. AEAD Usage¶
5.4. Header Protection¶
5.4.1. Header Protection Application¶
5.4.2. Header Protection Sample¶
5.4.3. AES-Based Header Protection¶
5.4.4. ChaCha20-Based Header Protection¶
5.5. Receiving Protected Packets¶
5.6. Use of 0-RTT Keys¶
5.7. Receiving Out-of-Order Protected Packets¶
5.8. Retry Packet Integrity¶
6. Key Update¶
6.1. Initiating a Key Update¶
6.2. Responding to a Key Update¶
6.3. Timing of Receive Key Generation¶
6.4. Sending with Updated Keys¶
6.5. Receiving with Different Keys¶
6.6. Limits on AEAD Usage¶
6.7. Key Update Error Code¶
7. Security of Initial Messages¶
8. QUIC-Specific Adjustments to the TLS Handshake¶
8.1. Protocol Negotiation¶
8.2. QUIC Transport Parameters Extension¶
8.3. Removing the EndOfEarlyData Message¶
8.4. Prohibit TLS Middlebox Compatibility Mode¶
9. Security Considerations¶
9.1. Session Linkability¶
9.2. Replay Attacks with 0-RTT¶
9.3. Packet Reflection Attack Mitigation¶
9.4. Header Protection Analysis¶
9.5. Header Protection Timing Side-Channels¶
9.6. Key Diversity¶
9.7. Randomness¶
10. IANA Considerations¶
11. References¶
11.1. Normative References¶
11.2. Informative References¶
Appendix A. Sample Packet Protection¶
A.1. Keys¶
A.2. Client Initial¶
A.3. Server Initial¶
A.4. Retry¶
A.5. ChaCha20-Poly1305 Short Header Packet¶
Appendix B. AEAD Algorithm Analysis¶
B.1. Analysis of AEAD_AES_128_GCM and AEAD_AES_256_GCM Usage Limits¶
B.1.1. Confidentiality Limit¶
B.1.2. Integrity Limit¶
B.2. Analysis of AEAD_AES_128_CCM Usage Limits¶
C.1. Since draft-ietf-quic-tls-32¶
C.2. Since draft-ietf-quic-tls-31¶
C.3. Since draft-ietf-quic-tls-30¶
C.4. Since draft-ietf-quic-tls-29¶
C.5. Since draft-ietf-quic-tls-28¶
C.6. Since draft-ietf-quic-tls-27¶
C.7. Since draft-ietf-quic-tls-26¶
C.8. Since draft-ietf-quic-tls-25¶
C.9. Since draft-ietf-quic-tls-24¶
C.10. Since draft-ietf-quic-tls-23¶
C.11. Since draft-ietf-quic-tls-22¶
C.12. Since draft-ietf-quic-tls-21¶
C.13. Since draft-ietf-quic-tls-20¶
C.14. Since draft-ietf-quic-tls-18¶
C.15. Since draft-ietf-quic-tls-17¶
C.16. Since draft-ietf-quic-tls-14¶
C.17. Since draft-ietf-quic-tls-13¶
C.18. Since draft-ietf-quic-tls-12¶
C.19. Since draft-ietf-quic-tls-11¶
C.20. Since draft-ietf-quic-tls-10¶
C.21. Since draft-ietf-quic-tls-09¶
C.22. Since draft-ietf-quic-tls-08¶
C.23. Since draft-ietf-quic-tls-07¶
C.24. Since draft-ietf-quic-tls-05¶
C.25. Since draft-ietf-quic-tls-04¶
C.26. Since draft-ietf-quic-tls-03¶
C.27. Since draft-ietf-quic-tls-02¶
C.28. Since draft-ietf-quic-tls-01¶
C.29. Since draft-ietf-quic-tls-00¶
C.30. Since draft-thomson-quic-tls-01¶
Contributors¶