TCP window size issues

Carl Mascott cmascott at att.net
Fri Oct 17 11:30:54 PDT 2003


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!


More information about the freebsd-net mailing list