Cygwin TCP slow

Daniel Havey
Tue Nov 29 01:25:00 GMT 2016

We have had complaints from several large hardware vendors that
Windows networking is slow for apps like iperf that are used to
measure throughput.  Iperf on Windows is compiled against the
cygwin1.dll.  We have root caused the problem to a couple of lines of
code in that set SO_RCVBUF and SO_SNDBUF to about 200KB.

The theoretical window/RTT plot for the buffer size set by Cygwin
(0x34000 = 200KB) gives us:
1ms -> 1703Mbps
2ms -> 851Mbps
3ms -> 567Mbps
4ms -> 425Mbps
5ms -> 340Mbps
6ms -> 283Mbps
7ms -> 243Mbps
8ms -> 212Mbps
9ms -> 189Mbps
10ms -> 170Mbps
20ms -> 85Mbps
40ms -> 42Mbps
60ms -> 28Mbps
80ms -> 21Mbps

We have confirmed this by experiment and also confirmed that the
limitation goes away if the buffers are not manually set.  Windows has
autotuning and when the buffers are set manually the autotuning is
disabled.  This is causing the throughput limitation.  So we would
like to formally ask that you please not manually set SO_RCVBUF or

thanxs ;^)

Problem reports:
Unsubscribe info:

More information about the Cygwin mailing list