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

Yuchung Cheng <ycheng@google.com> Fri, 01 May 2020 16:49 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 40CF43A178F for <tcpm@ietfa.amsl.com>; Fri, 1 May 2020 09:49:46 -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 jS0ktFTBWelv for <tcpm@ietfa.amsl.com>; Fri, 1 May 2020 09:49:39 -0700 (PDT)
Received: from mail-ua1-x934.google.com (mail-ua1-x934.google.com [IPv6:2607:f8b0:4864:20::934]) (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 9F74D3A178D for <tcpm@ietf.org>; Fri, 1 May 2020 09:49:35 -0700 (PDT)
Received: by mail-ua1-x934.google.com with SMTP id r2so2111532uam.7 for <tcpm@ietf.org>; Fri, 01 May 2020 09:49:35 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=TPeJcKi+lOb3wFhNcQEFuuAMbhFcN8MRopScNb3B2AI=; b=tn5I6CV4dLIs9JQsjNwNn8yoRubkineTu8n622U9Ku8ZvZfuEoSgsL6LmlAtzWLOfZ S0LRhzKkaMkwHFdfEdAB/vnPiTemIEQoQjGlZeyUZV/S3FFENh0HC7i30h/BVOVGV1QE JZLfmCF3SXH/pW//RAq44lLhLWA03THK6QIBoGzATaq35FE8+NMJT3moLWS/blu1Ep2v wM41D31qBVJyuYIXn8Z48jcwt+1gC12vcwUT3rATio7z4YJTQxamdrqxS6DXXMfRDcE/ Mfw9DRJJQrbAc9ineDlJqUo3TKzCPMKO75BcuWR1UmQIj4vnKf0rvwUUKtcGBbxb2fYV R4GA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=TPeJcKi+lOb3wFhNcQEFuuAMbhFcN8MRopScNb3B2AI=; b=pav1aOh/lgf6l5JFr6sVtcAOJ4wBWpjgZGovREvnjD2J/QlZgXgSDWEretnvMHC4Hx lDLcsFedYz7e0GBh/GaXusgPKNUtuaYn8rNxPFNZwA6gAAK2PaMqewGzgVq5B8JtdmjO bYC9CDO5bJrYy4AtnQqURtYRUrOVQjbrydn/YlKSV6dgZKHVQxp3Y2GpA1UlyGwOgXED v17LbT5O02wKOnp93gSJcuxr2Ged7o6dkJl7gUNrctFrnSa5pXIGSV+z7fkgtuNmPIVJ Y5Ukb72mGtdIdnLMRBBmWkwg+7Gtboi3epUu8hnkv+EgrHkcZSvAen71MF3ASmC0Qp1p 4OmA==
X-Gm-Message-State: AGi0PuY8cD712LCwODluo1wKBCnKwBZs6XR+iqCeh0lV9sMJDq0uBYJE Yx5wvvWsJz8tP0OXft7GlytlyNQm5XmnZBJYrVVAeQ==
X-Google-Smtp-Source: APiQypI9XCZQxgGHXs2QAx1k40ltbH7vnrsmM3+At511E1X456UyheveLdJyIl+NKlTIkWnnOTo+udoM1qrYq+lKizQ=
X-Received: by 2002:ab0:408a:: with SMTP id i10mr3648137uad.80.1588351773924; Fri, 01 May 2020 09:49:33 -0700 (PDT)
MIME-Version: 1.0
References: <CAK6E8=dpmjf9MDQQVSkURcxnFrB3ZK_zqUDyoKs=MJgeLCeqvQ@mail.gmail.com> <23157b5e4063646449099e97eccde0f3.squirrel@webmail.entel.upc.edu>
In-Reply-To: <23157b5e4063646449099e97eccde0f3.squirrel@webmail.entel.upc.edu>
From: Yuchung Cheng <ycheng@google.com>
Date: Fri, 01 May 2020 09:48:57 -0700
Message-ID: <CAK6E8=ficYMU-r25fNLawPZ++fn6NQaa8kAznR7iCo9n0GNmPQ@mail.gmail.com>
To: Carles Gomez Montenegro <carlesgo@entel.upc.edu>
Cc: jon.crowcroft@cl.cam.ac.uk, "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/jjNcSjz4NtbWI2mo6mAKMJooGBY>
Subject: Re: [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: Fri, 01 May 2020 16:49:47 -0000

On Fri, May 1, 2020 at 1:56 AM Carles Gomez Montenegro
<carlesgo@entel.upc.edu> wrote:
>
> Dear Yuchung,
>
> Thanks for your questions and comments.
>
> Please find below my inline responses:
>
> > 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."
>
> Note that the problem pointed out is that, as stated in the RFC 5681 text
> above:
>
>    "During slow start, a TCP increments cwnd by at most SMSS bytes for
>     each ACK received that cumulatively acknowledges new data"
>
> It may be desirable to support, during slow start, a cwnd increase by more
> than SMSS per each ACK acknowledging new data.
I agree. We in fact implemented Linux to increase cwnd by the exact
amount sequence (in unit of packets) so slow-start increase function is
regardless of ack-thinning effect but purely based on amount
delivered. This has an important effect on
Wireless as the other ack talk mentions. It also helps in case of ACK
losses or reordering.




>
> In fact, couple of paragraphs later, RFC 5681 explicitly indicates the
> following:
>
>    "We note that [RFC3465] allows for cwnd increases of more than SMSS
>    bytes for incoming acknowledgments during slow start on an
>    experimental basis; however, such behavior is not allowed as part of
>    the standard."
>
> That is what we meant by "not fully included in RFC 5681" in our document.
>
> > As a side note, Linux stack has implemented the principle of abc in
> > its congestion control (including slow start)
>
> Thanks for the information.
>
> Yes, in fact, I second the WG members who stated on the chat, during the
> interim, that it is surprising that ABC remains as an experimental
> document.
>
> I realize that, at an implementation level, the problem pointed out above
> is being addressed in many platforms.
>
> > 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.
>
> Yes, I tend to agree.
>
> In fact, the two main problems due to Delayed ACKs that we identified so
> far in the area of slow start are:
>
> - The fact that ABC might not always be supported (due to its
> "Experimental" status).
>
> - Precluding sender behaviors such as chirping.
>
> Once again, thanks for your valuable feedback!
>
> Cheers,
>
> Carles
>
>
> > _______________________________________________
> > tcpm mailing list
> > tcpm@ietf.org
> > https://www.ietf.org/mailman/listinfo/tcpm
> >
>
>