Prove why VoIP needs different treatment from a file copy

applied · 45 min · Objective 1.2

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

  1. On Host B, start the server: iperf3 -s.
  2. 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.
  3. 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 with iperf3 -s -p 5202 on Host B first).
  4. While the bulk transfer runs, repeat the UDP measurement from step 2. Record jitter and loss again.
  5. 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.