RFC 5432
Quality of Service (QoS) Mechanism Selection in the Session Description Protocol (SDP)
RFC 5432: Quality of Service (QoS) Mechanism Selection in the Session Description Protocol (SDP) π
Okay bestie, here's the deal. This is RFC 5432, a Standards Track doc from March 2009. The authors are J. Polk and S. Dhesikan from Cisco Systems, and G. Camarillo from Ericsson. It's part of the Network Working Group, and the title block doesn't list anything it obsoletes or updates, so it's standing on its own π
Status of This Memo β¨
This doc specifies an Internet standards track protocol for the Internet community, and it's asking for discussion and suggestions for improvements. To find out where this protocol stands in standardization, check the current edition of the "Internet Official Protocol Standards" (STD 1). Distribution of this memo is unlimited π
Copyright Notice π
Copyright (c) 2009 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, which are in effect on the date this document was published (http://trustee.ietf.org/license-info). Please read these documents carefully, because they explain your rights and restrictions with respect to this document π§
This document may contain material from IETF Documents or IETF Contributions that were published or made publicly available before November 10, 2008. The person(s) who control the copyright in some of this material may not have granted the IETF Trust the right to allow modifications of that material outside the IETF Standards Process. Without an adequate license from the person(s) controlling the copyright in those materials, this document may not be modified outside the IETF Standards Process, and derivative works of it may not be created outside the IETF Standards Process. The exceptions are formatting it for publication as an RFC or translating it into languages other than English π«Ά
Abstract π¦
The offer/answer model for the Session Description Protocol (SDP) assumes that endpoints somehow set up the Quality of Service (QoS) they need for the media streams they establish. In closed environments, endpoints usually agree out-of-band (for example, through configuration information) on which QoS mechanism to use. On the Internet, though, there's more than one QoS service available. So there's a real need for a way to negotiate which QoS mechanism gets used for a particular media stream, and this document defines exactly that π₯
Table of Contents ποΈ
1. Introduction ....................................................3
2. Terminology .....................................................3
3. SDP Attributes Definition .......................................3
4. Offer/Answer Behavior ...........................................4
4.1. Offerer Behavior ...........................................4
4.2. Answerer Behavior ..........................................4
4.3. Resource Reservation .......................................5
4.4. Subsequent Offer/Answer Exchanges ..........................5
5. Example .........................................................5
6. IANA Considerations .............................................6
6.1. Registration of the SDP 'qos-mech-send' Attribute ..........6
6.2. Registration of the SDP 'qos-mech-recv' Attribute ..........6
6.3. Registry for QoS Mechanism Tokens ..........................7
7. Security Considerations .........................................7
8. Acknowledgements ................................................7
9. References ......................................................8
9.1. Normative References .......................................8
9.2. Informative References .....................................8
1. Introduction π
The offer/answer model [RFC3264] for SDP [RFC4566] doesn't give endpoints any way to negotiate which QoS mechanism to use for a particular media stream. Even when QoS preconditions [RFC3312] are used, the choice of QoS mechanism is left unspecified and is up to the endpoints π€·ββοΈ
Endpoints that support more than one QoS mechanism need a way to negotiate which one to use for a particular media stream. Examples of QoS mechanisms are RSVP (Resource Reservation Protocol) [RFC2205] and NSIS (Next Steps in Signaling) [QoS-NSLP] β
This document defines a mechanism that lets endpoints negotiate the QoS mechanism for a particular media stream. But here's the catch: endpoints agreeing on a QoS mechanism does not mean the network supports that mechanism. Figuring out which QoS mechanisms the network layer supports is out of scope for this document π Still, the information endpoints exchange to negotiate QoS mechanisms, as defined here, can help a network operator solve part of the QoS interoperability problem. Specifically, it helps make sure a mechanism the endpoints can both accept gets chosen, and it makes potential misconfigurations easier to debug π§
2. Terminology π
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119] π
3. SDP Attributes Definition πΈ
This document defines the 'qos-mech-send' and 'qos-mech-recv' session and media-level SDP [RFC4566] attributes. Here's their Augmented Backus-Naur Form (ABNF) [RFC5234] syntax, which is built on the SDP [RFC4566] grammar:
attribute =/ qos-mech-send-attr
attribute =/ qos-mech-recv-attr
qos-mech-send-attr = "qos-mech-send" ":"
[[SP] qos-mech *(SP qos-mech)]
qos-mech-recv-attr = "qos-mech-recv" ":"
[[SP] qos-mech *(SP qos-mech)]
qos-mech = "rsvp" / "nsis" / extension-mech
extension-mech = token
The 'qos-mech' token identifies a QoS mechanism supported by the entity that generated the session description. A token in a 'qos-mech-send' attribute identifies a QoS mechanism that can be used to reserve resources for traffic sent by the entity that generated the session description. A token in a 'qos-mech-recv' attribute identifies a QoS mechanism that can be used to reserve resources for traffic received by that entity π¦
The 'qos-mech-send' and 'qos-mech-recv' attributes aren't dependent on each other. You can use one without the other π
Here's an example of an 'm' line with 'qos-mech-send' and 'qos-mech-recv' attributes:
m=audio 50000 RTP/AVP 0
a=qos-mech-send: rsvp nsis
a=qos-mech-recv: rsvp nsis
4. Offer/Answer Behavior π
With the 'qos-mech-send' and 'qos-mech-recv' attributes, an offer/answer exchange lets endpoints come up with a list of common QoS mechanisms sorted by preference. Note, though, that endpoints negotiate which direction needs QoS using other mechanisms, such as preconditions [RFC3312]. Endpoints may also use other mechanisms to negotiate, if needed, the parameters to use with a given QoS mechanism (for example, the bandwidth to be reserved) π
4.1. Offerer Behavior π
Offerers include a 'qos-mech-send' attribute listing the tokens for the QoS mechanisms that are supported in the send direction, in order of preference. In the same way, offerers include a 'qos-mech-recv' attribute listing the tokens for the QoS mechanisms that are supported in the receive direction, in order of preference π
4.2. Answerer Behavior π«§
When an answerer gets an offer with a set of tokens in a 'qos-mech-send' attribute, it takes the tokens for QoS mechanisms it supports in the receive direction and includes them, in order of preference, in a 'qos-mech-recv' attribute in the answer. When an answerer gets an offer with a set of tokens in a 'qos-mech-recv' attribute, it takes the tokens for QoS mechanisms it supports in the send direction and includes them, in order of preference, in a 'qos-mech-send' attribute in the answer π
When ordering the tokens in a 'qos-mech-send' or 'qos-mech-recv' attribute by preference, the answerer may take into account its own preferences and the ones expressed in the offer. However, the exact algorithm for ordering those token lists is outside the scope of this specification π§
Note that if the answerer has no QoS mechanism in common with the offerer, it will return empty 'qos-mech-send' and 'qos-mech-recv' attributes π
4.3. Resource Reservation β‘
Once the offer/answer exchange completes, both the offerer and the answerer use the token lists in the 'qos-mech-send' and 'qos-mech-recv' attributes of the answer to make their resource reservations. Offerers and answerers SHOULD attempt to use the QoS mechanism with the highest priority in each direction first. If an endpoint (the offerer or the answerer) doesn't succeed with the highest-priority mechanism in a given direction, it SHOULD attempt the next QoS mechanism in priority order in that direction, and so on πββοΈ
If an endpoint unsuccessfully tries all the common QoS mechanisms for a given direction, the endpoint MAY attempt to use additional QoS mechanisms that the remote endpoint doesn't support. The reason is that there may be network entities outside the endpoint's control (for example, an RSVP proxy) that make those mechanisms work π
4.4. Subsequent Offer/Answer Exchanges π
If, during an established session where the QoS mechanism for a given direction was agreed upon using the mechanism defined in this specification, an endpoint receives a subsequent offer that doesn't contain the QoS selection attribute for that direction (meaning the 'qos-mech-send' or 'qos-mech-recv' attribute is missing), the endpoints SHOULD continue using the same QoS mechanism they were using up to that point π«Ά
5. Example π§
The following is an offer/answer exchange between two endpoints using the 'qos-mech-send' and 'qos-mech-recv' attributes. Parts of the session descriptions are omitted for clarity.
The offerer generates the following session description, listing both RSVP and NSIS for both directions. The offerer would prefer RSVP, so it includes RSVP before NSIS:
m=audio 50000 RTP/AVP 0
a=qos-mech-send: rsvp nsis
a=qos-mech-recv: rsvp nsis
The answerer supports NSIS in both directions but not RSVP. So it returns the following session description:
m=audio 55000 RTP/AVP 0
a=qos-mech-send: nsis
a=qos-mech-recv: nsis
6. IANA Considerations ποΈ
This specification registers two new SDP attributes and creates a new registry for QoS mechanisms.
6.1. Registration of the SDP 'qos-mech-send' Attribute π
IANA has registered the following SDP att-field under the Session Description Protocol (SDP) Parameters registry:
Contact name: Gonzalo.Camarillo@ericsson.com
Attribute name: qos-mech-send
Long-form attribute name: QoS Mechanism for the Send Direction
Type of attribute: Session and Media levels
Subject to charset: No
Purpose of attribute: To list QoS mechanisms supported in the send
direction
Allowed attribute values: IANA Registered Tokens
6.2. Registration of the SDP 'qos-mech-recv' Attribute
Okay so IANA officially registered a new SDP att-field in the Session Description Protocol (SDP) Parameters registry π Here's the tea:
Contact name: Gonzalo.Camarillo@ericsson.com
Attribute name: qos-mech-recv
Long-form attribute name: QoS Mechanism for the Receive Direction
Type of attribute: Session and Media levels
Subject to charset: No
Purpose of attribute: To list QoS mechanisms supported in the
receive direction
Allowed attribute values: IANA Registered Tokens
6.3. Registry for QoS Mechanism Tokens
So IANA made a whole subregistry just for QoS mechanism token values π¦ These tokens get used in both the 'qos-mech-send' and 'qos-mech-recv' attributes, living under the Session Description Protocol (SDP) Parameters registry. The starting lineup looks like this:
QoS Mechanism Reference
---------------------------- ---------
rsvp RFC 5432
nsis RFC 5432
Per the terminology in [RFC5226], the registration policy for brand-new QoS mechanism token values shall be 'Specification Required' πβ¨
7. Security Considerations
Okay, this part is serious bestie π An attacker may attempt to add, modify, or remove 'qos-mech-send' and 'qos-mech-recv' attributes from a session description. That could make an application act in a not-so-great way. Like, the endpoints under attack might not be able to find a common QoS mechanism to use, and that's a whole mess π
Consequently, it is strongly RECOMMENDED that integrity and authenticity protection be applied to SDP session descriptions carrying these attributes π For session descriptions carried in SIP [RFC3261], S/MIME [RFC3851] is the natural choice to provide that end-to-end integrity protection, as described in [RFC3261]. Other applications MAY use a different form of integrity protection π«Ά
8. Acknowledgements
Shoutout to Dave Oran for helping get this effort going πΈ Flemming Andreasen and Magnus Westerlund gave really useful comments on this specification, so they get all the flowers π
9. References
9.1. Normative References
- [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.
- [RFC3264] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model with Session Description Protocol (SDP)", RFC 3264, June 2002.
- [RFC3851] Ramsdell, B., Ed., "Secure/Multipurpose Internet Mail Extensions (S/MIME) Version 3.1 Message Specification", RFC 3851, July 2004.
- [RFC4566] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session Description Protocol", RFC 4566, July 2006.
- [RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an IANA Considerations Section in RFCs", BCP 26, RFC 5226, May 2008.
- [RFC5234] Crocker, D., Ed., and P. Overell, "Augmented BNF for Syntax Specifications: ABNF", STD 68, RFC 5234, January 2008.
9.2. Informative References
- [QoS-NSLP] Manner, J., Karagiannis, G., and A. McDonald, "NSLP for Quality-of-Service Signaling", Work in Progress, February 2008.
- [RFC2205] Braden, R., Ed., Zhang, L., Berson, S., Herzog, S., and S. Jamin, "Resource ReSerVation Protocol (RSVP) -- Version 1 Functional Specification", RFC 2205, September 1997.
- [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A., Peterson, J., Sparks, R., Handley, M., and E. Schooler, "SIP: Session Initiation Protocol", RFC 3261, June 2002.
- [RFC3312] Camarillo, G., Ed., Marshall, W., Ed., and J. Rosenberg, "Integration of Resource Management and Session Initiation Protocol (SIP)", RFC 3312, October 2002.
Authors' Addresses
Meet the squad behind this one π
James Polk
Cisco Systems
3913 Treemont Circle
Colleyville, Texas 76034
USA
Phone: +1-817-271-3552
EMail: jmpolk@cisco.com
Subha Dhesikan
Cisco Systems
170 W. Tasman Drive
San Jose, CA 95134
USA
EMail: sdhesika@cisco.com
Gonzalo Camarillo
Ericsson
Hirsalantie 11
Jorvas 02420
Finland
EMail: Gonzalo.Camarillo@ericsson.com
π¦ where this page comes from
- ietf: rfc5432 2009-03
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms