From owner-freebsd-net Fri Mar 3 12:27:19 2000 Delivered-To: freebsd-net@freebsd.org Received: from mrout1.yahoo.com (mrout1.yahoo.com [208.48.125.95]) by hub.freebsd.org (Postfix) with ESMTP id 165EC37B686 for ; Fri, 3 Mar 2000 12:27:08 -0800 (PST) (envelope-from jayanth@yahoo-inc.com) Received: from milk.yahoo.com (milk.yahoo.com [206.251.16.37]) by mrout1.yahoo.com (8.10.0.Beta10/8.10.0.Beta6/y.out) with ESMTP id e23KQfc32241; Fri, 3 Mar 2000 12:26:41 -0800 (PST) Received: (from jayanth@localhost) by milk.yahoo.com (8.8.8/8.6.12) id MAA24800; Fri, 3 Mar 2000 12:26:41 -0800 (PST) Date: Fri, 3 Mar 2000 12:26:41 -0800 From: jayanth To: Jonathan Lemon Cc: =?iso-8859-1?Q?R=E9mi_Guyomarch?= , net@FreeBSD.ORG Subject: Re: TCP performance problems, Linux faster than FreeBSD ? Message-ID: <20000303122641.B23208@yahoo-inc.com> References: <200003031759.LAA03466@prism.flugsvamp.com> <20000303194730.A26727@pingoo.ifn.fr> <20000303125536.A307@prism.flugsvamp.com> <20000303195724.A26837@pingoo.ifn.fr> <20000303135950.C307@prism.flugsvamp.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Mailer: Mutt 1.0.1us In-Reply-To: <20000303135950.C307@prism.flugsvamp.com>; from jlemon@flugsvamp.com on Fri, Mar 03, 2000 at 01:59:50PM -0600 Sender: owner-freebsd-net@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org Was the SACK feature being used for the connection from the Linux machine ? jayanth Jonathan Lemon (jlemon@flugsvamp.com) wrote: > Okay, I took a look at the trace you sent me, and yup, the answer > is, "they're broken". :-( > > Somewhere in the transfer, some packets are getting lost, which > in turn leads to the following steady-state scenario: > > After 3 duplicate acks (caused by receiving older re-transmitted packets), > the sender (mistakenly) presumes that a packet was lost and re-transmits, > in accordance to the VJ fast-retransmit algorithm. Call the sequence > number of this re-transmitted packet 'A'. The sender continues sending > at the leading edge of the window, say, on sequence 'F'. > > Now, another older retransmitted packet is received, and a 4th duplicate > ack is sent. This appears to cause the sender to abandon transmitting > at the leading edge of the window, and start re-transmitting segments > B-F at full speed. > > Since at this point, no packets are being lost, the receiver gets the > original sequence 'F', that was transmitted, then must ack the duplicate > retransmits. This leads to duplicate acks, starting the whole cycle again. > > > I would guess the problem is primarily caused because the sender does > not correctly implement VJ fast-recovery, and slow-start is never > entered, so there is no chance for re-synchronization. > > Linux implements SACK (selective ack), which I would guess allows it > to work around this problem; it doesn't have to send multiple duplicate > acks in a row. > > Jonathan To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-net" in the body of the message