Microsoft published a post on the official Tech Community website detailing three reasons why Windows users should not use iPerf3, a popular tool for network testing and benchmarking developed by ESnet. Instead of iPerf3, Microsoft suggests using ntttcp and ctsTraffic. Here is why.
The first reason is that iPerf3 is not officially supported on Windows. The developer itself says that only iPerf2 is officially supported on Microsoft"s operating system. Also, the tool"s primary development takes place on CentOS 7 Linux, FreeBSD 11, and macOS 10.12, not Windows.
The second reason is that although iPerf3 works on Windows, the utility does not make native API calls. It is emulated on Windows through the Cygwin emulation layer. Microsoft says that iPerf3 maintainers "do an excellent job of making it all work together," but there are still several issues with their approach. Besides not providing certain capabilities for network testing, emulation creates additional latency, resulting in lower-than-expected throughput.
Finally, Microsoft calls out outdated iPerf3 versions that pop up on top of search results. Version 3.1.3 is what most users download, and that release is almost 8 years old. Apart from missing bug fixes and new features, version 3.1.3 has a bug in cygwin1.dll that limits the socket buffer to 1MB. This leads to inaccurate testing on high-speed networks. If you still need iPerf3, get it directly from ESNet.
With that in mind, Microsoft wants customers to use Windows NT Test TCP (ntttcp) and ctsTraffic, native tools that utilize Windows networking the same way native Windows apps do. Windows NT Test TCP allows API-native Windows-Windows and Windows-Linux network tests, while ctsTraffic is for Windows-to-Windows benchmarks only.
If you want to learn more about how to use Windows NT Test TCP and ctsTraffic, check out the post written by a member of the Windows Networking team on the Microsoft Tech Community website.