[tcpm] hystart++

Randall Stewart <rrs@netflix.com> Thu, 02 December 2021 18:46 UTC

Return-Path: <rrs@netflix.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 3824D3A12E5 for <tcpm@ietfa.amsl.com>; Thu, 2 Dec 2021 10:46:45 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.801
X-Spam-Level:
X-Spam-Status: No, score=-2.801 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.701, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, 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=netflix.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 BPhJWJ05AnOV for <tcpm@ietfa.amsl.com>; Thu, 2 Dec 2021 10:46:43 -0800 (PST)
Received: from mail-pf1-x430.google.com (mail-pf1-x430.google.com [IPv6:2607:f8b0:4864:20::430]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B8CEC3A089C for <tcpm@ietf.org>; Thu, 2 Dec 2021 10:46:43 -0800 (PST)
Received: by mail-pf1-x430.google.com with SMTP id g18so424911pfk.5 for <tcpm@ietf.org>; Thu, 02 Dec 2021 10:46:43 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netflix.com; s=google; h=from:mime-version:subject:message-id:date:to; bh=+8HKXoBzgXOS93A9Ou6DjL58HnYZJ3KmEkxF0NL66Ms=; b=gMZmoxRQJkE5TDVAgmCXWziQvH0cTuGaIOigF2RcI6YPHzua41C5JudbUGOrtRHdWC yE+vZnc/tTJd3zn3td1Y+bo3GG7L0D+vMrs9nks3UEPRBeABsHKuoOKa3Q8dk7k1guxp 8r3HVja8I4IMZ5YJ+R8xozCN2pcHSDGuUn2xg=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:mime-version:subject:message-id:date:to; bh=+8HKXoBzgXOS93A9Ou6DjL58HnYZJ3KmEkxF0NL66Ms=; b=6BcNLBz1wR4UvTxZjB0Lvn950Uka0kV7heibGn1AQbP+5UrfVam1uCT8rNOn+Jrauw qm40Gp8/9VresWdWYI3BZ8mwgKIID61Wmbxo32HRTVDWXJX/vxBf++xV6zgyU5P+tIZg AXd4S8PaBUrMnVcLNbmHclp8HSvO/puLvHgIHE3lgUnQLLpo5RRLcpcHWm3DNU1xxS8Y ZWvvJoUZfg2r5TMmw5droTpgwOyJ9qwHTmXmcxWUeJl/tXY3GSBxFCUuIu36O9aS3RBF PxzI1DLsMUinjDNt7aUZlVUtcGMQYJcjWzOzaFmdjDTGXjWhyDGLzr1fAhdAE/GKi7mk KTyw==
X-Gm-Message-State: AOAM530jaGQLFcChgldaQ5ymuBOn3OvvLWB4LjEel+SqwElGDg2m6R2S 7ZRiauGV5f5az3AKFd+W5T3380h/p0c3cQ==
X-Google-Smtp-Source: ABdhPJwnMPYC+4sIJ96zKG7efIS77+/y3hs7AbfGOYbDzKx96drV7Mf1fIkA+/lGXggQoGQNu98HpA==
X-Received: by 2002:a65:6a12:: with SMTP id m18mr800182pgu.124.1638470801368; Thu, 02 Dec 2021 10:46:41 -0800 (PST)
Received: from smtpclient.apple (nonat-pool-1510-nbry-162-213-116-120.carolinaconnect.net. [162.213.116.120]) by smtp.gmail.com with ESMTPSA id a23sm325572pgh.35.2021.12.02.10.46.40 for <tcpm@ietf.org> (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 02 Dec 2021 10:46:40 -0800 (PST)
From: Randall Stewart <rrs@netflix.com>
Content-Type: multipart/signed; boundary="Apple-Mail=_F3D1CD5E-E717-40A4-B10F-C3BB5F219900"; protocol="application/pkcs7-signature"; micalg="sha-256"
Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.120.0.1.13\))
Message-Id: <D8D48D50-6143-49D5-B3D8-C1888FFE33EB@netflix.com>
Date: Thu, 02 Dec 2021 13:46:39 -0500
To: tcpm@ietf.org
X-Mailer: Apple Mail (2.3654.120.0.1.13)
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpm/ckgRZah35VzNJLWCh8dAMHj9iWw>
Subject: [tcpm] hystart++
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: Thu, 02 Dec 2021 18:46:45 -0000

Greetings all:

I have implemented hystart++ off of the draft-03 for FreeBSD 
(both newreno and cubic) and I have noted one thing that I think
is a bug in the spec:

Draft-03 currently says:



        o  if (currentRoundMinRTT >= (lastRoundMinRTT + RttThresh))

           +  cssBaselineMinRtt = currentRoundMinRTT

           +  exit slow start and enter CSS


<And>



     -  if (currentRoundMinRTT < cssBaselineMinRtt)

        o  cssBaselineMinRtt = infinity

        o  resume slow start including HyStart++



But notice that the threshold for entering CSS is (lastRoundMinRtt + RttThresh) and
the exiting of CSS back to Slow Start is (currentRoundMinRTT < cssBaseLineMinRTT), which can
under the right circumstances set up an oscillation. In the case I observed I saw lastRoundMinRtt set
to like 63ms and currentRoundMinRtt set at 115ms. And the next RTT in was 114ms.. so out of 
CSS into Slow Start, but the next measurement (114ms again) pushes you back into CSS since
the lastRoundMinRTT + RttThresh is around 63ms or so.

I would think what you really want here is to set cssBaseLineMinRTT to (lastRoundMinRtt + RttThresh).

I.e. on entry:


        o  if (currentRoundMinRTT >= (lastRoundMinRTT + RttThresh))

           +  cssBaselineMinRtt = (lastRoundMinRtt + RttThresh)

           +  exit slow start and enter CSS

R      

------
Randall Stewart
rrs@netflix.com