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

Nils Ohlmeier <nils.ohlmeier@8x8.com> Thu, 09 September 2021 17:52 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 3EF623A0128 for <wish@ietfa.amsl.com>; Thu, 9 Sep 2021 10:52:39 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.099
X-Spam-Level:
X-Spam-Status: No, score=-2.099 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, 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 W2DXy2XagyBl for <wish@ietfa.amsl.com>; Thu, 9 Sep 2021 10:52:35 -0700 (PDT)
Received: from mail-pl1-x629.google.com (mail-pl1-x629.google.com [IPv6:2607:f8b0:4864:20::629]) (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 E14833A0138 for <wish@ietf.org>; Thu, 9 Sep 2021 10:52:34 -0700 (PDT)
Received: by mail-pl1-x629.google.com with SMTP id 5so464592plo.5 for <wish@ietf.org>; Thu, 09 Sep 2021 10:52:34 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=8x8.com; s=googlemail; h=mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=JDIGU+zXjwLk5v8oGZnNze7oCGTtHXeuPnjLyWDXAkI=; b=hsHVEQz/Wd1zdxbtlH0SeCCLFRjusXIG5NdrFyvYT4D5xONQ960VT4B04W3DGBdZEz DqC6rBVP8/uyMHJC9Au6tjoWH9rTN7SIsm4cOuyYLgANEZdztseFah/X3aDj3AgCf6xT FImEZ5dEpo5ICk/6aaiCjbYzrnOiHgvlmlRE4=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=JDIGU+zXjwLk5v8oGZnNze7oCGTtHXeuPnjLyWDXAkI=; b=yB7rRYAFbaMFIQIPUhQUdT897F9/9C7VIw/d5hK8VvqpRRO2vSyc5V8oCJF+b3h5LF ApsZboXy9LnyWZpX6NQUWgSOcNaTDgKVCE/sq8W7bg8hBTSenrJxF5riNWG7/ZkQuX8W Sl0XGzds32NEEIyxHzr+/ZPoj1P+ANykg6xS3yp+j+nlEwBuD3E2yUcCU3fI06joCwv8 MtpeaHddnC1XWlZoVt2mh8rAcK7BRY8T5XK630KVqPOk3xqHrxqwQMPqnUdzH7Av0nC8 h7KDjyZB1qVuxs9ks0Vd5KCgfn7WwYCZe+uuRN4lrmGtojiekxD/rD9pU/yJ/4ycsNvz BXiA==
X-Gm-Message-State: AOAM532mhWI4EuJ9MtDuCf6tC+1fMC8H5Bw1J0H+GxBakWhtM8Zic1n1 lEXSb7IvLGmVoLtcyw1T/5ntYA==
X-Google-Smtp-Source: ABdhPJzIElbbH6dcADynuqynHZytSaLDXIHl7w2uNCZvduIRRXo5wSLqgDyoemHUpwIBcYT4bTmJww==
X-Received: by 2002:a17:90b:380c:: with SMTP id mq12mr4945743pjb.73.1631209952869; Thu, 09 Sep 2021 10:52:32 -0700 (PDT)
Received: from smtpclient.apple ([2601:647:4600:3f31:a0c1:7866:f267:14af]) by smtp.gmail.com with ESMTPSA id o3sm2750888pji.26.2021.09.09.10.52.32 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 09 Sep 2021 10:52:32 -0700 (PDT)
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.100.0.2.22\))
From: Nils Ohlmeier <nils.ohlmeier@8x8.com>
In-Reply-To: <875yv9hgrf.wl-jch@irif.fr>
Date: Thu, 9 Sep 2021 10:52:30 -0700
Cc: Sergio Garcia Murillo <sergio.garcia.murillo@gmail.com>, WISH List <wish@ietf.org>
Content-Transfer-Encoding: quoted-printable
Message-Id: <7DEC2328-BB66-449B-A778-BAF8DDB9BFC8@8x8.com>
References: <877dfphj5g.wl-jch@irif.fr> <CA+ag07Y0A9ZbfH9QPEWUS2LjFA4hF7T1kuYc-fCUMLW+VdCRww@mail.gmail.com> <875yv9hgrf.wl-jch@irif.fr>
To: Juliusz Chroboczek <jch@irif.fr>
X-Mailer: Apple Mail (2.3654.100.0.2.22)
Archived-At: <https://mailarchive.ietf.org/arch/msg/wish/37X5cIBCoSBJA6PBGw4TbhuZ6Ko>
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: Thu, 09 Sep 2021 17:52:40 -0000


> On Sep 9, 2021, at 09:10, Juliusz Chroboczek <jch@irif.fr> wrote:
> 
>> Which means that the server has to monitor the ICE requests and timeout
>> any client which hasn't issued a new ICE request to renovate the consent
>> in 30s.
> 
> So we're assuming that the client has a shorter ICE timeout than the
> server, right?  Otherwise the client won't get a chance to send an ICE
> restart.

[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.

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.

Best
  Nils Ohlmeier