Getty Images
What is a jitter buffer used for?
Jitter buffers play a key role in supporting audio quality and mitigating network anomalies. Learn how jitter buffers work and their potential drawbacks.
In VoIP communications, jitter is an audible sign of network anomalies. A voice conversation is broken into sequentially numbered packets for transfer over the network. Each packet is numbered to show its place in the conversation's sequence so that it can be reassembled at the receiving end in the correct order. Packets traverse a network based on a variety of routing information shared among routers, switches, network cards and other intermediate devices.
The process is not without hiccups, however. The fastest route for the packets to travel is not always the same throughout the duration of a digital conversation. At the receiving end, the packets are reassembled into conversation order for listening at the other end. Latency is the round-trip time for each packet. Jitter is the variation in the latency when packets travel from one system to another.
Why is it important to reduce jitter?
During a conversation, anomalies can occur where some packets go one way and others go another route. This could mean that packet seven arrives before packet four, which can cause entire words to be lost in a call.
Fortunately, mechanisms are built in to assure that transmissions are not jittery gibberish. However, with real-time conversations, those mechanisms may cause pixelation in video and broken conversation in voice. In short, packet loss and retransmissions become audible and potentially visible, depending on the type of conversation.
What does a jitter buffer do?
Jitter buffers provide a staging area, so to speak, for the packets coming into the respective device. Jitter buffers can be fixed or adaptive, which work only when needed. Both provide the same function, but not all buffers have the same capabilities.
On the receiving end, jitter buffers collect packets and only forward them when surrounding packets can also be delivered. So, any packet that needs to be retransmitted from the sending end does so, but the retransmission does not create pixelation or drops in the conversation.
The same is true if packets are rerouted due to reasons like network congestion. The buffers hold the conversation packets until they all arrive and then forward them in order to the final receiving station, such as a phone or computer.
Jitter buffer configuration requirements
Enabling buffering on a device should only be done in response to a need. Jitter buffers must be correctly configured to be effective. A jitter buffer configuration is typically 30 milliseconds to 50 ms. Adaptive jitter buffers, which can adjust their size dynamically, can be configured up to 100 ms to 200 ms. Be sure to configure a jitter buffer correctly because you don't want the solution to become the problem.
Potential drawbacks of a jitter buffer
Turning on a jitter buffer when it isn't needed can create additional overhead demands and unnecessary latency. Turning a buffer on is generally an option within the equipment itself. The parameters given to the buffers vary from one manufacturer to another.
In fact, the amount of buffer available also differs. Most involve setting the time delay for the collection, storage and forwarding of packets. Underruns occur when the buffers are empty. In this case, the device may send fill-in packets to the end device as it awaits the arrival of new information packets.
If a jitter buffer is too small, an excessive number of packets may be discarded. This can lead to call quality degradation. Alternatively, a jitter buffer that's too large can result in conversational difficulty caused by additional delay and echo.
Adjusting the jitter buffer's configuration levels can solve these issues. A jitter analyzer, such as an oscilloscope, can isolate the source of the network jitter and eliminate it.
It is important to understand the function and capabilities of your equipment. Jitter buffers can help those without the best network conditions, but enabling them should only be done as needed.
Editor's note: This article was originally written by Matt Brunk and updated by Carrie Goetz to improve the reader experience.