Re: Poor TCP Performance 2.4.0-10 <-> Win98 SE PPP

From: David S. Miller (davem@redhat.com)
Date: Tue Nov 07 2000 - 01:56:07 EST


   Date: Mon, 06 Nov 2000 22:44:00 -0800
   From: Jordan Mendelson <jordy@napster.com>

   Attached to this message are dumps from the windows 98 machine using
   windump and the linux 2.4.0-test10. Sorry the time stamps don't match
   up.

Ok, something is "odd" at the win98 side, I quote the win98 log:

   22:34:36.069773 64.124.41.179.8888 > 209.179.194.175.1084: P 1:19(18) ack 44 win 5840 (DF)
   22:34:36.069837 64.124.41.179.8888 > 209.179.194.175.1084: P 19:553(534) ack 44 win 5840 (DF)

Linux sends 1-->553

Since this is in the win98 log, it saw this data, but refuses to
acknowledge it and the retransmit timeout expires on the Linux side.

   22:34:39.049788 64.124.41.179.8888 > 209.179.194.175.1084: P 1:21(20) ack 44 win 5840 (DF)

So Linux resends 1-->21

   22:34:39.051638 209.179.194.175.1084 > 64.124.41.179.8888: P 44:56(12) ack 21 win 65260 (DF)

Win98 sends data, and only acknowledges the resent data from Linux.

   22:34:39.245138 64.124.41.179.8888 > 209.179.194.175.1084: P 21:555(534) ack 44 win 5840 (DF)
   22:34:39.245208 64.124.41.179.8888 > 209.179.194.175.1084: P 557:1091(534) ack 56 win 5840 (DF)

Win98 machine receives bytes 21-->1091 from Linux, Linux also is
acknowledging Win98's data up to 56, but...

   22:34:41.739438 209.179.194.175.1084 > 64.124.41.179.8888: P 44:456(412) ack 21 win 65260 (DF)

Win98 still claims it only saw up to byte 21 from Linux. Win98 also
resends its data, therefore it has not seen Linux's ACKs either.

And this goes on and on.

Just to be absolutely sure, 64.124.41.179 is the Linux machine, right?
If so, Win98 is dropping packets it did in fact receive correctly,
before Win98's TCP has a look at them.

WHOA, wait a second! From the Linux side log:

23:36:16.261533 64.124.41.179.8888 > 209.179.194.175.1084: P 1:21(20) ack 44 win 5840 (DF)
23:36:16.261669 64.124.41.179.8888 > 209.179.194.175.1084: P 21:557(536) ack 44 win 5840 (DF)
23:36:19.261055 64.124.41.179.8888 > 209.179.194.175.1084: P 1:21(20) ack 44 win 5840 (DF)

The equivalent packets from the win98 log:

22:34:36.069773 64.124.41.179.8888 > 209.179.194.175.1084: P 1:19(18) ack 44 win 5840 (DF)
22:34:36.069837 64.124.41.179.8888 > 209.179.194.175.1084: P 19:553(534) ack 44 win 5840 (DF)
22:34:39.049788 64.124.41.179.8888 > 209.179.194.175.1084: P 1:21(20) ack 44 win 5840 (DF)

(ie. Linux sends bytes 1:21 both the first time, and when it
 retransmits that data. However win98 "sees" this as 1:19 the first
 time and 1:21 during the retransmit by Linux)

That is bogus. Something is mangling the packets between the Linux
machine and the win98 machine. You mentioned something about
bandwidth limiting at your upstream provider, any chance you can have
them turn this bandwidth limiting device off?

Or maybe earthlink is using some packet mangling device?

It is clear though, that something is messing with or corrupting the
packets. One thing you might try is turning off TCP header
compression for the PPP link, does this make a difference?

Later,
David S. Miller
davem@redhat.com
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Tue Nov 07 2000 - 21:00:21 EST