[tcpm] About CUBIC and buffer draining

Michael Welzl <michawe@ifi.uio.no> Wed, 29 March 2017 21:33 UTC

Return-Path: <michawe@ifi.uio.no>
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 7F4231294B3 for <tcpm@ietfa.amsl.com>; Wed, 29 Mar 2017 14:33:35 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.201
X-Spam-Level:
X-Spam-Status: No, score=-4.201 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
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 GoiGzcvb0jjZ for <tcpm@ietfa.amsl.com>; Wed, 29 Mar 2017 14:33:32 -0700 (PDT)
Received: from mail-out01.uio.no (mail-out01.uio.no [IPv6:2001:700:100:10::50]) (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 96D3512957B for <tcpm@ietf.org>; Wed, 29 Mar 2017 14:33:31 -0700 (PDT)
Received: from mail-mx01.uio.no ([129.240.10.26]) by mail-out01.uio.no with esmtp (Exim 4.82_1-5b7a7c0-XX) (envelope-from <michawe@ifi.uio.no>) id 1ctLDe-0001ed-0U for tcpm@ietf.org; Wed, 29 Mar 2017 23:33:30 +0200
Received: from swissotel07.s.subnet.rcn.com ([216.80.61.6] helo=[172.20.3.190]) by mail-mx01.uio.no with esmtpsa (TLSv1.2:DHE-RSA-AES256-GCM-SHA384:256) user michawe (Exim 4.82_1-5b7a7c0-XX) (envelope-from <michawe@ifi.uio.no>) id 1ctLDd-0004kX-67 for tcpm@ietf.org; Wed, 29 Mar 2017 23:33:29 +0200
From: Michael Welzl <michawe@ifi.uio.no>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Mime-Version: 1.0 (Mac OS X Mail 10.2 \(3259\))
Message-Id: <206AB840-99C4-46FD-A36D-27927E3A6C42@ifi.uio.no>
Date: Wed, 29 Mar 2017 16:33:27 -0500
To: tcpm@ietf.org
X-Mailer: Apple Mail (2.3259)
X-UiO-SPF-Received: Received-SPF: neutral (mail-mx01.uio.no: 216.80.61.6 is neither permitted nor denied by domain of ifi.uio.no) client-ip=216.80.61.6; envelope-from=michawe@ifi.uio.no; helo=[172.20.3.190];
X-UiO-Ratelimit-Test: rcpts/h 6 msgs/h 5 sum rcpts/h 7 sum msgs/h 6 total rcpts 53364 max rcpts/h 54 ratelimit 0
X-UiO-Spam-info: not spam, SpamAssassin (score=-5.0, required=5.0, autolearn=disabled, AWL=0.044, UIO_MAIL_IS_INTERNAL=-5, uiobl=NO, uiouri=NO)
X-UiO-Scanned: 64FDF58388408F7F5079BF1802EDBA8D3BC40BAB
X-UiO-SPAM-Test: remote_host: 216.80.61.6 spam_score: -49 maxlevel 80 minaction 2 bait 0 mail/h: 5 total 94 max/h 12 blacklist 0 greylist 0 ratelimit 0
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpm/GMDxsufhHa48JpfR4n7VN1gnGT4>
Subject: [tcpm] About CUBIC and buffer draining
X-BeenThere: tcpm@ietf.org
X-Mailman-Version: 2.1.22
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: Wed, 29 Mar 2017 21:33:35 -0000

Hi,

In Praveen’s very interesting presentation on TCP in Windows, today:
https://www.ietf.org/proceedings/98/slides/slides-98-tcpm-tcp-improvements-in-windows-01.pdf
he stated that “CUBIC builds up large buffer in absence of AQM”  (slide 4).

In the absence of an AQM algorithm, even a single Reno flow alone will not let a queue drain when it’s (for several practical reasons, slightly more than) a BDP in length. To allow a BDP worth of queuing to drain, the sender needs a backoff factor of 0.5 or less. CUBIC’s backoff (multiplication) factor is 0.7, so it can even produce a standing queue when the queue is smaller than a BDP.

For reasonably configured networks, and with background load fluctuations, that’s maybe not such a huge problem (after all, the Internet still works  ;-)  ).
However, CUBIC’s backoff factor choice is “blind” - CUBIC has no idea of the length of the queue.

That’s what we’re trying to fix with ABE (draft-khademi-tcpm-alternativebackoff-ecn): because ECN is a hint that the queue was probably small, we can use a larger backoff factor (i.e. reduce by less).  => if the whole Internet would support ECN, and ABE was implemented as a way to back off, I would wonder: should CUBIC use 0.5 when it reacts to loss?

These are researchy futuristic musings. Getting back down to earth, I think it may be good to add a sentence to the CUBIC draft, where the backoff factor of 0.7 is introduced (last paragraph of section 3). There, the text now only says:

***
   CUBIC sets the multiplicative window decrease factor to 0.7 while
   Standard TCP uses 0.5.  While this improves the scalability of the
   protocol, a side effect of this decision is slower convergence
   especially under low statistical multiplexing environments.
***

… but I think the fact that it is more likely to produce a standing queue is a bigger issue, and worth mentioning here.

Cheers,
Michael