[quicwg/base-drafts] Only send one immediate ACK after reordering (#3357)

ianswett <notifications@github.com> Fri, 17 January 2020 19:10 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 []) by ietfa.amsl.com (Postfix) with ESMTP id 36CB41200B5 for <quic-issues@ietfa.amsl.com>; Fri, 17 Jan 2020 11:10:01 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.596
X-Spam-Status: No, score=-6.596 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_IMAGE_ONLY_28=1.404, HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1, RCVD_IN_DNSWL_HI=-5, SPF_HELO_NONE=0.001, 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 ([]) by localhost (ietfa.amsl.com []) (amavisd-new, port 10024) with ESMTP id Zocp2-c4vthM for <quic-issues@ietfa.amsl.com>; Fri, 17 Jan 2020 11:09:58 -0800 (PST)
Received: from out-2.smtp.github.com (out-2.smtp.github.com []) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 8510D1200A4 for <quic-issues@ietf.org>; Fri, 17 Jan 2020 11:09:58 -0800 (PST)
Date: Fri, 17 Jan 2020 11:09:57 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1579288197; bh=hHMPKPVqUMnt1xqUa/Tj84RZZzA8zfkcU/4Jg4GjZT8=; h=Date:From:Reply-To:To:Cc:Subject:List-ID:List-Archive:List-Post: List-Unsubscribe:From; b=qClLfU9rQM5HnyTzBuQ1ignNod3F09sAouwOZHEp7g0wlLvkG4udjckLXLG2hyqYm 2DMYcpZ15oR/R64Fb5kc8RAf3bH6p+yzjZ0xSX16zIbs1zqutQsW8qYNloslE8jJF5 4GImGk2Tkhu43y9OJTiEQkqCkStAQX9A2SSj0bFY=
From: ianswett <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+AFTOJK7BI3WHU3FURFZQWWN4F44QLEVBNHHCBYECWE@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/issues/3357@github.com>
Subject: [quicwg/base-drafts] Only send one immediate ACK after reordering (#3357)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5e2206858b1a8_40ec3fe8a6ecd960825cd"; 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/-bfV0GlmuzM03Cm6ODPM9UFHZIg>
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, 17 Jan 2020 19:10:01 -0000

Currently the transport draft says:

> "In order to assist loss detection at the sender, an endpoint SHOULD send an ACK frame immediately on receiving an ack-eliciting packet that is out of order. The endpoint MAY continue sending ACK frames immediately on each subsequently received packet, but the endpoint SHOULD return to acknowledging every other packet within a period of 1/8 x RTT, unless more ack-eliciting packets are received out of order. If every subsequent ack-eliciting packet arrives out of order, then an ACK frame SHOULD be sent immediately for every received ack-eliciting packet."

However, since this text was written, recovery was changed to require packet AND time threshold loss detection, so the only time sending multiple immediate ACKs for a single missing packet would be beneficial is if the first ACK is lost.

Also, only sending 1 immediate ACK is a lot easier to implement and reason about in my opinion than "up to 1/8 RTT".

You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub: