Re: [Wish] How to detect a crashed client?
Nils Ohlmeier <nils.ohlmeier@8x8.com> Fri, 10 September 2021 22:16 UTC
Return-Path: <nils.ohlmeier@8x8.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 ECA0D3A207F
for <wish@ietfa.amsl.com>; Fri, 10 Sep 2021 15:16:53 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.098
X-Spam-Level:
X-Spam-Status: No, score=-2.098 tagged_above=-999 required=5
tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1,
DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001,
SPF_HELO_NONE=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=8x8.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 3B3wFcJBPmTy for <wish@ietfa.amsl.com>;
Fri, 10 Sep 2021 15:16:49 -0700 (PDT)
Received: from mail-pf1-x42f.google.com (mail-pf1-x42f.google.com
[IPv6:2607:f8b0:4864:20::42f])
(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 47C1D3A207E
for <wish@ietf.org>; Fri, 10 Sep 2021 15:16:49 -0700 (PDT)
Received: by mail-pf1-x42f.google.com with SMTP id f65so3096961pfb.10
for <wish@ietf.org>; Fri, 10 Sep 2021 15:16:49 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=8x8.com; s=googlemail;
h=from:message-id:mime-version:subject:date:in-reply-to:cc:to
:references; bh=FQbeu/01ejXNfZpXe08cvV97gvyd1kUOG0sV+jBpqls=;
b=AJrOAT1C3JdXNfnf5+YDG+MVSH+7yAN49O/kqSOcPj7iVtJUswIXhHqGUFQUHFlbcp
1RCs4zHolewchh+Y29erGJ5Yf56iI5vUb2znZe+yh5cB1pM4KfLC0v5i6yT8u0HQTwlR
BR70Gf7Z0FEJsuH/GCK1oVL0L9QR1o6snsnaQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20210112;
h=x-gm-message-state:from:message-id:mime-version:subject:date
:in-reply-to:cc:to:references;
bh=FQbeu/01ejXNfZpXe08cvV97gvyd1kUOG0sV+jBpqls=;
b=vcsGVPKWMYbiGyy9o2mxWoNVMJH8TwEjfRE0+wYBN/Y3INf4duxk5knceK2drtbk7W
O4bh8U74cppy+8z0b8OGXRFm0l6GHhUkO/I7Zf97ZFuvkFyJJfSXFwr9+8Dr+4clD0w3
Sqp04ezMe4ye+pvQ73gMU6UeFLKtijW0Z/SkJZzkGaxBnaa8/0KlMHO/uJECzIFtV+UP
utlKZ4pl2I+Z5+wWqhMt4X98gSCiPYi7uvlrhjwnoiqy+Kipvf8MvhDV2kSxB8k+zHTW
JBf2c24Ij2X/BdBoGoSipvNE/y91ArMFN9ILZ3sevvceyx17F4cDgqb4PnvSdDaWf/xm
Aspw==
X-Gm-Message-State: AOAM531tUpeokxpf/p01LPycvOObKH6dyJpXJaOxO36/9bL8J6lxfzAy
tUs7vCVrcodteCxirESzL+B2Cw==
X-Google-Smtp-Source: ABdhPJzjSKsaokcAlMbPoh71mWCMm8oKfhSBX9LqTCd8/Zp6R/BzsmxtxJ1nlzvx4O4fV3keADATjQ==
X-Received: by 2002:a63:7e11:: with SMTP id z17mr9032027pgc.436.1631312207689;
Fri, 10 Sep 2021 15:16:47 -0700 (PDT)
Received: from smtpclient.apple ([2601:647:4600:3f31:e995:ec98:b630:560a])
by smtp.gmail.com with ESMTPSA id s17sm5675074pfg.4.2021.09.10.15.16.46
(version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);
Fri, 10 Sep 2021 15:16:47 -0700 (PDT)
From: Nils Ohlmeier <nils.ohlmeier@8x8.com>
Message-Id: <40B6339B-B13B-4749-A54D-2B0DBC298D59@8x8.com>
Content-Type: multipart/alternative;
boundary="Apple-Mail=_EFA8AC34-1D28-41B5-9E7A-8B843841CD10"
Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.100.0.2.22\))
Date: Fri, 10 Sep 2021 15:16:45 -0700
In-Reply-To: <HE1PR07MB4441C7F2D6DE62C65022B5F393D69@HE1PR07MB4441.eurprd07.prod.outlook.com>
Cc: Sergio Garcia Murillo <sergio.garcia.murillo@gmail.com>,
WISH List <wish@ietf.org>, Juliusz Chroboczek <jch@irif.fr>
To: Christer Holmberg <christer.holmberg@ericsson.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>
X-Mailer: Apple Mail (2.3654.100.0.2.22)
Archived-At: <https://mailarchive.ietf.org/arch/msg/wish/Djuvs0M4_h_MSoEi6rmYbt9tKJs>
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: Fri, 10 Sep 2021 22:16:54 -0000
Hi Christer, > On Sep 10, 2021, at 14:52, Christer Holmberg <christer.holmberg@ericsson.com> wrote: > > 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. Best Nils > > Regards, > > Christer > > From: Wish <wish-bounces@ietf.org> On Behalf Of Sergio Garcia Murillo > Sent: perjantai 10. syyskuuta 2021 23.53 > To: Nils Ohlmeier <nils.ohlmeier@8x8.com> > Cc: WISH List <wish@ietf.org>rg>; Juliusz Chroboczek <jch@irif.fr> > Subject: Re: [Wish] How to detect a crashed client? > > > > El vie., 10 sept. 2021 22:42, Nils Ohlmeier <nils.ohlmeier@8x8.com <mailto:nils.ohlmeier@8x8.com>> escribió: > > On Sep 9, 2021, at 13:10, Sergio Garcia Murillo <sergio.garcia.murillo@gmail.com <mailto:sergio.garcia.murillo@gmail.com>> wrote: > El jue, 9 sept 2021 a las 19:52, Nils Ohlmeier (<nils.ohlmeier@8x8.com <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
- [Wish] How to detect a crashed client? Juliusz Chroboczek
- Re: [Wish] How to detect a crashed client? Sergio Garcia Murillo
- Re: [Wish] How to detect a crashed client? Juliusz Chroboczek
- Re: [Wish] How to detect a crashed client? Nils Ohlmeier
- Re: [Wish] How to detect a crashed client? Sergio Garcia Murillo
- Re: [Wish] How to detect a crashed client? Juliusz Chroboczek
- Re: [Wish] How to detect a crashed client? Sergio Garcia Murillo
- Re: [Wish] How to detect a crashed client? Nils Ohlmeier
- Re: [Wish] How to detect a crashed client? Sergio Garcia Murillo
- Re: [Wish] How to detect a crashed client? Christer Holmberg
- Re: [Wish] How to detect a crashed client? Nils Ohlmeier
- Re: [Wish] How to detect a crashed client? Christer Holmberg
- Re: [Wish] How to detect a crashed client? Juliusz Chroboczek
- Re: [Wish] How to detect a crashed client? Christer Holmberg
- Re: [Wish] How to detect a crashed client? Juliusz Chroboczek
- Re: [Wish] How to detect a crashed client? Christer Holmberg
- Re: [Wish] How to detect a crashed client? Sergio Garcia Murillo
- Re: [Wish] How to detect a crashed client? Christer Holmberg
- Re: [Wish] How to detect a crashed client? Adam Roach