Simply stated, jitter is the variation of packet interarrival time. Jitter is one issue that exists only in packet-based networks. While in a packet voice environment, the sender is expected to reliably transmit voice packets at a regular interval (for example, send one frame every 20 ms). These voice packets can be delayed throughout the packet network and not arrive at that same regular interval at the receiving station (for example, they might not be received every 20 ms; see Figure 7-2). The difference between when the packet is expected and when it is actually received is jitter.
Figure 7-2 Variation of Packet Arrival Time (Jitter)
In Figure 7-2, you can see that the amount of time it takes for packets A and B to send and receive is equal (D1=D2). Packet C encounters delay in the network, however, and is received after it is expected. This is why a jitter buffer, which conceals interarrival packet delay variation, is necessary. Voice packets in IP networks have highly variable packet-interarrival intervals. Recommended practice is to count the number of packets that arrive late and create a ratio of these packets to the number of packets that are successfully processed. You can then use this ratio to adjust the jitter buffer to target a predetermined, allowable late-packet ratio. This adaptation of jitter buffer sizing is effective in compensating for delays.
Note that jitter and total delay are not the same thing, although having plenty of jitter in a packet network can increase the amount of total delay in the network. This is because the more jitter you have, the larger your jitter buffer needs to be to compensate for the unpredictable nature of the packet network.
Most DSPs do not have infinite jitter buffers to handle excessive network delays. Sometimes it is better to just drop packets or have fixed-length buffers instead of creating unwanted delays in the jitter buffers. If your data network is engineered well and you take the proper precautions, jitter is usually not a major problem and the jitter buffer does not significantly contribute to the total end-to-end delay.
RTP timestamps are used within Cisco IOS Software to determine what level of jitter, if any, exists within the network.
The jitter buffer found within Cisco IOS Software is considered a dynamic queue. This queue can grow or shrink exponentially depending on the interarrival time of the RTP packets.
Although many vendors choose to use static jitter buffers, Cisco found that a well-engineered dynamic jitter buffer is the best mechanism to use for packet-based voice networks. Static jitter buffers force the jitter buffer to be either too large or too small, thereby causing the audio quality to suffer, due to either lost packets or excessive delay. The Cisco jitter buffer dynamically increases or decreases based upon the interarrival delay variation of the last few packets.