Internet-Draft | MASQUE media bitrate capsule | February 2024 |
Ihlar & Kühlewind | Expires 12 August 2024 | [Page] |
This document specifies a new Capsule (RFC9297) that can be used with CONNECT-UDP (RFC9298), CONNECT-IP (RFC9484), or other future CONNECT extensions to signal the available bitrate for media traffic that is proxied through an HTTP server. This information can be used by a media application to regulate its media bitrate in accordance with a network policy, as an alternative to in-network traffic shaping.¶
This note is to be removed before publishing as an RFC.¶
Status information for this document may be found at https://datatracker.ietf.org/doc/draft-ihlar-masque-sconepro-mediabitrate/.¶
Discussion of this document takes place on the Multiplexed Application Substrate over QUIC Encryption Working Group mailing list (mailto:masque@ietf.org), which is archived at https://mailarchive.ietf.org/arch/browse/masque/. Subscribe at https://www.ietf.org/mailman/listinfo/masque/.¶
Source for this draft and an issue tracker can be found at https://github.com/mirjak/draft-masque-mediabitrate.¶
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 12 August 2024.¶
Copyright (c) 2024 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.¶
This document specifies a new Capsule (RFC9297) that can be used with CONNECT-UDP (RFC9298), CONNECT-IP (RFC9484), or other future CONNECT extensions to signal the available bitrate for media traffic that is proxied through an HTTP server. This information can be used by a media application to regulate its media bitrate in accordance with a network policy, as an alternative to in-network traffic shaping.¶
The extension can be used with the HTTP CONNECT method when the :protocol pseudo header is equal to "connect-udp" or "connect-ip" and with future CONNECT protocols that use the Capsule Protocol.¶
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.¶
A client who wishes to receive media bitrate capsules can indicate support by sending a request header with the boolean-valued Item Structured Field "Media-Bitrate: ?1". The HTTP proxy indicates support by sending a response header with the boolean-valued Item Structured Field "Media-Bitrate: ?1" See Section 3.3.6 of [RFC8941] for information about the boolean format.¶
Once support has been established, a proxy MAY send MEDIA_BITRATE capsules at any time during the lifetime of the stream that originated the request.¶
The MEDIA_BITRATE Capsule has the following format:¶
MEDIA_BITRATE Capsule { Type (i) = MEDIA_BITRATE, Length (i) Media Bitrate (i) [Average Window (i)] }¶
The capsule has the following fields:¶
Media Bitrate: Indicates the average bitrate that is supported by the network without traffic shaping.¶
Average Window: Indicates the duration over which the bitrate is enforced. The largest allowed burst is given by Media Bitrate * Average window. This field is optional.¶
A client that receives media bitrate capsules needs to make the information available to a media application, this is implementation specific and out of scope for this document. A media application can use the information to select a media track that conforms with the specified bitrate. How this is done and whether an application client needs to explicitly coordinate with an application server is out of scope for this document.¶
A proxy that sends media bitrate capsules needs to be tightly integrated with the access network infrastructure and policy framework. A proxy that sends media bitrate capsules does so as an alternative to traffic shaping, the policies that govern shaping behaviour can be used to determine the values sent with media bitrate capsules.¶
A proxy might still apply shaping or policing to traffic that is breaching the policy in order to ensure that the bitrate policy is respected. In this case, it is RECOMMENDED that the proxy uses an averaging window that is sufficiently long to allow data transmission bursts that make full use of the available network capacity. A proxy can SHOULD the Average Window field in the media bitrate capsule to inform the client about how it enforces bitrates.¶
This protocol is intended to provide policy indications to applications traversing a network. Using HTTP proxying for this purpose does add overhead in terms of CPU, memory and MTU. It is RECOMMENDED that this solution is used together with QUIC-Aware proxying [I-D.ietf-masque-quic-proxy] whenever possible.¶
TODO Security¶
This document adds following entries to the "HTTP Capsule Types" registry:¶
Capsule Type | Value | Specification |
---|---|---|
MEDIA-BITRATE | TBD | (This document) |
This document adds following entry to the "Hypertext Transfer Protocol (HTTP) Field Name Registry":¶
Field Name | Template | Status | Reference | Comments |
---|---|---|---|---|
Media-Bitrate | permanent | (This document) |
TODO acknowledge.¶