Re: Definition of Recovery Period End

Jana Iyengar <jri@google.com> Thu, 18 January 2018 19:29 UTC

Return-Path: <jri@google.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 87F1A12D7ED for <quic@ietfa.amsl.com>; Thu, 18 Jan 2018 11:29:40 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.71
X-Spam-Level:
X-Spam-Status: No, score=-2.71 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_LOW=-0.7, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.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 FqpEEO4fUwnI for <quic@ietfa.amsl.com>; Thu, 18 Jan 2018 11:29:38 -0800 (PST)
Received: from mail-yw0-x234.google.com (mail-yw0-x234.google.com [IPv6:2607:f8b0:4002:c05::234]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 73A2D12778D for <quic@ietf.org>; Thu, 18 Jan 2018 11:29:38 -0800 (PST)
Received: by mail-yw0-x234.google.com with SMTP id m19so12149452ywh.12 for <quic@ietf.org>; Thu, 18 Jan 2018 11:29:38 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=OQreIDJZYAZLFEHONVlBnfS8te0FWD+IDcoxZeJrDKQ=; b=R0pOPvCORbJxPljVhkCy7UrYCBYvqzqggXwIaC9XhmbiCbkZEtuuicRko1J/xQy+gA TvGQ/8ib+PXrCDT5AL+JZ6VaVWj6aDPqMZC3zfY4xx8DRAbticXoo3Lc96nTxIrYoc7c uAhX7e/XWxdQQklDlTZmyn0HJSFAROfss6XQ1dc51LQxJA0+FZUR7spda62pAUshxw6V x3DDYQyB0gSibqrLvMZ3tVEEfxqBxSEIiHn5/pNHGjJjI3RiKwaceoVaK9Wn4bXm0evy OuB2PFEtS2LbVP4scd+C5ciZ0ypLop2MlzwuCl4htJG860YEpj+VdrZdwa0snJqxGLGc e72g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=OQreIDJZYAZLFEHONVlBnfS8te0FWD+IDcoxZeJrDKQ=; b=B24PlSdqrpOkFRDdhY4Y0wqawJXI52dhD3m+a9+E2CmPCoit79+hl7cSJSETokd6c+ a6lk0jV9rS6WpVm86jzXr9rGE1TuPBf8IFwJM1n2FVhgjxPTBnZUfv9Wqawws/NAhr3V v/dSCezENfVEospHzfrxK54UoTrpYeCWPsoMB5HHV6mXuRrS34AKNqVPraICBxrvs73z 1e5cggUPL/bvLEJLuvXXZFvEDqiLbSImL5GzcW5OghZ8q3l6SivjJa955lz6+bJTJOpd 5w3lYhJwkj5Ra5ymxSsbhDlK+aLHB1cZHCktQ0Dkm+5oWMt/WqvrDTAYmWwT5ZBfSzAC CUjg==
X-Gm-Message-State: AKwxytcv8+V9RPRx14u6MuuNHI1nEZ/ZNRoC6Aa+MF+C7S+EpadOlyQG 47m5BdDGFKPoXLAn/jiWHPokxUEYCEM/4kX9UO4Ktw==
X-Google-Smtp-Source: ACJfBos2CIzgMN/W7KLrEuSafErF6LwHvIbz1tkNrUliqqzQ/7pqQazajgAqu7gLU5tKXWOkksZeNx0qjf6sCJ5qk5Y=
X-Received: by 10.129.68.40 with SMTP id r40mr6704149ywa.371.1516303777237; Thu, 18 Jan 2018 11:29:37 -0800 (PST)
MIME-Version: 1.0
Received: by 10.37.58.1 with HTTP; Thu, 18 Jan 2018 11:29:36 -0800 (PST)
In-Reply-To: <CAKcm_gMjrmABH9+=g6vqcHkm35NMq40i_mfsCkSQ3tpjq2MwOw@mail.gmail.com>
References: <BN6PR21MB0178ECF15AA5E99508B897F3B3E90@BN6PR21MB0178.namprd21.prod.outlook.com> <MWHPR15MB14559D2E94DED8AB176EC15AB6E90@MWHPR15MB1455.namprd15.prod.outlook.com> <CAKcm_gMjrmABH9+=g6vqcHkm35NMq40i_mfsCkSQ3tpjq2MwOw@mail.gmail.com>
From: Jana Iyengar <jri@google.com>
Date: Thu, 18 Jan 2018 11:29:36 -0800
Message-ID: <CAGD1bZZo__hMa+UWiN7M7BGR5VNGP0UPjrKd4sdLYt8DHCWcoQ@mail.gmail.com>
Subject: Re: Definition of Recovery Period End
To: Ian Swett <ianswett@google.com>
Cc: Subodh Iyengar <subodh@fb.com>, Nick Banks <nibanks@microsoft.com>, IETF QUIC WG <quic@ietf.org>
Content-Type: multipart/alternative; boundary="f403045ed28c043066056311fcf6"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/dGzZDSdL-bQf49fyPGY0LZVG1KY>
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:29:40 -0000

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> 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> 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> on behalf of Nick Banks <
>> 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
>>
>
>