[Ice] Peter's review of ICEbis

Peter Thatcher <pthatcher@google.com> Fri, 26 May 2017 10:26 UTC

Return-Path: <pthatcher@google.com>
X-Original-To: ice@ietfa.amsl.com
Delivered-To: ice@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 31C1F129417 for <ice@ietfa.amsl.com>; Fri, 26 May 2017 03:26:34 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0
X-Spam-Level:
X-Spam-Status: No, score=0 tagged_above=-999 required=5 tests=[BAYES_50=0.8, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.com
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 uDz_YSCL6c_I for <ice@ietfa.amsl.com>; Fri, 26 May 2017 03:26:32 -0700 (PDT)
Received: from mail-oi0-x233.google.com (mail-oi0-x233.google.com [IPv6:2607:f8b0:4003:c06::233]) (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 43106126C22 for <ice@ietf.org>; Fri, 26 May 2017 03:26:32 -0700 (PDT)
Received: by mail-oi0-x233.google.com with SMTP id w10so7596552oif.0 for <ice@ietf.org>; Fri, 26 May 2017 03:26:32 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=NMMFB7ZQB36/j5t0UqkZdbX5w0lhAIIcEC1diSYQPos=; b=Q6mcA7EKeQBsF8ggLsX1jQPg8fQohwWJyYkxmFPCa+FlZZ34rL0wblxX2oLoqceA// xIirHjEZDog0crlXWTaZZVo7aPeDCHVxL2N/WLz7HqP5c0V5Bn1+cr7LQBJLIPkZPwMX 4dlPmmRrzjtL/ctVWPLCoBXlXDkSA9kUNlSh5Zc27kBV/UKetZVGfVa5M78G4L519od6 wvf5V8rL+YYP9MdcIO47J9FE6IavGlcc6+imPIsj7Ce6bENsA5GlJslIJuQKb8MPEg+s pK4LMgpuf3BvMYcWSeOjuqO3Rc1Nd1NA+wIAh31wbt3IhIZZRuzm9l0c+nKhhXEsBGUS guog==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=NMMFB7ZQB36/j5t0UqkZdbX5w0lhAIIcEC1diSYQPos=; b=oVsoD6+KVopolNGG4dDw7vcd8xNXbp22w9tvBa/+LVlZ7JzFnv1ZwvngBwWp1VZJx5 QbDSRjwEjB1oEcBQizd4mzijBjzlpDgPhEamHK9lhE5JBX9YlHsqVV4iU83O3DI73LWm ckpxav/1VNWpOG44yAK9zb8e8qHmALZXtpid8gKPpeOSCGF0AATKI+vdft7y/Jl3JpEa yE09gp89oGK59IRVfZRTpV1u3/ggLOTvjXUzK/w3+ZFaQkjGdnxZTWNV/hX5c8Pf+P8i huWIz8shXaMb1GpYqNYG+NJBjMN/R1MfMK629/hpNNkC/sd1ew5fFNugNRJ9x4Ul3Vw/ gIPg==
X-Gm-Message-State: AODbwcBpBT9BsvyYLfdFTRm0nwRzYgqj5I1iRd3mteqmNrtleW1sPPsV 2n79odhwoU9GJKTxB3wTaEBXpL5NBNr8Qe4=
X-Received: by 10.157.10.43 with SMTP id 40mr632932otg.7.1495794391176; Fri, 26 May 2017 03:26:31 -0700 (PDT)
MIME-Version: 1.0
From: Peter Thatcher <pthatcher@google.com>
Date: Fri, 26 May 2017 10:26:19 +0000
Message-ID: <CAJrXDUEYogKeXry-RP85gvFt2yY6eVo08S74zGjvXm4CTQY2Yg@mail.gmail.com>
To: "ice@ietf.org" <ice@ietf.org>
Content-Type: multipart/alternative; boundary="001a1135989458362905506ac516"
Archived-At: <https://mailarchive.ietf.org/arch/msg/ice/jKZH6ObLWJoQO6pYiuvj56rVRtI>
Subject: [Ice] Peter's review of ICEbis
X-BeenThere: ice@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: "Interactive Connectivity Establishment \(ICE\)" <ice.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ice>, <mailto:ice-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/ice/>
List-Post: <mailto:ice@ietf.org>
List-Help: <mailto:ice-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ice>, <mailto:ice-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 26 May 2017 10:26:34 -0000

I have read through ICEbis (which took a very long time because it is very
long) and have the following questions and comments:

- If we remove lower-priority candidate pairs across check lists, what
happens if a certain check list is starved because all of its candidate
pairs are lower priority?  One option might be to say the limit is per
check list.  Another is to recognize that it might happen but live with it.

- The spec says it's only defined for one TURN server and one STUN server
but then it says what to do when more than one TURN server or STUN server
is used.  I'm guessing we should remove the part about one TURN server
rather than the other way around.

- Why do we nominate by putting the valid pair in the triggered check
queue?  Why not just say "send a binding request"?  In particular reason?
Do we *want* it to be delayed if there are many things in the front of the
queue?

- Much of the spec is much more complicated than it otherwise would be
because a media stream has more than one component.  Would it make sense to
define a check list as representing a single component of a single media
stream rather than multiple components?  That would make the rules and
states around check lists much more simple.

- Should we keep this "send another candidate exchange when you're
Complete" thing?  It looks like it's just there to let signaling servers
learn something, which I think should be out of scope for this document.
Let a SIP document specify that.

- Why can't a lite agent start an ICE restart or remove a media stream?
Seems like it would make sense for it to be able to, but the spec says it
can't.

- Since we won't have aggressive nomination, do we still need the
"three-second rule" for when candidates can be freed?

- Why do we model valid candidate pairs as a separate list of separate
candidates from the normal check list?  Why not just say that some
candidate pairs are valid.  Why have this list of them?    Seems like we
could remove the concept.

- The concept of using a Data Indication for a keepalive seems outdated.
In RTCWEB, consent freshness requires the use of binding requests, not data
indications.    Should we change this?

- The one example in the doc uses aggressive nomination, which no longer
exists.

- What does the phrase "through good box and software security on TURN
servers." mean?

- Do we still need all the UNASF stuff?

- Do our "changes from 5245" section need to be updated?


Lastly, while reading through it I found things that could be removed or
moved or reworded along with grammar and style fixes.  Rather than listing
all of them here, I made a PR that has all of them:

https://github.com/ice-wg/rfc5245bis/pull/35/files

It's kind of big, but I think it's substantial improvement to clarity and
readability (else why would I spend the time on it?).