Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 3 Mar 2000 16:50:52 +0100
From:      =?iso-8859-1?Q?R=E9mi_Guyomarch?= <rguyom@mail.dotcom.fr>
To:        freebsd-net@freebsd.org
Subject:   TCP performance problems, Linux faster than FreeBSD ?
Message-ID:  <20000303165052.C23732@pingoo.ifn.fr>

next in thread | raw e-mail | index | archive | help
Hi,

I have a problem with FreeBSD 3.4-STABLE. When I'm downloading from some
sites I see a large number of duplicate packets comming in. If I download the
same file(s) with a Linux 2.2.14 box, I don't see those duplicate packets.
Well, a lot less I mean.

I tried to move our Squid proxy from the (too old) Linux box to the FreeBSD
one, but after some time I noticed the not so great performance and the large 
number of duplicate acks, packets and bytes with 'netstat -p tcp'.


For example, I download something from msvaus.www.conxion.com using FreeBSD
and Linux. Here's the breakdown of packets I'm receiving :
(cut'n paste from a 'tcptrace' output)

                     FreeBSD          Linux

total packets:           375            304
ack pkts sent:           375            304
pure acks sent:            1              1
unique bytes sent:    409507         409507
actual data pkts:        373            302
actual data bytes:    515333         428792
rexmt data pkts:          76 (!!)        15      <<----
rexmt data bytes:     105826 (!!)     19285      <<----
outoforder pkts:          19             11
pushed data pkts:          9              7
SYN/FIN pkts sent:       1/1            1/1
req 1323 ws/ts:          N/N            N/N
adv wind scale:            0              0
mss requested:          1460 bytes     1460 bytes
max segm size:          1460 bytes     1460 bytes
min segm size:            67 bytes       92 bytes
avg segm size:          1381 bytes     1419 bytes
max win adv:            8760 bytes     8760 bytes
min win adv:            8619 bytes     8619 bytes
zero win adv:              0 times        0 times
avg win adv:            8619 bytes     8619 bytes
initial window:         1460 bytes     1460 bytes
initial window:            1 pkts         1 pkts

The 'rexmt' lines are the number of duplicate packets & bytes conxion.com
is sending to my boxes. Why am I receiving 25% duplicate bytes on my fbsd
box and only 5% with Linux ??

I tried to play a bit with sysctl variables, but without much success (see
below).

I'm on a 64K leased line and I have a ~190ms (ICMP) RTT to
msvaus.www.conxion.com.

The easy answer is "conxion.com is broken", but even if they are, why Linux
doesn't seems affected ?


Here's my setup :
---------------

FreeBSD 3.4-STABLE (last cvsup & buildworld : Feb 17)

de0: <Digital 21140A Fast Ethernet> rev 0x20 int a irq 10 on pci0.14.0
de0: ACCTON EN1207 21140A [10-100Mb/s] pass 2.0

de0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        inet x.x.x.x netmask 0xffffff00 broadcast x.x.x.x
        ether 00:00:e8:2b:bc:64
        media: autoselect (100baseTX) status: active
        supported media: autoselect 100baseTX <full-duplex> 100baseTX 10baseT/UTP <full-duplex> 10baseT/UTP
tun0: flags=8010<POINTOPOINT,MULTICAST> mtu 1500
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
        inet 127.0.0.1 netmask 0xff000000

The Linux box is an old SparcStation 10 running 2.2.14 and the network
card is a "SUNW,hme" (BigMac) 100baseTX card.


root@diabolo ~ sysctl net.inet.tcp
net.inet.tcp.rfc1323: 1          (was 0)
net.inet.tcp.rfc1644: 0
net.inet.tcp.mssdflt: 512
net.inet.tcp.rttdflt: 3
net.inet.tcp.keepidle: 14400
net.inet.tcp.keepintvl: 150
net.inet.tcp.sendspace: 32768    (was 16k initially)
net.inet.tcp.recvspace: 32768    (         //      )
net.inet.tcp.keepinit: 150
net.inet.tcp.log_in_vain: 0
net.inet.tcp.delayed_ack: 1
net.inet.tcp.pcbcount: 6
net.inet.tcp.always_keepalive: 1


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-net" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20000303165052.C23732>