Re: [iccrg] Will Fair Queuing change Congestion Control?

Maximilian Bachl <maximilian.bachl@gmail.com> Tue, 03 January 2023 22:18 UTC

Return-Path: <maximilian.bachl@gmail.com>
X-Original-To: iccrg@ietfa.amsl.com
Delivered-To: iccrg@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id CD5FAC14CF0F for <iccrg@ietfa.amsl.com>; Tue, 3 Jan 2023 14:18:59 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.095
X-Spam-Level:
X-Spam-Status: No, score=-2.095 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_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-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=gmail.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 ofAfX15sCxLy for <iccrg@ietfa.amsl.com>; Tue, 3 Jan 2023 14:18:55 -0800 (PST)
Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com [IPv6:2a00:1450:4864:20::62c]) (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 5A86AC14CEE1 for <iccrg@irtf.org>; Tue, 3 Jan 2023 14:18:55 -0800 (PST)
Received: by mail-ej1-x62c.google.com with SMTP id ud5so77726388ejc.4 for <iccrg@irtf.org>; Tue, 03 Jan 2023 14:18:55 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=HwqVoYtWTa5rPyfLTnhXy9G0KWgyym/MULR5vvaQcEQ=; b=DYClbv65Mtwz4R9g4TEEG81gStAmA+J9ThYA9ZsX5eXRLf2snRXDR619qZ6eqMf2ew FgNzwAaOnDUC/G+WVjAmJT0XQYUxH+YP1Y0jDgLlUJDQFqyIwDyXZaBURew+lnya4dI8 uxciqi52CKEs6YnHE44wSGLac3OSv20f/5molWkwKFhllilebdB3xMFmBbIK+mADN02u IrSRm8Jrg8FMZ7ER6vngvrNiUa6tdCfTyw2hbBrkOlu6dCCfkWMu/JjcyfpeNnHEitfz i4HcGbSlenldtqozdZFqJs49zKL7wec1qvxpUHWsOkvmH0YlrWOEG4B0NG5IX2/Iads1 oIsg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=HwqVoYtWTa5rPyfLTnhXy9G0KWgyym/MULR5vvaQcEQ=; b=4XzoKrG+Ia0rzQAPCYBX49bOxA1DInOqdW0OD1zAAbGf7fk/GPwkMawItkwcvUaVCj XKw3ZLTU3mSLKT7IExzHjaEtfs2xYBc9hUXrhwqSHZyAk6/aqnpBifRAqYjP4PwQMupe blvbqSlk93Zok+hCp/HaUahOJL/3Z+FGALCO+vtDnEU0LNgE/TsaFFCob0eGIHEFtGiR +8NGmvgk9doNw/yRTwFXqE7kQ4cqJ5G1UGGSzNjOC66MMIuwf7i1+luhCxhlFUik9POb 9QDskLXGnYtzw4Uy/+kVJLSI9oN+wWEMG+OcL3z2AwK6K3cWe6zLIx3yCJu9Qe7yh8iE o8fw==
X-Gm-Message-State: AFqh2kqYzn2aEbhjDapcI8UBzl450tOdOzgQlscGXt3wZI8Ewb16+nhQ p+VRUaC/EnQBEqRygiy2shJlzIz8o9P33wLwDHo=
X-Google-Smtp-Source: AMrXdXvpT6wk3LIBv+ihOGta6WXuS6Cn2ZSuw+OsO9Ipq6Q810dcoW44+E/lZQRzXFUslGhgvovHzlFeJ3iv9hIzUPI=
X-Received: by 2002:a17:906:7f12:b0:834:5c4a:26cb with SMTP id d18-20020a1709067f1200b008345c4a26cbmr5231497ejr.653.1672784333700; Tue, 03 Jan 2023 14:18:53 -0800 (PST)
MIME-Version: 1.0
References: <CAEXAmbs1WwvJ7761eSkSeT_w1GfwnbPL9Tcja8K7fxZHxAiMWA@mail.gmail.com> <E8CE0E38-BC35-416D-8D56-FEA1416968D6@apple.com>
In-Reply-To: <E8CE0E38-BC35-416D-8D56-FEA1416968D6@apple.com>
From: Maximilian Bachl <maximilian.bachl@gmail.com>
Date: Tue, 03 Jan 2023 23:18:42 +0100
Message-ID: <CAEXAmbtjjjwqApdeXKL30x5WKaJ7Fs1_tWvbBdFUScRmqM9cXA@mail.gmail.com>
To: Vidhi Goel <vidhi_goel@apple.com>
Cc: iccrg@irtf.org
Content-Type: multipart/alternative; boundary="000000000000ff032a05f16373e3"
Archived-At: <https://mailarchive.ietf.org/arch/msg/iccrg/_Qb9dSNpNOEPT1lZx-zTn1gwNg0>
Subject: Re: [iccrg] Will Fair Queuing change Congestion Control?
X-BeenThere: iccrg@irtf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: "Discussions of Internet Congestion Control Research Group \(ICCRG\)" <iccrg.irtf.org>
List-Unsubscribe: <https://www.irtf.org/mailman/options/iccrg>, <mailto:iccrg-request@irtf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/iccrg/>
List-Post: <mailto:iccrg@irtf.org>
List-Help: <mailto:iccrg-request@irtf.org?subject=help>
List-Subscribe: <https://www.irtf.org/mailman/listinfo/iccrg>, <mailto:iccrg-request@irtf.org?subject=subscribe>
X-List-Received-Date: Tue, 03 Jan 2023 22:18:59 -0000

Hi Vidhi,

Thank you for your comments!

Few things to note, FQ expands to Flow Queue (not fair queueing) which
> means every flow (4 tuple) has a different queue. Priorities are
> implemented based on service classes, for example. Also, Apple devices are
> not the most common bottleneck on an end to end path.

I assumed "flow queuing" and "fair queueing" to be mostly synonymous, as
for example the fq_codel manual page in Linux calls it “fair queuing” (
https://man.archlinux.org/man/tc-fq_codel.8.en). To clarify, what I meant
is “flow queuing”.

Even if we assume there is enough deployment of flow queueing in the
> network, flows can hurt themselves by not responding to growing latency.
> This problem has been addressed in L4S drafts and I highly recommend
> reading them.

Endpoints could use delay-minimizing congestion control if they could be
certain that fair queuing is deployed at the bottleneck of a path. Thus, I
think they wouldn’t necessarily hurt themselves.

ECN combined with an immediate AQM combined with Prague congestion control
> is basically the idea of L4S.

I think that L4S can improve how congestion control is done. However, from
what I understand, it doesn't necessarily isolate flows. Thus a bad faith
actor could get an unfairly large share of bandwidth, which couldn't happen
when FQ were deployed. With FQ being deployed on a path, each flow could
also choose its own congestion control and whether it wants to prioritize
low delay or maximum throughput. That's why I think that exciting
possibilities open up when more vendors deploy FQ like Apple did.

Regards,
Max

On Tue 3. Jan 2023 at 20:45, Vidhi Goel <vidhi_goel@apple.com> wrote:

> Hello Max,
>
>
> Few things to note, FQ expands to Flow Queue (not fair queueing) which
> means every flow (4 tuple) has a different queue. Priorities are
> implemented based on service classes, for example. Also, Apple devices are
> not the most common bottleneck on an end to end path.
>
> Even if we assume there is enough deployment of flow queueing in the
> network, flows can hurt themselves by not responding to growing latency.
> This problem has been addressed in L4S drafts and I highly recommend
> reading them. ECN combined with an immediate AQM combined with Prague
> congestion control is basically the idea of L4S.
>
> Vidhi
>
> On Jan 3, 2023, at 9:20 AM, Maximilian Bachl <maximilian.bachl@gmail.com>
> wrote:
>
> Apple introduced fair queuing (FQ) on more than a *billion of devices* in
> the last years (https://blog.cerowrt.org/post/state_of_fq_codel/). I
> wonder if this could have an impact on congestion control. When there’s
> fair queuing at the bottleneck link of a path, the endpoints can use *delay-minimizing
> congestion control* and don’t have to worry about more aggressive
> senders.
>
> However, currently, there’s *no established mechanism* for endpoints to
> know of the *existence of fair queuing* on a path. There are some
> possibilities, though, how endpoints can be made aware of the existence of
> fair queuing:
>
>    - A *dedicated bit* in some packet header. For example, some ECN or
>    DSCP bits could be repurposed to indicate the existence of fair queuing at
>    the bottleneck. Drawback: It’s hard to convince people to
>    repurpose/introduce new bits and switches/routers have to support it.
>    - An *end-host-based mechanism* to detect fair queuing without the
>    involvement of switches/routers. I created a proof-of-concept
>    implementation of such a mechanism, which can detect the presence/absence
>    of fair queuing with an accuracy of > 95% (
>    https://arxiv.org/abs/2206.10561).
>    - *Closed ecosystems* in which all components are aware that there is
>    fair queuing: As a hypothetical example, let’s assume a user plays a game
>    on nvidia’s cloud-gaming platform on an iPhone. The phone is connected to
>    T-Mobile’s 5G network. Both the client on the iPhone as well as the server
>    in nvidia’s network know that there’s fair queuing on the path between the
>    client and the server, since they have an agreement with T-Mobile, which
>    controls the entire path. No extra bits in packet headers are needed, just
>    mutual agreement between the user’s device, the cellular network provider
>    as well as the server on the internet.
>
>
> If you have some opinions on whether fair queuing is going to change how
> we do congestion control, I’d be curious.
>
> Regards,
> Max
>
> _______________________________________________
> iccrg mailing list
> iccrg@irtf.org
> https://www.irtf.org/mailman/listinfo/iccrg
>
>
>