Prove why VoIP needs different treatment from a file copy
Task
Generate a steady, small, regular UDP stream — the traffic shape a phone call has — then saturate the same link with a bulk transfer and measure what happens to it. This is the measurement that makes QoS an argument rather than an opinion.
Steps
- On Host B, start the server:
iperf3 -s. - Establish a baseline for the call-shaped stream. From Host A:
iperf3 -c 192.168.20.10 -u -b 100K -l 200 -t 20. That is 100 kbps of small UDP datagrams — roughly one codec's worth. Record the jitter and loss. - Now generate contention. In a second terminal on Host A, start a bulk TCP transfer:
iperf3 -c 192.168.20.10 -p 5202 -t 30(start a second server withiperf3 -s -p 5202on Host B first). - While the bulk transfer runs, repeat the UDP measurement from step 2. Record jitter and loss again.
- Compare the two results and write down the difference in one sentence. That sentence is the business case for QoS.
Verify
iperf3 -c 192.168.20.10 -u -b 100K -l 200 -t 10 | tail -4
iperf3 -c 192.168.20.10 -t 10 | tail -3
The UDP run reports jitter in milliseconds and a lost/total datagram count. Idle, jitter should be well under 5 ms with near-zero loss. Under load it rises — and the number you want to be able to quote is how far.
Notes
The thresholds worth carrying: voice tolerates roughly 150 ms one-way latency, 30 ms of jitter and 1% loss before users complain. Your lab is on one machine so absolute latency is tiny, but the change under load is the real finding.
Note which one suffered. TCP backs off when it sees loss, so the bulk transfer adapts; UDP does not, so the call simply degrades. That asymmetry is why priority queuing protects the stream that cannot protect itself.