There's been a fair bit of talk about MTU, but really the common enemy to us all is retarded default TCP window buffer settings in common operating systems. If collectively we're going to make the NZ internet blisteringly fast we've all got a fair amount of time dedicated to getting peoples heads around the LFN effect to make that happen.
Think it's only a few guys that are cool enough to have big enough networks to see bandwidth delay issues on Long Fast Networks? Next time you're on a XP machine on DSL, goto http://nzadsl.co.nz/speedtest/ and check what speed you're getting. You'll probably get no more than about 4.5mbit/s using a SINGLE tcp stream. (Multiple TCP streams will of course get more bandwidth) This is because XP has a RWin of about 17,520ish bytes. Latency over the DSL network to the speed test is about 30ms: * 17520 in bits (rather than bytes) is 17520*8 = 140160 bits. * 30ms in seconds is .03s. Thus bits / .03 s = 4,672,000 bits/second = 4.7Mb/s Even if your line rate is 6mbit you'll only get about 4.7mbit/s. This is why people say "turning off interleaving makes your line go faster". It doesn't; it lowers the latency, and thus increases your throughput. You could get the exact same effect by increasing rwin. But Wait! It gets WORSE. It's 170ms RTT to the US from here. So: 140160 bits / .17s = 824,470 bits/s == 824.5kbit/s. So the most bandwidth you can get out of a default XP install over a single TCP stream from the US is about 800kbit/s. What about .EU? Well, lets call .eu about 300ms... 140160 bits / .3 = 467,200 bits/s == 467kbit/s. So you can't get more than 450kbit/s over a single TCP stream from europe on a default XP install, *even if your line rate is 6mbit/s and there is no congestion anywhere*. So what should you set your rwin to? rwin (in bytes) = (bandwidth_in_bits_per_second/(latency_in_ms/1000))/8 Thus to get 6mbit over a single tcp stream from europe 300ms away you need: estimated_ws = 2,500,000 = (6,000,000/(300/1000))/8 That is about 2.5 MB of rwin. Good (large) rwin sizes are[1]: 64,240 128,480 513,920 1,027,840 2,055,680 4,111,360 8,222,720 So we pick 4,111,360 bytes as our optimum window size. I'm not a windows person, you modify your registry at your own risk. If it breaks, you get to keep all the pieces. If you're confused already, don't try this at home! I believe the keys you want to set/modify/twiddle/whatever are: HKLM/SYSTEM\CurrentControlSet\Services\Tcpip\Parameters GlobalMaxTcpWindowSize="4111360" HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters TcpWindowSize="4111360" Now try the speedtest again... ---- [1]: rwin's should be n*mss*2**m, where you want n to be as large as possible, and m as small as possible. (n*mss) can't be larger than 65535. mss is usually 1460, so n can't be larger than 44. so 64240*2**m, pick m as appropriate.