Re: [tsvwg] [iccrg] CCID5 - BBR for DCCP

Neal Cardwell <ncardwell@google.com> Tue, 09 November 2021 16:12 UTC

Return-Path: <ncardwell@google.com>
X-Original-To: tsvwg@ietfa.amsl.com
Delivered-To: tsvwg@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 421353A0AA0 for <tsvwg@ietfa.amsl.com>; Tue, 9 Nov 2021 08:12:30 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -17.599
X-Spam-Level:
X-Spam-Status: No, score=-17.599 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, DKIM_VALID_EF=-0.1, ENV_AND_HDR_SPF_MATCH=-0.5, HTML_MESSAGE=0.001, 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=unavailable 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 cbOAIC89k6zT for <tsvwg@ietfa.amsl.com>; Tue, 9 Nov 2021 08:12:25 -0800 (PST)
Received: from mail-qv1-xf32.google.com (mail-qv1-xf32.google.com [IPv6:2607:f8b0:4864:20::f32]) (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 6CF2A3A0A7B for <tsvwg@ietf.org>; Tue, 9 Nov 2021 08:12:25 -0800 (PST)
Received: by mail-qv1-xf32.google.com with SMTP id j9so14522759qvm.10 for <tsvwg@ietf.org>; Tue, 09 Nov 2021 08:12:25 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=AP1drqJSxLkzPFRfp4bTea1AzX4aBYDxb5bKeezfvJI=; b=iSXBIshdpQ8pXlKVKYKX6o7n7IWGUcgeFB2qelgLsF8fkWHe6HSv/cRnI+RFBM63cU t89w7EhdTqamDCIgMy95LfyuHSaMbDn5HqtjEHtuFIeYiKfOLNBNAa1MhAOa3fgiKtn8 fdR52SH/o6+Blmv52zJePqWswZFRZsEgQ01R4tuySWqLWtzuVqmAQ+TMBDqveBAoMVMQ PJDu52qUBinkqiOUss9HHyUWAlfd9SzKxOZB80QVYKATcLFK5v3bv7mW87pAaeWlVhQb T9OvCKeTe5K38zmID32grqz+KaUxVeRrO3vDOIH0OG0rVt4difGYHC0Qpniay5g3tZTI rUXA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=AP1drqJSxLkzPFRfp4bTea1AzX4aBYDxb5bKeezfvJI=; b=vTkYJLhG3pUMO71nQSMZtW9WHS0OdVaYFsq8k1C1KkFO0Ct+RgtoZcjkpMnm1K76j4 49CEvWa0a28u9vDzP1ruojaWmduzI6LI/Da0b3DLC6i8rKUiPNiloGLK1wQMiAAlU94Y cDyJ/T9GD9Sno+iH+nsev5nHRDLWdjRkyt1nxHla+o0VnsyZQ5adICgLiCkDoDiNqOA5 RNYFShDGSnSNMmK6CVZ9+MlM2MfK7uD4alsBZccIx0vCTZ07LEiRuGFJ7BmVZcoMFcos lNufb1zmfsncYZCcr8jVmgyTMHd6HPO01AVxXOq2bukgDvo/I4Z3ivXtYgbqAEN/tsUR WoCA==
X-Gm-Message-State: AOAM533hV3SsEhcErtNkkC18qPVEaCY3qKBbIaFV9/tRJiSjJtlq4+gw ppBwgtfI6RY1htX1iSu6qLWvl+zi/oMB4m+ZESb6wO3U9Q5Vbg==
X-Google-Smtp-Source: ABdhPJy3DtluSLDy9u4Q30K27KCuAM3fkY8Um7X9P4ggIcXhV99rEO5VVA2M2my74AuFNJ3NB/dVj8LgviycllOmqqI=
X-Received: by 2002:ad4:5409:: with SMTP id f9mr8133712qvt.56.1636474342165; Tue, 09 Nov 2021 08:12:22 -0800 (PST)
MIME-Version: 1.0
References: <BEXP281MB02956CFC0AED6356E7956071BE929@BEXP281MB0295.DEUP281.PROD.OUTLOOK.COM>
In-Reply-To: <BEXP281MB02956CFC0AED6356E7956071BE929@BEXP281MB0295.DEUP281.PROD.OUTLOOK.COM>
From: Neal Cardwell <ncardwell@google.com>
Date: Tue, 09 Nov 2021 11:12:05 -0500
Message-ID: <CADVnQymP=tR4H-Tg-d_F0fCvx3j_9KDzz2hx3NfA7zrkvNCydw@mail.gmail.com>
To: nathalie.romo-moreno@telekom.de
Cc: iccrg@irtf.org, tsvwg@ietf.org
Content-Type: multipart/alternative; boundary="000000000000d9bb1905d05d5f2f"
Archived-At: <https://mailarchive.ietf.org/arch/msg/tsvwg/5-QekyibGbZJEBQhgB-rb9tgXdY>
Subject: Re: [tsvwg] [iccrg] CCID5 - BBR for DCCP
X-BeenThere: tsvwg@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Transport Area Working Group <tsvwg.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tsvwg>, <mailto:tsvwg-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tsvwg/>
List-Post: <mailto:tsvwg@ietf.org>
List-Help: <mailto:tsvwg-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tsvwg>, <mailto:tsvwg-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 09 Nov 2021 16:12:31 -0000

On Tue, Nov 9, 2021 at 10:03 AM <nathalie.romo-moreno@telekom.de> wrote:

> Dear all,
>
>
>
> As discussed yesterday, at the ICCRG session I would like to bring here 2
> topics to discussion.
>
>
>
> In a first instance, we would like to start the process to bring BBR as a
> new CCID profile for DCCP. As an initial step, we have submitted the draft
> https://www.ietf.org/id/draft-romo-iccrg-ccid5-00.txt and we would be
> happy to receive any feedback or comment on it. It is worth to mention that
> our goal is not to propose definitions related to the Congestion Control
> algorithm itself, which is defined protocol agnostic at
> https://datatracker.ietf.org/doc/draft-cardwell-iccrg-bbr-congestion-control/,
> but to outline the necessary requirements to use it within DCCP.
>

Thanks for this nice work! It's great to see BBR implementations in a wider
variety of transports.

We have proposed to add the following text to the next rev of the BBR draft
to reference your work, alongside the descriptions of TCP and QUIC
implementations:
---
An open source implementation of BBR is also available for DCCP [RFC4340]
[draft-romo-iccrg-ccid5].
...
[RFC4340] Kohler, E., Handley, M., and S. Floyd, "Datagram Congestion
Control Protocol (DCCP)", RFC 4340, DOI 10.17487/RFC4340, March 2006, <
https://www.rfc-editor.org/info/rfc4340>.
...
[draft-romo-iccrg-ccid5] Romo, N., Kim, J., and M. Amend, "Profile for
Datagram Congestion Control Protocol (DCCP) Congestion Control ID 5", Work
in Progress, Internet-Draft, draft-romo-iccrg-ccid5, 25 October 2021, <
https://tools.ietf.org/html/draft-romo-iccrg-ccid5>.
---
Please let us know if you see any issues with that.

As you note, the intent with the BBR draft is to keep the description of
the algorithm protocol-agnostic. And I think it would be good to keep BBR
protocol-agnostic for as long as possible, to improve the odds of keeping
implementations for various transports in sync.



> The second topic I would like to discuss, is related to the problem found
> during the implementation of BBRv1 for DCCP. To summarize it, BBR requires
> the restoration of the cwnd when leaving the probeRTT phase, that
> restoration implies a big change (from a low to a high value) of the cwnd,
> and therefore a previous synchronization of the DCCP sequence and
> acknowledgement validity windows (RFC4340
> <https://datatracker.ietf.org/doc/html/rfc4340> section 7.5). Such
> synchronization is per DCCP RFC4340 a reliable negotiation to be confirmed
> and therefore takes at least one RTT, increasing the duration of the
> probeRTT phase. In the presentation slides
> <https://datatracker.ietf.org/meeting/112/materials/slides-112-iccrg-ccid5-an-implementation-of-bbr-congestion-control-algorithm-for-dccp-00>
> you can find a more detailed description of the problem as well as the
> temporary solution that has been implemented. Here we would like to bring
> to consideration the possibility of enhancing or modifying the DCCP
> Sequence window negotiation process.
>

Thanks for highlighting this issue. One possible idea for addressing the
interactions between the DCCP Sequence window negotiation process and the
BBR ProbeRTT mechanism would be as follows: instead of basing the sender's
requested DCCP Sequence Number validity window strictly on the cwnd value,
the sender could try to continually maintain a Sequence Number validity
window  big enough to handle the anticipated volume of in-flight data in
the "near future" For BBR in ProbeRTT, this would be something like the
following, which would take into account both the current cwnd and the fact
that upon exiting ProbeRTT the flow will expect to raise its cwnd back to
something in the neighborhood of its previous cwnd before ProbeRTT:

In Internet Draft notation:
   anticipated_volume = max(cwnd, BBR.prior_cwnd)

In Linux TCP notation:
   anticipated_volume = max(tp->snd_cwnd, bbr->prior_cwnd)

That could avoid the approach mentioned in the slides, of a "Pro-active
update of local values even if the confirmation has not been received yet
(feature negotiation not finished)".

Does that sound like a plausible approach?

best regards,
neal