Here it is:
Windows size is the size of data TCP packets being received can be buffered on the local machine. The TCP receive window size is the amount of receive data (in bytes) that can be buffered at one time on a connection. The sending host can send only that amount of data before waiting for acknowledgments for data sent and window updates from the receiving host. Windows 2000 TCP/IP is designed to tune itself in most environments, and uses larger default window sizes than earlier versions.
Instead of using a hard-coded default receive window size, TCP adjusts to even increments of the maximum segment size (MSS) negotiated during connection setup. Matching the receive window to even increments of the MSS increases the percentage of full-sized TCP segments used during bulk data transmission. The receive window size defaults to a value calculated as follows:
The first connection request sent to a remote host advertises a receive window size of 16 kilobytes (KB) or 16,384 bytes.
Upon establishing the connection, the receive window size is rounded up to an integral multiple of the TCP maximum segment size (MSS) that was negotiated during connection setup.
If the rounded-up value is not at least four times the MSS, thenit is adjusted to 4 * MSS, with a maximum size of 64 KB, unless a window scaling option (RFC 1323) is in effect.
For Ethernet-based TCP connections, the window is normally set to 17,520 bytes, or 16 KB rounded up to twelve 1,460-byte segments. In previous versions of MS Windows NT TCP/IP, the Ethernet window used was 8,760 bytes, or six MSS-sized segments.
There are two methods for setting the receive window size to specific values:
The TcpWindowSize registry entry (HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interface\ ).
On a per-socket basis with the setsockopt( ) Windows Sockets function.