Re: [quicwg/base-drafts] Processing buffered packets can cause hugely inflated RTT measurements (#3980)
Martin Thomson <notifications@github.com> Tue, 04 August 2020 01:41 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 B7CAB3A1201 for <quic-issues@ietfa.amsl.com>; Mon, 3 Aug 2020 18:41:43 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.475
X-Spam-Level:
X-Spam-Status: No, score=-0.475 tagged_above=-999 required=5 tests=[DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_IMAGE_ONLY_28=0.726, HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1, RCVD_IN_MSPIKE_H2=-0.001, 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 ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id PflTaEoZcKYp for <quic-issues@ietfa.amsl.com>; Mon, 3 Aug 2020 18:41:42 -0700 (PDT)
Received: from out-18.smtp.github.com (out-18.smtp.github.com [192.30.252.201]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 573983A11FF for <quic-issues@ietf.org>; Mon, 3 Aug 2020 18:41:42 -0700 (PDT)
Received: from github-lowworker-39ac79b.ac4-iad.github.net (github-lowworker-39ac79b.ac4-iad.github.net [10.52.18.15]) by smtp.github.com (Postfix) with ESMTP id 8CABF340089 for <quic-issues@ietf.org>; Mon, 3 Aug 2020 18:41:41 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1596505301; bh=vUvfTSpgRgFAsh3P2LHDvkM6suJI3wzDk5Pu6kE6whs=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=R5jEArdmc4GvKAz1OYKFzUJwtmeVnoE3OcAWWOWkKDnTlZEyAJthjF5L9YPYV7YK2 N0gQzDCW+qVcD0dFibR9WtUrjWlhjP4Skp6ccf04jvQNWqjHHyD/+lXPbeVNRLTU4m pQl4srXq4/vJUiLb3PoM7+tQDISCZTZ8yKjdM2tw=
Date: Mon, 03 Aug 2020 18:41:41 -0700
From: Martin Thomson <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+AFTOJKZSIJ5AGETVR2W5ELN5GSO5LEVBNHHCQD7LPA@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/issues/3980/668328330@github.com>
In-Reply-To: <quicwg/base-drafts/issues/3980@github.com>
References: <quicwg/base-drafts/issues/3980@github.com>
Subject: Re: [quicwg/base-drafts] Processing buffered packets can cause hugely inflated RTT measurements (#3980)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5f28bcd57bd03_3c7916f8118194"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: martinthomson
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/V8cAp_bc7cxRP5yFqQF5jE04x_I>
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: Tue, 04 Aug 2020 01:41:44 -0000
Repeating this here, so that the PR comments don't get lost: This is about a sender having to buffer packets that might contain ACK frames. Usually, this is because the sender doesn't have the keys necessary, so they hold the packets until they do. When processing the ACK frame, some time might have passed. So we now have 5 times in play: when the largest acknowledged packet was a) sent, and b) received; and when the packet containing the ACK was c) sent, d) buffered, and e) processed. The critical difference here is that we now recognize the intentional delays at the sender in addition to intentional delays at the receiver. The receiver calculates and transmit `c - b` and sends that in ACK Delay. We have a commitment that `c - b <= max_ack_delay`. That doesn't need to change. The spec currently assumes that the sender calculates RTT as `e - a - (c - b)` (or `e - a - min(c - b, max_ack_delay)` to include the cap on receiver delay). That is, the time between when the ACK is processed and when the largest acknowledged was sent, less the ACK Delay. But that's wrong. It's `d - a - (c - b)` that we care about. So all we need to say is that if the sender buffers packets for processing, then it needs to calculate RTT based on the time that the packet entered the buffer. That is, we capture any intentional delays added *by the sender*. Then we don't have to worry about the max_ack_delay cap, because receiver behaviour always follows the contract. -- 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/3980#issuecomment-668328330
- [quicwg/base-drafts] Processing buffered packets … ianswett
- Re: [quicwg/base-drafts] Processing buffered pack… Martin Thomson
- Re: [quicwg/base-drafts] Processing buffered pack… Martin Thomson
- Re: [quicwg/base-drafts] Processing buffered pack… ianswett
- Re: [quicwg/base-drafts] Processing buffered pack… Kazuho Oku
- Re: [quicwg/base-drafts] Processing buffered pack… ianswett
- Re: [quicwg/base-drafts] Processing buffered pack… Kazuho Oku
- Re: [quicwg/base-drafts] Processing buffered pack… Martin Thomson
- Re: [quicwg/base-drafts] Processing buffered pack… Jana Iyengar