A jitter buffer absorbs packet timing variation by introducing a small constant delay before playback
A jitter buffer sits between network packet receipt and the audio output device. Instead of playing audio immediately on arrival, each packet waits in the queue. This deliberate pre-delay means that even if packets arrive 20ms early or late, there is always data available to play on schedule. The price is a small constant increase to the effective end-to-end latency — the data spends extra time sitting in the buffer on top of transit and driver latency. A buffer one packet deep already prevents gaps caused by minor jitter: even a packet arriving 20ms late will find an earlier packet still being consumed. The buffer does not reduce jitter; it hides jitter from the consumer by converting timing variation into a uniform controlled latency increase. This trade-off (more delay for smoother playback) is the core design tension for all real-time streaming systems.
Examples
A VoIP client with 40ms jitter buffer absorbs packet timing swings of ±20ms without a dropout, at the cost of 40ms of extra end-to-end delay. A video conferencing tool set to 0ms buffer passes every packet straight to the speaker, producing audible skips whenever a packet is 2ms late.
Assessment
Explain why a jitter buffer reduces perceived glitches but not round-trip latency. Then describe a case where increasing the jitter buffer size could make a real-time interaction (e.g., a phone call) feel worse even if audio quality improves.