IRTT can be used to take accurate measurements of latency each way along with packet loss and jitter. As an example a report may look like this:
Min Mean Median Max Stddev
--- ---- ------ --- ------
RTT 100.8ms 104.4ms 101.3ms 125.2ms 5.24ms
send delay -13.43ms -9.84ms -12.92ms 10.98ms 5.25ms
receive delay 114.1ms 114.3ms 114.2ms 125ms 455µs
IPDV (jitter) 52ns 271µs 140µs 15.53ms 697µs
send IPDV 36ns 231µs 120µs 15.44ms 602µs
receive IPDV 45ns 72.8µs 30.8µs 10.77ms 362µs
send call time 14.2µs 36.7µs 674µs 30.6µs
timer error 11ns 26.2µs 696µs 36.4µs
server proc. time 4.36µs 13.7µs 97.4µs 5.29µs
duration: 1m0s (wait 375.5ms)
packets sent/received: 2976/2724 (8.47% loss)
server packets received: 2976/2976 (0.00%/8.47% loss up/down)
bytes sent/received: 511872/468528
send/receive rate: 68.3 Kbps / 62.5 Kbps
packet length: 172 bytes
timer stats: 23/2999 (0.77%) missed, 0.13% error
IRTT is client/server; the server must be running the IRTT daemon with traffic allowed on UDP port 2112 (by default).
To install for Debian/Ubuntu:
apt -y install irtt
The server will be enabled/started by default. If needed, stop/disable the server:
systemctl stop irtt
systemctl disable irtt
The server may have a HMAC key defined to prevent unauthorised usage. To configure the server with a key create an override file to modify ExecStart
for the service:
mkdir /etc/systemd/system/irtt.service.d
cat << EOF > /etc/systemd/system/irtt.service.d/override.conf
# Configure the IRTT server options
[Service]
ExecStart=
ExecStart=/usr/bin/irtt server --hmac=MY-HMAC-KEY-HERE
EOF
systemctl daemon-reload
systemctl restart irtt
When connecting from clients the --hmac
option will need to be provided.
These are some common usage scenarios.
To simulate a 1 minute VoIP phone call to the server 192.0.2.1
:
irtt client \
-i 20ms \
-l 172 \
--fill=rand \
--sfill=rand \
-q \
-d 1m \
192.0.2.1
If the client has multiple IP addresses, use the --local
option to set the source IP:
irtt client \
-i 20ms \
-l 172 \
--fill=rand \
--sfill=rand \
-q \
-d 1m \
--local=192.0.2.254 \
192.0.2.1
The following pages contain the official documentation and additional examples: