Internet DRAFT - draft-ivov-mmusic-ice-updates
draft-ivov-mmusic-ice-updates
Network Working Group E. Ivov
Internet-Draft Jitsi
Intended status: Standards Track November 9, 2014
Expires: May 13, 2015
Non-disruptive Candidate Updates for the Interactive Connectivity
Establishment (ICE) Protocol
draft-ivov-mmusic-ice-updates-00
Abstract
This document describes a mechanism for updating the transport
parameters of real-time communication sessions (e.g. as a result of
mid-session device mobility) without disrupting ongoing communication
and without requiring Offer/Answer negotiation.
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 May 13, 2015.
Copyright Notice
Copyright (c) 2014 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.
Ivov Expires May 13, 2015 [Page 1]
Internet-Draft ICE Updates November 2014
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Multipath ICE . . . . . . . . . . . . . . . . . . . . . . . . 2
3. Triggering a Trickle ICE Restart . . . . . . . . . . . . . . 3
3.1. Trickle-triggering an ICE restart . . . . . . . . . . . . 3
3.2. Operation . . . . . . . . . . . . . . . . . . . . . . . . 4
3.2.1. Re-checking currently valid pairs . . . . . . . . . . 4
3.2.2. Relationship with Multipath ICE . . . . . . . . . . . 5
4. The case against infinite trickling . . . . . . . . . . . . . 5
5. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 6
5.1. Switching to a better interface. No ICE restart. . . . . 6
5.2. Adding an interface. ICE restart required . . . . . . . . 6
5.3. Scenarios involving MICE . . . . . . . . . . . . . . . . 7
6. Normative References . . . . . . . . . . . . . . . . . . . . 7
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 8
1. Introduction
The Interactive Connectivity Establishment (ICE) protocol [RFC5245]
defines a way of discovering and validating a path between two peers.
Switching an ongoing media session to an alternative path is
therefore only possible after an ICE restart that would again produce
a single "nominated" candidate pair for use by the applications.
As a result, implementing path optimizations is currently a
cumbersome process that is often implemented in a disruptive way or
not supported at all.
This document discusses ways of simplifying the process. Special
attention is being paid to preserving existing features in ICE and
trickle ICE [I-D.ivov-mmusic-trickle-ice] that allow implementations
today to promptly release unused candidates or detect failures in a
deterministic way.
2. Multipath ICE
An ongoing discussion in MMUSIC [ICE-OPTS] is already investigating
the possibility of having ICE processing yield multiple usable
candidate pairs. A rough proposal for achieving this is being
currently fleshed out [MPICE] and an IETF submission would likely
follow shortly.
Having ICE produce multiple usable candidate pairs opens up
possibilities for various application specific adjustments and
optimizations. Using multiple routes concurrently
[I-D.singh-avtcore-mprtp] is one such example. Being able to
swiftly switch between existing routes based on RTT or local
Ivov Expires May 13, 2015 [Page 2]
Internet-Draft ICE Updates November 2014
indicators (e.g., perceived Wi-Fi signal strength) is another. Rapid
route switching can also be used to support network mobility as
described in [I-D.wing-mmusic-ice-mobility]. (PENDING: use with MICE
requires some further thought in order to optimize the case of a
mobile peer talking to a public media server).
Being able to update the list of available routes however, is a
separate problem that is best handled by reusing of ICE restarts,
trickle ICE and slightly improved signalling Section 3.
3. Triggering a Trickle ICE Restart
The vanilla ICE specifications [RFC5245] defines ICE restarts as a
non disruptive process where media can continue flowing between
existing candidates while ICE is being re-run to discover new paths.
ICE restarts can be triggered by either party and are signalled with
the generation of new ice-ufrag and ice-pwd attributes by the party
who is triggering the restart.
An ICE restart may result in a set of valid candidate pairs that
contains none, some, or all of the candidate pairs being used prior
to the restart. The new candidate pair set may obviously also
contain zero or more new valid pairs that were not available prior to
the restart.
It is entirely possible for an ICE restart to complete without
triggering even a single change to current media flows. This is
important because it gives implementors the possibility to use ICE
restart as an incremental process that does not in any way disrupt
existing paths.
3.1. Trickle-triggering an ICE restart
Vanilla ICE defines trigger for an ICE restart as a change in the
ice-ufrag and ice-pwd attributes. While this constitutes a trivial
change, standard Offer/Answer semantics imply the generation of a
complete offer and answer even if the above to attributes are so far
the only change in the session.
To avoid such a heavy process, this document suggests using trickle
ICE semantics for the delivery of the two attributes. This way,
whenever an ICE implementation stack issues the new values for the
ice-ufrag and ice-pwd attributes, the using application will deliver
them the same way it usually delivers trickled candidates.
For example, for the Session Initiation Protocol (SIP) [RFC3261] this
would imply sending an SIP INFO request
[I-D.ivov-mmusic-trickle-ice-sip] that could look like the following:
Ivov Expires May 13, 2015 [Page 3]
Internet-Draft ICE Updates November 2014
INFO sip:alice@example.com SIP/2.0
...
Info-Package: trickle-ice
Content-type: application/sdp
Content-Disposition: Info-Package
Content-length: ...
a=ice-pwd:asd88fgpdd777uzjYhagZg
a=ice-ufrag:8hhY
In the case of XMPP Jingle [XEP-0176] the ICE restart trigger could
look like this:
<iq from='romeo@montague.lit/orchard'
id='pd81b49s'
to='juliet@capulet.lit/balcony'
type='set'>
<jingle xmlns='urn:xmpp:jingle:1'
action='transport-info'
initiator='romeo@montague.lit/orchard'
sid='a73sjjvkla37jfea'>
<content creator='initiator' name='this-is-the-audio-content'>
<transport xmlns='urn:xmpp:jingle:transports:ice-udp:1'
pwd='asd88fgpdd777uzjYhagZg'
ufrag='8hhy'>
</transport>
</content>
</jingle>
</iq>
3.2. Operation
Once a restart is triggered, ICE processing will mostly continue
similarly to the way it does with initial session establishment.
Pairs and checklists will be recreated as per regular trickle ICE
procedures.
3.2.1. Re-checking currently valid pairs
Depending on the event that triggered the ICE restart, some of the
newly formed pairs will likely be identical to those currently in-use
by the agents. This would be the case, for example, in situations
where a new interface has become available. While it is very likely
for these pairs to continue working the same way as before the
Ivov Expires May 13, 2015 [Page 4]
Internet-Draft ICE Updates November 2014
restart, it is RECOMMENDED that they be subject to a new set of
connectivity checks in case the change in network configuration has
further impact than the usually expected.
For example, a newly available network interface would normally only
imply new connection possibilities. In some cases however, such as
the launch of a VPN application, the new interface might have been
accompanied by a change of routing policies that have invalidated the
earlier available routes.
3.2.2. Relationship with Multipath ICE
An ICE restart would typically result in a set of valid pairs. In
cases where Multipath ICE is being used, agents MUST make sure that,
as long as they are still valid, all paths that were in use prior to
the restart, would still be usable after it completes.
The exact semantics for selecting and enabling one or multiple such
paths simultaneously are still being discussed and worked out in
[MPICE]. Still, regardless of the specific messaging to take place,
it is important that ICE implementations can and should behave in a
way that does not, even briefly, disrupt media flow on pairs that are
still valid.
4. The case against infinite trickling
As part of the ongoing discussions on improving ICE, it has been
suggested [MPICE] that candidate updates be handled by making
candidate trickling an endless process.
While endless trickling does provide a simple solution to some common
use cases, it also introduces some significant drawbacks:
o Clearly determining failure. In the vast majority of cases, ICE
agents would likely have a very finite set of candidates.
Trickling and checking these candidates is currently a very
clearly delimited process that makes it possible to detect failure
and alert users in a timely manner. Using endless trickling would
make that impossible and would require the introduction of "magic"
timers.
o Promptly releasing and reallocating unnecessary candidates.
Currently, the finite nature of ICE processing makes it trivial
for agents to decide when they need to release, stop maintaining,
or reallocate resources such as relay or server-reflexive
candidates. Losing the clear boundaries of ICE processing would
remove that ability and, once again, require the introduction of
arbitrary timers in order to avoid wasting resources.
Ivov Expires May 13, 2015 [Page 5]
Internet-Draft ICE Updates November 2014
o Endless trickling has been known to hang out with Ronan, the Green
Goblin and various zombies. It also regularly contributes to
global warming and eats puppies.
5. Examples
The following examples try to describe a number of cases that require
transport reconfiguration. Some of them might be only a matter of
switching between previously validated routes without requiring an
ICE restart. Others do trigger a restart without however disrupting
existing connectivity.
5.1. Switching to a better interface. No ICE restart.
Arya and Bran use the new multipath ICE mechanisms and have a set of
pre-validated candidate pairs. They are currently communicating over
4G because, for example, it presented better RTT during ICE
processing. At a certain point Arya detects that the consent checks
exchanged with Bob over her Wi-Fi interface start presenting a lower
RTT. Alternately she could also receive an indication from the OS
that the Wi-Fi signal strength detected by her wireless interface has
gone above a certain threshold. For either of these reasons Arya
wishes to switch media from her 4G to her Wi-Fi interface.
This scenario DOES NOT require an ICE restart since no additional
checks are necessary. Hopefully such a switch will be natively
supported by the new multipath ICE mechanism, for example, through
the emission of a USE-CANDIDATE binding request over Arya's Wi-Fi
interface.
5.2. Adding an interface. ICE restart required
Arianne has an ongoing media session with Brienne over a 4G
interface. Brienne on the other hand posesses a wired and a wireless
interface. Her connection with Arianne is happening through a VPN
interface configured on top of her wireless interface.
Arianne's Wi-Fi interface then becomes available and she wishes to
migrate her session from 4G to Wi-Fi.
In order to do this Arianne does the following:
o She triggers an ICE restart by trickling new ice-ufrag and ice-pwd
values to Brienne.
o She continues exchanging media with Brienne over her 4G interface.
Ivov Expires May 13, 2015 [Page 6]
Internet-Draft ICE Updates November 2014
o She starts gathering and trickling local host, srflx and relay
candidates to Brienne.
o She starts receiving trickled candidates from Brienne, she pairs
them with her local ones and starts checking them
In the same time Brienne:
o Continues exchanging media with Arianne.
o Re-allocates host and srflx candidates for her wireless and wired
interfaces and then trickles them to Brienne.
Once a new set of candidates are validated, Arianne and Brienne may
decide to migrate their session to the pair containing any of
Arianne's new Wi-Fi addresses.
5.3. Scenarios involving MICE
TBD
6. Normative References
[I-D.ivov-mmusic-trickle-ice]
Ivov, E., Rescorla, E., and J. Uberti, "Trickle ICE:
Incremental Provisioning of Candidates for the Interactive
Connectivity Establishment (ICE) Protocol", draft-ivov-
mmusic-trickle-ice-01 (work in progress), March 2013.
[I-D.ivov-mmusic-trickle-ice-sip]
Ivov, E., Marocco, E., and C. Holmberg, "A Session
Initiation Protocol (SIP) usage for Trickle ICE", draft-
ivov-mmusic-trickle-ice-sip-02 (work in progress), June
2014.
[I-D.singh-avtcore-mprtp]
Singh, V., Karkkainen, T., Ott, J., Ahsan, S., and L.
Eggert, "Multipath RTP (MPRTP)", draft-singh-avtcore-
mprtp-09 (work in progress), June 2014.
[I-D.wing-mmusic-ice-mobility]
Wing, D., Reddy, T., Patil, P., and P. Martinsen,
"Mobility with ICE (MICE)", draft-wing-mmusic-ice-
mobility-07 (work in progress), June 2014.
Ivov Expires May 13, 2015 [Page 7]
Internet-Draft ICE Updates November 2014
[ICE-OPTS]
"MMUSIC Discussion on ICE Optimisations",
<http://www.ietf.org/mail-archive/web/mmusic/current/
threads.html#13607>.
[MPICE] Uberti, J. and J. Lennox, "Improving ICE's Nomination
Procedures", <https://docs.google.com/document/
d/1P1XPCRJKBkSjwCzIIEUJmp7V694_FzJQe-fvN8bk-Xw/edit>.
[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.
[RFC5245] Rosenberg, J., "Interactive Connectivity Establishment
(ICE): A Protocol for Network Address Translator (NAT)
Traversal for Offer/Answer Protocols", RFC 5245, April
2010.
[XEP-0176]
Beda, J., Ludwig, S., Saint-Andre, P., Hildebrand, J.,
Egan, S., and R. McQueen, "XEP-0176: Jingle ICE-UDP
Transport Method", XEP XEP-0176, June 2009.
Author's Address
Emil Ivov
Jitsi
Strasbourg 67000
France
Phone: +33 6 72 81 15 55
Email: emcho@jitsi.org
Ivov Expires May 13, 2015 [Page 8]