In TCP/IP's settings, the TCP receive window size parameter governs how much data a system can receive without sending back an acknowledgment (ACK) packet. The larger the window, the more data can be sent in one burst, and the faster the overall data rate. A window size of 4 Kbytes would mean the system could receive up to 4 Kbytes of data without having to send back an ACK packet. The faster the link, the bigger the window can be without adverse effects (dropped packets, lost data, etc.).
During the three-way handshake at the start of every TCP connection, the window size for the connection is negotiated as being the smallest of the window sizes between both hosts. If both machines have a window size of 32 Kbytes, for instance, the window will be 32 Kbytes, but if the server has a window of 32 Kbytes and the remote host a size of 2 Kbytes (as a client with a dial-up connection might), the window will be set to 2 Kbytes.
Windows 2000 Server comes configured out of the box to use a maximum window size of 8,760 bytes, which is the industry-standard window size for Ethernet. However, if the server in question is being used primarily as an Internet server, it makes sense to ramp up the maximum window size to allow clients who may also have larger window sizes—more common with high-speed connections—to take advantage of this feature. A window size of 32 Kbytes to 64 Kbytes for servers seems to work best.
To change the window size:
- Open the Registry and navigate to
- Add or edit the REG_DWORD value named TcpWindowSize. Set the value to the number of bytes for the maximum window size on the system.
The window size can be set to up to 1GByte in Windows 2000, but most other computers will not be able to honor such a window size.
Serdar Yegulalp is the editor of the Windows 2000 Power Users Newsletter. Check out his Windows 2000 blog for his latest advice and musings on the world of Windows network administrators – please share your thoughts as well!
This was first published in May 2003