Internet DRAFT - draft-thomson-webtrans-session-limit
draft-thomson-webtrans-session-limit
WebTransport M. Thomson
Internet-Draft Mozilla
Intended status: Informational E. Kinnear
Expires: 13 April 2024 Apple Inc.
11 October 2023
Applying Per-Session Limits for WebTransport
draft-thomson-webtrans-session-limit-01
Abstract
Limits to how a WebTransport session uses QUIC resources like streams
or data can help reduce the effect that one WebTransport session has
on other uses of the same HTTP/3 connection. This describes
mechanisms for limiting the number of streams and quantity of data
that can be consumed by each WebTransport session.
About This Document
This note is to be removed before publishing as an RFC.
The latest revision of this draft can be found at
https://martinthomson.github.io/wt-session-limits/draft-thomson-
webtrans-session-limit.html. Status information for this document
may be found at https://datatracker.ietf.org/doc/draft-thomson-
webtrans-session-limit/.
Discussion of this document takes place on the WebTransport Working
Group mailing list (mailto:webtransport@ietf.org), which is archived
at https://mailarchive.ietf.org/arch/browse/webtransport/. Subscribe
at https://www.ietf.org/mailman/listinfo/webtransport/.
Source for this draft and an issue tracker can be found at
https://github.com/martinthomson/wt-session-limits.
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/.
Thomson & Kinnear Expires 13 April 2024 [Page 1]
Internet-Draft WebTransport Session Limits October 2023
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 13 April 2024.
Copyright Notice
Copyright (c) 2023 IETF Trust and the persons identified as the
document authors. All rights reserved.
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 Revised BSD License text as
described in Section 4.e of the Trust Legal Provisions and are
provided without warranty as described in the Revised BSD License.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Conventions and Definitions . . . . . . . . . . . . . . . . . 3
3. Protocol Definition . . . . . . . . . . . . . . . . . . . . . 3
3.1. Stream Limits . . . . . . . . . . . . . . . . . . . . . . 3
3.2. Data Limits . . . . . . . . . . . . . . . . . . . . . . . 4
4. Negotiation . . . . . . . . . . . . . . . . . . . . . . . . . 4
5. Security Considerations . . . . . . . . . . . . . . . . . . . 5
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 5
7. Normative References . . . . . . . . . . . . . . . . . . . . 5
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 6
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 6
1. Introduction
WebTransport in HTTP/3 [WTH3] provides applications with all the
functionality of QUIC [QUIC] streams. In the case where a single
connection includes a WebTransport session that needs to coexist with
other WebTransport sessions or HTTP requests, the core draft does not
offer any way to place limits on stream usage.
This document describes an additional layer of session-level flow
control that governs the creation of streams and sets a session-level
limit on the amount of data that can be exchanged in a session.
Thomson & Kinnear Expires 13 April 2024 [Page 2]
Internet-Draft WebTransport Session Limits October 2023
This document does not define a framework for prioritizing the
streams created for a WebTransport session with other streams.
Note that this document is intended as input for [WTH3]. Although it
is possible to define this as an extension to that protocol,
integration of this design is simpler; see Section 4.
2. Conventions and Definitions
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.
3. Protocol Definition
This document uses the following flow control capsules defined in
[WTH2]:
* WT_MAX_DATA (Section 5.5 of [WTH2])
* WT_MAX_STREAMS (Section 5.7 of [WTH2])
* WT_DATA_BLOCKED (Section 5.8 of [WTH2])
* WT_STREAMS_BLOCKED (Section 5.10 of [WTH2])
These capsules are unchanged, except that where the WebTransport over
HTTP/2 capsules refer to streams that flow over the HTTP/2 stream
containing the entire WebTransport session, these capsules refer to
separate limits as described in subsequent sections.
These capsules use the codepoints allocated in [WTH2].
3.1. Stream Limits
The WT_MAX_STREAMS capsule establishes a limit on the number of
streams within a WebTransport session. Like the QUIC MAX_STREAMS
frame (Section 19.11 of [QUIC]), this capsule has two types that
provide separate limits for unidirectional and bidirectional streams
that are initiated by a peer.
The session-level stream limit applies in addition to the QUIC
MAX_STREAMS frame, which provides a connection-level stream limit.
New streams can only be created within the session if both the
stream- and the connection-level limit permit; see Section 4.6 of
[QUIC] for details on how QUIC stream limits are applied.
Thomson & Kinnear Expires 13 April 2024 [Page 3]
Internet-Draft WebTransport Session Limits October 2023
Unlike the WT_MAX_STREAMS capsule or the QUIC MAX_STREAMS frame,
there is no simple relationship between the value in this frame and
stream IDs in QUIC STREAM frames. This especially applies if there
are other users of streams on the connection.
The WT_STREAMS_BLOCKED capsule is sent to indicate that an endpoint
was unable to create a stream due to the session-level stream limit.
3.2. Data Limits
The WT_MAX_DATA capsule establishes a limit on the amount of data
that can be sent within a WebTransport session. This limit counts
all data that is sent on streams of the corresponding type, excluding
the stream header (see Sections 4.2 and 4.2 of [WTH3]). The stream
header is excluded from this limit so that this limit does not
prevent the sending of information that is essential in linking new
streams to a specific WebTransport session.
Implementing WT_MAX_DATA requires that the QUIC stack provide the
WebTransport implementation with information about the final size of
streams; see Section 4.5 of [QUIC].
The WT_DATA_BLOCKED capsule is sent to indicate that an endpoint was
unable to send data due to a limit set by the WT_MAX_DATA capsule.
Because WebTransport over HTTP/3 uses a native QUIC stream for each
WebTransport stream, per-stream data limits are provided by QUIC
natively. The WT_MAX_STREAM_DATA and WT_STREAM_DATA_BLOCKED capsules
are not used and so are prohibited. Endpoints MUST treat receipt of
a WT_MAX_STREAM_DATA or a WT_STREAM_DATA_BLOCKED capsule as a session
error.
4. Negotiation
If the use of flow control capsules are merged into the main
specification [WTH3], their use will be negotiated along with the use
of WebTransport over HTTP/3. This is the simplest approach.
Alternatively, if this remains as an optional extension, new HTTP/3
settings will be needed to negotiate the use of these features. In
the abstract, we could define settings that carry initial values for
the three variables that are controlled by the session-level flow
control capsules defined here. The presence of any of those settings
would indicate that these limits will be respected if the capsule is
sent.
Thomson & Kinnear Expires 13 April 2024 [Page 4]
Internet-Draft WebTransport Session Limits October 2023
Both peers need to indicate the setting before these capsules apply.
If only one peer advertises any of these settings, that might
indicate that they are willing to receive and respect session-level
flow control capsules. However, such an endpoint cannot know when to
start applying the limit.
5. Security Considerations
Aside from new exposure to the usual programming errors arising from
increased protocol complexity, it is believed that the introduction
of these capabilities only improves security as it provides better
control over endpoint resource allocation.
6. IANA Considerations
This document has no IANA actions.
7. Normative 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/rfc/rfc9000>.
[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/rfc/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/rfc/rfc8174>.
[WTH2] Frindell, A., Kinnear, E., Pauly, T., Thomson, M.,
Vasiliev, V., and G. Xie, "WebTransport over HTTP/2", Work
in Progress, Internet-Draft, draft-ietf-webtrans-http2-06,
10 July 2023, <https://datatracker.ietf.org/doc/html/
draft-ietf-webtrans-http2-06>.
[WTH3] Frindell, A., Kinnear, E., and V. Vasiliev, "WebTransport
over HTTP/3", Work in Progress, Internet-Draft, draft-
ietf-webtrans-http3-07, 13 June 2023,
<https://datatracker.ietf.org/doc/html/draft-ietf-
webtrans-http3-07>.
Thomson & Kinnear Expires 13 April 2024 [Page 5]
Internet-Draft WebTransport Session Limits October 2023
Acknowledgments
TODO acknowledge.
Authors' Addresses
Martin Thomson
Mozilla
Email: mt@lowentropy.net
Eric Kinnear
Apple Inc.
Email: ekinnear@apple.com
Thomson & Kinnear Expires 13 April 2024 [Page 6]