public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* TCP acking too fast
@ 2001-10-14  0:23 Mika Liljeberg
  2001-10-14  6:40 ` David S. Miller
  2001-10-15 20:59 ` Bill Davidsen
  0 siblings, 2 replies; 36+ messages in thread
From: Mika Liljeberg @ 2001-10-14  0:23 UTC (permalink / raw)
  To: linux-kernel

Hi all,

It seems that recent (and maybe not so recent) linux kernels have a TCP
problem that causes them to acknowledge almost every segment. While,
strictly speaking, this is not against the spec, any sane TCP only acks
every second segment in steady state. The statistics appended below
illustrate the problem.

Why do I care? Because I'm connected through a cable network with a
severe bandwidth asymmetry; the upstream is rate limited to 256 kbps,
while the downstream can theoretically yield 10 Mbps (assuming a quiet
period). Right now, the excessive ack rate seems to be a limiting factor
on peak performance.

I've already disabled quickacks, replaced the receive MSS estimate with
advertised MSS in the ack sending policy (two places), and removed one
dubious "immediate ack" condition from send_delay_ack(). The annoying
thing is that none of this seem to make any real difference. I must be
missing something huge that's right in front of my nose, but I'm
starting to run out of steam.

Any thoughts on this?

Regards,

	MikaL

Some stats from a unidirectional 6MB transfer:

c->d:                                  d->c:
total packets:          3643           total packets:          4498
ack pkts sent:          3642           ack pkts sent:          4498
pure acks sent:         3640           pure acks sent:            2
unique bytes sent:       108           unique bytes sent:   6161570
actual data pkts:          1           actual data pkts:       4494
actual data bytes:       108           actual data bytes:   6161570
rexmt data pkts:           0           rexmt data pkts:           0
rexmt data bytes:          0           rexmt data bytes:          0
outoforder pkts:           0           outoforder pkts:          10
pushed data pkts:          1           pushed data pkts:       3043
SYN/FIN pkts sent:       1/1           SYN/FIN pkts sent:       1/1
req 1323 ws/ts:          Y/Y           req 1323 ws/ts:          Y/Y
adv wind scale:            0           adv wind scale:            0
req sack:                  Y           req sack:                  Y
sacks sent:               28           sacks sent:                0
mss requested:          1460 bytes     mss requested:          1460
bytes
max segm size:           108 bytes     max segm size:          1448
bytes
min segm size:           108 bytes     min segm size:            92
bytes
avg segm size:           107 bytes     avg segm size:          1371
bytes
max win adv:           63712 bytes     max win adv:           32120
bytes
min win adv:            5840 bytes     min win adv:           32120
bytes
zero win adv:              0 times     zero win adv:              0
times
avg win adv:           63515 bytes     avg win adv:           32120
bytes
initial window:          108 bytes     initial window:          489
bytes
initial window:            1 pkts      initial window:            1 pkts
ttl stream length:       108 bytes     ttl stream length:   6161570
bytes
missed data:               0 bytes     missed data:               0
bytes
truncated data:           46 bytes     truncated data:      5882942
bytes
truncated packets:         1 pkts      truncated packets:      4494 pkts
data xmit time:        0.000 secs      data xmit time:       10.663 secs
idletime max:           98.1 ms        idletime max:           98.0 ms
throughput:               10 Bps       throughput:           572079 Bps

^ permalink raw reply	[flat|nested] 36+ messages in thread

end of thread, other threads:[~2001-10-15 20:59 UTC | newest]

Thread overview: 36+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2001-10-14  0:23 TCP acking too fast Mika Liljeberg
2001-10-14  6:40 ` David S. Miller
2001-10-14  7:05   ` Mika Liljeberg
2001-10-14  7:47     ` David S. Miller
2001-10-14  7:51       ` Mika Liljeberg
2001-10-14  8:12         ` David S. Miller
2001-10-14  8:39           ` Mika Liljeberg
2001-10-14  9:03             ` David S. Miller
2001-10-14  9:15               ` Mika Liljeberg
2001-10-14  9:16                 ` David S. Miller
2001-10-14  9:25               ` Andi Kleen
2001-10-14  9:39                 ` David S. Miller
2001-10-14 11:30                   ` Andi Kleen
2001-10-14 11:49                     ` Mika Liljeberg
2001-10-14 14:05                       ` Andi Kleen
2001-10-14 14:26                         ` Mika Liljeberg
2001-10-14 16:12                           ` Andi Kleen
2001-10-14 16:55                             ` Mika Liljeberg
2001-10-14 17:07                               ` kuznet
2001-10-14 17:26                                 ` Mika Liljeberg
2001-10-14 17:35                                   ` kuznet
2001-10-14 17:56                                     ` Mika Liljeberg
2001-10-14 18:20                                       ` kuznet
2001-10-14 18:48                                         ` Mika Liljeberg
2001-10-14 19:12                                           ` kuznet
2001-10-14 19:32                                             ` Mika Liljeberg
2001-10-14 19:40                                               ` kuznet
2001-10-14 20:06                                                 ` Mika Liljeberg
2001-10-15 18:40                                                   ` kuznet
2001-10-15 19:15                                                     ` Mika Liljeberg
2001-10-15 19:38                                                       ` Mika Liljeberg
2001-10-14 13:14                     ` [PATCH] " Mika Liljeberg
2001-10-14 16:36                     ` kuznet
2001-10-14  7:50     ` David S. Miller
2001-10-14  7:53       ` Mika Liljeberg
2001-10-15 20:59 ` Bill Davidsen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox