Re: Definition of Recovery Period End

Ian Swett <ianswett@google.com> Wed, 17 January 2018 01:57 UTC

Return-Path: <ianswett@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 4CC1712EC22 for <quic@ietfa.amsl.com>; Tue, 16 Jan 2018 17:57:17 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.709
X-Spam-Level:
X-Spam-Status: No, score=-2.709 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, URIBL_BLOCKED=0.001] 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 LP-by-OoHvTS for <quic@ietfa.amsl.com>; Tue, 16 Jan 2018 17:57:14 -0800 (PST)
Received: from mail-it0-x22e.google.com (mail-it0-x22e.google.com [IPv6:2607:f8b0:4001:c0b::22e]) (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 CFFA512EC0D for <quic@ietf.org>; Tue, 16 Jan 2018 17:56:58 -0800 (PST)
Received: by mail-it0-x22e.google.com with SMTP id c102so13253987itd.0 for <quic@ietf.org>; Tue, 16 Jan 2018 17:56:58 -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=6tHpGvH8IAaBckOZ6eWwNSCWMjeH1JbtYYBBsU3V4Xg=; b=QIglgs3CFm3w2lAeztioISGQDmN0mMXDpB1dUreicUL7gb6UE2mKDhhgD0DyTwgsIG K8Fo79iIxctMKWZiidMEwpt3VPSBus+vVn5qH1IcC8d1liD9DPzhSArwoViJTNyfXQCZ rH2igOwrDYXLqZ9IMgy+rluZmdXxpTRM+TdHPCwk/mr2nzrGaNKywpRy5oi9Lv+ObDkw OVuZcbeeGxsASqFJYBZ/8fB+yhoEj0hPNVDAR+R1goM4/wUJCSKc9Rtybj49PvqTxo2b e5rEaOt7ZwsjpWcrP2Z4KUSM9UsSfbLLfOOntKbJ4duV7QoOUfKphZhzEEf74nDmRABV kLuw==
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=6tHpGvH8IAaBckOZ6eWwNSCWMjeH1JbtYYBBsU3V4Xg=; b=mMbw1hgGCxKORyr2VrXUFFpRC1hPF8IEMOLwOS0FP9Kj8qCGPOXuppdbdP15crLfqT y/qFPLpYRP1LSdw3mEQD8bsWhjdQxKx5/Q2hjsfTqOuWKFrHp0OGAESH7pOo2hgaydxD RGShMPDL/YgYnqdifD/AnzUhyxIvedpvdukeQdqB8K0NHM+MBLs4ebAWTafg8dGA1A6U EoMbm/8LYy53GM3JwSbA8rPBWit0rXoORG91JyrB73GUbvKDfUMTm82cnuu98YonhsB4 n/S4f68hw/XjoXc7q26V963TAFe0q1Jdwhs9vtoeQ7Xtboh7yE3j1vPvt9N+EsQOgdV3 RBnA==
X-Gm-Message-State: AKwxyte3OVciuYlXbmtJZdZPbEpgor9w59AavaSWrAwxPxHk/+fiXlZ1 z9ZeifXMOhlVyPHhDj6gdqESBFqP91g6pNH1MuQkoQ==
X-Google-Smtp-Source: ACJfBovNAK/sQVSLMZWnvYuPiBD9SUZ6T+jRGtzwJFjfe2l4McnUZoyHjej3OAl3HZeDsVQNt+HGSLIXEdxrQYqCkac=
X-Received: by 10.36.73.102 with SMTP id z99mr22496840ita.72.1516154217908; Tue, 16 Jan 2018 17:56:57 -0800 (PST)
MIME-Version: 1.0
Received: by 10.107.222.4 with HTTP; Tue, 16 Jan 2018 17:56:37 -0800 (PST)
In-Reply-To: <MWHPR15MB14559D2E94DED8AB176EC15AB6E90@MWHPR15MB1455.namprd15.prod.outlook.com>
References: <BN6PR21MB0178ECF15AA5E99508B897F3B3E90@BN6PR21MB0178.namprd21.prod.outlook.com> <MWHPR15MB14559D2E94DED8AB176EC15AB6E90@MWHPR15MB1455.namprd15.prod.outlook.com>
From: Ian Swett <ianswett@google.com>
Date: Tue, 16 Jan 2018 20:56:37 -0500
Message-ID: <CAKcm_gMjrmABH9+=g6vqcHkm35NMq40i_mfsCkSQ3tpjq2MwOw@mail.gmail.com>
Subject: Re: Definition of Recovery Period End
To: Subodh Iyengar <subodh@fb.com>, Jana Iyengar <jri@google.com>
Cc: Nick Banks <nibanks@microsoft.com>, IETF QUIC WG <quic@ietf.org>
Content-Type: multipart/alternative; boundary="001a11c14e5e95c1780562ef297d"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/Y08k1KK7ywCAaNymbwJmxEmL8Cg>
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: Wed, 17 Jan 2018 01:57:18 -0000

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
>