Why is iperf3 faster in one direction than the other?

I've got a Windows 10 PC with Realtek RTL8125b 2.5GbE interface and I have a Debian Linux 5.10 server with an Intel I225-LM (rev 3) 2.5GbE interface. Running iperf3 -s on the server I get 1.14Gbit/s. If I use -R (reverse) option on the client I get 2.35Gbit/s. What are some possible reason for it to be running at half speed when going in one direction but not the other?

Additional info:

  • On Windows (client) I tried both iperf3 v3.6 in WLS2, and the native (cygwin) version 3.1.3. No difference.
  • I booted Ubuntu 21.04 on the client PC with the Realtek and got full speed in both directions. This appears to be a problem on Windows only.

Solution 1:

I shouldn't have assumed that Windows 10 would provide the best drivers automatically. The driver was from Microsoft dated 2015. I downloaded a driver directly from Realtek's website dated 2021 and its operating in full speed both directions.