1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389
|
<pre>Network Working Group G. Camarillo
Request for Comments: 4091 Ericsson
Category: Standards Track J. Rosenberg
Cisco Systems
June 2005
<span class="h1">The Alternative Network Address Types (ANAT) Semantics</span>
<span class="h1">for the Session Description Protocol (SDP) Grouping Framework</span>
Status of This Memo
This document specifies an Internet standards track protocol for the
Internet community, and requests discussion and suggestions for
improvements. Please refer to the current edition of the "Internet
Official Protocol Standards" (STD 1) for the standardization state
and status of this protocol. Distribution of this memo is unlimited.
Copyright Notice
Copyright (C) The Internet Society (2005).
Abstract
This document defines the Alternative Network Address Types (ANAT)
semantics for the Session Description Protocol (SDP) grouping
framework. The ANAT semantics allow alternative types of network
addresses to establish a particular media stream.
Table of Contents
<a href="#section-1">1</a>. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . <a href="#page-2">2</a>
1.1. Scope and Relation with Interactive Connectivity
Establishment. . . . . . . . . . . . . . . . . . . . . . <a href="#page-2">2</a>
<a href="#section-2">2</a>. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . <a href="#page-3">3</a>
<a href="#section-3">3</a>. ANAT Semantics . . . . . . . . . . . . . . . . . . . . . . . . <a href="#page-3">3</a>
<a href="#section-4">4</a>. Preference . . . . . . . . . . . . . . . . . . . . . . . . . . <a href="#page-3">3</a>
<a href="#section-5">5</a>. Offer/Answer and ANAT . . . . . . . . . . . . . . . . . . . . <a href="#page-3">3</a>
<a href="#section-6">6</a>. Example . . . . . . . . . . . . . . . . . . . . . . . . . . . <a href="#page-4">4</a>
<a href="#section-7">7</a>. Security Considerations . . . . . . . . . . . . . . . . . . . <a href="#page-4">4</a>
<a href="#section-8">8</a>. IANA Considerations . . . . . . . . . . . . . . . . . . . . . <a href="#page-5">5</a>
<a href="#section-9">9</a>. References . . . . . . . . . . . . . . . . . . . . . . . . . . <a href="#page-5">5</a>
<a href="#section-9.1">9.1</a>. Normative References . . . . . . . . . . . . . . . . . . <a href="#page-5">5</a>
<a href="#section-9.2">9.2</a>. Informational References . . . . . . . . . . . . . . . . <a href="#page-5">5</a>
<span class="grey">Camarillo & Rosenberg Standards Track [Page 1]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-2" ></span>
<span class="grey"><a href="./rfc4091">RFC 4091</a> ANAT Semantics June 2005</span>
<span class="h2"><a class="selflink" id="section-1" href="#section-1">1</a>. Introduction</span>
A Session Description Protocol (SDP) [<a href="#ref-2" title=""SDP: Session Description Protocol"">2</a>] session description contains
the media parameters to be used in establishing a number of media
streams. For a particular media stream, an SDP session description
contains, among other parameters, the network addresses and the codec
to be used in transferring media. SDP allows for a set of codecs per
media stream, but only one network address.
The ability to offer a set of network addresses to establish a media
stream is useful in environments with both IPv4-only hosts and
IPv6-only hosts, for instance.
This document defines the Alternative Network Address Types (ANAT)
semantics for the SDP grouping framework [<a href="#ref-4" title=""Grouping of Media Lines in the Session Description Protocol (SDP)"">4</a>]. The ANAT semantics
allow for the expression of alternative network addresses (e.g.,
different IP versions) for a particular media stream.
<span class="h3"><a class="selflink" id="section-1.1" href="#section-1.1">1.1</a>. Scope and Relation with Interactive Connectivity Establishment</span>
The ANAT semantics are intended to address scenarios that involve
different network address types (e.g., different IP versions). They
are not intended to provide alternative transport addresses with the
same network type. Systems that need to provide different transport
addresses with the same network type should use the SDP format
defined in ICE (Interactive Connectivity Establishment) [<a href="#ref-6" title=""Interactive Connectivity Establishment (ICE): A Methodology for Network Address Translator (NAT) Traversal for Multimedia Session Establishment Protocols"">6</a>] instead.
ICE is used by systems that cannot determine their own transport
address as seen from the remote end, but that can provide several
possible alternatives. ICE encodes the address that is most likely
to be valid in an 'm' line, and the rest of addresses as a= lines
after that 'm' line. This way, systems that do not support ICE
simply ignore the a= lines and only use the address in the 'm' line.
This achieves good backward compatibility.
We have chosen to group 'm' lines with different IP versions at the
'm' level (ANAT semantics) rather than at the a= level (ICE format)
in order to keep the IPv6 syntax free from ICE parameters used for
legacy (IPv4) NATs (Network Address Translators). This yields a
syntax much closer to vanilla SDP, where IPv6 addresses are defined
in their own 'm' line, rather than in parameters belonging to a
different 'm' line.
Additionally, ICE only allows us to provide a single primary address
when the peer does not support ICE. The ANAT semantics avoid
relegating certain types of addresses (e.g., IPv6 addresses) to only
be a secondary alternate to another address type (e.g., IPv4
addresses).
<span class="grey">Camarillo & Rosenberg Standards Track [Page 2]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-3" ></span>
<span class="grey"><a href="./rfc4091">RFC 4091</a> ANAT Semantics June 2005</span>
Furthermore, the separation between ANAT and ICE helps systems that
support IPv4 and IPv6 but that do not need to support ICE (e.g., a
multicast server).
<span class="h2"><a class="selflink" id="section-2" href="#section-2">2</a>. Terminology</span>
In this document, the key words "MUST", "MUST NOT", "REQUIRED",
"SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT
RECOMMENDED", "MAY", and "OPTIONAL" are to be interpreted as
described in <a href="https://www.rfc-editor.org/bcp/bcp14">BCP 14</a>, <a href="./rfc2119">RFC 2119</a> [<a href="#ref-1" title=""Key words for use in RFCs to Indicate Requirement Levels"">1</a>] and indicate requirement levels for
compliant implementations.
<span class="h2"><a class="selflink" id="section-3" href="#section-3">3</a>. ANAT Semantics</span>
We define a new "semantics" attribute within the SDP grouping
framework [<a href="#ref-4" title=""Grouping of Media Lines in the Session Description Protocol (SDP)"">4</a>]: ANAT (Alternative Network Address Types).
Media lines grouped using ANAT semantics provide alternative network
addresses of different types for a single logical media stream. The
entity creating a session description with an ANAT group MUST be
ready to receive (or send) media over any of the grouped 'm' lines.
The ANAT semantics MUST NOT be used to group media streams whose
network addresses are of the same type.
<span class="h2"><a class="selflink" id="section-4" href="#section-4">4</a>. Preference</span>
The entity generating a session description may have an order of
preference for the alternative network address types offered. The
identifiers of the media streams MUST be listed in order of
preference in the group line. For example, in the session
description in <a href="#section-6">Section 6</a>, the 'm' line with mid=1 has a higher
preference than the 'm' line with mid=2.
<span class="h2"><a class="selflink" id="section-5" href="#section-5">5</a>. Offer/Answer and ANAT</span>
An offerer using SIP [<a href="#ref-3" title=""SIP: Session Initiation Protocol"">3</a>] to send its offer SHOULD place the sdp-anat
option-tag [<a href="#ref-5" title=""Usage of the Session Description Protocol (SDP) Alternative Network Address Types (ANAT) Semantics in the Session Initiation Protocol (SIP)"">5</a>] in a Require header field.
An answerer receiving a session description that uses the ANAT
semantics SHOULD use the address with the highest priority it
understands and set the ports of the rest of the 'm' lines of the
group to zero.
<span class="grey">Camarillo & Rosenberg Standards Track [Page 3]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-4" ></span>
<span class="grey"><a href="./rfc4091">RFC 4091</a> ANAT Semantics June 2005</span>
<span class="h2"><a class="selflink" id="section-6" href="#section-6">6</a>. Example</span>
The session description below contains an IPv4 address and an IPv6
address grouped using ANAT. The format corresponding to the mapping
of ICE into SDP [<a href="#ref-6" title=""Interactive Connectivity Establishment (ICE): A Methodology for Network Address Translator (NAT) Traversal for Multimedia Session Establishment Protocols"">6</a>] can be used in both 'm' lines to provide
additional addresses.
v=0
o=bob 280744730 28977631 IN IP4 host.example.com
s=
t=0 0
a=group:ANAT 1 2
m=audio 25000 RTP/AVP 0
c=IN IP6 2001:DB8::1
a= <ICE-encoded additional IPv6 addresses (and ports)>
a=mid:1
m=audio 22334 RTP/AVP 0
c=IN IP4 192.0.2.1
a= <ICE-encoded additional IPv4 addresses (and ports)>
a=mid:2
<span class="h2"><a class="selflink" id="section-7" href="#section-7">7</a>. Security Considerations</span>
An attacker adding group lines, using the ANAT semantics, to an SDP
session description could make an end-point use only one out of all
the streams offered by the remote end, when the intention of the
remote-end might have been to establish all the streams.
An attacker removing group lines using ANAT semantics could make an
end-point establish a higher number of media streams. If the
end-point sends media over all of them, the session bandwidth may
increase dramatically.
It is thus strongly RECOMMENDED that integrity protection be applied
to the SDP session descriptions. For session descriptions carried in
SIP [<a href="#ref-3" title=""SIP: Session Initiation Protocol"">3</a>], S/MIME is the natural choice to provide such end-to-end
integrity protection, as described in <a href="./rfc3261">RFC 3261</a> [<a href="#ref-3" title=""SIP: Session Initiation Protocol"">3</a>]. Other
applications MAY use a different form of integrity protection.
<span class="grey">Camarillo & Rosenberg Standards Track [Page 4]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-5" ></span>
<span class="grey"><a href="./rfc4091">RFC 4091</a> ANAT Semantics June 2005</span>
<span class="h2"><a class="selflink" id="section-8" href="#section-8">8</a>. IANA Considerations</span>
The IANA has registered the following new 'semantics' attribute for
the SDP grouping framework [<a href="#ref-4" title=""Grouping of Media Lines in the Session Description Protocol (SDP)"">4</a>]:
Semantics Token Reference
--------------------------------- ----- ---------
Alternative Network Address Types ANAT [<a href="./rfc4091">RFC4091</a>]
ANAT has been registered in the SDP parameters registry under
Semantics for the "group" SDP Attribute.
<span class="h2"><a class="selflink" id="section-9" href="#section-9">9</a>. References</span>
<span class="h3"><a class="selflink" id="section-9.1" href="#section-9.1">9.1</a>. Normative References</span>
[<a id="ref-1">1</a>] Bradner, S., "Key words for use in RFCs to Indicate Requirement
Levels", <a href="https://www.rfc-editor.org/bcp/bcp14">BCP 14</a>, <a href="./rfc2119">RFC 2119</a>, March 1997.
[<a id="ref-2">2</a>] Handley, M. and V. Jacobson, "SDP: Session Description
Protocol", <a href="./rfc2327">RFC 2327</a>, April 1998.
[<a id="ref-3">3</a>] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A.,
Peterson, J., Sparks, R., Handley, M., and E. Schooler, "SIP:
Session Initiation Protocol", <a href="./rfc3261">RFC 3261</a>, June 2002.
[<a id="ref-4">4</a>] Camarillo, G., Eriksson, G., Holler, J., and H. Schulzrinne,
"Grouping of Media Lines in the Session Description Protocol
(SDP)", <a href="./rfc3388">RFC 3388</a>, December 2002.
[<a id="ref-5">5</a>] Camarillo, G. and J. Rosenberg, "Usage of the Session
Description Protocol (SDP) Alternative Network Address Types
(ANAT) Semantics in the Session Initiation Protocol (SIP)", <a href="./rfc4092">RFC</a>
<a href="./rfc4092">4092</a>, June 2005.
<span class="h3"><a class="selflink" id="section-9.2" href="#section-9.2">9.2</a>. Informative References</span>
[<a id="ref-6">6</a>] Rosenberg, J., "Interactive Connectivity Establishment (ICE): A
Methodology for Network Address Translator (NAT) Traversal for
Multimedia Session Establishment Protocols", Work in Progress,
February 2005.
<span class="grey">Camarillo & Rosenberg Standards Track [Page 5]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-6" ></span>
<span class="grey"><a href="./rfc4091">RFC 4091</a> ANAT Semantics June 2005</span>
Authors' Addresses
Gonzalo Camarillo
Ericsson
Hirsalantie 11
Jorvas 02420
Finland
EMail: Gonzalo.Camarillo@ericsson.com
Jonathan Rosenberg
Cisco Systems
600 Lanidex Plaza
Parsippany, NJ 07054
US
EMail: jdrosen@cisco.com
<span class="grey">Camarillo & Rosenberg Standards Track [Page 6]</span></pre>
<hr class='noprint'/><!--NewPage--><pre class='newpage'><span id="page-7" ></span>
<span class="grey"><a href="./rfc4091">RFC 4091</a> ANAT Semantics June 2005</span>
Full Copyright Statement
Copyright (C) The Internet Society (2005).
This document is subject to the rights, licenses and restrictions
contained in <a href="https://www.rfc-editor.org/bcp/bcp78">BCP 78</a>, and except as set forth therein, the authors
retain all their rights.
This document and the information contained herein are provided on an
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Intellectual Property
The IETF takes no position regarding the validity or scope of any
Intellectual Property Rights or other rights that might be claimed to
pertain to the implementation or use of the technology described in
this document or the extent to which any license under such rights
might or might not be available; nor does it represent that it has
made any independent effort to identify any such rights. Information
on the procedures with respect to rights in RFC documents can be
found in <a href="https://www.rfc-editor.org/bcp/bcp78">BCP 78</a> and <a href="https://www.rfc-editor.org/bcp/bcp79">BCP 79</a>.
Copies of IPR disclosures made to the IETF Secretariat and any
assurances of licenses to be made available, or the result of an
attempt made to obtain a general license or permission for the use of
such proprietary rights by implementers or users of this
specification can be obtained from the IETF on-line IPR repository at
<a href="http://www.ietf.org/ipr">http://www.ietf.org/ipr</a>.
The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary
rights that may cover technology that may be required to implement
this standard. Please address the information to the IETF at ietf-
ipr@ietf.org.
Acknowledgement
Funding for the RFC Editor function is currently provided by the
Internet Society.
Camarillo & Rosenberg Standards Track [Page 7]
</pre>
|