Troubleshooting VoIP QoS and DSCP

Posted by on October 6, 2015

Keeping Voice-over-IP (VoIP) traffic flowing with highly consistent performance is a headache. VoIP is a technique for voice communications over data networks, increasingly used instead of public switched telephone networks. VoIP traffic is typically encapsulated in Real-time Transport Protocol (RTP), User Datagram Protocol (UDP) and IP packets. It’s regularly regarded as the application that is most driving changes to wide area network (WAN). Not only that, it’s one of the most critical applications to troubleshoot.

Because VoIP traffic is highly susceptible to congestion, loss, latency and jitter across a network, it is a frequent target of complaints and a big time suck for troubleshooting. We’ve created several features in our Voice Tests to help ease this troubleshooting burden. First, Voice Tests work across any network, so you can solve issues that occur in your local network, within a carrier-provided WAN or across the public Internet. Second, you can see loss, delay and differentiated services (DiffServ) markings for each link and interface in the traffic path.

Today we’ll focus on identifying changes to quality of service and DiffServ markings. If you’re interested to learn more about how VoIP works, check out our previous blog post on how you can measure VoIP performance across networks.

QoS and DSCP

Quality of Service (QoS) is a networking concept that assigns traffic flowing across the network differing priorities. To implement QoS, IP networks use DiffServ to discriminate between traffic and shape it. Within an IP packet header, the Differentiated Services Code Point (DSCP) defines a value from 0 to 63 that maps to a certain traffic classification. DSCP values are used within a network, based on the operator’s own policies, to determine the treatment of packets in router queues, routes of traffic flows and per-hop behavior (PHB).

Some common examples of DSCP values and their corresponding PHB are:

  • Default Forwarding (DF, CS0-1): best-effort, standard class of service
  • Assured Forwarding (AF, CS2-5): transactional and low latency data, media streaming and video conference
  • Expedited Forwarding (EF, CS6): VoIP, SIP, telephony and low loss, latency and jitter applications

To visualize how QoS and DSCP values work across networks, let’s look at a path visualization of VoIP traffic. In Figure 1, traffic flows from Denver to Dallas in the Telia and SoftLayer networks. Because each operator sets their own QoS policies, DSCP values often change at borders between networks. We can see in this case that packets marked EF (46), the typical marking for voice traffic, are remarked as they enter the SoftLayer network to DF (0).

Figure 1: A DSCP change at the border of the SoftLayer network which could impact QoS and VoIP performance.

Finding DSCP Remarkings

Finding remarkings is possible with active probing of a VoIP network. In ThousandEyes we do this by sending a stream of UDP-encapsulated voice packets between two agents, located either in your network or in an Internet POP. You can quickly locate the paths where remarkings occur, the interfaces responsible for the remarking and compare the sent and received DSCP values. In Figure 2, you’ll see how the Quick Selection dropdown within the Path Visualization view includes links with DSCP changes whenever they are detected. And Figure 3 shows the highlighted links and the detail available for each change.

Figure 2: Use the Quick Selection to identify links with DSCP changes.
Figure 3: Hover over the links to see the details of the DSCP remarking.

In addition, you can get this information from details in the source and destination agent labels. Figures 4 and 5 show how you can easily compare the sent and received DSCP values at the source, as well as the aggregate marking received by a destination.

Figure 4: Hover over the source (left) and destination (right) agents to see a summary of performance,
including DSCP sent and received.

Setting Up Alerts

With Path Trace alerts, discussed in more detail here, you can also automatically receive notifications if DSCP markings are not received as expected. Select the Network > Path Trace alert tab. Adjust the conditions to ‘Any Hop’ or a specific ‘Hop #’ if you only want to ensure DSCP values up to a specific point through the network path. Then select DSCP ‘is not’ the expected DSCP value. In Figure 5, I’ve set up an alert that will trigger when any packets are received that are not EF (46).

Figure 5: A Path Trace alert that triggers when unexpected DSCP values are received.

Monitoring Your Voice Network

Getting this sort of visibility into VoIP traffic your local and wide area networks is fairly simple. All it takes is a software-based agent on either end of the circuit to simulate VoIP traffic. You can then customize codecs and DSCP values to match your environment. Whether you’re troubleshooting a sticky situation or trying to plan out a new circuit, active probing of your voice network is a powerful arrow for your monitoring quiver.

Interested in how you can monitor VoIP traffic in ThousandEyes? Check out our 30-minute webinar, 6-minute product tutorial and sign up for a 15 day free trial.