Re: [MMUSIC] Fwd: New Version Notification for draft-uberti-mmusic-nombis-00.txt

Robin Raymond <robin@hookflash.com> Wed, 18 March 2015 23:50 UTC

Return-Path: <robin@hookflash.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 1015B1A92AA for <mmusic@ietfa.amsl.com>; Wed, 18 Mar 2015 16:50:18 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.6
X-Spam-Level:
X-Spam-Status: No, score=-2.6 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] 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 2c7YMPvaVjaY for <mmusic@ietfa.amsl.com>; Wed, 18 Mar 2015 16:50:15 -0700 (PDT)
Received: from mail-ie0-f170.google.com (mail-ie0-f170.google.com [209.85.223.170]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 9FD9B1A92AB for <mmusic@ietf.org>; Wed, 18 Mar 2015 16:50:13 -0700 (PDT)
Received: by iecsl2 with SMTP id sl2so52560850iec.1 for <mmusic@ietf.org>; Wed, 18 Mar 2015 16:50:13 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:date:from:to:cc:message-id:subject:mime-version :content-type; bh=CcXIjtNerJuezuQ+wu1zco6HktfqHGlNwlEP1Nbhxqw=; b=WtUYUXXbT4NmkZ3CoSgHv4C7KfHKv5KImWhQeVJbq/H3mMHMjW16IRDHP8ch1oHgeb zgOdWUhEJkwrn3By/qpov/0N6cqODkVFn6Q9IhfYMwQI1cMOrvtggCDiDK6npVFGAM/G TsGYr3OnMr4ymEpMXfma9xulRbYNpX10KoPZmQstpkYMTcfTbOFUkdJhhnMULGXU2/e0 nHql3dyFIytlHu4TgnhMOBr7CJA4TJmb9w3NR1mKUljlJqXHkbBs2UPSknMKTNP1Goar TNi+OVm/0LLeaDQQFXWUr9ICYGCX3GJCu7m9jf3VduKbs+jB0VRJOcedEN24rkDRkJcW XaMg==
X-Gm-Message-State: ALoCoQleu2+a5Z8NFRejDWzpqM0sgC/1TbJ/vD6XgjH7mDWhN/dDEcej6bXCvTBA9adRNc5n0VLb
X-Received: by 10.43.13.200 with SMTP id pn8mr100740075icb.0.1426722613129; Wed, 18 Mar 2015 16:50:13 -0700 (PDT)
Received: from Robin-iMac.home (bas5-ottawa10-2925208292.dsl.bell.ca. [174.91.34.228]) by mx.google.com with ESMTPSA id n15sm12036049ioe.6.2015.03.18.16.49.34 (version=TLSv1.2 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Wed, 18 Mar 2015 16:50:12 -0700 (PDT)
Date: Wed, 18 Mar 2015 19:49:33 -0400
From: Robin Raymond <robin@hookflash.com>
To: mmusic@ietf.org
Message-ID: <etPan.550a0f0d.520eedd1.32e@Robin-iMac.home>
X-Mailer: Airmail (286)
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="550a0f0d_374a3fe6_32e"
Archived-At: <http://mailarchive.ietf.org/arch/msg/mmusic/yENSheww1vZfAiLQEH7EHDlW4lI>
Subject: Re: [MMUSIC] Fwd: New Version Notification for draft-uberti-mmusic-nombis-00.txt
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: Wed, 18 Mar 2015 23:50:18 -0000


[BA] As noted in Section 3.3: 

   the controlling endpoint MUST have some way to indicate to the
   controlled side that specific candidates are to be kept alive.

To achieve this goal, is it necessary to send Binding Requests for each candidate pair to be kept alive? This could consume quite a bit of energy, particularly if there are multiple candidates on both sides.  I wonder if there are ways to achieve the goal more economically.  

For example, on the controlled side, if the relay candidate receives a check but the corresponding host candidate doesn't, it would make no sense to prune the host candidate.  Similarly, if a relay candidate on the controlled side is kept alive due to receipt of a periodic check originating from a WLAN interface, does the controlling side also have to periodically wake the WWAN interface so as to check that same relay candidate?  I realize that the WWAN interface does need to be periodically awoken to satisfy the requirements on RFC 5245 Section 4.1.1.4.  

The explicit timeout approach could reduce the burden still further by reducing the interval at which checks need to be done.  
[Justin wrote]:
This is a good question, but I think any NAT pinholes for established pairs need to be kept alive, similar to what is described in 4.1.1.4 for candidates. Given that keeping your srflx candidates alive will require waking the wwan interface somewhat frequently anyway, pinging existing pairs can probably be done with little additional energy expenditure if properly coalesced. Or, if this is a significant issue, the app may not choose to keep wwan active if wifi is solid.


As a general note, this draft is very much on the right direction.

As for having to keep the wwan ‘hot' for the sake of pinhoeles/turn - not necessarily. Consider the case where the controlling side is on mobile but the controlled side is desktop with TURN. The mobile side might keeps it wwan IP alive but not used (e.g. IPv6 interface). The controlled side might keep it’s TURN candidate alive as a backup should the primary path fail. Neither side need to be actively pinging between each other but keep their respective interfaces alive in the event of primary path failure. You are correct that the pinhole won’t remain open since it’s not an active tested path but both are good back up candidates in the event of primary path failure (and if both check simultaneously then the pinholes will open). The moment both sides simultaneously detect failure they could both start doing connectivity checks to the other which will re-open the pinholes and allow traffic on the backup path (but this can only happen if candidates are NOT pruned away).

I think the couple of “TODOs” you have in the draft will resolve many of the remaining issues I see. Specifically, 5.2, “should the controlled side have any say …]. My answer is “yes”, either side should be able to send a connectivity check to keep an active candidate pair alive but I agree controlling side should always pick the nominated/active path.

The other TODO "decide if this implicit timeout approach is correct, or if we should have some sort of approach similar to TURN LIFETIME indicating when a pair should be GCed, with LIFETIME==0 indicating immediate GC.” I think a LIFETIME option for a candidate (and indirectly would be the combined pair lifetime) would be a good idea. This would allow an ice transport to know which remote candidates are considered gone vs still around / available. Thus candidate pairs can be kept as “backup” should the primary path(s) look like it is failing and they can be checked again for connectivity as long as both local / remote candidate pairs are still considered alive. When a primary path looks like it might be failing, both parties could recheck simultaneously their backup candidates (which would open firewall pinholes at that time to each other) and the backup candidates could therefor work and a temporary switch could happen to the backup candidates until the primary path either comes back [or fails completely]. This will work well with TURN and/or IPv6 on mobile. This would require ICE not prune non-failed pairs so long as the combined candidate pair LIFETIME was still alive.

There is another scenario that does cause me concern though. I’m concerned that ICE will cause fallback to wwan (good) but it will not recognize that a wlan was back available again (bad). A wlan can temporarily be disrupted causing a fallback to wwan. Because candidates are only trickled when they become availing and the IP for the wlan never goes away when connectivity fails, the wlan candidate are never trickled again (and a new STUN test might reveal the same firewall port so that won’t be trickled again either). If the wlan interface is just intermittently failing then remote party may have pruned the wlan candidates away and never retest it again and thus the connection remains on wwan permanently. Since the connection is working there’s no reason to restart ICE either. So I think there is a need here that a wlan device may have “reachability” checks it conducts on its own and then re-trickle the candidate back when it detects “reachability" for the wlan has changed to available.

So I’m +1 on this draft and +1 for controlled keep-alines and definitely a +1 for candidate “LIFETIME".

-Robin