Re: [quicwg/base-drafts] Packet number echo with variable-length numbering (#391)

Brian Trammell <notifications@github.com> Fri, 17 March 2017 11:23 UTC

Return-Path: <bounces+848413-a050-quic-issues=ietf.org@sgmail.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 A18A6129C34 for <quic-issues@ietfa.amsl.com>; Fri, 17 Mar 2017 04:23:42 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.796
X-Spam-Level:
X-Spam-Status: No, score=-4.796 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, RCVD_IN_MSPIKE_H2=-2.796, RP_MATCHES_RCVD=-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=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 Soav6n0UxKN3 for <quic-issues@ietfa.amsl.com>; Fri, 17 Mar 2017 04:23:40 -0700 (PDT)
Received: from o5.sgmail.github.com (o5.sgmail.github.com [192.254.113.10]) (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 4AE3E127286 for <quic-issues@ietf.org>; Fri, 17 Mar 2017 04:23:39 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=github.com; h=from:reply-to:to:cc:in-reply-to:references:subject:mime-version:content-type:content-transfer-encoding:list-id:list-archive:list-post:list-unsubscribe; s=s20150108; bh=d/35ScrGMUlQ8T8JXjLpVQeaPSo=; b=B5Xr+Czvw0vvt6D7 gD3+WCtrpk0Uo8OP9WiRpsHICV5kBgW2tsBxotLITWTn/D7i3kvxkXglAv05/mp3 BCBduJ/HtHFJ5HAH7FTVrcu8t7zRtHJrrCcXCH8kQtjoMDUWksai/jdh+4phqa+k 5jXexuz2EQK1mPAWeigA/JJTdc0=
Received: by filter0490p1mdw1.sendgrid.net with SMTP id filter0490p1mdw1-19192-58CBC70B-19 2017-03-17 11:22:51.239028404 +0000 UTC
Received: from github-smtp2a-ext-cp1-prd.iad.github.net (github-smtp2a-ext-cp1-prd.iad.github.net [192.30.253.16]) by ismtpd0002p1iad1.sendgrid.net (SG) with ESMTP id O2pIWfc8RP2uX9hbqngfhA for <quic-issues@ietf.org>; Fri, 17 Mar 2017 11:22:51.235 +0000 (UTC)
Date: Fri, 17 Mar 2017 04:22:51 -0700
From: Brian Trammell <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+0166e4abbad107935f68fd3260814723e8f8a7f2b03bd1eb92cf0000000114e3890b92a169ce0cbd1e83@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/pull/391/c287330020@github.com>
In-Reply-To: <quicwg/base-drafts/pull/391@github.com>
References: <quicwg/base-drafts/pull/391@github.com>
Subject: Re: [quicwg/base-drafts] Packet number echo with variable-length numbering (#391)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_58cbc70b132fb_66bf3fdd04481c34255484"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: britram
X-GitHub-Recipient: quic-issues
X-GitHub-Reason: subscribed
X-Auto-Response-Suppress: All
X-GitHub-Recipient-Address: quic-issues@ietf.org
X-SG-EID: l64QuQ2uJCcEyUykJbxN122A6QRmEpucztpreh3Pak0FtjBZ8Uj6rERbkYqjzxIU6VEw479ynrkPCb 4H8q05lQQhbDEd0Wa19+7i4tanwoAa+x95VhLhqR94ErvDg6yr6Jmo5KLx9YSxyt5TI+899iBnYwQB v206Gd0A3XvGlA0GcNZq86cOC6MKoL9wf+JpXpVKCXQCyj9UHZCOln+6xgRelN5Svo8gKDHu3WWRv7 I=
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic-issues/27PdOPveTUfsCBN1IQDJE3Iez_c>
X-BeenThere: quic-issues@ietf.org
X-Mailman-Version: 2.1.22
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 Mar 2017 11:23:43 -0000

It's not necessarily coupled. If the max-acked field comes out of the ACK frame, a sender MUST send an echo on any packet containing an ACK frame, and MAY on any other packet with a short header. Indeed, if we want to make sure that nobody gets the idea that "packet number echo == ACK-only packet a la TCP" we should ensure that echo also appears on some non-ACK packets.

Thinking about this a bit more... Consider the common case of an extremely asymmetric flow (e.g. big HTTP object GET). The client is going to be sending primarily ACK frames, so will be sending lots of echos. The server won't be ACKing anything, since it got the whole request in the first few packets. The max packet number seen keeps going up, since it's getting a lot of packets full of ACKs, but it's not ACKing them. So you're only seeing echoes in one direction. That's bad for one-point RTT measurement.

(for those not used to thinking about measuring RTT at a single point; here's an illustration I made a few years ago; the main point is you need sufficient samples in both directions so you can add "forward-side" and "reverse-side" estimates together)

![one-point-rtt](https://cloud.githubusercontent.com/assets/1884116/24040943/a7a939a8-0b0b-11e7-92ae-7f1a7e44ad82.png)

So *just* "echo on ACK" is probably insufficient. Let me suggest the following simplification, then:

### Option 3: Echo max-acked / max-seen on every packet with a short header, and remove it from the ACK frame

Rationale: This ensures sufficient samples for high-fidelity RTT measurement regardless of flow asymmetry, and offsets the overhead somewhat and eliminates redundancy by removing the echoed information from the ACK frame.

Upsides: It's very simple to know when to echo. The presence of an ACK frame is not exposed to the path. This provides the best possible signal for passive RTT measurement.

Downsides: A little more overhead. Shares with option 2 the lack of frame self-description for ACK frames.


-- 
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/391#issuecomment-287330020