Re: [tcpm] draft-minshall-nagle

gorry@erg.abdn.ac.uk Wed, 04 June 2014 08:37 UTC

Return-Path: <gorry@erg.abdn.ac.uk>
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 1D4E41A010D for <tcpm@ietfa.amsl.com>; Wed, 4 Jun 2014 01:37:25 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.852
X-Spam-Level:
X-Spam-Status: No, score=-4.852 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, RP_MATCHES_RCVD=-0.651, SPF_PASS=-0.001] autolearn=ham
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 lohFV_f2s5Bd for <tcpm@ietfa.amsl.com>; Wed, 4 Jun 2014 01:37:23 -0700 (PDT)
Received: from spey.erg.abdn.ac.uk (spey.erg.abdn.ac.uk [139.133.204.173]) by ietfa.amsl.com (Postfix) with ESMTP id E6AAB1A0109 for <tcpm@ietf.org>; Wed, 4 Jun 2014 01:37:22 -0700 (PDT)
Received: from www.erg.abdn.ac.uk (blake.erg.abdn.ac.uk [139.133.210.30]) by spey.erg.abdn.ac.uk (Postfix) with ESMTPSA id E5D912B40B9; Wed, 4 Jun 2014 09:37:15 +0100 (BST)
Received: from 212.159.18.54 (SquirrelMail authenticated user gorry) by www.erg.abdn.ac.uk with HTTP; Wed, 4 Jun 2014 09:37:16 +0100
Message-ID: <208ef728a25b85b5182fd557627ce3ea.squirrel@www.erg.abdn.ac.uk>
In-Reply-To: <538E9094.4020205@mti-systems.com>
References: <538D2BCC.8030906@mti-systems.com> <538DE3EA.2030104@isi.edu> <CADVnQy=Jmi10aFiSr1vnziY5bDNBv_W4+qhSkwMEiS4hSsRTkQ@mail.gmail.com> <538E00D9.4030802@isi.edu> <538E9094.4020205@mti-systems.com>
Date: Wed, 04 Jun 2014 09:37:16 +0100
From: gorry@erg.abdn.ac.uk
To: Wesley Eddy <wes@mti-systems.com>
User-Agent: SquirrelMail/1.4.22
MIME-Version: 1.0
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: 8bit
X-Priority: 3 (Normal)
Importance: Normal
Archived-At: http://mailarchive.ietf.org/arch/msg/tcpm/EVH529bHslwih_D5avUCIsa1xkw
Cc: "tcpm@ietf.org" <tcpm@ietf.org>, Joe Touch <touch@isi.edu>
Subject: Re: [tcpm] draft-minshall-nagle
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: <http://www.ietf.org/mail-archive/web/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, 04 Jun 2014 08:37:25 -0000

And... In the old days programmers knew an app would nearly always send
small packets and Nagle needed to be disabled. For many modern apps that
is far less obvious - Nagle may be disabled simply because people think it
is better to do so without really understanding the requirements, or they
may simply not know what the network traffic will look like - Some TCP
connections vary their traffic patterns over time.

Gorry

> On 6/3/2014 1:07 PM, Joe Touch wrote:
>>
>>
>> On 6/3/2014 8:15 AM, Neal Cardwell wrote:
>>> On Tue, Jun 3, 2014 at 11:04 AM, Joe Touch <touch@isi.edu> wrote:
>>>> Hi, Wes,
>>>>
>>>> Although I don't recall this and only scanned it briefly, I don't
>>>> quite
>>>> understand the problem.
>>>>
>>>> I thought it was widely known that Nagle was useful for
>>>> single-character
>>>> interactive traffic, but also widely known as something that should be
>>>> disabled for any multi-character interactive traffic - including
>>>> multi-character encodings, HTTP, etc.
>>>>
>>>> If Nagle is off - as it should be for interactive web traffic - then
>>>> the
>>>> optimizations in this draft won't have any impact.
>>>>
>>>> So what kind of traffic does this actually help? Or is this an
>>>> optimization
>>>> of a path that either isn't or shouldn't be used?
>>>
>>>
>>> The Minshall algorithm is a nice win for some workloads other than web
>>> traffic:
>>>
>>>    Application performance pitfalls and TCP's Nagle algorithm
>>>    http://dl.acm.org/citation.cfm?id=346012
>>
>> My point is that even by the time of this paper, it was well-understood
>> that Nagle should not be used in these environments. The paper cites
>> 1999 personal communication with Jim Gettys for this, but it was
>> well-known long before it was recited as an issue in this 1996 paper:
>> http://ccr.sigcomm.org/archive/1997/apr97/ccr-9704-heidemann.pdf
>
>
> Even before that!  RFC 1122 (from 1989) says:
>
>    Some applications (e.g., real-time display window
>    updates) require that the Nagle algorithm be turned
>    off, so small data segments can be streamed out at the
>    maximum rate.
>
>
>> The use case cited is quite dated - network news has been largely
>> abandoned. Is there a currently relevant use case for this approach, and
>> given that interactive apps already should be disabling Nagle, how much
>> will it help?
>>
>
>
> I agree that disabling Nagle for "interactive" flows should be a
> recognized best current practice.  (assuming they're aiming for
> a packets/segments per second rate that isn't absurd)
>
> I think this would be a part of the "TCP Usage Guidelines"
> analogue to RFC 5405 (for UDP) that Lars once thought about.
>
> Since Nagle is on by default in many OSes, and deciding to turn
> it off means a developer has to know what it is, and that it's
> even there to be turned off, the Minshall tweak to Nagle does
> seem to make it "more friendly" default to a diversity of
> application behaviors (small writes, or odd patterns of writes),
> while retaining the benefit of conserving packet count.
>
> I've noticed some people seem to have a tendency to disable Nagle
> automatically, whether or not that's really necessary, since
> maybe it bit them once in the distant past, and was difficult to
> debug or understand.  The Minshall flavor stands a better chance
> of not indoctrinating people against Nagle this way.
>
> That said, this is not a burning problem.
>
> --
> Wes Eddy
> MTI Systems
>
> _______________________________________________
> tcpm mailing list
> tcpm@ietf.org
> https://www.ietf.org/mailman/listinfo/tcpm
>