draft-ietf-quic-qpack-18.txt   draft-ietf-quic-qpack-19.txt 
QUIC C. Krasic QUIC C. Krasic
Internet-Draft Netflix Internet-Draft Netflix
Intended status: Standards Track M. Bishop Intended status: Standards Track M. Bishop
Expires: 29 March 2021 Akamai Technologies Expires: 23 April 2021 Akamai Technologies
A. Frindell, Ed. A. Frindell, Ed.
Facebook Facebook
25 September 2020 20 October 2020
QPACK: Header Compression for HTTP/3 QPACK: Header Compression for HTTP/3
draft-ietf-quic-qpack-18 draft-ietf-quic-qpack-19
Abstract Abstract
This specification defines QPACK, a compression format for This specification defines QPACK, a compression format for
efficiently representing HTTP fields, to be used in HTTP/3. This is efficiently representing HTTP fields, to be used in HTTP/3. This is
a variation of HPACK compression that seeks to reduce head-of-line a variation of HPACK compression that seeks to reduce head-of-line
blocking. blocking.
Note to Readers Note to Readers
skipping to change at page 1, line 47 skipping to change at page 1, line 47
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/. Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on 29 March 2021. This Internet-Draft will expire on 23 April 2021.
Copyright Notice Copyright Notice
Copyright (c) 2020 IETF Trust and the persons identified as the Copyright (c) 2020 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents (https://trustee.ietf.org/ Provisions Relating to IETF Documents (https://trustee.ietf.org/
license-info) in effect on the date of publication of this document. license-info) in effect on the date of publication of this document.
Please review these documents carefully, as they describe your rights Please review these documents carefully, as they describe your rights
skipping to change at page 3, line 42 skipping to change at page 3, line 42
9.2. Informative References . . . . . . . . . . . . . . . . . 34 9.2. Informative References . . . . . . . . . . . . . . . . . 34
Appendix A. Static Table . . . . . . . . . . . . . . . . . . . . 34 Appendix A. Static Table . . . . . . . . . . . . . . . . . . . . 34
Appendix B. Encoding and Decoding Examples . . . . . . . . . . . 39 Appendix B. Encoding and Decoding Examples . . . . . . . . . . . 39
B.1. Literal Field Line With Name Reference . . . . . . . . . 39 B.1. Literal Field Line With Name Reference . . . . . . . . . 39
B.2. Dynamic Table . . . . . . . . . . . . . . . . . . . . . . 40 B.2. Dynamic Table . . . . . . . . . . . . . . . . . . . . . . 40
B.3. Speculative Insert . . . . . . . . . . . . . . . . . . . 41 B.3. Speculative Insert . . . . . . . . . . . . . . . . . . . 41
B.4. Duplicate Instruction, Stream Cancellation . . . . . . . 42 B.4. Duplicate Instruction, Stream Cancellation . . . . . . . 42
B.5. Dynamic Table Insert, Eviction . . . . . . . . . . . . . 43 B.5. Dynamic Table Insert, Eviction . . . . . . . . . . . . . 43
Appendix C. Sample One Pass Encoding Algorithm . . . . . . . . . 44 Appendix C. Sample One Pass Encoding Algorithm . . . . . . . . . 44
Appendix D. Change Log . . . . . . . . . . . . . . . . . . . . . 45 Appendix D. Change Log . . . . . . . . . . . . . . . . . . . . . 45
D.1. Since draft-ietf-quic-qpack-17 . . . . . . . . . . . . . 45 D.1. Since draft-ietf-quic-qpack-18 . . . . . . . . . . . . . 45
D.2. Since draft-ietf-quic-qpack-16 . . . . . . . . . . . . . 45 D.2. Since draft-ietf-quic-qpack-17 . . . . . . . . . . . . . 45
D.3. Since draft-ietf-quic-qpack-15 . . . . . . . . . . . . . 45 D.3. Since draft-ietf-quic-qpack-16 . . . . . . . . . . . . . 45
D.4. Since draft-ietf-quic-qpack-14 . . . . . . . . . . . . . 45 D.4. Since draft-ietf-quic-qpack-15 . . . . . . . . . . . . . 45
D.5. Since draft-ietf-quic-qpack-13 . . . . . . . . . . . . . 46 D.5. Since draft-ietf-quic-qpack-14 . . . . . . . . . . . . . 46
D.6. Since draft-ietf-quic-qpack-12 . . . . . . . . . . . . . 46 D.6. Since draft-ietf-quic-qpack-13 . . . . . . . . . . . . . 46
D.7. Since draft-ietf-quic-qpack-11 . . . . . . . . . . . . . 46 D.7. Since draft-ietf-quic-qpack-12 . . . . . . . . . . . . . 46
D.8. Since draft-ietf-quic-qpack-10 . . . . . . . . . . . . . 46 D.8. Since draft-ietf-quic-qpack-11 . . . . . . . . . . . . . 46
D.9. Since draft-ietf-quic-qpack-09 . . . . . . . . . . . . . 46 D.9. Since draft-ietf-quic-qpack-10 . . . . . . . . . . . . . 46
D.10. Since draft-ietf-quic-qpack-08 . . . . . . . . . . . . . 46 D.10. Since draft-ietf-quic-qpack-09 . . . . . . . . . . . . . 46
D.11. Since draft-ietf-quic-qpack-06 . . . . . . . . . . . . . 46 D.11. Since draft-ietf-quic-qpack-08 . . . . . . . . . . . . . 46
D.12. Since draft-ietf-quic-qpack-05 . . . . . . . . . . . . . 46 D.12. Since draft-ietf-quic-qpack-06 . . . . . . . . . . . . . 46
D.13. Since draft-ietf-quic-qpack-04 . . . . . . . . . . . . . 46 D.13. Since draft-ietf-quic-qpack-05 . . . . . . . . . . . . . 46
D.14. Since draft-ietf-quic-qpack-03 . . . . . . . . . . . . . 47 D.14. Since draft-ietf-quic-qpack-04 . . . . . . . . . . . . . 47
D.15. Since draft-ietf-quic-qpack-02 . . . . . . . . . . . . . 47 D.15. Since draft-ietf-quic-qpack-03 . . . . . . . . . . . . . 47
D.16. Since draft-ietf-quic-qpack-01 . . . . . . . . . . . . . 47 D.16. Since draft-ietf-quic-qpack-02 . . . . . . . . . . . . . 47
D.17. Since draft-ietf-quic-qpack-00 . . . . . . . . . . . . . 47 D.17. Since draft-ietf-quic-qpack-01 . . . . . . . . . . . . . 47
D.18. Since draft-ietf-quic-qcram-00 . . . . . . . . . . . . . 48 D.18. Since draft-ietf-quic-qpack-00 . . . . . . . . . . . . . 47
D.19. Since draft-ietf-quic-qcram-00 . . . . . . . . . . . . . 48
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 48 Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 48
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 49 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 49
1. Introduction 1. Introduction
The QUIC transport protocol ([QUIC-TRANSPORT]) is designed to support The QUIC transport protocol ([QUIC-TRANSPORT]) is designed to support
HTTP semantics, and its design subsumes many of the features of HTTP semantics, and its design subsumes many of the features of
HTTP/2 ([RFC7540]). HTTP/2 uses HPACK ([RFC7541]) for compression of HTTP/2 ([RFC7540]). HTTP/2 uses HPACK ([RFC7541]) for compression of
the header and trailer sections. If HPACK were used for HTTP/3 the header and trailer sections. If HPACK were used for HTTP/3
([HTTP3]), it would induce head-of-line blocking for field sections ([HTTP3]), it would induce head-of-line blocking for field sections
skipping to change at page 4, line 48 skipping to change at page 4, line 49
capitals, as shown here. capitals, as shown here.
Definitions of terms that are used in this document: Definitions of terms that are used in this document:
HTTP fields: Metadata sent as part of an HTTP message. The term HTTP fields: Metadata sent as part of an HTTP message. The term
encompasses both header and trailer fields. Colloquially, the encompasses both header and trailer fields. Colloquially, the
term "headers" has often been used to refer to HTTP header fields term "headers" has often been used to refer to HTTP header fields
and trailer fields; this document uses "fields" for generality. and trailer fields; this document uses "fields" for generality.
HTTP field line: A name-value pair sent as part of an HTTP field HTTP field line: A name-value pair sent as part of an HTTP field
section. See Section 5 of [SEMANTICS]. section. See Section 5.4 and Section 5.6 of [SEMANTICS].
HTTP field value: Data associated with a field name, composed from HTTP field value: Data associated with a field name, composed from
all field line values with that field name in that section, all field line values with that field name in that section,
concatenated together and separated with commas. concatenated together and separated with commas.
Field section: An ordered collection of HTTP field lines associated Field section: An ordered collection of HTTP field lines associated
with an HTTP message. A field section can contain multiple field with an HTTP message. A field section can contain multiple field
lines with the same name. It can also contain duplicate field lines with the same name. It can also contain duplicate field
lines. An HTTP message can include both header field and trailer lines. An HTTP message can include both header field and trailer
field sections. field sections.
skipping to change at page 16, line 10 skipping to change at page 16, line 10
4.1.2. String Literals 4.1.2. String Literals
The string literal defined by Section 5.2 of [RFC7541] is also used The string literal defined by Section 5.2 of [RFC7541] is also used
throughout. This string format includes optional Huffman encoding. throughout. This string format includes optional Huffman encoding.
HPACK defines string literals to begin on a byte boundary. They HPACK defines string literals to begin on a byte boundary. They
begin with a single bit flag, denoted as 'H' in this document begin with a single bit flag, denoted as 'H' in this document
(indicating whether the string is Huffman-coded), followed by the (indicating whether the string is Huffman-coded), followed by the
Length encoded as a 7-bit prefix integer, and finally Length bytes of Length encoded as a 7-bit prefix integer, and finally Length bytes of
data. When Huffman encoding is enabled, the Huffman table from data. When Huffman encoding is enabled, the Huffman table from
Appendix B of [RFC7541] is used without modification. Appendix B of [RFC7541] is used without modification and Length
indicates the size of the string after encoding.
This document expands the definition of string literals by permitting This document expands the definition of string literals by permitting
them to begin other than on a byte boundary. An "N-bit prefix string them to begin other than on a byte boundary. An "N-bit prefix string
literal" begins with the same Huffman flag, followed by the length literal" begins mid-byte, with the first (8-N) bits allocated to a
encoded as an (N-1)-bit prefix integer. The prefix size, N, can have previous field. The string uses one bit for the Huffman flag,
a value between 2 and 8 inclusive. The remainder of the string followed by the Length encoded as an (N-1)-bit prefix integer. The
literal is unmodified. prefix size, N, can have a value between 2 and 8 inclusive. The
remainder of the string literal is unmodified.
A string literal without a prefix length noted is an 8-bit prefix A string literal without a prefix length noted is an 8-bit prefix
string literal and follows the definitions in [RFC7541] without string literal and follows the definitions in [RFC7541] without
modification. modification.
4.2. Encoder and Decoder Streams 4.2. Encoder and Decoder Streams
QPACK defines two unidirectional stream types: QPACK defines two unidirectional stream types:
* An encoder stream is a unidirectional stream of type 0x02. It * An encoder stream is a unidirectional stream of type 0x02. It
skipping to change at page 33, line 30 skipping to change at page 33, line 30
+----------------------------+-------+-------------+---------------+ +----------------------------+-------+-------------+---------------+
Table 3 Table 3
9. References 9. References
9.1. Normative References 9.1. Normative References
[HTTP3] Bishop, M., Ed., "Hypertext Transfer Protocol Version 3 [HTTP3] Bishop, M., Ed., "Hypertext Transfer Protocol Version 3
(HTTP/3)", Work in Progress, Internet-Draft, draft-ietf- (HTTP/3)", Work in Progress, Internet-Draft, draft-ietf-
quic-http-31, 25 September 2020, quic-http-32, 20 October 2020,
<https://tools.ietf.org/html/draft-ietf-quic-http-31>. <https://tools.ietf.org/html/draft-ietf-quic-http-32>.
[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", Work in Progress, Multiplexed and Secure Transport", Work in Progress,
Internet-Draft, draft-ietf-quic-transport-31, 25 September Internet-Draft, draft-ietf-quic-transport-32, 20 October
2020, <https://tools.ietf.org/html/draft-ietf-quic- 2020, <https://tools.ietf.org/html/draft-ietf-quic-
transport-31>. transport-32>.
[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,
<https://www.rfc-editor.org/info/rfc2119>. <https://www.rfc-editor.org/info/rfc2119>.
[RFC2360] Scott, G., "Guide for Internet Standards Writers", BCP 22,
RFC 2360, DOI 10.17487/RFC2360, June 1998,
<https://www.rfc-editor.org/info/rfc2360>.
[RFC7541] Peon, R. and H. Ruellan, "HPACK: Header Compression for [RFC7541] Peon, R. and H. Ruellan, "HPACK: Header Compression for
HTTP/2", RFC 7541, DOI 10.17487/RFC7541, May 2015, HTTP/2", RFC 7541, DOI 10.17487/RFC7541, May 2015,
<https://www.rfc-editor.org/info/rfc7541>. <https://www.rfc-editor.org/info/rfc7541>.
[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>.
[SEMANTICS] [SEMANTICS]
Fielding, R., Nottingham, M., and J. Reschke, "HTTP Fielding, R., Nottingham, M., and J. Reschke, "HTTP
Semantics", Work in Progress, Internet-Draft, draft-ietf- Semantics", Work in Progress, Internet-Draft, draft-ietf-
httpbis-semantics-11, 27 August 2020, httpbis-semantics-12, 2 October 2020,
<http://www.ietf.org/internet-drafts/draft-ietf-httpbis- <http://www.ietf.org/internet-drafts/draft-ietf-httpbis-
semantics-11.txt>. semantics-12.txt>.
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>.
[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>.
[RFC2360] Scott, G., "Guide for Internet Standards Writers", BCP 22,
RFC 2360, DOI 10.17487/RFC2360, June 1998,
<https://www.rfc-editor.org/info/rfc2360>.
[RFC6454] Barth, A., "The Web Origin Concept", RFC 6454, [RFC6454] Barth, A., "The Web Origin Concept", RFC 6454,
DOI 10.17487/RFC6454, December 2011, DOI 10.17487/RFC6454, December 2011,
<https://www.rfc-editor.org/info/rfc6454>. <https://www.rfc-editor.org/info/rfc6454>.
[RFC7540] Belshe, M., Peon, R., and M. Thomson, Ed., "Hypertext [RFC7540] Belshe, M., Peon, R., and M. Thomson, Ed., "Hypertext
Transfer Protocol Version 2 (HTTP/2)", RFC 7540, Transfer Protocol Version 2 (HTTP/2)", RFC 7540,
DOI 10.17487/RFC7540, May 2015, DOI 10.17487/RFC7540, May 2015,
<https://www.rfc-editor.org/info/rfc7540>. <https://www.rfc-editor.org/info/rfc7540>.
[TLS] Rescorla, E., "The Transport Layer Security (TLS) Protocol [TLS] Rescorla, E., "The Transport Layer Security (TLS) Protocol
skipping to change at page 42, line 31 skipping to change at page 42, line 31
1 0 :authority www.example.com 1 0 :authority www.example.com
2 0 :path /sample/path 2 0 :path /sample/path
3 0 custom-key custom-value 3 0 custom-key custom-value
^-- acknowledged --^ ^-- acknowledged --^
Size=160 Size=160
B.4. Duplicate Instruction, Stream Cancellation B.4. Duplicate Instruction, Stream Cancellation
The encoder duplicates an existing entry in the dynamic table, then The encoder duplicates an existing entry in the dynamic table, then
sends an encoded field section referencing the dynamic table entries sends an encoded field section referencing the dynamic table entries
including the duplicated entry. The decoder notifies the encoder including the duplicated entry. The packet containing the encoder
that the encoded field section was not processed by sending a stream stream data is delayed. Before the packet arrives, the decoder
cancellation. cancels the stream and notifies the encoder that the encoded field
section was not processed.
Stream: Encoder Stream: Encoder
02 | Duplicate (Relative Index=2) 02 | Duplicate (Relative Index=2)
Abs Ref Name Value Abs Ref Name Value
1 0 :authority www.example.com 1 0 :authority www.example.com
2 0 :path /sample/path 2 0 :path /sample/path
3 0 custom-key custom-value 3 0 custom-key custom-value
^-- acknowledged --^ ^-- acknowledged --^
4 0 :authority www.example.com 4 0 :authority www.example.com
skipping to change at page 45, line 37 skipping to change at page 45, line 37
encodeInteger(prefixBuffer, 0x80, encodeInteger(prefixBuffer, 0x80,
requiredInsertCount - base - 1, 7) requiredInsertCount - base - 1, 7)
return encoderBuffer, prefixBuffer + streamBuffer return encoderBuffer, prefixBuffer + streamBuffer
Appendix D. Change Log Appendix D. Change Log
*RFC Editor's Note:* Please remove this section prior to *RFC Editor's Note:* Please remove this section prior to
publication of a final version of this document. publication of a final version of this document.
D.1. Since draft-ietf-quic-qpack-17 D.1. Since draft-ietf-quic-qpack-18
Editorial changes only Editorial changes only
D.2. Since draft-ietf-quic-qpack-16 D.2. Since draft-ietf-quic-qpack-17
Editorial changes only Editorial changes only
D.3. Since draft-ietf-quic-qpack-15 D.3. Since draft-ietf-quic-qpack-16
Editorial changes only
D.4. Since draft-ietf-quic-qpack-15
No changes No changes
D.4. Since draft-ietf-quic-qpack-14 D.5. Since draft-ietf-quic-qpack-14
Added security considerations Added security considerations
D.5. Since draft-ietf-quic-qpack-13 D.6. Since draft-ietf-quic-qpack-13
No changes No changes
D.6. Since draft-ietf-quic-qpack-12 D.7. Since draft-ietf-quic-qpack-12
Editorial changes only Editorial changes only
D.7. Since draft-ietf-quic-qpack-11 D.8. Since draft-ietf-quic-qpack-11
Editorial changes only Editorial changes only
D.8. Since draft-ietf-quic-qpack-10 D.9. Since draft-ietf-quic-qpack-10
Editorial changes only Editorial changes only
D.9. Since draft-ietf-quic-qpack-09 D.10. Since draft-ietf-quic-qpack-09
* Decoders MUST emit Header Acknowledgements (#2939) * Decoders MUST emit Header Acknowledgements (#2939)
* Updated error code for multiple encoder or decoder streams (#2970) * Updated error code for multiple encoder or decoder streams (#2970)
* Added explicit defaults for new SETTINGS (#2974) * Added explicit defaults for new SETTINGS (#2974)
D.10. Since draft-ietf-quic-qpack-08 D.11. Since draft-ietf-quic-qpack-08
* Endpoints are permitted to create encoder and decoder streams even * Endpoints are permitted to create encoder and decoder streams even
if they can't use them (#2100, #2529) if they can't use them (#2100, #2529)
* Maximum values for settings removed (#2766, #2767) * Maximum values for settings removed (#2766, #2767)
D.11. Since draft-ietf-quic-qpack-06 D.12. Since draft-ietf-quic-qpack-06
* Clarify initial dynamic table capacity maximums (#2276, #2330, * Clarify initial dynamic table capacity maximums (#2276, #2330,
#2330) #2330)
D.12. Since draft-ietf-quic-qpack-05 D.13. Since draft-ietf-quic-qpack-05
* Introduced the terms dynamic table capacity and maximum dynamic * Introduced the terms dynamic table capacity and maximum dynamic
table capacity. table capacity.
* Renamed SETTINGS_HEADER_TABLE_SIZE to * Renamed SETTINGS_HEADER_TABLE_SIZE to
SETTINGS_QPACK_MAX_TABLE_CAPACITY. SETTINGS_QPACK_MAX_TABLE_CAPACITY.
D.13. Since draft-ietf-quic-qpack-04 D.14. Since draft-ietf-quic-qpack-04
* Changed calculation of Delta Base Index to avoid an illegal value * Changed calculation of Delta Base Index to avoid an illegal value
(#2002, #2005) (#2002, #2005)
D.14. Since draft-ietf-quic-qpack-03 D.15. Since draft-ietf-quic-qpack-03
* Change HTTP settings defaults (#2038) * Change HTTP settings defaults (#2038)
* Substantial editorial reorganization * Substantial editorial reorganization
D.15. Since draft-ietf-quic-qpack-02 D.16. Since draft-ietf-quic-qpack-02
* Largest Reference encoded modulo MaxEntries (#1763) * Largest Reference encoded modulo MaxEntries (#1763)
* New Static Table (#1355) * New Static Table (#1355)
* Table Size Update with Insert Count=0 is a connection error * Table Size Update with Insert Count=0 is a connection error
(#1762) (#1762)
* Stream Cancellations are optional when * Stream Cancellations are optional when
SETTINGS_HEADER_TABLE_SIZE=0 (#1761) SETTINGS_HEADER_TABLE_SIZE=0 (#1761)
skipping to change at page 47, line 33 skipping to change at page 47, line 38
* Implementations must handle 62 bit integers (#1760) * Implementations must handle 62 bit integers (#1760)
* Different error types for each QPACK stream, other changes to * Different error types for each QPACK stream, other changes to
error handling (#1726) error handling (#1726)
* Preserve header field order (#1725) * Preserve header field order (#1725)
* Initial table size is the maximum permitted when table is first * Initial table size is the maximum permitted when table is first
usable (#1642) usable (#1642)
D.16. Since draft-ietf-quic-qpack-01 D.17. Since draft-ietf-quic-qpack-01
* Only header blocks that reference the dynamic table are * Only header blocks that reference the dynamic table are
acknowledged (#1603, #1605) acknowledged (#1603, #1605)
D.17. Since draft-ietf-quic-qpack-00 D.18. Since draft-ietf-quic-qpack-00
* Renumbered instructions for consistency (#1471, #1472) * Renumbered instructions for consistency (#1471, #1472)
* Decoder is allowed to validate largest reference (#1404, #1469) * Decoder is allowed to validate largest reference (#1404, #1469)
* Header block acknowledgments also acknowledge the associated * Header block acknowledgments also acknowledge the associated
largest reference (#1370, #1400) largest reference (#1370, #1400)
* Added an acknowledgment for unread streams (#1371, #1400) * Added an acknowledgment for unread streams (#1371, #1400)
* Removed framing from encoder stream (#1361,#1467) * Removed framing from encoder stream (#1361,#1467)
* Control streams use typed unidirectional streams rather than fixed * Control streams use typed unidirectional streams rather than fixed
stream IDs (#910,#1359) stream IDs (#910,#1359)
D.18. Since draft-ietf-quic-qcram-00 D.19. Since draft-ietf-quic-qcram-00
* Separate instruction sets for table updates and header blocks * Separate instruction sets for table updates and header blocks
(#1235, #1142, #1141) (#1235, #1142, #1141)
* Reworked indexing scheme (#1176, #1145, #1136, #1130, #1125, * Reworked indexing scheme (#1176, #1145, #1136, #1130, #1125,
#1314) #1314)
* Added mechanisms that support one-pass encoding (#1138, #1320) * Added mechanisms that support one-pass encoding (#1138, #1320)
* Added a setting to control the number of blocked decoders (#238, * Added a setting to control the number of blocked decoders (#238,
 End of changes. 35 change blocks. 
60 lines changed or deleted 67 lines changed or added

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