Re: [L4s-discuss] Irregularities in results from L4S testing

Sebastian Moeller <moeller0@gmx.de> Wed, 06 September 2023 07:41 UTC

Return-Path: <moeller0@gmx.de>
X-Original-To: l4s-discuss@ietfa.amsl.com
Delivered-To: l4s-discuss@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 3214BC151098 for <l4s-discuss@ietfa.amsl.com>; Wed, 6 Sep 2023 00:41:29 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.853
X-Spam-Level:
X-Spam-Status: No, score=-1.853 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=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] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmx.de
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 jsJmjcmWovTs for <l4s-discuss@ietfa.amsl.com>; Wed, 6 Sep 2023 00:41:25 -0700 (PDT)
Received: from mout.gmx.net (mout.gmx.net [212.227.15.15]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 7D9B5C151096 for <l4s-discuss@ietf.org>; Wed, 6 Sep 2023 00:41:24 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.de; s=s31663417; t=1693986081; x=1694590881; i=moeller0@gmx.de; bh=1nT8y1QrjeCZaeswybnRXHd1+eP0Jqz2mPlfA+UWi18=; h=X-UI-Sender-Class:Subject:From:In-Reply-To:Date:Cc:References:To; b=Gv29HefhLs5bRb+4aLftg/ASd3B8B/CLzCtKKnhd9cHxyfFmrPR0bqCbeTK/jMLy0fSLrLG V5HW4WXHcIijU3Jw9W+rD4ww9hL/EBRQKdUlsaXWklIgk0MpvUmit2Mcw1lOC6mdbvvtsb3F+ Dq5gn0SkUDv2ZdvOm7v6MYQBCRoJvEHxBEiEC3JXxMbvDs1gFo+2zkVQZOskUdB1HMlQgkvBh sQlk9uruiwoIwdh2ZfV+yQI7ZUXMpVyEpUpuUM0lCoTlTAE5UZL4UCZQTXOtrh6TEqJSeBcG1 6jHIkzXMGk4U41wavAE9BJf0QgIpvk3e1/oRzmjGPtjrcm18rqKg==
X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a
Received: from smtpclient.apple ([134.76.241.253]) by mail.gmx.net (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MHXFr-1qQqjA1uHx-00DZGq; Wed, 06 Sep 2023 09:41:21 +0200
Content-Type: text/plain; charset="us-ascii"
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3696.120.41.1.4\))
From: Sebastian Moeller <moeller0@gmx.de>
In-Reply-To: <8eea45b1cd4862fa731babeab073fc74@studenti.polito.it>
Date: Wed, 06 Sep 2023 09:41:20 +0200
Cc: l4s-discuss@ietf.org
Content-Transfer-Encoding: quoted-printable
Message-Id: <BF7323F0-0AF9-4115-97A4-28ED77B212AF@gmx.de>
References: <181d20c79294d87ca7e3c4a398457cb2@studenti.polito.it> <6460de788e810fc720d196304e9cd228@studenti.polito.it> <8eea45b1cd4862fa731babeab073fc74@studenti.polito.it>
To: Matteo Guarna S303434 <matteo.guarna@studenti.polito.it>
X-Mailer: Apple Mail (2.3696.120.41.1.4)
X-Provags-ID: V03:K1:fBHCMCtKMapavGAmHgjiwJP+Zom5brA47/mD3V7p1rVqJDzq8xh kd7kXmcpW5Xn4EXY+qTvnEEifbwOShqbVYf1/mVky7gwnNiyvf7V36ZmIw3J7KeURsgeEly 22SkrkIlqzqu/cukww9ckg0bg8Sj4tAak2ciLXYcRBObp063k50F/n4UibbKNEHxjttSt7W D8OD77EO5cEOf2l2RVQFQ==
UI-OutboundReport: notjunk:1;M01:P0:NbHzQGGsR44=;dyJaDw5akuUoF52I9uqbcrqAGpO iub/uOW5Rm5iS6UUekew0+tGWZ+pNaZNGbVbEPN7pUP/2cfkU3cL0EADYHl2axx0zjUoXkrh7 IbGvRunFKLlBentOtSpOHPkAklZoGZ79yVLBbF7oCkBz4JhZKF4AogimNsjJZmHbRidItAxl0 sitG1mnwNxf9oc/IX2JR5ectmONkRcEchDkznt4ltMwa04DEQ4zgq2TSyiyV+puInJgRo/Gks /TGd/QqGkeLl11XyIK8/9lBqM2dpR65GRwSFpPdeU6+0wiQzQZts2MfJ0oDBPH3Mx/xmEY7A4 HxS+xrLK9VcN3Fq3Q9qi41i6ElsRiQDI1PJP5GShurzI8L7ebjmFQo7Y09UkpTP48BzgSqSSZ I02FAx3g6kt+vojQiRe1ZpjXQxwHSLSZSnQcUDbaZJkE/t2F/xXF3br3hV5OClwDR6EEvo+e5 0Rrp87rwC68mZF4PXtYq/za1nc6sEc02eu5KW78lAepm5GoNSXi1Y+KPWpDtVbCXIcQMxMVmb JSbseVcqzWfAL3EMrATOARWS0wpEyjyW8YK779UzgcCqFL296QPIngacwnJ6Cz+SkROD58iwR cK9t3byWwYMXVuYNKkEGXHCuE5qq00thpdiEUNk0VOS00pWJ0wG72bbd2bE1HaHqMkKv6Bh+o 56NcmxzLaxtQPrZl+zrClh/Xmtrwdwv5Rl0UNyIa5yRbB0YJCZGx3G3PoxpcDnb5rmqJ5/I+m Fd/iTEM9oHyJ0ZmiuxB1WyGD4wpeRcl3MQ04U6OJz2VWQG1N3j7U+I5D+1nsy5ekdVt6JrV7m tggXx0QOfqmvgBoSccSw8rg/YEzuEB/OINSsEuUaTm59l2iKkSsY25iP+Ek646Y/MDUFQkwn+ 2qgCHYdDWtZ+Wg9DskRVgv5hDllbb0FYjT/UbC7Kfwawsmh0ZVmrogyz1A/UaHQel8LMlZYXW zuLDXI/V07PNksN9WgnKCyCSR+0=
Archived-At: <https://mailarchive.ietf.org/arch/msg/l4s-discuss/WB3r5AAi88XjkHP0t2Lf8lKbPLo>
Subject: Re: [L4s-discuss] Irregularities in results from L4S testing
X-BeenThere: l4s-discuss@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: "Low Latency, Low Loss, Scalable Throughput \(L4S\) " <l4s-discuss.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/l4s-discuss>, <mailto:l4s-discuss-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/l4s-discuss/>
List-Post: <mailto:l4s-discuss@ietf.org>
List-Help: <mailto:l4s-discuss-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/l4s-discuss>, <mailto:l4s-discuss-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 06 Sep 2023 07:41:29 -0000

