Tuesday, November 17, 2009

Some technical mumbo jumbo. It's what I do.

For my job, I was calculating the maximum latency for TCP connections from a server running Windows Server at 10 Gigabits/s. It is 0.52ms. If the latency is any greater than that, a TCP connection can’t fully use a pipe that big. The rules of TCP were written for sharing a big network among a lot of hosts, not fully utilizing the big dedicated pipes you might find in a data center environment or a high speed WAN.

Windows Server 8 has RFC 1323 RWIN scaling, which increases the speed for higher latencies (LFN problem solved). This only works if the machine on the other end of the TCP connection is also using RWIN scaling. If not, the connection might actually be slower than without scaling, because the scaling factor is being ignored. Windows XP does not have it (unless you install service packs and do the registry tweaks). Windows 7 and Vista do. Linux kernels after 2.6.8 have it enabled by default. This is a bigger issue now that more machines will have the feature than not, and the data center pipes are getting larger, but many WAN connections are not. It is also an issue because some firewalls manipulate these values and cause performance problems. Other performance issues have arisen because now TCP doesn't share the bandwidth very well and can fill up network links that previously ran without congestion.