Re: [MMUSIC] Continuous Nomination (Was: Faster ICE by role reversal?)

"Tirumaleswar Reddy (tireddy)" <tireddy@cisco.com> Sat, 08 November 2014 04:56 UTC

Return-Path: <tireddy@cisco.com>
X-Original-To: mmusic@ietfa.amsl.com
Delivered-To: mmusic@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C11681A026E for <mmusic@ietfa.amsl.com>; Fri, 7 Nov 2014 20:56:44 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -15.095
X-Spam-Level:
X-Spam-Status: No, score=-15.095 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5, RP_MATCHES_RCVD=-0.594, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id D5Cj_hIcMUJ1 for <mmusic@ietfa.amsl.com>; Fri, 7 Nov 2014 20:56:42 -0800 (PST)
Received: from alln-iport-7.cisco.com (alln-iport-7.cisco.com [173.37.142.94]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D80AA1A0263 for <mmusic@ietf.org>; Fri, 7 Nov 2014 20:56:41 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=12522; q=dns/txt; s=iport; t=1415422601; x=1416632201; h=from:to:cc:subject:date:message-id: content-transfer-encoding:mime-version; bh=j4o6PVjog+LeWY8TuXml8JPIybHZJmYKyJMMj7CfjoU=; b=m3sLON02m66ygjQQqkYRwQFpsxRoM73ajO+ynBfN1ch3SUWhqQa6CEbo Z4Y5pLQ8OthEaEets+97smWellbs1zZYohvCbiZbGZwG6CFmcNm/C6Zk9 OTDW+Ye3UzLkB2lqNMy3oPYypECwDPW8LhYXt2K3+aYvQGuPjM1aC1vL0 c=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: AvgHAPKhXVStJV2Z/2dsb2JhbABWBYMOVFkEgwLITwyGeFUCHH8WAQEBAQF9hAIBAQEDAQEBASAROgsMBgEGAg4DBAEBAQICBh0DAgQfBgsUAQgJAQQBDQUIiCQDCQkNnCScX456DYZZAQEBAQEBAQEBAQEBAQEBAQEBAQEBF4EtiUiDYoFPKhAxDYJxNoEeBYRqMwKNCIRUhEpDg0Q9jTtCgmeECYN5bAGBByQcgQMBAQE
X-IronPort-AV: E=Sophos;i="5.07,337,1413244800"; d="scan'208";a="94663894"
Received: from rcdn-core-2.cisco.com ([173.37.93.153]) by alln-iport-7.cisco.com with ESMTP; 08 Nov 2014 04:56:40 +0000
Received: from xhc-rcd-x11.cisco.com (xhc-rcd-x11.cisco.com [173.37.183.85]) by rcdn-core-2.cisco.com (8.14.5/8.14.5) with ESMTP id sA84uefH004270 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL); Sat, 8 Nov 2014 04:56:40 GMT
Received: from xmb-rcd-x10.cisco.com ([169.254.15.250]) by xhc-rcd-x11.cisco.com ([173.37.183.85]) with mapi id 14.03.0195.001; Fri, 7 Nov 2014 22:56:40 -0600
From: "Tirumaleswar Reddy (tireddy)" <tireddy@cisco.com>
To: Emil Ivov <emcho@jitsi.org>, "Dan Wing (dwing)" <dwing@cisco.com>
Thread-Topic: [MMUSIC] Continuous Nomination (Was: Faster ICE by role reversal?)
Thread-Index: Ac/7EFz6NUzJiCvAQKOA1KCeBUvJNw==
Date: Sat, 08 Nov 2014 04:56:39 +0000
Message-ID: <913383AAA69FF945B8F946018B75898A28357FF0@xmb-rcd-x10.cisco.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [10.70.232.155]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
Archived-At: http://mailarchive.ietf.org/arch/msg/mmusic/DXWQIDv1UNhnl4c6SyvUViZPZBA
Cc: Jonathan Lennox <jonathan@vidyo.com>, Ari Keränen <ari.keranen@ericsson.com>, mmusic <mmusic@ietf.org>
Subject: Re: [MMUSIC] Continuous Nomination (Was: Faster ICE by role reversal?)
X-BeenThere: mmusic@ietf.org
X-Mailman-Version: 2.1.15
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: Sat, 08 Nov 2014 04:56:45 -0000

