Re: [tcpPrague] Pacing IW

"Tilmans, Olivier (Nokia - BE/Antwerp)" <olivier.tilmans@nokia-bell-labs.com> Tue, 02 February 2021 13:07 UTC

Return-Path: <olivier.tilmans@nokia-bell-labs.com>
X-Original-To: tcpprague@ietfa.amsl.com
Delivered-To: tcpprague@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 559D13A1AA3 for <tcpprague@ietfa.amsl.com>; Tue, 2 Feb 2021 05:07:54 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.151
X-Spam-Level:
X-Spam-Status: No, score=-2.151 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.25, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_MSPIKE_H2=-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=nokia.onmicrosoft.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 hGaYtB92KmBJ for <tcpprague@ietfa.amsl.com>; Tue, 2 Feb 2021 05:07:53 -0800 (PST)
Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-eopbgr60101.outbound.protection.outlook.com [40.107.6.101]) (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 D676D3A1AA2 for <tcpPrague@ietf.org>; Tue, 2 Feb 2021 05:07:52 -0800 (PST)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UNNUy7RIh09iLhjB3KrM+kzjhFKeUB5MfFJqN7r9YAZwTk8xTv/GDDOw9aY51BQRomxZAIHfDAnRUMPdCadiKdBDtUArQj8sGibcMQ1Oh55r7dhazZclNqxX1/9ZTE32kHNsH3RBKvvL7QiFhJOo3Nb4bRq2KMoTbKrnx/QkUD2bMxv3EukELQ263dsRGFXm7MWAVhOLKU59Vm6sXdDFXqcLof18w1qqs9H0hU79CJi7aR6uQF7Rn1mJNZ9zLbtl12PtlRaf8iUVECel/cuaYiKd3PAgduTbuC9vlJKso8S4fXcqbjwj96N9iJFjrz+1w23b4MLNJGceotwyiEF/Hg==
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=LC41VkjuQGBLdCQiAgAaomZKpvKjphq5yzeMc5/kzjw=; b=X9BVdtmseKN7At0P98X3eAf+MT9JzVQOPaGZevFjI0//TRqYzJtF9W1/jR+lFjHA+llf9Opnk2xy2vOP/6+or+nxphppGHN1gIK/ydUKz7LMARu7zhZb2pw1NzbulLJ8FHS7LVbO+QreJDy4ilLPF+j7bVcD6uUbk0uCaoFiChAvMvozrDEap2k5KPV848bfDBvPUmaiGAYGDhDRYbwJme/EZQVPpMuSZ+xUcja0M2NOjvVOzwig91Nk8xgcmoEAAkUr8W0bq2gxmMN/N/8oZQOdyIrBTzArokYsz90ujdFb5pnok/yxQtxj6lpqvTW8HGHdZmXa8+27CY2HSC0G4g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nokia-bell-labs.com; dmarc=pass action=none header.from=nokia-bell-labs.com; dkim=pass header.d=nokia-bell-labs.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nokia.onmicrosoft.com; s=selector1-nokia-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=LC41VkjuQGBLdCQiAgAaomZKpvKjphq5yzeMc5/kzjw=; b=AclvojvycmTc9bObwflMuf4ErxWazeznz5pdXbKQD4oB9aQkRliXzrAOLTNaQ+3fO4p+Kg8oCN5pWM46++X48gniPpyLWPCtZU7Z76R8PIQyw1gwz6hdFefxzPDqxctpNEN6G2IrMSuzJbugaF1ML1nWDZnW0ucNV745xUylHgY=
Received: from (2603:10a6:20b:24c::5) by AM9PR07MB7282.eurprd07.prod.outlook.com (2603:10a6:20b:2c6::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3825.8; Tue, 2 Feb 2021 13:07:48 +0000
Received: from AM8PR07MB7521.eurprd07.prod.outlook.com ([fe80::95c9:a55b:5f52:1260]) by AM8PR07MB7521.eurprd07.prod.outlook.com ([fe80::95c9:a55b:5f52:1260%7]) with mapi id 15.20.3825.013; Tue, 2 Feb 2021 13:07:48 +0000
From: "Tilmans, Olivier (Nokia - BE/Antwerp)" <olivier.tilmans@nokia-bell-labs.com>
To: Bob Briscoe <research@bobbriscoe.net>
CC: TCP Prague List <tcpPrague@ietf.org>
Thread-Topic: Pacing IW
Thread-Index: AQHW+V2JFweiH7ZHME6bivIt0mTC/apE0Vvw
Date: Tue, 2 Feb 2021 13:07:48 +0000
Message-ID: <AM8PR07MB7521C068DC045E27A99C0022E0B59@AM8PR07MB7521.eurprd07.prod.outlook.com>
References: <1ddb42c7-596b-031c-6215-84e675d08b7d@bobbriscoe.net>
In-Reply-To: <1ddb42c7-596b-031c-6215-84e675d08b7d@bobbriscoe.net>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: bobbriscoe.net; dkim=none (message not signed) header.d=none;bobbriscoe.net; dmarc=none action=none header.from=nokia-bell-labs.com;
x-originating-ip: [2a02:a03f:636b:f600:dcd3:e0c3:2103:a4a4]
x-ms-publictraffictype: Email
x-ms-office365-filtering-ht: Tenant
x-ms-office365-filtering-correlation-id: 4f3a5866-cfd5-44a3-28cc-08d8c77b8a46
x-ms-traffictypediagnostic: AM9PR07MB7282:
x-microsoft-antispam-prvs: <AM9PR07MB7282C9610A78CB182F1E1446E0B59@AM9PR07MB7282.eurprd07.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: euPb1/QuTny+wx8fx4AuoxoNviQvKAiiADBHxX44BM7lNNTs55/kguseN2AQ1sbcsNy0MbxNSU492x0TOqWdIzIOgV+b2pG0mCdshGPEer7YdKRmA53C7gSZgpFjXx/bTxZK/qk4cwuzyudLOaowTJF0iWaciZ5k0KQzwb2q1ChPBhjpJj3G14xSjaNs9a23XZHp/tmHYiKTOc+oZpGHCHDAbfnw0fdJEfBgM+khHUlXJJ3yB7oIh7/deVPfDfQyDFWyhIWm5QEMAZI6m9e3Uk5EXRHLbQUWglO66svDrhc38/67PybukN0N0bpaAVD7Ji5nSlLms5L9hnoabPpNMmME2MuS85nUYj1O6a4Yaff4erJqykkQmqtU358R/p0L3fFJ+j6NWrIuf3SIvZMGV3ggUuEr5YDwL15EIvm1sXZ6PbgKbRfoSqhSzpDW0Nz90XkOJrFeWIxE5IlVnOdrYOy+ofqkbQ/C0pQI0q+pbP6NmGJt0lxHkpFuP5zknsB0KwuphMt/uj/6WbHBp+LIWiN8kF6fTT83STIMSukXSJDYVCRbEvCWXXwoDiuyHss8m24fT9skr3514Eyi1tqAbeg80t86PGw/+JH/yaWvRpiPDcxYyeDZfbIiYY12WXLgAHFkEZ+UiamX4qhaEvo8r69KMcIJz10fM7m/bQgO0BIdxG5UxopeEJnxKfyxEO1i
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM8PR07MB7521.eurprd07.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(346002)(366004)(376002)(396003)(136003)(39860400002)(8676002)(316002)(55016002)(4326008)(8936002)(7116003)(2906002)(86362001)(6916009)(186003)(76116006)(966005)(7696005)(64756008)(52536014)(71200400001)(5660300002)(33656002)(66446008)(6506007)(83380400001)(9686003)(3480700007)(478600001)(66476007)(66556008)(66946007)(336755003)(18886065003); DIR:OUT; SFP:1102;
x-ms-exchange-antispam-messagedata: =?utf-8?B?U3J5c2hqT25sOWpnK0cza2t5OWxaZFBVNktibjYvTXBHRDJiYXJqSnpqK1Ru?= =?utf-8?B?aVpKTXVWYUtrQWRRLzI2VU5jNXF0eWxVUjI5M21uS3dQak9OQ3dhaFVValpu?= =?utf-8?B?NmJWRkE0bWlic2Vrd1A1ZGkzVW1nTmJBU09VTXZ4SExxb2Nqbnd0c2VOTzBk?= =?utf-8?B?a05jMm8yMXZOZ3lVNEJyTi9KQ0tQTnhOTk1zd2U2WGpoT3NROFE5YWtPc29L?= =?utf-8?B?dGZpMCs1MmUxMDJ0MlNvWTAzNzBGVnpUOG12NTNuTzNieG5lRzhCQkxmSi8x?= =?utf-8?B?NzV6eVBSekdLNFZHTmRKTW5vYjJCWVVBM3NMRmJlNWN6eHg0eWZ5QURkVUdJ?= =?utf-8?B?SDNVM2pBdUZIM0lxVzBRbWpVaTNmQXVndkFMc3FodEE2cEN1MVAzY3dnb1Jl?= =?utf-8?B?OGJkdmVzZWFQbzF5QnM0WTNJaXkrTXlDUWxNV08vMWloZUpwUTFVVGFLM0Jy?= =?utf-8?B?dEdrQ21BVWJ3VkJzSzB5V1o1ZnhaN1JKUWwvUXFISmhnOHRicHhSSy9kOGN5?= =?utf-8?B?eng0UE9OT3VyU0wwOUo1ejN3ZTBnY043c0h2V2xuZGFuc3ZDVE93SHJUdjNU?= =?utf-8?B?RTVhdnd3c1U4T1dGc3RycEEwWE5XY1k5RjdLa2pwcU9sd0xhL1VOOFM0ZGcx?= =?utf-8?B?WkpTWkZuSUJla0RqT0FRRzhFT3lvMXRVQTVQZHg1K3ZTNjk1bjlFZ3BSc3FZ?= =?utf-8?B?T3o1VjNrU0d6TXk5aEg1c2d2dEV3UWRrOEFEeWs4dk9MYTU3Y2tzTmQxY0Nt?= =?utf-8?B?ZU9yV2RGKzRYYWNsZEZkWit3VmJrUTI5Z01keVlSVm9RbVdVUmh2WEtsbzgy?= =?utf-8?B?QzFvbXRZZEk4cFowejFyNnN4aE1QTWdEdU52cGhkNXBiVmFxV2JlWlFlOU1l?= =?utf-8?B?OTB4eGJTay9VRHUwZnZkQjF4aGxmb25SbnVaOGtEVkRxVHNVNXJFTHdwUXh4?= =?utf-8?B?aFVDeUlaNVA2c2lCd2x3b3VjQzN1cHREUmVPenZMVzdvcUFnS0xqcTc0alhi?= =?utf-8?B?cGhtb0MzYlNQTkZ5cVRUZlJhWVRDWjh6aEkyMkN3TDFWYkZ4cE1rS1MvTUJC?= =?utf-8?B?K0JBUG1vdTlBTXBhZVRiZTBjb3lyUmE3eWFxVEtXVGRaWldXRW11UkdKN0dx?= =?utf-8?B?WDVMbTNhTlJyWnJ4QmR6dVhoVjFKWmQ1ZHVwNUppK3dqaTljS0g0WFVrdzd6?= =?utf-8?B?NzhjZm1yYW9XRVdoMVhOdzRVbXBsc2NQd3BPTDZpQzRVTS9pWDJ6MGFONWYw?= =?utf-8?B?NVE0Y0RVeGNQcDU1NFQxMElBdU82SFdsdlNCbENuc2tOY3Y5a3VVVk11cThK?= =?utf-8?B?K3hxeUZndTdvYWgzd0FVbWMrekNpQXBZSnNFVGtieVFrdndCL1c4NElzbmpm?= =?utf-8?B?MktvMm54YUYyOWhCTEFUUytlTE8zTzB4cG1TejBURkcyeWFyMnZqcnl0c0VJ?= =?utf-8?B?RTBpN1FQVDdESjJITkd4TDhRYnMwRjU4YU9MWVBoWHFYbllKNXptUG14ZTA1?= =?utf-8?Q?S2UjrZY/LT3hsbR30E1YWpSo8Eb?=
x-ms-exchange-transport-forked: True
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: nokia-bell-labs.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: AM8PR07MB7521.eurprd07.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 4f3a5866-cfd5-44a3-28cc-08d8c77b8a46
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Feb 2021 13:07:48.6508 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 5d471751-9675-428d-917b-70f44f9630b0
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: CUpYUR8INXEwSPhPBdJ68k0UmiRHPPpcnm6nIAOi0BdszRLn6itZ31kp1a7di13dYBpPpKdtndEzc8ZmO2mMJyAOTZYIgtkDdjWtM9VomBmSKnf6fT8QdKvJfghW2oif
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR07MB7282
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpprague/8bQxGXU4M8F4CFmFVc4LEOLsvWQ>
Subject: Re: [tcpPrague] Pacing IW
X-BeenThere: tcpprague@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "To coordinate implementation and standardisation of TCP Prague across platforms. TCP Prague will be an evolution of DCTCP designed to live alongside other TCP variants and derivatives." <tcpprague.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tcpprague>, <mailto:tcpprague-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tcpprague/>
List-Post: <mailto:tcpprague@ietf.org>
List-Help: <mailto:tcpprague-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tcpprague>, <mailto:tcpprague-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 02 Feb 2021 13:07:54 -0000

Hi Bob,

 > I notice you've pushed code to TCP Prague, to optionally pace out IW over
 > the estimated rtt (srtt).
 > https://github.com/L4STeam/linux/commit/aea3ff36380bec82804eba8e3f99e5f14
 > 342978c

Note that this is disabled by default: this approach is quite fragile as
you rightfully point later on; it enables quick experimentation. I'd expect
someone willing to use this in production to have a finer-grained approach,
e.g., using the destination cache to get recent srtt/cwnd values.

 > [...]
 > - If the initial srtt estimate is too low, there will be a queuing delay
 > spike, but it will never be worse than just sending IW at line rate.

Agreed--I would expect this to happen, e.g., with PEPS terminating a
connection.

 > - If srtt is too high, a short flow would take longer to complete because
 > the first ACK will return before the IW has finished sending.

Agreed. More generally, that tradeoff is extremely application dependent,
so applications sensitive to this extra delay would either not use this or
control the pacing rate used themselves by overwriting the socket max pacing
rate.

 > [...]
 > So, possible solutions (either or both):
 > 
 > 1. In tcp_prague.c, multiply the rate returned from
 > prague_update_pacing_rate() by N (where N=2, say). So IW is at least
 > paced over the first half of the RTT on average. Then, if the initial
 > srtt estimate is longer than reality, the error has to be 2x before IW
 > will be delayed more than a whole round.

This is already the case, given the connection is seen as in slowstart (
ssthresh=infinity), the pacing rate will be (2 * IW/srtt)
https://github.com/L4STeam/linux/blob/testing/net/ipv4/tcp_prague.c#L306

 > 2. Introduce a third sysctl option (tcp_pace_iw = 2) that only paces IW
 > if srtt was initialized using the destination cache?
 
I'd happily merge any addition or better ways to do this.

 > Altho this is in TCP Prague now, I guess eventually it could be taken up
 > by any transport with any CC.

Indeed, this was the quickest way to get it to work. It can definitely be
altered to use the destination cache, and/or to use sk_max_pacing_rate in a
smarter way (e.g.,!= infinity indicates the application explicitly
requested it before queuing data for its IW, which could/should be preferred
to any generic in-kernel computation/assumption), and/or to be CCA
independent.


Best,
Olivier

 > 
 > Cheers
 > 
 > 
 > Bob
 > 
 > PS. Defensive coding nit: In tcp_output.c, I noticed you've kept the
 > condition
 >     if ( ... || tp->data_segs_out >= 10 )
 > Surely this shouldn't have been a hard-coded '10' in the first place?
 > 
 > 
 > --
 > ________________________________________________________________
 > Bob Briscoe                               http://bobbriscoe.net/