[comp.protocols.tcp-ip] Changing TCP window size on a SUN

tony@uhheph.phys.hawaii.edu (Tony Querubin) (12/18/90)

I need to change the TCP window size that a SUN advertises to other hosts
that make a connection.  Thinking that it might be a configurable kernel
option, I looked through the various /sys/netinet files for a TCP WINDOW
parameter and found none.  On a second pass through the files I noticed
a definition for TCPOPT_MAXSEG in tcp.h.  

Question:  Can anyone verify for me that this is equivalent to the TCP window
parameter in KA9Q?  I'd like to know this BEFORE I reconfigure the kernel.

Essentially, I want any host making a connection to this SUN to send only one 
TCP packet at a time.  The reason for this is that the path to the SUN goes
through a PC using a 3C501 ethernet board.

Antonio Querubin
querubin@uhunix.uhcc.hawaii.edu

scott@tdc.rtp.dg.com (John Scott) (12/19/90)

In article <10703@uhccux.uhcc.Hawaii.Edu>, tony@uhheph.phys.hawaii.edu (Tony Querubin) writes:
|> I need to change the TCP window size that a SUN advertises to other hosts
|> that make a connection.  Thinking that it might be a configurable kernel
|> option, I looked through the various /sys/netinet files for a TCP WINDOW
|> parameter and found none.  On a second pass through the files I noticed
|> a definition for TCPOPT_MAXSEG in tcp.h.  
|> 
|> Question:  Can anyone verify for me that this is equivalent to the TCP window
|> parameter in KA9Q?  I'd like to know this BEFORE I reconfigure the kernel.
|> 
|> Essentially, I want any host making a connection to this SUN to send only one 
|> TCP packet at a time.  The reason for this is that the path to the SUN goes
|> through a PC using a 3C501 ethernet board.
|> 
|> Antonio Querubin
|> querubin@uhunix.uhcc.hawaii.edu
|> 

You're confusing window size with maximum segment size.  There is nothing you 
can do about the TCP Maximum Segment Size, nor should you want to.  The 
MSS is calculated based on the MTU size of the interface used for communication
(or 576 if communicating through a gateway).  If the version of SunOS you're
using does not use that algorythm then you are out of luck (I'm pretty sure
that SunOS 4.x uses the interface MTU.  Older SunOS's don't.)

The window size is the amount of data a communicating peer may send.  This is
tied to the socket buffer space.  This is controlled using the socket option
SO_RCVBUF (SO_SNDBUF is used to control the socket send buffer space).  As with
TCP MSS, newer SunOS supports this option, older version don't.  With older 
SunOS's you may be able to patch your kernel to use larger send and receive 
windows.  There are two global variables, tcp_sendspace and tcp_recvspace, that
control the amount of buffer space reserved. (If I got the names wrong, don't
flame me just give the right names.)

As for KA9Q, I don't know for sure though I would expect it to do the right thing
(depending on the version you're using).

P.S. Has anyone tried using a server other than a SUN for SUN Sparc stations?  You
may be in for a nasty surprise.  Ask your SUN rep for details.
-- 

John A. Scott			scott@dg-rtp.dg.com
Data General, RTP, NC	<some area of the know world>!mcnc!rti!xyzzy!scott