Re: [tcpm] [EXTERNAL] Re: A question about PRR/loss recovery
Yi Huang <huanyi@microsoft.com> Mon, 19 April 2021 18:21 UTC
Return-Path: <huanyi@microsoft.com>
X-Original-To: tcpm@ietfa.amsl.com
Delivered-To: tcpm@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1])
by ietfa.amsl.com (Postfix) with ESMTP id BF1493A3D9F
for <tcpm@ietfa.amsl.com>; Mon, 19 Apr 2021 11:21:24 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.1
X-Spam-Level:
X-Spam-Status: No, score=-0.1 tagged_above=-999 required=5
tests=[DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1,
DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001,
HTTPS_HTTP_MISMATCH=0.1, RCVD_IN_DNSWL_BLOCKED=0.001,
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=microsoft.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 dBHZtL_9yDIg for <tcpm@ietfa.amsl.com>;
Mon, 19 Apr 2021 11:21:19 -0700 (PDT)
Received: from NAM06-BL2-obe.outbound.protection.outlook.com
(mail-eopbgr650096.outbound.protection.outlook.com [40.107.65.96])
(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 AC1063A3D9D
for <tcpm@ietf.org>; Mon, 19 Apr 2021 11:21:19 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
b=YzRPgqBQKP4m06MxG5dybOxmvj2hX/VNwrrHmZI77OkyblN+Mg/ulRRVoxcTtffE1yoZztNc5J0yuLvxVWBJ5j8hTjvTX0au9OSKCb/NAgwzDkuCMPSLlDAsKPd3aki4UO+hpRKqBKTOwtIG00uy+KE9XH+SjPo0a92cnI+IGZHtlPOpGoC40uPaSgZMFmaQYJnmNoUXfBR8/I/Ff0XJnMH44HXXH22QbaB6LY36oy1J39HqGAsINqcJjyCblARUFE8zQLDsTWuMoiE4Mue3Tmg8GC9OqHqVOd3JrkT3DlQNG63Jita512sgYPteoZ4x2NrDisUUnce9HjSq1/HX6w==
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=vS5vN6miuHqxpP9eLJs3KQ6lwq+WcZWr8xjsvjqC6jQ=;
b=leoNy1hw2bciNSHZP+IDPHYmk1G37GVqM9SyPiIJMJ4cKSZLJL6tXyCu4mfppP8/9029osePrCdbg78nW9WoozkgpVPTsKQ3k7KROn7ia72wu8nt4bvUIFAFQ6VDJpYzZUO3qsYQMca1fZvLTLNRqzTjAL2VVP+SGPXxnttLxN8uogPYewUgl0rmB1wugtxnsrLfOCRILITDXQjtG3ou8Ejkxh6GP7fD5RrwvE1BHhZ3Bz+tgQdsD+T29jL9BAWfqyLFd9NUEDFK1wvd5qMozz2yrGhsI7MWZaPWiViqiB2SspAspOhUE9ln6muoyeFYHbSy64g81FjKfUiv/n/Arw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
smtp.mailfrom=microsoft.com; dmarc=pass action=none
header.from=microsoft.com; dkim=pass header.d=microsoft.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
s=selector2;
h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
bh=vS5vN6miuHqxpP9eLJs3KQ6lwq+WcZWr8xjsvjqC6jQ=;
b=b1orC2rUapvvcCJvnWdlV8Rl7RC9LuMTKwACY8+vU/10Wzh6Yetd4U4udlTzEv2nUQt/ko144BfF3th70HxtFxedxOZyMsl8YgVLP7t6JgCtUhyPUc1i0AG2j/h6SqMMFwUNZCCptkfml8+xzU0Hk/m1R9ErlDPiHDdEQyfQJ1k=
Received: from DM6PR00MB0875.namprd00.prod.outlook.com (2603:10b6:5:163::14)
by DM5PR00MB0357.namprd00.prod.outlook.com (2603:10b6:4:9f::36) with
Microsoft SMTP Server (version=TLS1_2,
cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4100.0; Mon, 19 Apr
2021 18:21:11 +0000
Received: from DM6PR00MB0875.namprd00.prod.outlook.com
([fe80::7498:94d7:2c0c:5ef1]) by DM6PR00MB0875.namprd00.prod.outlook.com
([fe80::7498:94d7:2c0c:5ef1%6]) with mapi id 15.20.4100.000; Mon, 19 Apr 2021
18:21:11 +0000
From: Yi Huang <huanyi@microsoft.com>
To: "ycheng=40google.com@dmarc.ietf.org" <ycheng=40google.com@dmarc.ietf.org>,
"ncardwell@google.com" <ncardwell@google.com>
CC: "tcpm@ietf.org" <tcpm@ietf.org>, "mattmathis@google.com"
<mattmathis@google.com>, "huanyi=40microsoft.com@dmarc.ietf.org"
<huanyi=40microsoft.com@dmarc.ietf.org>
Thread-Topic: [EXTERNAL] Re: [tcpm] A question about PRR/loss recovery
Thread-Index: Adcy6s+WHt48g0ZnTJOXGzLVsKusRwADgfwAAJD7hAAAAsBsgA==
Date: Mon, 19 Apr 2021 18:21:11 +0000
Message-ID: <DM6PR00MB0875DB2DDBF799E89FFAF4CBC3499@DM6PR00MB0875.namprd00.prod.outlook.com>
References: <MN2PR00MB08779B864962711A2F35F2F4C34C9@MN2PR00MB0877.namprd00.prod.outlook.com>
<CADVnQy=2rC4N84DDMV-Ovo8v_wNZ3i_fd4AkXzCYY2W0cdcqnQ@mail.gmail.com>
<CAK6E8=cn=7=amNg93o=X9+jVSjXALetkgJM7q+dXQ2WLVORJNA@mail.gmail.com>
In-Reply-To: <CAK6E8=cn=7=amNg93o=X9+jVSjXALetkgJM7q+dXQ2WLVORJNA@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels: MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ActionId=54d1904e-fd4f-4f85-8a74-da7237310284;
MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ContentBits=0;
MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Enabled=true;
MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Method=Standard;
MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Name=Internal;
MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SetDate=2021-04-19T18:14:03Z;
MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SiteId=72f988bf-86f1-41af-91ab-2d7cd011db47;
authentication-results: dmarc.ietf.org; dkim=none (message not signed)
header.d=none;dmarc.ietf.org; dmarc=none action=none
header.from=microsoft.com;
x-originating-ip: [2601:600:877f:acd0:18:7a8:250a:ee7a]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: aa886e26-ed5b-4664-a15a-08d9035fe8c8
x-ms-traffictypediagnostic: DM5PR00MB0357:
x-ms-oob-tlc-oobclassifiers: OLM:9508;
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 8/uzziLxhZ80KMNLvLuJMi5QvperXVGxpxAJAYrL3Mfow4XdLkga53dmjuVB9+ArV8LvJLZ31GjH4OsSl8O7ac0pkMq/LTl37Ezbq1MCGWJKcMpMd8zAW8UesX7eeSS9mifwM0rwZLBE59BNh+GW66m3F1Pv+j8EgY0a4OG6wtvu+pHPq1E/rsr26qp0mLGY4eMI8efm2V3eVNPG4c8xGSWcP1u7g3li74IkfV9RFi2lb2TJ2bmbj61cQUPHIS8brOnFf0PIdL7jnHzeeUGRxZUBs7oknXABgzKsyF/EsfYgdHF2B21DkUaGma8ROX5Un2zCLz8ztOX4+Te5GcsGAw==
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;
IPV:NLI; SFV:NSPM;
H:DM6PR00MB0875.namprd00.prod.outlook.com; PTR:; CAT:NONE;
SFS:(4636009)(366004)(82950400001)(82960400001)(83380400001)(52536014)(9686003)(7696005)(478600001)(166002)(71200400001)(8676002)(4326008)(316002)(110136005)(54906003)(10290500003)(55016002)(8936002)(122000001)(8990500004)(38100700002)(5660300002)(186003)(86362001)(53546011)(6506007)(66946007)(2906002)(966005)(66446008)(76116006)(66476007)(33656002)(64756008)(66556008);
DIR:OUT; SFP:1102;
x-ms-exchange-antispam-messagedata: =?us-ascii?Q?Isvfehaz1f2fu4FDbNQEGp1PEwGoO6OYLb6k/uGSJzA0+JGmSBQi/FmdPQk4?=
=?us-ascii?Q?R5igB44wgkghguocCjdPCLQztqrvPARfkpDJwPpWIM3qIDDOeD5X8N4t4iKv?=
=?us-ascii?Q?TUNNDH82MrTP2aQm9xrb3RKT7fJ4yHQQn/77/c0Lsp3tJ1KOg5cExeg45WY3?=
=?us-ascii?Q?W+GHoWTleHVHtcGuo3/iwj5sx248ec4RJtaczMyUN2aOeTMcecEDUCRP+kiQ?=
=?us-ascii?Q?Bvf5ngMxCM6P2jtZT/8P8QBiiAaPPG/HqBHkclRTIBGa6n0jNBSyvIGiDcbC?=
=?us-ascii?Q?SzD11scPjwI4LSs3G4zV8XGNp4G/xt/nz4y08LSqv/53evZNILvTEiwUwi5c?=
=?us-ascii?Q?2yxDPXWjc63HlQSE7aeZdxwUsAxD59qCd23EmSR7FWBeu3T55FYL0f6NXa4x?=
=?us-ascii?Q?dbAltenKHAAxTVttdRMpzi7xUM2ewbGOPOI7jZnlEHcUSSOCoYlU7SIMuEHl?=
=?us-ascii?Q?/YjBczvjEwmQ9EPt66kqbI3ckxbZfeLjlvjsHILwRe53ugFiQjPszIeRR9Gi?=
=?us-ascii?Q?bWqXBgeaBF62qqePxJVNLreANkshCMsxDydWwZZzvD5hsVzVNtbiVR6UptUT?=
=?us-ascii?Q?jh8U4He7hi/GIzvMHV7Rp14EzCkBfRlxUH+MtfqVj2Vbcz+brB16Ms+hM72k?=
=?us-ascii?Q?Ov0EuMZpGFx+mg0Qip9Z31XbzjWTNkV9u2LS+PJko6kxu/24gJtO4BqWa898?=
=?us-ascii?Q?ACiYkNOGMdgaWpkhcZLyN4si7jO3pfBrzB/iTog6VX6rx5FFOXPupIE+siCy?=
=?us-ascii?Q?gRZx+K7ppS/mB+wp7fJAZlf9y1il3nJhRlsg9Ps2xl5Sz+3eeVxErrb7d5iR?=
=?us-ascii?Q?TDmEFTRgZAzalA8Mzemspjw/E5es8e3KUFQZGb2fZBmQNT5GvmTBxPxb+Ilc?=
=?us-ascii?Q?Pl2bDrWeXW0QeH57EtF/oY35EAzKmV2+R8TCKCiG5fUgkrl1amebzIN3iRhY?=
=?us-ascii?Q?zftYUkGkJITroEuGkTn0nQTG56R/ON9mjZnXxOKMaU9/0Gk5rqVQBQ+6btxO?=
=?us-ascii?Q?3CWhoy9fqmi6xPZumg44wxPxsHH1h4LiHk1A45Z6dHuGA/goUyuaO0VKzCIr?=
=?us-ascii?Q?1aR0le11k02TENrvqCmomsP9jSKqtM773d5hy7nfBPQPhtbb6W9WSEC1po2E?=
=?us-ascii?Q?B+RnO22FgVdH51lUOWuzaifSoqZeKoIvYUivwJaNK3tSUkyJiukaUN3jWUR4?=
=?us-ascii?Q?RLRLF9UwbOskE+zm63qOjek4pfi+j4k3O7kRqIPoyyMC9VbESNszqDWUXouv?=
=?us-ascii?Q?lPnrffVUVByhwWpRDgUKu8BeyfudoHJtno+eeoLsmoJdYfT+FR8r17YEKSe0?=
=?us-ascii?Q?6XlWN+r+0BvVUtzggoep56DVITNC7qmyNnsRTSWo0rotuHPiEhKdKFrNXKw5?=
=?us-ascii?Q?c9TXNv8=3D?=
x-ms-exchange-transport-forked: True
Content-Type: multipart/alternative;
boundary="_000_DM6PR00MB0875DB2DDBF799E89FFAF4CBC3499DM6PR00MB0875namp_"
MIME-Version: 1.0
X-OriginatorOrg: microsoft.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM6PR00MB0875.namprd00.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: aa886e26-ed5b-4664-a15a-08d9035fe8c8
X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Apr 2021 18:21:11.1235 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: Zr2D62smLZWyh+JMsgk2u46UhsSJzhlay+6VJ+OiXGrznFnOsixnaQavzS/9U2tbc+DDPM3Dg2hVaxohD6CAjg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR00MB0357
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpm/618UT04Fr3bUe85To6ikixUTwbY>
Subject: Re: [tcpm] [EXTERNAL] Re: A question about PRR/loss recovery
X-BeenThere: tcpm@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: TCP Maintenance and Minor Extensions Working Group <tcpm.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tcpm>,
<mailto:tcpm-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tcpm/>
List-Post: <mailto:tcpm@ietf.org>
List-Help: <mailto:tcpm-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tcpm>,
<mailto:tcpm-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 19 Apr 2021 18:21:25 -0000
Thanks Neal and Yuchung, the RFC is clear enough to me. Just wanted to double check. We will fix that this problem. From: tcpm <tcpm-bounces@ietf.org> On Behalf Of Yuchung Cheng Sent: Monday, April 19, 2021 9:55 AM To: Neal Cardwell <ncardwell@google.com> Cc: tcpm@ietf.org; Matt Mathis <mattmathis@google.com>om>; Yi Huang <huanyi=40microsoft.com@dmarc.ietf.org> Subject: [EXTERNAL] Re: [tcpm] A question about PRR/loss recovery I think the current PRR RFC is fairly clear about cwnd computation and it should be used for both retransmits and new data (so both implicitly use sndcnt). Having limited-transmit (i.e. new-data) only follow the (unmodified) cwnd would break PRR substantially -- the packet conservation principle is not really implemented. I suppose it's easy to fix Windows code? On Fri, Apr 16, 2021 at 12:44 PM Neal Cardwell <ncardwell@google.com<mailto:ncardwell@google.com>> wrote: On Fri, Apr 16, 2021 at 3:08 PM Yi Huang <huanyi=40microsoft.com@dmarc.ietf.org<mailto:40microsoft.com@dmarc.ietf.org>> wrote: Hi tcpm and PRR authors, We are revisiting PRR implementation in Windows and I noticed there might be a problem in our implementation (and it is actually not specific to PRR). PRR algorithm computes a sndcnt on each ACK during loss recovery and thus use it to accurately regulate bytes in-flight. In the RFC (6937 or bis), I see this statement and note "local" and "response to each ACK". We introduce a local variable "sndcnt", which indicates exactly how many bytes should be sent in response to each ACK. In Windows' TCP implementation, new data can be also sent out inline during loss recovery from app send context (app calling send()) and they are not regulated by sndcnt/PRR. Instead, we just check if CWND allows us to send in this case. So, effectively, we use two variables controlling the number of bytes in flight during loss recovery, i.e. sndcnt and CWND. It apparently seems a bad behavior because it ignores PRR's sendcnt but I just want to double check with the PRR authors and the community. Thanks for the note. I believe that approach runs contrary to the intent of the PRR spec/algorithm. Implicit in the end of the algorithm in https://tools.ietf.org/html/rfc6937#section-3<https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Ftools.ietf.org%2Fhtml%2Frfc6937%23section-3&data=04%7C01%7Chuanyi%40microsoft.com%7C18ee4b0df35b42907bda08d90354073b%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637544482333596954%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=xs9imRi3L2B6d737Iu07Vlrg4MZNDTv7dHHdFTFRBjs%3D&reserved=0> is the following line (in pseudocode): cwnd = pipe + sndcnt That is what the Linux TCP implementation of the PRR algorithm does. That way there is only one variable (cwnd) controlling the number of bytes in flight during loss recovery. Effectively, this allows the PRR algorithm decision to persist, in case there is no data available to send at the instant the ACK arrives. Perhaps the update to the PRR RFC can make this explicit? best, neal
- [tcpm] A question about PRR/loss recovery Yi Huang
- Re: [tcpm] A question about PRR/loss recovery Neal Cardwell
- Re: [tcpm] A question about PRR/loss recovery Yuchung Cheng
- Re: [tcpm] [EXTERNAL] Re: A question about PRR/lo… Yi Huang