Re: [tcpm] [iccrg] Cwnd growth after fast convergence in CUBIC

Vidhi Goel <vidhi_goel@apple.com> Sat, 07 November 2020 04:08 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 5A2B23A044A; Fri, 6 Nov 2020 20:08:59 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.101
X-Spam-Level:
X-Spam-Status: No, score=-2.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, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=unavailable 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 s3Ef1C1TOAGB; Fri, 6 Nov 2020 20:08:58 -0800 (PST)
Received: from nwk-aaemail-lapp01.apple.com (nwk-aaemail-lapp01.apple.com [17.151.62.66]) (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 0D7183A0408; Fri, 6 Nov 2020 20:08:58 -0800 (PST)
Received: from pps.filterd (nwk-aaemail-lapp01.apple.com [127.0.0.1]) by nwk-aaemail-lapp01.apple.com (8.16.0.43/8.16.0.42) with SMTP id 0A73u7Fd033018; Fri, 6 Nov 2020 20:08:51 -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=W+yzCzlYMbKisExAGk2t+l+MhoOxE6m/2yCWs0XTygo=; b=m8XSfAbm/A/tErrec7hUiLMod+X1EpTAIcACjIaHGr6dtvLZ37RArYMSPDHfPgXuOWJ7 g/JlsxziW9j5uSctqEkZ1W8oHifbXENeHLFE/rbQIA5Z+hcrC6nHa79bDqL+b7TicT2X X0d3rJTKP6WJzudGLx3/VN6+X/8UIiM59uGg18uvDeXuHAka+2lPE0ip2ditDv1nPKr1 sUq/uge96t6zr20OasWiOD0FmvSweyYsf4yi7Lkf4B1D0WecjF5EZ3pS3rZjXmxWe+Ed 8Ao3obO+FYNl5w8HMbgm4WS9Mu9MNdI8HMLrQ+9CVNuM+eJbfP1TQJj3PeElq3H0GFjP /Q==
Received: from rn-mailsvcp-mta-lapp01.rno.apple.com (rn-mailsvcp-mta-lapp01.rno.apple.com [10.225.203.149]) by nwk-aaemail-lapp01.apple.com with ESMTP id 34h6v29j7h-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NO); Fri, 06 Nov 2020 20:08:51 -0800
Received: from rn-mailsvcp-mmp-lapp02.rno.apple.com (rn-mailsvcp-mmp-lapp02.rno.apple.com [17.179.253.15]) by rn-mailsvcp-mta-lapp01.rno.apple.com (Oracle Communications Messaging Server 8.1.0.6.20200729 64bit (built Jul 29 2020)) with ESMTPS id <0QJE011NWRIR46E0@rn-mailsvcp-mta-lapp01.rno.apple.com>; Fri, 06 Nov 2020 20:08:51 -0800 (PST)
Received: from process_milters-daemon.rn-mailsvcp-mmp-lapp02.rno.apple.com by rn-mailsvcp-mmp-lapp02.rno.apple.com (Oracle Communications Messaging Server 8.1.0.6.20200729 64bit (built Jul 29 2020)) id <0QJE00A00R44KP00@rn-mailsvcp-mmp-lapp02.rno.apple.com>; Fri, 06 Nov 2020 20:08:51 -0800 (PST)
X-Va-A:
X-Va-T-CD: c97696a9e84e996401d2d042a4999cf4
X-Va-E-CD: 46ed4047f398203abf674ba2b4f02161
X-Va-R-CD: 3c13deb3c3a974241d79e19958cc67e6
X-Va-CD: 0
X-Va-ID: 06920350-1233-446a-83f6-d4f81f05b665
X-V-A:
X-V-T-CD: c97696a9e84e996401d2d042a4999cf4
X-V-E-CD: 46ed4047f398203abf674ba2b4f02161
X-V-R-CD: 3c13deb3c3a974241d79e19958cc67e6
X-V-CD: 0
X-V-ID: 1c4f0ea2-83dd-4566-b321-0d5c45c25976
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.312, 18.0.737 definitions=2020-11-06_06:2020-11-05, 2020-11-06 signatures=0
Received: from [17.149.232.178] (unknown [17.149.232.178]) by rn-mailsvcp-mmp-lapp02.rno.apple.com (Oracle Communications Messaging Server 8.1.0.6.20200729 64bit (built Jul 29 2020)) with ESMTPSA id <0QJE00N52RIPNC00@rn-mailsvcp-mmp-lapp02.rno.apple.com>; Fri, 06 Nov 2020 20:08:50 -0800 (PST)
From: Vidhi Goel <vidhi_goel@apple.com>
Message-id: <57A58E6B-0385-47C1-A85F-49017703411D@apple.com>
Content-type: multipart/alternative; boundary="Apple-Mail=_A33D7947-EF98-49DE-8A5B-AFE67E272E4B"
MIME-version: 1.0 (Mac OS X Mail 13.4 \(3608.80.23.2.2\))
Date: Fri, 06 Nov 2020 20:08:49 -0800
In-reply-to: <A1E8DCCF-1B04-40AB-A4DA-2C7CB8B0D482@apple.com>
Cc: Neal Cardwell <ncardwell=40google.com@dmarc.ietf.org>, "tcpm@ietf.org" <tcpm@ietf.org>, iccrg IRTF list <iccrg@irtf.org>, Martin Thomson <mt@lowentropy.net>, Christoph Paasch <cpaasch@apple.com>
To: Lars Eggert <lars@eggert.org>, "Scheffenegger, Richard" <Richard.Scheffenegger@netapp.com>, "Rosenblum, Wesley" <wesleyr@amazon.com>
References: <BC55FC1E-6EE5-4E00-A3DA-A1A8772330BF@amazon.com> <A1E8DCCF-1B04-40AB-A4DA-2C7CB8B0D482@apple.com>
X-Mailer: Apple Mail (2.3608.80.23.2.2)
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.312, 18.0.737 definitions=2020-11-06_06:2020-11-05, 2020-11-06 signatures=0
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpm/shkZ9quaoKaBwtGCxAGKmRpxB9k>
Subject: Re: [tcpm] [iccrg] Cwnd growth after fast convergence in CUBIC
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: Sat, 07 Nov 2020 04:08:59 -0000

 +Christoph

