iperf icon indicating copy to clipboard operation
iperf copied to clipboard

Difference in output between client and server

Open dk1301 opened this issue 1 year ago • 1 comments

Context

  • Version of iperf3:3.11

  • Hardware: AMD64

  • Operating system (and distribution, if any): VM Ubuntu 20.04

I'm running some UDP tests from my Ubuntu VM.

The command I use for the client is :

iperf3 -u -c hostname -p xxxxx --get-server-output And for server :

iperf3 -s -1 -p xxxxx --rcv-timeout 2000

What I observed was that there was a difference between the output of the client and the output of the server.

[ ID] Interval           Transfer     Bitrate         Total Datagrams
[  5]   0.00-1.00   sec   128 KBytes  1.05 Mbits/sec  90  
[  5]   1.00-2.01   sec   127 KBytes  1.04 Mbits/sec  89  
[  5]   2.01-3.00   sec   130 KBytes  1.07 Mbits/sec  91  
[  5]   3.00-4.00   sec   127 KBytes  1.04 Mbits/sec  89  
[  5]   4.00-5.00   sec   128 KBytes  1.05 Mbits/sec  90  
[  5]   5.00-6.00   sec   128 KBytes  1.05 Mbits/sec  90  
[  5]   6.00-7.00   sec   128 KBytes  1.05 Mbits/sec  90  
[  5]   7.00-8.00   sec   127 KBytes  1.04 Mbits/sec  89  
[  5]   8.00-9.00   sec   128 KBytes  1.06 Mbits/sec  90  
[  5]   9.00-10.00  sec   128 KBytes  1.05 Mbits/sec  90  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Jitter    Lost/Total Datagrams
[  5]   0.00-10.00  sec  1.25 MBytes  1.05 Mbits/sec  0.000 ms  0/898 (0%)  sender
[  5]   0.00-10.05  sec  1.25 MBytes  1.04 Mbits/sec  1.939 ms  0/898 (0%)  receiver

Server output:

[ ID] Interval           Transfer     Bitrate         Jitter    Lost/Total Datagrams
[  5]   0.00-1.00   sec   121 KBytes   993 Kbits/sec  1.005 ms  0/85 (0%)  
[  5]   1.00-2.00   sec   128 KBytes  1.05 Mbits/sec  1.319 ms  0/90 (0%)  
[  5]   2.00-3.00   sec   128 KBytes  1.05 Mbits/sec  1.324 ms  0/90 (0%)  
[  5]   3.00-4.00   sec   124 KBytes  1.02 Mbits/sec  1.713 ms  0/87 (0%)  
[  5]   4.00-5.00   sec   131 KBytes  1.07 Mbits/sec  1.108 ms  0/92 (0%)  
[  5]   5.00-6.00   sec   128 KBytes  1.05 Mbits/sec  2.422 ms  0/90 (0%)  
[  5]   6.00-7.00   sec   128 KBytes  1.05 Mbits/sec  0.964 ms  0/90 (0%)  
[  5]   7.00-8.00   sec   127 KBytes  1.04 Mbits/sec  2.359 ms  0/89 (0%)  
[  5]   8.00-9.00   sec   127 KBytes  1.04 Mbits/sec  1.893 ms  0/89 (0%)  
[  5]   9.00-10.00  sec   130 KBytes  1.06 Mbits/sec  1.799 ms  0/91 (0%)  
[  5]  10.00-10.05  sec  7.13 KBytes  1.15 Mbits/sec  1.939 ms  0/5 (0%)  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Jitter    Lost/Total Datagrams
[  5]   0.00-10.05  sec  1.25 MBytes  1.04 Mbits/sec  1.939 ms  0/898 (0%)  receiver

So at the above example there is an extra interval compared with the ones of the client :

[ 5] 10.00-10.05 sec 7.13 KBytes 1.15 Mbits/sec 1.939 ms 0/5 (0%)

Does anybody knows why this is happening and if there is a way to always achieve the same intervals both on the client and the server side.

Thank you fro your time.

dk1301 avatar Jun 08 '23 11:06 dk1301

Functionality seems to be ok. The reason for this behavior is that the iperf3 client is responsible to end the test. At the end of the test the client notifies the server that the test ended.

In this case, after 10 seconds the client ends the test and therefore doesn't print any statistics beyond the "9.00-10.00" period. However, it took some time until the server received the test end message, and therefore it printed statistics for these 50ms period ("10.00-10.05"). Note that at this period, the last 7K bytes were received.

davidBar-On avatar Jun 10 '23 09:06 davidBar-On