Re: revision RFC 2001 (draft-ietf-tcpimpl-cong-control-00.txt)
Andi Kleen <ak@muc.de> Thu, 13 August 1998 02:50 UTC
Return-Path: <owner-tcp-impl@relay.engr.sgi.com>
Message-ID: <19980813045030.A1120@kali.lrz-muenchen.de>
Date: Thu, 13 Aug 1998 04:50:30 +0200
From: Andi Kleen <ak@muc.de>
To: Kacheong.Poon@eng.Sun.COM, Andi Kleen <ak@muc.de>
Cc: David Borman <dab@bsdi.com>, tcp-impl@cthulhu.engr.sgi.com, mathis@psc.edu
Subject: Re: revision RFC 2001 (draft-ietf-tcpimpl-cong-control-00.txt)
References: <k2iujx3mw9.fsf@zero.aec.at> <Roam.SIMC.2.0.6.902971866.24899.kcpoon@jurassic>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
X-Mailer: Mutt 0.93i
In-Reply-To: <Roam.SIMC.2.0.6.902971866.24899.kcpoon@jurassic>; from Kacheong.Poon@eng.Sun.COM on Thu, Aug 13, 1998 at 03:31:06AM +0200
Sender: owner-tcp-impl@relay.engr.sgi.com
Precedence: bulk
Status: RO
Content-Length: 1246
Lines: 40
On Thu, Aug 13, 1998 at 03:31:06AM +0200, Kacheong.Poon@eng.Sun.COM wrote: > > Most BSD implementation (at least Free/NetBSD) don't have the problem, > > because they simply send an ACK every second packet, no matter how big > > the packets were (this means BSD will send more acks than linux in some > > situations) > > I just got the latest FreeBSD source. The following part of code has not > changed. [...] You're right, FreeBSD does not do this. I just looked at the NetBSD source and somehow believed FreeBSD did the same. Seems I was wrong. In NetBSD the TCP_SETUP_ACK macro controls the ACK behaviour #define TCP_SETUP_ACK(tp, ti) \ do { \ if ((tp)->t_flags & TF_DELACK || \ (tcp_ack_on_push && (ti)->ti_flags & TH_PUSH)) \ tp->t_flags |= TF_ACKNOW; \ else \ TCP_SET_DELACK(tp); \ } while (0) And then in the fast packet receive path: TCP_SETUP_ACK(tp, ti); if (tp->t_flags & TF_ACKNOW) (void) tcp_output(tp); This means FreeBSD has a similar problem to Linux when the path changes and the MTU shrinks during a connection then it'll go into delayed ACK mode even for bulk data. NetBSD fixed it. The FreeBSD algorithm seems to match the original 4.4BSD-Lite code as described in Stephens TCP/IP Ill. V.2 -Andi
- revision RFC 2001 (draft-ietf-tcpimpl-cong-contro… Vern Paxson
- Re: revision RFC 2001 (draft-ietf-tcpimpl-cong-co… Kacheong Poon
- Re: revision RFC 2001 (draft-ietf-tcpimpl-cong-co… Mark Allman
- Re: revision RFC 2001 (draft-ietf-tcpimpl-cong-co… Matt Mathis
- Re: revision RFC 2001 (draft-ietf-tcpimpl-cong-co… David Borman
- Re: revision RFC 2001 (draft-ietf-tcpimpl-cong-co… Kacheong Poon
- Re: revision RFC 2001 (draft-ietf-tcpimpl-cong-co… Andi Kleen
- Re: revision RFC 2001 (draft-ietf-tcpimpl-cong-co… Andi Kleen
- Re: revision RFC 2001 (draft-ietf-tcpimpl-cong-co… Andi Kleen
- Re: revision RFC 2001 (draft-ietf-tcpimpl-cong-co… Kacheong.Poon
- Re: revision RFC 2001 (draft-ietf-tcpimpl-cong-co… Kevin M. Lahey
- Re: revision RFC 2001 (draft-ietf-tcpimpl-cong-co… Andi Kleen
- Re: revision RFC 2001 (draft-ietf-tcpimpl-cong-co… Vern Paxson
- Re: revision RFC 2001 (draft-ietf-tcpimpl-cong-co… Vern Paxson
- Re: revision RFC 2001 (draft-ietf-tcpimpl-cong-co… Vern Paxson