Internet DRAFT - draft-ejzak-mmusic-bundle-alternatives
draft-ejzak-mmusic-bundle-alternatives
MMUSIC R. Ejzak
Internet-Draft Alcatel-Lucent
Intended status: Informational February 26, 2013
Expires: August 30, 2013
Alternatives to BUNDLE
draft-ejzak-mmusic-bundle-alternatives-01
Abstract
This paper discusses some potential modifications to the BUNDLE
proposal for multiplexing of multiple media types within a single
5-tuple to address limitations of the current proposal and
alternatives already considered by MMUSIC.
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 August 30, 2013.
Copyright Notice
Copyright (c) 2013 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.
Ejzak Expires August 30, 2013 [Page 1]
Internet-Draft BUNDLE alternatives February 2013
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Issues with BUNDLE . . . . . . . . . . . . . . . . . . . . . . 3
3. Potential solutions . . . . . . . . . . . . . . . . . . . . . . 4
3.1. Unspecified address for subsequent m lines in SDP offer . . 4
3.2. Unspecified address for subsequent m lines in SDP
answer . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.3. Hybrid approach . . . . . . . . . . . . . . . . . . . . . . 7
4. Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . 8
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 8
6. Security Considerations . . . . . . . . . . . . . . . . . . . . 8
7. Informative References . . . . . . . . . . . . . . . . . . . . 8
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 9
Ejzak Expires August 30, 2013 [Page 2]
Internet-Draft BUNDLE alternatives February 2013
1. Introduction
BUNDLE [I-D.ietf-mmusic-sdp-bundle-negotiation] provides for the
multiplexing of the media associated with multiple SDP [RFC4566] m
lines into a single 5-tuple and RTP [RFC3550] session, thus providing
many potential advantages in reducing the messages needed for ICE
[RFC5245] candidate gathering (particularly for server reflexive
candidates) and reducing the messaging for DTLS [RFC6347] key
exchange. BUNDLE is signaled in an SDP offer by using the grouping
framework to identify those m lines that are to share a single
5-tuple. The grouped m lines are all signaled with different port
numbers in the first SDP offer/answer exchange to allow for
successful negotiation without BUNDLE. This is a change from the
previous version of BUNDLE, which signaled the same port for each
bundled m line. The change was needed to work with legacy
intermediaries that would fail the call on receipt an SDP offer with
the same port on multiple m lines. In the event that BUNDLE
negotiation succeeds, each subsequent SDP offer is sent with the same
port number for each valid m line in the bundle. This is done to
clearly signal to intermediaries the 5-tuple in use for each m line.
2. Issues with BUNDLE
BUNDLE always requires at least two SDP offer/answer exchanges to
negotiate the (preferred) use of bundled media, but only one offer/
answer exchange to reject bundled media. BUNDLE is intended to
minimize signaling rather than to increase it - and particularly the
more expensive out-of-band signaling.
Since the answerer can reject individual m lines (including the first
one), it's not clear which 5-tuple will be in use for the bundle
until the second offer/answer exchange completes, delaying call setup
time in this case.
In the event that a subsequent SDP offer/answer exchange is needed
later during the session, BUNDLE requires the signaling of the same
port for each bundled m line. If there is an intermediary in the
session performing 3pcc procedures as a B2BUA, then the intermediary
may send an empty (SDP-less) re-INVITE request to a WebRTC endpoint
to trigger sending of an SDP offer, which is a common 3pcc scenario.
If the purpose of the empty re-INVITE is to establish a connection to
a different media endpoint and the SDP offer is forwarded to the new
endpoint via a legacy intermediary that requires unique ports on m
lines, then the 3pcc procedure will fail and there is no simple work-
around. While it is possible to provide an API option to request a
new offer with different port numbers, there is no reliable way to
anticipate when such a 3pcc scenario might occur so there is still
Ejzak Expires August 30, 2013 [Page 3]
Internet-Draft BUNDLE alternatives February 2013
the risk of 3pcc scenario failure.
3. Potential solutions
This paper proposes two modifications to BUNDLE for consideration.
As with the current version of BUNDLE, these proposals assume the
signaling of different port numbers for each m line in the SDP offer
to avoid call failure and retry. Since the proposals address
different scenarios and are compatible with one another, both could
be adopted, as also discussed below as a "hybrid" option.
Note that the paper only considers manipulation of the connection and
port information in the subsequent m lines of the SDP offer and/or
answer (in particular the use of the unspecified address). Zero port
is not considered due to its very specific meaning on an SDP m line.
There are also some restrictions on the handling of DTLS crypto
information since this is shared among the bundled m lines. Changes
to bandwidth, directionality, or other attributes are not considered
since they are all needed to signal characteristics of the media
associated with the m line.
This paper does not discuss the syntax of the unspecified address for
IPv6 as this has been covered elsewhere.
3.1. Unspecified address for subsequent m lines in SDP offer
This approach borrows a mechanism from Trickle ICE to avoid the
signaling of any candidates for the subsequent m lines in the SDP
offer. The middle box will not allocate resources for these m lines
when forwarding the SDP offer, and the SDP answerer will usually
respond with the unspecified address for these m lines. Even if the
SDP answer includes valid connection information for these m lines,
the middle box will still not allocate separate transport flows for
them.
If the SDP answerer chooses to reject the first m line(s) in the
bundle group in the SDP offer (by setting port in the m line to
zero), it places the intended port, connection, candidate and DTLS
crypto information for the bundle in the first valid m line of the
SDP answer and includes the unspecified address for all other m lines
in the bundle group. Because of this, it is understood by both
endpoints that the 5-tuple connection, port and DTLS crypto
information is to be based on the first valid m line in the SDP offer
and the first valid m line in the SDP answer. It is possible for
this information to be included in different m lines in the answer
compared to the offer, but with this rule there is no ambiguity as to
the parameters of the transport connection, and the intermediary only
Ejzak Expires August 30, 2013 [Page 4]
Internet-Draft BUNDLE alternatives February 2013
sees this SDP exchange if it has previously forwarded an indication
of support for BUNDLE.
In this relatively rare case where the answerer rejects the first
(usually highest priority) m line, the offerer should send an updated
offer acknowledging rejection of the initial m line(s) (with zero
port), and with the transport information already in use for the
bundle moved to the new first valid m line. Simple intermediaries
that only look at transport information in the SDP, e.g., to open
pinholes, would be confused without a second SDP offer.
For subsequent offers, the offerer will put the port, connection,
candidate and DTLS crypto information in use for the bundle in the
first valid m line of the new SDP offer to start the process again.
If the SDP answerer chooses to not bundle media, then the SDP offerer
will either need to perform Trickle ICE, if supported, or to send
another SDP offer with valid connection, candidate and port
information for each m line.
The primary advantage of this approach is that it is unnecessary to
allocate either any ICE candidates for the subsequent m lines or any
middle box resources for these m lines.
Another advantage of this approach is that media setup completes in
one SDP offer/answer exchange for the most common scenarios with
BUNDLE where the first bundled m line is acccepted by the answerer.
The need of a second SDP offer/answer to support the less-preferred
non-bundle scenario or to support the unlikely answerer's rejection
of the first m line should be of less concern.
This approach also eliminates redundant (and potentially conflicting)
transport information from multiple m lines in both SDP offers and
answers, thus improving readability and slightly decreasing the size
of the SDP messages.
It is possible that the middle box will not accept the SDP offer with
an unspecified address, although RFC 3264 mandates support for this.
RFC 3264 indicates that the use of unspecified address for an m line
signals that "neither RTP nor RTCP should be sent to the peer". It
is understood with the BUNDLE extension defined here that this text
is modified to mean that no RTP or RTCP is sent using the transport
parameters defined for the media line.
Ejzak Expires August 30, 2013 [Page 5]
Internet-Draft BUNDLE alternatives February 2013
3.2. Unspecified address for subsequent m lines in SDP answer
To further reduce the potential for unsupported signaling at middle
boxes and to avoid problems with the unbundled case, the solution
might still signal valid connection and port information for all m
lines in the bundle group of the first SDP offer (as in the current
BUNDLE draft), thus potentially causing the middle box to
unnecessarily allocate resources. But if the SDP answerer decides to
bundle media, then it can signal the unspecified address for the
subsequent m lines in the bundle.
With this approach, the middle box recognizing the unspecified
address in subsequent m lines will release extraneous resources and
avoid failure due to inactivity.
If the SDP answerer chooses to reject the first m line(s) in the
bundle group in the SDP offer (by setting port in the m line to
zero), it places the intended port, connection, candidate and DTLS
crypto information for the bundle in the first valid m line of the
SDP answer and includes the unspecified address for all other m lines
in the bundle group. Because of this, it is understood by both
endpoints that the 5-tuple connection, port and DTLS crypto
information is to be based on the first valid m line in the SDP offer
and the first valid m line in the SDP answer. It is possible for
this information to be included in different m lines in the answer
compared to the offer, but with this rule there is no ambiguity as to
the parameters of the transport connection, and the intermediary only
sees this SDP exchange if it has previously forwarded an indication
of support for BUNDLE.
In this relatively rare case where the answerer rejects the first
(usually highest priority) m line, the offerer should send an updated
offer acknowledging rejection of the initial m line(s) (with zero
port), and with the transport information already in use for the
bundle moved to the new first valid m line. Note in this case that
the new SDP offer still includes valid port and connection
information for all other valid m lines in the bundle group to be
prepared for any 3pcc scenario. Simple intermediaries that only look
at transport information in the SDP, e.g., to open pinholes, would be
confused without a second SDP offer.
For subsequent offers, the offerer will put the port, connection,
candidate and DTLS crypto information in use for the bundle in the
first valid m line of the new SDP offer to start the process again.
The new SDP offer still includes valid port and connection
information for all other valid m lines in the bundle group.
This approach is robust in the presence of 3pcc scenarios that
Ejzak Expires August 30, 2013 [Page 6]
Internet-Draft BUNDLE alternatives February 2013
forward SDP to different endpoints. This approach avoids sending the
unspecified address to intermediaries that have not already indicated
support for BUNDLE.
This approach also eliminates redundant (and potentially conflicting)
transport information from multiple m lines in the SDP answer, thus
improving readability and slightly decreasing the size of the SDP
messages.
There is some small risk that the middle box will not recognize the
unspecified address in the SDP answer (even though its support is
mandated), but this risk is limited to the bundled case since the SDP
for the unbundled case is not impacted.
This approach has the disadvantage that the offerer must allocate
connection and candidate information for all m lines in the bundle
even when only one set of transportation information is used in the
bundle case.
3.3. Hybrid approach
The two approaches "unspecified address for subsequent m lines in SDP
offer" (option O) and "unspecified address for subsequent m lines in
SDP answer" (option A) can be combined into a hybrid approach as
follows.
Option A is the default option for the initial SDP offer/answer
exchange for a new session with an unknown endpoint. This minimizes
potential problems with intermediaries and allows for completion of
media setup with one SDP offer/answer exchange for most bundled cases
and all non-bundled cases.
Option O can also be used for the initial SDP offer/answer exchange
when it is known that bundle is likely to succeed and there is no
concern with compatibility at intermediaries.
Option O is the default option for subsequent SDP offer/answer
exchanges during a session once it is established that both endpoints
and intermediaries support BUNDLE.
Option A is used for subsequent SDP offer/answer exchanges during a
session if BUNDLE is not negotiated during the initial exchange or if
there is any potential for a 3pcc scenario sending signaling through
a new and potentially incompatible intermediary.
This hybrid approach combines the best features of both alternatives
and provides considerable flexibility in fine tuning the SDP offer/
answer exchange for different applications.
Ejzak Expires August 30, 2013 [Page 7]
Internet-Draft BUNDLE alternatives February 2013
4. Discussion
Of the approaches presented in the paper, the author prefers the
hybrid modification of BUNDLE described above over either individual
approach and prefers all of them over the current BUNDLE.
The hybrid approach allows completion of media and transport
negotiation in one SDP offer/exchange in most cases, and most
importantly when successfully negotiating the bundling of media.
The hybrid approach is consistent with 3pcc using either signaling
option, thus avoiding potential 3pcc failure scenarios.
The hybrid approach minimizes redundant transport related information
in the bundled m lines thus slightly reducing SDP size and processing
requirements.
The hybrid approach allows for customization of the procedures to
simplify common (e.g., WebRTC only) cases and to avoid allocation of
transport resources when they are not needed.
There is some risk in including the unspecified address for certain m
lines in the SDP. This risk can be limited to exposing the
unspecified address only in the SDP answer to intermediaries that
have already signaled support for this extended BUNDLE proposal in
the forwarded SDP offer. Since support for the unspecified address
is mandated by RFC 3264, this seems like a small risk.
5. IANA Considerations
To be completed.
6. Security Considerations
To be completed.
7. Informative References
[I-D.ietf-mmusic-sdp-bundle-negotiation]
Holmberg, C. and H. Alvestrand, "Multiplexing Negotiation
Using Session Description Protocol (SDP) Port Numbers",
draft-ietf-mmusic-sdp-bundle-negotiation-00 (work in
progress), February 2012.
[RFC3550] Schulzrinne, H., Casner, S., Frederick, R., and V.
Ejzak Expires August 30, 2013 [Page 8]
Internet-Draft BUNDLE alternatives February 2013
Jacobson, "RTP: A Transport Protocol for Real-Time
Applications", STD 64, RFC 3550, July 2003.
[RFC4566] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session
Description Protocol", RFC 4566, July 2006.
[RFC5245] Rosenberg, J., "Interactive Connectivity Establishment
(ICE): A Protocol for Network Address Translator (NAT)
Traversal for Offer/Answer Protocols", RFC 5245,
April 2010.
[RFC6347] Rescorla, E. and N. Modadugu, "Datagram Transport Layer
Security Version 1.2", RFC 6347, January 2012.
Author's Address
Richard Ejzak
Alcatel-Lucent
1960 Lucent Lane
Naperville, Illinois 60563-1594
US
Email: richard.ejzak@alcatel-lucent.com
Ejzak Expires August 30, 2013 [Page 9]