[tcpm] A question about PRR/loss recovery

Yi Huang <huanyi@microsoft.com> Fri, 16 April 2021 19:08 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 79AB13A3177 for <tcpm@ietfa.amsl.com>; Fri, 16 Apr 2021 12:08:42 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.091
X-Spam-Level:
X-Spam-Status: No, score=-2.091 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, 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, SPF_PASS=-0.001, T_SPF_HELO_TEMPERROR=0.01] 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 A9LZc--FIQ6H for <tcpm@ietfa.amsl.com>; Fri, 16 Apr 2021 12:08:38 -0700 (PDT)
Received: from outbound.mail.eo.outlook.com (mail-oln040093008002.outbound.protection.outlook.com [40.93.8.2]) (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 58AB13A3175 for <tcpm@ietf.org>; Fri, 16 Apr 2021 12:08:38 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=AMqb9eqlk08Do/F9wgjkcrYMVqKT3VKjNQVWHrf8CI+PcOL/mjKHiULors2PDeSEupKY1Cg0asM5fPrxKTCCek3cbbx+mWVSm+zIxBxDIbaq7WaRdWCEAvq8uVCTDYTZgSFWdx/Lb9hXGe6aFvTDw74TjN20tjkUeN4BOuwDr1Cll24Jd9Km5i+ZDAdcdgbb3ZBCAdFLogQSY+SxKv28PBtdisnLeGBxQGPpK5Aok8aUnzep77OgDxdA3KdY5J2dCtfFRWgt1fMD7ppS2BkGtkZtK7qO8+Tjd8E5slOuXLKk6yDoQhDmmaJApDCF7RPZ4mb60NtPKF0EVf8OdxFYKA==
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=h5PSNzJZVlJRejFpjTsCo8upBrCkTfW0ojy/4JHgM7g=; b=TISHzDG8ZRbZf5m3qN+qcceAPFYWNuXIv41Solf5hrmhOks6P+tEdewfdyh8xNSNfxdD9u3xT5/CpYomR5DLeOGDeHEu3+rSc+aFxNmLMXcgL4xSeoSUY5DxSBIGHN2JabYSJqZRqBFQr73YYw3R2nmJ5FYhCXMoKE9/3/H06QNIzCqeXdefYkVTJENYvlgMxs+oWWFyI2Dtli89NK6EbozoAsi8zZgicLOAr0RbY4nKYtRp/2SQBpB2P7puEglIlO5cLbsYZmY2AJJfYMXhA+iP967iX1dUKx1pdZhSgxARKUlS0xyGrhoZxltvVCXDZohcZHAnj6BpdZa85XCMMg==
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=h5PSNzJZVlJRejFpjTsCo8upBrCkTfW0ojy/4JHgM7g=; b=X8Ps4ztyJnMVGK2SjobHPsO9YlJZ1rOGYavI1yeN5kp3u4Mh4OEcYMVOfO9N2C8z7iWodCC/6qnVt5ts1aHM9PPY5r53x2ywbEDmUAgdG/ART5d9akJsV8SsqHiJtq5d3eJ4ExYKMsgu2SQe6ld5AsnyP6QOC2/E+eJiMVlTC5M=
Received: from MN2PR00MB0877.namprd00.prod.outlook.com (2603:10b6:208:38::30) by MN2PR00MB0686.namprd00.prod.outlook.com (2603:10b6:208:15f::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4082.0; Fri, 16 Apr 2021 19:08:28 +0000
Received: from MN2PR00MB0877.namprd00.prod.outlook.com ([fe80::f819:d628:d896:83ef]) by MN2PR00MB0877.namprd00.prod.outlook.com ([fe80::f819:d628:d896:83ef%7]) with mapi id 15.20.4091.000; Fri, 16 Apr 2021 19:08:28 +0000
From: Yi Huang <huanyi@microsoft.com>
To: "tcpm@ietf.org" <tcpm@ietf.org>
Thread-Topic: A question about PRR/loss recovery
Thread-Index: Adcy6s+WHt48g0ZnTJOXGzLVsKusRw==
Date: Fri, 16 Apr 2021 19:08:28 +0000
Message-ID: <MN2PR00MB08779B864962711A2F35F2F4C34C9@MN2PR00MB0877.namprd00.prod.outlook.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=29a29e9e-4d94-4cf0-a123-23cad435af94; 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-16T17:56:56Z; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SiteId=72f988bf-86f1-41af-91ab-2d7cd011db47;
authentication-results: ietf.org; dkim=none (message not signed) header.d=none;ietf.org; dmarc=none action=none header.from=microsoft.com;
x-originating-ip: [2601:600:877f:acd0:c15:52dd:59ce:bd40]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: b20e826c-ca6f-46d8-e5a8-08d9010b04c1
x-ms-traffictypediagnostic: MN2PR00MB0686:
x-ms-exchange-transport-forked: True
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: PK5S9saBdQzhAMM35IbNkLoe4UtVCPMo3Hra42GArEPJLLsuCRdlz+7tlDzKPQ/eb2A1VDt8i/2R2hz/zSupWeaP4lynats+ekDoaRDLhPMfsEseH5wwfTLJIGVfIzsXVOWCFKR9eMXCqjppb8XfOqSNL25PccKyYRRtWS3O7RpdThREBaM0VV2vLnkOMDDjmgZC/of1+5nrKlQyq4+Ude4T6ItO7IPcNYcgyT9D6aGQMX14qaskPNTpSMbMlpL6IZR2lgWAYRcE1XcjvhDIbLeGGPhHItkSHz6olGqBCcetAuym3odB0bSiFOv8T1h9tpK9TR4KvsE2Ug0Gu7rzVA==
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MN2PR00MB0877.namprd00.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(33656002)(4326008)(7696005)(82960400001)(71200400001)(66476007)(82950400001)(66556008)(64756008)(83380400001)(107886003)(8676002)(8990500004)(76116006)(66946007)(66446008)(6506007)(38100700002)(9686003)(478600001)(122000001)(2906002)(8936002)(10290500003)(86362001)(54906003)(6916009)(55016002)(316002)(5660300002)(52536014)(186003); DIR:OUT; SFP:1102;
x-ms-exchange-antispam-messagedata: w2UwDVeywGcXXMJMZvowwsyI5IKUUksX4RI4iIMgNJB0XQOOHqiLX3/YmSfxXxsarQUyKPtBdHtZL+f37BCGZSXoVesRmVniyFvoEiVJOXKspPFoLJOIR5Iq5nMYBGqe9HGAM1DeKZvDSUjHn/Ae3be6vj9s5FZ2ZJMhxSInHWVim8FDDH+gso23Wd+FJN8gAUA0hOo89WHg9TBe6gPa3gZz6EXXw7+bzSZJs3j6kGtUTiTIOAT8qHD67ILgfnpuS/X3zAWw7B+DKtfOOGOX6E3Eot4V8EAzInSl8KC14HMgLL0Ak/Jk7G1Qv16HhZ6J6+FQgOQqZdL6pl75jJ46urnRPdYxaa22PMdBDvFewymMcdkzkgOC1wHsd7bQhRfSs628Hl1XxjH4mkL/56LtN8Fy2PvvBXC5Hv+qm3bq9mn84eXKcLPHhzgymJ5cdbsqYB0jgGoI0jrakFvTgN5CRv81z3tjy2DYDmwpk8EMf/1aBST6O5GIbfrqWfGSoyEHcs1YA94/DCqjfmfAcQurOU0SLzmCRPA+fOHjcTDGN36fP7wWEpa8vfHkfGd3PQyZ914ab0k4TOp+xm1G1drvreg0OE9txiZvxU5kjNxtJgIvPDdpN8DW9d2rtRZj1IIvTAy9VlJFNZxynsxTjFzwBBBVpdVpoGAw+ZCN+mPyg78lzy9J0Q1W7seohLclrUWSRtiIyitY71psFjPchVqBo2hNBcWS5H26v825T1lpF8+beRx0hLjG9j81j7Gu1tRMWCgtFrM00UnryS1DGticgCO+CP5OC9HRNTE0YjkbQWSRNw8x3tf6zF1jLZqY20h6x4YuqcBvj50B0YKE2OvDEFz412R6q5zN7qUPcqL2Y8EhT84xQJTvn09Y599+HrsnF9XBD7CPuqHnSMsSBU6aB/mK2Gy17itKQvmvD+7J2hGSkK+S5Z2fRl9zfiJaJXlu7ZQGYAFh+6E+LO+KHuzkC8L8l7CWrAabr0wCvTa/17yWGUC6P9D5FsgHMkpVRdMYmvIrDwwPBfC5vYm7Ip4CYfrSeRwY7gtheV6OqXJ/G1iPZVhM3eXRSIGHnO8L9emgXM1ziLuWRAHtDhWaNrI4KorHadp9m63BLFUw+Wzw1GzSwAm5zWRnLtA7ERSLNmS6H5yc3/e0yzcUt844NJ594xkccI6o/U6LK/AaoYHQInHTJ/esl3bztohSJZkiBRJKTyle/yTOH/hIR0JP1qfK5jI2xF6tW8PB/9it33RveRBLPbkpZZ0NMPSnw1UF1xMxX5Vv9jcyjYuYYvTRcWF1lZ3H4eG5UPT80ICh0YZ1m8oTjrIv50rSt9JE3LzcuGyyxxb2lTsZFGNO2X+HD0UVhqKErezr6qd1aKPymTsnDUfrl88puPVNpOwXNCApnppG
Content-Type: multipart/alternative; boundary="_000_MN2PR00MB08779B864962711A2F35F2F4C34C9MN2PR00MB0877namp_"
MIME-Version: 1.0
X-OriginatorOrg: microsoft.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: MN2PR00MB0877.namprd00.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: b20e826c-ca6f-46d8-e5a8-08d9010b04c1
X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Apr 2021 19:08:28.4170 (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: aC6jgGh1gHOi+hTkP/B5cw53xgT6e23nn7LJcVesM/tjI3Va8GlV42FLuwgxzlW/nYXWqyWwjb6pCgFWXCSq0g==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR00MB0686
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpm/i5tFDULLRKxNGhtRwEAYCesqsFQ>
Subject: [tcpm] 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: Fri, 16 Apr 2021 19:08:43 -0000

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,
Yi