Re: [iccrg] LEDBAT++, rLEDBAT, and slowdowns

Neal Cardwell <ncardwell@google.com> Fri, 06 September 2019 15:25 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 9C206120CF1 for <iccrg@ietfa.amsl.com>; Fri, 6 Sep 2019 08:25:48 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -17.5
X-Spam-Level:
X-Spam-Status: No, score=-17.5 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_HELO_NONE=0.001, 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 jWh_m9B58vCJ for <iccrg@ietfa.amsl.com>; Fri, 6 Sep 2019 08:25:46 -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 0A75D120CEF for <iccrg@irtf.org>; Fri, 6 Sep 2019 08:25:46 -0700 (PDT)
Received: by mail-ot1-x332.google.com with SMTP id y39so6064733ota.7 for <iccrg@irtf.org>; Fri, 06 Sep 2019 08:25:46 -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=kyMai2Dlm27/edNG9iQRLKapOZfgmi8iRufR8pZTRgg=; b=RgWESA8oTJjrAFsmgleZGQDJpMaW7Q4Vw79WKLD0cN4ATGbNG+eia8zC8mW6PibyG/ ZpfUqIFpuh52RfXp7GSrR9MntuLMSfSxYrGxRFQlPAqoPpGk06CaDQK/iCGNxVJo5YMs NuMCgzgvCNtYfjqnNzL1fwmPMCG9GAB7VS6BU1jYum9gz4Mb8v78mo/1ks/cK6K7yjZ+ sO8K5YPBO8VYLyTgvmqv8n9vBbrFlMABE1Z6IzsM5IYbRWZuFCINwe0ORqIMA/bpwMqG 2VHuDDQ685rv5G/2kjei+3OnjhwfRX0Ok2ErBu7w6/su/k+k3AJb2idJShj8qYj0Mj/F RS6A==
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=kyMai2Dlm27/edNG9iQRLKapOZfgmi8iRufR8pZTRgg=; b=Rc8jg66UA/k7qxj0xQ7mxB60D8AqE3oabh3Ox97mzA3mO6blVbjpiuNjP2QiPU63Qp Yb5E/S7WpiheMMgeard9AF8dZEKZo2Gh+2acIT3sjUuwxYsbGqaD2nRARwqkNv5LSjVO Q1yzG67THj+6pz3GQNe0fxXkeCY334lvviGmOP5z3GF7Xz6aTiVlWPXW5XJfRpr2BEj6 Kzfmr/xDO6Dg2VgDeTDti0uKAYXZnyoSHm/psKDyTPGZAsJSv/9ZSbTa5NQlnronUREE 1/E3X6S3Y6/bBupMO+Hs/OJmE9tKYJIcDc35jZkEoqKuzsgMgw16imulsEzGsW0HJm3L xxbQ==
X-Gm-Message-State: APjAAAV5d8OBeJjfC8fEgeP3yNaZzUXOco7xGpMph6wGyG7DbIms/ViP C9zFCWJYQEkihzjV1wQLQ9qyoPLGXPDjaF057hh0Lg==
X-Google-Smtp-Source: APXvYqxUyqNooPYOnxvcLZRFQoZjV3lOHYQdvbM6KWixl3O9u9mDNLN7fTLvrTMjBvLAYmiwVEe94skR1v77FT/Gbts=
X-Received: by 2002:a9d:5a85:: with SMTP id w5mr7731925oth.302.1567783544910; Fri, 06 Sep 2019 08:25:44 -0700 (PDT)
MIME-Version: 1.0
References: <CADVnQynJY8xkqkghhCWhPpbF+4Ev_3c7OZf_tDEb_J5xr0FV9A@mail.gmail.com> <c4b76af5-abbe-3184-24ce-03a2c0b9544b@it.uc3m.es> <CADVnQy=3FqEjqipX6thgjcjN8YPTOqiduYKU2GccXHwS+a3wVA@mail.gmail.com> <be98e323-506f-bdc8-a128-72c9f4aa5ead@it.uc3m.es> <3862e86e-e588-0cca-38e8-4ea23ef2b4c7@it.uc3m.es>
In-Reply-To: <3862e86e-e588-0cca-38e8-4ea23ef2b4c7@it.uc3m.es>
From: Neal Cardwell <ncardwell@google.com>
Date: Fri, 06 Sep 2019 11:25:28 -0400
Message-ID: <CADVnQymqHHg4cF94fu81opaBibmShVrsZ3cLyVPcHir0p=Kv3Q@mail.gmail.com>
To: marcelo bagnulo braun <marcelo@it.uc3m.es>
Cc: iccrg IRTF list <iccrg@irtf.org>, Praveen Balasubramanian <pravb@microsoft.com>, Yuchung Cheng <ycheng@google.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Archived-At: <https://mailarchive.ietf.org/arch/msg/iccrg/o7hpp4iZXT_Ai3YYccERtrn8nD4>
Subject: Re: [iccrg] LEDBAT++, rLEDBAT, and slowdowns
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: Fri, 06 Sep 2019 15:25:49 -0000

