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

Sergio Garcia Murillo <sergio.garcia.murillo@gmail.com> Fri, 10 September 2021 20:53 UTC

Return-Path: <sergio.garcia.murillo@gmail.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 21D173A1AF3 for <wish@ietfa.amsl.com>; Fri, 10 Sep 2021 13:53:37 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.097
X-Spam-Level:
X-Spam-Status: No, score=-2.097 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, FREEMAIL_FROM=0.001, 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 (2048-bit key) header.d=gmail.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 G3KMB_UcBQCT for <wish@ietfa.amsl.com>; Fri, 10 Sep 2021 13:53:31 -0700 (PDT)
Received: from mail-pj1-x102c.google.com (mail-pj1-x102c.google.com [IPv6:2607:f8b0:4864:20::102c]) (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 D04123A1AE6 for <wish@ietf.org>; Fri, 10 Sep 2021 13:53:31 -0700 (PDT)
Received: by mail-pj1-x102c.google.com with SMTP id m21-20020a17090a859500b00197688449c4so2311149pjn.0 for <wish@ietf.org>; Fri, 10 Sep 2021 13:53:31 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=28+7+WoJagXSsUn5weiVmSVb7R0QwrKG3BTn7UqVi+4=; b=kAXSdisZ1up7x2tOFoUVL0Tk21spuktwlG0R2RCLla2ryxsyaNIkAzLgGXMreUz/kW alWb8URcqrWShUmn4lNG0CTbTm+vB75TG3SopOi8AKSKSzYji+xYhe9wlqMKjcHWUNw1 F1rTuZhT44GjHzkRheW9ZOyL3llobUA9cNG8bhFoH2YiE5ggLklTNpQe6qmVrkZdouRu yZbKiQe2UqICwzgwlgy1NGMe6omwGSxvJTT40mJVyzfWhIxIbYFaz/3fFg+SHkrY6kwM maXf+cGeDpDGGrLelWSH1mg/6oxmI7aDffVWVMifsEwnFGZieq+BowLvjCL8B6i2+jAu lwfA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=28+7+WoJagXSsUn5weiVmSVb7R0QwrKG3BTn7UqVi+4=; b=NQ55bewVAmaLqzKRbusxjjQRLpmx0MsoVy7PfRtz//D2Imixry5stICtWIaXnCAQ5g 1c5EljHP+qkqJvNSrVQb+QtwkXJKH/7/PAMA3N4yWGEQOpJwQUDoul9b/nL5D9jCYxP1 sG5ij+uhPyzn/m+x+JjrwXk34BS1vRRRsgWotoXpiLfF2TvYHG8OCdS/wzBBL+tT3sfj gupZSlgkOO6LXjSLMMdS/K2R3ckLd2OjC5DcRonW6++ZWTd9daKCXgNfvCNqGEC8jOGi C1UA29ocULlpZCPKFed28bxKwPA1RnWg18pWG219F2LykBG2mK+8YQNsAIciBEFMsK19 ajpQ==
X-Gm-Message-State: AOAM530HzYbWsSd5xXjVztiOLs6pE/0Oj9JMsrAd2mABwPSYMwO0IOSt hdlOb8iSOpB0uCRhV+jPkValIlJB58irf+cX8tg=
X-Google-Smtp-Source: ABdhPJyYNZU45EztfqlrhLLlpAN+Ya/km9cKOaOdnN7tQwsOg4h8xKUxzSvjSxIgPvaS+HRGLqggdxr1f4l4xc1bNN0=
X-Received: by 2002:a17:903:1c2:b0:138:b303:7b95 with SMTP id e2-20020a17090301c200b00138b3037b95mr9140216plh.78.1631307209932; Fri, 10 Sep 2021 13:53:29 -0700 (PDT)
MIME-Version: 1.0
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>
In-Reply-To: <760D1DAA-AA48-4893-9B1B-0904FB9D8062@8x8.com>
From: Sergio Garcia Murillo <sergio.garcia.murillo@gmail.com>
Date: Fri, 10 Sep 2021 22:53:18 +0200
Message-ID: <CA+ag07bWHcuavZ-pY2rfOw-XX-0UuKtQvX=L3=SZPFwxGFfWjQ@mail.gmail.com>
To: Nils Ohlmeier <nils.ohlmeier@8x8.com>
Cc: Juliusz Chroboczek <jch@irif.fr>, WISH List <wish@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000c482ff05cbaa4e86"
Archived-At: <https://mailarchive.ietf.org/arch/msg/wish/gf4Q_H4Mh4MWKa5q6ugbuJluwTI>
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 20:53:37 -0000

El vie., 10 sept. 2021 22:42, Nils Ohlmeier <nils.ohlmeier@8x8.com>
escribió:

>
> On Sep 9, 2021, at 13:10, Sergio Garcia Murillo <
> sergio.garcia.murillo@gmail.com> wrote:
> El jue, 9 sept 2021 a las 19:52, Nils Ohlmeier (<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