Re: [tcpm] [EXTERNAL] Re: A review of draft-ietf-tcpm-rack-10

Praveen Balasubramanian <pravb@microsoft.com> Mon, 21 September 2020 23:37 UTC

Return-Path: <pravb@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 9F9943A0E84 for <tcpm@ietfa.amsl.com>; Mon, 21 Sep 2020 16:37:40 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.795
X-Spam-Level:
X-Spam-Status: No, score=-3.795 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-1.695, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, 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 DI3FLWkd7CSH for <tcpm@ietfa.amsl.com>; Mon, 21 Sep 2020 16:37:38 -0700 (PDT)
Received: from NAM06-BL2-obe.outbound.protection.outlook.com (mail-eopbgr650102.outbound.protection.outlook.com [40.107.65.102]) (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 A57103A0E7F for <tcpm@ietf.org>; Mon, 21 Sep 2020 16:37:38 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Lquz/9ZuI4vslBTBATmpXcTQrb0FRW3dzsoagrwoXZHWYzV9T48P5sHY4xwvOw1JiXp2qRv/GQGYjF4pSUOUoRf7kO6pQ6CZJnJhTa/yu76DD16S+uewQA1MiSW6vTdPAbmG4/7PfB5r1PvhZ3mZMKOLLykKEEu5CSXB5TFBob3eF1PXka9J30URSmptjeUOjRMb+reNO2StuT0EqSB9jDko5YdB5GE59g8xdF+Hv0tdUv84onfrf5jxNoq+abZG+Xe7aTSee5JaLy27s31OduEVdMcaTeATm+UwBWi+e1yuKorbBnJIz0JkyjZMnZlyVW8XWleF6XSUXNzQVmNGZA==
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=R5r08U4RVarKlnx43GeUW11sdlvYtEkJB+8lRfEp99o=; b=mkeywDmbdl0/6dX2226Ndkngx3ftsl2XcR7QVMKoYnsNVDDXE6KI6l48n4N/sMMoBvMa35NhyCkWrHFeIu9D7baUhDlq1uPr1xgdjhVSq47BOsA6nDldgHc7fxOOWF9S9AP9/f7OmEJVuFTrbds0dztyXkC64gnZDjoEqFsK3kUb/gyH9Gn6N/7qVLcEQa2L//rCxpxFsE+fzxX73uf3Zczb3VdBonRWT6ZPm23S8Rs28YQo12zxEPTqS9lWOPEmxsh4xHZhn5T/p6WpQcPOaOM/37t4mkFABeVGlC4NfJlbGE+CAVdAILEni3NwlxaDAgwoy/043mTlLiZUAVvTxw==
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=R5r08U4RVarKlnx43GeUW11sdlvYtEkJB+8lRfEp99o=; b=e0huHH+cfIXVLou4nAxA265crAY70jNutXP4o5uJRZynhrarsInibg/PJd5J7fU07L6knfEf6n88jDqLBwrachSOMtDU5QFs59au1vqM38DX9ifoUTeMTR8N0qXdFccS9Lkax2hdT4eUEbNco8xV7WX79PALW5tcEn18XCN3jrU=
Received: from (2603:10b6:5:21c::21) by DM5PR00MB0953.namprd00.prod.outlook.com (2603:10b6:3:fa::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3424.0; Mon, 21 Sep 2020 23:37:31 +0000
Received: from DM6PR00MB0732.namprd00.prod.outlook.com ([fe80::bca3:a1a3:376a:21f4]) by DM6PR00MB0732.namprd00.prod.outlook.com ([fe80::bca3:a1a3:376a:21f4%9]) with mapi id 15.20.3441.000; Mon, 21 Sep 2020 23:37:31 +0000
From: Praveen Balasubramanian <pravb@microsoft.com>
To: Yuchung Cheng <ycheng=40google.com@dmarc.ietf.org>, Yi Huang <huanyi=40microsoft.com@dmarc.ietf.org>
CC: "tcpm@ietf.org" <tcpm@ietf.org>
Thread-Topic: [tcpm] [EXTERNAL] Re: A review of draft-ietf-tcpm-rack-10
Thread-Index: AQHWkGy9VQoem/xjLESauVZ2rQvYSqlzvtwA
Date: Mon, 21 Sep 2020 23:37:31 +0000
Message-ID: <DM6PR00MB0732DE0BE8715D001ACFD52EB63A1@DM6PR00MB0732.namprd00.prod.outlook.com>
References: <BN8PR00MB0865B2186EA60FE71BA6CBC9C33A1@BN8PR00MB0865.namprd00.prod.outlook.com> <CAK6E8=cUx56R1-By+4GbJsMtjsi+geJwH1PPwH=8A4Tbv=khDg@mail.gmail.com> <BN8PR00MB0865EDE924F6CFD1F7C36B3BC33A1@BN8PR00MB0865.namprd00.prod.outlook.com> <CAK6E8=eYYEhvVjgvPo4NMr63Lvwoi7XuDfxZoa2E6X2GNTJjwQ@mail.gmail.com>
In-Reply-To: <CAK6E8=eYYEhvVjgvPo4NMr63Lvwoi7XuDfxZoa2E6X2GNTJjwQ@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=8bf5ffff-789f-4c20-a85a-400ebcff5bd4; 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=2020-09-21T23:35:14Z; 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: [2001:4898:80e8:2:95d6:3f73:f682:d302]
x-ms-publictraffictype: Email
x-ms-office365-filtering-ht: Tenant
x-ms-office365-filtering-correlation-id: 89c17b1e-090f-4085-c785-08d85e874f61
x-ms-traffictypediagnostic: DM5PR00MB0953:
x-microsoft-antispam-prvs: <DM5PR00MB09536DF8A3D42E5710665F65B63A1@DM5PR00MB0953.namprd00.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: Nl56mv/dC21dkYJouWnrvZpWoLFoXpFE5yaZIHyJ/vUTT5UYoR0UeQuh2T9dWcYxHdtcHibTvWbvuU3t7DP34FMrJHXwJqqCicI+BhCuWM1nd5LpwkWs/d9zpjss2wZJraO0QWmXAZkJUGD9I/jKeW90oNeq6tUV2CXVLiWkcYeTRxOPPmXR6lHBZQp/mrIPZLjBqwpy0z8Pc3jCoHAhg0Ht1sFWcw/U3dJsi++oX5vssPHGzpRQirYX+AaecKf7P/griOxnCvztjRZSzwAOExd9ViqeE2YFaxF92/sSDGapiEXOqNmXHhaTVKvYl2qmJ41FuMP46P52OA1Dn1G5tEaNvPzK/LfATEA/0hqFlUFCEqEKnNjtrEBr32x85Q/NcJXKNpOfaon+wju5qdkj0w==
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR00MB0732.namprd00.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(396003)(39860400002)(346002)(136003)(376002)(366004)(66476007)(9686003)(55016002)(86362001)(66446008)(64756008)(7696005)(186003)(66556008)(66946007)(71200400001)(53546011)(6506007)(33656002)(76116006)(2906002)(110136005)(966005)(316002)(4326008)(8990500004)(5660300002)(8676002)(83380400001)(52536014)(82950400001)(82960400001)(8936002)(10290500003)(478600001)(83080400001); DIR:OUT; SFP:1102;
x-ms-exchange-antispam-messagedata: 05ezmUw8Di3M9lTXccxsztU+0gbZHo5Oy1CoWEw1aqkebWGpogNehAytER0wijm1pi38LyyF9sqjC6Ey8Zmn2gJo26AUqXx7hrxEddp0yYMaTCpAfhXnHdLybfkbRlIl6spm41NXgHYO9EImFyc+7VCufgQzpLmF2WhMaSsehExi5EPzYji7ifGFz5t6Rud+4CBleDM9DJwbGiz/qh3zOjyDfGgPBpoiHw5KK3iBTw9t0+RYg/NQ2mLcEkSpudSGf3IIQ9JGyvkd+xH0Gj7y9P5QrOu5o4vV/SdgBqr6jJCaTTLGOnp/RD/Rqne5NOTUgIE5rxpFocG2jC4A3AutThQ2YmECPSE/KocFiIfSW20z2H6Tlqso0U4ZwQAW29FQRbp1uUm+bHyikGSUwZTaCjc93ow+67+93Ta3exJ5ktzZNLd+bs2ARRt9xQIq3bZCBxA/jO2XGoNk2i45+KiZD8777GSphllCRjNt03pTf5QOISIcXEA0uLAZ2YEXwwvJKKS9bE2eDdmdzANqOhU75rWfLWRSH2ULwGvcAOheODdukHlZqhpbxP/0u/2JVzEYwcWOiGEYogriDml6VpiZjPlmEDLyoxdMGmXW5NMZDqS89pxRvOHRhWFhHCmqVBA2NAYe6TcWCPHnF0APUL92qfMqxEyCVYWr8z4Y51cheWYHFoqGIqdWmUhZY0Q0Af2+b7mfWEUPSBpMeY3PhtiSJQ==
x-ms-exchange-transport-forked: True
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: microsoft.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM6PR00MB0732.namprd00.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 89c17b1e-090f-4085-c785-08d85e874f61
X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Sep 2020 23:37:31.7104 (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: BVZ8Nx6y6DkFrQXzsCg5LbkqNKERtuf76zINbPe2fl0GbQoYuHmRP4KODk9p+MdGLYgH05yJe91Cn3TMcQBl+hbdwFkTEerIwuXeGPfbZ2U=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR00MB0953
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpm/W_tsj8HRkhymL4meYCh-6R85DFs>
Subject: Re: [tcpm] [EXTERNAL] Re: A review of draft-ietf-tcpm-rack-10
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, 21 Sep 2020 23:37:41 -0000

>> Segment.retransmitted is meant to reflect whether the most recent send is a retransmission or not
The "most recent send" here is confusing. Why not just state that this reflects whether the segment was ever retransmitted?

-----Original Message-----
From: tcpm <tcpm-bounces@ietf.org> On Behalf Of Yuchung Cheng
Sent: Monday, September 21, 2020 4:12 PM
To: Yi Huang <huanyi=40microsoft.com@dmarc.ietf.org>
Cc: Yuchung Cheng <ycheng=40google.com@dmarc.ietf.org>; tcpm@ietf.org
Subject: Re: [tcpm] [EXTERNAL] Re: A review of draft-ietf-tcpm-rack-10

On Mon, Sep 21, 2020 at 3:18 PM Yi Huang <huanyi=40microsoft.com@dmarc.ietf.org> wrote:
>
> Thanks Yuchung, I responded inline.
>
> -----Original Message-----
> From: tcpm <tcpm-bounces@ietf.org> On Behalf Of Yuchung Cheng
> Sent: Monday, September 21, 2020 2:53 PM
> To: Yi Huang <huanyi=40microsoft.com@dmarc.ietf.org>
> Cc: tcpm@ietf.org
> Subject: [EXTERNAL] Re: [tcpm] A review of draft-ietf-tcpm-rack-10
>
> On Sun, Sep 20, 2020 at 6:16 PM Yi Huang <huanyi=40microsoft.com@dmarc.ietf.org> wrote:
> >>
> >> Hi,
> >>
> >> I reviewed the latest version of RACK-TLP draft and have a few comments/questions.
> >>
> >> 1. In section 5.1, "Segment.retransmitted is true if it was retransmitted in the most recent transmission."
> >> There are also pseudo-code explaining how retransmitted flag is set. AFAICT, retransmitted is set if the segment is ever retransmitted since the flag is never reset. Is this variable supposed to mean ever retransmitted?
> >Thanks for catching that. Segment.retransmitted MUST be reset upon a 
> >(re)transmission so it does not ever-retransmitted (i.e. it's only 
> >meant for the very last transmission)
>
> > RACK_transmit_data(Segment):
> >           Segment.xmit_ts = Now()
> >           Segment.lost = FALSE
> >           Segment.retransmitted = FALSE
>
> >   RACK_retransmit_data(Segment):
> >           RACK_transmit_data(Segment)
> >           Segment.retransmitted = TRUE
>
> Sorry, I still don't quite get it. RACK_transmit_data is for previously unsent data (aka new data) right? If so, it will be only called once for a given segment. Then, RACK_retransmit_data only sets it to TRUE. So where do we reset it? Looks like we still just initialize it to FALSE and set it to TRUE upon retransmission.

Apologize for this confusion. I now see better how the text and code confuse you. Segment.retransmitted is meant to reflect whether the most recent send is a retransmission or not. But since a segment can be (only) retransmitted N times consecutively, the flag is sticky throughout once set. To avoid future confusion, how about having two separate routines.

/* Send newly unsent data */
RACK_transmit_new_data(Segment):
           Segment.xmit_ts = Now()
           Segment.lost = FALSE
           Segment.retransmitted = FALSE

/* Retransmit previously sent data */
RACK_retransmit_data(Segment)
          Segment.xmit_ts = Now()
          Segment.lost = FALSE
          Segment.retransmitted = TRUE


>
> >>
> >> 2. In section 6.2, p14,
> >> "   If the sender has not yet observed any reordering based on the
> >>    previous step, then RACK prioritizes quick loss recovery by using
> >>    setting RACK.reo_wnd to 0 when the number of SACKed segments exceeds
> >>    DupThresh, or during loss recovery.
> >>
> >>    Aside from those special conditions, RACK starts with a conservative
> >>    reordering window of RACK.min_RTT/4.  This value was chosen because
> >>    Linux TCP used the same factor in its implementation to delay Early
> >>    Retransmit [RFC5827] to reduce spurious loss detections in the
> >>    presence of reordering, and experience showed this worked reasonably
> >>    well [DMCG11]."
> >>
> >> If I understand this correctly, if no reordering observed, TCP should still enter loss recovery when DupACK >= DupThresh (RFC6675). If reordering has been seen, this RFC6675 rule is not honored and TCP only enters loss recovery when RACK detects loss? I think it would be great to clarify this in the spec.
>
> > Your understanding is correct. will this text revision improves clarity"
> > ""
> > If no reordering has been observed based on the previous step, the sender enters Fast Recovery when the number of SACKed segments exceeds DupThresh (similar to RFC6675). The RACK.reo_wnd is set to 0 both upon entering and during the loss recovery.
>
> > Otherwise if some reordering has been observed, RACK does not honor
> RFC6675 rule and starts with a conservative RACK.reo_wnd of RACK.min_RTT/4. This .... reasonably well [DMCG11].
> > ""
>
> Yeah, that's pretty clear now.
>
> > "   If the sender has not yet observed any reordering based on the
> >    previous step, then RACK prioritizes quick loss recovery by using
> >    setting RACK.reo_wnd to 0 when the number of SACKed segments exceeds
> >    DupThresh, or during loss recovery.
> >
> >    Aside from those special conditions, RACK starts with a conservative
> >    reordering window of RACK.min_RTT/4.  This value was chosen because
> >    Linux TCP used the same factor in its implementation to delay Early
> >    Retransmit [RFC5827] to reduce spurious loss detections in the
> >    presence of reordering, and experience showed this worked reasonably
> >    well [DMCG11]."
> >
> > 3. [NIT] In section 8, " Zero window probe (ZWP) timer" -> "Zero Window Probe (ZWP) timer".
> will fix thanks
> >
> > Thanks,
> >
> > Yi
> >
> > _______________________________________________
> > tcpm mailing list
> > tcpm@ietf.org
> > https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.
> > ietf.org%2Fmailman%2Flistinfo%2Ftcpm&amp;data=02%7C01%7Chuanyi%40mic
> > ro 
> > soft.com%7C71748af3b9ae4232346008d85e78d063%7C72f988bf86f141af91ab2d
> > 7c 
> > d011db47%7C1%7C0%7C637363220297828477&amp;sdata=eHYh0FXRGNS8T2LFq8sz
> > gH
> > x43Hsfwlrog%2BZxQwJyiq0%3D&amp;reserved=0
>
> _______________________________________________
> tcpm mailing list
> tcpm@ietf.org
> https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.
> ietf.org%2Fmailman%2Flistinfo%2Ftcpm&amp;data=02%7C01%7Cpravb%40micros
> oft.com%7C4cc0adb558a64fedcfac08d85e83dca9%7C72f988bf86f141af91ab2d7cd
> 011db47%7C1%7C0%7C637363267745119455&amp;sdata=GdXrtwnYavfLpVIYqrOTrDx
> U%2FOrpC7ayXhtZSuzM%2B2U%3D&amp;reserved=0
>
> _______________________________________________
> tcpm mailing list
> tcpm@ietf.org
> https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.
> ietf.org%2Fmailman%2Flistinfo%2Ftcpm&amp;data=02%7C01%7Cpravb%40micros
> oft.com%7C4cc0adb558a64fedcfac08d85e83dca9%7C72f988bf86f141af91ab2d7cd
> 011db47%7C1%7C0%7C637363267745119455&amp;sdata=GdXrtwnYavfLpVIYqrOTrDx
> U%2FOrpC7ayXhtZSuzM%2B2U%3D&amp;reserved=0

_______________________________________________
tcpm mailing list
tcpm@ietf.org
https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.ietf.org%2Fmailman%2Flistinfo%2Ftcpm&amp;data=02%7C01%7Cpravb%40microsoft.com%7C4cc0adb558a64fedcfac08d85e83dca9%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637363267745119455&amp;sdata=GdXrtwnYavfLpVIYqrOTrDxU%2FOrpC7ayXhtZSuzM%2B2U%3D&amp;reserved=0