[iccrg] LEDBAT++, rLEDBAT, and slowdowns

Neal Cardwell <ncardwell@google.com> Wed, 24 July 2019 00:36 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 EA7761200B9 for <iccrg@ietfa.amsl.com>; Tue, 23 Jul 2019 17:36:30 -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_HELO_NONE=0.001, SPF_PASS=-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 2W7Cbp6eaBTU for <iccrg@ietfa.amsl.com>; Tue, 23 Jul 2019 17:36:28 -0700 (PDT)
Received: from mail-oi1-x22b.google.com (mail-oi1-x22b.google.com [IPv6:2607:f8b0:4864:20::22b]) (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 C9B0B1209A8 for <iccrg@irtf.org>; Tue, 23 Jul 2019 17:36:28 -0700 (PDT)
Received: by mail-oi1-x22b.google.com with SMTP id v186so33739384oie.5 for <iccrg@irtf.org>; Tue, 23 Jul 2019 17:36:28 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:from:date:message-id:subject:to:cc; bh=cJrfn2s7QBndfBHSEElzeSU3JuCBJwE1gVQVCxUmXnM=; b=KWr1OasCty2o/3TpOCfWfwwxAiM7i5OWS0mWmb8/RAMgn1bmCJPa7Qf4reS4YyvI2x izxIaO3rxPOMWXOC/7aYLLuPEkvvMBrerMBpD2QuaT0AAhvIKjSwsfO+N+IK3b5JwI0d 9h/xSsCEpSFMMxmXT7VO8oiQvtnRlYsBBmh9SVUYY98ASh8pceR70dORvpi1NC8hA0i4 zPSd8VuELvZIyE5eFTM8W3MICyAdQkYZ9+zEdJsqnb7y3zQptHSda3s77Z8iQLs9KmL0 AL7Y9ITOlToTMN41hcXrJwtTHhCUiiHwzCrPJZEed4wfYIZ7YIWg6uBNLt9hPklQLRso cjTw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to:cc; bh=cJrfn2s7QBndfBHSEElzeSU3JuCBJwE1gVQVCxUmXnM=; b=keM3W91YX9fQzrg50KFqrUTkj6QvRCkL4ARNm/u69xx4vhzfOMW3cqYt0W4dd0pm0P f3wUHkcWizKc+3eKmdoqq5Ui+oMqFK10mLVC7kWcRn98EiwEqkgeD3n9YGbyLrzvY5KE 5VK+M8LxJeF3MAAXpPjNHyK7S4qMzM+SLIs6RQJJkLhLHMl7xL1NDPdirWaT2pmw9j7Z 6KoIyonnYi3SEl9IIRHUpQ0YWjOCIuSukq6BxvPS0GJlZ/bZ2D8XwTleSy23bauZxixL cxTdSi2WtdGMhOyokhFtqTsMICEuFSYuc0ftMBfpnAfOfiRudB9EgH0afUKy4TwIEHzI sMkg==
X-Gm-Message-State: APjAAAWz9XlEnDQuE6XU00S5WN8QJRVy56v37duQLNhBrkXYtex4BNYI 5xLziw7TtymA6PtsCEIzDi/pf6+tk/E9v5tsrYrmyqJSAUaYXpyd
X-Google-Smtp-Source: APXvYqyPjgnwd/MFdJBi7Sl1pdwn8rbI6tJRdu3Qy5jZ1FDByUtRyd4txOPPoi+kwabZy7VaVKZqauWz7V9y89YUAOU=
X-Received: by 2002:aca:4ad2:: with SMTP id x201mr38637055oia.129.1563928587488; Tue, 23 Jul 2019 17:36:27 -0700 (PDT)
MIME-Version: 1.0
From: Neal Cardwell <ncardwell@google.com>
Date: Tue, 23 Jul 2019 20:36:11 -0400
Message-ID: <CADVnQynJY8xkqkghhCWhPpbF+4Ev_3c7OZf_tDEb_J5xr0FV9A@mail.gmail.com>
To: iccrg IRTF list <iccrg@irtf.org>, Praveen Balasubramanian <pravb@microsoft.com>, marcelo bagnulo braun <marcelo@it.uc3m.es>
Cc: Yuchung Cheng <ycheng@google.com>
Content-Type: text/plain; charset="UTF-8"
Archived-At: <https://mailarchive.ietf.org/arch/msg/iccrg/Na2BK4aTlin01gIN7O2fQ9H0C04>
Subject: [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: Wed, 24 Jul 2019 00:36:31 -0000

Thanks for today's presentations on LEDBAT++ and rLEDBAT. These are
nice work, and I agree they are important improvements on LEDBAT, and
worth pursuing as working group efforts, with a goal of standardizing
these algorithms in some form.

I had two related questions on slowdowns:

(1) Regarding LEDBAT++ and slowdowns:
https://tools.ietf.org/html/draft-balasubramanian-iccrg-ledbatplusplus-00#section-4.4
To try to avoid latency drift in the base delay, the LEDBAT++ design
describes periodic slowdowns that cut cwnd to 2 packets. As far as I'm
aware, the only way the flows would be able to refresh an accurate
notion of the base delay would be if there is at least one slowdown
during the base delay filter window in which the bottleneck queue is
essentially empty. But if a LEDBAT++ flow has a fair share of the BDP
that is less than the depth of the queue, then having that flow remove
all of its packets from the path, by itself, will not fully drain the
bottleneck queue (the packets from the remaining flows that are not in
slowdown will be enough to fill the pipe and create a non-zero queue,
obscuring the base delay).

So AFAICT uncoordinated slow-downs won't drain the queue; then the
only approach I can think of to achieve this would be for the flows to
coordinate in some fashion to all do a slowdown during overlapping
time intervals (as in BBR's PROBE_RTT mechanism). But AFAICT in the
design described in the draft, if there are many flows then I did not
see a mechanism described in the draft that would achieve this.

The IETF 100 LEDBAT++ slides show a multi-flow example, on page 14:
  https://datatracker.ietf.org/meeting/100/materials/slides-100-iccrg-ledbat-low-priority-tcp-congestion-control-in-windows-01
But that example has just two flows. And two flows is an easy case for
this kind of scheme: if there are two flows that are sharing a link
equally, then when one of them stops sending then this will almost
always drain the queue quite well.

Do you have test results you can share with more flows, showing how
the slowdown mechanism works for cases with more flows? Or is there a
way to add more text in the draft to explain how the slowdown design
in LEDBAT++ handles this issue already?

(2) The rLEDBAT draft:
https://tools.ietf.org/html/draft-bagnulo-iccrg-rledbat-00
mentions: "rLEDBAT estimates the Base RTT (i.e. the RTT when there is
no queuing delay) as the minimum observed RTT in the last n minutes."
However it doesn't seem to mention a slowdown mechanism to try to
refresh the estimate of the base RTT. Does it have such a mechanism?
AFAICT rLEDBAT, like LEDBAT++, would need a mechanism to do a
coordinated cut in cwnds, like BBR's PROBE_RTT mechanism, if multiple
rLEDBAT flows are to all maintain a good estimate of the base RTT of
the path. Any thoughts on that question?

Apologies if I'm missing something on either of these issues. :-)

And thank you both for presenting these respective algorithms. I think
both algorithms are important advances, and standardizing something
like each of them would be valuable for the community.

thanks,
neal