HomeUser's Guide & InformationBuffer/Connection OptimizationRWIN - The TCP/IP Receive Window

2.2. RWIN - The TCP/IP Receive Window

This page applies to Windows 95/2000/NT/XP. This is not an issue with Windows Vista OS.

 

The RWIN is the TCP Receive Window. TCP is a packet based transfer where data packets are moved in chunks rather than one at a time. The RWIN itself is a "buffer" that gathers the incoming data until it is full, then it moves the data to storage before refilling. Between fills, the computer sends acknowledgement packets "acks" that tell the sending computer that the data was correctly received. Increasing the RWIN means that more data is gathered on each transfer, followed by a blitz of acks, followed by more incoming data, and so on. Smaller RWIN sizes gather less data per fill, and thus send fewer acks, and then the cycle begins anew. The trick is in finding the proper RWIN for your line speed and latency.

 

The TCP Receive Window has a default value of only about 8K bytes in Windows 95/98/NT, and about 16K bytes in Windows Me/2000/XP, which is adequate for relatively slow dialup modems and for high-speed networks with relatively low latency (e.g., less than 20 milliseconds). Increasing the TCP Receive Window above the default settings (e.g., to 32-64K) can substantially improve throughput on high-speed Cable Modem or DSL connections where there is higher latency (e.g., 100-200 milliseconds), as is often the case on the Internet, particularly over long network paths. (Increasing the TCP Receive Window will usually not have an adverse effect on other connections.)

 

For example, let's consider the case of downloading a file at 150 kilobytes per second from a remote server over a typical 1.5Mbps broadband connection. A default TCP Receive Window of 8K bytes will be filled in only about 53 milliseconds, which is often shorter than the round-trip latency on the Internet. When the window is full, the sender has to stop sending until an acknowledgment of the data that was received comes back from the recipient. With a TCP Receive Window of 32K bytes, the sender can continue for as long as 217 milliseconds without an acknowledgment, which should permit uninterrupted data flow even when latency is 100-200 milliseconds or more. (With a TCP Receive Window of 64K bytes, the sender can continue for as long as 450 milliseconds.)

 

The moral of the story is this: Slower download speeds on lower latency need a smaller (say, 10K) RWIN. High speed connections on long latency networks may need a much larger RWIN (say, 32000).

 

Adjusting your RWIN will not affect your rated line speed, it only allows for transfers to be of maximum efficiency. Some users should note that even if they signed up for 1.5Mbps max service they may be capped at lowers speeds such as 768Kbps or 384Kbps, depending on individual line conditions. Your RWIN has no effect (well, a negligible effect, anyway) on your TTL, MTU or latency! A well tuned RWIN can, however, greatly improve transfer speeds by increasing data transfer efficiency.

 

Broadband Reports has a handy Tweaks Tester that will make recommendations to you about your RWIN Setting.  To perform the Tweaks test, visit http://www.dslreports.com/tweaks .  Make sure to read the Notes and Recommendations under column 1 and follow the directions carefully.

This page was: Helpful | Not Helpful