Re: [tcpm] CUBIC rfc8312bis / WGLC Issue 6 and proposed text

Vidhi Goel <vidhi_goel@apple.com> Wed, 13 July 2022 06:18 UTC

Return-Path: <vidhi_goel@apple.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 B2BA6C157B3A; Tue, 12 Jul 2022 23:18:32 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.689
X-Spam-Level:
X-Spam-Status: No, score=-2.689 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.582, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, 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] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=apple.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 CypvKkk0sgom; Tue, 12 Jul 2022 23:18:27 -0700 (PDT)
Received: from rn-mailsvcp-ppex-lapp35.apple.com (rn-mailsvcp-ppex-lapp35.rno.apple.com [17.179.253.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B0252C14F72A; Tue, 12 Jul 2022 23:18:24 -0700 (PDT)
Received: from pps.filterd (rn-mailsvcp-ppex-lapp35.rno.apple.com [127.0.0.1]) by rn-mailsvcp-ppex-lapp35.rno.apple.com (8.16.1.2/8.16.1.2) with SMTP id 26D6FRss015139; Tue, 12 Jul 2022 23:18:24 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=apple.com; h=content-type : content-transfer-encoding : from : mime-version : subject : date : message-id : references : cc : in-reply-to : to; s=20180706; bh=vxf4A+qfvgiDompCS/KkC1zdRinTE2oPlXYk9/T2ShE=; b=MQcMa9TV4NBI9xDu5dz06VuDrMRuXisfSr8akVb3ujnqY/KlCIXWJhs3hjil2VBZ1PiT x6S6gvZKmRCWh3WgEkJPxYcyhUCOvJO5KSCTl1/fGcoFdSReEO8REw/nNK7CylglRyIv mcqHDsIs3PXtz1rXCwit0cfSdMbIfvLVLPBLwM9O67eW7OlQjvWMeulFBhRYm09dnKLa MGR0j4VvEdQRcuxqHL4/zrlS1q/Trpny5t/yKBWh6IlS3VvTsUlpixG0ozMtWt7KmQn0 orJ8U7BHXPGuHthtsZHSKGbkEqsqQQRPpU5MlOdY+JBOg9+zsMDSjXYboijoALXGp4Su kw==
Received: from ma-mailsvcp-mta-lapp01.corp.apple.com (ma-mailsvcp-mta-lapp01.corp.apple.com [10.226.18.133]) by rn-mailsvcp-ppex-lapp35.rno.apple.com with ESMTP id 3h75760cp4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NO); Tue, 12 Jul 2022 23:18:24 -0700
Received: from ma-mailsvcp-mmp-lapp03.apple.com (ma-mailsvcp-mmp-lapp03.apple.com [17.32.222.16]) by ma-mailsvcp-mta-lapp01.corp.apple.com (Oracle Communications Messaging Server 8.1.0.18.20220407 64bit (built Apr 7 2022)) with ESMTPS id <0REY005WR46N8F00@ma-mailsvcp-mta-lapp01.corp.apple.com>; Tue, 12 Jul 2022 23:18:23 -0700 (PDT)
Received: from process_milters-daemon.ma-mailsvcp-mmp-lapp03.apple.com by ma-mailsvcp-mmp-lapp03.apple.com (Oracle Communications Messaging Server 8.1.0.18.20220407 64bit (built Apr 7 2022)) id <0REY00J0041WTJ00@ma-mailsvcp-mmp-lapp03.apple.com>; Tue, 12 Jul 2022 23:18:23 -0700 (PDT)
X-Va-A:
X-Va-T-CD: 637c60740750869fdac3fa3bd3c9b6e8
X-Va-E-CD: 41fd44ac25f22bdcc0fda8fbd071d110
X-Va-R-CD: 3f4bfd29cf6328474e486f6f244c64e7
X-Va-CD: 0
X-Va-ID: 41a8c3ab-f913-4e75-8ea1-a0340e1b567b
X-V-A:
X-V-T-CD: 637c60740750869fdac3fa3bd3c9b6e8
X-V-E-CD: 41fd44ac25f22bdcc0fda8fbd071d110
X-V-R-CD: 3f4bfd29cf6328474e486f6f244c64e7
X-V-CD: 0
X-V-ID: e6ad0c56-5a90-4dd3-9515-2c0d5224e194
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.517, 18.0.883 definitions=2022-07-12_14:2022-07-12, 2022-07-12 signatures=0
Received: from smtpclient.apple (unknown [17.232.170.1]) by ma-mailsvcp-mmp-lapp03.apple.com (Oracle Communications Messaging Server 8.1.0.18.20220407 64bit (built Apr 7 2022)) with ESMTPSA id <0REY0047N46L0500@ma-mailsvcp-mmp-lapp03.apple.com>; Tue, 12 Jul 2022 23:18:21 -0700 (PDT)
Content-type: text/plain; charset="utf-8"
Content-transfer-encoding: quoted-printable
From: Vidhi Goel <vidhi_goel@apple.com>
MIME-version: 1.0 (1.0)
Date: Tue, 12 Jul 2022 23:18:10 -0700
Message-id: <3F022778-A908-4D3A-A4F3-AE15DDB503B7@apple.com>
References: <CAK6E8=ddwJK+e8f5Jxe8AW6CmHhvRFyPxb6nhpJ-jdEtXxp5UQ@mail.gmail.com>
Cc: Vidhi Goel <vidhi_goel=40apple.com@dmarc.ietf.org>, "tcpm@ietf.org Extensions" <tcpm@ietf.org>, Markku Kojo <kojo=40cs.helsinki.fi@dmarc.ietf.org>
In-reply-to: <CAK6E8=ddwJK+e8f5Jxe8AW6CmHhvRFyPxb6nhpJ-jdEtXxp5UQ@mail.gmail.com>
To: Yuchung Cheng <ycheng=40google.com@dmarc.ietf.org>
X-Mailer: iPhone Mail (20A5312d)
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.517, 18.0.883 definitions=2022-07-12_14:2022-07-12, 2022-07-12 signatures=0
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpm/cI3Bqzrofqaj3mYdqueeL0ZGhb8>
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: Wed, 13 Jul 2022 06:18:32 -0000

Thanks Yuchung.

I agree that we don’t need rwnd check and we already mention about using rfc7661 for when app sends are smaller than cwnd. I will review what is missing in the draft from Markku’s text.

Vidhi

> On Jul 12, 2022, at 7:46 PM, Yuchung Cheng <ycheng=40google.com@dmarc.ietf.org> 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.
> 
> 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)
> 
> 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