Re: Cost of parsing ACK frames in QUIC

Mikkel Fahnøe Jørgensen <mikkelfj@gmail.com> Thu, 10 May 2018 14:44 UTC

Return-Path: <mikkelfj@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 7F8D812EB05 for <quic@ietfa.amsl.com>; Thu, 10 May 2018 07:44:24 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.697
X-Spam-Level:
X-Spam-Status: No, score=-2.697 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, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001, UNPARSEABLE_RELAY=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 YMVSodUHR0qd for <quic@ietfa.amsl.com>; Thu, 10 May 2018 07:44:23 -0700 (PDT)
Received: from mail-io0-x233.google.com (mail-io0-x233.google.com [IPv6:2607:f8b0:4001:c06::233]) (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 1012C12EAF9 for <quic@ietf.org>; Thu, 10 May 2018 07:44:23 -0700 (PDT)
Received: by mail-io0-x233.google.com with SMTP id e12-v6so3275986iob.8 for <quic@ietf.org>; Thu, 10 May 2018 07:44:23 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:in-reply-to:references:mime-version:date:message-id:subject:to; bh=MPq7VywDNj/NEEYZeQEIanAipmyEOYNyqZiejzrMImY=; b=U/zG6FoQOMKM98jZ6lSok5vjK6inPlOLyI1gqTX+AWImiHPefH2e4fFlS8nPjcJJ2O +OcYnHnUfJ10sCgpalxQEmQVbEzMGJtJ+LH9P8YZz5RzO1wRzErXQ0aP3mo9NouFb7+Q sdLanog28FJywdjjy7GTvEm1k14bpOjfgDvbfzzRFVi5BMoMyppEXe/Dx5Sg/wFNrIUQ 2x3KkXIpElIifSkyGAYJjH+tWIYt6h69wQdrAC3KMg3hicnB/QrVs43JVXrGUQ7IhnDX 5s5HtFt8tO5+vE/pNUEOjSL+wbmRzQHW8USq7SjZAMp5ZFcACgrp32Do7c7dJ48P1DOm XLpA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:in-reply-to:references:mime-version:date :message-id:subject:to; bh=MPq7VywDNj/NEEYZeQEIanAipmyEOYNyqZiejzrMImY=; b=L12ldad+Hw3qAzwM+9QJ9HRbt2QIQ4mEhjEN1GEGEQTqWJywSnX4jEUJ58KYn/5LXK TTs5/jgKD1g0dE5SrfWviORYQflih6Kb4KYOut/Fe1d+XieyfA7jMQEJ+Nu8+gTRbsDu z3Vcz6lfUPnYLfZHrMmkOZU9bWbZJeP5l2PXjKsFOcMBZirzlR+FyhsiG1HSVBKXHic9 7E+jUHw4t1ZmQmyAvhVMrlZvfdJWQFcHGVpQmb2PW3sLEn4haDS9nUPPQtIZnP6mMnt+ tX/AeRHW9EsUrtP45BQ95mSmmcrxlOEW1smdIWQM9vVb34elhZh4/77juB3p9jVraz2H 2aJg==
X-Gm-Message-State: ALKqPwdBl0TN/MWqCDvqhiNkZF2updh828jsfxpPYGeMWTeOluqTYgt9 78JkjG7OD+gJpsN8rzJWbjzxcow/isDnQv0wb4yVuZWb
X-Google-Smtp-Source: AB8JxZprn4pvZ8TwTpBYrWMNmHJxvlxfnrVHoUNXg3pDxHf7JOY33HjUAqSetkh1UHjGzgd2mTUcINPLhdXT0M2alDI=
X-Received: by 2002:a6b:1e4d:: with SMTP id e74-v6mr1858675ioe.36.1525963462451; Thu, 10 May 2018 07:44:22 -0700 (PDT)
Received: from 1058052472880 named unknown by gmailapi.google.com with HTTPREST; Thu, 10 May 2018 07:44:21 -0700
From: Mikkel Fahnøe Jørgensen <mikkelfj@gmail.com>
In-Reply-To: <1F436ED13A22A246A59CA374CBC543998B64E65D@ORSMSX111.amr.corp.intel.com>
References: <1F436ED13A22A246A59CA374CBC543998B64E65D@ORSMSX111.amr.corp.intel.com>
X-Mailer: Airmail (420)
MIME-Version: 1.0
Date: Thu, 10 May 2018 07:44:21 -0700
Message-ID: <CAN1APdcfmAsM-CBGzFEicBWf6Ck2uRhOmoiooo7d3EPDTjwt7g@mail.gmail.com>
Subject: Re: Cost of parsing ACK frames in QUIC
To: "Deval, Manasi" <manasi.deval@intel.com>, IETF QUIC WG <quic@ietf.org>
Content-Type: multipart/alternative; boundary="0000000000001ea71c056bdb0e8f"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/Ufnuw7Oc5nH_vv2vj4wulgMh7pk>
X-BeenThere: quic@ietf.org
X-Mailman-Version: 2.1.22
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: Thu, 10 May 2018 14:44:24 -0000

While this may be true, please note that QUIC also requires that the entire
packet is valid before it does anything that modifies the state of the
receiver.

This means that you generally have to do two passes of the packet to ensure
that the packet is valid. In the first pass you can then store data for the
optimistic case of a single ACK frame.

That said, arguments about fast(er) processing still apply, but it is no
longer limited to only ACK frames.


On 10 May 2018 at 16.25.50, Deval, Manasi (manasi.deval@intel.com) wrote:

Hi All,



The QUIC header definitions tend to use as few bits as possible by
implementing the policy to use variable size fields. The result of this
policy would be that each receiver needs to do a two part lookup to
identify the field and this needs to be implemented serially in order to
parse the whole frame time.



For example, in a case where no packets were dropped, a sender may receive
an ACK for a single block. If a code path were trying to determine the size
of an ACK, they would have to read 8 fields to determine the size of ACK.



A client only sees a few ACKs. Majority of the ACKs are seen on the server
side. It would be good to simplify this scheme so ACK processing can be
accelerated with SIMD instructions would be good.



Thanks,

Manasi