Re: [tcpm] CUBIC rfc8312bis / WGLC Issue 6 and proposed text
Yuchung Cheng <ycheng@google.com> Thu, 14 July 2022 23:26 UTC
Return-Path: <ycheng@google.com>
X-Original-To: tcpm@ietfa.amsl.com
Delivered-To: tcpm@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id BC06FC16ED18 for <tcpm@ietfa.amsl.com>; Thu, 14 Jul 2022 16:26:32 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -17.606
X-Spam-Level:
X-Spam-Status: No, score=-17.606 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, RCVD_IN_DNSWL_BLOCKED=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=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 ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id D1ACybcBpVQA for <tcpm@ietfa.amsl.com>; Thu, 14 Jul 2022 16:26:28 -0700 (PDT)
Received: from mail-wr1-x42c.google.com (mail-wr1-x42c.google.com [IPv6:2a00:1450:4864:20::42c]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id ADAF9C14F749 for <tcpm@ietf.org>; Thu, 14 Jul 2022 16:26:28 -0700 (PDT)
Received: by mail-wr1-x42c.google.com with SMTP id j1so71391wrs.4 for <tcpm@ietf.org>; Thu, 14 Jul 2022 16:26:28 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=GZt44I6wl64gKECmhXFSafdeZWfuPJxj3Ff8sgHcuSA=; b=bgwF494EidaZ36jTYAFZt2KPQ4CkY3fugz7tzKQhmWsMqQ1gyy987S/aUxU1Y8bHFH fqmiycv9Kj8+kbq0JgbpKWhh/8lZirUqiCbiqNox9e4fEkekQdAOMyJ0/wNLRgcmqcjA lNvxqrBQyABQedWSNaP1AKbsMy9z/Qc2zqtyOj2zcZrgxRIovFJtUq9BM/UoK1N/UJ3A MemqBmaJmR1Dg16Wk+jlqC5ZaCFFbxcD5KzwxIKgvGXsctlZgIflQtyOy3DOCkukHuta SCyPimQw54aTVzGCI5v9bS7y3ox9EUfvuQwAh754QINvuecGg/MY8LYiuQAByqNJgiOp XIww==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=GZt44I6wl64gKECmhXFSafdeZWfuPJxj3Ff8sgHcuSA=; b=hjofRyq8uV7HiLAcPZOqfyRm0IowpDJGn52sinErVL2Hv7LdUnQVrmw5DUJF+/Yzmw TI3BeMWCpSym1QrE8Tse825tazc23VztmfkV97gUoRV0TryxTTAy61o5o0i8dFw3jbYC 0/EbndyUuy56xh+BfcwhCeF3EuRe3GOp0+kQDn5Vfb8mjZtndVHMgeCEzPc7TZWKKE0l LjVQ3EgO61fDnw97kI+vxRF290OlXMkPvZn8aUHniVPF4CxA0a8gduubWASAkn+jgGAq INXkkUafmLNp924tSEZ43GgMKHxI1VcdyXTrlFo08YXu4BYChlHizgAxalcjlXtQDq0x VO4g==
X-Gm-Message-State: AJIora8O0rBIh/L/SOm1YPWUg91/cLIU0EpRQx62cCpphImE45GqOR1u 8AoDXNJNjqpAFw2ZxBJysFo4dNNo76i+fqr5RFqhMA==
X-Google-Smtp-Source: AGRyM1sDthugIWjAHgh7FSmrjH87nagJSmUQ86i/1tSStqpKkoX8y8ojWOoCDnIVWaAv961Rjg9GKNAEz1hwAD84RIQ=
X-Received: by 2002:a05:6000:2cc:b0:21d:76d8:1f2c with SMTP id o12-20020a05600002cc00b0021d76d81f2cmr10063857wry.471.1657841186777; Thu, 14 Jul 2022 16:26:26 -0700 (PDT)
MIME-Version: 1.0
References: <alpine.DEB.2.21.2207112026000.7292@hp8x-60.cs.helsinki.fi> <31DCA869-30FA-41C6-B21F-3D71E600FFF2@apple.com> <CAK6E8=ddwJK+e8f5Jxe8AW6CmHhvRFyPxb6nhpJ-jdEtXxp5UQ@mail.gmail.com> <alpine.DEB.2.21.2207150152210.7292@hp8x-60.cs.helsinki.fi>
In-Reply-To: <alpine.DEB.2.21.2207150152210.7292@hp8x-60.cs.helsinki.fi>
From: Yuchung Cheng <ycheng@google.com>
Date: Thu, 14 Jul 2022 16:25:49 -0700
Message-ID: <CAK6E8=f63vORKoqDHTkXS=jiaHD_GM0Gw31CzdKbbdhmVeexmA@mail.gmail.com>
To: Markku Kojo <kojo=40cs.helsinki.fi@dmarc.ietf.org>
Cc: Vidhi Goel <vidhi_goel@apple.com>, "tcpm@ietf.org Extensions" <tcpm@ietf.org>, Neal Cardwell <ncardwell@google.com>
Content-Type: text/plain; charset="UTF-8"
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpm/ibGQ-iMFR2duxQ8kVO1zxtYBg20>
Subject: Re: [tcpm] CUBIC rfc8312bis / WGLC Issue 6 and proposed text
X-BeenThere: tcpm@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: TCP Maintenance and Minor Extensions Working Group <tcpm.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tcpm>, <mailto:tcpm-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tcpm/>
List-Post: <mailto:tcpm@ietf.org>
List-Help: <mailto:tcpm-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tcpm>, <mailto:tcpm-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 14 Jul 2022 23:26:32 -0000
On Thu, Jul 14, 2022 at 4:12 PM Markku Kojo <kojo=40cs.helsinki.fi@dmarc.ietf.org> wrote: > > Hi Yuchung, > > On Tue, 12 Jul 2022, Yuchung Cheng wrote: > > > AFAIK, the latest (and previous) Linux Cubic implementation does not follow > > "The implementations that use _cwnd_ MUST use other measures to avoid > > _cwnd_ from growing beyond the receive window" > > > > I don't see the need to add that check in Linux as the effective > > window is always the min of cwnd and rwnd. > > That does not help. If cwnd is allowed to grow way beyond rwnd (more than > 43% for CUBIC or more than 100% for Reno CC), a sender would not respond > to an arriving congestion signal effectively at all (and may even > increase the cwnd). That is against the very basic rule in congestion > control principles we have. > > > On the other hand, Linux does restrict cwnd growth if flight size is > > below cwnd but the > > actual logic is more sophisticated than a "cwnd < inflight" check to > > work w/ TSO chunking issue well. > > https://elixir.bootlin.com/linux/latest/source/net/ipv4/tcp_output.c#L1881 > > (Neal cc'd here is the inventor of the advanced check) > > I'm not sure I follow your logic. Doesn't that effectively restrict cwnd > from growing beyond rwnd? To my understanding with that check Linux > applies "other measures to avoid _cwnd_ from growing beyond the receive > window". It does not matter whether the conncetion is > receiver-application limited via rwnd or sender-application limited. If > rwnd limits flight size, cwnd will not grow more. Maybe I am missing > something? That's right. Limiting cwnd growth on flight size automatically prevents cwnd goes far beyond rwnd for the congestion case you are concerned about. Your suggested text "The implementations that use _cwnd_ MUST use other measures to avoid _cwnd_ from growing beyond the receive window" is easily interpreted as a line of code "cwnd = min(cwnd, rwnd)" What I am saying is that this sentence is not necessary and overly strict. Limiting cwnd growth based on inflight which is based on the effective sending window (= min(cwnd, rwnd)) already prevents cwnd bloats over rwnd. I don't see why Cubic needs to have more strict rules than other C.C.s. > > Thanks, > > /Markku > > > Just want to reflect a major implementation status. > > > > > > On Tue, Jul 12, 2022 at 2:01 PM Vidhi Goel > > <vidhi_goel=40apple.com@dmarc.ietf.org> wrote: > >> > >> Thank you Markku for proposing the text. Some of this is already covered in the latest draft but I can do some edits to your proposed text and create a PR. > >> I spoke to other co-authors about this suggestion as well and we are mostly ok with it. > >> > >> > >> Vidhi > >> > >>> On Jul 11, 2022, at 5:37 PM, Markku Kojo <kojo=40cs.helsinki.fi@dmarc.ietf.org> wrote: > >>> > >>> Hi all, > >>> > >>> I promised to propose some text to some of the remaining issues. > >>> This thread starts the discussion on the issue 6 and proposes text to solve the issue: > >>> > >>> Issue 6) Flightsize: > >>> > >>> The current text in Sec 4.6 w.r.t using FlightSize vs. cwnd for > >>> calculating multiplicative decrease is fine except that it does > >>> not quite correcly reflect what stacks that use cwnd instead of > >>> flightsize should do and actually do. AFAIK and what was > >>> discussed in github all stacks apply some sort of restrictions > >>> to not allow cwnd to grow beyond rwnd and to not use an > >>> arbitrarily high (old) cwnd value to calculate new cwnd > >>> when a congestion event occurs. > >>> > >>> > >>> Current text in Sec 4.6:: > >>> > >>> Some implementations of CUBIC currently use _cwnd_ instead > >>> of _flight_size_ when calculating a new _ssthresh_ using Figure 5. > >>> > >>> Proposed new text: > >>> > >>> Some implementations of CUBIC currently use _cwnd_ instead > >>> of _flight_size_ when calculating a new _ssthresh_ using Figure 5. > >>> The implementations that use _cwnd_ MUST use other measures to > >>> avoid _cwnd_ from growing beyond the receive window and to not > >>> allow _cwnd_ to grow when bytes in flight is smaller than > >>> _cwnd_. This prevents a CUBIC sender from using an arbitrarily > >>> high _cwnd_ value in calculating the new value for _ssthresh_ > >>> and _cwnd_ when a congestion event is signalled, but it is not > >>> as robust as the mechanisms described in [RFC7661]. > >>> [Many|Most|All] TCP implementations of CUBIC that use _cwnd_ apply > >>> such measures. Likewise, a QUIC sender that also uses congestion > >>> window to calculate a new value for the congestion window and > >>> slow-start threshold is required to apply similar mechanisms > >>> [RFC 9002]. > >>> > >>> > >>> Any comments and help in formulating the text are welcome. > >>> > >>> Need also some guidance from TCP implementations of CUBIC to finish up the second but last sentence. > >>> > >>> Thanks, > >>> > >>> /Markku > >>> > >>> _______________________________________________ > >>> tcpm mailing list > >>> tcpm@ietf.org > >>> https://www.ietf.org/mailman/listinfo/tcpm > >> > >> _______________________________________________ > >> tcpm mailing list > >> tcpm@ietf.org > >> https://www.ietf.org/mailman/listinfo/tcpm > >
- [tcpm] CUBIC rfc8312bis / WGLC Issue 6 and propos… Markku Kojo
- Re: [tcpm] CUBIC rfc8312bis / WGLC Issue 6 and pr… Vidhi Goel
- Re: [tcpm] CUBIC rfc8312bis / WGLC Issue 6 and pr… Yuchung Cheng
- Re: [tcpm] CUBIC rfc8312bis / WGLC Issue 6 and pr… Vidhi Goel
- Re: [tcpm] CUBIC rfc8312bis / WGLC Issue 6 and pr… Markku Kojo
- Re: [tcpm] CUBIC rfc8312bis / WGLC Issue 6 and pr… Markku Kojo
- Re: [tcpm] CUBIC rfc8312bis / WGLC Issue 6 and pr… Markku Kojo
- Re: [tcpm] CUBIC rfc8312bis / WGLC Issue 6 and pr… Yuchung Cheng
- Re: [tcpm] CUBIC rfc8312bis / WGLC Issue 6 and pr… Markku Kojo
- Re: [tcpm] CUBIC rfc8312bis / WGLC Issue 6 and pr… Yuchung Cheng
- Re: [tcpm] CUBIC rfc8312bis / WGLC Issue 6 and pr… Vidhi Goel
- Re: [tcpm] CUBIC rfc8312bis / WGLC Issue 6 and pr… Markku Kojo
- Re: [tcpm] CUBIC rfc8312bis / WGLC Issue 6 and pr… Markku Kojo
- Re: [tcpm] CUBIC rfc8312bis / WGLC Issue 6 and pr… Vidhi Goel
- Re: [tcpm] CUBIC rfc8312bis / WGLC Issue 6 and pr… Markku Kojo
- Re: [tcpm] CUBIC rfc8312bis / WGLC Issue 6 and pr… Vidhi Goel
- Re: [tcpm] CUBIC rfc8312bis / WGLC Issue 6 and pr… Yuchung Cheng