Re: [tcpm] volunteers to draft QUIC-related text for draft-ietf-tcpm-prr-rfc6937bis?
Christian Huitema <huitema@huitema.net> Wed, 28 August 2024 03:50 UTC
Return-Path: <huitema@huitema.net>
X-Original-To: quic@ietfa.amsl.com
Delivered-To: quic@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 7DF90C151094; Tue, 27 Aug 2024 20:50:04 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.906
X-Spam-Level:
X-Spam-Status: No, score=-1.906 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
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 7mk52xlhsW62; Tue, 27 Aug 2024 20:50:00 -0700 (PDT)
Received: from semf13.mfg.siteprotect.com (semf13.mfg.siteprotect.com [64.26.60.176]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 30445C14F70D; Tue, 27 Aug 2024 20:49:56 -0700 (PDT)
Received: from smtpauth02.mfg.siteprotect.com ([64.26.60.151]) by se03.mfg.siteprotect.com with esmtp (Exim 4.92) (envelope-from <huitema@huitema.net>) id 1sj9gu-008ssj-Bw; Tue, 27 Aug 2024 23:49:55 -0400
Received: from [192.168.1.112] (unknown [172.56.169.64]) (Authenticated sender: huitema@huitema.net) by smtpauth02.mfg.siteprotect.com (Postfix) with ESMTPSA id 4Wtr5K1j9Xz2YQR6s; Tue, 27 Aug 2024 23:49:41 -0400 (EDT)
Message-ID: <596b4d98-394b-453b-8c43-1cd6fd237242@huitema.net>
Date: Tue, 27 Aug 2024 20:49:38 -0700
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: [tcpm] volunteers to draft QUIC-related text for draft-ietf-tcpm-prr-rfc6937bis?
To: Neal Cardwell <ncardwell=40google.com@dmarc.ietf.org>, tcpm <tcpm@ietf.org>, quic@ietf.org, draft-ietf-tcpm-prr-rfc6937bis@ietf.org, tcpm-chairs <tcpm-chairs@ietf.org>, Matt Mathis <matt.mathis@gmail.com>, Yuchung Cheng <ycheng@google.com>, Nandita Dukkipati <nanditad@google.com>, Ian Swett <ianswett@google.com>, Martin Duke <martinduke@google.com>
References: <CADVnQy=+Hv3caNumVMzzZVMsyohHc4YrfMsDxx8X2+P2fFAeVg@mail.gmail.com>
Content-Language: en-US
From: Christian Huitema <huitema@huitema.net>
In-Reply-To: <CADVnQy=+Hv3caNumVMzzZVMsyohHc4YrfMsDxx8X2+P2fFAeVg@mail.gmail.com>
Content-Type: text/plain; charset="UTF-8"; format="flowed"
Content-Transfer-Encoding: 7bit
Authentication-Results: mfg.siteprotect.com; auth=pass smtp.auth=huitema@huitema.net
X-Originating-IP: 64.26.60.151
X-SpamExperts-Domain: mfg.outbound
X-SpamExperts-Username: 64.26.60.150/31
Authentication-Results: mfg.siteprotect.com; auth=pass smtp.auth=64.26.60.150/31@mfg.outbound
X-SpamExperts-Outgoing-Class: unsure
X-SpamExperts-Outgoing-Evidence: Combined (0.31)
X-Recommended-Action: accept
X-Filter-ID: Pt3MvcO5N4iKaDQ5O6lkdGlMVN6RH8bjRMzItlySaT+hhcqiBLDCIOtf9qC7f33IPUtbdvnXkggZ 3YnVId/Y5jcf0yeVQAvfjHznO7+bT5xk7a5+Ng1lB41N9VxwiJWZLJ4jZrcc4c4yyf39JQqM8fp/ PodEhwI3Hd9xHbtb+QrqFbO/lA3UTPSSoV56R4ObaiNMI1PlJ3658KXWysKBE64JmG4XsQVIUPyi LmSzfu07mM4xHJza4fZMnnhK34rGYhY6AD11oLcdPy4+ir/XYFwPtkAbkPPjAMnMLZ0LLyWNfAVH qIV1jHxT2jynxqcFEZyBi4qZja8pDF8oCkUgpV38VEgwZ7zlbK9EvW+d6nVTs7xgBM+ZUzCPOq4J dKznE7WWalh1Z88LD4OI7IFcx9DTt475A1Zezcl/1RzpDoNgWikYzXQg4ZCYrgaTwPkCqdxPGiWV Y5hS7I8WYDzEZGjN6I35IW2cBI9CUEKsHa8k4Ndu06h2Q8QP5GQeNUYfwsjeLE1IDmqqDhKu0HMF Im/bWfgucjnNmABpGhD9TTu4G33FoN0wxm4Orcw1VS0UHr+Nk5Ppz09HAykfmflzMZLDrkU04HNu E4ewywcImK3WMSsU9dEFctCwX4ye0JTAtyQlQH4a/ZzSRcLh9P6B6056If0TejjpTfVspxQg0/36 4qhe5DcpJTxz6XaUqSpQPEg+PVRTiaxPY52n0Pp/8+9oGUcDX8tbtt/QP7yvPqD99GmYH/gUpGBm Ig8GX1MOhxwUlOHLzckmB1GGGgwn0V0ScG5QKhUmYwC5plMqN0vcy8BFh+JufJrwsKmKW6bHDD3F IhTuAhKS3I764tGyz8/cIFLAlztG2QLIGu6Z0vQY4L7u6QJ/jXXAPItovk04Cax2dXRk8KyZrm1X KM1HGA4gbtLIAGF/GtjkOCXuwYW1Oa20E6zmSIJWtHvrBbt/rSOIPpeqwlm2NDGXIJ2x7BVECLT+ +c9t46Cs5Aza+18xLCNp5foQVZKDnDFjWU0eQoS/ipY4C3GvcRsLUvvkM5U+ZfmiZZhHaMRX4aC8 yZhmkAq9TeFFQ5vwghpJWaPoYAjPvM+kpiZ7Wea7Z5Bf6UB7va8VNfADIgkGA/1NIBBlpvsHuKYS ZZJWrfSRdSppGBZ9WqzVCVc3XCLdApIlvsjtkeE/GqocQMDlts79IWu/GbeSXB90E4Kx92O23Kyj vls/XYAj/pamsvSXzk/DQmo7dczRt/cddT/5/p5ga0QzktdGbaWWY8tfDrNXYTlhUr/c6h1jnifc +vIfOvSWugTiZUr9jJhgIra1kzwOZ5qcpkLXKKbJUQG5lliKUWJItPZyOCuNRMHSi6Vr7d/DyKT9 NadvA6Ixg4dk9fQdVkHxR6oD8ykuMeZoeSI/Soe8PxUyX/JrCckSgd/vo7Ek0f2iyAbCm5XdCLxn xkWJC4g=
X-Report-Abuse-To: spam@se02.mfg.siteprotect.com
Message-ID-Hash: AFTYRGRI7TCLWJZFOPE55GJO4ASS5A56
X-Message-ID-Hash: AFTYRGRI7TCLWJZFOPE55GJO4ASS5A56
X-MailFrom: huitema@huitema.net
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-quic.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
X-Mailman-Version: 3.3.9rc4
Precedence: list
List-Id: Main mailing list of the IETF QUIC working group <quic.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/T7NoxFpG4iRrIMnyS_i94YtALGY>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic>
List-Help: <mailto:quic-request@ietf.org?subject=help>
List-Owner: <mailto:quic-owner@ietf.org>
List-Post: <mailto:quic@ietf.org>
List-Subscribe: <mailto:quic-join@ietf.org>
List-Unsubscribe: <mailto:quic-leave@ietf.org>
On 8/27/2024 8:47 AM, Neal Cardwell wrote: > This is a quick note to see if there is interest in suggesting QUIC-related > text for draft-ietf-tcpm-prr-rfc6937bis, "Proportional Rate Reduction for > TCP": > https://datatracker.ietf.org/doc/draft-ietf-tcpm-prr-rfc6937bis/ > > At TCPM at IETF 120 in July, there were a few people suggesting that it > would be nice if the prr-rfc6937bis draft had a section explaining how PRR > could be implemented for QUIC. Here's the discussion, if you are curious > about the context: > https://www.youtube.com/watch?v=eF_Qa475ag8&t=2553s > > Are there any folks with QUIC implementation experience who are interested > in volunteering to write a few paragraphs for the prr-rfc6937bis draft to > add a section explaining how PRR could be implemented for QUIC? Maybe the urgency is not that big. The text in RFC 9002 says: Implementations MAY reduce the congestion window immediately upon entering a recovery period or use other mechanisms, such as Proportional Rate Reduction [PRR <https://www.rfc-editor.org/rfc/rfc9002.html#PRR>], to reduce the congestion window more gradually. If the congestion window is reduced immediately, a single packet can be sent prior to reduction. This speeds up loss recovery if the data in the lost packet is retransmitted and is similar to TCP as described in Section 5 <https://www.rfc-editor.org/rfc/rfc6675#section-5> of [RFC6675 <https://www.rfc-editor.org/rfc/rfc9002.html#RFC6675>]. So, it is a MAY, with an informational reference. As weak a claim as you can make it. Moreover, many implementers take RFC 9002 (QUIC RECOVERY) with a grain of salt. The loss recovery part is fine, but the congestion control part is an adaptation of Reno, because the WG charter stated that only Reno would be considered. Some implementations do support Reno as an option, but most deployments use Cubic or BBR. For those, the only mandate that apply are those in RFC 9000, which are very generic. In the section 1, Overview, we find: "QUIC depends on congestion control to avoid network congestion. An exemplary congestion control algorithm is described in Section 7 <https://www.rfc-editor.org/rfc/rfc9002#section-7> of [QUIC-RECOVERY <https://www.rfc-editor.org/rfc/rfc9000.html#QUIC-RECOVERY>]". Section 9.4 specifies that when multiple paths are used, congestion control is "per path"; that requirement is kept in the QUIC multipath expension draft. There are a couple of complicating factors. First, while loss detection is rather similar to TCP, retransmission and flow control are very different: QUIC can send data on several parallel streams, different flow control variables apply per stream and globally, and retransmission operates at the frame level, not the packet level. Different streams may have different priorities, and those priorities also affect which data is repeated first -- or maybe not repeated at all. Then there are the differences between implementation in the kernel, like TCP, and implementations in a user process, like QUIC. Some things are easier, such as managing memory or handling fine grained timers. Other are most costly, in particular sending packets through the socket API, which leads to desire to use features like GSO or sendmmsg and send packets in batches. To come back to PRR, the main reference in RFC 9000 is in section 4.2. on flow control limits, which 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 7.7 <https://www.rfc-editor.org/rfc/rfc9002#section-7.7> of [QUIC-RECOVERY <https://www.rfc-editor.org/rfc/rfc9000.html#QUIC-RECOVERY>] for a discussion of how a sender can avoid this congestion." Different implementations may treat that problem differently. The general agreement is to do some form of pacing. The implementation that I maintain uses a leaky-bucket style pacing, in which the size of the bucket allows for sending reasonable batches of packet, and the rate of the bucket matches a pacing rate either computed directly (e.g., with BBR) or derived from Congestion Window size and RTT (e.g., for Cubic and Reno). Other implementations make their own choices. AFAIK, there is no big demand inside the QUIC WG to standardize that. > There was also a suggestion (sensible, IMHO) to set a two-month timeout, > and ship the draft without QUIC text if we don't get a contribution before > then. And that was a little over one month ago, so let's set a timeout of > one month from now: Sep 27th. If we get a contribution of a QUIC section by > Sep 27th, 2024 (any time zone) then we'll add that to the draft. Otherwise, > I think the consensus was to try to progress without a QUIC section. That seems very reasonable. The TCPM group should publish a TCP related specification. If it does replace RFC6937, QUIC developers will read it instead of or in addition to the RFC6937 reference of RFC 9002. -- Christian Huitema
- volunteers to draft QUIC-related text for draft-i… Neal Cardwell
- Re: [tcpm] volunteers to draft QUIC-related text … Christian Huitema