Re: [tcpm] Questions about TLP

Yi Huang <> Thu, 02 May 2019 18:47 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 90596120485 for <>; Thu, 2 May 2019 11:47:27 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.001
X-Spam-Status: No, score=-2.001 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, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (1024-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id whPdd6_OrTI2 for <>; Thu, 2 May 2019 11:47:23 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 3C1D0120604 for <>; Thu, 2 May 2019 11:47:21 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=testarcselector01;; cv=none; b=TBeBWDSWVCsYBYkhddDsgnR/iArUcousGQT5K8mA2Sf+ha2vtIPfhH2ttMGLqyE4rZu9kreDFbigZ9mXUe3VsAN0CmtBK6D3XIi980eVAAFM/dm1klbh+sOmSXTI6uo9bgCg1wETsxDNkuGrI2EVSKZbds5XaG0SHHvuuw8PFGo=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed;; s=testarcselector01; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=suqFg/FR/ThkxHfSvPfCnjor7QQ6wdD1Tde4+6rRM9E=; b=vRENnWv2/yPrFWuzlsndYdjM2Zu5y5+qJiWyd5QmFR3Tb1xZbBkjJ78ARvyH05IPEQEZvICMFU+lfY9kXSN40RWbApduyxQ10nCXFfXCBHD83SCxvWZ407UillIXOoHRNnlC8KRtN9/dfWdk6p2+SMqto+Yi6HusrMOu4ZKHpZY=
ARC-Authentication-Results: i=1; 1;spf=none;dmarc=none action=none; dkim=none (message not signed); arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=suqFg/FR/ThkxHfSvPfCnjor7QQ6wdD1Tde4+6rRM9E=; b=O/5xnJZ63RPLzgFehfaIiZKq7GnbdOP0lOE7a5yjWFbI27xcVpgrPlhZKtx+AG3mIifeH2MiC7AhRc5E1qR5gmUklSpVugvGFypA6nFwnYm/QaanQC6JCTOQQLq7iPgdQCWi0zP90U44T9StOTi15ak/kIE/Cv3VAbxKBc2i1mE=
Received: from ( by ( with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1856.2; Thu, 2 May 2019 18:47:04 +0000
Received: from ([fe80::ccc6:ba71:d72f:a8c9]) by ([fe80::ccc6:ba71:d72f:a8c9%8]) with mapi id 15.20.1856.004; Thu, 2 May 2019 18:47:04 +0000
From: Yi Huang <>
To: Yuchung Cheng <>, Matt Olson <>
CC: "" <>
Thread-Topic: [tcpm] Questions about TLP
Date: Thu, 2 May 2019 18:47:04 +0000
Message-ID: <>
References: <> <> <> <>
In-Reply-To: <>
Accept-Language: en-US
Content-Language: en-US
msip_labels: MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Enabled=True; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SiteId=72f988bf-86f1-41af-91ab-2d7cd011db47;; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SetDate=2019-05-02T18:47:03.0820021Z; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Name=General; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Application=Microsoft Azure Information Protection; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ActionId=70b6eb19-bd8c-4f57-b6e6-9705ec7f7fc2; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Extended_MSFT_Method=Automatic
authentication-results: spf=none (sender IP is );
x-originating-ip: [2001:4898:80e8:1:30c4:3613:61af:58ac]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 5a9e9326-a911-49ff-7fdb-08d6cf2e9228
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600141)(711020)(4605104)(4618075)(2017052603328)(7193020); SRVR:BL0PR2101MB1124;
x-ms-traffictypediagnostic: BL0PR2101MB1124:
x-ms-exchange-purlcount: 1
x-microsoft-antispam-prvs: <>
x-ms-oob-tlc-oobclassifiers: OLM:9508;
x-forefront-prvs: 0025434D2D
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(376002)(136003)(366004)(396003)(39860400002)(346002)(13464003)(189003)(199004)(55016002)(71190400001)(71200400001)(5660300002)(1511001)(52536014)(2906002)(8936002)(8676002)(81156014)(81166006)(66446008)(76116006)(73956011)(66476007)(66946007)(66556008)(64756008)(14444005)(256004)(8990500004)(6116002)(68736007)(6306002)(74316002)(9686003)(10090500001)(6246003)(4326008)(53936002)(102836004)(53546011)(6506007)(186003)(476003)(11346002)(446003)(46003)(966005)(76176011)(99286004)(7696005)(10290500003)(478600001)(22452003)(316002)(25786009)(7736002)(14454004)(110136005)(486006)(305945005)(86612001)(6436002)(229853002)(86362001)(6636002)(33656002); DIR:OUT; SFP:1102; SCL:1; SRVR:BL0PR2101MB1124;; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1;
received-spf: None ( does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: QnXhCO8sn68tuskhhMtn50n4aTb4lHTFAe26MXhpOLIM+FeiPo3RYol6ln00spZuU7TQ7xytDu8wyhh4+LbdBPSoiCwNWEx+71ndRFEdl/pGVrjVoIJZYvjKh/872JGM+xa7fckS+0MhGzWH8BiCV5jJuUOeZctEKNByzN4uj2oJuBspAETFvD/hRtf/Aa07g4FxODeuAbiqTWRvAjiYvQOdgRRGJ8F38Me+KLJKocRdOGGTDrhjL/rS/ATbh/O/8G9pDjKlUziEybO8hcgEKs1ErbxC/0B9V7XnKOU5bWvaNahDxoj7oBAQM5s//8mVtHDl9Qb70G3MHIyCWwVxD5N2xfBZMhziXoSWPzX5oz+Kv0NrqtqwyYI/GaQ8WrEr7qYcA4RI9GYKNyI/k1UsUuWpWcyA2LKifgWBOTtQlkk=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-Network-Message-Id: 5a9e9326-a911-49ff-7fdb-08d6cf2e9228
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 May 2019 18:47:04.4698 (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-Transport-CrossTenantHeadersStamped: BL0PR2101MB1124
Archived-At: <>
Subject: Re: [tcpm] Questions about TLP
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: TCP Maintenance and Minor Extensions Working Group <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Thu, 02 May 2019 18:47:28 -0000

If TLPRxtOut is checked in TLP_send_probe(), a new PTO can cancel an already running RTO timer armed by sending TLP previously. If TLP_send_probe() decides not to send the probe for the new PTO, what should the sender do next? Rearm RTO or treat it as RTO timeout? The draft states we must arm an RTO after transmitting TLP but in this case, no probe will be sent.

Also, in page 17, the draft says "This is important to avoid TLP loops if an application writes periodically at an interval less than PTO." but if the app writes periodically at an interval less than PTO, PTO will just be pushed out and not fire until the sender cannot send anything due to window limit. Then in this case, TLP loops do not seem to exist if TLP loops means back-to-back TLP probes. Am I missing anything here?



-----Original Message-----
From: Yuchung Cheng <> 
Sent: Thursday, May 2, 2019 10:25 AM
To: Matt Olson <>
Cc: Yi Huang <>om>;
Subject: Re: [tcpm] Questions about TLP

On Thu, May 2, 2019 at 10:09 AM Matt Olson <> wrote:
> Also, section 6.5.1 Step 1 is presented as a complete set of conditions for scheduling a PTO, but it is missing a bullet point for TLPRxtOut.
Thanks for checking: but checking TLPRxtOut is not necessary and is not preferred when scheduling a probe -- the goal is to prevent more than one probe inflight, so checking right before TLPRxtOut sending the next one allows the best coverage of application-limited writes (burst-idle-burst-....).

> -----Original Message-----
> From: Yuchung Cheng <>
> Sent: Wednesday, May 1, 2019 11:33 PM
> To: Yi Huang <>
> Cc:; Matt Olson <>
> Subject: Re: [tcpm] Questions about TLP
> On Wed, May 1, 2019 at 10:48 PM Yi Huang <> wrote:
> >
> > Hi RACK/TLP authors,
> >
> >
> >
> > I have the following questions (page numbers refer to draft-ietf-tcpm-rack-05):
> >
> >
> >
> > 1.In page 16, it says “Finally, if the time at which an RTO would fire (here denoted "TCP_RTO_expire") is sooner than the computed time for the PTO, then a probe is scheduled to be sent at that earlier time.” What does this TCP_RTO_expire actually mean? Does it mean there is another RTO timer (possibly started some time in the past) running along with PTO or just RTT + 4*RTTVar + Now()? Also, why would another probe be sent at RTO expiration time instead of treating it like RTO and collapsing the cwnd?
> TCP_RTO_expire() should return a timeout value for regular RTO, i.e.
> SRTT + 4*RTTVAR + Now()
> We use TCP_RTO_expire() because many implementations including Linux 
> do not use the exact RFC formula
> The reason it's not treated as a regular RTO is to avoid resetting congestion window to 1. The rationale is if the probe was sent within min(PTO, RTO) and was delivered successfully, there's no need to reset congestion window and re-start slow-start, similar to the rationale of Reno's fast recovery reducing window to ssthresh instead of 1. We have found this strategy benefits wireless connections, as the chance of spurious RTO is high due to the delay variation.
> >
> >
> >
> > 2.In page 18 section 6.6, a new variable TLPRxtOut is defined and it is stated that TLPRxtOut is used to guarantee that there is only one outstanding TLP retransmission.. However, it is not clear to me when TLPRxtOut should be really used. Should it be used in 6.5.1 Step. 1 (checking whether we should and can schedule a TLP) or in TLP_send_probe()?
> This is in
> 6.6.2.  Recording loss probe states
>    Senders MUST only send a TLP loss probe retransmission if TLPRxtOut
>    is false.  This ensures that at any given time a connection has at
>    most one outstanding TLP retransmission.  This allows the sender to
> but I agree it'd be more clear to include this in TLP_send_probe() pseudo code. I'd incorporate in the next rev.
> >
> >
> >
> > Thanks,
> >
> >
> >
> > Yi
> >
> >
> >
> > _______________________________________________
> > tcpm mailing list
> >
> >
> >;data=01%7C01%7Cmaolson%40mi
> > cr
> >
> > d7 
> > cd011db47%7C1&amp;sdata=n8rp5Emowm459iSKolhIP1hFXBs8pZjsGG2iy3OBAno%
> > 3D
> > &amp;reserved=0