Re: Proposed extension for delayed acknowledgments

Maxime Piraux <maxime.piraux@uclouvain.be> Wed, 29 January 2020 13:14 UTC

Return-Path: <maxime.piraux@uclouvain.be>
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 1D490120108 for <quic@ietfa.amsl.com>; Wed, 29 Jan 2020 05:14:00 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level:
X-Spam-Status: No, score=-2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, 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 (1024-bit key) header.d=uclouvain.be
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 rm4JtjCzaMZ8 for <quic@ietfa.amsl.com>; Wed, 29 Jan 2020 05:13:57 -0800 (PST)
Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2098.outbound.protection.outlook.com [40.107.20.98]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 064FB1200F5 for <quic@ietf.org>; Wed, 29 Jan 2020 05:13:56 -0800 (PST)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BHJMYIFTBi3/weK69va+LrnCdb/N/uFjYISvrFeIsN8xLvvqO3FsGoSl17djKUPcrTPOv4cuOAvuQ9YcuhLgX+WJbyMiUk4d395dJ7BXOHDJXineYfwVyRmcFAzBIbqEfW6josYlyfiHLLC7uCiYqdgmEILe6Np7mt2NUPtJ2EZGLV1qAGrI8y3uxltz0s+JH71+tqSGSpyT6GXPDE6Bd9VPkQ/dl/+UoFvWHfNYGS3cI29sJymCb4bbWaD8tdw0l8DITxnQQlEZ/06gUNB6Dfc50CAvGNF8sY5CpTT5nC/bSuNEddTgVPtJULzgqvM9R65WAIMp0oeSdr50WW3Erg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=IxEhwowfbuMsgIUHxXfH69VpYoUXuWs6+Ia3X1vEpxs=; b=GiRPxHab2TAj9nooTzErYY6czqQvsl4pz24EOwVh4GJyfdzGSZtx6DLLQNrP+sgIhqKMGWU9qKJLbjHknZP8bUCyFXdxzKFA05OwgStSkmSREpHoGV1KtVgFIDOo2Dvz+jCjtbZJnew3yY6HIBzRPItuuWW7JAu5X0EaQu7lPtzkKMFmWdD+t7jjunWQxjae412v5+rzZutXUxJchOoemW2XRG+gly9OEV0TRUAGsJzrhbGxjERA/JSdl9/JHgZWk+NZrfz3b7dTkuTKRPfa+WiGlAJZ1rsiIwL0by6qYAMSw5Mf8jPFHxhXloLhTEAH5qkdOlgh8rWyMm6FxFTIjA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=uclouvain.be; dmarc=pass action=none header.from=uclouvain.be; dkim=pass header.d=uclouvain.be; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=uclouvain.be; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=IxEhwowfbuMsgIUHxXfH69VpYoUXuWs6+Ia3X1vEpxs=; b=QFObYht1lwd5ydoWrajGaiWEtqK0EAvd9Ibo0ZNRQ0IxIbo5crBiXSMddmC1SIsqkmTfDrnmMjPVaap7CMYCRpj9ZvawqE4791WDgV/d5dD3HndtKfI7EWmniqEkXHJArlFC/wXxdFBaCz6WI4FA3om+zNGe7jN3EG5CgnmfLxs=
Received: from DBBPR03MB5429.eurprd03.prod.outlook.com (20.179.47.84) by DBBPR03MB5319.eurprd03.prod.outlook.com (10.255.79.22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2665.20; Wed, 29 Jan 2020 13:13:54 +0000
Received: from DBBPR03MB5429.eurprd03.prod.outlook.com ([fe80::6550:1c7b:a3d4:1900]) by DBBPR03MB5429.eurprd03.prod.outlook.com ([fe80::6550:1c7b:a3d4:1900%3]) with mapi id 15.20.2665.027; Wed, 29 Jan 2020 13:13:53 +0000
Received: from localhost.localdomain (2001:6a8:308f:2:612c:e2ac:628e:2eff) by AM4PR0202CA0003.eurprd02.prod.outlook.com (2603:10a6:200:89::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2665.22 via Frontend Transport; Wed, 29 Jan 2020 13:13:53 +0000
From: Maxime Piraux <maxime.piraux@uclouvain.be>
To: Jana Iyengar <jri.ietf@gmail.com>, QUIC WG <quic@ietf.org>
CC: Ian Swett <ianswett@google.com>
Subject: Re: Proposed extension for delayed acknowledgments
Thread-Topic: Proposed extension for delayed acknowledgments
Thread-Index: AQHV1qXzb2L6VlCCGkS6+mdvrbU2yA==
Date: Wed, 29 Jan 2020 13:13:53 +0000
Message-ID: <68718285-f3f5-9e69-b87f-7f047f820d65@uclouvain.be>
References: <CACpbDcdaGPZN1MpxE8GRV64dO8OK64xbCoUvxHPmCoCk9R-MOg@mail.gmail.com>
In-Reply-To: <CACpbDcdaGPZN1MpxE8GRV64dO8OK64xbCoUvxHPmCoCk9R-MOg@mail.gmail.com>
Accept-Language: fr-FR, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-clientproxiedby: AM4PR0202CA0003.eurprd02.prod.outlook.com (2603:10a6:200:89::13) To DBBPR03MB5429.eurprd03.prod.outlook.com (2603:10a6:10:dc::20)
authentication-results: spf=none (sender IP is ) smtp.mailfrom=maxime.piraux@uclouvain.be;
x-ms-exchange-messagesentrepresentingtype: 1
x-originating-ip: [2001:6a8:308f:2:612c:e2ac:628e:2eff]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 3cdd4f56-7643-43c1-b3b4-08d7a4bd16f2
x-ms-traffictypediagnostic: DBBPR03MB5319:
x-microsoft-antispam-prvs: <DBBPR03MB5319C2232C9F41738993CB509F050@DBBPR03MB5319.eurprd03.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-forefront-prvs: 02973C87BC
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(4636009)(136003)(39860400002)(376002)(396003)(366004)(346002)(189003)(199004)(6486002)(31696002)(4326008)(478600001)(966005)(31686004)(86362001)(5660300002)(6512007)(16526019)(71200400001)(52116002)(36756003)(2906002)(6506007)(81166006)(81156014)(69590400006)(66476007)(66556008)(64756008)(66446008)(66946007)(786003)(8676002)(44832011)(2616005)(8936002)(316002)(110136005)(186003)(66574012); DIR:OUT; SFP:1102; SCL:1; SRVR:DBBPR03MB5319; H:DBBPR03MB5429.eurprd03.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1;
received-spf: None (protection.outlook.com: uclouvain.be does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: aD4EONwkCd4L9JtRLgnsTTfmGqPhCzv9VE3k+RGzy0kchlvBNVXgcc+ULcAsqfYTSWGWDou6HsQY3uIfcWettHjNR27YTHq91LzA3mR3y1sS3vNmVD2qAyV3MpP+TM5nF4qiLsJzhuD0HNSVrN2ZHhy6MUldfFLqKBuVyMiE6Nymhi95UKBrcIaMDqSHKqrLFpgvefsjXxYJzZW6n86SkkpXtMRlv/P08ZQIVYcFWB6bHXAvJ+fNowGdgIgz3WuJgDZmDmjLIG1fedFCZqsOfa6Ty5hXp3bodZZbGFDBshvRTLXWAFZvn8lWkZylhCsuMXmjzLLpJxPpsTd5xVeHLB1z7HPOlf39hkeb6kSdBzvGB6T8oY6oIgG7/S2jsdBpt2azWuVapnoDDiFxKqTT9yNBCvPpCJSMetyRtHpKRHB+VOcG0Cs/QZqagFC5EDWUxwH3F4YTpO26ajvg2Nc2Sy+QtSOxU6/t9CCRiMNnqAjxPFtkpUg5d0Q+hU3gHWJtf+ICJz1ZvRFyysdUWysVR0eLwW1G6CCi8f2CfA7O4QLbLMKDzYpoWELSq0yzNav2icqUuKnMVIPHhkZe13cRj75ACDV6jYtIcFUvi7cXWDIthn4+DWBl+qH3o3/6i8dN
x-ms-exchange-antispam-messagedata: Up0afiznOL8i+NwoPuOE9s2ROaQZncmGzTl4TGL3qobkCN7yKKTPbUMDvVos9yTIT2ZoQLelKI3EdnaoZWY+MOT5TWvJ7TNmWAeT5mJd9R+fSxvJVIVyZQBUalnu7G9fVyVtxnmXjN/tDV28OtG8Z/OA4CRrc9X7bASskX7ehOuegDCyvfiIY8FZHaNYpg7G9npNpw9CzeGdYc47cdIkFA==
x-ms-exchange-transport-forked: True
Content-Type: text/plain; charset="utf-8"
Content-ID: <290ECE7CEC9ED9499160B344534C4D44@eurprd03.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: uclouvain.be
X-MS-Exchange-CrossTenant-Network-Message-Id: 3cdd4f56-7643-43c1-b3b4-08d7a4bd16f2
X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Jan 2020 13:13:53.9221 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 7ab090d4-fa2e-4ecf-bc7c-4127b4d582ec
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: /1BDLm2cGea7v5Awukj76oiJUMMgudHVdKUEzzUASaVhI2tIxCO8/ip9oNxui3OoPR7Xx5bkJ0q3Rg90lsxobvLDqXBlJK3bFwCzOHACUN8=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR03MB5319
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/jpprBcjKcT62ZYdLSQCKVrtDgEs>
X-BeenThere: quic@ietf.org
X-Mailman-Version: 2.1.29
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: Wed, 29 Jan 2020 13:14:00 -0000

Hi Jana,

Enabling sender-side control of the receiver behaviour is also part of 
our efforts with PQUIC <pquic.org>. We propose a new paradigm for 
deploying new extensions to QUIC. For some use-cases, instead of 
defining a standard wire format enabling the control of specific 
mechanisms, we propose to directly inject code that implements the 
required feature.

More concretely, adding a custom ack policy requires replacing a single 
function (aka protocol operation) in PQUIC. The protocol operation 
is_ack_needed determines whether sending an ack is required. An example 
of the code that could be injected to change the packet tolerance to 10 
and the max ack delay to 10ms can be found below.

/* The function returns whether an ack is needed for a given packet 
context */
protoop_arg_t is_ack_needed(picoquic_cnx_t *cnx)
{
     uint64_t current_time = (uint64_t) cnx->protoop_inputv[0]; /* 
Current time in microsec */
     picoquic_packet_context_enum pc = (picoquic_packet_context_enum) 
cnx->protoop_inputv[1];
     picoquic_path_t *path_x = (picoquic_path_t*) cnx->protoop_inputv[2];
     picoquic_packet_context_t *pkt_ctx = &path_x->pkt_ctx[pc];

     protoop_arg_t ack_needed = 0;
     uint64_t packet_tolerance = 10;  /* 10 packets */
     uint64_t max_ack_delay = 10000;  /* 10 ms */

     if (pkt_ctx->ack_needed) {
         if (pkt_ctx->highest_ack_sent + packet_tolerance <= 
pkt_ctx->first_sack_item.end_of_sack_range ||
             pkt_ctx->highest_ack_time + max_ack_delay <= current_time) {
             ack_needed = 1;
         }
     }

     return ack_needed;
}

Our approach can also be used to deploy an extension defining new frames 
as explained in [PQUIC]. Every time that there will be an interest in 
enabling the dynamic modification of a particular QUIC mechanism, having 
a common interface to inject code will shorten the time to deploy and 
experiment with those modifications.

[PQUIC]: Quentin De Coninck, François Michel, Maxime Piraux, et al. 
Pluginizing QUIC. SIGCOMM 2019. https://dl.acm.org/authorize?N680239

Maxime

Le 23/01/20 à 22:50, Jana Iyengar a écrit :
> Hi all,
>
> Ian and I have proposed an extension to enable sender-side control of
> acknowledgement frequency: draft-iyengar-quic-delayed-ack-00
> <https://datatracker.ietf.org/doc/draft-iyengar-quic-delayed-ack/>.
>
> The problem this extension solves was originally discussed in #1978
> <https://github.com/quicwg/base-drafts/issues/1978>, where we agreed that
> this might be best done in an extension. The desire to reduce the frequency
> of acknowledgements was more recently brought up and discussed in #3304
> <https://github.com/quicwg/base-drafts/issues/3304>, where it seemed clear
> that there was interest in working on this now. This proposed extension is
> a result.
>
> This is an individual draft. Please feel free to use the following github
> repo, which is NOT the working group's repo, for filing issues and
> discussion pertaining to the draft:
> https://github.com/janaiyengar/ack-frequency
>
> - jana
>