[quicwg/base-drafts] QUIC Transport: Flow Control (#3722)

Gorry Fairhurst <notifications@github.com> Thu, 04 June 2020 11:18 UTC

Return-Path: <noreply@github.com>
X-Original-To: quic-issues@ietfa.amsl.com
Delivered-To: quic-issues@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B85FA3A0888 for <quic-issues@ietfa.amsl.com>; Thu, 4 Jun 2020 04:18:39 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.101
X-Spam-Level:
X-Spam-Status: No, score=-3.101 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=github.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 VD4OLSn9TsBD for <quic-issues@ietfa.amsl.com>; Thu, 4 Jun 2020 04:18:38 -0700 (PDT)
Received: from out-28.smtp.github.com (out-28.smtp.github.com [192.30.252.211]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 35AB43A0886 for <quic-issues@ietf.org>; Thu, 4 Jun 2020 04:18:38 -0700 (PDT)
Received: from github-lowworker-1dbcc59.ash1-iad.github.net (github-lowworker-1dbcc59.ash1-iad.github.net [10.56.105.54]) by smtp.github.com (Postfix) with ESMTP id 365208C0F23 for <quic-issues@ietf.org>; Thu, 4 Jun 2020 04:18:37 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1591269517; bh=cPu/5zPeiS7xHIiYw1fHLfAAAXsY5Y06XLRQebG7p7M=; h=Date:From:Reply-To:To:Cc:Subject:List-ID:List-Archive:List-Post: List-Unsubscribe:From; b=ladfcq+M0RNalVqgciX2ZMTxsKvy0tioatUC37eijVhOQTeIV6iF1URFdp9dcTV8l g901eU3D85ms1lQ1krM+7XgfJeqNmrxyc/zHHyqmBxWCIg98OBBDm7NXrf2kPlCEzI i8LA4rt/bQuUTVpc2MWawP1lWx3FJIwdOmbeSmzo=
Date: Thu, 04 Jun 2020 04:18:37 -0700
From: Gorry Fairhurst <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+AFTOJK2L65DVMRO4MP4PHLF44S4Y3EVBNHHCLGB6ZU@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/issues/3722@github.com>
Subject: [quicwg/base-drafts] QUIC Transport: Flow Control (#3722)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5ed8d88d25859_7b473fef678cd96c3437d3"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: gorryfair
X-GitHub-Recipient: quic-issues
X-GitHub-Reason: subscribed
X-Auto-Response-Suppress: All
X-GitHub-Recipient-Address: quic-issues@ietf.org
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic-issues/pjQH10jb77aRbPoVOjKKtsBb1x0>
X-BeenThere: quic-issues@ietf.org
X-Mailman-Version: 2.1.29
List-Id: Notification list for GitHub issues related to the QUIC WG <quic-issues.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/quic-issues>, <mailto:quic-issues-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic-issues/>
List-Post: <mailto:quic-issues@ietf.org>
List-Help: <mailto:quic-issues-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/quic-issues>, <mailto:quic-issues-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 04 Jun 2020 11:18:40 -0000

Section: Flow Control {#flow-control}
The present text only states the reasons why flow control limits are needed, and resource commitments. It does not yet motivate the use of adding credit when this is needed - which is also an important design consideration for a user of QUIC transport, as it is for http. 
- That is, the section should also state the performance implications of too little credit - i.e. the tradeoff, by explaining:  “Advertising too little credit will cause the stream to become blocked and can limit performance when it constrains  a stream path using a path that has large bandwidth delay product”.

Section: Flow Credit Increments
The following could be taken as a general guidance, when the ID says: “As an optimization, an endpoint could send frames related to flow control only when there are other frames to send or when a peer is blocked, ensuring that flow control does not cause extra packets to be sent.”
- I do not agree. This appears an optimisation for minimising resource use. It will I expect have a serious negative impact on performance where the path RTT is large, and that case also needs to be mentioned. This is an area where guidance is needed, since the way TCP operates is not described in the RFC series and mistakes in this part of the code can have very serious impacts on the performance and dynamics of applications, as well as the patterns of traffic on the wire.

Section: Flow Credit Increments
The following could be taken as a general guidance, when the ID says: “When a sender receives credit after being blocked, it might be able to send a large amount of data in response, resulting in short-term congestion; see Section 6.9 in {{QUIC-RECOVERY}} for a discussion of how a sender can avoid this congestion.” 
- I think this sentence may be well-intended but can be read as encouraging an unsafe practice. There is considerable latitude in how to design flow control, but read the current words as suggesting that the induced congestion from large updates are actually OK - which I do not think the IETF should say. 
- To me this requires words of caution to avoid the large bursts.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/issues/3722