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

Roman Shpount <roman@telurix.com> Thu, 25 April 2019 22:26 UTC

Return-Path: <roman@telurix.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 622A1120193 for <ice@ietfa.amsl.com>; Thu, 25 Apr 2019 15:26:37 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.889
X-Spam-Level:
X-Spam-Status: No, score=-1.889 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, T_SPF_PERMERROR=0.01] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=telurix-com.20150623.gappssmtp.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 5jFv33Bavr0D for <ice@ietfa.amsl.com>; Thu, 25 Apr 2019 15:26:34 -0700 (PDT)
Received: from mail-pf1-x436.google.com (mail-pf1-x436.google.com [IPv6:2607:f8b0:4864:20::436]) (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 8C6CE1200C5 for <ice@ietf.org>; Thu, 25 Apr 2019 15:26:34 -0700 (PDT)
Received: by mail-pf1-x436.google.com with SMTP id t21so632221pfh.2 for <ice@ietf.org>; Thu, 25 Apr 2019 15:26:34 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telurix-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=ldsi+tmmmhNq9fiGGnLvuppbSA62n0d9O6z1eMH7EPk=; b=1lqZ9vwDJlS2MObimvjxvY0nKXcR9P8/f5bAoYfhds36t4y8C/WuF5pgNb8uhPEyCW KsiX3ryaA3pvqAGr44Y0eR17Gs8wJcHX1H7wMeuiwgOJKhw6lDw2OSRFa82bH02KROXN Sd1OrhiLsVDRGEZAxDNiYFE1t6FS2UrU0ssOuIqYG54E9HuABarlU+xogOCmzpFJgNNu WaYYDE1ohjnR1A7SyTkihaGwVILYqFRzf5IoDzRl5znTt1ZMG+GVf792FcnzSW6JuV30 Dq98fFFi5E9VKvxwr8hCsRoDVJAqJddFkCwNRnukExnzhPNyTN06IoqURiyEB9kO8zhu T2pg==
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=ldsi+tmmmhNq9fiGGnLvuppbSA62n0d9O6z1eMH7EPk=; b=knUSKx7R+Ir4kCdyXQQvuTx5ulWm7MkV3S7ytSCW6w2RVNC/iyaEarbuRNnTw3gM9g eF0poBsb0edkXXZQNol9hSdc+huaU4Y8WKe+lCZwjlVN3f8cuIeK7CuweXnrtMBL0Fx8 kw91YO6lOWjdCmuSk1gMdpRYqXleAi2Nn61d6wrJFXvjTZYop3MWDpf7sxp5dDPDoJIC +IB5yCz3VXIfbFZC85Gn3m82KlYl6MLKuHK+BAeN63ThIisonGLTbAY6TBfebIjIK4pw 665Gtz3PLziGrrvqk7RGjPI0KfiVDRVsKfuTNrrPzco7qnnj9J0Vd+V42DyxNb+dj0y1 GYhA==
X-Gm-Message-State: APjAAAWurqxWRDFJFf2APJyQeRElxAP5i8VB3iNP/MkcQ1HyK2jwxxNV UAga+uKxRZTcnmWkGviiVkIGQodzzNU=
X-Google-Smtp-Source: APXvYqzDP9i3SVX6dr4ROJSMvyao7bzOE3w0CWREVsPAHi7ma9aZvYgQmHsGDmjiV9fuPd8pkA4Gjw==
X-Received: by 2002:a63:6e09:: with SMTP id j9mr40205193pgc.416.1556231193858; Thu, 25 Apr 2019 15:26:33 -0700 (PDT)
Received: from mail-pl1-f181.google.com (mail-pl1-f181.google.com. [209.85.214.181]) by smtp.gmail.com with ESMTPSA id h4sm31486683pfo.119.2019.04.25.15.26.32 for <ice@ietf.org> (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 25 Apr 2019 15:26:32 -0700 (PDT)
Received: by mail-pl1-f181.google.com with SMTP id z8so496849pln.4 for <ice@ietf.org>; Thu, 25 Apr 2019 15:26:32 -0700 (PDT)
X-Received: by 2002:a17:902:86:: with SMTP id a6mr41572138pla.277.1556231192632; Thu, 25 Apr 2019 15:26:32 -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>
In-Reply-To: <30518269-CA9D-4F50-8CE3-062A01DBCD7F@mozilla.com>
From: Roman Shpount <roman@telurix.com>
Date: Thu, 25 Apr 2019 18:26:23 -0400
X-Gmail-Original-Message-ID: <CAD5OKxvmRK8Xzu4FSRv3Lgdg-VrrufzGhjAdSmfcLLkrm-jtjw@mail.gmail.com>
Message-ID: <CAD5OKxvmRK8Xzu4FSRv3Lgdg-VrrufzGhjAdSmfcLLkrm-jtjw@mail.gmail.com>
To: Nils Ohlmeier <nohlmeier@mozilla.com>
Cc: Christer Holmberg <christer.holmberg@ericsson.com>, "ice@ietf.org" <ice@ietf.org>
Content-Type: multipart/alternative; boundary="0000000000006ce9a80587624f08"
Archived-At: <https://mailarchive.ietf.org/arch/msg/ice/P7oZopNEbn0mjRQh0JPWQorj_DM>
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, 25 Apr 2019 22:26:37 -0000

On Thu, Apr 25, 2019 at 3:45 PM Nils Ohlmeier <nohlmeier@mozilla.com> wrote:

> On Apr 25, 2019, at 11:25, Roman Shpount <roman@telurix.com> wrote:
>
> On Thu, Apr 25, 2019 at 2:17 PM Christer Holmberg <
> christer.holmberg@ericsson.com> wrote:
>
>> >The timer should start when the connectivity checks start by the remote
>> ICE agent. The timer is needed to make sure local candidate addresses
>> continue
>>
>> >to accept STUN binding requests for at least some minimal time, so
>> technically timer should start from the time remote ICE agent was informed
>> about
>>
>> >candidate addresses and started connectivity checks. There is some
>> signaling delay involved here, so it needs to accounted by the timer value.
>>
>>
>>
>> An agent doesn’t know when the peer agent will start - especially not the
>> offerer. If it sends an INVITE with its candidates, it may take a while
>> before the INVITE even reaches the peer agent, due to network services,
>> call forwarding etc etc etc.
>>
>>
>>
> This was actually one of the issues raised related to the timer start. The
> offerer can start the timer when it got the first remote candidate or end
> of candidates notification. Answerer is trickier, since there is no
> signaling indication when offerer actually got the answer. This is why I
> was thinking that an extra signaling message (
> https://github.com/cdh4u/draft-ice-pac/issues/11), indicating end of
> sending candidate checks might work better then a timer.
>
>
> It’s not a perfect solution, but in Firefox we do start the timer when we
> receive the first ICE candidate from the remote peer. Be it as part of the
> SDP or separate via trickle ICE. Note: this needs to happen though for
> valid and invalid candidates (e.g. if the ICE agent can’t handle mDNS
> candidates, but all candidates it receives are mDNS it needs to start the
> timer on the first candidate).
> We can not make this depend on end of candidates, because it’s quite
> likely today that an ICE agent will never receive end of candidates,
> especially with trickle ICE.
>

It is possible that agent will never receive any candidates since it is
technically legal to never send any candidates to the remote party when
doing trickle ICE. I guess timer does not start in this case so ICE will
wait before going into the failure state indefinitely.

I see ICE pac only as a not perfect workaround to cover for some corner
> cases. While solving this via an extra signaling message might be the
> better solution I think such a proposal should be done via a separate draft
> if desired/needed.
>

I understand the desire to limit the scope of this draft. From what I can
see there are 3 options:

1. Start timer when local ICE candidates collection was complete and at
least one ICE candidates was received from the remote via signaling message
or STUN bind request (timer starts when both conditions must be satisfied).
The problem with this is timer might never start and agent will wait
indefinitely.

2. Start timer when ICE candidates collection was complete or an ICE
candidates was received from the remote via signaling message or STUN bind
request (timer starts when either condition is satisfied). The problem here
is that if signaling messages are delivered too slowly, ICE nomination will
fail even when working candidate pair is potentially present.

3. Add some sort of extra signaling to indicate when ICE checks were
complete. In case of WebRTC this option can be implemented via option 1 and
some sort of application specific communications which will stop the
indefinite wait.

Based on this I would prefer going with option 1.
_____________
Roman Shpount