From: Rick Jones <rick.jones2@hp.com>
To: David Laight <David.Laight@ACULAB.COM>
Cc: Cong Wang <amwang@redhat.com>,
netdev@vger.kernel.org, Ben Greear <greearb@candelatech.com>,
David Miller <davem@davemloft.net>,
Eric Dumazet <eric.dumazet@gmail.com>,
Stephen Hemminger <shemminger@vyatta.com>,
Thomas Graf <tgraf@redhat.com>
Subject: Re: TCP delayed ACK heuristic
Date: Tue, 18 Dec 2012 09:54:28 -0800 [thread overview]
Message-ID: <50D0ADD4.7030903@hp.com> (raw)
In-Reply-To: <AE90C24D6B3A694183C094C60CF0A2F6026B70F4@saturn3.aculab.com>
On 12/18/2012 08:39 AM, David Laight wrote:
> There are problems with only implementing the acks
> specified by RFC1122.
>
> I've seen problems when the sending side is doing (I think)
> 'slow start' with Nagle disabled.
> The sender would only send 4 segments before waiting for an
> ACK - even when it had more than a full sized segment waiting.
> Sender was Linux 2.6.something (probably low 20s).
> I changed the application flow to send data in the reverse
> direction to avoid the problem.
> That was on a ~0 delay local connection - which means that
> there is almost never outstanding data, and the 'slow start'
> happened almost all the time.
> Nagle is completely the wrong algorithm for the data flow.
If Nagle was already disabled, why the last sentence? And from your
description, even if Nagle were enabled, I would think that it was
remote ACK+cwnd behaviour getting in your way, not Nagle, given that
Nagle is to be decided on a user-send by user-send basis and release
queued data (to the mercies of other heuristics) when it gets to be an
MSS-worth.
The joys of intertwined heuristics I suppose.
Personally, I would love for there to be a way to have a cwnd's
byte-limit's-worth of small segments outstanding at one time - it would
make my netperf-life much easier as I could get rid of the netperf-level
congestion window intended to keep successive requests (with Nagle
already disabled) from getting coalesced by cwnd in a "burst-mode" test.
* And perhaps make things nicer for the test when there is the
occasional retransmission. I used to think that netperf was just
"unique" in that regard, but it sounds like you have an actual
application looking to do that??
rick jones
* because I am trying to (ab)use the burst mode TCP_RR test for a
maximum packets per second through the stack+NIC measurement that isn't
also a context switching benchmark. But I cannot really come-up with a
real-world rationale to support further cwnd behaviour changes.
Allowing a byte-limit-cwnd's worth of single-byte-payload TCP segments
could easily be seen as being rather anti-social :) And
forcing/maintaining the original segment boundaries in retransmissions
for small packets isn't such a hot idea either.
next prev parent reply other threads:[~2012-12-18 17:54 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <270756364.27707018.1355842632348.JavaMail.root@redhat.com>
2012-12-18 15:11 ` TCP delayed ACK heuristic Cong Wang
2012-12-18 16:30 ` Eric Dumazet
2012-12-19 6:54 ` Cong Wang
2012-12-18 16:39 ` David Laight
2012-12-18 17:54 ` Rick Jones [this message]
2012-12-19 9:52 ` David Laight
2012-12-19 7:00 ` Cong Wang
2012-12-19 18:39 ` Rick Jones
2012-12-19 20:59 ` David Miller
2012-12-20 3:23 ` Cong Wang
2012-12-20 9:57 ` David Laight
2012-12-20 12:41 ` Cong Wang
2012-12-19 23:08 ` Eric Dumazet
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=50D0ADD4.7030903@hp.com \
--to=rick.jones2@hp.com \
--cc=David.Laight@ACULAB.COM \
--cc=amwang@redhat.com \
--cc=davem@davemloft.net \
--cc=eric.dumazet@gmail.com \
--cc=greearb@candelatech.com \
--cc=netdev@vger.kernel.org \
--cc=shemminger@vyatta.com \
--cc=tgraf@redhat.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.