Menu

Iperf2 window size to calculate throughput

2023-07-11
2023-07-11
  • Neeru Chhabra

    Neeru Chhabra - 2023-07-11

    I am using coreemu in virtualbox. The network is very very small. Two systems connected to a switch. I run iperf server on one and client on the other one. Iperf version is iperf2.

    By default server side shows the TCP window size as 85.3 Kbyte while the client side shows the TCP window size as 62.9KB.

    I run this command on the client: iperf -c <server ip=" "> -t15 -i1
    Server shows me throughput as 11.1 Gbps while the client gives me a range (since I am using -i1) i.e. 6.64Gbps - 13.8 Gbps.</server>

    I also did a tcpdump on the client and the server. Opening the tcpdump in wireshark shows me the server side window size as 14480 with window scaling factor 16 while the client side windows is 14600 with window scaling factor 16.

    tcp_rmem=4096 87380 901728
    tcp_wmem=4096 16384 901728

    As per my understanding throughput =window size / RTT.

    RTT is 0.072ms. I am just wondering: iperf uses which window size value to calculate throughput. This assumes no packet loss etc.

    Thank you....Neeru

     
    • Robert McMahon

      Robert McMahon - 2023-07-11

      There is a lot of confusion here. Iperf 2 doesn't use the window size to compute throughput. It measures the number of bytes over time. Windows are a TCP thing and adjust relative to the TCP congestion control algorithm (CCA)

       

Log in to post a comment.

MongoDB Logo MongoDB