Re: [quicwg/base-drafts] Make in_flight the criterion for declaring loss (#2104)

ianswett <notifications@github.com> Fri, 07 December 2018 02:26 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 A2A9712D4ED for <quic-issues@ietfa.amsl.com>; Thu, 6 Dec 2018 18:26:17 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -9.46
X-Spam-Level:
X-Spam-Status: No, score=-9.46 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-1.46, 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] 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 IhE4tSc-I4Ci for <quic-issues@ietfa.amsl.com>; Thu, 6 Dec 2018 18:26:15 -0800 (PST)
Received: from out-3.smtp.github.com (out-3.smtp.github.com [192.30.252.194]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C55AD1200B3 for <quic-issues@ietf.org>; Thu, 6 Dec 2018 18:26:15 -0800 (PST)
Date: Thu, 06 Dec 2018 18:26:15 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1544149575; bh=m32qIaW75L2jRNb+QJX7W01uxHWWUXBO+EJZoBwikhQ=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=LH/d2Vx78pjs1aibvbX0qLBg/gatI5hOEfWb/mZpEoLHzxpHzrt7GU+kLb+dnZZmH AxiFQh99rpAZ/G66KglqYf9pEby9l+N+6NCUFOpnE6FW2pj1IuHUSxBPvbh7RFQM5j KG7Ha8JQWndtoaLEKSsgz8oatWcmyri6wb2Htfjk=
From: ianswett <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+0166e4ab4d472d0e86f9ada4b93184dd7e23045fc638712092cf0000000118219c4692a169ce172626a9@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/pull/2104/c445100934@github.com>
In-Reply-To: <quicwg/base-drafts/pull/2104@github.com>
References: <quicwg/base-drafts/pull/2104@github.com>
Subject: Re: [quicwg/base-drafts] Make in_flight the criterion for declaring loss (#2104)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5c09da46f3e2c_38ae3f90deed45b416582d"; 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/N0tYnwXRiW_1yhY9R807IjEmMLs>
X-BeenThere: quic-issues@ietf.org
X-Mailman-Version: 2.1.29
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: Fri, 07 Dec 2018 02:26:18 -0000

I think strictly speaking, neither option may be correct, unfortunately.

Packets that are in_flight count towards bytes in flight, so need to be removed from flight eventually.  And they may never get acknowledged.  The transport and recovery drafts are either a bit unclear or in conflict about whether one should ACK a PADDING only packet that arrives out of order.

The transport draft currently says "To avoid creating an indefinite feedback loop, an endpoint MUST NOT send an ACK frame in response to a packet containing only ACK or PADDING frames, even if there are packet gaps which precede the received packet."

In recovery it says "Out-of-order packets SHOULD be acknowledged more quickly, in order to accelerate loss recovery. The receiver SHOULD send an immediate ACK when it receives a new packet which is not one greater than the largest received packet number."

I think this is an excellent reason to move the text about "Generating Acknowlegements" into transport, because having it in two places increases the chances of inconsistencies.

I tend to think that the best thing to do is take Martin's change, but also say that if an in-flight packet arrives out of order, an immediate acknowledgement should be sent, because it counts towards bytes in flight.

Again, having a packet that counts towards bytes in flight, but doesn't generate an ACK, generates a bunch of edge cases I dislike, but I think we're stuck with it.

-- 
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/pull/2104#issuecomment-445100934