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

Justin Uberti <juberti@google.com> Mon, 08 July 2019 03:56 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 354D01200F7 for <ice@ietfa.amsl.com>; Sun, 7 Jul 2019 20:56:58 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -16.204
X-Spam-Level:
X-Spam-Status: No, score=-16.204 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, PDS_NO_HELO_DNS=1.295, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, USER_IN_DEF_DKIM_WL=-7.5, USER_IN_DEF_SPF_WL=-7.5] autolearn=no 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 PQcpdlK8poH1 for <ice@ietfa.amsl.com>; Sun, 7 Jul 2019 20:56:56 -0700 (PDT)
Received: from mail-vs1-xe2c.google.com (mail-vs1-xe2c.google.com [IPv6:2607:f8b0:4864:20::e2c]) (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 573D51200EC for <ice@ietf.org>; Sun, 7 Jul 2019 20:56:56 -0700 (PDT)
Received: by mail-vs1-xe2c.google.com with SMTP id u3so7294333vsh.6 for <ice@ietf.org>; Sun, 07 Jul 2019 20:56:56 -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=Dw9Hl2qWy6CCku0gCWjxn9JJQXgupJCp0PTv//510JY=; b=uQ9/LFWaXTVJXerS1h+FB34sL0R7kGVYfevskwZ1tjKfC7JdIRuZ3kx2S7+Z5e+8li 5xniEbTC/NtYn8JiaODprqbS2vSQ2jvOkpMccsEPOUoTVgfYIrzJ1QCy2f3ni6RQ6bXr zD7zmHl2GwX4LovqW5scsvrAQBEOplcLEjpYE1SXVpE6apJLC584r1uoN3UZyOHfRh+L JiE6eMDfs22kSJx5RAqz0Up0Kj5e8rcDPw0ewK6mA3cHLyTorDqqmeYfo6yYoGGtwhN5 WDwtDV6vLdQI81yqSG9BTskzZPme32415LU1FkM9WsuqpUucmBsKmIyntWC+uxEI7Fku oAmQ==
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=Dw9Hl2qWy6CCku0gCWjxn9JJQXgupJCp0PTv//510JY=; b=tuOnb/1pAqSsupPdYV76XjE0No3h+Ne2kt5Wf6OL8+ErwidigUlgUQTuNZmoBHgtQb bJuNJCY5rb+auk+6qOYHAibjPQopGQvg99GDWCxmsnbRIpgcxxuw3znihEt47zEcpcr2 +fPpyu/8zHzbEaPQdDLgHcBVDeM5lLfuy3lAZMfUVuhchF8eTlwd8RxCRRQ755wy97++ cJvxm0/aScc4xNW52ND5Rk59ZuU4QL5Zn7/zuQnB9gH5c5ApkNRwkX3wBAth9CaIHKVE T3bMOIuJ2FMHVPo9dPuL4/FFWB8qpzrvbBdl5n1GjMmFBk20AQ55QhTZvgsO/nSDsiDv PyaA==
X-Gm-Message-State: APjAAAWrHKW7uNzG81WZZdxTUKqwa1mBKScXXznXpi2TUDXsovXjOBOl 7FZxA4kkHuVt4L5rsSv6fOrQ89Wk2Ea/aNnfl1i1Ug==
X-Google-Smtp-Source: APXvYqy167l9e/Q4cD/4xrmiUcDfU+xskgtDzNs3b0OoCGgM+/2uUcKCA6pzray2Y/JGtXMpS85Vr9KMMVWmUCUj8yU=
X-Received: by 2002:a67:eb19:: with SMTP id a25mr8662149vso.109.1562558214938; Sun, 07 Jul 2019 20:56:54 -0700 (PDT)
MIME-Version: 1.0
References: <AFCE8799-8865-454F-8478-81CE11E9B454@ericsson.com> <1aa5aac7-af59-4e3b-8651-18f6e6431a2d@alvestrand.no> <66678ADA-7C02-4D9D-B9D2-308873BC0125@ericsson.com> <7a829bc0-d066-a3be-b7be-9b39ce799821@alvestrand.no> <CAJrXDUHZJURLvzBYX2MGcMsrFgyOagW5=s1OSXwDmTZpsruD0A@mail.gmail.com> <VI1PR07MB3167F21EF7A1009B8EB9948B93FB0@VI1PR07MB3167.eurprd07.prod.outlook.com> <ae88593c-633f-8c18-eac6-82ba3673dce7@alvestrand.no> <HE1PR07MB31614FEC9997294294BB63A393F40@HE1PR07MB3161.eurprd07.prod.outlook.com> <CAD5OKxt_nvwYEDNEFtRSrdDK2BOoTWOL52_5mz99o7M3=5q6kA@mail.gmail.com> <HE1PR07MB3161B5D8D93E3335AB4A81C093F40@HE1PR07MB3161.eurprd07.prod.outlook.com> <1863af99-4a20-c9c0-f472-6bbca406c9ae@alvestrand.no> <HE1PR07MB31619019E1BC33E0DD7374A193F70@HE1PR07MB3161.eurprd07.prod.outlook.com>
In-Reply-To: <HE1PR07MB31619019E1BC33E0DD7374A193F70@HE1PR07MB3161.eurprd07.prod.outlook.com>
From: Justin Uberti <juberti@google.com>
Date: Sun, 07 Jul 2019 20:56:43 -0700
Message-ID: <CAOJ7v-3ybF5=zNQY6sXX03zqpU6Rpivn98NKvVHg0cT0x31EiQ@mail.gmail.com>
To: Christer Holmberg <christer.holmberg@ericsson.com>
Cc: Harald Alvestrand <harald@alvestrand.no>, Roman Shpount <roman@telurix.com>, "ice@ietf.org" <ice@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000581b55058d236fe5"
Archived-At: <https://mailarchive.ietf.org/arch/msg/ice/TQN4fX2nN-XY1qlgCTAriMYbK3s>
Subject: Re: [Ice] ICE PAC: When to start the timer waiting for possible peer reflexive candidates? - discussion restart
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, 08 Jul 2019 03:56:58 -0000

On Sun, Jul 7, 2019 at 2:53 AM Christer Holmberg <
christer.holmberg@ericsson.com> wrote:

> Hi,
>
> >>> If there are remote candidates to check, then ICE should continue
> >>> checking them. Part of the problem is that when ICE is starting, it
> >>> is unclear if remote candidate have not been received yet, no usable
> remote
> >>> candidates where received, or remote candidates are not going to be
> sent at all.
> >>> Also, checking remote candidates can end very quickly if remote
> candidates are
> >>> unreachable (fail immediately with ICMP remote address unreachable
> message).
> >> Ok, let's assume we DO have remote candidates, and the timer expires.
> We discard the fact that the timer expires, and go on checking the remote
> candidates, as you suggested.
> >>
> >> Then, at some point we have checked all remote candidates, but we have
> NOT found successful pairs for all streams. So, since the timer already
> expired, we declare ICE failure.
> >>
> >> I thought the whole idea was to still wait for some time after we have
> tried all remote candidates, in case we will receive peer reflexive
> candidates, before we declare ICE failure.
> >
> > The scenario that I saw starting this debate was:
> >
> > - Offer/answer happens
> >
> > - Either some candidate pairs are formed, or no candidate pair are formed
> >
> > - All the candidate pairs formed can be discarded very quickly (because
> they are the wrong protocol, or non-routable addresses)
> >
> > - Failure is declared
> >
> > - ICE BIND requests from the other side arrive, giving peer-reflexive
> candidates, but ICE connection is already closed
>
> I agree that is a valid use-case.
>
> But, isn't that use-case just a version of the generic use-case: when we
> have no more remote candidates, we start a timer in order to wait for
> potential peer reflexive candidates?
>

Right, but that makes the waiting interval unnecessarily large. Really what
the timer is doing is setting a minimum amount of time for ICE to run, with
the idea that that minimum is as low as possible.

>
> > The arrival time of the ICE BIND requests from the other side is
> independent of the length of the local candidate pair list, it depends on
> the length
> > of the remote candidate pair list, which is unknowable on the local
> side. The most likely time is "really fast".
> >
> >> But, as I said earlier, I am fine doing as you and others suggest. All
> I am saying is that the draft needs to describe what to do if the timer
> expires
> >> while there are still untested remote candidates. If the solution is to
> discard the timer expiration, then it needs to be documented.
> >
> > Saying that the timer and pair testing proceeds in parallel is all that
> needs to be said, I think.
> > Declaring failure requires BOTH the timer to have expired AND testing of
> candidate pairs to complete.
>
> No matter what solution we move forward with: we also need to define
> whether this applies to trickle.
>
> For example, what if BOTH the timer has expired AND testing of currently
> available candidate pairs are complete, but trickle is still ongoing? Do we
> declare ICE failure, or do we discard the timer expiration?
>

As noted above, the timer is just a minimum amount of time to run. If we
wouldn't have declared ICE failure without the timer, nothing changes that
fact.