Re: [EXTERNAL] Re: WGLC review of draft-ietf-quic-recovery-29

Ian Swett <ianswett@google.com> Mon, 27 July 2020 14:06 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 CBBA43A19CB for <quic@ietfa.amsl.com>; Mon, 27 Jul 2020 07:06:33 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -17.599
X-Spam-Level:
X-Spam-Status: No, score=-17.599 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, ENV_AND_HDR_SPF_MATCH=-0.5, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, USER_IN_DEF_DKIM_WL=-7.5, USER_IN_DEF_SPF_WL=-7.5] 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 ktY_omD1s7an for <quic@ietfa.amsl.com>; Mon, 27 Jul 2020 07:06:31 -0700 (PDT)
Received: from mail-yb1-xb29.google.com (mail-yb1-xb29.google.com [IPv6:2607:f8b0:4864:20::b29]) (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 7A4423A19C8 for <quic@ietf.org>; Mon, 27 Jul 2020 07:06:21 -0700 (PDT)
Received: by mail-yb1-xb29.google.com with SMTP id g6so8791299ybo.11 for <quic@ietf.org>; Mon, 27 Jul 2020 07:06:21 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=rd043wfLfXosBggmi8ZRsURDclpjy+gEpegX4oQxM0w=; b=rcJxV1h0oXmSsk7xsl6zOsIx1A5yifMtawWQlE3oYYU5V+QsIECIEjZ6xXVCChchKP /IduKJcexXcLKTQU1oBDI71dbJISTp3CvkfYmXsyGT7KSe0QScrWCL3vSiTLMn3xyWu5 f80GvnjCTfQMsvM5hFJp5eozTnYc46ERQHpm3irEO3jrXEBSLJE5ZQ1c2bFBINJVi+2n nqkyyqnShOqU+L+umMNf32bDZtXkeGGSdDZpJV9HmV0WpeXg0JXvYfAIA3XeylPc4oYp 8S8fqqhxat8AfijcC6BGxeSPD1Z+MOF4Te2duxLgqT9+RxzUG3OQ3WdSYZa7t+SCh1kh CllA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=rd043wfLfXosBggmi8ZRsURDclpjy+gEpegX4oQxM0w=; b=UwlKmNDHVBNHdcOnwIkDESfcWYxMtrgcE2oSF2pItsnHi5I86aGNIAGlQT28YJXAdU RuLTwWdCMB8nK3qVCAc19z0FMFc+rxBwrzLfEtvUci27gP/IIGz9ocf4eg17DwVHzvdV fTrrNDtWHgmzOzH2/FN36J1paM+oX1MGPfgeYcs+kt4SbCkBRjSgtFTUQuy3iVCA6nE8 CyGijhoMwEJ7obGAAziMM+Sc+LvlO1n6N5vAbItuqr2bGnBEa8DbDhYGJ9QtBJYX1Sss Gg1FDSL/aaoxEez+v6HeNvGk7XoCQODCgBN9PJ4+/LF0vhTuA+sONt3wZcY5M7nMluJA xouA==
X-Gm-Message-State: AOAM530wBHjAG/cUFvtn9tXaoljCGhg3MfHUuZBfJvVmD0GzlPGmVIJB GsbsCOwYXBLIUXCFjKPeW2Do+9zjeOK8I4gXFi2SZg==
X-Google-Smtp-Source: ABdhPJyd14yEim58fxG1NSTuZAzFuiwbt459AD703fhRSMjovVSmQjWuMd2ybWdaFOInC1NcbY6AECk8Vq5Vf1/dkQM=
X-Received: by 2002:a25:b78a:: with SMTP id n10mr34189339ybh.494.1595858780098; Mon, 27 Jul 2020 07:06:20 -0700 (PDT)
MIME-Version: 1.0
References: <MN2PR00MB073663726DB5AFE6885D0A6BB6670@MN2PR00MB0736.namprd00.prod.outlook.com> <9f57b20d-2eba-b2b9-d8c8-48e019c8952a@wizmail.org> <CACpbDccrpHeP5PYGCZky+AN2gC9YSs5gbAzYr4Yrw1LpvHZNiA@mail.gmail.com> <CH2PR00MB07269A73542DBC8E51E95519B67A0@CH2PR00MB0726.namprd00.prod.outlook.com> <CAKcm_gMhRX3NxiW6Primy+UrY44ZahaSO+9kF5CeeN4=XqL2JQ@mail.gmail.com> <CAKKJt-fY92k5ym767GofK+DOMQs=x6dpkwkKOA1cpkUf8Xs+3A@mail.gmail.com> <CAKcm_gPyg4QM+mZq_-E-av=u_X4nCWwdDXEH6e9Sjz1d8scEyg@mail.gmail.com> <CAKKJt-fmqjXJEUHzFT0yBXE0sLvOPcnM-oCBDZfgZQNgerRt8g@mail.gmail.com> <114a0e70-fe91-9cf9-e4e8-5f7d074eac5c@erg.abdn.ac.uk> <CACpbDcdXVN4BU5Zs823GYXteXmZEEYaVv1Adv7FGdEgMqJTsOg@mail.gmail.com>
In-Reply-To: <CACpbDcdXVN4BU5Zs823GYXteXmZEEYaVv1Adv7FGdEgMqJTsOg@mail.gmail.com>
From: Ian Swett <ianswett@google.com>
Date: Mon, 27 Jul 2020 10:06:08 -0400
Message-ID: <CAKcm_gPZN8aUREo=xZe4g0mPeubJvqJMUTWcuQQGOFAmRAFWwA@mail.gmail.com>
Subject: Re: [EXTERNAL] Re: WGLC review of draft-ietf-quic-recovery-29
To: Jana Iyengar <jri.ietf@gmail.com>
Cc: Gorry Fairhurst <gorry@erg.abdn.ac.uk>, Spencer Dawkins at IETF <spencerdawkins.ietf@gmail.com>, Praveen Balasubramanian <pravb@microsoft.com>, QUIC WG <quic@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000b384ad05ab6cd312"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/fYrDn5P4Cpd98wM-3AuiU-tbiRg>
X-BeenThere: quic@ietf.org
X-Mailman-Version: 2.1.29
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: Mon, 27 Jul 2020 14:06:35 -0000

For me, two things make "MUST, unless" or something along those lines
preferable for me.
1) Infinite limits make me concerned.
2) QUIC doesn't specify Slow Start After Idle and to me that seems safe
only because it requires pacing and/or limiting bursts.

