Jitter is the variation in periodicity of a signal or periodic event from its target or true frequency. In telecommunications, jitter further refers to the variation in latency of packets carrying voice or video data over a communications channel.
Telecommunications traffic nowadays often travels across a packet switched network - and quite often on the public internet. For participants in a session, voice or video data is converted into packets and routed 'towards' a recipient. Packet switched networks make no guarantee that all packets will take the same route to the destination. They are forwarded based on the current network status (and various algorithms) based upon the the destination in the packet header and potentially the type of traffic.
Because of the lack of promises, packets traveling a fixed physical distance can take longer or shorter to arrive - or even arrive out of order. The variation in arrival times (latency) is the jitter.
There are many potential causes of jitter on a network. However, variation in routing and forwarding packets causes the majority of issues. Cache sizes and configuration differences in intermediate forwarding nodes can change routes, but most commonly network congestion causes routes to change and latency to vary.
In the above image,
packet 1 makes six hops while
packet 2 only needs to make two. This might be the difference between 10 ms and 40 ms of latency and might mean
packet 2 actually arrives before
packet 1. If a call continues to split between the two possible routes, latency will average 25 milliseconds, but the average instantaneous latency difference between packets taking the opposite route will be 30 ms.
Jitter is an overloaded term; RFC 3393 labels the +/-30 ms measurement as IP Packet Delay Variation. Another common measurement of jitter is to use the variance of packet latencies if they are expected or known to be randomly distributed (not bifurcated as in our example).
Small amounts of jitter can be counteracted with the jitter buffer. The jitter buffer queues incoming packets on the receiver side and can reorder or smooth incoming packets before releasing them to the user. Buffer length is generally a user setting; note that buffer length trades off with increasing latency. Setting too large a buffer directly increases the latency of actions on the sender side being received by a user.
Routers and operating systems queue outgoing packets in a buffer before releasing them to a wider network. A poorly set buffer size in your operating system or on network equipment can cause a condition known as bufferbloat, where excess packet queueing introduces irrecoverable jitter. To test for the presence of bufferbloat, we suggest the ICSI Netalyzr Online Application (requires Java).
Quality of Service (QoS) routing settings on your network equipment can also factor into higher jitter. Prioritizing voice and video traffic can work around buffering problems. If you've tried other optimizations, QoS settings are the next place to look.
Twilio can provide SIP Trunking services with our own private connections and routing choices, potentially greatly increasing the reliability of routes from source to destination and back. We can route your traffic over the public internet or on our private backbone, depending on availability. Talk to sales to discuss this option in further detail.
Beyond measurement of jitter, Insights also can alert you when latency is too high, or packets are being dropped. It also can roll up metascores such as the number of dropped calls in your setup or mean opinion scores. You can see more about Voice Insights here.
If you need further help on debugging jitter or other call quality issues with your Twilio service, please get in touch with support. One of our experts will be able to talk you through optimizing your Voice or Video setup.