Re: [iccrg] Fairness mechanism of BBRv2

Neal Cardwell <ncardwell@google.com> Thu, 28 March 2019 23:06 UTC

Return-Path: <ncardwell@google.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 48D32120434 for <iccrg@ietfa.amsl.com>; Thu, 28 Mar 2019 16:06:06 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -17.501
X-Spam-Level:
X-Spam-Status: No, score=-17.501 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, ENV_AND_HDR_SPF_MATCH=-0.5, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, USER_IN_DEF_DKIM_WL=-7.5, USER_IN_DEF_SPF_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id uXLEQ6lFjpY7 for <iccrg@ietfa.amsl.com>; Thu, 28 Mar 2019 16:06:03 -0700 (PDT)
Received: from mail-ot1-x332.google.com (mail-ot1-x332.google.com [IPv6:2607:f8b0:4864:20::332]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 4E4F712042B for <iccrg@irtf.org>; Thu, 28 Mar 2019 16:06:03 -0700 (PDT)
Received: by mail-ot1-x332.google.com with SMTP id e80so334262ote.5 for <iccrg@irtf.org>; Thu, 28 Mar 2019 16:06:03 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=CxzdjDwlaBJUkyDXbYkDKvSN02cV+9HovnxhKRHT9E0=; b=q6FhDEyRCFlqGcStgKfWStxJvEIxzGUUxc1tn+OBeZkm/618mMfLu8w/uLCHVUYMiS tmvNQUYQxGnlddxxiAhXE09if0j1wPkm6EeB5gEUz7RsQRuFYotvzEtdurKJPQJJyq8U X3LK7epwlriaWQs6Oiz4bXzthfhbp3Y7DXR4OHkOxgQaEBakWFp5AtiiNYBnbjxxa+dZ kvyc/uV68FGpcmxSwY1G+CMY3fGqwyWZ/fAI7bxy3afUZbk3ssAZm/2FX+xnFnCQ5R0B Pd7Cet80MAVfd6W1FT03VaFTlxIggXP8rRGS5MGfbbMXiDdt4EzhhoeiLdxeWx1AL/2f X3YA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=CxzdjDwlaBJUkyDXbYkDKvSN02cV+9HovnxhKRHT9E0=; b=qfPhaEXmWLcE2zZSzBf3GdXbIg4NUH0FOLQp2iHMRvWbbKKTJVFEF5md5XwfAkNuxb TUiruwXDrYd8CDmCLtXGCoT3EGwrUdf/QbIxjhu2G/GxaYRXh9ayb8aEmOueWhgfBmGm 0dsN5DF2re6JYz0DmSKE93NDhrUVPEvHodEZcgdtx4pMDNAa7R9sMu/hkuzFSxOVV3kH CYiZ9Bh/aQ2pt88JqhCUloc11El2W7jH+HT1XWbpUnjLK98aaArLvecQGbg23yfwNsDu teC4NqZ0TIyxpjBSCNmiqDghZvsRw/NtwhxOXiT+sPPscuXANgFJ40wgxxfqNJF88RII Pw5g==
X-Gm-Message-State: APjAAAW0vIPhjtWnqSKwkqSbC7ICOh1GHc1UeLQyIPzjD7I4hMTZojKV BiBX02CmZfVTL+TqzSrMdtrwcHtApk5QRBWCZwW5rg==
X-Google-Smtp-Source: APXvYqza7J9o8cB/dZQT3djq/GBDSYf263ucODFKMd0PPrh4MSEqCj/IP0vLfSShkw12pGg8+C9mdHj6Hbl4HsaxnNI=
X-Received: by 2002:a9d:4d89:: with SMTP id u9mr34178897otk.71.1553814362315; Thu, 28 Mar 2019 16:06:02 -0700 (PDT)
MIME-Version: 1.0
References: <2992479c-d4bd-9647-384f-cad5f5b119bf@kit.edu> <CADVnQynMDGpa54XL3L12H56asS+Y5E3UFimmS2d9RoEKPeDpeA@mail.gmail.com> <668e5315-314f-439f-b7b3-25264e853af5@kit.edu>
In-Reply-To: <668e5315-314f-439f-b7b3-25264e853af5@kit.edu>
From: Neal Cardwell <ncardwell@google.com>
Date: Fri, 29 Mar 2019 00:05:44 +0100
Message-ID: <CADVnQynqb3X=HUH=z-EtJ0XsKWWnuxjmOCpipbsrh+_Km2U4qw@mail.gmail.com>
To: Mario Hock <mario.hock@kit.edu>
Cc: "iccrg@irtf.org" <iccrg@irtf.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Archived-At: <https://mailarchive.ietf.org/arch/msg/iccrg/W2BJGjTI1GILoQdUSZDAAZLLEfk>
Subject: Re: [iccrg] Fairness mechanism of BBRv2
X-BeenThere: iccrg@irtf.org
X-Mailman-Version: 2.1.29
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: Thu, 28 Mar 2019 23:06:06 -0000

On Thu, Mar 28, 2019 at 7:11 PM Mario Hock <mario.hock@kit.edu> wrote:
>
> Neil, thanks for the quick answer.

Hi, Mario,

Thanks for the excellent points.

> Yes, I would be very interested in the algebraic analysis and simulation
> scripts/graphs. (Some further questions inline.)

OK, sure, I will try to put that together and send it out. (Though I
think we are on the same page about that part, based on your remarks
further down in your e-mail.)

> Am 28.03.19 um 18:18 schrieb Neal Cardwell:
> > Hi Mario,
> >
> > Yes, that's right. The basic idea is:
> >
> > (a) In a bottleneck that is providing loss or ECN signals, the BBRv2
> > flows will be doing a MD (multiplicative decrease) in the volume of
> > in-flight data (cwnd). As with the MD in Reno or CUBIC, this leaves an
> > amount of unused headroom (in the buffer and/or bottleneck link) that
> > is larger for high-rate flows, and smaller for low-rate flows. So the
> > convergence dynamics are somewhat analogous to CUBIC, which also uses
> > an MD and then super-linear increase process.
>
> In CUBIC we have, let's call it, a generalized form of AIMD (additive
> increase, multiplicative decrease). In CUBIC the increase is not
> additive but still does not depend on the current CWnd size.
>
> It's the combination of "equal" (non CWnd dependant) increase and
> multiplicative (CWnd dependant) decrease that converges to fairness.
> What's increase of BBRv2 here?

