[tcpm] Hystart and delay jitter

Christian Huitema <huitema@huitema.net> Fri, 12 March 2021 21:29 UTC

Return-Path: <huitema@huitema.net>
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 785013A1434 for <tcpm@ietfa.amsl.com>; Fri, 12 Mar 2021 13:29:07 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.889
X-Spam-Level:
X-Spam-Status: No, score=-6.889 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5, SPF_HELO_NONE=0.001, T_SPF_PERMERROR=0.01] 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 KHRU4eV4DmaI for <tcpm@ietfa.amsl.com>; Fri, 12 Mar 2021 13:29:06 -0800 (PST)
Received: from mx36-out21.antispamcloud.com (mx36-out21.antispamcloud.com [209.126.121.69]) (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 3AC7B3A1432 for <tcpm@ietf.org>; Fri, 12 Mar 2021 13:29:06 -0800 (PST)
Received: from xse107.mail2web.com ([66.113.196.107] helo=xse.mail2web.com) by mx134.antispamcloud.com with esmtp (Exim 4.92) (envelope-from <huitema@huitema.net>) id 1lKpLB-000yeR-Sw for tcpm@ietf.org; Fri, 12 Mar 2021 22:29:03 +0100
Received: from xsmtp21.mail2web.com (unknown [10.100.68.60]) by xse.mail2web.com (Postfix) with ESMTPS id 4DxzTN6dhJz1KNF for <tcpm@ietf.org>; Fri, 12 Mar 2021 13:28:56 -0800 (PST)
Received: from [10.5.2.17] (helo=xmail07.myhosting.com) by xsmtp21.mail2web.com with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.92) (envelope-from <huitema@huitema.net>) id 1lKpL6-0000pU-Q2 for tcpm@ietf.org; Fri, 12 Mar 2021 13:28:56 -0800
Received: (qmail 9271 invoked from network); 12 Mar 2021 21:28:56 -0000
Received: from unknown (HELO [192.168.1.104]) (Authenticated-user:_huitema@huitema.net@[172.58.43.146]) (envelope-sender <huitema@huitema.net>) by xmail07.myhosting.com (qmail-ldap-1.03) with ESMTPA for <tcpm@ietf.org>; 12 Mar 2021 21:28:56 -0000
To: "tcpm@ietf.org Extensions" <tcpm@ietf.org>
From: Christian Huitema <huitema@huitema.net>
Message-ID: <376bdc9f-4774-bfc8-1736-6c94fb24953c@huitema.net>
Date: Fri, 12 Mar 2021 13:28:55 -0800
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.8.1
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable
Content-Language: en-US
X-Originating-IP: 66.113.196.107
X-Spampanel-Domain: xsmtpout.mail2web.com
X-Spampanel-Username: 66.113.196.0/24
Authentication-Results: antispamcloud.com; auth=pass smtp.auth=66.113.196.0/24@xsmtpout.mail2web.com
X-Spampanel-Outgoing-Class: unsure
X-Spampanel-Outgoing-Evidence: Combined (0.15)
X-Recommended-Action: accept
X-Filter-ID: Pt3MvcO5N4iKaDQ5O6lkdGlMVN6RH8bjRMzItlySaT9WLQux0N3HQm8ltz8rnu+BPUtbdvnXkggZ 3YnVId/Y5jcf0yeVQAvfjHznO7+bT5yjTC8Fov82/EJuxz8FihBPKj/EwzSHE5FGYwwjsNRPCLra Ocejr1Vl7oAAL7jeq2HmD6wdmZPcItWbGe10hXJtXL4FsauCVkDjmcYJdU3yWp7KuHNaaKdg7iBE ZefdsNUFWKwa/wzJUjmazeC7ImcaH/fhAnWH0920vSrPR7+0qhQ6V51u76v35b1wNe/MvdIN+Yj9 JT+HIE3AciYbXmyy2+J9PgaoF8SQHto3le4zsHTaeQtlKubP6iUTjj6yPARK6buALVaA782LKxg6 vRmng8N1aLhXqdc+jC1RcnVud53D5caUhbVtvqItBqoizkEt9O20UjkwI0v+LOlw05G4BS+iyyNq bT8dUMXMJ4tUCMj6G37ZfAMLceP5aNHPt26RBupu5v1nytoNnc138GfEJRQ2qC7jjynPIHPNqSn4 QTXUjLjYWQt1/5xnQymMoPsgr/U0flMcy2Vi/IcBgY4arPaiJ1W6hAyiRC61jekdwIcXNugoOEbH RyFULpSjm7jZ1h/HfDRQ5Ig8VhPsPE8NDxdyIeJZUl7T+dBx2dACj4kAkMbx2DqpSJ21fqTljYa9 /ZZ47jHbUD+RTbE04nAkDRojSVizNl0ce/s7u0P9b9Tml6eOMCV9kYYwkPx6ZsXvIUzTXkDAiiJi mGhLUFuS2lhaIetXfCg1JdAVrOwKfN2rNpM86fN81Xt4BnEza5xUoFIvD3sIcP1fhJPM6B/8uA8a 7U9/lv6USrIXPIv7Fj1I5TgnJ4xNz8rxHJKsrhKJ+dym1L8cD17Js0v4cp1MPfB0GR+5mS1E7YVJ tY76bzcKVNeVJ9BXyu9+ceCqThTYg2px1fSoqxQCCHnLMo/m9VKh99btUAanjnMCAH2co+fBoeG+ Hs0afhsY/5zhNYWRVYKU9W9tbmVXJBqdHHDmZEKhyNAv1N35kYWaEdgLurFV5oTvAcwA4rM3FkfW 8/1kE/e7sUnsVpINvARNxpFO
X-Report-Abuse-To: spam@quarantine11.antispamcloud.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpm/i6HW-aL9MHydMsehNRaCbmatEXI>
Subject: [tcpm] Hystart and delay jitter
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, 12 Mar 2021 21:29:07 -0000

