Re: [tcpm] Delayed ACKs vs. Nagle (was: RE: [aqm] TCP ACK Suppression)

Yuchung Cheng <ycheng@google.com> Sun, 11 October 2015 16:29 UTC

Return-Path: <ycheng@google.com>
X-Original-To: tcpm@ietfa.amsl.com
Delivered-To: tcpm@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 68A641A03D5 for <tcpm@ietfa.amsl.com>; Sun, 11 Oct 2015 09:29:36 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.389
X-Spam-Level:
X-Spam-Status: No, score=-1.389 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FM_FORGED_GMAIL=0.622, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] autolearn=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 ExVI9dedEqt1 for <tcpm@ietfa.amsl.com>; Sun, 11 Oct 2015 09:29:34 -0700 (PDT)
Received: from mail-vk0-x22a.google.com (mail-vk0-x22a.google.com [IPv6:2607:f8b0:400c:c05::22a]) (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 2CFBA1A037F for <tcpm@ietf.org>; Sun, 11 Oct 2015 09:29:34 -0700 (PDT)
Received: by vkgc187 with SMTP id c187so11804860vkg.3 for <tcpm@ietf.org>; Sun, 11 Oct 2015 09:29:33 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type:content-transfer-encoding; bh=oryCgVvGoCzO749jHxkn05Y2qChcOr8pGrgCCuKUprs=; b=R+Oj8VlIGhFu5HcQhr31MzGmipop+Ax4O3zYuhtRK8iKO554ScpCrwbkBYfWTgNbc6 +v8QnUnOLUeb4tiMaHvFp0lJhAXTddE5m34T4SvV5T6tTsLElCxYo8ByeqXH6d9DvDsp FO+hKOJxbQSbV9VPsuQRTLPc+XM/s18Ub/cYZx/KLc3188L1gnuqzWrP37VAJSXrBvdr 1OMETgbvCuWO5+JfFbslCpfB7mOAiSJv2wN0EBJ0VEYqoTzcliLt1G0zRSQneK/pWWUE c2jHNVy+zh5KxX1BUyD8gtsVDH6+2beQPpn+axzZ6884oXRZunPvzUolMgrVnJg9MVmh Sl6g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-type:content-transfer-encoding; bh=oryCgVvGoCzO749jHxkn05Y2qChcOr8pGrgCCuKUprs=; b=cNUm0D7qotvPPYXXMMC12Z53wrxoBZrym8FUJVDKEgzxOH8bcqRtES9x3WaXpvVnZB hB8TOet5IEhYnnK/pOlMjiJTAG5Ku22dS2R2DgpTudRHGITGu1zBZ/L5TonhgAd757Gr 2NtqxAsI5lt2p0y2FNur7UEjOqpfKM/lp0xQECo+cFwGMnW4ltUNL5OcfwDSxNbPDE87 DgxsCsMOxdDUPvJgleU+1QN85wOfj8NeFXY19cpQzUT8scQ2/Yh5i5cpJe9eO6ZLnaPA A7CtfIRBb+b0BxpD9dkPKkMADGJpiys1BPG0yyE+39r6ljMiNlyJdwarUzix6vrKuT+S Tjhw==
X-Gm-Message-State: ALoCoQlZfLiT6ob93AWjhxwthf18r3qcxfxsM8g0N07vaJqBlBAzUzJYRpqrFa7h2q81VDD75t1j
X-Received: by 10.31.185.12 with SMTP id j12mr14066489vkf.98.1444580973214; Sun, 11 Oct 2015 09:29:33 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.31.153.134 with HTTP; Sun, 11 Oct 2015 09:28:53 -0700 (PDT)
In-Reply-To: <655C07320163294895BBADA28372AF5D484FFC3F@FR712WXCHMBA15.zeu.alcatel-lucent.com>
References: <alpine.DEB.2.02.1510060748480.8750@uplift.swm.pp.se> <D2394BB6.548C5%g.white@cablelabs.com> <0A452E1DADEF254C9A7AC1969B8781284A7D9B66@FR712WXCHMBA13.zeu.alcatel-lucent.com> <5616DCD9.8@isi.edu> <alpine.DEB.2.02.1510081428470.3852@nftneq.ynat.uz> <CAK6E8=ePXkK4-=As2QQJCZjOyK7-NvC2njiYrsLzGEsqqFDJxg@mail.gmail.com> <655C07320163294895BBADA28372AF5D484FCA01@FR712WXCHMBA15.zeu.alcatel-lucent.com> <5617C4BF.6040504@mti-systems.com> <655C07320163294895BBADA28372AF5D484FD4EA@FR712WXCHMBA15.zeu.alcatel-lucent.com> <96FC85CD93C14C7FADC014391BAFE03E@srichardlxp2> <BN1PR03MB008B0DCB234493AD83A6695B6340@BN1PR03MB008.namprd03.prod.outlook.com> <CAK6E8=cMQG2YMtJKkOD0tR=tjtdiBs9KNe9qnkRCXr+PLonD7A@mail.gmail.com> <655C07320163294895BBADA28372AF5D484FFC3F@FR712WXCHMBA15.zeu.alcatel-lucent.com>
From: Yuchung Cheng <ycheng@google.com>
Date: Sun, 11 Oct 2015 09:28:53 -0700
Message-ID: <CAK6E8=d8rxQ40iNg78UYNN-fUsEdC8JfKfKdBmCFetMeR2t97A@mail.gmail.com>
To: "Scharf, Michael (Michael)" <michael.scharf@alcatel-lucent.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Archived-At: <http://mailarchive.ietf.org/arch/msg/tcpm/bIqB43NIN7S77oe_nj4MA1JJQ_w>
Cc: "tcpm@ietf.org" <tcpm@ietf.org>
Subject: Re: [tcpm] Delayed ACKs vs. Nagle (was: RE: [aqm] TCP ACK Suppression)
X-BeenThere: tcpm@ietf.org
X-Mailman-Version: 2.1.15
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: Sun, 11 Oct 2015 16:29:36 -0000

On Sun, Oct 11, 2015 at 7:41 AM, Scharf, Michael (Michael)
<michael.scharf@alcatel-lucent.com> wrote:
> As far as I recall (Wes can correct me if I am wrong) we have an open issue
> in 793bis regarding that issue.
>
>
>
> See draft-ietf-tcpm-rfc793bis-01 Section 4:
>
>
>
>    11.  look at possible mention of draft-minshall-nagle (e.g. as in
>
>         Linux)
>
>
>
> The challenge is that for 793bis we would need a Proposed Standard RFC
> specifying how to sort out this interaction, unless we extend the scope of
> 793bis beyond what we agreed upon (i.e., only clarification, no protocol
> changes).
>
>
>
> I have personally never looked at how that logic is actually implemented in
> different stacks, and I actually don’t know if there has ever been community
> consensus on how the exact solution to that interaction should look like.
>
>
>
> But if we have a gap to what is widely implemented, and if it was realistic
> to publish a PS RFC before completing 793bis (I guess it could be a 2-page
> RFC), I’d argue in favor of a “fast track” PS publication. (Well, with
> ‘fast’ being relative to our normal PS publication speed.)
I am not sure what your concern is: are you concerned Minshall's
revision to Nagle's algorithm on the sender would interact badly with
Mr. Nagle's idea to improve delayed-ACKs at the receiver?

>
>
>
> Michael
>
>
>
>
>
> From: Yuchung Cheng [mailto:ycheng@google.com]
> Sent: Saturday, October 10, 2015 2:19 AM
> To: Praveen Balasubramanian
> Cc: Richard Scheffenegger; Scharf, Michael (Michael); Wesley Eddy; Joe
> Touch; LAUTENSCHLAEGER, Wolfram (Wolfram); David Lang; tcpm@ietf.org
> Subject: Re: [tcpm] [aqm] TCP ACK Suppression
>
>
>
>
>
>
>
> On Fri, Oct 9, 2015 at 4:25 PM, Praveen Balasubramanian
> <pravb@microsoft.com> wrote:
>
> Agreed that delayed ACK timeout should be a function of RTT than a hardcoded
> value. Windows 8 onwards this is the behavior for high latency connections.
> Windows Server uses a 1 msec delayed ACK timeout for low latency
> (datacenter) connections.
>
> And while we are on the topic of delayed ACKs, the bad interaction between
> Nagling and delayed ACKs is well known. John Nagle's comment in HN which
> suggests a per connection logic to throttle delayed ACKs:
> "If you're going to do that, it's a good time to fix delayed ACK as well. As
> is well known, the interaction between delayed ACKs and the Nagle algorithm
> is awful. This is a historical accident; I implemented one, the Berkeley
> guys implemented the other, and by the time I found out I was out of
> networking and involved with a small startup called Autodesk. So that never
> got fixed. Here's how to think about that. A delayed ACK is a bet. You're
> betting that there will be a reply, upon with an ACK can be piggybacked,
> before the fixed timer runs out. If the fixed timer runs out, and you have
> to send an ACK as a separate message, you lost the bet. Current TCP
> implementations will happily lose that bet forever without turning off the
> ACK delay. That's just wrong. The right answer is to track wins and losses
> on delayed and non-delayed ACKs. Don't turn on ACK delay unless you're
> sending a lot of non-delayed ACKs closely followed by packets on which the
> ACK could have been piggybacked. Turn it off when a delayed ACK has to be
> sent."
>
> Well .. Mr. Nagle will be glad to learn that Linux has implemented his (or
> similar) idea for years. It's called QUICK_ACK. The decision window is a bit
> short and can use some tuning. But it is not "never" fixed.
>
>
>
> Agree on that 500ms is ridiculous.
>
>
>
>
> -----Original Message-----
> From: tcpm [mailto:tcpm-bounces@ietf.org] On Behalf Of Richard Scheffenegger
> Sent: Friday, October 9, 2015 3:53 PM
> To: Scharf, Michael (Michael) <michael.scharf@alcatel-lucent.com>; Wesley
> Eddy <wes@mti-systems.com>; Joe Touch <touch@isi.edu>
> Cc: LAUTENSCHLAEGER, Wolfram (Wolfram)
> <wolfram.lautenschlaeger@alcatel-lucent.com>; tcpm@ietf.org; David Lang
> <david@lang.hm>
> Subject: Re: [tcpm] [aqm] TCP ACK Suppression
>
> This might also be an opportunity to go more into the reasoning for the
> 500ms maximum...
>
> Many implementations interpret  "the delay MUST be less than 0.5 seconds" to
> trigger the delayed ACK timer at 500ms (with this time a fixed, compile-time
> value) - while it has been shown, that making that dynamic (or a based on
> RTT and pps might be a more efficient approach (especially during loss at
> end-of-stream), depending on the environment [1].
>
> [I thought to have read a recent paper on tuning the delayed ACK timer down
> to 1ms in datacenter environments, but cann't find that now].
>
> Best regards,
>   Richard
>
>
>
>
> [1] Altman, Eitan, and Tania Jiménez. "Novel delayed ACK techniques for
> improving TCP performance in multihop wireless networks." Personal Wireless
> Communications. Springer Berlin Heidelberg, 2003.
>
>
> ----- Original Message -----
> From: "Scharf, Michael (Michael)" <michael.scharf@alcatel-lucent.com>
> To: "Wesley Eddy" <wes@mti-systems.com>; "Joe Touch" <touch@isi.edu>
> Cc: "LAUTENSCHLAEGER, Wolfram (Wolfram)"
> <wolfram.lautenschlaeger@alcatel-lucent.com>; "Greg White"
> <g.white@cablelabs.com>; <tcpm@ietf.org>; "David Lang" <david@lang.hm>
> Sent: Friday, October 09, 2015 5:21 PM
> Subject: Re: [tcpm] [aqm] TCP ACK Suppression
>
>
>> Yes, I have realized today myself that 793bis lacks that section. I agree
>> that ACK generation belongs into 793bis.
>>
>> 793bis actually may open an opportunity to rethink the exact wording that
>> explains this SHOULD. Personally, I believe replacing this SHOULD is not
>> an option for a bis document.
>>
>> But if deviations from that SHOULD are widely deployed in the meantime,
>> 793bis could possibly comment on that. Also, having some informational
>> reference could perhaps be an option.
>>
>> Michael
>>
>>
>> -----Original Message-----
>> From: Wesley Eddy [mailto:wes@mti-systems.com]
>> Sent: Friday, October 09, 2015 3:45 PM
>> To: Scharf, Michael (Michael); Joe Touch
>> Cc: LAUTENSCHLAEGER, Wolfram (Wolfram); Greg White; tcpm@ietf.org; David
>> Lang
>> Subject: Re: [tcpm] [aqm] TCP ACK Suppression
>>
>> On 10/9/2015 5:21 AM, Scharf, Michael (Michael) wrote:
>>> [Removing AQM, adding TCPM]
>>>
>>>
>>>
>>> Hi Joe,
>>>
>>>
>>>
>>> I don't find this text in RFC 793, but it is contained in RFC 2581,
>>> which is obsolete by RFC 5681.
>>>
>>>
>>
>>
>> To confuse matters further, there's also 1122 text with requirements
>> language:
>>
>>            A TCP SHOULD implement a delayed ACK, but an ACK should not
>>            be excessively delayed; in particular, the delay MUST be
>>            less than 0.5 seconds, and in a stream of full-sized
>>            segments there SHOULD be an ACK for at least every second
>>            segment.
>>
>> This probably belongs in 793bis.  In my view, normative acknowledgement
>> behavior belongs in the base spec rather than particular congestion
>> control descriptions, since there may be more than CC that depends upon it
>> or makes assumptions about it.
>>
>>
>> --
>> Wes Eddy
>> MTI Systems
>>
>> _______________________________________________
>> tcpm mailing list
>> tcpm@ietf.org
>> https://www.ietf.org/mailman/listinfo/tcpm
>>
>
> _______________________________________________
> tcpm mailing list
> tcpm@ietf.org
> https://www.ietf.org/mailman/listinfo/tcpm
>
> _______________________________________________
> tcpm mailing list
> tcpm@ietf.org
> https://www.ietf.org/mailman/listinfo/tcpm
>
>