Re: [MMUSIC] draft-ivov-dispatch-trickle-ice-sip/draft-ivov-mmusic-trickle-ice

Paul Kyzivat <pkyzivat@alum.mit.edu> Wed, 03 April 2013 17:22 UTC

Return-Path: <pkyzivat@alum.mit.edu>
X-Original-To: mmusic@ietfa.amsl.com
Delivered-To: mmusic@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5A2C021F8D82 for <mmusic@ietfa.amsl.com>; Wed, 3 Apr 2013 10:22:08 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.337
X-Spam-Level:
X-Spam-Status: No, score=-0.337 tagged_above=-999 required=5 tests=[AWL=0.100, BAYES_00=-2.599, FH_RELAY_NODNS=1.451, HELO_MISMATCH_NET=0.611, RDNS_NONE=0.1]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id s2VoqKbg1Etq for <mmusic@ietfa.amsl.com>; Wed, 3 Apr 2013 10:22:06 -0700 (PDT)
Received: from qmta05.westchester.pa.mail.comcast.net (qmta05.westchester.pa.mail.comcast.net [IPv6:2001:558:fe14:43:76:96:62:48]) by ietfa.amsl.com (Postfix) with ESMTP id 9E5A021F8E6C for <mmusic@ietf.org>; Wed, 3 Apr 2013 10:21:59 -0700 (PDT)
Received: from omta21.westchester.pa.mail.comcast.net ([76.96.62.72]) by qmta05.westchester.pa.mail.comcast.net with comcast id KQDr1l0051ZXKqc55VMwvj; Wed, 03 Apr 2013 17:21:56 +0000
Received: from Paul-Kyzivats-MacBook-Pro.local ([50.138.229.164]) by omta21.westchester.pa.mail.comcast.net with comcast id KVMv1l00R3ZTu2S3hVMvQ2; Wed, 03 Apr 2013 17:21:56 +0000
Message-ID: <515C6531.5060001@alum.mit.edu>
Date: Thu, 04 Apr 2013 01:21:53 +0800
From: Paul Kyzivat <pkyzivat@alum.mit.edu>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:17.0) Gecko/20130307 Thunderbird/17.0.4
MIME-Version: 1.0
To: mmusic@ietf.org
References: <515AFCFE.7030608@acm.org>
In-Reply-To: <515AFCFE.7030608@acm.org>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=comcast.net; s=q20121106; t=1365009716; bh=JlBswu8iKNtZ2ZdVmyKOPjIuBQ2y0wALTBtN9loicYU=; h=Received:Received:Message-ID:Date:From:MIME-Version:To:Subject: Content-Type; b=NNClXql+No2DKBOc78x7YemJVGXl8uE6jXlHtaYcZ6xQGaXmWJnG2MCKSHQJPJGeG hoW3D4z0Ly6xEk9UdEsXV6zBA3+yxMaCZrsaxwMCWXh808WGdGsf3PEq8FxiqVgUTZ 8yGrKCEjR+2tdLLzJzBfdUt6ffiSEM06UP07huV9mtnzeiNWEt9h+dVXplTwM/kemc 9mkgdaQ/EE5/s9h5hMkiEKzM1Gi+RkZ0z1jJggxJSZka2FnAppg/7xfJ9pNgjFsgcP bal7dmBhOvUPNmcvs/LGtfs9MnqgM8tCxVgcmS2XivmLqmOPV17K4uB983XsgGd3bo 4PEF3/VqmKO0A==
Subject: Re: [MMUSIC] draft-ivov-dispatch-trickle-ice-sip/draft-ivov-mmusic-trickle-ice
X-BeenThere: mmusic@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Multiparty Multimedia Session Control Working Group <mmusic.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/mmusic>, <mailto:mmusic-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/mmusic>
List-Post: <mailto:mmusic@ietf.org>
List-Help: <mailto:mmusic-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/mmusic>, <mailto:mmusic-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 03 Apr 2013 17:22:10 -0000

