From owner-freebsd-net@FreeBSD.ORG Fri Oct 17 11:30:54 2003 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 9A87C16A4B3 for ; Fri, 17 Oct 2003 11:30:54 -0700 (PDT) Received: from mtiwmhc13.worldnet.att.net (mtiwmhc13.worldnet.att.net [204.127.131.117]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9114A43F93 for ; Fri, 17 Oct 2003 11:30:53 -0700 (PDT) (envelope-from cmascott@att.net) Received: from callisto.local (70.cambridge-01rh16rt.ma.dial-access.att.net[12.91.17.70]) by worldnet.att.net (mtiwmhc13) with ESMTP id <2003101718305211300p6iase>; Fri, 17 Oct 2003 18:30:52 +0000 Received: from callisto.local (localhost.local [127.0.0.1]) by callisto.local (8.12.8p1/8.12.8) with ESMTP id h9HIUoxf000573 for ; Fri, 17 Oct 2003 14:30:50 -0400 (EDT) (envelope-from cmascott@callisto.local) Received: (from cmascott@localhost) by callisto.local (8.12.8p1/8.12.8/Submit) id h9HIUnSr000572 for freebsd-net@freebsd.org; Fri, 17 Oct 2003 14:30:49 -0400 (EDT) Date: Fri, 17 Oct 2003 14:30:49 -0400 (EDT) From: Carl Mascott Message-Id: <200310171830.h9HIUnSr000572@callisto.local> To: freebsd-net@freebsd.org Subject: TCP window size issues X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 17 Oct 2003 18:30:54 -0000 I have a few TCP window size issues. 1. In FreeBSD 4.8-R the kernel default recv window is 56 KB. This is so large that it causes dropped packets due to queue overflow with my V.90 link (BW 5 KB/s on compressed data). 2. The 4.4BSD TCP implementation has never had the correct precedence rules for setting window sizes. App-set values should take precedence over all others. Routing table values should take precedence over kernel default values. The fix for PR 11966 alters the behavior but still doesn't implement these precedence rules. http://www.freebsd.org/cgi/query-pr.cgi?pr=11966 3. RFC 793 (TCP) says that shrinking the receive window after connection is established is "strongly discouraged". I'm currently shrinking the receive window on my default route (PPP link) from 32 KB to 4 KB with settings in /etc/ppp/ppp.conf. (Had to back out patch in PR 11966.) No problems noticed yet. To avoid shrinking the window I believe I'd have to do the following: - set kernel default send & recv windows to smallest values used on any route - modify all other routes on bootup (with script in /usr/local/etc/rc.d ?) to set desired larger window sizes Keeping the script in sync with the routing table would be a new maintenance headache. How likely am I to get into trouble by shrinking the TCP receive window? Likely enough that I should make the changes above? The patch in PR 11966 was kicking around for about a year before the PR was filed. Was this patch originally intended to solve a TCP compatibility problem caused by shrinking the TCP receive window? Thanks!