Problem:
- Product Name: VisiBroker for C
- Product Version: 7.0 and later
- Product Component: Communication
- Platform/OS Version: Solaris, Windows
Resolution:
vbroker.ce.iiop.connection.rcvBufSize or ORBrcvbufsize,
vbroker.se.iiop_ts.scm.iiop_ts.listener.rcvBufSize,
If these properties are not specified, the default buffer size (0) implies a system dependent value. Similarly, if these values are set beyond the range, VisiBroker will not be using them in the socket options. Instead, VisiBroker leaves them to the OS and use the values of the respective TCP parameters.
In Solaris, the tcp parameter for send buffer is tcp_xmit_hiwat and the accepted range is 4096 to 1,073,741,824. The tcp parameter for receive buffer is tcp_recv_hiwat and the accepted range is 2048 to 1,073,741,824. You can use "ndd" command of Solaris to modify these kernal parameters. The default values for send and receive buffer in Solaris 10 is 49152.
In Windows 2000 and Windows Server 2003, the Windows TCP/IP stack is designed to self-tune itself in most environments, and uses larger default window sizes than earlier versions. The default receive window size that TCP advertises in Windows Server 2003 depends on the following, in order of precedence:
-
The value for the SO_RCVBUF Windows Sockets option for the connection. This option specifies the total per-socket buffer space reserved for receive operations.
-
The per-interface TcpWindowSize registry value.
-
The GlobalMaxTcpWindowSize registry value.
-
Autodetermination based on the bit rate of the transmission media, as reported by the network.
If none of the preceding sets the window size, the default receive window size is set as follows:
-
For a transmission below 1 megabit per second (Mbps), 8 KB.
-
For a 1-100 Mbps transmission, 17 KB.
-
For a transmission greater than 100 Mbps, 64 KB.
For Windows 7 and Vista, TCP auto-tuning is introduced. It enables TCP window scaling by default. This feature determines the optimal receive window size by measuring the BDP (Bandwidth-delay product) and the application retrieve rate and adapting the window size for ongoing transmission path and application conditions. User no longer need to manually change TcpWindowSize registry key value. To check state or current setting of TCP-auto-Tuning, user can use following command in command prompt:
netsh interface tcp show globalAuto-tuning can be disabled by using command:
netsh interface tcp set global autotuning=disabledWhen auto-tuning is disabled, TCP receive window size is set to default 65536 bytes.
References:
- Oracle Solaris Tunable Parameters Reference Manual, Chapter 4 Internet Protocol Suite Tunable Parameters, TCP Tunable
- MSDN Blogs, Windows Core Networking, Receive Window Auto-Tuning on Vista
- TechNet Magazine, 2007 January, The Cable Guy: TCP Receive Window Auto-Tuning
- Description of the Receive Window Auto-Tuning feature for HTTP traffic on Windows Vista-based computers
#Security
#VisiBroker




