[MMUSIC] trickle-ice review

Peter Saint-Andre - &yet <peter@andyet.net> Tue, 07 July 2015 04:16 UTC

Return-Path: <peter@andyet.net>
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 9E6DB1A89B3 for <mmusic@ietfa.amsl.com>; Mon, 6 Jul 2015 21:16:08 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.601
X-Spam-Level:
X-Spam-Status: No, score=-2.601 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, 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 z8WXJ-p3KfjC for <mmusic@ietfa.amsl.com>; Mon, 6 Jul 2015 21:16:07 -0700 (PDT)
Received: from mail-ig0-f181.google.com (mail-ig0-f181.google.com [209.85.213.181]) (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 18B541A8FD6 for <mmusic@ietf.org>; Mon, 6 Jul 2015 21:01:10 -0700 (PDT)
Received: by igcsj18 with SMTP id sj18so251581494igc.1 for <mmusic@ietf.org>; Mon, 06 Jul 2015 21:01:09 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:message-id:date:from:user-agent:mime-version:to :subject:content-type:content-transfer-encoding; bh=/Nv3T4QPJoYqOlDetGZZwzxFx84QSBDbP+1Hoo6KDjM=; b=eb6nBCmQEJefcX9imgQ8hTGLoJFZc3QOcaSYyeesgo6O1PNNZFeYhGaVPBzqtNTt49 AcvyRwRePodHwbYY+oM++6CLs6bPNF6opwpKTYqzu1tS4cS4VINIPqhFczP3nAZ6Jt+P RfdB7mcEptB/zUFjjyfjlkC3mlwwGEkQQ1VfZUVnO4FFzScPSOZEqxxcY7gRWLcRuFqT En/Nd/r8dtRNvuEYcKcptEAy9/CT6zqKTUMncjWt7sfeMro7zVpfScxpp2BWuuz19HMN Ozk2IvK04uEwE+0ufmFCTlzrgo+oyj9RYGM58UGULzy8Io+O/eo8n6UDIx1V3rRolSvk 0Jkg==
X-Gm-Message-State: ALoCoQmFK7ss5Gi3XSKr3nU3JERdX9wyEI90hgaokKMY3M/OUWmXkNNwUyScgTUvpXXYmbTljy69
X-Received: by 10.50.59.211 with SMTP id b19mr72026796igr.42.1436241669555; Mon, 06 Jul 2015 21:01:09 -0700 (PDT)
Received: from aither.local ([2601:282:4201:ef5b:996b:1eb9:724d:9838]) by mx.google.com with ESMTPSA id 137sm13864309ioo.29.2015.07.06.21.01.07 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 06 Jul 2015 21:01:08 -0700 (PDT)
Message-ID: <559B4F02.9050305@andyet.net>
Date: Mon, 06 Jul 2015 22:01:06 -0600
From: Peter Saint-Andre - &yet <peter@andyet.net>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:31.0) Gecko/20100101 Thunderbird/31.7.0
MIME-Version: 1.0
To: mmusic@ietf.org
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/mmusic/VEONkm5Pz0zciVu61Bh-OReVMMU>
Subject: [MMUSIC] trickle-ice review
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: <https://mailarchive.ietf.org/arch/browse/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, 07 Jul 2015 04:16:08 -0000

Because I'll probably be on a plane (not to Prague!) during the MMUSIC 
session on July 22, I figured it might be helpful to post some comments 
to the list.

Abstract...

OLD
    The above mechanism is also referred to as "trickle ICE".

NEW
    This mechanism is called "trickle ICE".

Rationale: the mechanism is never referred to as anything other than 
trickle ICE.

Section 1...

A typo:

OLD
    describes mechanisms for gathering, candidates, prioritizing them,

NEW
    describes mechanisms for gathering candidates, prioritizing them,

[I found some other typos here and there but haven't noted them - our 
friends on the RFC Editor team can help later on.]

Section 4...

This sounds a bit strange, as if RFC 5245 talks about support for trickle:

    According to [RFC5245] every time an agent supporting trickle ICE
    generates an offer or an answer, it MUST include the "trickle" token
    in the ice-options attribute.

I suggest:

    According to [RFC5245], supported features MUST be advertised in the
    ice-options attribute.  Therefore an agent supporting trickle ICE
    MUST include a token of "trickle" in the ice-options attribute every
    time it generates an offer or an answer.

Section 5...

I question this statement:

    For optimal performance, it is RECOMMENDED that an initial offer
    contains host candidates only.  This would allow both agents to start
    gathering server reflexive, relayed and other non-host candidates
    simultaneously, and it would also enable them to begin connectivity
    checks.

As we have discovered recently (see the research the Philipp Hancke has 
been performing on deployed WebRTC audio/video services), the best call 
setup time and thus user experience is found by sending only relayed 
candidates first. Recommending that user agents send only host 
candidates in the initial offer will only perpetuate slow call setup times.

Section 6.1...

    An agent can respond to an initial offer at any point while gathering
    candidates.  The answer can again contain any set of candidates
    including none or all of them.  Unless it is protecting host
    addresses for privacy reasons, the agent would typically construct
    this initial answer including only them, thus allowing the remote
    party to also start forming checklists and performing connectivity
    checks.

By "them" I assume you mean host candidates. If so, see above on the 
"host-only-first" policy.

Section 8...

    For the most part, trickle ICE agents perform connectivity checks
    following vanilla ICE procedures.  Of course, the asynchronous nature
    of candidate harvesting in trickle ICE would impose a number of
    changes described here.

Actually I think it is not just harvesting but communication.

Section 9.3...

    Once an agent sends the end-of-candidates event, it will update the
    state of the corresponding check list as explained in section
    Section 8.1.  Past that point agents MUST NOT send any new
    candidates.  Once an agent has received an end-of-candidates
    indication, it MUST also ignore any newly received candidates for
    that media stream.  Adding new candidates to the negotiation is hence
    only possible through an ICE restart.

The second sentence is somewhat at odds with the last sentence. I 
suggest saying something like "Past that point agents MUST NOT send any 
new candidates within this ICE session" or some such.

I have not yet formed an opinion on the open issues described in 
Appendix A, nor have I yet had a chance to check that the XMPP Jingle 
use of trickled candidates (which dates from 2005!) is fully consistent 
with draft-ietf-mmusic-trickle-ice. I will try to complete those tasks 
before the Prague meeting.

Peter

-- 
Peter Saint-Andre
https://andyet.com/