rfc9204v4.txt   rfc9204.txt 
Internet Engineering Task Force (IETF) C. Krasic Internet Engineering Task Force (IETF) C. Krasic
Request for Comments: 9204 Request for Comments: 9204
Category: Standards Track M. Bishop Category: Standards Track M. Bishop
ISSN: 2070-1721 Akamai Technologies ISSN: 2070-1721 Akamai Technologies
A. Frindell, Ed. A. Frindell, Ed.
Facebook Facebook
May 2022 June 2022
QPACK: Field Compression for HTTP/3 QPACK: Field Compression for HTTP/3
Abstract Abstract
This specification defines QPACK: a compression format for This specification defines QPACK: a compression format for
efficiently representing HTTP fields that is to be used in HTTP/3. efficiently representing HTTP fields that is to be used in HTTP/3.
This is a variation of HPACK compression that seeks to reduce head- This is a variation of HPACK compression that seeks to reduce head-
of-line blocking. of-line blocking.
skipping to change at line 277 skipping to change at line 277
this, the encoder can maintain a draining index, which is the this, the encoder can maintain a draining index, which is the
smallest absolute index (Section 3.2.4) in the dynamic table that it smallest absolute index (Section 3.2.4) in the dynamic table that it
will emit a reference for. As new entries are inserted, the encoder will emit a reference for. As new entries are inserted, the encoder
increases the draining index to maintain the section of the table increases the draining index to maintain the section of the table
that it will not reference. If the encoder does not create new that it will not reference. If the encoder does not create new
references to entries with an absolute index lower than the draining references to entries with an absolute index lower than the draining
index, the number of unacknowledged references to those entries will index, the number of unacknowledged references to those entries will
eventually become zero, allowing them to be evicted. eventually become zero, allowing them to be evicted.
<-- Newer Entries Older Entries --> <-- Newer Entries Older Entries -->
(Larger Indicies) (Smaller Indicies) (Larger Indices) (Smaller Indices)
+--------+---------------------------------+----------+ +--------+---------------------------------+----------+
| Unused | Referenceable | Draining | | Unused | Referenceable | Draining |
| Space | Entries | Entries | | Space | Entries | Entries |
+--------+---------------------------------+----------+ +--------+---------------------------------+----------+
^ ^ ^ ^ ^ ^
| | | | | |
Insertion Point Draining Index Dropping Insertion Point Draining Index Dropping
Point Point
Figure 1: Draining Dynamic Table Entries Figure 1: Draining Dynamic Table Entries
skipping to change at line 1532 skipping to change at line 1532
+----------------------------+--------+-------------+---------------+ +----------------------------+--------+-------------+---------------+
Table 3: Additions to the HTTP/3 Error Codes Registry Table 3: Additions to the HTTP/3 Error Codes Registry
9. References 9. References
9.1. Normative References 9.1. Normative References
[HTTP] Fielding, R., Ed., Nottingham, M., Ed., and J. Reschke, [HTTP] Fielding, R., Ed., Nottingham, M., Ed., and J. Reschke,
Ed., "HTTP Semantics", STD 97, RFC 9110, Ed., "HTTP Semantics", STD 97, RFC 9110,
DOI 10.17487/RFC9110, May 2022, DOI 10.17487/RFC9110, June 2022,
<https://www.rfc-editor.org/info/rfc9110>. <https://www.rfc-editor.org/info/rfc9110>.
[HTTP/3] Bishop, M., Ed., "Hypertext Transfer Protocol Version 3 [HTTP/3] Bishop, M., Ed., "HTTP/3", RFC 9114, DOI 10.17487/RFC9114,
(HTTP/3)", RFC 9114, DOI 10.17487/RFC9114, May 2022, June 2022, <https://www.rfc-editor.org/info/rfc9114>.
<https://www.rfc-editor.org/info/rfc9114>.
[QUIC-TRANSPORT] [QUIC-TRANSPORT]
Iyengar, J., Ed. and M. Thomson, Ed., "QUIC: A UDP-Based Iyengar, J., Ed. and M. Thomson, Ed., "QUIC: A UDP-Based
Multiplexed and Secure Transport", RFC 9000, Multiplexed and Secure Transport", RFC 9000,
DOI 10.17487/RFC9000, May 2021, DOI 10.17487/RFC9000, May 2021,
<https://www.rfc-editor.org/info/rfc9000>. <https://www.rfc-editor.org/info/rfc9000>.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
skipping to change at line 1568 skipping to change at line 1567
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/info/rfc8174>. May 2017, <https://www.rfc-editor.org/info/rfc8174>.
9.2. Informative References 9.2. Informative References
[CRIME] Wikipedia, "CRIME", May 2015, <http://en.wikipedia.org/w/ [CRIME] Wikipedia, "CRIME", May 2015, <http://en.wikipedia.org/w/
index.php?title=CRIME&oldid=660948120>. index.php?title=CRIME&oldid=660948120>.
[HTTP/2] Thomson, M., Ed. and C. Benfield, Ed., "HTTP/2", RFC 9113, [HTTP/2] Thomson, M., Ed. and C. Benfield, Ed., "HTTP/2", RFC 9113,
DOI 10.17487/RFC9113, May 2022, DOI 10.17487/RFC9113, June 2022,
<https://www.rfc-editor.org/info/rfc9113>. <https://www.rfc-editor.org/info/rfc9113>.
[PETAL] Tan, J. and J. Nahata, "PETAL: Preset Encoding [PETAL] Tan, J. and J. Nahata, "PETAL: Preset Encoding
Table Information Leakage", April 2013, Table Information Leakage", April 2013,
<http://www.pdl.cmu.edu/PDL-FTP/associated/CMU-PDL- <http://www.pdl.cmu.edu/PDL-FTP/associated/CMU-PDL-
13-106.pdf>. 13-106.pdf>.
[RFC1951] Deutsch, P., "DEFLATE Compressed Data Format Specification [RFC1951] Deutsch, P., "DEFLATE Compressed Data Format Specification
version 1.3", RFC 1951, DOI 10.17487/RFC1951, May 1996, version 1.3", RFC 1951, DOI 10.17487/RFC1951, May 1996,
<https://www.rfc-editor.org/info/rfc1951>. <https://www.rfc-editor.org/info/rfc1951>.
 End of changes. 5 change blocks. 
7 lines changed or deleted 6 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/