RE: [PATCH net-next] tcp: auto corking

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> From: Rick Jones
> On 12/06/2013 02:30 AM, David Laight wrote:
> >> From: Eric Dumazet <edumazet@xxxxxxxxxx>
> >>
> >> With the introduction of TCP Small Queues, TSO auto sizing, and TCP
> >> pacing, we can implement Automatic Corking in the kernel, to help
> >> applications doing small write()/sendmsg() to TCP sockets.
> >
> > Presumably this has the greatest effect on connections with Nagle
> > disabled?
> 
> I was wondering why Nagle didn't catch these things as well.  The
> netperf command line Eric provided though didn't include the
> test-specific -D option that would have disabled Nagle.  At least not
> unless the "super_netperf" wrapper was adding it.
> 
> So, why doesn't Nagle catch what is presumably a sub-MSS send while
> there is data outstanding on the connection?

Nagle should block sends after 2 short sends (waiting for mss or ack).
Trouble is Nagle is only any use for single-directional traffic
and command-response where both messages are smaller than the mss.
For everything else Nagle is a right PITA.

Of course, if you disable Nagle slow start and delayed acks conspire
together to seriously reduce throughput on zero-delay local links.
(Try sending 50 bytes every millisecond with no return traffic.
Slow start only allows 4 packets be sent (not 4 MSS) even when an
mss of data is buffered, but that isn't enough to force an ack out
before the timer expires.)

	David

��.n��������+%������w��{.n����z����ܨ}���Ơz�j:+v�����w����ޙ��&�)ߡ�a����z�ޗ���ݢj��w�f





[Index of Archives]     [Linux Kernel Discussion]     [TCP Instrumentation]     [Ethernet Bridging]     [Linux Wireless Networking]     [Linux WPAN Networking]     [Linux Host AP]     [Linux WPAN Networking]     [Linux Bluetooth Networking]     [Linux ATH6KL Networking]     [Linux Networking Users]     [Linux Coverity]     [VLAN]     [Git]     [IETF Annouce]     [Linux Assembly]     [Security]     [Bugtraq]     [Yosemite Information]     [MIPS Linux]     [ARM Linux Kernel]     [ARM Linux]     [Linux Virtualization]     [Linux IDE]     [Linux RAID]     [Linux SCSI]