Re: [Ice] ICE PAC: When to start the timer waiting for possible peer reflexive candidates?

Justin Uberti <juberti@google.com> Thu, 02 May 2019 19:28 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 DD831120108 for <ice@ietfa.amsl.com>; Thu, 2 May 2019 12:28:48 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -17.501
X-Spam-Level:
X-Spam-Status: No, score=-17.501 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, USER_IN_DEF_DKIM_WL=-7.5, USER_IN_DEF_SPF_WL=-7.5] 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 zVhyndHMMPGq for <ice@ietfa.amsl.com>; Thu, 2 May 2019 12:28:46 -0700 (PDT)
Received: from mail-io1-xd2c.google.com (mail-io1-xd2c.google.com [IPv6:2607:f8b0:4864:20::d2c]) (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 2435312008F for <ice@ietf.org>; Thu, 2 May 2019 12:28:46 -0700 (PDT)
Received: by mail-io1-xd2c.google.com with SMTP id j14so2722849ioj.4 for <ice@ietf.org>; Thu, 02 May 2019 12:28:46 -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=fBW8g/HxlFw29X4XtdfE1jxWC3E+TcwxRR2YzbJozEA=; b=HCZD2MeXJlhZu1q2qNalUxlkZwovFQIyAf+x3kuePi9mx4ZBgNpxWPmwdDmT3vYdso osSuU+CneKjB3EWhxvtKG/7xtzkkD+qYIsLoNsLnQkYmh51aiaJhCxd1PxZO31BfUfsF FIIxqjFuMGQ3Kv4HPE45CpRA+xoCtG+buV8o7J7yp3TgLkHpy9WkxVgS7lMb66/43Kg/ bww4qxlsIiM64lq468icoUzDzjP7h+pkpm5SMwdha+hLtMf8KGtydwWOMaa1vCSlgUz0 AELPy1Si0D9MzFqcQqSDbuGNAdwyrR7IN7ybGe5oD/dMNsTNWVpiHkUBlAr0MFhcoN+J X2ZA==
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=fBW8g/HxlFw29X4XtdfE1jxWC3E+TcwxRR2YzbJozEA=; b=h3even4ZdzzNxqNNUlmwodN2rU8e2aN/7RB/pTi6ojuWAdjLqCBqyZs2bdsoTaTBit /9srf4g8hAcr55MrojTx0dw/jotF+zk+ilTonOVtFrY+lMQY2Z7N7y4mH4tmM73ejPRI 8bVOfh+HDwuc+G0UF0/hr5JDWoR1blz4HAodzP/Sn6v4KXPTBGCJPcnO46aDNeYrVH4G 3TeRLFZDUyLh1KkQRcaY/0cglYB+SpfdsU4rz4TkusxCgWb75wbgx5gmrYlaWgyeISkL El1kGKnU8593eA2xhubm5xmJJB6Ih4/vRA6vYmmK8OXeZcHpk1sM3f1JwN45ZiBQmOH4 hAeA==
X-Gm-Message-State: APjAAAV/hOM3L4TuVc/f7p8kMO7vEXwNPxbshr1DmbtBfpWvTA+U1UC6 9uA0FM0+EXZfQuMuNszQVXYBrqvbzsH4CkBiMP9Gow==
X-Google-Smtp-Source: APXvYqwtPcDfYCQ8+L0foqSeWUm7ctKjUloCaUAMWy6u7zAoFOFuyZiBKOXU2Y7tDNhpZGbTt+r1E0/devzIey+gzzE=
X-Received: by 2002:a05:6602:55:: with SMTP id z21mr3847095ioz.101.1556825325012; Thu, 02 May 2019 12:28:45 -0700 (PDT)
MIME-Version: 1.0
References: <3A66B735-03C9-41FF-95AD-500B0D469C80@ericsson.com> <CAD5OKxsMgNTQPNP4Ni72H+yD4iUeyNK+x6CSvdBApGnPTpr_vg@mail.gmail.com> <A4EC3C01-4D7D-45DF-876D-E58706F74866@ericsson.com> <CAD5OKxt8tDemkK=v4X1gjwJGLYrxcd95S7uV53_fsga6grZ_rA@mail.gmail.com> <30518269-CA9D-4F50-8CE3-062A01DBCD7F@mozilla.com> <CAD5OKxvmRK8Xzu4FSRv3Lgdg-VrrufzGhjAdSmfcLLkrm-jtjw@mail.gmail.com> <0AD3077C-74FA-4585-942A-375B83B3A7A0@ericsson.com> <CAD5OKxsgpf7Hv_nxFOZFwfNk7-_xNRzmoPTA2bZCqZo3wzudKQ@mail.gmail.com> <HE1PR07MB316172053751D307F83DE0EB933E0@HE1PR07MB3161.eurprd07.prod.outlook.com> <CAD5OKxu332E8vzdc4dt09NxXGf9Cr2izwECDAQjc7V_YDx3r5w@mail.gmail.com> <HE1PR07MB316189447ED302BEC5021946933F0@HE1PR07MB3161.eurprd07.prod.outlook.com> <CAOJ7v-3Dv4N5j0KykxQf-gHQfvJ9x-VzbTTTcdJyfgYgcdYy5A@mail.gmail.com> <HE1PR07MB3161E4496E7BDC5FF419CCE793390@HE1PR07MB3161.eurprd07.prod.outlook.com> <CAOJ7v-3JkrYnWpghusRytVvTn1u7OibL9J3NyVh+ia9neSyuHA@mail.gmail.com> <46390078-DE3B-456B-87AC-61AE3C3DF035@ericsson.com> <CAOJ7v-202_STNVj6nLv_0pTTuE_=jn_HJusNERv9Yj7=k=86jg@mail.gmail.com> <156839B0-C680-4F8F-8D93-8F6B33FB8F01@ericsson.com> <0928C15F-E7F4-405B-BBBB-2ECD35BD621D@mozilla.com> <CAOJ7v-2RbkeBEGFkTkRUnOMyCK4WcbYJwaCiQc7yj5kSkxNQPA@mail.gmail.com> <4F57FAE8-7E87-43D4-96CE-2AC21C239BEB@mozilla.com>
In-Reply-To: <4F57FAE8-7E87-43D4-96CE-2AC21C239BEB@mozilla.com>
From: Justin Uberti <juberti@google.com>
Date: Thu, 02 May 2019 12:28:33 -0700
Message-ID: <CAOJ7v-2N0jFptg8JKa8TWxMWse5KDhetySn_9GU3w+U_JmF0MQ@mail.gmail.com>
To: Nils Ohlmeier <nohlmeier@mozilla.com>
Cc: Christer Holmberg <christer.holmberg@ericsson.com>, Roman Shpount <roman@telurix.com>, "ice@ietf.org" <ice@ietf.org>
Content-Type: multipart/alternative; boundary="0000000000007a06ac0587eca428"
Archived-At: <https://mailarchive.ietf.org/arch/msg/ice/x2O8tUg7pZC71Ypf77JO5i3TUW0>
Subject: Re: [Ice] ICE PAC: When to start the timer waiting for possible peer reflexive candidates?
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: Thu, 02 May 2019 19:28:49 -0000

On Thu, May 2, 2019 at 12:22 PM Nils Ohlmeier <nohlmeier@mozilla.com> wrote:

>
>
> On May 2, 2019, at 12:13, Justin Uberti <juberti@google.com> wrote:
>
>
>
> On Thu, May 2, 2019 at 10:07 AM Nils Ohlmeier <nohlmeier@mozilla.com>
> wrote:
>
>>
>> >> I do think Nils' point is important though, i.e., if we have a bad
>> server it will take a very long time to decide on 'last set of candidates',
>> >> which is probably not helpful. As such I think the potential positions
>> we can take are:
>> >> a) Start the timer as soon as we have an answer, regardless of any
>> candidates.
>> >> b) a) + receipt of at least one remote candidate (or remote EOC).
>> (This is Nils' suggestion).
>> >> c) a) + sending at least one local candidate (or local EOC).
>>
>> As we are mostly concerned about the remote side: 1) not providing us
>> with candidates, or 2) providing us with unusable candidates or 3)
>> providing us with candidates really late I don’t see how option c) would
>> help in any of these scenarios.
>> From my point of view we should choose either a) or b).
>>
>
> c) is just a clarification of a), in that you can't expect to receive
> prflx candidates until you've at least provided the other side with a
> candidate, so that may be the right time for the timer to start. I don't
> feel super strongly about this though.
>
>
> Ok. I hadn’t looked at it from that angle. So c) being a stronger a) I
> guess it would be okay.
>
> I guess my only concern is that in Firefox we stopped doing a) because it
> caused to many problems. With that in mind would it cause interop problems
> if we leave up to the implementor to choose to implement either b) or c)?
>

