Providing sufficient Quality of Service (QoS) across IP networks is becoming an increasingly important aspect of today's enterprise IT infrastructure. Not only is QoS necessary for voice and video streaming over the network, it's also an important factor in supporting the growing Internet of Things (IoT). In this article, I'll explain why QoS is important, how it works, and describe some use-case scenarios to show how it can benefit your end users' experience.
Why is QoS important?
Some applications running on your network are sensitive to delay. These applications commonly use the UDP protocol as opposed to the TCP protocol. The key difference between TCP and UDP as it relates to time sensitivity is that TCP will retransmit packets that are lost in transit while UDP does not. For a file transfer from one PC to the next, TCP should be used because if any packets are lost, malformed or arrive out of order, the TCP protocol can retransmit and reorder the packets to recreate the file on the destination PC.
But for UDP applications such as an IP phone call, any lost packet cannot be retransmitted because the voice packets come in as an ordered stream; re-transmitting packets is useless. Because of this, any lost or delayed packets for applications running the UDP protocol are a real problem. In our voice call example, losing even a few packets will result in the voice quality becoming choppy and unintelligible. Additionally, the packets are sensitive to what's known as jitter. Jitter is the variation in delay of a streaming application.
If your network has plenty of bandwidth and no traffic that bursts above what it can handle, you won't have a problem with packet loss, delay or jitter. But in many enterprise networks, there will be times where links become overly congested to the point where routers and switches start dropping packets because they are coming in/out faster that what can be processed. If that's the case, your streaming applications are going to suffer. This is where QoS comes in.
How does QoS work?
QoS helps manage packet loss, delay and jitter on your network infrastructure. Since we're working with a finite amount of bandwidth, our first order of business is to identify what applications would benefit from managing these three things. Once network and application administrators identify the applications that need to have priority over bandwidth on a network, the next step is to identify that traffic. There are several ways to identify or mark the traffic. Class of Service (CoS) and Differentiated Services Code Point (DSCP) are two examples. CoS will mark a data stream in the layer 2 frame header while DSCP will mark a data stream in the layer 3 packet header. Various applications can be marked differently, which allows the network equipment to be able to categorize data into different groups.
Now that we can categorize data steams into different groups, we can use that information to place policy on those groups in order to provide preferential treatment of some data streams over others. This is known as queuing. For example, if voice traffic is tagged and policy is created to give it access to the majority of network bandwidth on a link, the routing or switching device will move these packets/frames to the front of the queue and transmit them immediately. But if a standard TCP data transfer stream is marked with a lower priority, it will wait (be queued) until there is sufficient bandwidth to transmit. If the queues fill up too much, these lower-priority packets/frames are the first to get dropped.
QoS use-case scenarios
As stated previously, the most common use cases for QoS are voice and video streams. But there are plenty more examples, especially now that IoT is beginning to take off. An example is in the manufacturing sector, where machines are beginning to leverage the network to provide real-time status information on any issues that may be occurring. Any delay in the identification of a problem can result in manufacturing mistakes costing tens of thousands of dollars each second. With QoS, the manufacturing status data stream can take priority in the network to ensure information flows in a timely manner.
Another use case might be in the steaming of various smart sensors for large-scale IoT projects such as a smart building or smart city. Much of the data collected and analyzed, such as temperature, humidity, and location awareness, is highly time sensitive. Because of this time sensitivity, this data should be properly identified, marked and queued accordingly.
It’s safe to say that as our connectivity needs continue to expand into all aspects of our personal and business lives, QoS is going to play an increasingly important role in making sure that certain data streams are given priority over others in order to operate efficiently.