Re: [MMUSIC] Trickle ICE

"Stach, Thomas" <thomas.stach@siemens-enterprise.com> Tue, 09 April 2013 14:17 UTC

Return-Path: <thomas.stach@siemens-enterprise.com>
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 94DA321F9309 for <mmusic@ietfa.amsl.com>; Tue, 9 Apr 2013 07:17:41 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level:
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[AWL=0.000, BAYES_00=-2.599]
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 lunfcMsDLzD2 for <mmusic@ietfa.amsl.com>; Tue, 9 Apr 2013 07:17:40 -0700 (PDT)
Received: from senmx12-mx.siemens-enterprise.com (senmx12-mx.siemens-enterprise.com [62.134.46.10]) by ietfa.amsl.com (Postfix) with ESMTP id 591C621F9311 for <mmusic@ietf.org>; Tue, 9 Apr 2013 07:17:38 -0700 (PDT)
Received: from MCHP01HTC.global-ad.net (unknown [172.29.42.234]) by senmx12-mx.siemens-enterprise.com (Server) with ESMTP id 3E0E823F046F; Tue, 9 Apr 2013 16:17:38 +0200 (CEST)
Received: from MCHP04MSX.global-ad.net ([169.254.1.169]) by MCHP01HTC.global-ad.net ([172.29.42.234]) with mapi id 14.02.0328.009; Tue, 9 Apr 2013 16:17:38 +0200
From: "Stach, Thomas" <thomas.stach@siemens-enterprise.com>
To: "Dale R. Worley" <worley@ariadne.com>, "mmusic@ietf.org" <mmusic@ietf.org>
Thread-Topic: [MMUSIC] Trickle ICE
Thread-Index: AQHONK/meLB09GO/TUexf6RCKJEGx5jN79kg
Date: Tue, 09 Apr 2013 14:17:37 +0000
Message-ID: <F81CEE99482EFE438DAE2A652361EE120E575915@MCHP04MSX.global-ad.net>
References: <515AFCFE.7030608@acm.org> <515CB4F2.3010404@jitsi.org> <515D853C.6020107@alum.mit.edu> <515DC02D.7050105@jitsi.org> <99971244-6523-4025-AF84-1AC72D8E0681@gmail.com> <201304082321.r38NLkV72189030@shell01.TheWorld.com>
In-Reply-To: <201304082321.r38NLkV72189030@shell01.TheWorld.com>
Accept-Language: de-AT, en-US
Content-Language: de-DE
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [172.29.42.225]
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Subject: Re: [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: Tue, 09 Apr 2013 14:17:41 -0000

Dale,

this is an excellent analysis and I agree completely.

Regards
Thomas

Dale R. Worley wrote:
>> From: Alan Johnston <alan.b.johnston@gmail.com>
>> 
>> I admit that my first thought was that UPDATE was more appropriate
>> than INFO. 
>> 
>> But the more I think about it, trickling in new candidates is not
>> necessarily a part of O/A, rather it can be thought of as
>> communication between two ICE Agents. For tunneling another protocol
>> using SIP as transport, INFO is the right choice.
> 
> Ah, yes, I now agree with that -- the trickle-ICE updates are "back
> channel" amendments to the original offer/answer transfer, not
> additional offer/answer transactions.
> 
> Within generic trickle ICE, there is the possibility that additional
> candidates are provided "incrementally", that is, each protocol
> message includes only the new candidates (and end-of-candidate
> indications).  There is also the possibility that additional
> candidates are provided "cumulatively", that is, each protocol message
> includes all of the previously provided candidates.
> 
> We could specify that trickle ICE uses one method or the other, but I
> think that we should consider these to be logically equivalent at the
> level of generic trickle ICE, and allow the choice between methods to
> be done by the usage.  The reason for this is that the decision of
> method seems to be heavily dependent on the specifics of the usage.
> (Allowing each usage to make its own choice requires that we not allow
> cumulative updates to withdraw candidates previously offered, as that
> functionality cannot be provided with incremental updates.)
> 
> For instance, if updates are carried by an ordered, reliable channel
> like TCP, then there is no benefit in sending updates cumulatively.
> Similarly if the SIP usage sends updates in UPDATE requests, because
> the UAC must serialize UPDATE requests.  But if we carry updates in
> INFO messages, and we wish to not require the UAC to serialize them,
> then cumulative updates are desirable, as out-of-order receipt of INFO
> messages can cause an earlier-sent INFO to be permanently blocked by a
> later-sent INFO which reaches the UAS first.
> 
> This leads to the point that INFO is preferable to UPDATE because the
> UAC does not have to serialize INFOs, which reduces blocking.  (As
> Paul notes, we've done a lot of work to define how to properly handle
> complex cases involving UPDATE, but that work is needed because
> UPDATEs have to be serialized with respect to each other, and with
> certain other requests.) 
> 
> This leads to a broader issue:  Generic trickle ICE needs to define
> its expectations regarding reliability, correlation, and sequencing of
> updates.  If both generic ICE and its usages were defined in one I-D,
> these issues would just be design considerations, but since the
> generic specification and the usage specification are separate, these
> issues are requirements defined in the generic ICE document and each
> usage document has to show how it satisfies the requirements.  That's
> hard to do if the requirements aren't explicitly stated.
> 
> In particular, if cumulative updating is used, and candidates are
> allowed to be withdrawn, the receiver cannot determine wihch of two
> updates is "newer" by inspection, updates need to be sequenced by the
> transport mechanism.  If incremental updating is used, sequencing is
> not relevant.  Similarly, if candidates cannot be withdrawn, the newer
> of two cumulative updates has the larger candidate list.
> 
> Also, the updates need to be correlated with the "ICE negotiation
> context", so if there is an ICE restart, any delayed updates for a
> previous context that arrive can be recognized as such and ignored.
> 
> For the SIP usage, a considerable amount of sequencing and correlation
> is provided by the CSeq values:  A trickle ICE update INFO must have a
> CSeq higher than the message containing the offer/answer that started
> the corresponding ICE context, and will have a CSeq lower than the
> offer/answer that starts the next ICE context.  Similarly, CSeq
> sequences INFOs. 
> 
> Other usages may need other mechanisms to provide this information.
> 
> One matter that I haven't seen discussed is how trickle ICE ensures
> that both UAs always test the same candidate pair at the same time.
> Even if we assume that the transport of updates is quick and reliable,
> slight differences in timing at the two UAs could cause them to choose
> (at some moment) different pairs to test.  Since vanilla ICE seems to
> have been constructed to prevent this, this seems to me that it might
> be a problem and must be investigated and documented.
> 
> Dale
> _______________________________________________
> mmusic mailing list
> mmusic@ietf.org
> https://www.ietf.org/mailman/listinfo/mmusic