> On Nov 6, 2020, at 7:27 PM, Vidhi Goel <vidhi_goel=40apple.com@dmarc.ietf.org> wrote:
> 
> ++
> 
>> Agreed, and this is basically what Vidhi has suggested as well. In my option it is slightly
>> more clear to introduce cwnd into the calculation of K as Vidhi has done. I suppose it comes 
>> down to where in a particular implementation one calculates K.
>> 
>> One note: If W_last_max were to be incorporated into K, the special case mentioned in section 
>> 4.8 about exiting hybrid slow start would also need to be updated to mention setting 
>> W_last_max = W_max = cwnd, as W_last_max  would not have been set in such a case. 
> 
> The way we have implemented Cubic, using W_last_max won’t work for us either. Previous suggestion of using `cwnd` works for us,
> K = cbrt(W_max - cwnd / C)
> 
> 
>> That said, the intent was to document what the Linux code was doing at the time. Is there a difference between the RFC and what Linux has been doing or is doing now? If yes, it might be time to revise the RFC.
>> 
>> (I think Martin Thomson also found some nits recently.)
> 
> 
> Revising the RFC would be good. While we are on the topic, there is one more thing that could use a discussion.
> 
> Christoph (cc’ed) and I had discussed this earlier regarding alpha_aimd used for TCP friendly region. 
> 
> Currently, alpha_aimd = 3*(1-beta_cubic)/(1+beta_cubic) // for the entire TCP friendly region
> 
> But we think that once the cwnd in TF region reaches W_max, we should set the alpha_aimd to 1 to have similar behavior as standard TCP congestion algorithm (eg. NewReno)
> 
> if (W_est < W_max)
> 	alpha_aimd = 3*(1-beta_cubic)/(1+beta_cubic)
> else
> 	alpha_aimd = 1
> 
> 
> Let me know your thoughts on this. I'd be happy to work on this.
> 
> 
> Thanks,
> Vidhi
> 
>> On Nov 6, 2020, at 12:34 PM, Rosenblum, Wesley <wesleyr@amazon.com <mailto:wesleyr@amazon.com>> wrote:
>> 
>> Agreed, and this is basically what Vidhi has suggested as well. In my option it is slightly
>> more clear to introduce cwnd into the calculation of K as Vidhi has done. I suppose it comes 
>> down to where in a particular implementation one calculates K.
>> 
>> One note: If W_last_max were to be incorporated into K, the special case mentioned in section 
>> 4.8 about exiting hybrid slow start would also need to be updated to mention setting 
>> W_last_max = W_max = cwnd, as W_last_max  would not have been set in such a case. 
>> 
>> Thanks,
>> Wesley
>> 
>> On 11/6/20, 6:10 AM, "Neal Cardwell" <ncardwell=40google.com@dmarc.ietf.org <mailto:ncardwell=40google.com@dmarc.ietf.org>> wrote:
>>> AFAICT,  changing Eq 2 to the following might fix the RFC and make it
>>> match the Linux TCP CUBIC behavior:
>>> 
>>>        K = cubic_root(W_max - W_last_max*beta_cubic)/C) (Eq. 2)
>> 
>>    best,
>>    neal
>> 
> 
> _______________________________________________
> tcpm mailing list
> tcpm@ietf.org
> https://www.ietf.org/mailman/listinfo/tcpm