Trying to understand UDP testing inconsistencies (loss and limits) with Windows in various scenarios #1578
Replies: 1 comment
-
The usual disclaimer: ESnet cannot and does not officially support iperf3 on Windows. Some people have made this work (obviously) but there could be differences between the Windows and *nix networking stacks that might cause issues or unexplained performance differences. In your case, the difference might come from running an ancient version of iperf3 (3.1.3). It's about 7 years old. The current version of iperf3 is 3.15, and was released a few weeks ago. Note that sometime around iperf 3.2 we changed the default UDP packet size from 8192 to something based on the path MTU, precisely to avoid fragmentation and disproportionate packet loss. Your Windows binary doesn't have this change. If you want you can change iperf3's UDP send size to something smaller using the Another possible cause of packet loss might be the socket buffer size (set, somewhat confusingly by the Note that there's no guarantee that any of this discussion is relevant to the behavior of the on-line game you were trying to troubleshoot originally, but hopefully it'll give some insights. Good luck! |
Beta Was this translation helpful? Give feedback.
-
Hi,
This all started with my trying to troubleshoot why I'm getting kicked from a game for unstable connection.
I started testing UDP with iperf on Windows and Linux on various (6) machines with different network hardware. I'll try to stay focused here.
Linux seems bulletproof. Windows, not so much.
This should all be very easy to reproduce, if needed. Any Linux server as the iperf server, and any seemingly any Windows machine. I've tried on several with various different hardware, internal NICs from Realtek and Intel, external USB NICs with Realtek and ASIX chipsets, and on 2 completely different networks. All tests were flawless with Linux, but struggle/fail with Windows and smaller data sizes.
Linux Server
iperf3 -s
Results
There's a fair amount of loss here, considering if I boot that system under Linux and do the same test I can do 900M with no loss.
Windows tester
iperf3.exe -u -b900M -l1460
Results
As you can see, Windows is only able to output less than 700M at that data size.
Using
-R
I get a lot more loss, because Linux is capable of sending 900M at that size, but Windows is incapable of processing it.Thanks for any education you can bestow on me.
Beta Was this translation helpful? Give feedback.
All reactions