But I agree the difference between "MUST unless" and SHOULD is small, so I
think this is a case for adding some extra text about why it's not a strict
MUST.

PS: I'll get back to the PR today, sorry for the delay.

On Fri, Jul 24, 2020 at 9:42 PM Jana Iyengar <jri.ietf@gmail.com> wrote:

> Gorry,
>
> That's not the only case where you don't want to pace. If I know (and I
> have a production network where this is true) that the network can absorb a
> larger burst. What is the argument to make this a MUST when even the value
> of the Initial Window (of 10) is a SHOULD?
>
> - jana
>
> On Thu, Jul 23, 2020 at 2:07 AM Gorry Fairhurst <gorry@erg.abdn.ac.uk>
> wrote:
>
>> I'd like to argue a little more for something like the current text we
>> arrived at:
>>
>> "Implementations MUST either
>>    use pacing or another method to limit such bursts to the initial
>>    congestion window;"
>>
>> I've been watching, and have comments see below:
>>
>>
>> On 20/07/2020 23:11, Spencer Dawkins at IETF wrote:
>>
>> Hi, Ian,
>>
>> On Mon, Jul 20, 2020, 16:33 Ian Swett <ianswett@google.com> wrote:
>>
>>> Most of the items which I felt were somewhat deployment-specific
>>> constants(ie: Initial Window and Initial RTT) are 'RECOMMENDED' in the
>>> current recovery draft, so I thought it'd be preferable to keep that
>>> convention.
>>>
>>
>> Thanks for helping me understand - this is a stylistic change.
>>
>> I've had a couple of conversations outside of QUIC recently with people
>> who were interpreting the two terms somewhat differently, so thought it a
>> good time to ask.
>>
>> Best,
>>
>> Spencer
>>
>>>
>>> On Mon, Jul 20, 2020 at 5:30 PM Spencer Dawkins at IETF <
>>> spencerdawkins.ietf@gmail.com> wrote:
>>>
>>>> Hi, Ian,
>>>>
>>>> On Mon, Jul 20, 2020 at 11:49 AM Ian Swett <ianswett=
>>>> 40google.com@dmarc.ietf.org> wrote:
>>>>
>>>>> I think it's ok to include burst limits in the set of things we expect
>>>>> may be different in DCs, but if we do that, I'd prefer to use the
>>>>> RECOMMENDED rather than SHOULD,
>>>>>
>>>>
>>>> Aren't RECOMMENDED and SHOULD equivalent in
>>>> https://tools.ietf.org/html/rfc2119?
>>>>
>>>> Or am I misunderstanding your point?
>>>>
>>>> 3 <https://tools.ietf.org/html/rfc2119#section-3>. SHOULD   This word, or the adjective "RECOMMENDED", mean that there
>>>>    may exist valid reasons in particular circumstances to ignore a
>>>>    particular item, but the full implications must be understood and
>>>>    carefully weighed before choosing a different course.
>>>>
>>>>
>>>> Best,
>>>>
>>>> Spencer
>>>>
>>>> since there are a number of SHOULDs which I believe apply both to the
>>>>> public internet and to DCs.  Then we could add a note at the top about how
>>>>> there are some values which are RECOMMENDED, including X, Y and Z, and
>>>>> those recommendations are expected to be good choices for most, but not all
>>>>> environments.
>>>>>
>>>>> In terms of text, I'd suggest taking Neal's suggestion and dropping an
>>>>> explicit mention of the public internet:
>>>>>
>>>>> Implementations MUST either use pacing or another method to limit such bursts.
>>>>>
>>>>> It is RECOMMENDED that implementations limit bursts to the initial congestion window; see Section 7.2 <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Ftools.ietf.org%2Fhtml%2Fdraft-ietf-quic-recovery-29%23section-7.2&data=02%7C01%7Cpravb%40microsoft.com%7C9df3e5f4f0ca4e586f0908d824e0a3ad%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637299894526657906&sdata=ze%2F7SpKUbrdgwI6m%2BS6uEGSBgc2NapVtPn9vkOYFjVs%3D&reserved=0>.
>>>>>
>>>>>
>>>>> On Sun, Jul 19, 2020 at 4:08 PM Praveen Balasubramanian <pravb=
>>>>> 40microsoft.com@dmarc.ietf.org> wrote:
>>>>>
>>>>>> >> There's a way of satisfying both desires: have the NIC handle the
>>>>>> pacing.
>>>>>>
>>>>>> Yes letting the NIC handle pacing will make improve CPU efficiency
>>>>>> and improve accuracy due to fine grained hardware timers. But that’s in the
>>>>>> future. Today’s NICs don’t pace large send offloads for TCP or UDP.
>>>>>>
>>>>>>
>>>>>>
>>>>>> >> Perhaps we can have a principle here: recommendations that are
>>>>>> specific for Internet use are just that, and we use SHOULDs for those. IW10
>>>>>> makes sense based on this, and I would then also be fine with changing the
>>>>>> MUST to a SHOULD. Perhaps we can state this principle upfront.
>>>>>>
>>>>>> I like the idea of stating that principle up front. SHOULD would be
>>>>>> sufficient resolution for the burst size issue.
>>>>>>
>>>>>>
>>>>>>
>>>>>> *From:* QUIC <quic-bounces@ietf.org> *On Behalf Of * Jana Iyengar
>>>>>> *Sent:* Friday, July 17, 2020 7:18 PM
>>>>>> *To:* QUIC WG <quic@ietf.org>
>>>>>> *Subject:* [EXTERNAL] Re: WGLC review of draft-ietf-quic-recovery-29
>>>>>>
>>>>>>
>>>>>>
>>>>>> There's a protocol question and there's a question of endpoint
>>>>>> behavior. In terms of the protocol itself, yes, there's no real need to
>>>>>> distinguish between Internet and DC environments; we've tried to ensure
>>>>>> that the protocol can be used broadly. My point was that the constants in
>>>>>> the spec were based on what we believe to be true for the public Internet,
>>>>>> and not for DC environments.
>>>>>>
>>>>>>
>>>>>>
>>>>>> That said, perhaps I was a bit too hasty. IW10 and InitialRTT values
>>>>>> are the others I was thinking about, but those are recommendations in the
>>>>>> spec, not requirements. And as Ian notes, there's no minimum timeout
>>>>>> anymore.
>>>>>>
>>>>>>
>>>>>>
>>>>>> Perhaps we can have a principle here: recommendations that are
>>>>>> specific for Internet use are just that, and we use SHOULDs for those.
>>>>>>
>>>>> I don't agree, see below.
>>
>> IW10 makes sense based on this, and I would then also be fine with
>>>>>> changing the MUST to a SHOULD. Perhaps we can state this principle upfront.
>>>>>>
>>>>>>
>>>>>>
>>>>>> Ian, I share your hesitation that we don't want to make a distinction
>>>>>> between private and public networks, but we already allow for
>>>>>> implementations to do that with a different IW and Initial RTT. Is it
>>>>>> different when talking about burst limits?
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Fri, Jul 17, 2020 at 3:07 PM Jeremy Harris <jgh@wizmail.org>
>>>>>> wrote:
>>>>>>
>>>>>> On 08/07/2020 22:29, Praveen Balasubramanian wrote:
>>>>>> > Section 7.9
>>>>>> > "Implementations MUST either use pacing or another method to limit
>>>>>> such bursts to the initial congestion window; see Section 7.2."
>>>>>> > This seems to preclude use of segmentation offload of sizes greater
>>>>>> than IW.. In datacenters we routinely send bursts that are higher without
>>>>>> causing loss. The MUST here seems unnecessary. It also conflicts with the
>>>>>> RECOMMENDED in an earlier sentence.
>>>>>>
>>>>>> There's a way of satisfying both desires: have the NIC handle the
>>>>>> pacing.
>>>>>> --
>>>>>> Cheers,
>>>>>>   Jeremy
>>>>>>
>>>>>>
>> I am unsure that trying to differentiate DC from ISP-Edge from Enterprise Server
>> or anything else will help in the spec. Sure, guidance may differ - but I'd like
>> to think (???) the IETF Spec describes the "Internet case, which
>> is expected to be good choices for most, but not all environments... and if a system distributes
>> functions within your own network segment then that's your decision - and yes,
>> and doing this in NICs would be great ... although NICs also can generate bursts
>> when transports pace at a higher level...
>>
>> The pacing/burst-limiting could happen in various ways by various actors, but
>> that's not the way transport Specs are written, I thought that's why we ended-up with
>> "other methods".
>>
>> For me at least, it was a conscious decision to not to explicitly make this "10 packets",
>> because an endpoint sender that made an informed decision to use a larger IW
>> has at the same time decided to configure in a way that expects the network path can safely
>> support this burst size. I expect this matters most when the
>> connection sending rate is low (see below). But we missed something.
>>
>> I think the suggested addition from Ian, could really help a lot:
>> "unless the pacing system can't provide enough sending opportunities to send at the rate specified by the congestion controller."
>>
>> - This would make the language less clear, but I think in a very good way, because I agree that as the connection **sending** rate increases (and hence also the CC understanding of
>> the path characteristics), the effect of bursts might be expected to be less significant. At higher rates queues in devices clear more quickly, and buffering 1mS (or whatever) of data, buffers more.
>>
>> Can we discuss that proposal more?
>>
>> Gorry
>>
>>