Mike Muuss (mike@BRL.ARPA)
Thu, 5 Jun 86 22:16:23 EDT
Sockets themselves buffer a limited amount of data. The size of this socket
buffering varries, depending on the type of socket (ie, pipe, TCP, UDP,
The system-wide default for TCP and UDP can be changed in 4.2 and 4.3 VAX
UNIX systems by using ADB to poke the kernel variables tcp_sendspace and
tcp_recvspace and udp_sendspace and udp_recvspace. These variables become
parameters to the soreserve() routine each time a connection is opened.
Note that in 4.2 the maximum size is 31k, in 4.3 it is 64k-1. These values
are stored in the socket structure in SHORT ints; in 4.2 if the sign bit
comes on, the world will break, thus the 31k limit rather than 32k or 64k-1.
These variables can not casually be increased to LONG ints, because that
would cause the socket struct not to fit into an MBUF, which is currently
necessary, if a tad inelegant. 31k of buffering on each end is, in fact,
Also note that in 4.3 there is a parameter to the setsockopt() sys-call that
can be used to adjust these values on a per-connection basis, rather than
having to change the system-wide defaults. For those of you that have
this, this is the preferred method of increasing buffering.
I don't know at which SUN version the 4.3 capabilities will emerge, but
almost certainly not in SUN 2.x (but I don't actually know).
This archive was generated by hypermail 2.0b3 on Thu Mar 09 2000 - 14:36:34 GMT