> -----Original Message-----
> From: mmusic [mailto:mmusic-bounces@ietf.org] On Behalf Of Emil Ivov
> Sent: Saturday, November 08, 2014 6:49 AM
> To: Dan Wing (dwing)
> Cc: Jonathan Lennox; Ari Keränen; mmusic
> Subject: Re: [MMUSIC] Continuous Nomination (Was: Faster ICE by role
> reversal?)
> 
> 
> 
> On 8.11.14, 1:35, 🔓Dan Wing wrote:
> >
> > On Nov 7, 2014, at 2:41 PM, Emil Ivov <emcho@jitsi.org> wrote:
> >
> >> Hey all,
> >>
> >> In the context of the ongoing discussion on two potential ICE
> >> improvements, I wanted to spin off this thread on the idea of
> >> continuous nomination.
> >>
> >> So first of all, as I already mentioned in Toronto, I am very much in
> >> favour of a mechanism that would allow ICE processing to yield more
> >> than a single nominated pair. Back then the discussion was about
> >> MPRTP but there would likely be other use cases as well.
> >>
> >> In that context, it seems perfectly valid to me that nomination among
> >> all validated pairs can occur multiple times within a session. Again,
> >> I find this to be a very valid and useful feature.
> >>
> >> I am however bothered by the "ICE never ends" suggestions made by the
> >> document below and more specifically by the fact that candidates may
> >> continue to be trickled forever. I think that's both unnecessary and
> >> a problem.
> >>
> >> It is a problem because
> >>
> >> a) being able to know when the remote agent is done trickling is one
> >> of the very reasons we started the work on trickle ICE. This allows
> >> to quickly and deterministically detect and declare failure when it
> >> occurs. Not having this would require implementations to use magic
> >> timers of the sort: "Surely if I couldn't connect in ..
> >> say 20 seconds ... then the situation must be hopeless ... I think".
> >>
> >> b) being able to continuously trickle new candidates forever and ever
> >> means that they would have to be paired with all of the peer's
> >> *initial* candidates. This means that ICE agents would have to
> >> maintain all gathered candidates even when they are not working for
> >> them.
> >>
> >> More importantly however, the whole concept is likely unnecessary
> >> because an ICE restart only sounds scary, and it doesn't actually
> >> need to be ;).
> >>
> >> A restart is non-disruptive as media can keep flowing while we are
> >> doing ICE processing.
> >>
> >> 5245 already supports pair reuse and we can easily port that concept
> >> to multipath ICE.
> >>
> >> The one thing that we might be missing today is the syntax to allow
> >> for a restart without using offer/answer.
> >
> > For MICE and some other use cases, I agree that need to signal (in
> > SDP) is the 'scary' part of an ICE restart.
> >
> >> This would be trivial to resolve: we just need to allow trickling a
> >> restart command. Sending your ufrag and pwd in a trickle update
> >> should do the job.
> >
> > That is a nice approach -- move the 'ICE restart' signaling to an
> > (existing, working) media path.
> 
> I was actually thinking of the signalling path. So for SIP this would be a SIP
> INFO request with the ufrag/pwd as the sole content. A couple of a= lines
> would do it for WebRTC.
> 
> I am slightly uncomfortable about doing it on the media path because it
> requires you to make the assumption that one of your media paths is certain
> to survive any sort of mobility event.
> 
> Even if you keep your TURN connection open for that purpose, how do you
> know that your new location wouldn't be one where TURN-TCP is the only
> way to get out of the local network?

TURN Mobility can be used to solved the problem and allows client to switch-over to TURN-TCP. Only TURN works in case of  Simultaneous Mobility (If both the endpoints are mobile and roam at the same time between networks.)

> 
> Or what if you don't even have a TURN server?

