Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 5 Mar 2000 16:16:38 -0600
From:      Jonathan Lemon <jlemon@flugsvamp.com>
To:        =?iso-8859-1?Q?R=E9mi_Guyomarch?= <rguyom@mail.dotcom.fr>
Cc:        freebsd-net@FreeBSD.ORG, Jonathan Lemon <jlemon@flugsvamp.com>, jayanth <jayanth@yahoo-inc.com>
Subject:   Re: TCP performance problems, Linux faster than FreeBSD ?
Message-ID:  <20000305161638.A85421@prism.flugsvamp.com>
In-Reply-To: <20000305193317.B22005@pingoo.ifn.fr>
References:  <20000303165052.C23732@pingoo.ifn.fr> <20000305193317.B22005@pingoo.ifn.fr>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, Mar 05, 2000 at 07:33:17PM +0100, Rémi Guyomarch wrote:
> So, Linux use the time of the last non-acked packet as a starting
> point for the 200ms timer, but *BSD stacks use a fixed 'clock'.
> This is completely different !
> 
> I put an ugly hack in sys/netinet/tcp_timer.c to try to fix the
> problem. And now I'm getting **way** less duplicate packets.

Hm, yes.  That's the way it works -- BSD uses a fixed clock
with a maximum delay of 200ms and a statistical average of 100ms.

You may want to try upgrading to 4.0 (about to be released shortly).
Not only does it change the timer behavior to a per-packet (instead
of global basis) but it allows you to tweak the delayed-ACK time
via sysctl.  E.g.:

	net.inet.tcp.delacktime: 100


> It's not very clear to me why sending fewer acks eliminates the
> duplicate packet problem.  Maybe my 64k leased line isn't really
> full-duplex (it's physically made of two wires, so it can't be really
> full-duplex anyway). So sending an ack while a packet is received
> cause some problems and some of my acks are lost in the process.

I can't tell from the traces that I have.  It seems that the server
has a completely broken fast-recovery algorithm, but it's not always
triggered.  My guess is that it may be sensitive to the timing of the
ACKs being returned, as these are used to caculate the RTO.  Perhaps
Linux (with less ACK `jitter') simply interacts more favorably with
the server's timeouts by returning the ACKs when they are expected.
--
Jonathan


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?20000305161638.A85421>