RE: Definition of Recovery Period End

Nick Banks <nibanks@microsoft.com> Thu, 18 January 2018 19:33 UTC

Return-Path: <nibanks@microsoft.com>
X-Original-To: quic@ietfa.amsl.com
Delivered-To: quic@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 3A57C127011 for <quic@ietfa.amsl.com>; Thu, 18 Jan 2018 11:33:23 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.02
X-Spam-Level:
X-Spam-Status: No, score=-2.02 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-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 T9V8Xst6fDxR for <quic@ietfa.amsl.com>; Thu, 18 Jan 2018 11:33:20 -0800 (PST)
Received: from NAM03-BY2-obe.outbound.protection.outlook.com (mail-by2nam03on0100.outbound.protection.outlook.com [104.47.42.100]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id CDAF112D7EA for <quic@ietf.org>; Thu, 18 Jan 2018 11:33:17 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=+RMpCsj4CLulpHlaAWnFMe+5XwPvVU5w5EP5Rg39Eqw=; b=icE85j/0tvm7fGHVYyOj+s5BjrPziMFAyuDOozkFLWgw3N+p6RythAI/kexhNB8Ob3e/3fQufMEKpyoq7Q6emtHepKtt9HetmrC9I70vw0WzqON9gUJ6K2JY2sU0WiL25kc8WApFLLhP+Dj/DxbQcOiCzyjlYX7ayDbxCfA89eY=
Received: from BN6PR21MB0178.namprd21.prod.outlook.com (10.173.200.12) by BN6PR21MB0835.namprd21.prod.outlook.com (10.173.205.13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.444.5; Thu, 18 Jan 2018 19:33:16 +0000
Received: from BN6PR21MB0178.namprd21.prod.outlook.com ([10.173.200.12]) by BN6PR21MB0178.namprd21.prod.outlook.com ([10.173.200.12]) with mapi id 15.20.0444.004; Thu, 18 Jan 2018 19:33:16 +0000
From: Nick Banks <nibanks@microsoft.com>
To: Jana Iyengar <jri@google.com>, Ian Swett <ianswett@google.com>
CC: Subodh Iyengar <subodh@fb.com>, IETF QUIC WG <quic@ietf.org>
Subject: RE: Definition of Recovery Period End
Thread-Topic: Definition of Recovery Period End
Thread-Index: AdOPKyC5dkpgelaZSFyTiB2jNW8J3gABBbbUAAHMQoAAVxEDAAAAE3qA
Date: Thu, 18 Jan 2018 19:33:15 +0000
Message-ID: <BN6PR21MB0178F243D65A9EC8B3126AD2B3E80@BN6PR21MB0178.namprd21.prod.outlook.com>
References: <BN6PR21MB0178ECF15AA5E99508B897F3B3E90@BN6PR21MB0178.namprd21.prod.outlook.com> <MWHPR15MB14559D2E94DED8AB176EC15AB6E90@MWHPR15MB1455.namprd15.prod.outlook.com> <CAKcm_gMjrmABH9+=g6vqcHkm35NMq40i_mfsCkSQ3tpjq2MwOw@mail.gmail.com> <CAGD1bZZo__hMa+UWiN7M7BGR5VNGP0UPjrKd4sdLYt8DHCWcoQ@mail.gmail.com>
In-Reply-To: <CAGD1bZZo__hMa+UWiN7M7BGR5VNGP0UPjrKd4sdLYt8DHCWcoQ@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_Enabled=True; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SiteId=72f988bf-86f1-41af-91ab-2d7cd011db47; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Owner=nibanks@microsoft.com; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SetDate=2018-01-18T19:33:14.5687041Z; 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_Extended_MSFT_Method=Automatic; Sensitivity=General
x-originating-ip: [2001:4898:80e8:b::2ba]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; BN6PR21MB0835; 7:pQBnnVLklpXu6br+qyn47Cdhdzv3KOxD8FZClogya7LqZ5mFIR7S9JPoJdjIEdwuwsAGS69unCwKI1gT6WiV+wtVDXnCGnXuG7JxMfBHoNYxcduV0rd+Etj3Do/K5w1480ulTaAF8mlDrOCV17bNqTsw0bWzGrAGe3lR5W6h+lMQ3hs/w6rxlzNIjj8FG806SI9DHpyVa5loU94B5kG26qzpNPtRNHkKJP4tV83IS40bVuBANEthUaUTRf3jRc8V
x-ms-exchange-antispam-srfa-diagnostics: SSOS;
x-ms-office365-filtering-correlation-id: 1217939e-613c-43ca-96ab-08d55eaa525c
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4604075)(3008032)(4534125)(4602075)(4627221)(201703031133081)(201702281549075)(48565401081)(2017052603307)(7193020); SRVR:BN6PR21MB0835;
x-ms-traffictypediagnostic: BN6PR21MB0835:
x-microsoft-antispam-prvs: <BN6PR21MB08355F9B45DDEE15D269B751B3E80@BN6PR21MB0835.namprd21.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:(28532068793085)(89211679590171)(67672495146484)(211936372134217)(153496737603132)(21748063052155);
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(61425038)(6040495)(2401047)(8121501046)(5005006)(3002001)(93006095)(93001095)(10201501046)(3231046)(2400066)(944501161)(6055026)(61426038)(61427038)(6041282)(20161123562045)(20161123564045)(20161123558120)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011); SRVR:BN6PR21MB0835; BCL:0; PCL:0; RULEID:(100000803126)(100110400120); SRVR:BN6PR21MB0835;
x-forefront-prvs: 05568D1FF7
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(366004)(376002)(39860400002)(396003)(346002)(39380400002)(69224002)(189003)(199004)(10090500001)(8990500004)(790700001)(25786009)(478600001)(2906002)(8676002)(68736007)(74316002)(10290500003)(2900100001)(86612001)(8936002)(4326008)(81166006)(81156014)(7736002)(93886005)(6246003)(97736004)(6346003)(77096007)(33656002)(5660300001)(2950100002)(6116002)(110136005)(316002)(22452003)(106356001)(3280700002)(86362001)(55016002)(54906003)(3660700001)(59450400001)(9686003)(14454004)(105586002)(236005)(76176011)(6306002)(6436002)(7696005)(53546011)(53936002)(6506007)(54896002)(99286004)(229853002)(102836004)(19609705001); DIR:OUT; SFP:1102; SCL:1; SRVR:BN6PR21MB0835; H:BN6PR21MB0178.namprd21.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en;
received-spf: None (protection.outlook.com: microsoft.com does not designate permitted sender hosts)
authentication-results: spf=none (sender IP is ) smtp.mailfrom=nibanks@microsoft.com;
x-microsoft-antispam-message-info: 3H5eWAI/DUIPVD7ZQ+fEPru2aqeU7iOyd1y237cH0oMTNWCiiOUg1ZCYha6aE6q0sY2UB6muj3Cp074xm/yEoQ==
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: multipart/alternative; boundary="_000_BN6PR21MB0178F243D65A9EC8B3126AD2B3E80BN6PR21MB0178namp_"
MIME-Version: 1.0
X-OriginatorOrg: microsoft.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 1217939e-613c-43ca-96ab-08d55eaa525c
X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Jan 2018 19:33:16.0452 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR21MB0835
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/GLExXSd9mlE8ImMtMypPRYd8VHw>
X-BeenThere: quic@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: Main mailing list of the IETF QUIC working group <quic.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/quic>, <mailto:quic-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic/>
List-Post: <mailto:quic@ietf.org>
List-Help: <mailto:quic-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/quic>, <mailto:quic-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 18 Jan 2018 19:33:23 -0000

