QoS (Quality of Service) describes a concept whereby data bandwidth and error rates can be measured, improved and guaranteed. QoS is especially important to real-time traffic like voice and streaming multimedia, where any data loss or delay would result in unacceptable audio or image quality. Delivering sufficient QoS is an essential aspect of modern IP networks.
Delay-sensitive applications typically use UDP (User Datagram Protocol) rather than TCP (Transmission Control Protocol) for data transmission. The key difference is that TCP will retransmit packets that do not arrive at the destination, whereas UDP will not. TCP is perfect for applications like file transfer and emails, where it does not matter if a packet arrives late or out of sequence – any missing packets can simply be resent and the file recompiled correctly at the destination. To the receiver, it does not matter if they must wait a few minutes for the final message to be made available.
But for real-time applications like telephone and video calls, missing packets cannot be retransmitted because packets must be played immediately, and in the same order they were sent. The UDP protocol will not resend any dropped packets, since there is no benefit to replaying part of a conversation out of sequence. This means real-time applications are highly sensitive to network performance and congestion issues that can cause delayed or lost packets. For example, losing even a small number of packets during a voice call will result in choppy and unintelligible audio.
This isn’t a problem on networks with plenty of high-speed bandwidth, because on networks with no congestion there is little reason for packets to be delayed. However the reality is that bandwidth is often expensive, and most organizations cannot justify deploying unlimited bandwidth to guarantee congestion never occurs. A balance is needed between cost and capacity to ensure the network delivers good value for money, which often means sizing the bandwidth for average traffic volumes, rather than peak volumes. As a result, most networks will experience some congestion during peak hours.
When congestion occurs, the network routers and switches will begin to drop packets that arrive too quickly to be processed and retransmitted. But if those packets are simply dropped arbitrarily, then real-time applications will suffer. This is where QoS can help.
How does QoS improve call quality?
QoS helps to control the delay,jitter and packet loss experienced by individual applications on your network (jitter refers to the variability in delay). Since bandwidth is a limited resource, it is important to assess all applications that use your network and determine which are most sensitive to delay, jitter and packet loss, and then to ensure that those packets are given priority over less sensitive traffic. The next step is to identify or ‘mark’ packets that belong to each application. This can be done by tagging the packets in Layer 2 using CoS (Class of Service), or marking packets in Layer 3 using DHCP (Differentiated Services Code Point). Multiple applications can be marked differently and categorized based on various levels of priority.
Once the data streams have been categorized, the routers and switches on the network can use that information to direct traffic into specific queues to provide preferential treatment of certain data streams. If voice traffic is classed as top priority, then any voice UDP packets will jump to the top of the queue for immediate transmission as soon as they arrive. If low priority TCP packets arrive, then those packets are simply delayed until all Priority 1 traffic has been transmitted. If the queues are filled to capacity, then any low-priority packets will be dropped first.
In this way, QoS ensures that voice packets are retransmitted as soon as they arrive, even when the network is congested. QoS guarantees a steady and continuous stream of voice packets from the source (speaker) to the destination (listener) involved in the conversation, resulting in a high quality phone call.