Re: [Wish] How to detect a crashed client?

Christer Holmberg <christer.holmberg@ericsson.com> Sat, 11 September 2021 09:48 UTC

Return-Path: <christer.holmberg@ericsson.com>
X-Original-To: wish@ietfa.amsl.com
Delivered-To: wish@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id DD2843A0A5F for <wish@ietfa.amsl.com>; Sat, 11 Sep 2021 02:48:06 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.553
X-Spam-Level:
X-Spam-Status: No, score=-2.553 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.452, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_MSPIKE_H2=-0.001, 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 VLX0NO6EGeuI for <wish@ietfa.amsl.com>; Sat, 11 Sep 2021 02:48:02 -0700 (PDT)
Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2055.outbound.protection.outlook.com [40.107.22.55]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 059963A0A55 for <wish@ietf.org>; Sat, 11 Sep 2021 02:48:01 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fZBk4lvTdquF7OMFQd6iezQQUonfzZIEoQeq5IMQNKmcnqSMjbLaK7o4JdEuGgQlU2U3TTfMHPS5oez8ZOLJ8RffIpefsfSPlI1oo2p6IO/0qerh8NGAHLiM2/05Dbh1ofzCdYrbpUYbgJWkevVLvNaliZD85RSr5gaATjEVNjQ33le3UIC31B6oFlkx0pJdePZXicGv8JKdqgEuGOVPkmuPCn9hd4t2rE4RpOV63GG7hohsQ50YmD99eUg3yo8csvBl2oouVmaS3twl4GfvzXa1ttU7tlEkdVDs93vIMhTHtU9iJ3nw5gOC86ImbOTih+wPPE4UyRKR6v9+ouGAmw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=8FjZsRcvzwowTjxaXVl2AkrWYFhzzQnb7ZL2+qnr5DI=; b=aics1MPFstlaLNV+twWRQVxNeUJ6AkUUy9kUWmrsbkSXmz4sUcHjNhsQX734X/9RsBvzs/k3/NY4i6jDsnj4rBY32jAr5Sko3akQdDG5BB7n9igh4/NHzVIRIOhOEZ+BKvXN8bCOXKymOKQmhu1t8A0/hsRsvhsynxedG2yfufEbSOcb5Ruu0R8hkoiSMJlpPcdIkAKjGia94oJ/5lkb9LLMbObod2G4FZkdAXzejlHWn35pO4tXYcTCdksBtfT9QbfGeL00+hbA/C35Ur4QaseuLXu03nxoUtN2eftaRH2nrGD+4tD6amf8dEqape88dcXCmsrn6khXa7pSedaLlg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=ericsson.com; dmarc=pass action=none header.from=ericsson.com; dkim=pass header.d=ericsson.com; arc=none
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=8FjZsRcvzwowTjxaXVl2AkrWYFhzzQnb7ZL2+qnr5DI=; b=nTUpyAhjNBvvNX5sB+2wkARs3uX9GJToRYUbqGxoafXb/Nby/gIVwuGQI5O9VSAnFcJXgmSx1ELujrtp2zKpOPeC2VcZNcqel9FfVMs0kVQIljS78defpfcXocZ+gK7is/RFjL+RvhosQFm/Ikp7/2aVnP4JXEP14xYC0dnkcIw=
Received: from HE1PR07MB4441.eurprd07.prod.outlook.com (2603:10a6:7:9f::27) by HE1PR0701MB3002.eurprd07.prod.outlook.com (2603:10a6:3:4f::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4523.9; Sat, 11 Sep 2021 09:47:54 +0000
Received: from HE1PR07MB4441.eurprd07.prod.outlook.com ([fe80::49b7:5cc:5aeb:fb2a]) by HE1PR07MB4441.eurprd07.prod.outlook.com ([fe80::49b7:5cc:5aeb:fb2a%4]) with mapi id 15.20.4478.019; Sat, 11 Sep 2021 09:47:54 +0000
From: Christer Holmberg <christer.holmberg@ericsson.com>
To: Nils Ohlmeier <nils.ohlmeier@8x8.com>
CC: Sergio Garcia Murillo <sergio.garcia.murillo@gmail.com>, WISH List <wish@ietf.org>, Juliusz Chroboczek <jch@irif.fr>
Thread-Topic: [Wish] How to detect a crashed client?
Thread-Index: AQHXpY4HFl+1nU5ewkaLeDzEi6srUqub1BsAgAALHgCAAByVAIAAJpQAgAGeczKAAA+pwIAAB3qAgAC8PMA=
Date: Sat, 11 Sep 2021 09:47:54 +0000
Message-ID: <HE1PR07MB44412EECFDED3CF08754BAC393D79@HE1PR07MB4441.eurprd07.prod.outlook.com>
References: <877dfphj5g.wl-jch@irif.fr> <CA+ag07Y0A9ZbfH9QPEWUS2LjFA4hF7T1kuYc-fCUMLW+VdCRww@mail.gmail.com> <875yv9hgrf.wl-jch@irif.fr> <7DEC2328-BB66-449B-A778-BAF8DDB9BFC8@8x8.com> <CA+ag07aZkSHyuGTt-Gkn7AxboAoexSZTUQCi+nBCjyYTyCVmXw@mail.gmail.com> <760D1DAA-AA48-4893-9B1B-0904FB9D8062@8x8.com> <CA+ag07bWHcuavZ-pY2rfOw-XX-0UuKtQvX=L3=SZPFwxGFfWjQ@mail.gmail.com> <HE1PR07MB4441C7F2D6DE62C65022B5F393D69@HE1PR07MB4441.eurprd07.prod.outlook.com> <40B6339B-B13B-4749-A54D-2B0DBC298D59@8x8.com>
In-Reply-To: <40B6339B-B13B-4749-A54D-2B0DBC298D59@8x8.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: 8x8.com; dkim=none (message not signed) header.d=none;8x8.com; dmarc=none action=none header.from=ericsson.com;
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 15c14476-5923-4df3-2cfe-08d975093a4d
x-ms-traffictypediagnostic: HE1PR0701MB3002:
x-microsoft-antispam-prvs: <HE1PR0701MB30021B93F52912F457C3158A93D79@HE1PR0701MB3002.eurprd07.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 7mwOflvNAncxcx0o6iECaQ294VUtC4KpsYnzV7UEkhjH8ivPF3vnWkHVHt0HQuCQEOo8wqm0t7pbIo38f8ldCaB51Pg6kLY1o79LsXk5x99oPtiHyWNwlz0vtWwvyeAmx/hhUsRjRV4yF3wEVBeoN2E6hgrnewHeLpwWJYmjas3g76yUjs87q3RPDURhoM0dJvxQFy/3uGpnMh3f5r+SwpICQRZ0osJ4qwHkv7F0jk/wG7UZq9KVfkx6cKo5Eb4zHlrk2aAc6HbaWxEuIbiuypB9a7JEYM5wHT9wzlyzmZC97WbdNKOV4aJviDuEGIT1Oqw0WlSFI865mw2QgfltMKbiOgJ+enxAuWKpqgvv29Hunkl0sYmAmhyGMXk0bjIMXfzTOX1D8EGmM/aWTNIGybrlRO2XVyIQYW6kXk93Lm5RTfuL6z3J6wnxIEOXy93Yt2W2ulxLtiIzF+BrYxm+1YIqK7NFkC0P7etAwIUcb90WMhP0pS9uJ6p0DKQAhyY41NmayD2QzlJfyf+449wqro5FvHrR/Qeu66HWqOUOqcXNTBmmT8RAt//eDEAuuB3Lp3y7usbICvyycXdobNYnYYzap0+WbIvfE38Ypm/BLTZANGg3JPxUr+Z2Ny+L34a44ljLQc+4BDFGopXxCQrxhS8PqlfgB8fc+BxMmV8fcl1o+JneL6cAy6dQ5e7rLXIJslkwepW6LeQ3Pgbkuh4wqw==
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:HE1PR07MB4441.eurprd07.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(38100700002)(122000001)(6916009)(52536014)(4326008)(7696005)(54906003)(71200400001)(33656002)(44832011)(38070700005)(9686003)(83380400001)(316002)(66574015)(2906002)(508600001)(66946007)(64756008)(66476007)(5660300002)(26005)(6506007)(66446008)(66556008)(76116006)(53546011)(8936002)(55016002)(186003)(8676002)(86362001); DIR:OUT; SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?utf-8?B?UnlreitnazAzKzVkU0gyRElaNDdPQ0ZnWmF2TU5lMUNzMjluUXFibzdPcXly?= =?utf-8?B?YkRxeUkxeE0vYWFiTDl2b1QxamxGSnBNclZsK0YxSkVtbFJZZ0ZTV1Mzb0VL?= =?utf-8?B?UVREZ2ZWVklHVjBxcjVra2thbllnS09Uc1BvcEpHRTdzWUN1Ukp4ak1FS0Zm?= =?utf-8?B?NExWNkoyZnFaaTFmaEw5OS85RjZ6WFREUzlDWnJBTThVMklIa1hwZUMxSTlj?= =?utf-8?B?U1h2T3FuV1FVWGViTjg5UmVxOGliR3VDUEpVaGd1cFMvUzRqVVR5WU94QXBO?= =?utf-8?B?c0lubDlrRnN6ZTJrS2JZbWZ0TXBsVGVOOUloSUdhQVM0MWprMXc4dXhIMXBR?= =?utf-8?B?bnJTNStseUhCc1lkU0l4aDNOSGpCMkUrbE9oaUtmd1ppTHl3OGFHdVFhdVFP?= =?utf-8?B?eE1ET1drVG5wRDVMMVJkSXZoLzUrb0hlTFY4RFlNbk1zb2Z0ZEJJSkdrN0Iz?= =?utf-8?B?VGdXME8vdHFObUhvNXc2QmdFalFHQzBnOHJ4SEYxN0RFR2pzL3N5MHZvRkgv?= =?utf-8?B?QU8zNVVSWEpCbVlJL1ZRYmFvTW9odzg5NkxRNnNQcEs3ZmNEVk04aU9OUEdO?= =?utf-8?B?eTFRb1QyVDFDbVU4dHZPOXpycjdJYitqSW43TEIrNHdPYnhEcGtITXZwKzUz?= =?utf-8?B?bXVnTjl6NnNaRnZkTUNOa3czemo1ako4M1JkQjI2bzd4WjZwS0NVcDY4eTN6?= =?utf-8?B?ZjBBWkRpUnd0NTI0Y3RrV0RmeDJVUWY1bDlNUEFTdSsxcVZPMmkveDgxc0Mw?= =?utf-8?B?MG03VHYvQ2d0UHBvcG1yNTV3QUVsc29UVEVhU3FkU0Qvc2hpaG1JVHBPS3FS?= =?utf-8?B?WmRQYW5SbCtaS2xFSzBLOXpNRmgzdExQTGI4dkFiOHZ1UytsZG5rMG1XcDRE?= =?utf-8?B?WGZhREJNZmdPY2dTSW1mdmw4cGh5dWRxRjVYZWllSkt1OVZpbUxmY1ZLWk12?= =?utf-8?B?SGFvUS9RMHpjaXFQZTZvaTZ3TE53Q2VNTk1rRUx0SVlYK1d5UDZYWTVyc1dx?= =?utf-8?B?NldCZ1VCMmZjbTZ1c1c5VWxiUVNyVnZTRjh4c2NtMThhcUtxSFpHbk5xdjl4?= =?utf-8?B?elNSU1VjcUlUQjM0STZ6emZrbzVsQmJVdXFQeVdQTDZPRm55bXBWT3ovV0c4?= =?utf-8?B?R3ZHZGExOVo0dDg2b2hFejdjSkNXZEs2WWt5NTI2R1lhK1R0cmRnYVhwTGti?= =?utf-8?B?ZkZJb1BkVnY2UWJvSG5ZWVRSK3pub2V4NkRjNHF3VVlhZ3F0aDRPZC9pMm9h?= =?utf-8?B?WkVHclpIQmN2L3V1V0JFUFUvekJMeG9YMHA5RGJYS2c5Nit4S25PQVhXYnpu?= =?utf-8?B?OGZTcS9FOWFPckVTdUtTQWpSbllIREt3Wkk4Rmt5VGtxV2pzbjBsTEl2Rmo0?= =?utf-8?B?cXB1YzlMU0VoN2xmcUxDcDdGMjlQVDNxa2pjVXZ1VU8vVmZIUm1CcXI2K0k0?= =?utf-8?B?NHJkeTg0cDJjMFlPbm5rYnZDL2wvUDl5enUzZ0NhVk11SUtNT3dLN1MvNUJn?= =?utf-8?B?c0Z5NnRiRWh3K09VWGZkTy9PN3JacVUrMTV0dUp3eW5IVVZiR3IvL1NodEFs?= =?utf-8?B?S2Y4VUhWUEJPU2pJU0ZnenQwQ1pyTTE1UE5OMStFMzh3ZGFGZDJHdXZLdUta?= =?utf-8?B?c2I2VTNCbUVCcGI2bElJdzRwVUo3SEQzcTN1UnE1cUp0blVyZU15cUxCU3pp?= =?utf-8?B?ZGVzOGdrQmxiaXBZLzB6ak13cWVjVFVPNnVsb1haZVVseFNSY3BJRVJ0UlB0?= =?utf-8?Q?xl+nU2z2oewu/ZxJPRLZOmbEGd5QtGYoIlXOzzj?=
x-ms-exchange-transport-forked: True
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: ericsson.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: HE1PR07MB4441.eurprd07.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 15c14476-5923-4df3-2cfe-08d975093a4d
X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Sep 2021 09:47:54.1618 (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-CrossTenant-userprincipalname: q9APym8m90zGb1M/LycIXxbCt8aQgD6/lZvqVrB4UGiYd/JanBZya06H2lqZMfD9bR1hV8/9PETB9QZf+2JwGQGBzbZKTBoWohN2r4Hv4mg=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0701MB3002
Archived-At: <https://mailarchive.ietf.org/arch/msg/wish/gDg3RiPuFCTsTePRKLG54BbEOT0>
Subject: Re: [Wish] How to detect a crashed client?
X-BeenThere: wish@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: WebRTC Ingest Signaling over HTTPS <wish.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/wish>, <mailto:wish-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/wish/>
List-Post: <mailto:wish@ietf.org>
List-Help: <mailto:wish-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/wish>, <mailto:wish-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 11 Sep 2021 09:48:07 -0000

Hi,

>> The main purpose of ICE consent freshness is not to detect crashed endpoints. For that ICE keepalives are enough.
>
> While it is true that the purpose of ICE consent is not to detect crashes, it does allow to detect that is no longer useful to waste bandwidth by sending data to an endpoint which isn’t listening any more for what ever reason. 
> Which I guess in case of Wish would mean only the client would implement ICE consent to detect that the server is no longer receiving the data.
>
> But at least in the browser WebRTC world ICE consent simply has replaced ICE keepalives. Mostly because ICE keepalives worn’t working really well. So I would recommend to stay away from ICE keepalives for Wish.

Sure, but I just think it needs to be clear that, as far as the standard is concerned, ICE consent is not required for making sure the peer is alive. But, if you are anyway going to do ICE consent, you can of course also use it for check-that-the-peer-is-alive purpose.

However, it was also suggested that the server would use ICE consent towards the client. That sounds a little weird to me, as there will be no media in that direction to begin with.

Regards,

Christer


 
From: Wish <mailto:wish-bounces@ietf.org> On Behalf Of Sergio Garcia Murillo
Sent: perjantai 10. syyskuuta 2021 23.53
To: Nils Ohlmeier <mailto:nils.ohlmeier@8x8.com>
Cc: WISH List <mailto:wish@ietf.org>; Juliusz Chroboczek <mailto:jch@irif.fr>
Subject: Re: [Wish] How to detect a crashed client?
 
 
El vie., 10 sept. 2021 22:42, Nils Ohlmeier <mailto:nils.ohlmeier@8x8.com> escribió:
 
On Sep 9, 2021, at 13:10, Sergio Garcia Murillo <mailto:sergio.garcia.murillo@gmail.com> wrote:
El jue, 9 sept 2021 a las 19:52, Nils Ohlmeier (<mailto:nils.ohlmeier@8x8.com>) escribió:
[With my individual contributor hat on]

I think Sergios description above is actually not fully correct.

With ICE consent the client and the server both run their own independent ICE consent checks.
So the client sends consent requests and server answers them. And the server sends consent requests which the client has to answer.
If the client crashes, the servers consent checks will get no responses and then after 30 seconds can delete the PeerConnection.
 
That's true in case of full ice servers, but servers may be ice lite which shouldn't send ice requests.
 
Good point. Although I want to highlight for folks not that familiar with ICE specs that technically nothing forbids an implementer from claiming his server is an ice-lite implementation, but then to send out consent requests once the connection is established. I would argue that this still makes your implementation considerably easier compared to a full ICE stack.
 
that's exactly what I have implemented in my media server, I call it ICE lite+ 🤣



 

But yes if the server then would delete the PeerConnection right after consent timed out I assume it would make it hard to execute an ICE restart if the client requests that N seconds later. This is different from the browser case, where the ICE consent timeout only changes the ICE connection state, but does not directly affect the lifetime of the PeerConnection itself.

I would suggest that instead of messing with the timers for ICE consent on the two different sides of the connection - BTW for browser endpoints the JS client can’t change the ICE consent timeout value - the spec should mandate that server endpoints need to keep the PeerConnection around for another N seconds after ICE consent timed out.
 
I am not sure if we should mandate it in the spec, setting a timeout grace period once the ice timer has expired could be implementation specific. The client has no way of knowing the exact timeout on the server side, so it would have the same effect to raise the timeout server side, or have a grace period deleting the session server side.
 
Also, in case of ice restart the behaviour would be the same, the whip client would have to try an ice restart, and if the session is not found, do a full restart (based reconnection policies on client side).
 
IMHO, doing an ice restart after 30s or 40s of disconnection does not offer any benefit over full restart, but others may not think alike. 
 
I fully agree on the 30s here.
So maybe the easiest is then to let the client side decide when to give up with ICE consent. And it needs to be prepared to handle a 404 on it’s ICE restart request, to then do a full restart of the connection.
 
Completely agree.
 
Best regards 
Sergio