Re: [quicwg/base-drafts] Idle timeout interaction with RTO (#1429)

ianswett <notifications@github.com> Mon, 11 June 2018 16:55 UTC

Return-Path: <noreply@github.com>
X-Original-To: quic-issues@ietfa.amsl.com
Delivered-To: quic-issues@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A081A13100F for <quic-issues@ietfa.amsl.com>; Mon, 11 Jun 2018 09:55:46 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -8.01
X-Spam-Level:
X-Spam-Status: No, score=-8.01 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, T_DKIMWL_WL_HIGH=-0.01] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=github.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 DOo8oNcLWGWX for <quic-issues@ietfa.amsl.com>; Mon, 11 Jun 2018 09:55:44 -0700 (PDT)
Received: from out-1.smtp.github.com (out-1.smtp.github.com [192.30.252.192]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 5F725131007 for <quic-issues@ietf.org>; Mon, 11 Jun 2018 09:55:44 -0700 (PDT)
Date: Mon, 11 Jun 2018 09:55:43 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1528736143; bh=dwoHquzFVAD7nvzKYvytjMhbVhKwr2/NqOMyjVIeS/o=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=JpOlCFsV21aZbAcX4HhcUloWdHXIzqfhmJSkkiIXKwWkmacWDUTLEqCyuiffGHK/o A+urSdcLd9QvmMsAnQCtv/om3vJjER9G2kcohNrOeXDEG061ooDp4Q0WIGb+lmLOP1 1xdeqliVR5CW9jn/ZzartNo7CfMwUAubwYpwXo3o=
From: ianswett <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+0166e4abb2bfcaa4e9c5fd27a3396468003fb2299251c79a92cf0000000117366b8f92a169ce13af8711@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/issues/1429/396311683@github.com>
In-Reply-To: <quicwg/base-drafts/issues/1429@github.com>
References: <quicwg/base-drafts/issues/1429@github.com>
Subject: Re: [quicwg/base-drafts] Idle timeout interaction with RTO (#1429)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5b1ea98f8103d_671e3fb445800f7843248b"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: ianswett
X-GitHub-Recipient: quic-issues
X-GitHub-Reason: subscribed
X-Auto-Response-Suppress: All
X-GitHub-Recipient-Address: quic-issues@ietf.org
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic-issues/RweZd_vwjZmePuzcZYHoYvoMx2c>
X-BeenThere: quic-issues@ietf.org
X-Mailman-Version: 2.1.26
List-Id: Notification list for GitHub issues related to the QUIC WG <quic-issues.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/quic-issues>, <mailto:quic-issues-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic-issues/>
List-Post: <mailto:quic-issues@ietf.org>
List-Help: <mailto:quic-issues-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/quic-issues>, <mailto:quic-issues-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 11 Jun 2018 16:55:47 -0000

One fairly good definition of the start of idleness is the max(time of last received packet, time of last sent packet after a packet was received).  The latter is there to ensure you don't idle timeout immediately after sending a request.  

Though if you're RTOing packets you're not technically idle, there's no proof the connection is still alive, so extending the idle timeout when sending timer based retransmissions is quite dangerous.

There is some inherent asymmetry between when you should no longer send new data vs when you should stop receiving data.  Ideally you'd continue processing incoming data for at least an RTT longer than you would send new data.

There are definitely some potential benefits in timing out the connection earlier when you believe it's dead, such as after 5RTOs or another criteria, but I'd be hesitant to recommend a uniform approach to dead connection detection for all applications and circumstances.  I think H2 commonly bundles a ping with new requests and then there's a subsequent timeout?  In QUIC, the PING wouldn't be necessary, since the request gets acknowledged.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/issues/1429#issuecomment-396311683