Re: [Webtransport] Flow Control for high-throughput Streams

Victor Vasiliev <vasilvv@google.com> Tue, 26 March 2024 11:17 UTC

Return-Path: <vasilvv@google.com>
X-Original-To: webtransport@ietfa.amsl.com
Delivered-To: webtransport@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B7BB3C14F708 for <webtransport@ietfa.amsl.com>; Tue, 26 Mar 2024 04:17:58 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -17.607
X-Spam-Level:
X-Spam-Status: No, score=-17.607 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, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=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 ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 8uq4pQdg5tlE for <webtransport@ietfa.amsl.com>; Tue, 26 Mar 2024 04:17:54 -0700 (PDT)
Received: from mail-pl1-x62f.google.com (mail-pl1-x62f.google.com [IPv6:2607:f8b0:4864:20::62f]) (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 E2C3FC14F6E1 for <webtransport@ietf.org>; Tue, 26 Mar 2024 04:17:54 -0700 (PDT)
Received: by mail-pl1-x62f.google.com with SMTP id d9443c01a7336-1e062f3a47bso113395ad.1 for <webtransport@ietf.org>; Tue, 26 Mar 2024 04:17:54 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1711451874; x=1712056674; darn=ietf.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=l75+uc6t72wPG4dcmNCnmLR6iX+d0WHLOH94BxCbWe0=; b=2oo4NEEi6K/O5aIK3iya0BW4yht7qxjccxUFseGVVIy543AouKT4eROQBATpayipIy r+XDyAMR5kdALXtE71XMBT5EiNQms4Yz3+OGByUHqyRxIk7y9dmsBcH8maGyLrNoEJB/ jSzkgRk9dvcAzNXdF54/H9AcSFVER7RgHP6oilrQ1JCLW+ijDU/eZrrf1PELsJKnM/ov 6PloA/M/0Ty9tea6f+L92DO/MjMvPHreBkAkNKbgdpngzDcEhN267kg6VNFTN2c7xZBF p5Z2vsHT/FXv42Z33X39xUiycb+us99owytshtrYLUwZNzfeNbCTCQyeubbYec29uCkk NOWA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711451874; x=1712056674; 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=l75+uc6t72wPG4dcmNCnmLR6iX+d0WHLOH94BxCbWe0=; b=bBBkPGDbYv8O+tC0v+WacdJsNoxijf0plVxnTkKTe95h9fM2pZIqfceLmuJibMfp39 VPT177M7zbQQnUyIySv4QYGXnliO856P1CPIHJ2qPMkn3mgAUZufZrQfVc+Klx/huky6 bgCNbZSZiGgYg8GER0NeRtj9m//XoHyrYqGRGSPtoDewjwbGF6jO9+4LWnuxYg/XTOWo TivYS8awQZcvlUWl3Jg07wkE6+UPugD7HLDe9z+3kmPBjNRr6T9IfHjvO+v+H64aC18u GLfJU2NAnHnwvhlwegpLO3bKBNaBFJSJFOlqN0BnklKyPCYKQDFRsRDhIepxJZVQVphB QZxQ==
X-Gm-Message-State: AOJu0YyazGS4hd8JLLQx/1HaqODWLr7MPGaN+7VVIp4Xb2IptRlaW98N E5/fny3szEQVeehSxySoveFAhrOp9P4f7t54ZfAWZ80XXSluI46A29Yq0G5rlgaBfJBGj4UGspE Ok5OpCzG6ZP1has7XZnGeQlsKbtABFbuaEXUBlrtd1DJWvCX94Q==
X-Google-Smtp-Source: AGHT+IGbWJZTzRbVivPBZ0CyBdXBTxxxMkOSAJJWmXYyyT9OZlb8GK/VHjZIjrOWMg4Knm9kHZC7R/YuXROx6+B5veg=
X-Received: by 2002:a17:902:d507:b0:1e0:bbd0:bd06 with SMTP id b7-20020a170902d50700b001e0bbd0bd06mr111308plg.29.1711451873772; Tue, 26 Mar 2024 04:17:53 -0700 (PDT)
MIME-Version: 1.0
References: <CAOYVs2qshgTP6SaB0KtwvMixQ_pHKYUajfHzDqf1eG04-hAk7w@mail.gmail.com>
In-Reply-To: <CAOYVs2qshgTP6SaB0KtwvMixQ_pHKYUajfHzDqf1eG04-hAk7w@mail.gmail.com>
From: Victor Vasiliev <vasilvv@google.com>
Date: Tue, 26 Mar 2024 07:17:42 -0400
Message-ID: <CAAZdMacsXzueOFvnTeJ3zhWmdPC5f_aoPN59QMutmWsW+vLTaw@mail.gmail.com>
To: Marten Seemann <martenseemann@gmail.com>
Cc: WebTransport <webtransport@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000fd550d06148e70a5"
Archived-At: <https://mailarchive.ietf.org/arch/msg/webtransport/TlpebNjTmFM8_sZ6ps4gvvbZ1cY>
Subject: Re: [Webtransport] Flow Control for high-throughput Streams
X-BeenThere: webtransport@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: WebTransport WG <webtransport.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/webtransport>, <mailto:webtransport-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/webtransport/>
List-Post: <mailto:webtransport@ietf.org>
List-Help: <mailto:webtransport-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/webtransport>, <mailto:webtransport-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 26 Mar 2024 11:17:58 -0000

I think the key property in this scenario is that it's very sensitive to
loss of window updates, not necessarily the HOLB on the control stream.

One approach here is that whenever you send a new capsule on the control
stream, you could retransmit all of the previous ones that aren't
acknowledged; since those capsules are small, the resulting stream frame
will normally fit into a single packet.  Now that I think about it, this
approach can be applied to any latency-sensitive stream with a lot of small
writes: you could have a flag that says "if this stream has less than an
MTU worth of unacked data, send all of it every time".

  -- Victor.

On Tue, Mar 19, 2024 at 5:47 AM Marten Seemann <martenseemann@gmail.com>
wrote:

> After the discussion we had in yesterday’s session, I’ve spent some more
> time thinking about how and in which situations the HoL blocking introduced
> by putting flow control capsules on a control stream might hurt
> performance. Unfortunately, this is not an edge case, but a fairly common
> scenario.
>
> Consider an application transferring a large amount of data on a single
> stream. In QUIC, the receiver would select or auto-tune the stream receive
> window to slightly exceed the connection's BDP, assuming it sends
> MAX_STREAM_DATA frames multiple times per RTT. This ensures that
> flow-control doesn’t block the transfer. If MAX_STREAM_DATA is sent less
> frequently, a window slightly larger than the BDP is needed to be able to
> fully utilize the available bandwidth.
>
> For connections not terminating at a CDN's edge, BDPs can be quite large
> due to the longer RTTs. For instance, a 200ms RTT connection with a
> bandwidth of 1 Gbps has a BDP of 25 MB.
>
> When packet loss occurs on the WebTransport control stream (in upstream
> direction), no capsules can be read until this packet loss is repaired,
> which takes at least (since loss detection might take some time as well) 1
> RTT. This applies even if the control stream is given the highest priority
> when sending. For a BDP-sized flow control window, this means that the
> high-throughput stream (in downstream direction) is now blocked on flow
> control until the retransmission arrives (i.e. for at least 1 RTT).
>
> The solution suggested in yesterday's session, "just use higher flow
> control limits," would mean increasing the stream flow control window to
> (at least!) 50 MB from 25 MB for our example. This approach seems
> unappealing from a resource allocation standpoint.
> --
> Webtransport mailing list
> Webtransport@ietf.org
> https://www.ietf.org/mailman/listinfo/webtransport
>