Re: [tcpm] 2nd WGLC for draft-ietf-tcpm-rfc8312bis

Vidhi Goel <vidhi_goel@apple.com> Fri, 18 February 2022 02:14 UTC

Return-Path: <vidhi_goel@apple.com>
X-Original-To: tcpm@ietfa.amsl.com
Delivered-To: tcpm@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E82F63A0ED8; Thu, 17 Feb 2022 18:14:05 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.672
X-Spam-Level:
X-Spam-Status: No, score=-2.672 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.576, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=apple.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 24mXDBw63gab; Thu, 17 Feb 2022 18:14:00 -0800 (PST)
Received: from rn-mailsvcp-ppex-lapp14.apple.com (rn-mailsvcp-ppex-lapp14.rno.apple.com [17.179.253.33]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 8C7FE3A0EFF; Thu, 17 Feb 2022 18:13:56 -0800 (PST)
Received: from pps.filterd (rn-mailsvcp-ppex-lapp14.rno.apple.com [127.0.0.1]) by rn-mailsvcp-ppex-lapp14.rno.apple.com (8.16.1.2/8.16.1.2) with SMTP id 21I2AOlQ032712; Thu, 17 Feb 2022 18:13:55 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=apple.com; h=from : message-id : content-type : mime-version : subject : date : in-reply-to : cc : to : references; s=20180706; bh=Vbagg+SB4airFkxnUDid6Z3NdwBKG2UWYZkKZEbIc3E=; b=YhSlgb206OvS4xMgmJByHLwVGHI/lEPy6izUTOcwwKcimRZKZR5e055v307pVsALMDam OipnUJohIKJpUW6hiFIq7tHWZQes91PMgKEePcrO0faSu5hk3aXcWGjQeAq6QShdgdOa llwyDgYHyHN+8ODOlz1AWLos7UKo8cWnEM0v6J/nq6a3Qq56tTRx42r45Xej64jz6Q98 1KEh65mVF+uO+BWzdaeziYNi4c9Pk3FLF1/8Qka5Y3cUEDPrgZUpoBsovr1znd4o2BSb B3zUXI2HHJ62XVmvBiusA/QMOWohQGc0X6+pkXRnA3P8PNw/3ei/YecfnorRMmf5IpT0 XQ==
Received: from rn-mailsvcp-mta-lapp02.rno.apple.com (rn-mailsvcp-mta-lapp02.rno.apple.com [10.225.203.150]) by rn-mailsvcp-ppex-lapp14.rno.apple.com with ESMTP id 3e8n9649s5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NO); Thu, 17 Feb 2022 18:13:55 -0800
Received: from rn-mailsvcp-mmp-lapp03.rno.apple.com (rn-mailsvcp-mmp-lapp03.rno.apple.com [17.179.253.16]) by rn-mailsvcp-mta-lapp02.rno.apple.com (Oracle Communications Messaging Server 8.1.0.12.20210903 64bit (built Sep 3 2021)) with ESMTPS id <0R7H00B5GA77D110@rn-mailsvcp-mta-lapp02.rno.apple.com>; Thu, 17 Feb 2022 18:13:55 -0800 (PST)
Received: from process_milters-daemon.rn-mailsvcp-mmp-lapp03.rno.apple.com by rn-mailsvcp-mmp-lapp03.rno.apple.com (Oracle Communications Messaging Server 8.1.0.12.20210903 64bit (built Sep 3 2021)) id <0R7H00P00A5KBV00@rn-mailsvcp-mmp-lapp03.rno.apple.com>; Thu, 17 Feb 2022 18:13:55 -0800 (PST)
X-Va-A:
X-Va-T-CD: 4b052db715e8685a04b558cbaeaf3790
X-Va-E-CD: 749c6e7503a1c30456497a36735b331a
X-Va-R-CD: 59a455eaeb25ffef4add4d7c725dcf79
X-Va-CD: 0
X-Va-ID: 3473874d-885d-4026-ac20-d85b55f60608
X-V-A:
X-V-T-CD: 4b052db715e8685a04b558cbaeaf3790
X-V-E-CD: 749c6e7503a1c30456497a36735b331a
X-V-R-CD: 59a455eaeb25ffef4add4d7c725dcf79
X-V-CD: 0
X-V-ID: 279c58e3-4c4e-461d-9697-2a4dea7c8df6
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.425, 18.0.816 definitions=2022-02-17_09:2022-02-17, 2022-02-17 signatures=0
Received: from smtpclient.apple (unknown [17.11.189.243]) by rn-mailsvcp-mmp-lapp03.rno.apple.com (Oracle Communications Messaging Server 8.1.0.12.20210903 64bit (built Sep 3 2021)) with ESMTPSA id <0R7H00TJ6A767600@rn-mailsvcp-mmp-lapp03.rno.apple.com>; Thu, 17 Feb 2022 18:13:54 -0800 (PST)
From: Vidhi Goel <vidhi_goel@apple.com>
Message-id: <60794576-5ECC-42F0-8422-9556644E16B4@apple.com>
Content-type: multipart/signed; boundary="Apple-Mail=_CE9EFBDC-2E4C-43DC-A4CA-6676BD14A505"; protocol="application/pkcs7-signature"; micalg="sha-256"
MIME-version: 1.0 (Mac OS X Mail 14.0 \(3654.100.0.2.11\))
Date: Thu, 17 Feb 2022 18:13:54 -0800
In-reply-to: <CADVnQymwCdm0NoD95SX8JpRXFok=qMygPrwaeTJ9z29dqH=Avw@mail.gmail.com>
Cc: "tcpm@ietf.org Extensions" <tcpm@ietf.org>, tcpm-chairs <tcpm-chairs@ietf.org>
To: Neal Cardwell <ncardwell=40google.com@dmarc.ietf.org>, Markku Kojo <kojo=40cs.helsinki.fi@dmarc.ietf.org>
References: <164318837039.21788.17451980682651967578@ietfa.amsl.com> <EEA435EC-AAAC-4899-8E94-2D54EDE5F72E@eggert.org> <CAAK044S9HQXvfvgM6mBuvOWJPHtCaa6xo6CoP2r8Vq61tKaY5g@mail.gmail.com> <alpine.DEB.2.21.2202120048000.4019@hp8x-60.cs.helsinki.fi> <CAAK044SUv2pjPSi_9jitNdtTHtGR-DVhiEn77yCf8M6B=bgKwQ@mail.gmail.com> <alpine.DEB.2.21.2202171538190.4019@hp8x-60.cs.helsinki.fi> <CADVnQymwCdm0NoD95SX8JpRXFok=qMygPrwaeTJ9z29dqH=Avw@mail.gmail.com>
X-Mailer: Apple Mail (2.3654.100.0.2.11)
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.425, 18.0.816 definitions=2022-02-17_09:2022-02-17, 2022-02-17 signatures=0
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpm/h3PK3j1PYCs68pO5drBCB0qZPho>
Subject: Re: [tcpm] 2nd WGLC for draft-ietf-tcpm-rfc8312bis
X-BeenThere: tcpm@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: TCP Maintenance and Minor Extensions Working Group <tcpm.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tcpm>, <mailto:tcpm-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tcpm/>
List-Post: <mailto:tcpm@ietf.org>
List-Help: <mailto:tcpm-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tcpm>, <mailto:tcpm-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 18 Feb 2022 02:14:07 -0000

