[Docs] [Txt|pdf] [Draft-ietf-mmusic ...] [DIFF1] [DIFF2]
http://tools.ietf.org/html/rfc3605
Proposed STANDARD
Network Working Group C. Huitema
Request for comments:3605 Microsoft
category:standards Track October 2003
Real Time Control Protocol (RTCP) attribute in
Session Description Protocol (SDP)Status of this Memo this document specifies a Internet standards track protocol for the Internet community, and requests Discussion and suggestions for improvements. Please refer to the ' Edition ' Internet official Protocol standards (STD 1) for the ' standardization ' D Status of this protocol. Distribution of this memo is unlimited. Copyright Notice Copyright (C) The Internet Society (2003). All Rights Reserved. Abstract the session Description Protocol (SDP) are used to describe the parameters of media streams used in multimedia SES Sions. When a sessions requires multiple ports, SDP assumes that this these ports have consecutive. In the Session Description Protocol (SDP), SDP assumes that the port number of the media stream is contiguous.
However, However, when the session crosses a network address
translation device, also, Port uses, the OR Dering
of ports can be destroyed by the translation. When the session spans network address translation settings,
uses port mapping, which causes the order of the ports in the session to be destroyed and therefore needs to be extended to the SDP. to handle this, we
propose a extension attribute to SDP.
1. IntroductionThe session
InvitationProtocol (SIP, [RFC3261]) is often used to establish multi-media on the Internet. There are often cases today in which one or both ends to the connection are hidden behind a network address translation de Vice [RFC2766]. In this case, the SDP text must document the IP addresses and UDP ports as they appear on the ' public Internet ' side of th E NAT. In this memo, we'll suppose that's the host located behind a NAT has a way to obtain of these numbers. A possible way to learn these numbers are briefly outlined in section 3, however, just learning the numbers are not enough. The SIP messages use the "encoding defined in SDP" [RFC2327] to describe the IP addresses and TCP or UDP ports used by the Various media. Audio and video are typically sent using RTP [RFC3550], which requires two UDP ports, one for the media and one for the C Ontrol Protocol (RTCP). SDP carries only one port number per media, and Huitema standards Track [Page 1]
RFC 3605 RTCP attribute in SDP October 2003
states, "Other ports used by the media application (such as th e
RTCP Port) should is derived algorithmically from
the base media port. RTCP port numbers were necessarily derived
to the base media port in older versions of RTP (such as [RFC1889]), but
Now, the Specify RTCP ports explicitly in SDP is currently specifying the RTCP port explicitly in the SDP. The RTP implemented by rfc1889 is not known to be acquired from SDP.
Note, however, this implementations of RTP adhering to the earlier [RFC1889] specification May is able to make u
SE of the SDP attributes specified in this document. When the NAT device performs port mapping, there are no guarantee that the mappings of two the separate ports the S Equencing and the parity of the original port numbers; In fact, when the NAT managesa pool of IP addresses, it is even possible of the RTP and the RTCP ports may being mapped to different. In order to successfully establish connections despite themisordering of the port numbersAnd the possible parity switches caused by the NAT, we propose to usea specific SDP attributeTo document theRTCP Portand optionally the RTCP address.a fixed SDP attribute is required to record the RTCP port and the optional RTCP address. The key words "must", "must not", "REQUIRED", "SHALL", "SHALL not", "SHOULD", "SHOULD not", "recommended", "may", and " OPTIONAL "In", are to is interpreted as described in [RFC2119].
2. Description of the SolutionThe main part of We solution is the declaration of a SDP attribute for documenting to the port used by RTCP.
2.1. The RTCP AttributeThe RTCP attribute is used to document the RTCP port used for media stream, when this is not the next higher (
Odd OddPort number following the RTP port described in the media line. The RTCP attribute is a "value" attribute, and follows the syntax specified page of [RFC2327]:
"A=<attribute>:<value>".For the RTCP attributes: * The name is the ASCII string "RTCP" (lower case), * The value is the RTCP port number and option Al address. The formal description of the attribute is defined by the following ABNF [RFC2234] Syntax:
Rtcp-attribute= "A=RTCP:" Port [NetType addrtype space connection-address] CRLF huitema standards Track [Page 2]
RFC 3605 RTCP attribute in SDP October 2003
"Port", "NetType", "AddrType" and
"Connection-address" Tokens are defined as specified in "Appendix A:
SDP Grammar" of [RFC2327].
Example encodings could be:
M=audio 49170 RTP/AVP 0
a=rtcp:53020
m=audio 49170 RTP/AVP 0
a=rtcp:53020 in IP4 126.16.64.4< C16/>m=audio 49170 RTP/AVP 0
a=rtcp:53020 in IP6 2001:2345:6789:abcd:ef01:2345:6789:abcd
a media Level attribute; It must a session level
attribute. Though The examples below
relate to a and this would return only unicast addresses, both unicast and
multicast values are valid.
What is the difference between the media-level attribute and the session-level attribute.
3. Discussion of the SolutionThe implementation of the solution is fairly straightforward. The questions that have been most often asked regarding this solution are whether this is useful, i.e., whether a host can Actually discover port numbers in a unmodified NAT, whether it are sufficient, i.e., whether or not there are a need to do Cument more than one ancillary port/media type, and whether why should not change the media definition instead of Addi ng a new attribute.
3.1. How do we Discover Port Numbers? The proposed solution is only useful if the host can discover the "translated port numbers", i.e., the value of the ports As they appear on the "external side" of the NAT. One possibility is to ask the cooperation of a OK connected third party that'll act as a server according to STUN [RF C3489]. We thus obtain a four step process:1-the host allocates two UDP ports numbers for a rtp/rtcp pair, 2-the host sends A UDP STUN server, 3-the STUN Server reads the source address and port of the packet, and Copies them in the text of a reply, Huitema standards Track [Page 3]
RFC 3605 RTCP attribute in SDP October 2003
4-the host parses the reply according to the STUN protocol 4/>learns the external address and port corresponding to each of the
two UDP ports.
This is algorithm supposes that NAT'll use the same translation for
packets sent to the "SDP" Peer "with which the
host wants to establish a connection. There is no guarantee so all
NAT boxes deployed on the Internet have this characteristic.
Implementers are referred to the STUN specification [RFC3489] for a
extensive discussion of the various types of NAT .
3.2. Do we need to Support multiple Ports? Most media streams are transmitted using a single pair of RTP and RTCP ports. It is possible, however, to transmit a single media over several RTP flows, for example using hierarchical encoding. In this case, SDP would encode the port number used by RTP on the "the", and the number of flows, as In:m=video 49170 /2 RTP/AVP In this example, the media are sent over 2 consecutive pairs of ports, corresponding respectively to RTP for The "I" (even number, 49170), RTCP for the "I" (odd number, 49171), RTP for the second flow (even number, 49 172), and RTCP for the second flow (odd number, 49173). In theory, it would is possible to modify SDP and document the many ports-corresponding to the separate encoding. However, layered encoding isn't much used in practice, and when used are mostly used in conjunction with multicast Transmi Ssion. The translation issues documented in-memo apply uniquely to unicast transmission, and thus there are no short term D for theSupport of multiple port descriptions. It is more convenient and more robust into focus on the "simple Case" in which a media are sent over exactly one rtp/rtcp M.
3.3. Why not Expand the Media Definition?The RTP ports are documented in the media description line, and it would seem to document the convenient port at the Same place, rather than create a RTCP attribute. We considered this design alternative and rejected it for two reasons:adding a extra port number and an option I n the media description would is awkward, and more importantly it would create problems with existing applications, which Would have to reject the entire media description if they did not understand the extension. On the contrary, adding an attribute has a OK defined failure mode:implementations that don ' t huitema standards Track [ Page 4]
RFC 3605 RTCP attribute in SDP October 2003
understand the "a=rtcp" attribute would simply ignore it; they would
fail to send RTCP packets to the specified address, but they'll at
least is able to receive the media in the RT P packets.
4. UNSAF Considerations The RTCP in the SDP are used to enable establishment of RTP/RTCP flows through NAT. This mechanism can is used in conjunction with a address discovery mechanism such as STUN [RFC3489]. STUN is a short term fix to the NAT traversal problem, which requires thus consideration of the general issues linked to " Unilateral self-address fixing "[RFC3424]. The RTCP attribute addresses a very specific problem, the documentation of port numbers as they after address appear Lation by a port-mapping NAT. The RTCP attribute SHOULD not being used for other applications. We expect that, with time, one of the two exit strategies can be developed. The IETF may develop a explicit "Middlebox control" protocol that would enable applications to obtain a pair of port Numbe Rs appropriate for RTP and RTCP. Another possibility is the deployment of IPV6, which'll enable use of ' end to end ' addressing and guarantee that two Hosts would be able to use appropriate ports. In both cases, there would be no Need for documenting a "non standard" RTCP port with the RTCP attribute.
5. Security ConsiderationsThis SDP extension isn't believed to introduce any significant security risk to multi-media applications. One could conceive that a malevolent third party would with the extension to redirect the RTCP of a RTP exchange, But this requires intercepting and rewriting the signaling packet the SDP text; If a interceptor can do so, many more attacks are available, including a wholesale change of the addresses and port num Bers at which the media would be sent. In order to avoid attacks ' this sort ', when the SDP's used in a signaling packet where it is the form APPLICATION/SDP, en D-to-end integrity using S/MIME [RFC3369] is the technical method to be implemented and applied. This is compatible with SIP [RFC3261].
6. IANA ConsiderationsThis document is defines a new SDP parameter, the attribute field "RTCP", which per [RFC2327] has been-registered by IANA. This attribute of the field is designed to use in media level only. Huitema Standards Track [Page 5]
RFC 3605 RTCP attribute in SDP October 2003
7. Intellectual Property Statement The IETF takes no position regarding the validity or scope of any intellectual property or other rights, that might is CLA Imed to pertain to the implementation or with other technology described into this document or the extent to which any licens E under such rights might or might not to be available; Neither does it represent that it has made any effort to identify the any such rights. Information on the IETF's procedures with respect to rights in standards-track and standards-related documentation can Found in BCP-11. Copies of claims of Rights made available for publication and all assurances of licenses to is made available, or the ResU Lt of a attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or The users of this specification can is obtained from the IETF secretariat. The IETF invites any interested a party to bring to it attention any copyrights, patents or patent applications, or other P Roprietary rights which may cover technology The May is required to practice this standard. The information to the IETF Executive Director.
8. AcknowledgementsThe original idea is for using the "RTCP" attribute is developed by Ann Demirtjis. The document is reviewed by the Mmusic and AVT working groups of the IETF.
9. References
9.1. Normative References[RFC1889] Schulzrinne, H., Casner, S., Frederick, R. and V. Jacobson. "Rtp:a transport Protocol for real-time applications", RFC 1889, January 1996. [RFC2119] Bradner, S., "Key words for use in RFCs to indicate requirement levels", BCP, RFC 2119, March 1997. [RFC2234] Crocker, D., Ed. and P. Overell, "augmented BNF for Syntax SPECIFICATIONS:ABNF", RFC 2234, November 1997. [RFC2327] Handley, M. and V. Jacobson, "Sdp:session Description Protocol", RFC 2327, April 1998. Huitema Standards Track [Page 6]
RFC 3605 RTCP attribute in SDP October 2003
[RFC3489] Rosenberg, J., Weinberger, J., Huitema, C. and R. Ma Hy.
" Stun-simple traversal of User Datagram Protocol (UDP)
through Network address translators (NATs) ", RFC 3489,
Mar CH 2003.
[RFC3550] Schulzrinne, H., Casner, S., Frederick, R. and V.
Jacobson. "Rtp:a Transport Protocol for real-time
applications", RFC 3550, July 2003.
9.2. Informative References[RFC2766] Tsirtsis, G. and P. Srisuresh. "Network address Translation-protocol Translation (nat-pt)", RFC 2766, February 2000. [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. [RFC3369] Housley, R., "Cryptographic message Syntax (CMS)", RFC 3369, August 2002. [RFC3424] Daigle, L., "IAB Considerations for unilateral self-address fixing (UNSAF) across network address translation", RFC 3424, November 2002.
Author ' s addressChristian huitema Microsoft Corporation One Microsoft Way Redmond, WA 98052-6399 email:huitema@microsoft.com huitema Stan Dards Track [Page 7]
RFC 3605 RTCP attribute in SDP October 2003
Full Copyright Statement Copyright (C) The Internet Society (2003). All Rights Reserved. This document and translations the It may is copied and furnished to others, and derivative works so comment on or otherw Ise explain it or assist in their implementation may is prepared, copied, published and distributed, in whole or on part, WI Thout restriction of any kind, provided which above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself May is modified in any way, such as by removing the "copyright notice or references to th" E Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in W Hich case the procedures for copyrights defined in the Internet standards process must is followed, or as required to Tran Slate it into the languages other than 中文版. The limited permissions granted above are perpetual and won't is revoked by the Internet society or it successors or a Ssignees. This Document and the information contained herein is provided on ' as is ' basis and the Internet Society and the Internet E Ngineering TASK FORCE disclaims all warranties, EXPRESS OR implied, including BUT don't LIMITED to any WARRANTY this use Of the information herein won't infringe any RIGHTS or any implied warranties to merchantability OR FITNESS for A Icular purpose. Acknowledgement funding for the RFC Editor function are currently provided by the Internet society. Huitema Standards Track [Page 8]
Html markup produced by Rfcmarkup 1.106, available from http://tools.ietf.org/tools/rfcmarkup/