Re: [tcpm] Questions about TLP

Matt Olson <> Thu, 02 May 2019 17:09 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 9FCF3120483 for <>; Thu, 2 May 2019 10:09:31 -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, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (1024-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id jooRZqoAGL00 for <>; Thu, 2 May 2019 10:09:29 -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 1A59812011A for <>; Thu, 2 May 2019 10:09:29 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=testarcselector01;; cv=none; b=CjfagCXy4m0evmLOO4ysmXaCyF5k3MhKgy2D/QhgOrV3aUANvQTasRhPxOnXoUT/nUZntdx4Kr8q5UXw5Wh7Im2zJtpmhjr9awt2MH169k1t2ndjNt+J/bh7HpLutUmVQ8bsxPdtVuVFInVv6KfTQWei3Hck60xOuS8LFBLj5ag=
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=fVp4GDfPZFwQsREWXHAWct8M0bC9t0wHaeEYLHA5Gsg=; b=UDvptyo2tA21w+x+M+3R2HHipo48XeGMlSB3fSJNIe9l8rI0LL8o0tgAijyBVNnPbHNP3xMo9i+TXe6sfAb5INRlw9/DtnBZ5RLlEWHrxB5U5k63/jq1M3LpLpOJj0f9V/LNYXEUhKO1YwH5C0eGg9saFV5V6pCnHg1ea+XkuX0=
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=fVp4GDfPZFwQsREWXHAWct8M0bC9t0wHaeEYLHA5Gsg=; b=Js7EW21pj7XCeA0H7Xv2IrRk3ZM1oML0g0HQw2N3Q7Pp7mgfbFRh1cchi5mQ/VoclfirZCDOrcA4mGAhWKQS6mHPmm33+Z4if/vm9N4HIrihemDZ4+IGs9+yIbtabnbCM3T4pwztlzzbZKbNRfeOJuBYuV9tM/gIVqH3RUPLrTw=
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 17:09:26 +0000
Received: from ([fe80::a4a4:9084:90b3:f89d]) by ([fe80::a4a4:9084:90b3:f89d%10]) with mapi id 15.20.1878.004; Thu, 2 May 2019 17:09:26 +0000
From: Matt Olson <>
To: Yuchung Cheng <>, Yi Huang <>
CC: "" <>
Thread-Topic: [tcpm] Questions about TLP
Thread-Index: AdUAqnPmaX0KgH/WQE+MIFBj5gEdQgABnF8AABYYoqA=
Date: Thu, 2 May 2019 17:09:26 +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-02T17:09:25.6118818Z; 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=172a29e5-7622-4a7f-985e-d067a4be7cd0; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Extended_MSFT_Method=Automatic
authentication-results: spf=none (sender IP is );
x-originating-ip: [2001:4898:80e8:3:421e:6a9d:cc27:641c]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: cf7b20ce-0b90-4698-5b99-08d6cf20eeaa
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:BYAPR21MB1238;
x-ms-traffictypediagnostic: BYAPR21MB1238:
x-ms-exchange-purlcount: 1
x-microsoft-antispam-prvs: <>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-forefront-prvs: 0025434D2D
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(346002)(366004)(39860400002)(376002)(136003)(396003)(13464003)(199004)(189003)(446003)(74316002)(99286004)(229853002)(66556008)(6506007)(86612001)(6116002)(86362001)(76176011)(53546011)(8990500004)(102836004)(10290500003)(478600001)(10090500001)(7696005)(966005)(52536014)(5660300002)(110136005)(316002)(33656002)(8676002)(71200400001)(14454004)(186003)(22452003)(7736002)(256004)(76116006)(53936002)(2906002)(68736007)(66476007)(73956011)(81156014)(6306002)(55016002)(81166006)(14444005)(305945005)(46003)(486006)(6436002)(25786009)(11346002)(476003)(4326008)(66446008)(8936002)(6246003)(64756008)(66946007)(71190400001)(9686003); DIR:OUT; SFP:1102; SCL:1; SRVR:BYAPR21MB1238;; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1;
received-spf: None ( does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: 6XGkfawfW8AJGyGTMgL49a0K3vQ/VvRxwiU+s+27lsxtHciGL/dOhNfPnWQOOS5/qvhpIzp+MNk4BBg6CX0G8e1DGWCpJJ8b9UEREEFh/9EgEENlSoyy4jhQkgrFiuMp2MLjNfvZVdMLbr1fhHdesUjxyUXzqq1T3GCxWIp6xQJ42JUDFMJGIw59x1Tld4dAsvGnHbmjeek7fIWhDbKfGeKI1hzn9+Qk9LBKkLfT/NJI+mH5GGHVcncy90o2msXtFrT84I5OuFuQ+zWPoCHPcaI/vA64HV9L91ZrZXCo8jc5MhFp3EI85JuM/XqSQL/Xwqdo396ef++WKkRADNfxN6sq6abP0iFg6u1cmG8XUgHFlLODrVLaALNdWgclykYYXvPEOF2WJPjNB7cKFrl2hglJW3Y/zCq6fIYw14/WLV4=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-Network-Message-Id: cf7b20ce-0b90-4698-5b99-08d6cf20eeaa
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 May 2019 17:09:26.8329 (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: BYAPR21MB1238
Archived-At: <>
X-Mailman-Approved-At: Fri, 03 May 2019 09:25:41 -0700
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 17:09:32 -0000

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.

-----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
> cd011db47%7C1&amp;sdata=n8rp5Emowm459iSKolhIP1hFXBs8pZjsGG2iy3OBAno%3D
> &amp;reserved=0