Thanks for all the additional information. It all makes sense. While not completely necessary, I do think it would be a bit helpful to add those details on exactly what recovery period means and what it is trying to accomplish.

Thanks again,
- Nick

From: Jana Iyengar [mailto:jri@google.com]
Sent: Thursday, January 18, 2018 11:30 AM
To: Ian Swett <ianswett@google.com>
Cc: Subodh Iyengar <subodh@fb.com>; Nick Banks <nibanks@microsoft.com>; IETF QUIC WG <quic@ietf.org>
Subject: Re: Definition of Recovery Period End

Nick,

To clarify, "recovery period" is defined in the context of loss recovery and congestion control. The congestion controller is expected to take congestion action on loss. However, it should be careful to hold off on future congestion actions until this action propagates through the network.

More precisely, the Reno congestion controller will reduce its rate when the sender detects loss, and should only reduce its rate again if the new rate is too high... that is, another loss is detected on packets sent *after* the rate reduction. Feedback on the new rate takes about an RTT of time, and is measured as the time period between sending the first packet after a loss is detected to when that or a subsequently sent packet is acked. This is the recovery period. It is not meant to indicate when all losses are recovered from.

Would it help to describe this in the draft?

- jana

On Tue, Jan 16, 2018 at 5:56 PM, Ian Swett <ianswett@google.com<mailto:ianswett@google.com>> wrote:
Nick, this is a very good question.

Initially, this was chosen because it was the most straightforward mapping of TCP's behavior.

This has some pros and cons.  The major con is that it makes direct comparison to TCP more difficult, particularly when loss rates are high.  A positive is that QUIC can reduce it's CWND(and sending rate) more rapidly in the face of high loss and may provide more consistent performance in cases when the CWND is large, so observing a loss within an epoch is common.

The intent is that the QUIC approach to recovery is an ideal embodiment of the spirit of the original TCP algorithms for recovery.  If we have any data that indicates they don't work well in practice, I'd be happy to consider changes to the recovery draft.

On Tue, Jan 16, 2018 at 8:10 PM, Subodh Iyengar <subodh@fb.com<mailto:subodh@fb.com>> wrote:

All of the loss recovery modes that QUIC has have the following property



if packet n is lost, then packet n - 1 must also be lost.



This is true both in the threshold and time reordering based recovery.

A newly sent packet in loss is triggered by either sending a TLP or RTO.

If you get an ack for a new packet without getting the acks for all the other sent packets, QUICs threshold loss recovery will kick in and confirm that the packets that were sent before were lost.



So I believe you don't need to wait for all the information to be ACKed once you get an ack for the latest packet. An argument could be made that the ack for the new packet might not trigger loss

of all the packets, however it will definitely trigger QUIC's early retransmit timer, which will trigger the future loss.



Subodh







________________________________
From: QUIC <quic-bounces@ietf.org<mailto:quic-bounces@ietf.org>> on behalf of Nick Banks <nibanks@microsoft.com<mailto:nibanks@microsoft.com>>
Sent: Tuesday, January 16, 2018 4:35:53 PM
To: IETF QUIC WG
Subject: Definition of Recovery Period End


Asking this on here per recommendation on GitHub:



According to the spec, recovery starts with detection of a lost packet and ends with the acknowledgement of a single, newly sent packet. Why isn’t recovery ending only after all the information in the frames that were lost prior to the recovery period have been acknowledged? This way would seem more inline to what TCP does today.



For instance, if 4 packets worth of STREAM frames and a MAX_DATA frame were lost, why shouldn’t recovery last until all that data had been resent and acknowledged?



Thanks,

- Nick Banks