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

Nils Ohlmeier <nohlmeier@mozilla.com> Thu, 25 April 2019 19:45 UTC

Return-Path: <nohlmeier@mozilla.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 0F7DA120607 for <ice@ietfa.amsl.com>; Thu, 25 Apr 2019 12:45:14 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level:
X-Spam-Status: No, score=-2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=mozilla.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 9eWlLrynXs71 for <ice@ietfa.amsl.com>; Thu, 25 Apr 2019 12:45:10 -0700 (PDT)
Received: from mail-pg1-x542.google.com (mail-pg1-x542.google.com [IPv6:2607:f8b0:4864:20::542]) (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 485691205D3 for <ice@ietf.org>; Thu, 25 Apr 2019 12:45:10 -0700 (PDT)
Received: by mail-pg1-x542.google.com with SMTP id h1so363956pgs.2 for <ice@ietf.org>; Thu, 25 Apr 2019 12:45:10 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mozilla.com; s=google; h=from:message-id:mime-version:subject:date:in-reply-to:cc:to :references; bh=Md23DPVaCEwvt8b5qxkaoTcrp6SRcUYDn/IFUINdOu8=; b=Vy73KEzl/5sSDKuXP6JhS/OMZo2ZYNyityrMj1UkdoaYNMfbH+QKtIQ5c5Bh/50GiE 5ieF/OG6Xk4iJMNXVje25NZHymsgc253Bex/Rqzj52N+vGeby4ghxuHMh7IGMcAwABFa rkfBl+wVGI1wIXvcb4J029CKvlpTeO/gwOCds=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:message-id:mime-version:subject:date :in-reply-to:cc:to:references; bh=Md23DPVaCEwvt8b5qxkaoTcrp6SRcUYDn/IFUINdOu8=; b=DhgOPK5C3XTJ2yR/MnhXmHUvNAB5peqXf1WVg9TwF6v/d1ENtqCtQIhZNd5DUdzyvg y74HzCSEewD7Nd5rnlzyfBWPjv5Go9IYpcPqXq6BP03ohnUU1HUdl9mQdZsLx3zXspJ1 3J0XP7TquTAchw5ANSP/qiVelLWwYwtbDpDug35hgS5370GG8fQa3oyWY3iZnMbnWRIZ 1Op1YER8YzSFIMxJIc4vlZ2wY0BgRNu6zNtBtwKBbQ+96GDYFfFbz7Adxm+cHs8wxO5F udl5zfab7ZicYLCqJ/8xBelRatJWASLV218pPoBM+VhMN3kLue47QR9b/xiZgrKeTTSq TjlQ==
X-Gm-Message-State: APjAAAWzaclCTwSpeaEWAOkfoTH1v+v2+V3pN7eZHpbO313HycB5OW2z nIoIDeO5rbrX7HmOyGFtwXsJQQ==
X-Google-Smtp-Source: APXvYqx1i11+UvSL/3w8MMqV9utJzLVb7DqqW7sOWnZFG4Sxpg62Y5M5F86DDjWx5YnOGRv5EInq5w==
X-Received: by 2002:aa7:9627:: with SMTP id r7mr41668175pfg.245.1556221509705; Thu, 25 Apr 2019 12:45:09 -0700 (PDT)
Received: from [10.252.34.218] (guest-nat.fw1.untrust.mtv2.mozilla.net. [63.245.221.200]) by smtp.gmail.com with ESMTPSA id w10sm34652661pfi.126.2019.04.25.12.45.08 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 25 Apr 2019 12:45:08 -0700 (PDT)
From: Nils Ohlmeier <nohlmeier@mozilla.com>
Message-Id: <30518269-CA9D-4F50-8CE3-062A01DBCD7F@mozilla.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_E69C2C05-C8EA-404A-8B1B-9EFE7C77153E"
Mime-Version: 1.0 (Mac OS X Mail 11.5 \(3445.9.1\))
Date: Thu, 25 Apr 2019 12:45:03 -0700
In-Reply-To: <CAD5OKxt8tDemkK=v4X1gjwJGLYrxcd95S7uV53_fsga6grZ_rA@mail.gmail.com>
Cc: Christer Holmberg <christer.holmberg@ericsson.com>, "ice@ietf.org" <ice@ietf.org>
To: Roman Shpount <roman@telurix.com>
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>
X-Mailer: Apple Mail (2.3445.9.1)
Archived-At: <https://mailarchive.ietf.org/arch/msg/ice/V49Q4KOytrpEj8-yeFTelwuqUL0>
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 19:45:20 -0000


> 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 <mailto: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 <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.

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.

Best
  Nils Ohlmeier