We tried to describe the flavor of the increase behavior on slide 25
of today's slide deck:
  https://datatracker.ietf.org/meeting/104/materials/slides-104-iccrg-an-update-on-bbr-00

In the current design, the basic idea is that in any given round trip
time of probing beyond inflight_hi, the cwnd is set to:
  inflight_hi + inflight_probe
where inflight_probe starts at 0, and then grows exponentially per
round: 1, 2, 4, 8... packets.

That increase constraint does have the nice property you mention where
the cwnd increase at any instant does not depend on the current cwnd
size.

> > (b) In a bottleneck that has a deep buffer and is not providing loss
> > or ECN signals, the BBRv2 flows will be converging toward approximate
> > fairness using the same MI/MD  rate-based scheme used in BBRv1. The
> > basic reason that the flows pull toward fairness is that in each round
> > of probing, the MI probing from small flows produces a larger
> > proportional increase in their bandwidth estimate than does the MI
> > probing from large flows. Here the dynamics are a bit analogous to a
> > market with a fixed-rate set of sales transactions; if all the players
> > are trying to increase their market share (sales rate) by stocking
> > shelves with an MI relative to their sales in the last interval, the
> > small start-up producers will find it much easier to grow
> > multiplicatively for a while, while the bigger players will end up
> > noticing their market share is shrinking multiplicatively due to
> > losing customers to the smaller players.
>
> [1] has shown that MIMD does not lead to fairness. What is different in
> your case?

AIMD is the headline scheme in [1], but FWIW [1] says that a MIMD-like
scheme can work as long as there is an additive component as well.
Specifically, on page 9 it says:

"Proposition 1. In order to satisfy the requirements of distributed
convergence to efficiency and fairness without truncation, the linear
decrease policy should be multiplicative, and the linear increase
policy should always have an additive component, and optionally it may
have a multiplicative component with the coefficient no less than
one."

So basically, according to [1] you need MD, and AI, but you can also
have an optional MI component as well.

> Actually, going over my own formulas from [2], I might got a clue:
>
> rate_new = 1.25 * rate_old * (OUT / IN)
>
> (IN = input rate at bottleneck, OUT = output rate of bottleneck)
>
> So, the idea is: When a large flow is probing, IN is larger than when a
> small flow is probing. Thus rate_new / rate_old is smaller for a large
> flow than for a small flow. As long as they probe at distinct time.
>
> Does this coincide with your findings?

Yes, exactly, that "rate_new / rate_old is smaller for a large flow
than for a small flow, as long as they probe at distinct time" dynamic
is what I was trying to describe in the (b) case.

best,
neal

> [1] D.-M. Chiu und R. Jain, „Analysis of the increase and decrease
> algorithms for congestion avoidance in computer networks“, Computer
> Networks and ISDN Systems, Bd. 17, Nr. 1, S. 1–14, Juni 1989.
>
> [1]M. Hock, R. Bless, und M. Zitterbart, „Experimental Evaluation of BBR
> Congestion Control“, in 2017 IEEE 25th International Conference on
> Network Protocols (ICNP), 2017.
>
> Best, Mario
>
>
> > I believe the (a) part is fairly closely analogous to the essence of
> > the well-studied CUBIC dynamics. For the (b) part, we have an
> > algebraic analysis and simulation scripts/graphs, if there is
> > interest. I might be able to post those after the IETF if there is
> > interest.
> >
> > best,
> > neal
> >
> >
> > On Thu, Mar 28, 2019 at 5:30 PM Mario Hock <mario.hock@kit.edu> wrote:
> >>
> >> Neal,
> >>
> >> as just discussed during the ICCRG session (jabber question), can you
> >> give some details about the "convergence to fairness" mechanism of BBRv2
> >> (intra-protocol)?
> >>
> >> Did I get you right that either MD (multiplicative decrease) or MI
> >> (multiplicative increase) leads to fairness, depending on buffer size?
> >>
> >> Also, did you mean increase/decrease of CWnd or of rate?
> >>
> >> Best, Mario
> >>
> >> _______________________________________________
> >> iccrg mailing list
> >> iccrg@irtf.org
> >> https://www.irtf.org/mailman/listinfo/iccrg