Hi Matteo,


> On Sep 5, 2023, at 21:44, Matteo Guarna S303434 <matteo.guarna@studenti.polito.it> wrote:
> 
> Greetings,
> 
> I am currently conducting research for my thesis on the L4S suite. As part of my research, I have deployed a simple testbed to examine the behavior of a TCP-Prague data flow when deployed in conjunction with a TCP-Cubic flow on a congested, L4S-capable network link.
> 
> For the network configuration and host setup, I have utilized the source code available at the following GitHub repository:
> 
> https://github.com/L4STeam/linux/tree/testing .
> 
> While my initial tests have been generally successful, I have encountered two specific issues:
> 
> 1 - The TCP-Prague and TCP-Cubic flows do not seem to equitably share available bandwidth. In some cases, TCP-Prague appears to consume up to two/thirds of the channel's capacity.

See https://github.com/heistp/l4s-tests sections network bias and RTT unfairness. At its heart the DualQ is a (weighted/conditional) priority scheduler with a default 10/1 weight for the L- over the C-queue, there exist realistic scenarios in which the heuristics L4S employs to deliver more equitable sharing break down and capacity sharing regresses closer to the underlaying priority ratio. The crux here is that while L4S argues that it is possible to disentangle latency priority and throughput priority, that is simply incorrect (if a packet is sent it will both consume a transmit opportunity/latency and it will also consume some amount of throughput*). During the IETF ratification process the argument was more or less: L-queue traffic does not fully starve C-queue traffic and that is enough. Attempts at getting an actionable definition of what kind of balance would need to be struck or even a numerical definition of starvation failed.

*) So some coupling/linkage is unavoidable, and you need to be careful when using a priority scheduler here, unless the higher priority class capacity usage is restraint somehow there will be scenarios with that class getting a higher capacity share than predicted/expected. See https://ieeexplore.ieee.org/document/9954450 for an alternative design in which the lower latency class gains its lower average latency by essentially dropping within its own class/capacity share, but that design works by not employing a fixed conditional priority scheduler between the classes and it is currently not aimed for scalable transports so is in no way a drop-in replacement "L4S-AQM".


> 
> 2 - Upon inspecting the packets to assess the correctness of the protocol's behavior, I observed that the proportion of TCP-Prague ACK packets with the TCP ECE (Explicit Congestion Notification Echo) flag is approximately 5/9 of the total ACK packets, while the percentage of transmitted packets marked by the queue remains consistently at around 8%. While I did not anticipate a strict 1:1 ratio, this result still strikes me as peculiar.

	As said by others L4S uses a different CE feedback mechanism than rfc3168 ECN, instead of asserting ECE until a CWR is send back, AccECN will keep a count of received CE marks and will echo the current lowest three bits of this count back to the sender... even if up to 7? ACK packets are lost the sender will still get the correct CE count. Alternatively there is an AccECN TCP option that contains more precise/detailed ECN information. Not sure any OS out in the wild supports AccECN though.


> 
> Additionally, I noted that all TCP-Prague packets inherently carry the CWR (Congestion Window Reduced) flag by default. It appears to me (if I'm not mistaken) to be an intentional implementation choice by the developers, as detailed in the source code found at https://github.com/L4STeam/linux/blob/testing/net/ipv4/tcp_prague.c , specifically beginning at line 53. I would appreciate confirmation regarding this implementation choice and assurance that it does not adversely impact its compliance with the standard.
> 
> I extend my sincere gratitude in advance to anyone who can provide insights or assistance with these matters.
> 
> Best regards,
> 
> Matteo Guarna
> 
> 
> P.s.
> 
> I someone wants a more detailed insight regarding my testplant and my results, I had tried to ask for help by opening an issue on the repository's github, where I provided a more in-depth description of my experiment. The conversation is available here:
> 
> https://github.com/L4STeam/linux/issues/21
> 
> -- 
> L4s-discuss mailing list
> L4s-discuss@ietf.org
> https://www.ietf.org/mailman/listinfo/l4s-discuss