iperf3 to measure the effect that the TCP window has on throughput. I am measuring the throughput between two virtual machines which are located on different physical hosts. So I wrote a Python script that called
iperf3 with different window sizes (2 KB -1024 KB) and plotted the throughput. It turned out that none of the windows sizes achieved a throughput nearly as high as I measured without defining the window size.
This command measured a throughput of ~250 Mbits/s:
iperf3 -c 10.0.0.3 -t 120
This is the command I used for the following plot:
iperf3 -c 10.0.0.3 -t 120 -w <window size>
Can anyone explain, why the throughput without specified window size is so much higher? I also can't find the default window size that is used if not specified. Does
iperf3 use a flexible windows size if not specified?
I uploaded two output files of
tcpdump here. It captured the
iperf3 traffic with and without the
-w flag. Starting before
iperf3 started until after it ended. I had a look at it in WireShark but still cannot figure out what TCP window size was used for the connections.