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

Christer Holmberg <christer.holmberg@ericsson.com> Fri, 26 April 2019 07:06 UTC

Return-Path: <christer.holmberg@ericsson.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 98BC212018B for <ice@ietfa.amsl.com>; Fri, 26 Apr 2019 00:06:05 -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, DKIMWL_WL_HIGH=-0.001, 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, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=ericsson.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 7ZLkMGysLIDz for <ice@ietfa.amsl.com>; Fri, 26 Apr 2019 00:06:02 -0700 (PDT)
Received: from EUR02-VE1-obe.outbound.protection.outlook.com (mail-eopbgr20041.outbound.protection.outlook.com [40.107.2.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E62DC12008C for <ice@ietf.org>; Fri, 26 Apr 2019 00:06:01 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ericsson.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=OQUgKVYOVj5OD+CUTTkxwW6gxIcD2jl4F/OP+5q1YmU=; b=akqlYccgAXtCFL48RiVZ3efQHBgxSHakJ9g0zDM1RUITy2T/YPfzJ4/lGHrRtePtF1XjpDEk3x5zx3zHo+RQw/MZ2cZZ0UYVy3anMUXskZTOU8yOVJxNP+9sdzqdeKDIp+vnCSq0pHNa5Dxvbfq6VLXvBuZ2b3uZM5isydGunzE=
Received: from VI1PR07MB3167.eurprd07.prod.outlook.com (10.175.243.17) by VI1PR07MB5392.eurprd07.prod.outlook.com (20.178.14.76) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1856.5; Fri, 26 Apr 2019 07:05:57 +0000
Received: from VI1PR07MB3167.eurprd07.prod.outlook.com ([fe80::d925:d8b5:d1df:4706]) by VI1PR07MB3167.eurprd07.prod.outlook.com ([fe80::d925:d8b5:d1df:4706%4]) with mapi id 15.20.1856.004; Fri, 26 Apr 2019 07:05:57 +0000
From: Christer Holmberg <christer.holmberg@ericsson.com>
To: Roman Shpount <roman@telurix.com>, Nils Ohlmeier <nohlmeier@mozilla.com>
CC: "ice@ietf.org" <ice@ietf.org>
Thread-Topic: [Ice] ICE PAC: When to start the timer waiting for possible peer reflexive candidates?
Thread-Index: AQHU+0CsHVyA1kKNxkeJ+j5BwMef3qZNJFeAgAA9yAD//8/IgIAAFleAgAAtFICAAMN1gA==
Date: Fri, 26 Apr 2019 07:05:57 +0000
Message-ID: <0AD3077C-74FA-4585-942A-375B83B3A7A0@ericsson.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> <30518269-CA9D-4F50-8CE3-062A01DBCD7F@mozilla.com> <CAD5OKxvmRK8Xzu4FSRv3Lgdg-VrrufzGhjAdSmfcLLkrm-jtjw@mail.gmail.com>
In-Reply-To: <CAD5OKxvmRK8Xzu4FSRv3Lgdg-VrrufzGhjAdSmfcLLkrm-jtjw@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
user-agent: Microsoft-MacOutlook/10.18.0.190414
authentication-results: spf=none (sender IP is ) smtp.mailfrom=christer.holmberg@ericsson.com;
x-originating-ip: [89.166.49.243]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 67fddca4-1704-4300-3ff6-08d6ca15a1be
x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600141)(711020)(4605104)(2017052603328)(7193020); SRVR:VI1PR07MB5392;
x-ms-traffictypediagnostic: VI1PR07MB5392:
x-ms-exchange-purlcount: 1
x-microsoft-antispam-prvs: <VI1PR07MB5392585F9ACC1B5C572EAAD4933E0@VI1PR07MB5392.eurprd07.prod.outlook.com>
x-forefront-prvs: 001968DD50
x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(346002)(39860400002)(366004)(396003)(136003)(376002)(199004)(189003)(53546011)(110136005)(3846002)(102836004)(26005)(44832011)(25786009)(81156014)(6506007)(68736007)(14444005)(486006)(81166006)(86362001)(561944003)(8676002)(8936002)(6246003)(33656002)(53936002)(93886005)(229853002)(256004)(6486002)(83716004)(66066001)(6512007)(186003)(236005)(606006)(476003)(54896002)(6306002)(11346002)(5660300002)(446003)(7736002)(82746002)(2616005)(2906002)(4326008)(73956011)(36756003)(76176011)(71200400001)(58126008)(14454004)(97736004)(6436002)(91956017)(316002)(66556008)(64756008)(66476007)(66446008)(478600001)(66946007)(71190400001)(6116002)(76116006)(99286004); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR07MB5392; H:VI1PR07MB3167.eurprd07.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1;
received-spf: None (protection.outlook.com: ericsson.com does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: kh9hX6JBescL+w8Hl5FvmRPYj5aJclJMm80Mh3VI8YiCEiBCv2GUiVGh9LN31V/u9GfF4q+UAvJPOYgrY1w7neoDytkc7T7WxHcKTraH50pdBaz1i843U3DoYSWjM9mLZg7sFWQumv7eP6Lfoc+LYWtM1OxyQcspM3Vj8Xgj+gpE69/3qZWa1BehILjTyfjffCLdqNcUPO1mPw0P1VvN12zSmghsy3Z0ew2JaaNoKaMqik3YWQqbhMCcMYsKofLHXCEPALIvAl7Fr75/is7iotKUg4N7W8+sbhqOnImDCIJTNKJt5J9XpJ99bRTQRQdHRnY1rk7gY89UG2OkaqsEY2pTkxmhfm2Cgpp/6rgnC0LX1ACS6YjoKIpF2RtVpbPGGiikbGaZbJrif7YzcRVUmAtyph3W62TsYNxaWJ1Chy0=
Content-Type: multipart/alternative; boundary="_000_0AD3077C74FA4585942A375B83B3A7A0ericssoncom_"
MIME-Version: 1.0
X-OriginatorOrg: ericsson.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 67fddca4-1704-4300-3ff6-08d6ca15a1be
X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Apr 2019 07:05:57.4628 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 92e84ceb-fbfd-47ab-be52-080c6b87953f
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR07MB5392
Archived-At: <https://mailarchive.ietf.org/arch/msg/ice/6_5cF6ty9aswz72S0nDXA2WR-xs>
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: Fri, 26 Apr 2019 07:06:06 -0000

Hi,

There is one more option (which has been my assumption):

4) Start the timer when the agent would otherwise declare ICE failure, i.e., when it has tested all available candidate pairs.

Regards,

Christer

From: Roman Shpount <roman@telurix.com>
Date: Friday, 26 April 2019 at 1.26
To: Nils Ohlmeier <nohlmeier@mozilla.com>
Cc: Christer Holmberg <christer.holmberg@ericsson.com>, "ice@ietf.org" <ice@ietf.org>
Subject: Re: [Ice] ICE PAC: When to start the timer waiting for possible peer reflexive candidates?

On Thu, Apr 25, 2019 at 3:45 PM Nils Ohlmeier <nohlmeier@mozilla.com<mailto:nohlmeier@mozilla.com>> wrote:
On Apr 25, 2019, at 11:25, Roman Shpount <roman@telurix.com<mailto: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), 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