On Wed, Sep 4, 2019 at 6:15 AM marcelo bagnulo braun <marcelo@it.uc3m.es> wrote:
>
> Apologies for replying to my own email, but i would like to take
> something back, see below...
>
> El 03/09/19 a las 17:57, marcelo bagnulo braun escribió:
> > I guess what I'm trying to get at is that:
> >>
> >> (1) AFAICT the LEDBAT++ and rLEDBAT algorithms so far do not seem to
> >> provide a bound on "the additional queueing delay added by the LEDBAT
> >> flow", in the case where there are several  LEDBAT++/rLEDBAT flows and
> >> the fair share of in-flight data is less than the queue depth.
> >> Instead, the group dynamics would be such that the queue would
> >> gradually but steadily ratchet up until the buffer is full. This does
> >> not seem to meet the goals expressed in RFC6817 ("limiting the
> >> consequent increase in queueing delay on that path...avoiding
> >> interference with the network performance of competing flows") or the
> >> LEDBAT++/rLEDBAT drafts.
> >
> >
> > right, the additional queueing delay added by a single flow is
> > bounded, but if you keep on adding LEDBAT flows one after the other,
> > the total added queuing delay is not bounded indeed.
>
> Let me take this back.
>
> So, let's consider how would this situation you describe would happen.
>
> The scenario that I have been able to identify where this would happen
> would be for example the following.
>
> We have two LEDBAT++ flows (let's assume there is no other traffic for now).
>
> They have managed to accurately measure the base delay and thus they are
> fairly sharing the bottleneck link and inducing half of the target delay
> each.
>
> After n minutes, there is one of the flows (f1) that forgets the oldest
> minute of history, the one that contained the accurate measurement of
> the base delay.
>
> This implies that it will now record as base delay the minimum delay
> observed in the AIMD process, which is the one caused by both flows
> having half of the maximum window (I am assuming both flows are
> synchronized).
>
> The first consequence of this is that flow f1 will take a larger share
> of the bottleneck capacity.
>
> In any case, when the queuing delay measured by f1 is larger than the
> target, f1 will reduce its window to half. Depending on the relationship
> between the target delay and the real base delay, it is possible that
> when f1 reduces it window in half, the resulting delay is still larger
> than its current minimum, resulting in the increase of the queueing
> delay that you mentioned. Since this happens every n minutes,this can
> cause the queueing delay to grow unbounded.
>
> Is this the type of scenario you had in mind?

Yes, that is the type of scenario I had in mind.

Basically, if the fair share of inflight data is less than the standing queue,
then having a single flow cut its inflight will not drain the queue, and thus
no single flow can reveal the true two-way propagation delay by itself.

So an algorithm that relies on a windowed min_rtt estimate and individual
flows cutting by themselves will gradually ratchet up the level of queuing,
causing the queuing delay to grow without bounds.

> However, if we apply the slowdown described in LEDBAT++
> (unsynchronized), then f1 would reduce its window and because f1 is the
> one expelling the other flows out, this would allow f1 to have a more
> accurate measure of the base delay, enabling the AIMD fairness to kick
> in and preventing the increase of the queueing delay.

As noted above, if the fair share of inflight data is less than the
standing queue, when f1 reduces its window it will not drain the queue
fully, so its base delay estimate will ratchet up to a value that
includes the queueing delay from all the other flows queued at
the bottleneck, even if all the others are LEDBAT++ flows.


> In summary, because errors in estimating the queuing delay causes one
> flow to grow more than the others, when this particular flow slows down,
> will allow a more accurate measure of the base delay, enabling AIMD
> fairness mechanisms to reconverge to a fair split.
>
> So, I am not convinced that it is not enough with the slow down proposed
> in LEDBAT++.

When you say a slow-down "will allow a more accurate measure of the
base delay," I think a key question is: more accurate than what, exactly?
An uncoordinated slow-down will allow a more accurate measure
of the base delay than the most recent RTT samples, but it will not
allow a measure that is more accurate than (or even matching)
the current base delay estimate.That's because uncoordinated
slow-downs can cause feedback loops, where flows measure
ever-increasing RTTs from the queues created by other flows
that are also unable to "anchor" their base delay estimates, so
are also allowing ever-increasing amounts of data in flight.

> I am not sure this is true for all combinations of parameter values, i
> need to look into this.

Yes, I think further testing of LEDBAT++/rLEDBAT in multi-flow scenarios
would be worthwhile.

A simple scenario that should illustrate this issue:
 o RTT of 100ms
 o bottleneck with 10*BDP of buffer space (allowing 1 sec of queuing)
 o 3 bulk LEDBAT++/rLEDBAT flows

Per the dynamics discussed above, my theory is that in such a scenario
the queuing delay will grow until the buffer is oscillating near full and
there is ~1sec of queuing in the steady state. That is, rather than
"Low Extra Delay" there will be 1sec of extra delay. :-)

best,
neal