My ISP gives me 12mps. I have a desktop running WinXP and a laptop with Ubuntu Linux. Both on wireless. On my Linux laptop, tested in the same room as my desktop, I consistently got a result of 11mps via speedtest.net. On my Windows desktop, I was getting a bit over 3mps.
I went to dslreports.com and followed some instructions on making a few registry changes. receive window and something or another else. After the changes, my desktop is now getting speed tests in the 11mps range as it should.
What was going on inside Windows that was limiting my computer to 3mps? What does RWIN change?
RWIN is the TCP Receive Window. It controls how much data can come in before it has to be acknowledged.
Data transferred from one computer to another gets split up into chunks and transmitted, and each chunk has to be acknowledged. The receive window is how many chunks you can send before you wait for it to be acknowledged. If the receive window is too small and the data transfer delays are too high, then the sender sends a small amount of data, then waits and waits and waits doing nothing until it finally gets the acknowledge for it. If you increase the size of the receive window, though, then the sender can keep throwing data across the link even though it hasn’t received the acknowledge yet. As long as the acknowledges eventually get there, the sender can keep sending data instead of stopping to wait. Since it is not stopping to wait, this fills up your bandwidth and gives you better performance.
Increasing your receive window only works if the sending computer has a large enough transmit window to accompany it. If you double the size of your receive window, then the sending computer has to double the size of his transmit window because he has to keep all of that data until he gets the acknowledge for it, just in case he never gets an acknowledge for it (due to a lost packet) and he has to retransmit it.
The basic underlying problem here though is that your ISP’s network, while giving you full bandwidth, is apparently a bit laggy. If the acknowledges got to the sender faster, you wouldn’t need to have a bigger receive window.