I just replied to a later message before dealing with this one. :-(

Using UPDATE (in normal sip o/a discipline) means that the hard learned 
knowledge of how to make o/a work in complex cases can be reused.

Conversely, adding INFO as a way to extend the existing O/A mechanism 
with some additional variations is likely to introduce great additional 
complexity.

	Thanks,
	Paul

On 4/2/13 11:45 PM, Marc Petit-Huguenin wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA256
>
> I read draft-ivov-dispatch-trickle-ice-sip and draft-ivov-mmusic-trickle-ice
> during the preparation of the rfc5245bis draft and I have some suggestions
> that I will be presenting step by step below:
>
> 1. The 180 needs to be reliable
>
> In section 6 of trickle-ice-sip, the Answer is carried by a 180 response,
> which can be lost before the INFO request is received.  The 180 will probably
> be resent later, but that still does not look right to send new candidates
> without be sure that the first batch of candidates have been received.  PRACK
> seems the right solution to this issue.  Also 183 seems a better fit than 180,
> at least until all the candidates are sent, but that's not really important.
> That gives us this call flow:
>
>
>       STUN/Turn                                                STUN/TURN
>         Servers          Alice                      Bob          Servers
>            |               |                         |               |
>            |<--------------|                         |               |
>            |   Candidate   |                         |               |
>            |   Discovery   |                         |               |
>            |-------------->|     INVITE (Offer)      |               |
>            |               |------------------------>|               |
>            |               |      183 (Answer)       |-------------->|
>            |               |<------------------------|               |
>            |               | PRACK                   |               |
>            |               |------------------------>|               |
>            |               |               200 PRACK |               |
>            |               |<------------------------|               |
>            |               |                         |               |
>            |               |  INFO (more candidates) |   Candidate   |
>            |               |<------------------------|               |
>            |               |  Connectivity Checks    |               |
>            |               |<=======================>|   Discovery   |
>            |               | INFO (more candidates)  |<--------------|
>            |               |<------------------------|               |
>            |               |                     180 |               |
>            |               |<------------------------|               |
>            |               |  Connectivity Checks    |               |
>            |               |<=======================>|               |
>            |               |                         |               |
>            |               |          200 OK         |               |
>            |               |<------------------------|               |
>            |               |                         |               |
>            |               |    5245 SIP re-INVITE   |               |
>            |               |------------------------>|               |
>            |               |          200 OK         |               |
>            |               |<------------------------|               |
>            |               |                         |               |
>            |               |                         |               |
>            |               |<===== MEDIA FLOWS =====>|               |
>            |               |                         |               |
>
>
> 2. Use UPDATE instead of INFO
>
> UPDATE works as well as INFO, and is more SIPish.
>
> Here's the call flow:
>
>       STUN/Turn                                                STUN/TURN
>         Servers          Alice                      Bob          Servers
>            |               |                         |               |
>            |<--------------|                         |               |
>            |   Candidate   |                         |               |
>            |   Discovery   |                         |               |
> (1)       |-------------->| INVITE (Offer)          |               |
>            |               |------------------------>|               |
> (2)       |               |            183 (Answer) |-------------->|
>            |               |<------------------------|               |
>            |               | PRACK                   |               |
>            |               |------------------------>|               |
>            |               |               200 PRACK |               |
>            |               |<------------------------|               |
>            |               |                         |               |
> (3)       |               |     UPDATE (more cands) |   Candidate   |
>            |               |<------------------------|               |
> (4)       |               |              200 UPDATE |               |
>            |               |------------------------>|   Discovery   |
>            |               |  Connectivity Checks    |               |
>            |               |<=======================>|               |
> (5)       |               |     UPDATE (last cands) |<--------------|
>            |               |<------------------------|               |
> (6)       |               |              200 UPDATE |               |
>            |               |------------------------>|               |
>            |               |                     180 |               |
>            |               |<------------------------|               |
>            |               |  Connectivity Checks    |               |
>            |               |<=======================>|               |
>            |               |                         |               |
>            |               |             200 INVITE  |               |
>            |               |<------------------------|               |
>            |               |                         |               |
>            |               |    5245 SIP re-INVITE   |               |
>            |               |------------------------>|               |
>            |               |            200 reINVITE |               |
>            |               |<------------------------|               |
>            |               |                         |               |
>            |               |                         |               |
>            |               |<===== MEDIA FLOWS =====>|               |
>            |               |                         |               |
>
>
> 3. Use accumulated candidate list
>
> As far as I understand the documents, the candidates are sent as soon as they
> are discovered.  I think that it would be better to send an accumulated list
> of candidates instead of the delta list of candidates.  The priority
> calculation and the elimination of redundant candidates do not need to know
> the complete list of candidate to work, but sending the accumulated list
> instead of a delta could permit in the future to remove candidates, if we find
> a need to do so.  This also removed the need for sdpfrag.
>
> But the most important reason is for the next step.
>
>
> 4. Replace end-of-candidates attribute by precandidate attributes
>
> There is currently an end-of-candidates attribute that is sent to signal the
> end of the candidate gathering phase.  I think it is better to do it the
> opposite way, i.e. to send candidates as they are discovered under a different
> attribute name, and then to send all the candidates only when the gathering
> phase is done.  Here's the partial SDPs exchanged in the call flow in 2) but
> skipping one update (examples are from RFC 5245):
>
> (1) Alice sends all the candidates after the end of the gathering phase
> (half-trickle).  She also signals that she supports trickle.
>
> a=ice-options:trickle
> a=candidate:1 1 UDP 2130706431 192.0.2.1 3478 typ host
>
> (2) Bob knows that Alice supports half trickle, so he sends only the host
> candidates, which is all he has so far, but using the attribute precandidate
> instead of candidate.  He sends them in a reliable 183:
>
> a=ice-options:trickle
> a=precandidate:1 1 UDP 2130706431 10.0.1.1 8998 typ host
> a=precandidate:1 1 UDP 2130706431 10.0.1.2 8998 typ host
>
> If Bob supported ICE but not trickle, he would have answered with its complete
> list of candidates.
>
> (3) Bob discovers some candidates, but there is more to come, so it sends a
> accumulated list of precandidates:
>
> a=ice-options:trickle
> a=precandidate:1 1 UDP 2130706431 10.0.1.1 8998 typ host
> a=precandidate:2 1 UDP 1694498815 192.0.2.3 45664 typ srflx raddr 10.0.1.1
>    rport 8998
> a=precandidate:1 1 UDP 2130706431 10.0.1.2 8998 typ host
>
> (4)  Alice responds with the same SDP than in (1)
>
> (5) Bob receives the last batch of candidates, so now it sends an SDP
> containing the all the candidates, as if it did not understand trickle.:
>
> a=ice-options:trickle
> a=candidate:1 1 UDP 2130706431 10.0.1.1 8998 typ host
> a=candidate:2 1 UDP 1694498815 192.0.2.3 45664 typ srflx raddr 10.0.1.1 rport
>    8998
> a=candidate:1 1 UDP 2130706431 10.0.1.2 8998 typ host
>
> (6) Alice sends back the same SDP.  Because Bob use candidate attributes
> instead of precandidate, she knows that she has all the candidates, as if
> end-of-candidates was received.
>
> - --
> Marc Petit-Huguenin
> Email: marc@petit-huguenin.org
> Blog: http://blog.marc.petit-huguenin.org
> Profile: http://www.linkedin.com/in/petithug
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.12 (GNU/Linux)
>
> iQIcBAEBCAAGBQJRWvz6AAoJECnERZXWan7Ez6YQAIP3FzJHMD+X135/jr2ZpUYO
> J3Ogf/JfoOC8Wwwe+btmWG3KuLMnaqzmQnmJNpdypyaEQN6ExK+giMZ136D/R8JH
> MVwdL5T+NMRZSLfJwgkDK+gnZgJx8aKfIycB3RRQWgY1tXNuQhPyZsE20V5k2Rli
> 6vz6sJ9eN4p4e7WhKRSuc9+IhLYAkAmPTRd6JVhF6aHGED8PMNI/AYNo+SJuwaJh
> uDXoUPuox1W/zN9DocsTdeNo3rK0gLT59WHHmHEcMpyyjsjjcUm0RYHt0NIhaQ+0
> snpKFx5akZWUMN8R+IqmXnMVIYlXxVkHxLJFbAYLRYOUFGDJJp22p13i14WvSF4r
> mM7mVDuWIBd9DBIB6UH4PGKcU9gPhXif+37S2gB5LNofVgOBvvt4jcHPMxgII8Wm
> eybWcfc1YseKhqsJq4DqJ0cc3vnxfyL0rfb22uB/E82cErLz6fyxjKJhGhuqyyKR
> FAWXXjxKMfQOsThMlobvDjMR2oTyjz8IZc65MdOU+bQHy2SSPVxQjX6xMVSVR4yr
> Z66GZsJkdg5mw0h6scS+T4dbF+/4a6tUG/0hCTvhaI3vyULmBf/YLg5VdodP1HzJ
> GUIDFEzR9whKt0+nkwAumLPpHmTbIF7VuWg/YZmbq5tqY2n4gpuUDfCk7pusuBRb
> yk3C5OOf2RWXhf6ekDuf
> =jzXd
> -----END PGP SIGNATURE-----
> _______________________________________________
> mmusic mailing list
> mmusic@ietf.org
> https://www.ietf.org/mailman/listinfo/mmusic
>