Re: [Ice] Thoughts on the "remote side gives 0 candidates" issue
Justin Uberti <juberti@google.com> Mon, 11 March 2019 16:30 UTC
Return-Path: <juberti@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 C4750127963 for <ice@ietfa.amsl.com>; Mon, 11 Mar 2019 09:30:31 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -17.5
X-Spam-Level:
X-Spam-Status: No, score=-17.5 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, ENV_AND_HDR_SPF_MATCH=-0.5, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, USER_IN_DEF_DKIM_WL=-7.5, USER_IN_DEF_SPF_WL=-7.5] autolearn=unavailable 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 hAy4IuJ4H-7y for <ice@ietfa.amsl.com>; Mon, 11 Mar 2019 09:30:30 -0700 (PDT)
Received: from mail-io1-xd30.google.com (mail-io1-xd30.google.com [IPv6:2607:f8b0:4864:20::d30]) (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 B5CF41279A3 for <ice@ietf.org>; Mon, 11 Mar 2019 09:30:29 -0700 (PDT)
Received: by mail-io1-xd30.google.com with SMTP id x4so4578314ion.2 for <ice@ietf.org>; Mon, 11 Mar 2019 09:30:29 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=aLPP1HjJukTLhL9g7ApZWklrRd2sfEdOWd+lpO8v4dg=; b=N8wFyjpbjnD598rH/Yr0Leq7eWpq6+JDZDYBupyKGsH2juUYp9OnZBmhCDpv3QFxaM GEkmKCKhwQDRlLCqScMCr3gm8t2Mhzd6w71sio52Z5Lyq5VJvuno2Hu7Ex3aB0UzIJHD mF/WvgxRmcN68jeOIUOK1LHPUnI1RQYecFOQ7vJ7/N5TD0kHFYSEV0CitzOaQzFQ3dWF +LC0pwupA7xdkg8JnEF/cQfrGvY7VewcPK/k/ZXhmnEHz1dndlP68+16laPtAwr9oFnT UQPyBVHT51g8sTgYuiJ5YClMLQ6Jjs/XbgE4DST9JwNXvwh15rA3uBWFoID8SrYSSILe Pfsw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=aLPP1HjJukTLhL9g7ApZWklrRd2sfEdOWd+lpO8v4dg=; b=AzoAfXzsPn1LmRzxoJ/ER1bMheYT8hRGMcC4xDIlK9yOxE/xB1JYTdZKtzVo5CrWdh 4fFauxWxVJBzyvrcu5Jzj636HhLMMNG0+L5CMJ3PGbQNAm8F0vjrJ8gmABLwc0q6AyCa wwSvVSFZTKajFQi8T54fNhdxbnxR2lC5K01sWZifhhdK72a//ru9Ro+xWA6NnpIxw0tW CkBRlk6fT4qIkhE7mMPnrhdfUcFfG4Ui1g/U3Lmhzv6gUG11iaQceiEabRMUV+VOmw5f VP9umF8DWd8t7/fKpuVnh3gf8wVpEMqe1aAIgbeN7Bj9lqCy7prl6Z3A7xf/iG13GDkI x2LA==
X-Gm-Message-State: APjAAAWamlZFbdK0RU+3GyDZ+aMOyURNsUpmjpgvdLrAiCmxvruo89UD GfUF97pAGQzU6pDsZRKS9fJeH5qWbQIEY5I6GFXu8X4g
X-Google-Smtp-Source: APXvYqx/pT7tfwCbqjUq4eyRJZKQRvE3Ked/+6dCn1aEaK7ADnTbYqQJo/kRZMa36cl3Ppp9VVUy2NVOiG2pRCSLmmI=
X-Received: by 2002:a5d:9418:: with SMTP id v24mr16416962ion.181.1552321828702; Mon, 11 Mar 2019 09:30:28 -0700 (PDT)
MIME-Version: 1.0
References: <CAJrXDUFZi5Xa16L04SgfyL3qe58z0w-j7yppt5JsDipGVkaVCQ@mail.gmail.com> <A6C96955-B679-45E1-B31E-1833285329B0@ericsson.com>
In-Reply-To: <A6C96955-B679-45E1-B31E-1833285329B0@ericsson.com>
From: Justin Uberti <juberti@google.com>
Date: Mon, 11 Mar 2019 09:30:17 -0700
Message-ID: <CAOJ7v-0O3UAyVcnbVD+urfP8fzqHPc5T+bZKNqySskyGq8COGA@mail.gmail.com>
To: Christer Holmberg <christer.holmberg@ericsson.com>
Cc: Peter Thatcher <pthatcher=40google.com@dmarc.ietf.org>, ICE WG <ice@ietf.org>
Content-Type: multipart/alternative; boundary="0000000000002d98b00583d417dc"
Archived-At: <https://mailarchive.ietf.org/arch/msg/ice/05neUaoKImvWGKfcbwcPUg-F3Uk>
Subject: Re: [Ice] Thoughts on the "remote side gives 0 candidates" issue
X-BeenThere: ice@ietf.org
X-Mailman-Version: 2.1.29
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: Mon, 11 Mar 2019 16:30:32 -0000
On Mon, Mar 11, 2019 at 9:06 AM Christer Holmberg < christer.holmberg@ericsson.com> wrote: > Hi, > > > > > Anyway, here's what I've thought of so far: > > > > > > 1. Yes, these all are issues (the 3 scenarios described > in draft-holmberg-ice-premature.xml) for a strict ICE impl that is what you > might call "impatient". > > > > Ice will melt if you wait too long… ;) > > > > > 2. I'm guessing that in practice all ICE impls will have some timeout > (be "patient"), but I agree that writing that down in an RFC is a good idea. > > > > > > 3. Doing it in the ICE WG makes sense. > > > > > > 4. I'd prefer to call it "ICE patience" or "Patient ICE" rather than > "no premature failure". Then it's a virtue rather than a lack of a problem > :). > > > > So, just to clarify, you suggest “Interactive Connectivity Establishment > (ICE) Patience” as the title, not only in the draft name? > > > > Works for me. > > > > > 5. The current draft says "MUST wait for" and "N SHOULD be X". But > together, that amounts to "SHOULD wait for X", so the whole > > > RFC ends up being a big SHOULD. Is that normal for an RFC to only have > SHOULDs and not MUSTs? Seems less meaningful because > > > you can't rely on the remote side doing the right thing. > > > > We did not want to mandate a specific duration. An endpoint can determine > the duration value based on many things, including the number of candidates > it provides and/or the number of streams, the reliability of the network > (see below) etc etc etc. > This is a reasonable point. We could say that the implementation MUST wait for enough time to receive peer-reflexive candidates. This value SHOULD be the local connectivity check timeout. > > > > 6. The more I think about the timeout should be, the more I think this > problem is bigger than the issues outlined in the draft. > > > If you have very slow signaling, it's possible that you will end up in > this same situation regardless of how many candidates are > > > signaled (since the slow signaling prevents the candidates from getting > there). For example: > > > > > > - Caller initiates ICE with no candidates > > > - Callee receives offer with no candidates, sets a timer of N seconds, > and sends back an answer with several candidates > > > - Caller receives candidates after N seconds and sends connectivity > checks > > > - Callee times out and goes to failed state > > > - Callee receives connectivity checks, but it's too late > > > > > > To avoid this problem, the timeout the callee uses must be based on the > expected signaling delay. So, I think our "SHOULD be X" should > incorporate signaling delay" > > > Absolutely. We can for sure add more guidance regarding things an endpoint > has to take into consideration when setting the N value. > Maybe, but this number will never be precise. The connectivity check timeout itself is fairly arbitrary, but large enough to effectively address the problem. The existing text has a mention of this. > > > > 7. I wonder if we should include a suggested workaround for RFC 8445 > clients that are "impatient". For example, if you trickle, do not > > > send "end-of-candidates" to the remote side until after N seconds (to > prevent it from going to the failed state). > > > > Note that the draft text only covers the case when an endpoint receives > candidates, discards all of them, and waits for peer-reflexive candidates > to arrive. These could be initial candidates, or trickled candidates. > > > > But, when it comes to trickle, and how long an endpoint waits for the peer > to SIGNAL additional candidates, I think that shall be covered in trickle. > TBH, I think it sort of invalidates end-of-candidates, since it's now clear that you can't start pruning upon receiving end-of-candidates. We might just want to never send it (and perhaps remove it in a future revision).
- [Ice] Thoughts on the "remote side gives 0 candid… Peter Thatcher
- Re: [Ice] Thoughts on the "remote side gives 0 ca… Christer Holmberg
- Re: [Ice] Thoughts on the "remote side gives 0 ca… Justin Uberti
- Re: [Ice] Thoughts on the "remote side gives 0 ca… Justin Uberti