From owner-freebsd-net Fri Mar 3 7:51: 5 2000 Delivered-To: freebsd-net@freebsd.org Received: from quercus.ifn.fr (mailhost.ifn.fr [62.161.215.67]) by hub.freebsd.org (Postfix) with ESMTP id 32BF537B625 for ; Fri, 3 Mar 2000 07:50:58 -0800 (PST) (envelope-from rguyom@mail.dotcom.fr) Received: from pingoo.ifn.fr ([192.9.200.33]) by quercus.ifn.fr with SMTP (Microsoft Exchange Internet Mail Service Version 5.5.2232.9) id FLZQQKD2; Fri, 3 Mar 2000 16:50:55 +0100 Received: (from rguyom@localhost) by pingoo.ifn.fr (8.9.3/8.9.3) id QAA24712; Fri, 3 Mar 2000 16:50:53 +0100 Date: Fri, 3 Mar 2000 16:50:52 +0100 From: =?iso-8859-1?Q?R=E9mi_Guyomarch?= To: freebsd-net@freebsd.org Subject: TCP performance problems, Linux faster than FreeBSD ? Message-ID: <20000303165052.C23732@pingoo.ifn.fr> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Mailer: Mutt 1.0.1i Sender: owner-freebsd-net@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org 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: rev 0x20 int a irq 10 on pci0.14.0 de0: ACCTON EN1207 21140A [10-100Mb/s] pass 2.0 de0: flags=8843 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 100baseTX 10baseT/UTP 10baseT/UTP tun0: flags=8010 mtu 1500 lo0: flags=8049 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