how-to block ads
By far, the most important setting is the TCP Receive Window or RWIN. The Tcp Receive Window is nothing more than a data buffer. Think of it as a bucket. Your RWIN setting determines how big the bucket is. Data is coming down from the satellite, filling the bucket. Your computer is emptying the bucket as it processes the contents. We can't let the bucket overflow, or we would have to ask the sender to re-send what got spilled on the floor. That's inefficient.
If the bucket gets empty, your computer is doing nothing, just waiting for the stream to start again, also inefficient.
The other problem is there is a lag between the time your computer says "Send more, my bucket is almost empty" or "My bucket is almost full, please stop" and the time the sender gets that message. And another lag between when the sender starts sending again or stops, and the result hits your computer. That's latency.
If the bucket is the perfect size, it is never completely full nor completely empty until there is no more stuff to send. The perfect size bucket allows your computer to send the messages at the right time such that the data stops just before the bucket fills and starts just before the bucket empties. Now you can have too large a bucket, because the sender expects to hear those messages now and then. If it doesn't hear from you, it thinks your bucket isn't getting anything at all so it keeps sending the same stuff, over and over, until it gives up on you and stops sending anything. Very inefficient!
RWIN is determined mathematically. The required variables for the equation are Maximum Potential Speed (MPS) of the line, Maximum Segment Size (MSS) of the packet and Return Trip Time (RTT)(which most people measure with "ping" tests). Depending on the type of connection, a multiplier is usually applied to RTT to account for bad ping days. But generally the simple construction of the equation would be (MPS * Average Worst RTT)/8. The result is then converted to the nearest multiple of MSS.
Selective Acks enables re-transmissions of data to consist only of lost packets, rather than entire receive windows. It is very important to enable selective acks when using large receive windows.
Window Scaling allows for RWIN values above 65535. Since Windows only allocates 2 bytes to represent the RWIN value, a value greater than 65535 cannot be represented. By turning Window Scaling on, a scaling factor is applied to the value found in the two bytes to represent larger numbers.
TTL is Time To Live and determines how many hops a packet is allowed to take before being declared lost. If the value is too small, unnecessary packet loss occurs as packets that just haven't reached their destination are lost. If it's too large, then too much time is spent waiting on packets that are truly lost.
Time Stamping: Time stamping adds timing header information to each packet so that Windows can calculate RTT on the fly and use this information to estimate the best points in the empty/full cycle of the receive window to send AKS. Logic would say that would have to make a Long Fat Pipe (meaning high latency, high speed) connection such as satellite more efficient. The reality is that with DirecPC/DirecWay based systems, while it slightly but measurably increases speed, it also prevents certain web sites from loading correctly and can make some email attachments cause email to hang. So the recommendation is for it to be off for DPC, because a number of us have had problems with it turned on.
Path MTU Discovery: This setting changes your MTU on the fly to match the smallest MTU on your path to the server you are communicating with. Testing has shown that tunring it on can, in some cases significantly improve upload speed on two-way systems. Please note that you may notice little or no difference in upload speed "tests" as the file size used on test sites (about 50KBS) is just too small to measure the speed without being skewed by the high latency of a satellite system. To more accurately measure your results, use an FTP client and do an FTP upload to a server of a 750KB file or larger.
Black Hole Detection: Does absolutely nothing if Path MTU Discovery is disabled, may cause problems even when it is enabled...leave it off
Max Dup Acks: Valid values are 1, 2 or 3. Win2k defaults to 2, 98 and ME default to 3. Probably makes absolutely no difference one way or another which value is chosen. It defines the number of duplicate AKS that are allowed to be sent before Windows invokes Fast Re-Transmission. This would occur in a packet loss situation. Windows gets an out of sequence ACK. It figures some packets must have been lost. It sends an ACK back for the lost packet. When the receiver sees the first ACK for a packet, then either 1, 2 or 3 more for the same packet, depending upon how max dup acks is set, it re-sends the whole segment again figuring that it must be lost...that's fast re-transmission.