I have a general question for the WG, are the "current practices" defined in https://datatracker.ietf.org/doc/html/rfc2914 <https://datatracker.ietf.org/doc/html/rfc2914> still current? We are 22 years ahead of the published date of this draft and there have been magnitude of advancements in congestion control algorithms at the hosts and what is the right way to measure conformance for a congestion control. A very interesting paper about how to quantify a new congestion control, which most might have read, "Beyond Jain's Fairness Index: Setting the Bar For The Deployment of Congestion Control Algorithms"

I skimmed through RFC 2914 and it references obsoleted drafts for what it calls conformant TCP. Like below:

For TCP, this
   means congestion control algorithms conformant with the current TCP
   specification [RFC793, RFC1122 <https://datatracker.ietf.org/doc/html/rfc1122>, RFC2581 <https://datatracker.ietf.org/doc/html/rfc2581>].


I don’t think we can continue to use old RFCs as a gold standard although we can use some the text as is if it still holds true.

>   Some of these may fail to implement
>   the TCP congestion avoidance mechanisms correctly because of poor
>   implementation [RFC2525].  Others may deliberately be implemented
>   with congestion avoidance algorithms that are more aggressive in
>   their use of bandwidth than other TCP implementations; this would
>   allow a vendor to claim to have a "faster TCP".  The logical
>   consequence of such implementations would be a spiral of increasingly
>   aggressive TCP implementations, or increasingly aggressive transport
>   protocols, leading back to the point where there is effectively no
>   congestion avoidance and the Internet is chronically congested.

For example, in this text quoted by Markku, I agree that we shouldn’t end up with algorithms that eventually lead to a chronically congested networks but at the same time, if a more aggressive approach provides better efficiency by ramping up a bit faster without leading to more congestion, then that shouldn’t be discouraged. Faster TCP doesn’t necessarily mean that will cause congestion, it could just mean, instead of waiting 100s of RTTs to get to full link utilization, it does so in much lesser number of RTTs.

In using Reno as a gold standard, we tend to forget that Reno is probably the cause of buffer bloat in the network. It basically requires network queues to be configured double the capacity in order to continue to have full link utilization after 50% reduction.
And again, this might not have been evident at the time Reno was developed. We have realized these problems with time and we should move away from continuing to use Reno as the only acceptable Proposed Stds track congestion control.


>   It is convenient to divide flows into three classes: (1) TCP-
>   compatible flows, (2) unresponsive flows, i.e., flows that do not
>   slow down when congestion occurs, and (3) flows that are responsive
>   but are not TCP-compatible.  The last two classes contain more
>   aggressive flows that pose significant threats to Internet
>   performance,


This second paragraph is also outdated. IIUC, TCP-compatible flows is equivalent to the RFC 2581 which is obsolete. I think we need to replace TCP-compatible with something else for two reasons:

1. TCP is not the only transport protocol out there. What about QUIC, SCTP?
2. Congestion control algorithms should be evaluated in the same way for different transport protocols. So, a better word could be, Conformant congestion control, one which once accepted as Stds Track should just work for any transport protocol.

Perhaps, we need to show more experimental / deployment data for Cubic to become Stds Track but we shouldn’t rely on RFC2914 from the year 2000 to decide the acceptance criteria. If we continue to do so, then even 100 years from now, RFC 5681 will be the only TCP-conformant / TCP-compatible congestion control as defined by RFC 2914 and the one and only Stds Track congestion control to ever exist. (Please let me know if I missed any other Stds Track congestion control)


Thanks,
Vidhi


> On Feb 17, 2022, at 8:13 AM, Neal Cardwell <ncardwell=40google.com@dmarc.ietf.org> wrote:
> 
> 
> 
> On Thu, Feb 17, 2022 at 9:42 AM Markku Kojo <kojo=40cs.helsinki.fi@dmarc.ietf.org <mailto:40cs.helsinki.fi@dmarc.ietf.org>> wrote:
> Hi Yoshi,
> 
> On Tue, 15 Feb 2022, Yoshifumi Nishida wrote:
> 
> > Hi Markku,
> > 
> > Thanks for the comments. I think these are very valid points. 
> > However, I would like to check several things as a co-chair and a doc shepherd before we
> > discuss the points you've raised.
> > 
> > In my understanding (please correct me if I'm wrong), when this draft was adopted as an WG
> > item, I think the goal of the doc was some minor updates from RFC8312 which include more
> > clarifications, minor changes and bug fixes. 
> > However, if we try to address your concerns, I think we'll need to invent a new version of
> > CUBIC something like CUBIC++ or NewCUBIC in the end. 
> > I won't deny the value of such doc, but, this seems not to be what we agreed on
> > beforehand.  
> > if we proceed in this direction, I think we will need to check the WG consensus whether
> > this should be a new goal for the doc.
> > 
> > So, I would like to check if this is what you intend for the doc or you think we can
> > address your points while aligning with the original goal.
> > Also, if someone has opinions on this, please share.
> 
> I think it is important that we remember the status of RFC 8312 and the 
> decades long process that has been followed in tsv area for new 
> TCP congestion control algorithms that have been proposed and submitted 
> to IETF. In order to ensure that new cc algos are safe and fair, the 
> process that has been followed for all current stds track TCP cc algos 
> has required that the cc algo is first accepted and published as 
> experimental RFC and only once enough supportive experimental evidence 
> has been gathered the doc has become a candidate to be forwaded to stds 
> track. We have even agreed on a relatively strict evaluation process to 
> follow when cc algos are brought to the IETF to be published as 
> experimental:
> 
> https://www.ietf.org/about/groups/iesg/statements/experimental-congestion-control/ <https://www.ietf.org/about/groups/iesg/statements/experimental-congestion-control/>
> 
> RFC 8312 was published as "Informational" and if I recall correctly the 
> idea was "just to publish what's out there" for the benefit of the 
> community. RFC 8312 was never really evaluated, particularly not in the 
> way new cc algos are supposed to be as per the agreed process.
> 
> I do not recall what/how exactly was agreed when rfc8312bis was launched 
> but I would be very interested to hear the justification why this doc 
> does not need to follow the process mentioned above but we would like to 
> propose IETF to publish a non-evaluated Informational doc to be published 
> "with minor updates", i.e., without actual evaluation, as a stds track 
> RFC? If the target really remains as PS then the bar should be even 
> higher than what is described for experimental docs in the above process 
> document, i.e, what we have followod for experimental to be moved to stds 
> track.
> 
> The only justification that I have heard has beed "because CUBIC has long 
> and wide deployment experience" and "the Internet has not smelted or that 
> "we should have noticed if there were problems". We must, however, 
> understand that in order to have noticeable bad impact CUBIC should cause 
> some sort of congestion collapse. Congestion collapse, however, is not an 
> issue with CUBIC nor with any other CC algo that applies an RTO mechanisms 
> together with correctly implemented Karn's algo that retains the 
> backed-off RTO until an Ack is received for a new (not rexmitted) data 
> packet. The issue is fairness to competing traffic. This cannot be 
> observed by deploying and measuring the performance and behaviour of CUBIC 
> alone. CUBIC being more aggressive than current stds track TCP CC would 
> just gives good performance results that one running CUBIC would be happy 
> with. One must evaluate CUBIC's impact on the competing (Reno CC) traffic 
> in range of environments which requires carefully designed active 
> measurements with thoroughly-analyzed results (as required by the above 
> process document, RFC 5033 and RFC 2914). What we seem to be missing is 
> this evidence on CUBIC's impact and that is something the IETF must focus 
> on, not just that whether CUBIC can achieve better performance than other 
> existing CCs. The latter has been shown in many publications and is the 
> majos focus in  many scientific papers proposing new algos.
> I appreciate a lot that CUBIC has been implemented/developped and 
> deployed for long and I wonder whether those deploying CUBIC have 
> unpublished results the wg could review before taking the decicion?
> 
> I suggest everyone to read carefully RFC 2914 Sec 3.2 and particularly 
> what it says about more aggressive (than RFC 5681) congestion control 
> algorithms:
> 
>   Some of these may fail to implement
>   the TCP congestion avoidance mechanisms correctly because of poor
>   implementation [RFC2525].  Others may deliberately be implemented
>   with congestion avoidance algorithms that are more aggressive in
>   their use of bandwidth than other TCP implementations; this would
>   allow a vendor to claim to have a "faster TCP".  The logical
>   consequence of such implementations would be a spiral of increasingly
>   aggressive TCP implementations, or increasingly aggressive transport
>   protocols, leading back to the point where there is effectively no
>   congestion avoidance and the Internet is chronically congested.
> 
> And:
> 
>   It is convenient to divide flows into three classes: (1) TCP-
>   compatible flows, (2) unresponsive flows, i.e., flows that do not
>   slow down when congestion occurs, and (3) flows that are responsive
>   but are not TCP-compatible.  The last two classes contain more
>   aggressive flows that pose significant threats to Internet
>   performance,
> 
> As I have tried to point out there are several features with CUBIC where 
> it is likely to be (or to me it seems it obviously is) more aggressive 
> than what is reguired to be TCP-compatible. I'm not aware of evidince 
> presented to tcpm (or IETF/IRTF) which shows opposite (and I happy to be 
> educated what I have missed).
> 
> You may take my comments to be a part of the expert review phase 
> performed by the IRTF/ICCRG for CUBIC. I'm not requesting to modify this 
> doc to CUBIC++ (or something) but it seems to be that this would be 
> necessary if this doc intends to become published as PS. For experimental, 
> I think it would need some addtioinal updates and record the areas 
> uncertainty and where more experimentation (clearly) is required.
> 
> Hi Markku,
> 
> Thanks for your careful argument above. Given your argument, in order to continue to make constructive progress on rfc8312bis without blocking for new research and experimentation, I would propose that we change rfc8312bis so that it remains "Informational" (like RFC8312) rather than the "Standards Track" status currently listed at:
> 
>   https://ntap.github.io/rfc8312bis/draft-ietf-tcpm-rfc8312bis.html <https://ntap.github.io/rfc8312bis/draft-ietf-tcpm-rfc8312bis.html>
> 
> As far as I can tell, that would allow all of the valuable contributions in rfc8312bis to carry forward and be published, while still respecting all of the considerations you enumerated above, which center around concerns with calling CUBIC "standards track".
> 
> How does that sound?
> 
> best,
> neal
> 
> _______________________________________________
> tcpm mailing list
> tcpm@ietf.org <mailto:tcpm@ietf.org>
> https://www.ietf.org/mailman/listinfo/tcpm <https://www.ietf.org/mailman/listinfo/tcpm>