[tcpm] question regarding draft-gomez-tcpm-delack-suppr-reqs

Yuchung Cheng <ycheng@google.com> Wed, 29 April 2020 17:03 UTC

Return-Path: <ycheng@google.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 7581F3A1449 for <tcpm@ietfa.amsl.com>; Wed, 29 Apr 2020 10:03:35 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -17.6
X-Spam-Level:
X-Spam-Status: No, score=-17.6 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, ENV_AND_HDR_SPF_MATCH=-0.5, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, USER_IN_DEF_DKIM_WL=-7.5, USER_IN_DEF_SPF_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.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 DkaATkuUAq6J for <tcpm@ietfa.amsl.com>; Wed, 29 Apr 2020 10:03:33 -0700 (PDT)
Received: from mail-ua1-x933.google.com (mail-ua1-x933.google.com [IPv6:2607:f8b0:4864:20::933]) (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 7B2123A1451 for <tcpm@ietf.org>; Wed, 29 Apr 2020 10:03:33 -0700 (PDT)
Received: by mail-ua1-x933.google.com with SMTP id z16so1201149uae.11 for <tcpm@ietf.org>; Wed, 29 Apr 2020 10:03:33 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=lgSV+ilukrrqtWlfy7HUJ9KYquKwy8RYKE2EP+SHyFs=; b=H0rAFxZc1WMkzthIKm7OeZtiqb170HndrA05iQtxbcPMAYhXzktPPgR2n02CgJgHzX g8pr9JmB0tYWehD9BEPsyS1RY29WpW+cOhSelK/a4jazov1kWhQRKmp4ix/Mbiw/cMz5 JwVIeT1rS3HYtO0/fKToQCRQsE+0eMZVLyJfRFaP5SwGx2JECU54wtF/g4cFuzzfRC5o 2v8J2FnoSk/moEk07kvukaXDPGU08MnzncGzUoBhtEagB5y8AeUF0FgTE81iB2Xrh+ee c5KNZNBfs1QzRv53q/+NBMBjGD7VPhncdOSlj5jLmsHXZnQPj+NcaAaQQTBSFbPJv3PI ng0Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=lgSV+ilukrrqtWlfy7HUJ9KYquKwy8RYKE2EP+SHyFs=; b=nt4yi8fLMCW4d9bYc/lczILH4elDHVg8hqfi2U7Di8Od4HCiHLKM2BJbGXXRU47SIq J+wIbQ8tmB+AzARXRF4noivA4yAYTSCHPrzHoMWkIW2jJp64AHm8g5Mo1bd1UpB6/Qq5 wYj/3ESZWEyyraBaeg73BzcdtnUx9s2ZXgr3RI6hnIkFD9+yALc6fZx9mUDxyWgWjWJv k2aNXBjfF9RK54Ma1HP51+tDms9YL/c4bIhOBiGGjdlqelU3axYtnHirGklcW1OVlF85 UmfsOYfMN7QNqlWZJYZ9d9232MiowuQ5DPfpjyI2PmVAmxmWmr+6yMatreKTV/aS1T2A UBwQ==
X-Gm-Message-State: AGi0PuY0jew8KdjCDpa3prisT/5ux5a75+7+AwmyL6ydVLk2kXsAJNnM DP8YxBeMv4BLzo7jLi8N78Vv1wd3uuiz+qhTHLk1hj5H
X-Google-Smtp-Source: APiQypLqKNjiN1YQ3Q5hKFSMvtox1ucQBSe3FSnxL7QEaJ2WUWRFOTJbgJJBRFrlgRKrsmkpXzreWiU9U6eS+89ouqE=
X-Received: by 2002:ab0:408a:: with SMTP id i10mr13129644uad.80.1588179811200; Wed, 29 Apr 2020 10:03:31 -0700 (PDT)
MIME-Version: 1.0
From: Yuchung Cheng <ycheng@google.com>
Date: Wed, 29 Apr 2020 10:02:54 -0700
Message-ID: <CAK6E8=dpmjf9MDQQVSkURcxnFrB3ZK_zqUDyoKs=MJgeLCeqvQ@mail.gmail.com>
To: "tcpm@ietf.org Extensions" <tcpm@ietf.org>, Neal Cardwell <ncardwell@google.com>
Content-Type: text/plain; charset="UTF-8"
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpm/EGpp0NqwUO0Eure1yQVv7-YYuB0>
Subject: [tcpm] question regarding draft-gomez-tcpm-delack-suppr-reqs
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: Wed, 29 Apr 2020 17:03:36 -0000

thanks for the talk!

https://tools.ietf.org/html/draft-gomez-tcpm-delack-suppr-reqs-01#section-3.1
"Note that, while Appropriate Byte Counting (ABC) [RFC3465] might be used
   to address this problem, it remains as an experimental mechanism, not
   fully included in RFC 5681, which specifies standard TCP congestion
   control.  "

It's not clear what "fully included" means here. AFAICT, RFC5681
includes the essence of ABC explicitly.

https://tools.ietf.org/html/rfc5681#section-3.1

" During slow start, a TCP increments cwnd by at most SMSS bytes for
   each ACK received that cumulatively acknowledges new data.  Slow
   start ends when cwnd exceeds ssthresh (or, optionally, when it
   reaches it, as noted above) or when congestion is observed.  While
   traditionally TCP implementations have increased cwnd by precisely
   SMSS bytes upon receipt of an ACK covering new data, we RECOMMEND
   that TCP implementations increase cwnd, per:

      cwnd += min (N, SMSS)                      (2)

   where N is the number of previously unacknowledged bytes acknowledged
   in the incoming ACK.  This adjustment is part of Appropriate Byte
   Counting [RFC3465] and provides robustness against misbehaving
   receivers that may attempt to induce a sender to artificially inflate
   cwnd using a mechanism known as "ACK Division" [SCWA99].  ACK
   Division consists of a receiver sending multiple ACKs for a single
   TCP data segment, each acknowledging only a portion of its data.  A
   TCP that increments cwnd by SMSS for each such ACK will
   inappropriately inflate the amount of data injected into the network."

As a side note, Linux stack has implemented the principle of abc in
its congestion control (including slow start)


regarding delayed ACK harming slow-start or latency, I am not too sure either:

1) The ACK is delayed but not the data

2) The delay of the ACK can indeed delay cwnd growth during slowstart.
But the ACK is delayed because the packet is likely a sub-MSS data,
which is again likely caused by application limit (i.e. the
application has sent all its data like a HTTP response). In this case
the delay of the cwnd growth does not hurt the performance since the
application has no data left to send.

   The only penalty occurs when the application has more data to send
but cwnd is still gated by the arrival of the delayed ACK. However, in
many request - response protocol, either the (non-delayed) ACKs
triggered by prior full-MSS data inflight or the delayed ACKs would
have returned to grow the cwnd to sending immediately.

I can construct scenarios where delayed ACK significantly hurts
application. But I don't think the scenario is too common. I will
suggest more tests to quantify the effect of delayed ACK effect on
slow-start.