They have the following question and answer in the FAQ page
iperf,
How does Iperf measure available
bandwidth?
Iperf sends packets from the client to the server as fast as it can, of course
being limited by several factors (more information about increasing the speed
can be found in this FAQ and in the user
documentation). The information is sent by default from the client's memory
to the server's memory to attempt to eliminate some hardware speed limitations.
Note that high bandwidth networks often require multiple streams to max out the
bandwidth.
Does anyone know why we need multiple streams to max out
the available Bandwidth?
Why can’t a single stream support high bandwidths?
Any help will be greatly appreciated.
Thanks in advance,
Samson