Back in November 2019, when adding Cubic and Hystart to my 
implementation of QUIC, I noticed that Hystart was sensitive to delay 
jitter. Hystart detects the buildup of queues by monitoring the RTT. 
Some links experience delay jitter, caused for example by access 
protocol for shared radio links or possibly by link-local ARQ protocols. 
The delay jitter can cause Hystart to make the wrong decision, in two ways:

1) Delay jitter during a previous period could cause some packets to be 
delivered "faster than usual", causing Hystart to under-estimate the min 
RTT for that period.

2) Delay jitter during the currently measured period can cause packets 
to be delivered "slower than usual",  causing Hystart to over-estimate 
the min RTT for that period.

The combination of these two issues may cause Hystart to make the wrong 
decisions, and exit slow start at levels well below link capacity.

The draft-ietf-tcpm-hystartplusplus-01 does have some protection against 
the second issue, because currentRoundMinRTT is computed on at least 
N_RTT_SAMPLE. If that number is large enough, computing the min over N 
samples should filter out "slower than usual" anomalies. However, the 
draft does not include a protection against "faster than usual" 
anomalies happening in the previous period. In my implementation, I 
protected against that by computing a "min of max" function: compute a 
rolling "MAX over N_RTT_SAMPLE", then compute the MIN value of that 
during the reference period, and use that to set the reference value 
"lastRoundMinRTT".

I think it would be good to add a discussion of the effect of jitter to 
the hystart++ draft. In addition, we may also want to mention 
timestamps. The jitter on RTT may be caused by jitter on either 
direction of transmission -- data path or ACK path. The effect of jitter 
on the ACK path can be minimized if time stamps can be used to monitor 
the variation of one-way delays. This is not discussed in the current 
draft. Maybe it should be.

-- Christian Huitema