Your internet speed test looks perfect, but copying files from the office server is painfully slow. That is because the two tests measure two different roads. iperf3 measures the road that actually matters here - the one between your two computers.
Here is a scene every IT engineer knows. A user says the shared drive is slow. Someone runs an internet speed test, the result looks great, and everyone is confused. The honest problem is that the speed test measured the internet, not your local network. The files never touch the internet - they travel from one PC to another PC inside your office. iperf3 is the free tool that measures exactly that path. One PC becomes the server, the other becomes the client, and iperf3 pushes real data between them and reports the true speed. No guessing, no marketing numbers.
iperf3 is developed by ESnet, and the official home of the tool is iperf.fr. That site provides the Windows build as a small zip file. This matters: iperf3 is a popular tool, so random download sites bundle it with junk and worse. Get it from iperf.fr only, unzip it, and you will find iperf3.exe inside. There is no installer and nothing to activate - the whole tool is one small program you run from Command Prompt.
Put the unzipped folder in a simple place like C:\iperf3 on both computers. You need the tool on the server PC and on the client PC, because iperf3 always works as a pair.
On the PC you want to test to - usually the server or the PC holding the shared files - open Command Prompt, go to the folder, and start listening mode:
cd C:\iperf3 then iperf3 -s
The -s flag means server. The screen shows Server listening on 5201. Port 5201 is the default iperf3 port, and the server now simply waits. Leave this window open during the test. On first run, Windows Firewall will usually ask whether to allow iperf3 - allow it on the Private network. If that prompt never appears or the test cannot connect, read our separate guide on the iperf3 firewall prompt before changing anything else.
Note the server PC's IP address too - run ipconfig and look for the IPv4 address, something like 192.168.1.10. The client needs this address.
On the second PC, open Command Prompt in the same folder and point the client at the server:
iperf3 -c 192.168.1.10
Replace the address with your server's real IP. The -c flag means client. For the next 10 seconds the client pushes data to the server as fast as the path allows, printing one line per second, then a summary. That is the whole basic test - the number on the summary is your real PC-to-PC speed right now.
Want a longer, more stable reading? Add a duration: iperf3 -c 192.168.1.10 -t 30 runs for 30 seconds. Longer tests smooth out the first-second spike and give a number you can trust more.
The summary shows two lines: sender and receiver. For a normal TCP test, read the receiver line - it is the speed at which data actually arrived, after any losses on the way. The sender line can look slightly better because it counts data the PC pushed out, not data that survived the trip.
Now the honest expectations. On a healthy wired gigabit connection, expect roughly 940 Mbps - not 1000. Ethernet, IP and TCP overhead take their share, so 940 is full speed, not a fault. On an old 100 Mbps link, expect about 94 Mbps. If your gigabit path shows 90-something Mbps, something in the chain has quietly fallen back to 100 Mbps - a cable, a switch port, or a network card setting. That single observation is often the whole diagnosis.
Also compare with file copy numbers carefully: Windows shows copy speed in MB/s (megabytes), iperf3 shows Mbps (megabits). Multiply MB/s by 8 to compare - a copy running at 11 MB/s is using about 90 Mbps of the network, whatever the user feels about it.
The basic test measures client to server. Real work flows both ways, and the return path can behave very differently - a tired cable or a duplex problem often hurts one direction only. Run the reverse test with iperf3 -c 192.168.1.10 -R. With -R the server sends and the client receives, which matches what a user downloading from the server actually experiences.
iperf3 also tests UDP with -u, which reports jitter and lost packets - the numbers that decide whether calls and video meetings stutter. UDP needs a target speed, for example iperf3 -c 192.168.1.10 -u -b 100M. We have a separate guide on reading UDP, jitter and loss properly.
When you finish, close the client, then press Ctrl + C in the server window to stop the listener. Nothing stays installed and nothing keeps running.
The complete iperf3 setup and live testing, step by step, in the video.
Watch Full VideoYes. iperf3 is a free, open-source tool developed by ESnet and used by network engineers everywhere. Download the Windows build only from the official site, iperf.fr - copies from random download sites may be bundled with unwanted software.
That is full speed, not a problem. Ethernet, IP and TCP headers use part of every packet, so the useful data rate on a 1 Gbps link tops out around 940 to 949 Mbps. A result near 94 Mbps on the same setup means some part of the path is running at 100 Mbps.
No - and that is the point. iperf3 measures the path between two machines you control, usually inside your own network. Internet speed tests measure your line to an outside server. Slow shared drives with a great internet result almost always mean the local path is the slow part, and iperf3 is how you prove it.