Jitter is the variation in the transit delay that packets experience while traversing a network. It is caused by queuing and the serialization effects on the packet path. Class based queuing, reserving bandwidths, high speed links like SDH and E3/T3 are some of the QoS initiatives that will help in controlling jitter.
Jitter is of the following types:
Constant jitter: In this, the variation in delay is more or less constant.
Transient jitter: An unnatural incremental delay, sometimes only by single packets.
Short term delay variation: It occurs due to changing routes and exhibits increasing delay for some packets as well as an increase in packet to packet delay.
Examples of delay
System packet scheduling delay: It is a transient jitter. VoIP with soft phones often experiences jitter as more than one program may be running on the CPU, thereby slowing it and transmission time jitter is introduced.
Congestion in the Local Area Network: It is a transient jitter and occurs for short durations. It is governed by the maximum back-off time and the delay between packets. If the LAN cannot be contacted by the VoIP endpoint and the back-off time limit is reached or if another packet is ready for transmission, then the previous packet may be dropped. A 10 Mbit ethernet has a high back-off time as compared to the VoIP packet spacing and hence the jitter limits are governed more by the packet spacing and are usually in the range of 10-30 milliseconds.
Firewall routers: It can lead to a transient delay as well as short term variations. Firewall routers such as double socket routers reestablish an IP flow on the inner side of the firewalls after they have terminated it on the outer side. This helps in regulating the payload that gets forwarded to the inner networks. However, this leads to variable delay.
Access Links: These lead to short term variations and are often responsible for jitter as they constitute a bottleneck in the network. As ISDN and cable modems have bandwidth problems, the jitter introduced due to access links can be severe, sometimes up to 30 milliseconds of delay for each packet.
Load Sharing: Load sharing between IP service providers can lead to a constant jitter. Sometimes, multiple access links are routed through one IP service provider and this can lead to jitter if the delays across the links differ.
Load Sharing by an IP service: It can lead to a constant jitter. When IP service providers route traffic over more than one internal route in order to even out the load on the network, the difference in delay on each route can lead to delay.
Load Sharing within routers: It results in a constant jitter. When routers process packet in multiple queues in order to boost router capacity, it can lead to low levels of jitter. In order to support high capacity some routers employ a multi-processing approach in which packets are processed by multiple parallel queues. This can introduce low levels of jitter due to short term differences in queue size.
Routing table updates: These can lead to transient jitters. Routers perform periodic updates in order to ascertain packet priority and dispatch the high-priority packet first. This can lead to a delay in the transmission of some packets and sometimes some packets can experience very high delays.
Route Flapping: This causes transient jitters and can be traced to varying levels of congestion and link breakdowns. Route flapping occurs when a routing table is updated and is characterized by a low frequency oscillation.
Timing Drifts: It causes transient jitters and can result in "jitter buffer events", in which the buffer can either be overfilled or it has excess capacity. The timing can be reset if an NTP server is used.
A few approaches used for measuring jitter have been described below:
RTCP jitter is measured in terms of packet to packet delay. If we consider the delay between two consecutive packets to be Ta and Tb, then the variation is represented as abs(Tb-Ta). The mean of the packet to packet delay variation can be given by MPPDV = mean( abs(ti – ti-1) ). The MPPDV in this case represents the jitter levels in scenarios in which the packets arrive early and late in an alternate fashion.
The mean absolute delay variation (MAPDV) for a packet having a nominal arrival time of ai is given by mean(abs(ti - ai) ). In case of a route change, the value may not be an accurate estimate of the jitter buffer size or discard rate. Jitter buffer behavior can be understood in a better manner by considering the MAPDV in relation to the average or the adjusted value.
An alternative approach is to determine the mean absolute packet delay variation with regard to a short term average or minimum value – termed here the adjusted absolute packet delay variation. This can provide a more meaningful relationship to jitter buffer behavior.
If the nominal arrival time (denoted below ai) for a packet is known or can be determined then the absolute delay variation is abs(ti – ai).
The mean absolute packet delay variation is therefore:
MAPDV = mean( abs(ti – ai) )
This value can be misleading if a delay change occurs (e.g. route change), as a constant offset would be included. As even fixed jitter buffers can adapt to delay shifts, this means that the reported jitter value would not necessarily be a good indicator of ideal jitter buffer size or discard rate.
In a given time interval, the difference between the minimum and maximum transaction delays is given by IP Delay Variation. The time gap between successive measurements has an effect on the IP Delay Variation readings.
A Time Series Analysis is an alternative method in which sequences are fed into a filter function and matched with the data that is being modeled, for example with a Moving Average filter function. The jitter can be modeled as the sum of the processes that occur randomly. This will help in understanding the time varying nature of jitter and can also be used to emulate the jitter in IP networks. By modeling the jitter buffer operation, it is possible to estimate the packet losses in a live scenario. This helps to speed up the measurement process as there is no need to relate the jitter metric to a discard rate.
Jitter buffers are used to reduce jitter from the voice stream; however, in the process of reducing jitter, the buffers can increase delay and packet loss. Jitter buffers are either adaptive or fixed. Adaptive jitter buffers can vary their size as per the amount of traffic. Jitter buffers can adjust automatically with the delay in traffic, this permits the data to be retained for maximum time before it has to be discarded. The jitter buffer is sensitive to the recent minimum delays and is aware of the maximum permissible delay. This helps it to adjust to any changes in delay.
An increase in jitter levels or the presence of a discard event is a trigger for adaptive jitter buffers to react. In the presence of a discard event, the jitter buffer size is increased. For jitter events that happen close to one another, an adaptive jitter is preferred; however, for jitter that occurs over a period of time, as in a LAN, increasing the size of the jitter buffer may lead to delay. Jitter modeling should be such that IP network emulation can be carried out with the help of data obtained by using a time series model. The impact of jitter can be measured on a VoIP service by using a jitter buffer emulator that can deduce the number of packets that will be discarded.