Internet DRAFT - draft-li-dispatch-ice-trickling-signalling
draft-li-dispatch-ice-trickling-signalling
DISPATCH Shi Tao. Li
Internet-Draft Huawei Technologies
Intended status: Standards Track December 7, 2012
Expires: June 10, 2013
SIP signalling for ICE trickling
draft-li-dispatch-ice-trickling-signalling-00
Abstract
Trickle ICE is a mechanism that allows ICE agents to send and receive
candidates incrementally rather than exchanging complete lists. This
document gives several solutions for trickle ICE with SIP protocol.
Note
Discussion and suggestions for improvement are requested, and should
be sent to dispatch@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 June 10, 2013.
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
Li Expires June 10, 2013 [Page 1]
Internet-Draft SIP signalling for ICE trickling December 2012
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.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
4. Solutions . . . . . . . . . . . . . . . . . . . . . . . . . . 3
4.1. Using UPDATE method . . . . . . . . . . . . . . . . . . . 3
4.2. Using INFO method . . . . . . . . . . . . . . . . . . . . 5
4.3. Using SUBSCRIBE/NOTIFY . . . . . . . . . . . . . . . . . . 7
5. Comparison . . . . . . . . . . . . . . . . . . . . . . . . . . 10
6. Security Considerations . . . . . . . . . . . . . . . . . . . 12
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12
8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 12
9. Normative References . . . . . . . . . . . . . . . . . . . . . 12
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 13
Li Expires June 10, 2013 [Page 2]
Internet-Draft SIP signalling for ICE trickling December 2012
1. Introduction
Trickle ICE is a mechanism that allows ICE agents to send and receive
candidates incrementally rather than exchanging complete lists. The
purpose of this mechanism is to reduce session establishment times,
and trickle ICE had already been included in XMPP Jingle [XEP-0176]
and it has been used in rtcweb.
[I-D.rescorla-mmusic-ice-trickle] describes the basic mechanism about
trickle ICE. And this document illustrates several possible methods
that can be used for trickle ICE with SIP protocol.
2. Terminology
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].
3. Overview
The general descirption about trickle ICE as described in
[I-D.rescorla-mmusic-ice-trickle] is that the initiator first include
an initial ICE description (such as ICE credentials and host
candidates)in their Offers. Answerers in this situation MAY send
their ICE description at any point after receiving that of the
offerer. After sending an ICE description each agent can continue
exchanging of additional candidates
4. Solutions
4.1. Using UPDATE method
This method complies the SDP Offer/Answer model as described in
RFC3264. After the first SDP O/A exchange for the initial ICE
description, each side can start to send the SIP UPDATE request which
contains the newly collected candidats.
Li Expires June 10, 2013 [Page 3]
Internet-Draft SIP signalling for ICE trickling December 2012
STUN STUN
server Alice Bob Server
| |F1 1NVITE(SDP offer) | |
| | ICE host candidate | |
| discovery | -----------------> | |
| <------------ | | discovery |
| | |---------> |
| new cands |F2 18x response(SDP answer) | |
| ---------> | ICE host candidate | |
| | <-------------------- | new cands |
| | | <------- |
| |F3 UPDATE(SDP offer) | |
| | new candidates | |
| | --------------------> | |
| | | |
| | | |
| new cands |F4 200 OK to UPDATE | |
| ---------> |SDP answer(new candidates | |
| | may has) | |
| | <-------------------- | |
| | | |
| |F5 UPDATE(SDP offer) | |
| | new candidates | |
| | (only can send when F4 has | |
| | received) | |
| | --------------------> | |
| | | |
| | | |
|<-----T1------>|<-------------T2------------>|<---T1---->|
Figure 1: Using UPDATE request for ICE trickling
As described above, each side can start to send the SIP UPDATE
request which contains the newly collected candidats after the first
SDP O/A exchange. This may cause the "glare" problem as described in
RFC3264. In SIP protocol, as specified in RFC3261, when "glare"
problem happened, the user agent MUST return a 491 (Request Pending)
response, then waits for the timer to expire, so it can start to send
another new UPDATE request. Although the "glare" problem can be
sloved, it will increase the session setup times.
Another issue for the UPDATE method is that, for example, if Alice
wants to send another UPDATE request (message F5 in Figure 1) to
carry another new candidats, she has to wait until the SDP answer in
SIP 200 OK for the previous UPDATE request (message F4 in figure 1)
has received from BOb. This does not completely comply with the
trickle ICE mechanism, because, trickle ICE requires the participants
to send the additional candidates as soon as the new candidate has
Li Expires June 10, 2013 [Page 4]
Internet-Draft SIP signalling for ICE trickling December 2012
been collected.
Assuming the candidate collecting time is T1, message transfer time
from Alice to Bob is T2, and T1 smaller than 2*T2.
For the best case, without glare happened:
The fastest time for Bob to receive the first additional candidates
information (messsage F3 in Figure1) after received the first SIP
INVITE request (message F1 in Figure 1)is 2*T2.
The fast time for Alice to receive the first additional candidates
information (message F4 in Figure 1)after received the first response
message (message F2 in Figure1)is 2*T2.
Using UPDATE method, in some cases, may has some effect to reduce the
session establichment, but in most cases, it can not guarantee it
works, for example, when "glare" happened.
4.2. Using INFO method
This method use SIP INFO message to carry the additional candidates.
Either side can start to send the SIP INFO message without any
collision problem.
Li Expires June 10, 2013 [Page 5]
Internet-Draft SIP signalling for ICE trickling December 2012
STUN STUN
server Alice Bob Server
| |F1 1NVITE(SDP offer) | |
| | ICE host candidate | |
| discovery | -----------------> | |
| <------------ | | discovery |
| | |---------> |
| new cands |F2 18x response(SDP answer) | |
| ---------> | ICE host candidate | |
| | <-------------------- | new cands |
| | | <------- |
| |F3 INFO(package for | |
| | new candidates ) | |
| | --------------------> | |
| | | |
| |F4 200 OK to INFO | |
| | <-------------------- | |
| | | |
| |F5 INFO(package for | |
| | new candidates ) | |
| | <-------------------- | |
| | | |
| |F6 200 OK to INFO | |
| | --------------------> | |
| | | |
|<-----T1------>|<-------------T2------------>|<---T1---->|
Figure 2: Using INFO request for ICE trickling
Using SIP INFO method to carry additional candidates needs to define
a new info package as described in RFC6086.
The issue for INFO method is that, INFO message has to use the
existing SIP dialog, that is to say, as the caller, Alice can not
send the INFO message(message F3 in FIgure 2) until the first
response has recived from Bob(message F2 in Figure 2). When the
first response from Bob has received, Alice can start to send INFO
message any time it needed. At Bob side, it can send the INFO
message just after it send out the first response.
Using INFO method, only the candidiates information needs to be
exchanged between the two participants.
The only delay for session setup using INFO method is at the caller
side, and only for the first INFO message. The other procedures
comply the trickle ICE mechanism.
Assuming the candidate collecting time is T1, message transfer time
from Alice to Bob is T2, and T1 smaller than 2*T2.
Li Expires June 10, 2013 [Page 6]
Internet-Draft SIP signalling for ICE trickling December 2012
For most cases, the fastest time for Bob to receive the first
additional candidates information (messsage F3 in Figure 2) after
received the first SIP INVITE request (message F1 in Figure 2)is
2*T2.
The fast time for Alice to receive the first additional candidates
information (message F5 in Figure 2)after received the first response
message (message F2 in Figure 2)is T1+T2-T2=T1.
Using INFO method can reduce the session establishment times, has
better effect than using UPDATE method.
4.3. Using SUBSCRIBE/NOTIFY
SUBSCRIBE/NOTIFY method is similar to the Presence service, each side
has to implement a trickle AS. One participant has to subscribe to
the trickle AS that belong to another participant.
At one side, whenever it collects a new candidate, it uses PUBLISH
message to send the new candidates to its trickle AS, the trickle AS
will then send a NOTIFY message that also contain the new candidates
to the other side.
STUN Alice Bob STUN
server Alice trickle AS trickle AS Bob Server
| | | | | |
| |F1 1NVITE (SDP offer) ICE host candidate| |
|discovery | --------------------------------------> | |
|<---------| | | |discovery|
| | | | |-------> |
| |F2 18x response(SDP answer) | |
| | ICE host candidate | |
| | <-------------------------------------- | |
| | |F3 SUBSCRIBE | |
| | | event=trickle | |
| | | <---------------------- | |
| | | | | |
| | |F4 200 OK to SUBSCRIBE | |
| | | ----------------------> | |
| | F5 SUBSCRIBE | | |
| | event=trickle | | |
| | ----------------------> | | |
| | | | | |
| | F6 200 OK to SUBSCRIBE | | |
| | <---------------------- | | |
| new cands| | | | |
| -------> |F7 PUBLISH | | | |
Li Expires June 10, 2013 [Page 7]
Internet-Draft SIP signalling for ICE trickling December 2012
| | (new cands) | | | |
| | ------------>| | | |
| |F8 200 OK | | | |
| |<----------- | | | |
| | |F9 NOTIFY (new cands) | |
| | | ----------------------> | |
| | |F10 200 OK | |
| | | <---------------------- | |
| | | | |new cands|
| | | | F11 PUBLISH |<------- |
| | | | (new cands) | |
| | | | <----------- | |
| | | | F12 200 OK | |
| | | | -----------> | |
| | F13 NOTIFY (new cands) | | |
| | <---------------------- | | |
| | F14 200 OK | | |
| | ----------------------> | | |
| | | | | |
| |<-----T4----->| |<----T4------>| |
| |<-----------------T2-------------------->| |
|<---T1--->|<------------T3---------->| |<---T1-->|
| | |<------------T3---------->| |
Figure 3: Using SUBSCRIBE/NOTIFY for ICE trickling
Using SUBSCRIBE/NOTIFY method needs to define a new subscribe event
package as described in RFC3265.
At the callee side, Bob can start to send SUBSCRIBE request (message
F3 in Figure 3) when the first SIP INVITE request has received
(message F1 in FIgure 3), the request-URI of the SUBSCRIBE request
contains the AOR of Alice, and the event header field contains the
new value "trickle", the SUBSCRIBE request will route to the trickle
AS of Alice. Whenever Bob has collected a new candidate, it can send
a PUBLISH request(message 11 in Figure 3) which contain the new
candidate to its own trickle AS. When Bob trickle AS has received
the SUBSCRIBE request from Alice(message F5 in Figure 3), it can
start to send the NOTIFY request to Alice which including the new
candidate information of Bob. (message F13 in Figure 3).
At the caller side, if Alice has already known that Bob supports
trickle ICE before the call, Alice can send the SUBSCRIBE request
(message F5 in Figure 3) just after send out the first SIP INVITE
request, if Alice does know whether Bob supports trickle ICE before
the call, she has to wait until it has received the first response
from Bob(message F2 in Figure 3). Alice can send the PUBLISH request
(message F7 in Figure 3)which contain the additional candidate to its
Li Expires June 10, 2013 [Page 8]
Internet-Draft SIP signalling for ICE trickling December 2012
trickle AS only after the first SIP INVITE requset(message F1 in
Figure 3) has sent out.
Assuming that the candidate collecting time is T1, message transfer
time from Alice to Bob is T2, and T1 smaller than 2*T2, message
transfer time from Alice to Bob trickle AS and the time from Bob to
Alice trickle AS is T3, obviously T3 smaller than T2. The time from
Alice to Alice trickle AS and the time from Bob to Bob trickle AS is
T4, but it can be ignored.
If Alice has already known that Bob supports trickle ICE before the
call:
The fastest time for Bob to receive the first additional candidates
information (messsage F9 in Figure 3) after received the first SIP
INVITE request (message F1 in Figure 3)is happened at the case that
when F7 sends after F1, and arrives at Alice trickle AS before F3, so
the fastest time is 2*T3.
The fast time for Alice to receive the first additional candidates
information (message F13 in Figure 3)after received the first
response message (message F2 in Figure 3)is happened at the case that
when Alice send SUBSCRIBE request (F5) after F1, and do not need to
wait F2, so the fastest time is T2+T1+T4+T3-2*T2=T1.
If Alice does know whether Bob suppost trickle ICE before the call:
The fastest time for Bob to receive the first additional candidates
information (messsage F9 in Figure 3) after received the first SIP
INVITE request (message F1 in Figure 3)is also 2*T3,
The fast time for Alice to receive the first additional candidates
information (message F13 in Figure 3)after received the first
response message (message F2 in Figure 3)is happened at the case that
when Alice sends F5 only when F2 has received, and knows that Bob
support trickle ICE, so the fastest time is "2*T3" when F11 arrives
befer F5(T2+T1+T4+T3+(T2+T3-(T1+T4))-2*T2=2*T3), or "T1" when F5
arrives before F11(T2+T1+T4+T3-2*T2=T1).
For the SUBSCRIBE/NOTIFY method, the effect to reduce session setup
time is better than using INFO method, because PUBLISH request can be
sent in a seperate dialog. However, this method also has some issues
if one participant is involved in multiple calls. Then there would
be multiple subscriptions to the trickle event. And the trickle AS
would somehow need to figure out which subscriber should receive a
particular published candidate.
Li Expires June 10, 2013 [Page 9]
Internet-Draft SIP signalling for ICE trickling December 2012
5. Comparison
This section lists some criterions for comparison for the above three
methods.
Li Expires June 10, 2013 [Page 10]
Internet-Draft SIP signalling for ICE trickling December 2012
+----------------+---------------+-------------+------------------+
| | UPDATE method | INFO method | SUBSCRIBE/NOTIFY |
+----------------+---------------+-------------+------------------+
| Using SDP O/A | Yes | No | No |
| | | | |
+----------------+---------------+-------------+------------------+
|initiator can | | | |
|send new cands | | | |
|only when first | Yes | Yes | No |
|answer has | | | |
|received from | | | |
|the remote side | | | |
+----------------+---------------+-------------+------------------+
| glare issue | Yes | No | No |
| | | | |
+----------------+---------------+-------------+------------------+
|inforamtion |All the SDP |Only new |Only new cands |
|exchange |information has|cands infor |infor needs to |
| |to exchange |needs to |exchange |
| | |exchange | |
+----------------+---------------+-------------+------------------+
|needs to wait | | | |
|the answer | | | |
|so another new | Yes | No | No |
|cands can be | | | |
|send | | | |
| | | | |
+----------------+---------------+-------------+------------------+
| new parameter | | Yes | YES |
| needed | No |(new info |(new event) |
| | | package) | |
+----------------+---------------+-------------+------------------+
|more signalling |less signalling| need more | need more |
| |added |signalling |signalling than |
| | |than UPDATe | INFO method |
| | |method | |
+----------------+---------------+-------------+------------------+
|effect of | | | |
|increasing the |Not too much |better than | better then INFO |
|setup time | |UPDATE | |
+----------------+---------------+-------------+------------------+
|multiple call | | | |
|interworking | No | No | Yes |
|problem | | | |
+----------------+---------------+-------------+------------------+
Table 1: methods comparison
Li Expires June 10, 2013 [Page 11]
Internet-Draft SIP signalling for ICE trickling December 2012
6. Security Considerations
To do
7. IANA Considerations
Needed if INFO method or SUBSCRIBE/NOTIFY method has been chosen as
the final method.
8. Acknowledgements
Thanks to Paul Kyzivat for providing useful comments to the document.
9. Normative References
[I-D.rescorla-mmusic-ice-trickle]
Rescorla, E., Uberti, J., and E. Ivov, "Trickle ICE:
Incremental Provisioning of Candidates for the Interactive
Connectivity Establishment (ICE) Protocol",
draft-rescorla-mmusic-ice-trickle-01 (work in progress),
October 2012.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[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.
[RFC3265] Roach, A., "Session Initiation Protocol (SIP)-Specific
Event Notification", RFC 3265, 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.
[RFC6086] Holmberg, C., Burger, E., and H. Kaplan, "Session
Initiation Protocol (SIP) INFO Method and Package
Framework", RFC 6086, January 2011.
Li Expires June 10, 2013 [Page 12]
Internet-Draft SIP signalling for ICE trickling December 2012
Author's Address
Shitao Li
Huawei Technologies
Huawei Base
101 Software Avenue, Yuhua District
Nanjing, Jiangsu 210012
China
Phone: +86-25-56624157
Email: lishitao@huawei.com
Li Expires June 10, 2013 [Page 13]