Wednesday, January 30, 2019

TCP Window Scaling // Windows vs Linux // Crazy Performance Difference

Hi,

Two machines over a high bandwidth, low latency network. One is Ubuntu Desktop, the other is Windows 10. There's an iPerf server on the other end. The network is a 1gbps leased line. Same version of iPerf on both clients and server.

When I run Ubuntu TCP iPerf, I receive ~900 Mbps which is what I'd expect. However when I run a Windows TCP iPerf, I get around ~50-100Mbps. Weird right?

I directly connected this Ubuntu and Windows laptop together, and ran the test again: 1Gbps between the two, so I know both laptops are capable of achieving the speed.

I wiresharked the test with the packet captures side by side: the packets are *identical* other than the Window Size Value, and it differs as follows:

Windows - Window Size = 53248, Window size scaling factor = 4, Calculated Window Size = 212992.

Ubuntu - Window Size = 229, Window size scaling factor = 128, Calculated Window Size = 29312.

When disabling TCP Window Scaling on either machine, performance degrades.

Really confused, no idea and have never seen anything like this. Anyone got any ideas?



No comments:

Post a Comment