[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <AE90C24D6B3A694183C094C60CF0A2F6026B7110@saturn3.aculab.com>
Date: Wed, 16 Jan 2013 12:22:43 -0000
From: "David Laight" <David.Laight@...LAB.COM>
To: "Cong Wang" <amwang@...hat.com>, <netdev@...r.kernel.org>
Cc: "Eric Dumazet" <eric.dumazet@...il.com>,
"Rick Jones" <rick.jones2@...com>,
"Stephen Hemminger" <shemminger@...tta.com>,
"David S. Miller" <davem@...emloft.net>,
"Thomas Graf" <tgraf@...g.ch>
Subject: RE: [RFC Patch net-next] tcp: add a global sysctl to control TCP delayed ack
> According to previous discussion, it seems there is no
> reasonable heuristics.
>
> Similar to TCP_QUICK_ACK option, but for people who can't
> modify the source code and still wants to control
> TCP delayed ACK behavior.
>
> Makes any sense?
A sysctl is a bit of a big hammer, it probably isn't necessary
to disable delayed acks on all connections.
IIRC the related problems I saw were really on the sending
side when Nagle is disabled and it is doing 'slow start'.
Globally disabling on connections that have Nagle disabled
might be a possibility - but it is the Nagle parameter
at the other end that matters.
Perhaps the sending side, after sending 4 small frames immediately,
could send 1 or 2 additional full sized frames in order to
provoke an ack (IIRC an ack is sent if there are 2 full sized
frames of data unacked).
The other problem is that 'slow start' is restarted very
aggressively - whenever there is no unacked data.
If you have a very low latency connection and aren't doing
continuous bulk transfer it is restarted for every short
burst of transmits - effectively after every received ack.
There really ought to have to be a moderate idle time
before 'slow start' is restarted.
David
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists