Re: Proposal to replace ACK block count with ACK length

Kazuho Oku <kazuhooku@gmail.com> Sat, 16 June 2018 09:26 UTC

Return-Path: <kazuhooku@gmail.com>
X-Original-To: quic@ietfa.amsl.com
Delivered-To: quic@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E2DBA130FF0 for <quic@ietfa.amsl.com>; Sat, 16 Jun 2018 02:26:01 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Level:
X-Spam-Status: No, score=-1.999 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.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 Ti3Hc5As_6M1 for <quic@ietfa.amsl.com>; Sat, 16 Jun 2018 02:25:59 -0700 (PDT)
Received: from mail-pl0-x22f.google.com (mail-pl0-x22f.google.com [IPv6:2607:f8b0:400e:c01::22f]) (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 DA93C130FEE for <quic@ietf.org>; Sat, 16 Jun 2018 02:25:59 -0700 (PDT)
Received: by mail-pl0-x22f.google.com with SMTP id t12-v6so6539664plo.7 for <quic@ietf.org>; Sat, 16 Jun 2018 02:25:59 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=PKDAI9VQydw3kLCoZOwCPTJsPwxULyEVB2eg+wi+/nE=; b=SgEPxKqB5jGhayI3jvIyl9SWcsNNpFv3KDLIl9/lsRjik71KoSp9wPTq+O4jAmNCIe Xz/9xUsne9+dQDl3aU4Ex6ko+TtHPNGC3OyUsCvmyoBpmqem0OeuvURCQVEnBoZfY6Y5 txiwDGKToisjoUdSVBrwvQvreGF9qaRHUJdrf1bUN/zpS53JD/7QxriV4sxr7u+BzunV tgCm8tfccMuzszYbwJz9yZ34++Bp4vJ/fCpFiihxcxB9iN8hvlhaAEZF3Roq7ogoTpXd TYRTvHH1p8MSwWJWoYLYqtQU3sAeEtqIQP2Z/phH4zu7OVms9QhQ9WFWRDrx4zZ8Yqn7 uSKw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=PKDAI9VQydw3kLCoZOwCPTJsPwxULyEVB2eg+wi+/nE=; b=CwNnxjWYhfeNcYuGvh8/nAdltbcYd0bn0s8xGBrlgBBsMc68XB6SbdttR+ewCOpIRf m/rv9uyeBWqgvWaYDGa/FCd+0J2/c8vUhhw5TnHG0BDfeaSQ8ZyKNeMB1KXli3bYMy3R n0KkiFU6S1Y9qr7qJPEiov+S0wEmi2d56gp++d9CuiguIFZ4HftpGES/rb4aNNeTjhlY qV3sMCMNyawziAR4MXO+mpIweTO8t93lo/wGo4GO2ORvYkIxfnGFsseZZgF1zd5x93nD UdBiw7xZjwWYyTU4TlWXvF2nE4uijnP/2XGdZx0ZnV1QWCCAKq40fY683YabPQs8aHuI 7X7Q==
X-Gm-Message-State: APt69E1d1aMdGptpmlW4PiXALb1Ylx3Xf+79UVrt8gwsvJLrSzK5uHWW z/l3iJpZy9y4njAGdMHU1RLLGMR7z2Z0WZqBcFo/+g==
X-Google-Smtp-Source: ADUXVKLjGdSxd08zWVLUQoCaE0dMcgFtls1wNIGIf5zp3JatmrupDh6i5JTYcRajlNlCWr+8rAhzhZgBE+PlT6WLPOw=
X-Received: by 2002:a17:902:3041:: with SMTP id u59-v6mr5936884plb.208.1529141159252; Sat, 16 Jun 2018 02:25:59 -0700 (PDT)
MIME-Version: 1.0
Received: by 2002:a17:90a:1181:0:0:0:0 with HTTP; Sat, 16 Jun 2018 02:25:58 -0700 (PDT)
In-Reply-To: <bbca97ef-2457-18ea-90af-d3b342a0754c@huitema.net>
References: <1F436ED13A22A246A59CA374CBC543998B832414@ORSMSX111.amr.corp.intel.com> <20180611154244.GA27622@ubuntu-dmitri> <CACpbDcdxzRxeiN93kKoj__vo2TERm4QZKqaesL=jr4wQUN1gXA@mail.gmail.com> <1F436ED13A22A246A59CA374CBC543998B833B91@ORSMSX111.amr.corp.intel.com> <CABcZeBOjjRrX+AsXdgcUKpL=ciL8U_U1+WVAhQv-ZjwGxkQxYw@mail.gmail.com> <MWHPR21MB0638068EFA850328793E55F6B67C0@MWHPR21MB0638.namprd21.prod.outlook.com> <CACpbDcdbTKKEh8dcshWM6-7vq2hBFJC1myL1+H6etpMMjth+wg@mail.gmail.com> <CABkgnnV_thWcAi=AdwV+Za5rXywiUvtOYpsNNp1y7=RvL2MvWA@mail.gmail.com> <CANatvzyS0NY2+W2mzRPdwqTrm3hLd+QYBh=F68mw73Nfjx1apA@mail.gmail.com> <bbca97ef-2457-18ea-90af-d3b342a0754c@huitema.net>
From: Kazuho Oku <kazuhooku@gmail.com>
Date: Sat, 16 Jun 2018 18:25:58 +0900
Message-ID: <CANatvzyrgTSHj8V+8mpfrUf3YDSO3xy02UN5-wCoC-Udt75p5Q@mail.gmail.com>
Subject: Re: Proposal to replace ACK block count with ACK length
To: Christian Huitema <huitema@huitema.net>
Cc: IETF QUIC WG <quic@ietf.org>
Content-Type: text/plain; charset="UTF-8"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/G9UagMaP1puWQAszNfPpgLVmwb0>
X-BeenThere: quic@ietf.org
X-Mailman-Version: 2.1.26
Precedence: list
List-Id: Main mailing list of the IETF QUIC working group <quic.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/quic>, <mailto:quic-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic/>
List-Post: <mailto:quic@ietf.org>
List-Help: <mailto:quic-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/quic>, <mailto:quic-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 16 Jun 2018 09:26:03 -0000

2018-06-16 16:10 GMT+09:00 Christian Huitema <huitema@huitema.net>:
> On 6/15/2018 6:57 PM, Kazuho Oku wrote:
>
>> And I think that the proposed change would be fine because it does not
>> necessary increase the size of the ACK frame, if we remove ACK Block
>> Count field in exchange.
> Ack block count is generally one byte, the length would have to be two
> bytes most of the time, especially if one wants to avoid 2 passes. So
> that's one extra byte.

I am not sure if that is true.

I think that it would be safe to assume that most of the blocks or
gaps will be smaller than 65. On a high bandwidth scenario, some of
the blocks could become bigger than that, but IIUC having many big
blocks with gaps within is unlikely.

Therefore, we can assume that an ACK Length field of one-octet can
hold up to nearly 30 pairs of blocks and gaps (whereas one-octet ACK
Block Count can hold up to 63).

I think that that would be enough. Or, I would argue that if we think
that having nearly 30 pairs is not enough, I wonder that 63 could be
not enough as well.

Besides, I would like to note also that you can implement
space-efficient one-pass encoding of an ACK frame even if we replace
the Block Count field with a variable-length ACK Length field. For
one-pass encoding, I'd assume that you retain the size of each block
(or gap) and update that as new frames arrive. What you would do is as
you update the size of the block (or gap), you update the expected
size of the ACK frame as well. The size increments by one when the
size of the block becomes greater than 63, or decrements by one when
the size of the gap becomes smaller than 64.

>> Instead of relying on the field, a receiver of the ACK frame can read
>> blocks until it consumes the number of bytes specified by the length
>> of the frame.
> Modulo handling of ECN counters, of course. In the ECN proposal, we have
> three varints at the end of the ack frame, and that would make parsing a
> variable number of ack blocks more interesting. So if we take the length
> proposal, we have to make sure that the ECN counters  get moved before
> the ack blocks.

Agreed.

> -- Christian Huitema
>
>



-- 
Kazuho Oku