Re: [tcpm] draft-minshall-nagle

Joe Touch <touch@isi.edu> Wed, 04 June 2014 16:56 UTC

Return-Path: <touch@isi.edu>
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 172E81A02E8 for <tcpm@ietfa.amsl.com>; Wed, 4 Jun 2014 09:56:48 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.851
X-Spam-Level:
X-Spam-Status: No, score=-4.851 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, RP_MATCHES_RCVD=-0.651] 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 TdQooojG1os0 for <tcpm@ietfa.amsl.com>; Wed, 4 Jun 2014 09:56:46 -0700 (PDT)
Received: from boreas.isi.edu (boreas.isi.edu [128.9.160.161]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 643AB1A037D for <tcpm@ietf.org>; Wed, 4 Jun 2014 09:56:44 -0700 (PDT)
Received: from [128.9.160.166] (abc.isi.edu [128.9.160.166]) (authenticated bits=0) by boreas.isi.edu (8.13.8/8.13.8) with ESMTP id s54GtWN6003268 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT); Wed, 4 Jun 2014 09:55:33 -0700 (PDT)
Message-ID: <538F4F84.6040004@isi.edu>
Date: Wed, 04 Jun 2014 09:55:32 -0700
From: Joe Touch <touch@isi.edu>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0
MIME-Version: 1.0
To: Wesley Eddy <wes@mti-systems.com>, Neal Cardwell <ncardwell@google.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>
In-Reply-To: <538E9094.4020205@mti-systems.com>
Content-Type: text/plain; charset="UTF-8"; format="flowed"
Content-Transfer-Encoding: 7bit
X-ISI-4-43-8-MailScanner: Found to be clean
X-MailScanner-From: touch@isi.edu
Archived-At: http://mailarchive.ietf.org/arch/msg/tcpm/nW-wKWNFAVfQDxL1ywEfEdOp_is
Cc: "tcpm@ietf.org" <tcpm@ietf.org>
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 16:56:48 -0000


On 6/3/2014 8:20 PM, Wesley Eddy wrote:
> On 6/3/2014 1:07 PM, Joe Touch wrote:
...
>> 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.

I saw that, but it's more than for displays; it's actually anything 
*interactive* where the data unit is longer than one byte (e.g., Unicode 
telnet!).

>> 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,

I didn't think O_NODELAY was all that cryptic...


> 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.

Nagle is useful in a very small use case that no longer exists - it's 
rare that we have interactive traffic that we know can be split at a 
byte boundary.

> That said, this is not a burning problem.

Agreed.

Joe