Re: [MMUSIC] Trickle ICE
Martin Thomson <martin.thomson@gmail.com> Thu, 11 October 2012 17:16 UTC
Return-Path: <martin.thomson@gmail.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 0501021F86C6 for <mmusic@ietfa.amsl.com>; Thu, 11 Oct 2012 10:16:40 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.499
X-Spam-Level:
X-Spam-Status: No, score=-3.499 tagged_above=-999 required=5 tests=[AWL=0.100, BAYES_00=-2.599, RCVD_IN_DNSWL_LOW=-1]
Received: from mail.ietf.org ([64.170.98.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id sXBOusVJOt9J for <mmusic@ietfa.amsl.com>; Thu, 11 Oct 2012 10:16:39 -0700 (PDT)
Received: from mail-wg0-f44.google.com (mail-wg0-f44.google.com [74.125.82.44]) by ietfa.amsl.com (Postfix) with ESMTP id C497721F86C3 for <mmusic@ietf.org>; Thu, 11 Oct 2012 10:16:38 -0700 (PDT)
Received: by mail-wg0-f44.google.com with SMTP id dr13so1080036wgb.13 for <mmusic@ietf.org>; Thu, 11 Oct 2012 10:16:37 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=NIORz6wPHmrE+6Akw6pqjQ6YTtVFLGaxac9nVCeuVxg=; b=Iv4ad3INoP0YUDHim7i4Dnc/CJZw2CKwps+R8d9VWeIooCojPgLt+tuckQ9dm7SqBX t9vvF0TPmuick6bV2pZWvBp/zByUjqPCos8j+IL5CYVjDzwbQjNyq0JdyWVn8VbW1Y4n v9YZsZsrI0LzGSiIWgqzAt69mxpm7hHsCYOtGwz19utZPVE3L8PB6kFuuMq9mp+hSBUe L+ch0SeBXCdUMNnH+YLsdG8RPtelWLuiUSc0uRm8qYDoCitgodeX6sligOTdvlY+pe5T qYKbjevqbNKsmmq7NAvus6G7Yr/pNR2+hg+1zHdHticNNsZzaoWEul9mR4Umxfo4zZjy hiCA==
MIME-Version: 1.0
Received: by 10.216.209.40 with SMTP id r40mr953795weo.144.1349975797738; Thu, 11 Oct 2012 10:16:37 -0700 (PDT)
Received: by 10.180.96.9 with HTTP; Thu, 11 Oct 2012 10:16:37 -0700 (PDT)
In-Reply-To: <CABkgnnXtK_c1G2t9_0pFpNYZAdXCtDxtdSroRXQHjqfcQq_j2g@mail.gmail.com>
References: <20121010141600.30314.22528.idtracker@ietfa.amsl.com> <5075864F.3030700@jitsi.org> <CABkgnnX1TaXMYqqLzvwzMRjPO72CccUj6j7oic_-6Oqy+pUZrg@mail.gmail.com> <5075FAC3.20709@jitsi.org> <CABkgnnXtK_c1G2t9_0pFpNYZAdXCtDxtdSroRXQHjqfcQq_j2g@mail.gmail.com>
Date: Thu, 11 Oct 2012 10:16:37 -0700
Message-ID: <CABkgnnWmAZnJJ6JkB9-MJStHA4jiCqLg_La5wzDEOzFYrOW3tA@mail.gmail.com>
From: Martin Thomson <martin.thomson@gmail.com>
To: Emil Ivov <emcho@jitsi.org>
Content-Type: text/plain; charset="UTF-8"
Cc: MMUSIC IETF WG <mmusic@ietf.org>
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: Thu, 11 Oct 2012 17:16:40 -0000
Forgot something, inline below... On 11 October 2012 10:13, Martin Thomson <martin.thomson@gmail.com> wrote: > On 10 October 2012 15:46, Emil Ivov <emcho@jitsi.org> wrote: >> Yes, the above sentence may indeed be misleadingly read as "respecting >> the order of the streams is all there is to it". What was really meant >> was something along the lines of: "respecting the order of streams >> improves the chances of the connectivity checks being run simultaneously >> for a particular stream/component" >> >>> A naive implementation would use the set of known candidates on each >>> component to make this determination. However, that set is >>> potentially different to the set of candidates known to their peer. >>> That could cause a mismatch if both peers "unfreeze the first >>> non-empty checklist." >> >> Correct, but this is not going to be a problem. When the corresponding >> candidates eventually find their way to the agent, it would unfreeze >> their local counter-parts and, if necessary, rerun any in-progress or >> failed checks. This is explained in Section 9: >> >> [snip] the agent examines the check >> list looking for another pair that would be redundant with the new >> one. If such a pair exists and its state is: >> >> Failed: the agent chooses the pair with the higher priority local >> candidate, places it in the Waiting state and removes the other >> one as redundant. >> In-Progress: The agent cancels the in-progress transaction (where >> cancellation happens as explained in Section 7.2.1.4 of >> [RFC5245]), then it chooses the pair with the higher priority >> local candidate, places it in the Waiting state and removes the >> other one as redundant. >> >> Does this sound reasonable or were you referring to something else? > > Actually, this part in Section 9 wasn't very clear. I think that the > terms aren't quite right. "Redundant" and "priority" have specific > meanings in ICE that I think aren't quite right for using here. > > This wasn't immediately clear, though I get where you are going with > this. Though I do think that you need to ensure that this > cancellation doesn't occur to the highest priority" > > You aren't talking about priority or redundancy, I think. You want to > ensure that you are making checks on the first component (of the first > media stream). What you want is probably more like: > > The agent examines the check list and looks for a pair with the same > foundation. Where multiple such pairs exist, the one from the > component that is first in order is selected. If an existing pair is > selected, based on its state, the following actions are taken: > > Failed: The agent marks the new pair as Failed. [[?: not sure that > this is entirely safe, might need to re-open this one to prevent a > race condition...]] > In-Progress: If the new pair is for a component [[i.e. media stream + > component]] after the existing pair, the new pair is Frozen. If the > new pair is for a component that comes before the existing pair's > component the existing pair becomes Frozen, the outstanding > transaction on the existing pair is cancelled, and the new pair is > placed in the Waiting state. > Waiting: If the new pair is for a component [[i.e. media stream + > component]] after the existing pair, the new pair is Frozen. If the > new pair is for a component that comes before the existing pair's > component the existing pair becomes Frozen and the new pair is placed > in the Waiting state. > etc... > > Does *that* make sense? Note: we probably also need to note that a transaction can succeed for a Frozen candidate pair (due to the fact that you can't take a STUN packet back, so "cancelling" a transaction might still result in a successful Binding response. I don't know what you would do with this, but I'd just move the pair to Succeeded. >> Mmm ... it might be my lack of IETF experience, but aren't references >> supposed to happen the other way around? That is, if RTCWEB decides to >> use Trickle ICE, then shouldn't RTCWEB documents be referring to this >> spec and making whatever normative declarations they find appropriate? > > Yes, but the draft makes the claim about a WebRTC app that is > contacting peers in the same domain. This makes a big assumption: > namely, that ALL the other entities in that domain implement trickle > ICE. I infer from this that you are assuming that rtcweb is going to > make this MUST implement, so that you can at least expect all browsers > to implement trickle ICE. That is if you are assuming that the same > domain is only using browsers. > >> Besides, trickle ICE is already in use by XMPP apps and SIP will >> probably follow. Why would the RTCWEB usage be referred to and not the >> others? > > SIP may well follow, but that doesn't mean that you can make any > assumptions about support. > >>> In particular, this relates to the decision to require >>> signaling of support for trickle ICE outside of SDP (a decision that I >>> need to think about a little more). >> >> Well the idea is that it doesn't really need to be signalling. The >> example that we give is about a WebRTC app with no cross domain support. >> In this case the WebRTC app can just enable trickle ICE without checking >> anything since the remote agent is bound to have it too. Again, it's >> just an example. We are not saying this is how it's going to be done for >> RTCWEB. > > You can't send an offer sans candidates and expect it to work. That's > part of the reason you are writing this draft, as I understand. > Unless you know for certain that the other side implements it. I > don't think that this is realistic. Therefore, signaling. > >> Does this make sense? > > Not entirely ;)
- [MMUSIC] Trickle ICE Emil Ivov
- Re: [MMUSIC] Trickle ICE Martin Thomson
- Re: [MMUSIC] Trickle ICE Christer Holmberg
- Re: [MMUSIC] Trickle ICE Emil Ivov
- Re: [MMUSIC] Trickle ICE Emil Ivov
- Re: [MMUSIC] Trickle ICE Christer Holmberg
- Re: [MMUSIC] Trickle ICE Emil Ivov
- Re: [MMUSIC] Trickle ICE Martin Thomson
- Re: [MMUSIC] Trickle ICE Martin Thomson
- Re: [MMUSIC] Trickle ICE Christer Holmberg
- Re: [MMUSIC] Trickle ICE Olle E. Johansson
- Re: [MMUSIC] Trickle ICE Emil Ivov
- Re: [MMUSIC] Trickle ICE Emil Ivov
- Re: [MMUSIC] Trickle ICE Emil Ivov
- Re: [MMUSIC] Trickle ICE Lishitao
- Re: [MMUSIC] Trickle ICE Christer Holmberg
- Re: [MMUSIC] Trickle ICE Emil Ivov
- Re: [MMUSIC] Trickle ICE Emil Ivov
- Re: [MMUSIC] Trickle ICE Christer Holmberg
- Re: [MMUSIC] Trickle ICE Emil Ivov
- Re: [MMUSIC] Trickle ICE Martin Thomson
- Re: [MMUSIC] Trickle ICE Martin Thomson
- Re: [MMUSIC] Trickle ICE Christer Holmberg
- Re: [MMUSIC] Trickle ICE Emil Ivov
- Re: [MMUSIC] Trickle ICE Christer Holmberg
- Re: [MMUSIC] Trickle ICE Emil Ivov
- Re: [MMUSIC] Trickle ICE Emil Ivov
- Re: [MMUSIC] Trickle ICE Martin Thomson
- Re: [MMUSIC] Trickle ICE Bernard Aboba
- Re: [MMUSIC] Trickle ICE Christer Holmberg
- Re: [MMUSIC] Trickle ICE Christer Holmberg
- Re: [MMUSIC] Trickle ICE Olle E. Johansson
- Re: [MMUSIC] Trickle ICE Christer Holmberg