I'm testing a 802.11 wireless link using iPerf and the UDP protocol. Using the -b command at the client, I can set the bandwidth to an arbitrary number (e.g. 1 Gbps) that's much higher than the link can support (e.g., 50 Mbps). The iPerf test will then report a 95% packet loss rate.

My question is where are these UDP packets being lost? I'm assuming the client's WiFi device will only accept data for transmission at a rate that's commensurate with the quality of the wireless connection. So is the device dropping the packets generated by iPerf?

2 Answers 2


When more traffic than a link can handle is sent to a link, the interface to that link will end up dropping the packets destined for that link. This is congestion, and there are some small mitigations for congestion, such as queuing, but, when it comes to networks, packets are preferred to be dropped as soon as possible rather than delaying them.

In your case, the dropped traffic never makes it out of the interface on the device which is generating the traffic.


What does the output of the iperf client look like? Set it to -i 1 and see. Also, which version are you using? iperf -v will give that.

UDP is a connectionless protocol. The iperf socket is in blocking mode - though in 2.0.8+ there are timeouts on the write(). When the wire is 100% congested, packets can be dropped between the application and the kernel (per the write timeout), between the kernel and the network interface driver, in the driver itself. While it may be doable to isolate the exact drop location, doing so takes a bit of inspection.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.