Re: [tcpm] Proceeding CUBIC draft - thoughts and late follow-up

Markku Kojo <kojo@cs.helsinki.fi> Tue, 19 July 2022 23:56 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 9F785C13C52B; Tue, 19 Jul 2022 16:56:59 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.011
X-Spam-Level:
X-Spam-Status: No, score=-2.011 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01] 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 vt3bqgQUXH60; Tue, 19 Jul 2022 16:56:54 -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 E5A56C14F72E; Tue, 19 Jul 2022 16:56:53 -0700 (PDT)
X-DKIM: Courier DKIM Filter v0.50+pk-2017-10-25 mail.cs.helsinki.fi Wed, 20 Jul 2022 02:56:40 +0300
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cs.helsinki.fi; h=date:from:to:cc:subject:in-reply-to:message-id:references :mime-version:content-type:content-id; s=dkim20130528; bh=N9dnVu iy/HImVqL15HOPKU1FLXguB0RKAJexT7fB1SQ=; b=k6cihpVcBUKlvtiB/eYLEc 4rrtjoTXYlRvUKCSPIfXdPNrUbcFLZ0N2Frm7FuclMvRO1rA9zg7uv0aoHHifofh s6agMqknDeIQ01t7aywYPmzSbpISNzRSYhkpo+Snyy5hC9DyHCB0SNyQei26jbE5 iyYN5UoJq7ZJNfHtyxZ64=
Received: from hp8x-60 (85-76-46-2-nat.elisa-mobile.fi [85.76.46.2]) (AUTH: PLAIN kojo, TLS: TLSv1/SSLv3,256bits,AES256-GCM-SHA384) by mail.cs.helsinki.fi with ESMTPSA; Wed, 20 Jul 2022 02:56:40 +0300 id 00000000005A011D.0000000062D744B8.00002D3C
Date: Wed, 20 Jul 2022 02:56:39 +0300
From: Markku Kojo <kojo@cs.helsinki.fi>
To: Yoshifumi Nishida <nsd.ietf@gmail.com>
cc: Vidhi Goel <vidhi_goel=40apple.com@dmarc.ietf.org>, Vidhi Goel <vidhi_goel@apple.com>, "tcpm@ietf.org Extensions" <tcpm@ietf.org>, tcpm-chairs <tcpm-chairs@ietf.org>
In-Reply-To: <CAAK044TGu8WMn1ht0tqyKVK+sSg6POrLU3HU5VE8yd8ouMHb8w@mail.gmail.com>
Message-ID: <alpine.DEB.2.21.2207200034550.7292@hp8x-60.cs.helsinki.fi>
References: <alpine.DEB.2.21.2206301429210.7292@hp8x-60.cs.helsinki.fi> <AEE43039-8EA0-4FB9-A605-C5C845DF4355@apple.com> <alpine.DEB.2.21.2207041843260.7292@hp8x-60.cs.helsinki.fi> <CAAK044TTZKXphE2rW7aFc2TnBLmMK0U+J61ZKzZXYvOmX_TdSA@mail.gmail.com> <alpine.DEB.2.21.2207120355450.7292@hp8x-60.cs.helsinki.fi> <CAAK044TGu8WMn1ht0tqyKVK+sSg6POrLU3HU5VE8yd8ouMHb8w@mail.gmail.com>
User-Agent: Alpine 2.21 (DEB 202 2017-01-01)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=_script-11604-1658275000-0001-2"
Content-ID: <alpine.DEB.2.21.2207200248560.7292@hp8x-60.cs.helsinki.fi>
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpm/Sig9vFoinqPQXblrVYxbmQupvKg>
Subject: Re: [tcpm] Proceeding CUBIC draft - thoughts and late follow-up
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, 19 Jul 2022 23:56:59 -0000

Hi Yoshi,

See below inline.

On Thu, 14 Jul 2022, Yoshifumi Nishida wrote:

> Hi Markku,
> 
> Thanks for the comments. I think we're mostly on the same page for RFC9002. 
> I put some comments on the issue 1 part.
> 
> On Mon, Jul 11, 2022 at 7:54 PM Markku Kojo <kojo@cs.helsinki.fi> wrote:
>
>       > BTW, my intention is not saying RFC9002 is overly aggressive. I just meant comparing with reno
>       precisely might
>       > not be a very good idea for modern networks. 
>
>       Agreed, it is not overly aggressive.
>
>       I am not saying that CUBIC should be precisely as aggressive as Reno even
>       though its design goal has been to be equally aggressive in the
>       Reno-friendly region.
>
>       Instead, with the issue 1, for example, a CUBIC flow competing with a
>       Reno flow will incorrectly and against its design goal opt out
>       roughly every second cwnd decrease that the Reno flow executes. Doesn't
>       that result in systematic and significant difference in peformance like
>       the measuement results that I've pointed to also confirm?
> 
> I think we'll need more analysis on this point. 
> Let's say a CUBIC connection has 50 packets cwnd and a Reno connection has 51 packets cwnd, the available
> buffer is only 100 packets.
> In this case, I'm not very sure which connection of packets will be dropped hence not sure about the
> consequences.

I am not quite sure what you are looking after here? It does not matter 
what are the cwnd sizes. They may differ. What matters is what happens on 
the RTT when the buffer capacity has been exhausted and a flow (or flows) 
injects an additional packet once cwnd has increased by one full MSS.
For Reno this occurs every RTT but for CUBIC (creno = CUBIC in the 
Reno-friendly region) roughly every second RTT (for simplicity I use here 
Beta = 0.5 for CUBIC). When I say creno opts out (roughly) every second 
cwnd decrease that is true when the flows are synchronized. When they are 
not, things are a bit more complex and I didn't want to go there for 
simplicity and because for that we would need more analysis and 
measurements to learn the exact impact of the incorrect formula.
In addition, we shold not consider only the case of two competing flows 
but any number with different proportion of Reno and creno.
I used the simple two-flow case to illustrate why the model (and formula) 
are incorrect.

Of course also two Reno flows may become desynchronized (and they do in 
real networks) and then their cwnds are not the same each CA cycle but at 
times only one of the flows gets a drop and continues with a smaller 
cwnd. However, this happens randomly to either of the flows and there is 
no systematic bias. And, when it happens the flow with the smaller cwnd 
(statistically) catches up with the larger cwnd in some number of CA 
cycles. creno that increases its cwnd by full MSS only every second RTT 
creates a systematic bias that results in unjustified performance gain 
because of systematically not being candidate for a pkt drop each time 
the buffer becomes full. I must also say that the problem is present in 
full as described in deterministic network environments but it does not 
become negligible when the network does not behave in such deterministic 
way due to varying pkt timings. Nonetheless, we have plenty of 
deterministic enough network environments today and the CC algos must work 
correctly also in these environments.

> I still believe we cannot be sure until we see some deep analysis for this.

The problem is true but the exact impact is unknown indeed.

> This may take time, but I think it's necessary to get the conclusion on this point. 

Whatever the conclusion is, it must not ignore the problem.

Thanks,

/Markku

> --
> Yoshi  
> 
>