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

Markku Kojo <kojo@cs.helsinki.fi> Tue, 12 July 2022 00:38 UTC

Return-Path: <kojo@cs.helsinki.fi>
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 1C41EC188711 for <tcpm@ietfa.amsl.com>; Mon, 11 Jul 2022 17:38:13 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.008
X-Spam-Level:
X-Spam-Status: No, score=-2.008 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cs.helsinki.fi
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 dtZqewH-8_ly for <tcpm@ietfa.amsl.com>; Mon, 11 Jul 2022 17:38:09 -0700 (PDT)
Received: from script.cs.helsinki.fi (script.cs.helsinki.fi [128.214.11.1]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id CAF8DC182D6C for <tcpm@ietf.org>; Mon, 11 Jul 2022 17:38:05 -0700 (PDT)
X-DKIM: Courier DKIM Filter v0.50+pk-2017-10-25 mail.cs.helsinki.fi Tue, 12 Jul 2022 03:37:59 +0300
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cs.helsinki.fi; h=date:from:to:subject:message-id:mime-version:content-type; s= dkim20130528; bh=2cj9CcbYFVD3s5T31GZ/S2CNEtbuNcrkh6VhMDRv1g0=; b= iM+02nrOUN/TlaQFMQuTPBK8Ep/XofnaYmG2t+evOsPu9QjcIgqKy8/IlxgS86Ic hPeMVOzlHl/q3eSY9Dp4bXZo/FoyP8w2tU1N9o+6W5bpiUXemB+bP1GRyYCmcy3V fFt/K3Vb++tTsNWzkKIGGK6Kfw0Ne0i0a/3oT03hfA8=
Received: from hp8x-60 (85-76-35-95-nat.elisa-mobile.fi [85.76.35.95]) (AUTH: PLAIN kojo, TLS: TLSv1/SSLv3,256bits,AES256-GCM-SHA384) by mail.cs.helsinki.fi with ESMTPSA; Tue, 12 Jul 2022 03:37:59 +0300 id 00000000005A0148.0000000062CCC267.000037A5
Date: Tue, 12 Jul 2022 03:37:58 +0300
From: Markku Kojo <kojo@cs.helsinki.fi>
To: tcpm@ietf.org
Message-ID: <alpine.DEB.2.21.2207112026000.7292@hp8x-60.cs.helsinki.fi>
User-Agent: Alpine 2.21 (DEB 202 2017-01-01)
MIME-Version: 1.0
Content-Type: text/plain; format="flowed"; charset="US-ASCII"
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpm/IFmHSEd3ZfJH7td6_WbOvW_OWu8>
Subject: [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: Tue, 12 Jul 2022 00:38:13 -0000

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