TURN servers could be provided by access network, application service provider or a third party provider (https://tools.ietf.org/html/draft-patil-tram-turn-serv-selection-00) and should be reachable across different networks.

> 
> You signalling channel would be a safer bet, but more importantly, you'd
> likely want to tear down your call if it didn't.
> 
> >> To put that into perspective, let's look at the following use
> >> cases:
> >>
> >> I. You have used the new multipath ICE and you have successfully
> >> discovered a couple of working routes: one going through your wi-fi
> >> interface and another one going through 4G. During your session, you
> >> move closer to your Wi-Fi access point so you detect that RTT and
> >> packet loss start looking better on your Wi-Fi interface.
> >>
> >> You decide to switch from 4G to Wi-Fi.
> >>
> >> *No ICE restart* would be necessary here because no new paths would
> >> need to negotiated. This would be a native feature of the new
> >> multipath ICE.
> >>
> >> II. You start on Wi-Fi in the presence of a 4G interface that you
> >> keep for backup. Multipath ICE comes up with pairs over both your
> >> interfaces. I don't believe this requires an ICE restart either.
> >> You just switch between pre-existing path and one of them expires as
> >> pointed out in Justin's document below
> >>
> >> III. You setup a session at a point of time where 4G is your only
> >> working interface. Your Wi-Fi interface then comes up and you want to
> >> include it in the game. Here's what you do:
> >>
> >> a) You gather host, srflx and relay candidates for the new interface.
> >> b) You gather candidates on the old interface that haven't been valid
> >> before but that are worth trying again (this is
> >> non-essential)
> >>
> >> d) you then trickle a new ufrag and pwd to trigger a restart.
> >
> > If that trickling happens over the SIP/WebRTC/XMPP signaling channel,
> > MICE would prefer not requiring that SDP signaling step or to at least
> > allow it to be done later.
> 
> Well, if you had multipath ICE, you would be able to switch your media over
> to TURN (this wouldn't require any signalling)  if that still works and then do
> the non-disruptive restart after that to discover other paths.

Yes, it's discussed in http://tools.ietf.org/html/draft-wing-mmusic-ice-mobility-06#section-3.2.

-Tiru

> 
> Would this work?
> 
> Emil
> 
> >
> > -d
> >
> >
> >> b) you batch trickle all currently working candidates that you'd wish
> >> to preserve (you can omit any candidates you no longer wish to use,
> >> for whatever reason). c) you trickle the newly gathered candidates.
> >>
> >> The remote party, your peer, would then do the following
> >>
> >> a) Gather all candidates that didn't work before but that deserve a
> >> second chance. This time *this is essential*. SRFLX candiates on your
> >> peer might not have worked with your 4G connection but they have
> >> every chance of working this time. There are a number of other
> >> scenarios where candidates would be worth retrying.
> >>
> >> b) Your peer would then trickle back to you all the working
> >> candidates it wishes to preserve (as long as they are still valid)
> >> c) It trickles all candidates it gathered for the occasion, that it
> >> wishes to retry.
> >>
> >> Connectivity checks then proceed as usual. It might be worth paying
> >> special attention to the in-use candidates. Implementations might
> >> want to either confirm that data is still flowing there, or start the
> >> checks with them. This would determine how urgently ICE processing
> >> needs to yield results and it may imply changes in nomination
> >> strategies.
> >>
> >> Thoughts?
> >>
> >> Emil
> >>
> >>
> >> On 7.11.14, 0:44, Justin Uberti wrote:
> >>> Agreed.
> >>>
> >>> I wrote up a slightly more fleshed-out proposal at
> >>>
> https://docs.google.com/document/d/1P1XPCRJKBkSjwCzIIEUJmp7V694_FzJ
> Q
> >>> e-fvN8bk-Xw/edit
> >>>
> >>>
> >>>
> On Thu, Nov 6, 2014 at 3:29 PM, Martin Thomson
> <martin.thomson@gmail.com
> >>> <mailto:martin.thomson@gmail.com>> wrote:
> >>>
> >>> On 6 November 2014 13:47, Justin Uberti <juberti@google.com
> >>> <mailto:juberti@google.com>> wrote:
> >>>> I looked into how MICE works; I think that continuous nomination
> >>>> might be able to effectively support that use case, as well as the
> >>>> case that Brandon was interested in, namely picking the route that
> >>>> uses the best set of TURN servers.
> >>>
> >>>
> >>> I've always believe that continuous ICE operation was the only way
> >>> to ensure proper reliability.  Multipath or otherwise.  You just
> >>> need to work out when it is safe to completely stop on any given
> >>> pair, assuming that you don't want to be testing the complete mesh
> >>> all the time.  But you also might want multiple paths available, or
> >>> maybe backup paths.
> >>>
> >>>
> >>
> >> -- https://jitsi.org
> >
> >
> 
> --
> https://jitsi.org
> 
> _______________________________________________
> mmusic mailing list
> mmusic@ietf.org
> https://www.ietf.org/mailman/listinfo/mmusic