Impact of Packet Loss, Jitter, and Latency on VoIP

packet10The challenging part of VoIP traffic is that it needs to compete with all other traffic and also be delivered in real-time in order to achieve a good audio quality level. With email or file downloads, if a packet is received out of order or delayed by a few seconds, the user probably won’t even notice. On the contrary, VoIP packets have to arrive in real-time in order to have an intelligible conversation.

There has been a great deal of research on how to encode and route voice traffic through IP networks. On the encoding side, there are several widely used algorithms that trade off compression with required bandwidth. On the routing side, QoS marking can improve the deliverability and timing of voice packets. However, all of us have experienced poor VoIP quality because latency, jitter, and packet loss can never be completely eliminated from real world networks. Let’s see how these three factors affect VoIP quality and how we can measure and monitor the audio quality we offer to our employees.

Latency
Audio latency consists of two parts: the time it takes to encode the audio and the travel time of the packet. The latency itself doesn’t affect the quality of the delivered audio, but it can affect the interaction between the two end users. At 100 ms of latency, the users start talking on top of each other, and at 300 ms, the conversation becomes impossible to follow..

Jitter
Jitter is the variation in the delay of received packets. High jitter results in choppy voice or temporary glitches. VoIP devices implement jitter buffering algorithms to compensate packets that arrive at high timing variations, and packets can even get dropped when they arrive with excessive delay.

Packet loss
Telephony is all UDP based, and packets may not arrive at the destination, or get discarded if they arrive delayed or contain errors. This results in missing audio information at the destination.

The industry has adopted the Mean Opinion Score (MOS) as the universal metric to measure and classify the conversation quality that happens over a network. As the name suggests, it is based on the opinion of the user and ranges from 1.0 to 5.0 with the following classifications:

MOS Quality Impairment
5 Excellent Imperceptible
4 Good Perceptible but not annoying
3 Fair Slightly annoying
2 Poor Annoying
1 Bad >Very annoying

Typically, the highest MOS score that can be achieved is 4.5 for the G.711 codec. The cutoff MOS score for calls that can be tolerated is around 2.5. Ideally, the MOS score is calculated by asking the participants to put a score to the conversation. However, this is not practical, and there are ways to estimate the call quality based on the network’s latency, jitter, and packet loss. The most popular method is based on the E-model, which calculates the rating factor, R, which then is used to derive the MOS score.

For an R value larger than 93.2, we get the maximum MOS score. Depending on latency, jitter, and packet loss we need to deduct from 93.2. This may sound like a magic number, but if you want to learn more about how it’s derived and the E-model you can take a look here.WiFi Monitoring with Raspberry PiEffective Latency
Latency and jitter are related and get combined into a metric called effective latency, which is measured in milliseconds.  The calculation is as follows:

effective_latency = latency +2*jitter + 10.0

We double the effect of jitter because its impact is high on the voice quality and we add a constant of 10.0 ms to account for delay from the codecs.

R is reduced based on effective latency as follows:

For effective_latency < 160.0 ms: R = 93.2 – (effective_latency)/40.0
For effective_latency >= 160.0 ms: R = 93.2 – (effective_latency – 120.0)/10.0

If the effective latency is less than 160.0 ms the overall impact to the voice quality is moderate. For larger values, the voice quality drops more significantly, which is why R is penalized more.

The packet loss (in percentage points) is taken into consideration as follows:

R = R – 2.5 * packet_loss.

Finally, the MOS score is calculated with the following formula:

For R < 0: MOS = 1.0

For 0 < R < 100.0: MOS = 1 + 0.035*R + 0.000007*R*(R-60)*(100-R)

For R >= 100.0: MOS = 4.5

It’s interesting to see how the three parameters affect MOS. If you do the math, you will see that for a packet loss larger than 20%, the MOS is lower than 2.5. Below we see the MOS for packet loss 0%, 10% and 15%, latency 0 to 1000 ms and jitter 0 to 500 ms.

 

packet0

packet10

For each 100 ms latency and 200 ms jitter increase, the MOS score drops by one point. Overall, for latency less than 200 ms and jitter less than 100 ms, the MOS is above 3 points, which is considered an acceptable value and means you can have a comfortable conversation. The impact of jitter being twice as degrading as latency is also reflected by the effective latency calculation where jitter is multiplied by two.

The VoIP systems can calculate the MOS during a placed call and report it. This gives you ability to detect poor VoIP performance, but the catch is that you detect and measure MOS only when two users place a call and there is data to help you calculate it.

At NetBeez, we follow a proactive approach to measure MOS: we generate traffic between two or more agents and measure latency, jitter, and packet loss. This enables early detection of VoIP quality degradation without waiting for a user to place a call and be affected. Below you see the historical of the MOS score between our San Jose and Pittsburgh offices that goes over our cloud VPN. Every five minutes we run a 30 second G.711 stream and measure latency, jitter, packet loss. From that we derive the MOS.

voip_test_screenshot2_hover

If you want to take a deeper look at our VoIP monitoring, you can schedule a one-on-one demo here.

  • Shawn

    Good article.
    It would be nice to have a 5% packet loss MOS score graph, just to help visualize that.
    It was interesting to see you had a 4.16 MOS @ 6.28% packet loss.

    I’m also curious, what, if any, impact high jitter has on codec processing and CPU of highly dense voice gateways (at scale). Packet loss aside, jitter affects us more than latency.

  • Andy

    Okay, after over a year of fighting the call quality issue, with limited to no success, we have stumbled upon a solution that has taken us from thinking we needed to go back to a landline to having crystal clear audio both directions.
    First, we live in a very rural area, with no fiberoptic or even cable, so our choices to date have been satellite or 3G. Definitely no VOIP over satellite, and why bother if you have cell service?
    Our internet solution is wireless over 5.8Ghz to a tower 15 miles away which is connected to the local fiberoptic provider. That has worked far better than we imagined.
    Now, we still had the issue of jitter, dropout, etc. Running a Linksys Router with DD-WRT, we were certain we could adjust the QoS to make it work. Nope. Sometimes even worse.
    To make a long story short, our solution was to install a linksys switch between the internet connection and the router, and connected the VOIP phone (we use VOIPo) directly to the switch, while the computers are routed through the router, which also allows us to secure the network with the VPN.
    For whatever reason, having the phone connected to the switch, thus eliminating the router, has dramatically improved the call quality.
    Hope this helps someone!

    • Panagiotis Vouzis

      HI Andy,

      This is an interesting use case. Did you try to measure jitter, packet loss, and latency with and without the switch? In other words, did you understand what was the problem causing the poor VoIP quality?

  • Pingback: What you should know about Voice-over-IP | Network Monitoring | NetBeez()