Search code examples
serverudpclientjitteriperf3

Iperf3 Jitter Value Way Too High


I was running an UDP test and I noticed that the jitter value was way too high, is something not initialized properly in iperf3 source code? The connection between client and server is very good.

Maybe the reason for high jitter was that prev_transit is not initialized to zero, but I am not sure.

How jitter should work: http://toncar.cz/Tutorials/VoIP/VoIP_Basics_Jitter.html

Client:

[  4] local 10.131.136.133 port 49402 connected to 10.131.138.232 port 5201                                                                                 
[ ID] Interval           Transfer     Bandwidth       Total Datagrams                                                                           
[  4]   0.00-1.00   sec  16.0 KBytes   131 Kbits/sec  2                                                                                                 
[  4]   1.00-2.00   sec  8.00 KBytes  65.5 Kbits/sec  1                                                                                     
- - - - - - - - - - - - - - - - - - - - - - - - -                                                                                           
[ ID] Interval           Transfer     Bandwidth       Jitter    Lost/Total 
Datagrams                                                        [  4]   
0.00-2.00   sec  24.0 KBytes  98.2 Kbits/sec  63.064 ms  0/3 (0%)                                                                   
[  4] Sent 3 datagrams                                                                                                                                                                                                                                                                  
iperf Done.

Server:

Starting Test: protocol: UDP, 1 streams, 8192 byte blocks, omitting 0 seconds, 2 second test
[ ID] Interval           Transfer     Bandwidth       Jitter    Lost/Total Datagrams
[  5]   0.00-1.00   sec  16.0 KBytes   131 Kbits/sec  67.261 ms  0/2 (0%)  
[  5]   1.00-2.00   sec  8.00 KBytes  65.5 Kbits/sec  63.064 ms  0/1 (0%)  
[  5]   2.00-2.04   sec  0.00 Bytes  0.00 bits/sec  63.064 ms  0/0 (-nan%)  
- - - - - - - - - - - - - - - - - - - - - - - - -
Test Complete. Summary Results:
[ ID] Interval           Transfer     Bandwidth       Jitter    Lost/Total Datagrams
[  5]   0.00-2.04   sec  0.00 Bytes  0.00 bits/sec  63.064 ms  0/3 (0%)  
CPU Utilization: local/receiver 0.0% (0.0%u/0.0%s), remote/sender 1.9% (0.3%u/1.8%s)
iperf 3.1

Solution

  • I'm guessing you are the same person who filed this issue in the iperf3 issue tracker because the wording of this question and the one in the issue tracker are almost identical:

    https://github.com/esnet/iperf/issues/672

    I answered there that you had too few packets per measurement interval to actually compute the jitter in a meaningful way. I suggested that you send at a higher bitrate to get more data points to measure the jitter. Also you should use a version of iperf3 that is 3.2 or newer because of improvements in the timing of sending packets.