Organization: USENET news support, CONVEX Computer Corp, Richardson, Tx. USA
Followup-To: comp.protocols.tcp-ip
X-Disclaimer: This message was written by a user at CONVEX Computer
Corp. The opinions expressed are those of the user and
not necessarily those of CONVEX.
Lines: 39
oak@odda.er.sintef.no (Olav Kvittem) writes:
- I want to set the TCP window selectively for high performance sessions on a high
- bandwith*delay network.
-
- I have tried to set the max windowsize for TCP on BSD-type systems with the
- setsockopt( SO_RCVBUF ). That means setting the TCP internal receive buffer.
- well with SunOs 4.1.1/2, Cray/Unicos v6.013 and HP/UX systems, but DECstation
- 5000 Ultrix v4.2 does not announce a higher window than 32K on the initial SYN
-
- What is the actual mechanism for TCP to determine max inital receive window
- size and for me to influence it ?
-
- Common to all systems above except Unicos is that they does not accept a higher
- buffersize than about 50K - why is that ?
-
- I guess that you can generate a kernel with fixed TCP buffersize larger than
- 50K. Then all TCP session for that system would have let say 64K window. Would that be more harmful to slow speed, normal delay , 64Kbps, networks than a 4K window ?
-
It sounds like you are doing the right thing. Unless you have the
sources to the kernel there probably isn't a lot more you can do about it.
The larger buffer may still be buying you some performance even though
it isn't advertised. It should allow the window to stay all the way
open even if the application's read is delayed.
The problem with BSD based tcp is that it had hidden assumptions, and
some not so hidden, that they were going over ethernet or some other network
that didn't need a big window. This has slowly changed, but modifying tcp
is pretty scary. tcp_input() has over 1000 lines in one routine full of
gotos and subroutines with magic side effects.
I suspect the DECstation still has the window stuff declared as signed
16 bit numbers. I have no idea where the 50k limit is coming from.
One thing you might want to watch out for is that some implementations
of tcp don't work very well if the socket buffers aren't the same size