HTTP Datagram Prioritization
draft-pardue-masque-dgram-priority-00
The information below is for an old version of the document.
| Document | Type | Active Internet-Draft (individual) | |
|---|---|---|---|
| Author | Lucas Pardue | ||
| Last updated | 2021-07-12 | ||
| Stream | (None) | ||
| Formats | plain text html xml htmlized pdfized bibtex | ||
| Stream | Stream state | (No stream defined) | |
| Consensus boilerplate | Unknown | ||
| RFC Editor Note | (None) | ||
| IESG | IESG state | I-D Exists | |
| Telechat date | (None) | ||
| Responsible AD | (None) | ||
| Send notices to | (None) |
draft-pardue-masque-dgram-priority-00
MASQUE L. Pardue
Internet-Draft Cloudflare
Intended status: Standards Track 13 July 2021
Expires: 14 January 2022
HTTP Datagram Prioritization
draft-pardue-masque-dgram-priority-00
Abstract
Application protocols using the QUIC transport protocol rely on
streams, and optionally the DATAGRAM extension, to carry application
data. Streams and datagrams can be multiplexed but QUIC provides no
interoperable prioritization scheme or signaling mechanism itself.
The HTTP Extensible Prioritization scheme describes how to prioritize
streams in HTTP/2 and HTTP/3. This document adopts the scheme to
support HTTP datagrams.
Note tho Readers
_RFC EDITOR: please remove this section before publication_
Source code and issues list for this draft can be found at
https://github.com/LPardue/draft-pardue-masque-dgram-priority
(https://github.com/LPardue/draft-pardue-masque-dgram-priority).
Status of This Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on 14 January 2022.
Copyright Notice
Copyright (c) 2021 IETF Trust and the persons identified as the
document authors. All rights reserved.
Pardue Expires 14 January 2022 [Page 1]
Internet-Draft HTTP Datagram Prioritization July 2021
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents (https://trustee.ietf.org/
license-info) in effect on the date of publication of this document.
Please review these documents carefully, as they describe your rights
and restrictions with respect to this document. Code Components
extracted from this document must include Simplified BSD License text
as described in Section 4.e of the Trust Legal Provisions and are
provided without warranty as described in the Simplified BSD License.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1. Notational Conventions . . . . . . . . . . . . . . . . . 3
2. Signalling Datagram Priority . . . . . . . . . . . . . . . . 3
2.1. Datagram Urgency . . . . . . . . . . . . . . . . . . . . 3
3. Scheduling guidance . . . . . . . . . . . . . . . . . . . . . 4
4. Security Considerations . . . . . . . . . . . . . . . . . . . 4
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 4
6. References . . . . . . . . . . . . . . . . . . . . . . . . . 4
6.1. Normative References . . . . . . . . . . . . . . . . . . 4
6.2. Informative References . . . . . . . . . . . . . . . . . 5
Appendix A. Acknowledgements . . . . . . . . . . . . . . . . . . 5
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 5
1. Introduction
Application protocols using the QUIC transport protocol [QUIC] rely
on streams, and optionally the DATAGRAM extension [DATAGRAM], to
carry application data. Streams and datagrams can be multiplexed but
QUIC provides no interoperable prioritization scheme or signaling
mechanism itself. The HTTP Extensible Prioritization scheme
[I-D.ietf-httpbis-priority] describes how to prioritize streams in
HTTP/2 and HTTP/3. This document adopts the scheme to support HTTP
datagrams [I-D.ietf-masque-h3-datagram].
The Extensible Priorities scheme for HTTP describes how clients can
send priority signals related to requests in order to suggest how a
server allocates resources to serving responses. When the protocol
is HTTP/2, responses are carried on streams. When the protocol is
HTTP/3, responses are carries on QUIC streams.
Pardue Expires 14 January 2022 [Page 2]
Internet-Draft HTTP Datagram Prioritization July 2021
While QUIC streams support multiplexing natively via use of a stream
identifier, the QUIC DATAGRAM extension does not provide any such
identifier. [I-D.ietf-masque-h3-datagram] defines a set of
identifiers that can be controlled and accessed by HTTP. When the
protocol is HTTP/2 or HTTP/3, one identifer relates to a request
stream. A second, optional, identifer relates to an abstract
context. [I-D.ietf-masque-h3-datagram] does not define any means for
multiplexed datagram prioritization.
This document describes how the Extensible Priorities scheme applies
to HTTP datagrams. Signals sent by clients related to requests can
also be considered input to server scheduling decisions regarding
HTTP datagrams.
1.1. Notational Conventions
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in
BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here.
2. Signalling Datagram Priority
The Extensible Prioritization scheme [I-D.ietf-httpbis-priority]
provides a framework for communicating and acting upon priority
parameters. It defines the urgency and incremental parameters and
provides guidance to implementers about how to act on these
parameters, in combination with other inputs, to make resource
allocation and scheduling choices. Urgency communicates the client-
view of request importance and incremental communicates how the
client intends to process response data as it arrives. Parameters
are communicated in HTTP headers or version-specific frames.
Omitting a priority signal indicates to the server to apply default
priorities. The core scheme is extensible, new parameters can be
defined to augment the base ones.
2.1. Datagram Urgency
The datagram-urgency parameter ("du") takes an integer between 0 and
7, in descending order of priority. This range matches the base
urgency ("u") paramenter range.
The value is encoded as an sf-integer. The default value is 3.
Pardue Expires 14 January 2022 [Page 3]
Internet-Draft HTTP Datagram Prioritization July 2021
This parameter indicates the sender's recommendation, based on the
expectation that the server would transmit HTTP datagrams in the
order of their urgency values if possible. The smaller the value,
the higher the precedence.
The following example shows a request for a CSS file with the urgency
set to "0", any associated datagrams will be delivered with the lower
urgency of "2":
:method = GET
:scheme = https
:authority = example.net
:path = /style.css
priority = u=0, du=2
3. Scheduling guidance
TBD - bikeshed
4. Security Considerations
TBD
5. IANA Considerations
TBD
6. References
6.1. Normative References
[DATAGRAM] Pauly, T., Kinnear, E., and D. Schinazi, "An Unreliable
Datagram Extension to QUIC", Work in Progress, Internet-
Draft, draft-ietf-quic-datagram-02, 16 February 2021,
<https://www.ietf.org/archive/id/draft-ietf-quic-datagram-
02.txt>.
[I-D.ietf-httpbis-priority]
Oku, K. and L. Pardue, "Extensible Prioritization Scheme
for HTTP", Work in Progress, Internet-Draft, draft-ietf-
httpbis-priority-03, 11 January 2021,
<https://www.ietf.org/archive/id/draft-ietf-httpbis-
priority-03.txt>.
Pardue Expires 14 January 2022 [Page 4]
Internet-Draft HTTP Datagram Prioritization July 2021
[I-D.ietf-masque-h3-datagram]
Schinazi, D. and L. Pardue, "Using QUIC Datagrams with
HTTP/3", Work in Progress, Internet-Draft, draft-ietf-
masque-h3-datagram-02, 26 May 2021,
<https://www.ietf.org/archive/id/draft-ietf-masque-h3-
datagram-02.txt>.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/info/rfc8174>.
6.2. Informative References
[QUIC] Iyengar, J., Ed. and M. Thomson, Ed., "QUIC: A UDP-Based
Multiplexed and Secure Transport", RFC 9000,
DOI 10.17487/RFC9000, May 2021,
<https://www.rfc-editor.org/info/rfc9000>.
Appendix A. Acknowledgements
This document is inspired by discussion by many people across HTTP,
QUIC and MASQUE WGs.
Author's Address
Lucas Pardue
Cloudflare
Email: lucaspardue.24.7@gmail.com
Pardue Expires 14 January 2022 [Page 5]