From: "Sean M. Doran" <smd@cesium.clock.org>
To: 9fans@cse.psu.edu
Subject: Re: [9fans] Nagle algorithm
Date: Mon, 26 Nov 2001 11:57:00 +0100 [thread overview]
Message-ID: <yty9ktu7er.fsf@cesium.clock.org> (raw)
In-Reply-To: <3.0.6.32.20011122122050.00974e88@pop3.clear.net.nz> (Andrew Simmons's message of "Thu, 22 Nov 2001 12:20:50 +1300")
Andrew Simmons <andrew@mbmnz.co.nz> writes:
> What's wrong with Nagle?
What's RIGHT with Nagle:
- bigger packets, on average
- more bytes/packet -> less wasted header overhead
- more bytes/packet -> fewer packets per bit per second
both of these are very good for the network,
since the cost of modern day high-speed
networking is driven by header processing and is
pps limited, while the cost of practical
networking (last mile, and in places like
New Zealand) is driven by total amount of
traffic, and you don't want to pay for headers
rather than data useful to the end user
- Nagle does not inflate the congestion window or
delay during a bulk transfer: if there are lots
of bytes being transmitted, the Nagle delay
doesn't happen
Moving Nagle into the application, as is suggested later
in the thread, is awkward: it needs to know the segment
size, which is affected by the receiver's advertised MSS,
the local MTU and the path MTU. The latter two of these can
change during the lifetime of a TCP conversation.
The usual complaint about Nagle is that it punishes
applications which deliberately exchange short packets.
However, it is almost always possible to turn Nagle off on
a per-connection basis, for those (relatively rare)
applications which are upset by the increased transmit delay.
The problem with simply "eliminating" Nagle is that a
bulk-transfer application which DELIBERATELY schedules
lots of small writes that do not queue at the TCP send
level, will generate lots of small packets. This causes
the TCP congestion window to inflate faster, and gives such
applications an unfair advantage over applications which
make larger writes that queue at the TCP send level, where
they can be coalesced. The inflated congestion window
means that when congestion does happen (TCP deliberately
provokes it), the small-write/small-segment application
will get a larger share of the bottleneck's bandwidth.
This is perverse behaviour, since the application in
question is a less efficient bandwidth consumer, since it
generates more header data per user datum.
The generation of large amounts of small packets should
always been seen as antisocial.
Sean.
next prev parent reply other threads:[~2001-11-26 10:57 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-11-21 23:20 Andrew Simmons
2001-11-26 10:57 ` Sean M. Doran [this message]
2001-11-26 19:11 ` Dan Cross
2001-11-21 23:38 David Gordon Hogan
2001-11-21 23:59 ` Andrew Simmons
2001-11-22 9:57 ` Thomas Bushnell, BSG
2001-11-22 13:24 forsyth
2001-11-22 13:29 ` Boyd Roberts
2001-11-23 9:34 ` Thomas Bushnell, BSG
2001-11-26 19:13 ` Dan Cross
2001-11-23 9:44 forsyth
2001-11-26 9:59 ` Thomas Bushnell, BSG
2001-11-23 11:58 forsyth
2001-11-26 11:07 ` Sean M. Doran
2001-11-26 19:22 ` Dan Cross
2001-11-27 10:16 ` Thomas Bushnell, BSG
2001-11-27 18:55 ` Dan Cross
2001-11-24 3:26 Scott Schwartz
[not found] <rsc@plan9.bell-labs.com>
2001-11-24 5:32 ` Russ Cox
2001-11-24 20:04 ` Scott Schwartz
2001-11-24 10:48 forsyth
2001-11-26 11:09 nigel
2001-11-26 11:23 Sean M. Doran
2001-11-26 19:28 ` Dan Cross
2001-11-27 8:57 ` Steve Kilbane
2001-11-27 14:39 ` Boyd Roberts
2001-11-27 19:56 ` Steve Kilbane
2001-11-27 22:26 ` Boyd Roberts
2001-11-29 16:55 ` Matt
2001-11-27 10:16 ` Thomas Bushnell, BSG
2001-11-27 18:59 ` Dan Cross
2001-11-26 11:52 Fco.J.Ballesteros
2001-11-26 12:07 Fco.J.Ballesteros
2001-11-27 5:31 David Gordon Hogan
2001-11-27 11:00 forsyth
2001-11-27 11:28 forsyth
2001-11-29 17:33 jmk
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=yty9ktu7er.fsf@cesium.clock.org \
--to=smd@cesium.clock.org \
--cc=9fans@cse.psu.edu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).