Sam Jansen of Wand Network Research Group in New Zealand recently complained of “weirdness” with Windows XP (SP2) and TCP when doing a TCP test of two systems connected over a link (very similar to those demos at InterProphet). After all, what could be simpler than a couple of cans and a string, right?
No, it isn’t simple. He finds that Windows is sending data outside of the receiver’s advertised window, as well as sending “weird sized” packets in what is supposed to be a “simple bulk data transfer (often sending packets with a lot less than an MSS worth of data)”. What’s going on here?
Poor Mr. Jansen is not losing his mind – what he is seeing is real and Microsoft is cheating. We saw lots of little cheats like this when we were testing on Windows for SiliconTCP and EtherSAN back in 1998 to the present. In sum, Microsoft does this because they think they “get ahead” with a technique called “oversending”. It thrives because TCP congestion control algorithms are all pessimistic with the send budget. It doesn’t always work, like any cheat, but I guess it makes them feel good.