I'd be fine with that, but I'd want to describe what to watch out for. Can
you explain a bit more?

>
>
>> >> b) has a problem if the remote side doesn't send any candidates, which
>> we want to explicitly allow.
>> >
>> > True.
>>
> Just to make sure we are all on the same page: b) is only a problem in the
>> scenario where the remote side doesn’t send any candidates but also does
>> not send EOC.
>
>
>> The EOC should allow agents which explicitly don’t want to provide
>> candidate to get the timer started soon.
>> I think that leaves us with scenarios where the remote doesn’t provide
>> host candidates, and it’s reflexive or relay candidates take for ever
>> because of slow servers.
>>
>
> Correct, but we can't control which endpoints will send us an EOC or not.
> So that will always be a possibility.
>
>
> Fair enough.
>
>
>> >> I tend to lean towards a) as the simplest option.
>> >
>> > Keep in mind that RFC 8445 is generic, so we need to to define what we
>> mean by "answer". I guess it means some kind of indication that makes the
>> agent assume that the remote peer has been contacted. In ice-sip-sdp we can
>> then map that to an SDP answer.
>>
>> Good point. We basically treat the SDP answer here to be something like
>> an beginning of ICE, because we don’t have an explicit signal for that. I
>> think in SDP based worlds there is no need for an extra signal like that.
>> Not sure if other use cases of ICE would benefit from an explicit begin
>> signal.
>>
>
> The answer in some ways is an explicit begin signal, because it contains
> the username/password information needed to start ICE checks.
>
>
> Yeah I didn’t see your reply before hitting send on mine. Using the
> availability sounds like a good idea as the minimum gating function/signal.
>
> Best
>   Nils
>
>