mmusic B. Greevenbosch Internet-Draft Huawei Technologies Intended status: Informational April 16, 2012 Expires: October 18, 2012 Hitchhiker's guide to the Session Description Protocol (SDP) draft-greevenbosch-mmusic-hitchhikersguide-sdp-00 Abstract The Session Initiation Protocol (SDP) is the subject of numerous specifications that have been produced by the IETF. It can be difficult to locate the right document, or even to determine the set of Request for Comments (RFC) about SDP. This specification serves as a guide to the SDP RFC series. It lists a current snapshot of the specifications under the SDP umbrella, briefly summarises each, and groups them into categories. Greevenbosch Expires October 18, 2012 [Page 1] Internet-Draft Hitchhiker's guide to SDP April 2012 Note Discussion and suggestions for improvement are requested, and should be sent to mmusic@ietf.org. 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 http://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 October 18, 2012. Copyright Notice Copyright (c) 2012 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 (http://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. Greevenbosch Expires October 18, 2012 [Page 2] Internet-Draft Hitchhiker's guide to SDP April 2012 Table of Contents 1. Requirements notation . . . . . . . . . . . . . . . . . . . . 4 2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 5 3. Core SDP specifications . . . . . . . . . . . . . . . . . . . 7 4. General purpose infrastructure extensions . . . . . . . . . . 8 5. NAT Traversal . . . . . . . . . . . . . . . . . . . . . . . . 9 6. Minor extensions . . . . . . . . . . . . . . . . . . . . . . . 10 7. Security mechanisms . . . . . . . . . . . . . . . . . . . . . 11 8. Conferencing . . . . . . . . . . . . . . . . . . . . . . . . . 12 9. Documents left to handle . . . . . . . . . . . . . . . . . . . 13 9.1. RFCs . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 9.2. Working group drafts . . . . . . . . . . . . . . . . . . . 13 9.3. Individual drafts . . . . . . . . . . . . . . . . . . . . 13 10. Security Considerations . . . . . . . . . . . . . . . . . . . 14 11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 15 12. Normative References . . . . . . . . . . . . . . . . . . . . . 16 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 18 Greevenbosch Expires October 18, 2012 [Page 3] Internet-Draft Hitchhiker's guide to SDP April 2012 1. Requirements notation 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]. Greevenbosch Expires October 18, 2012 [Page 4] Internet-Draft Hitchhiker's guide to SDP April 2012 2. Introduction The Session Description Protocol (SDP) [RFC4566] is the subject of numerous specifications that have been produced by the IETF. It can be difficult to locate the right document, or even to determine the set of Request for Comments (RFC) about SDP. This specification serves as a guide to the SDP RFC series. It is a current snapshot of the specifications under the SDP umbrella at the time of publication. It is anticipated that this document itself will be regularly updated as SDP specifications mature. Furthermore, it references many specifications, which, at the time of publication of this document, were not yet finalised, and may eventually be completed or abandoned. Therefore, the enumeration of specifications here is a work-in-progress and subject to change. For each specification, a paragraph or so description is included that summarises the purpose of the specification. Each specification also includes a letter that designates its category in the Standards Track [RFC2026]. These values are: S: Standards Track (Proposed Standard, Draft Standard, or Standard) E: Experimental B: Best Current Practice I: Informational The specifications are grouped together by topic. The topics are: Core: The SDP specifications that are expected to be utilised for each session or registration an endpoint participates in. General Purpose Infrastructure: General purpose extensions to SDP, but the ones that are not expected to always be used. NAT Traversal: Specifications to deal with firewall and NAT traversal. Quality of Service: Specifications related to multimedia quality of service (QoS). Operations and Management: Specifications related to configuration and monitoring of SDP deployments. Greevenbosch Expires October 18, 2012 [Page 5] Internet-Draft Hitchhiker's guide to SDP April 2012 Minor Extensions: Specifications that solve a narrow problem space or provide an optimisation. Security Mechanisms: Specifications providing security functionality for SDP. Conferencing: Specifications for multimedia conferencing. Typically, SDP extensions fit naturally into topic areas, and implementors interested in a particular topic often implement many or all of the specifications in that area. There are some specifications that fall into multiple topic areas, but generally they will be listed only once. This document itself is not an update to [RFC4566] or an extension to SDP. It is an informational document, meant to guide newcomers, implementers, and deployers to the many specifications associated with SDP. Greevenbosch Expires October 18, 2012 [Page 6] Internet-Draft Hitchhiker's guide to SDP April 2012 3. Core SDP specifications RFC 2327, Session Description Protocol (S): [RFC2327] defines the original SDP protocol. The RFC has been obsoleted by its successor [RFC4566]. RFC 3264, An Offer/Answer Model with the Session Description Protocol (S): [RFC3264] defines how SDP is used with SIP [RFC3261] to negotiate the parameters of a media session. It is in widespread usage and an integral part of the behaviour of SIP. RFC 4566, Session Description Protocol (S): [RFC4566] defines a format for representing multimedia sessions. SDP objects are carried in the body of SIP messages and, based on the offer/answer model, are used to negotiate the media characteristics of a session between users. Greevenbosch Expires October 18, 2012 [Page 7] Internet-Draft Hitchhiker's guide to SDP April 2012 4. General purpose infrastructure extensions RFC 3266, Support for IPv6 in Session Description Protocol (SDP) (S): [RFC3266] describes the use of Internet Protocol Version 6 (IPv6) addresses in conjunction with the Session Description Protocol (SDP). The document clarifies existing text in SDP in regard to the syntax of IPv6 addresses. RFC 3388, Grouping of Media Lines in the Session Description Protocol (S): [RFC3388] defines a framework for grouping together media streams in an SDP message. Such a grouping allows relationships between these streams, such as which stream is the audio for a particular video feed, to be expressed. RFC 4091, The Alternative Network Address Types (ANAT) Semantics for the Session Description Protocol (SDP) Grouping Framework (S): [RFC4091] defines a mechanism for including both IPv4 and IPv6 addresses to establish a media stream. This mechanism has been deprecated in favor of ICE [ICE]. RFC 4145, TCP-Based Media Transport in the Session Description Protocol (SDP) (S): [RFC4145] defines an extension to SDP for setting up TCP-based sessions between user agents. It defines who sets up the connection and how its lifecycle is managed. It has seen relatively little usage due to the small number of media types to date that use TCP. Greevenbosch Expires October 18, 2012 [Page 8] Internet-Draft Hitchhiker's guide to SDP April 2012 5. NAT Traversal RFC3605, Real Time Control Protocol (RTCP) Attribute in the Session Description Protocol (SDP) (S): [RFC3605] defines a way to explicitly signal, within an SDP message, the IP address and port for RTCP, rather than using the port+1 rule in the Real Time Transport Protocol (RTP) [RFC3550]. It is needed for devices behind NAT, and the specification is required by ICE. Greevenbosch Expires October 18, 2012 [Page 9] Internet-Draft Hitchhiker's guide to SDP April 2012 6. Minor extensions RFC3890, A Transport Independent Bandwidth Modifier for the Session Description Protocol (SDP) (S): [RFC3890] specifies an SDP extension that allows for the description of the bandwidth for a media session that is independent of the underlying transport mechanism. RFC 4796, The SDP (Session Description Protocol) Content Attribute (S): [RFC4796] defines an SDP attribute for describing the purpose of a media stream. Examples include a slide view, the speaker, a sign language feed, and so on. Greevenbosch Expires October 18, 2012 [Page 10] Internet-Draft Hitchhiker's guide to SDP April 2012 7. Security mechanisms RFC4567, Key Management Extensions for Session Description Protocol (SDP) and Real Time Streaming Protocol (RTSP) (S): [RFC4567] defines extensions to SDP that allow tunneling of a key management protocol, namely MIKEY [RFC3830], through offer/answer exchanges. This mechanism is one of three Secure Realtime Transport Protocol (SRTP) keying techniques specified for SIP, with Datagram Transport Layer Security (DTLS)-SRTP [RFC5683] having been selected as the final solution. RFC4568, Session Description Protocol (SDP) Security Descriptions for Media Streams (S): [RFC4568] defines extensions to SDP that allow for the negotiation of keying material directly through offer/answer, without a separate key management protocol. This mechanism, sometimes called sdescriptions, has the drawback that the media keys are available to any entity that has visibility to the SDP. It is one of three SRTP keying techniques specified for SIP, with DTLS-SRTP [RFC5683] having been selected as the final solution. RFC4572, Connection-Oriented Media Transport over the Transport Layer Security (TLS) Protocol in the Session Description Protocol (SDP) (S): [RFC4572] specifies a mechanism for signaling TLS- based media streams between endpoints. It expands the TCP-based media signaling parameters defined in [RFC4145] to include fingerprint information for TLS streams so that TLS can operate between end hosts using self-signed certificates. RFC5027, Security Preconditions for Session Description Protocol Media Streams (S): [RFC5027] defines a precondition for use with the preconditions framework [RFC3312]. The security precondition prevents a session from being established until a security media stream is set up. Greevenbosch Expires October 18, 2012 [Page 11] Internet-Draft Hitchhiker's guide to SDP April 2012 8. Conferencing RFC4574, The SDP (Session Description Protocol) Label Attribute (S): [RFC4574] defines an SDP attribute for providing an opaque label for media streams. These labels can be referred to by external documents, and in particular, by conference policy documents. This allows a UA to tie together documents it may obtain through conferencing mechanisms to media streams to which they refer. RFC4583, Session Description Protocol (SDP) Format for Binary Floor Control Protocol (BFCP) Streams (S): [RFC4583] defines a mechanism in SDP to signal floor control streams that use BFCP. It is used for push-to-talk and conference floor control. Greevenbosch Expires October 18, 2012 [Page 12] Internet-Draft Hitchhiker's guide to SDP April 2012 9. Documents left to handle 9.1. RFCs 3108, 3890, 4317, 4570, 4583, 4585, 5104, 5432, 5547, 5576, 5583, 5888, 5898, 5939, 6236. 9.2. Working group drafts draft-ietf-mmusic-media-loopback-16, draft-ietf-mmusic-parallax-attribute-00, draft-ietf-mmusic-rfc4566bis-04, draft-ietf-mmusic-sdp-cs-09, draft-ietf-mmusic-sdp-media-capabilities-12, draft-ietf-mmusic-traffic-class-for-sdp-00, draft-ietf-mmusic-signal-3d-format-00, draft-ietf-payload-rtp-mvc. 9.3. Individual drafts draft-boucadair-mmusic-altc-04, draft-boucadair-mmusic-ipv6-use-cases-00, draft-boulton-mmusic-sdp-control-package-attribute-07, draft-holmberg-mmusic-sdp-bundle-negotiation-00, draft-lennox-mmusic-sdp-source-selection-03, draft-petithuguenin-mmusic-ice-attributes-level-02, draft-westerlund-mmusic-sdp-bw-attribute-00. Greevenbosch Expires October 18, 2012 [Page 13] Internet-Draft Hitchhiker's guide to SDP April 2012 10. Security Considerations This specification is an overview of existing specifications and does not introduce any security considerations on its own. Greevenbosch Expires October 18, 2012 [Page 14] Internet-Draft Hitchhiker's guide to SDP April 2012 11. Acknowledgements The author would like to thank Jonathan Rosenberg, the author of "A Hitchhiker's guide to the Session Initiation Protocol (SIP)" [RFC5411], which served as basis for this document, and from which much text was copied. The title of this document was inspired by the "The Hitchhiker's Guide to the Galaxy" [HGTTG]. Greevenbosch Expires October 18, 2012 [Page 15] Internet-Draft Hitchhiker's guide to SDP April 2012 12. Normative References [RFC2026] Bradner, S., "The Internet Standards Process -- Revision 3", BCP 9, RFC 2026, October 1996. [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [RFC2327] Handley, M. and V. Jacobson, "SDP: Session Description Protocol", RFC 2327, April 1998. [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. [RFC3264] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model with Session Description Protocol (SDP)", RFC 3264, June 2002. [RFC3266] Olson, S., Camarillo, G., and A. Roach, "Support for IPv6 in Session Description Protocol (SDP)", RFC 3266, June 2002. [RFC3312] Camarillo, G., Marshall, W., and J. Rosenberg, "Integration of Resource Management and Session Initiation Protocol (SIP)", RFC 3312, October 2002. [RFC3388] Camarillo, G., Eriksson, G., Holler, J., and H. Schulzrinne, "Grouping of Media Lines in the Session Description Protocol (SDP)", RFC 3388, December 2002. [RFC3550] Schulzrinne, H., Casner, S., Frederick, R., and V. Jacobson, "RTP: A Transport Protocol for Real-Time Applications", STD 64, RFC 3550, July 2003. [RFC3605] Huitema, C., "Real Time Control Protocol (RTCP) attribute in Session Description Protocol (SDP)", RFC 3605, October 2003. [RFC3830] Arkko, J., Carrara, E., Lindholm, F., Naslund, M., and K. Norrman, "MIKEY: Multimedia Internet KEYing", RFC 3830, August 2004. [RFC3890] Westerlund, M., "A Transport Independent Bandwidth Modifier for the Session Description Protocol (SDP)", RFC 3890, September 2004. Greevenbosch Expires October 18, 2012 [Page 16] Internet-Draft Hitchhiker's guide to SDP April 2012 [RFC4091] Camarillo, G. and J. Rosenberg, "The Alternative Network Address Types (ANAT) Semantics for the Session Description Protocol (SDP) Grouping Framework", RFC 4091, June 2005. [RFC4145] Yon, D. and G. Camarillo, "TCP-Based Media Transport in the Session Description Protocol (SDP)", RFC 4145, September 2005. [RFC4566] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session Description Protocol", RFC 4566, July 2006. [RFC4567] Arkko, J., Lindholm, F., Naslund, M., Norrman, K., and E. Carrara, "Key Management Extensions for Session Description Protocol (SDP) and Real Time Streaming Protocol (RTSP)", RFC 4567, July 2006. [RFC4568] Andreasen, F., Baugher, M., and D. Wing, "Session Description Protocol (SDP) Security Descriptions for Media Streams", RFC 4568, July 2006. [RFC4572] Lennox, J., "Connection-Oriented Media Transport over the Transport Layer Security (TLS) Protocol in the Session Description Protocol (SDP)", RFC 4572, July 2006. [RFC4574] Levin, O. and G. Camarillo, "The Session Description Protocol (SDP) Label Attribute", RFC 4574, August 2006. [RFC4583] Camarillo, G., "Session Description Protocol (SDP) Format for Binary Floor Control Protocol (BFCP) Streams", RFC 4583, November 2006. [RFC4796] Hautakorpi, J. and G. Camarillo, "The Session Description Protocol (SDP) Content Attribute", RFC 4796, February 2007. [RFC5027] Andreasen, F. and D. Wing, "Security Preconditions for Session Description Protocol (SDP) Media Streams", RFC 5027, October 2007. [RFC5411] Rosenberg, J., "A Hitchhiker's Guide to the Session Initiation Protocol (SIP)", RFC 5411, February 2009. [RFC5683] Brusilovsky, A., Faynberg, I., Zeltsan, Z., and S. Patel, "Password-Authenticated Key (PAK) Diffie-Hellman Exchange", RFC 5683, February 2010. [HGTTG] Adams, D., "The Hitchhiker's Guide to the Galaxy", TS 26.234 v5.3.0, September 1979. Greevenbosch Expires October 18, 2012 [Page 17] Internet-Draft Hitchhiker's guide to SDP April 2012 Author's Address Bert Greevenbosch Huawei Technologies Co., Ltd. Huawei Industrial Base Bantian, Longgang District Shenzhen 518129 P.R. China Phone: +86-755-28978088 Email: bert.greevenbosch@huawei.com Greevenbosch Expires October 18, 2012 [Page 18]