Quality of service (QoS) refers to any technology that manages data traffic to reduce packet loss, latency and jitter on a network. QoS controls and manages network resources by setting priorities for specific types of data on the network.
Enterprise networks need to provide predictable and measurable services as applications -- such as voice, video and delay-sensitive data -- to traverse a network. Organizations use QoS to meet the traffic requirements of sensitive applications, such as real-time voice and video, and to prevent the degradation of quality caused by packet loss, delay and jitter.
Organizations can reach a QoS by using certain tools and techniques, such as jitter buffer and traffic shaping. For many organizations, QoS is included in the service-level agreement (SLA) with their network service provider to guarantee a certain level of network performance.
The term Class of Service (CoS) is sometimes used interchangeably with QoS. However, they are slightly different. CoS technology does not specifically guarantee a level of service in terms of bandwidth, and it approaches traffic control from a less granular perspective. In many cases though, whether someone refers to CoS or QoS, they are likely talking about the same thing.
Organizations can measure QoS quantitatively by using several parameters, including the following:
- Packet loss. This happens when network links become congested, and routers and switches start dropping packets. When packets are dropped during real-time communication, such as in voice or video calls, these sessions can experience jitter and gaps in speech. Packets can be dropped when a queue, or line of packets waiting to be sent, overflows.
- Jitter. This is the result of network congestion, timing drift and route changes. Too much jitter can degrade the quality of voice and video communication.
- Latency. This the time it takes a packet to travel from its source to its destination. Latency should be as close to zero as possible. If a voice over IP call has a high amount of latency, users can experience echo and overlapping audio.
- Bandwidth. This is the capacity of a network communications link to transmit the maximum amount of data from one point to another in a given amount of time. QoS optimizes the network performance by managing bandwidth and giving high priority applications with stricter performance requirements more resources than others.
- Mean opinion score (MOS). This is a metric to rate voice quality that uses a five-point scale, with a five indicating the highest quality.
Why is QoS important?
Without QoS, network data can become disorganized, clogging networks to the point where performance degrades or, in certain cases, the network shuts down completely.
Quality of service is important because enterprises need to provide stable services for employees and customers to use. Quality of service determines Quality of Experience (QoE). If the services an organization provides are not reliable, customer and employee relationships may be put at risk.
Additionally, data integrity and security are more likely to be compromised in a company with a poor QoS. In general, employees and customers depend on communication services to do their jobs. When quality of service suffers, quality of work and Quality of Experience suffers as well.
One example of how poor QoS may negatively affect network security could be if a remote employee uses a public network without first connecting to a VPN, due to poor network connectivity or bugs in an enterprise application over the network. Their laptop could contain sensitive data that is now exposed to possible exploits.
Another example is the 2020 SolarWinds hack, in which SolarWinds, a vendor that provides performance monitoring services, was hacked, and consequently has endangered its customers' networks.
How does QoS work?
When organizations use their networks to send information back and forth between endpoints on the network, the information or data is formatted into packets. Packets are the way computers organize information to be transferred over a network, like how a person might package items to be sent through the physical mail system.
Quality of service tools take on the responsibility of prioritizing packets to get the most out of the finite amount of bandwidth on their network. In other words, the network can only transport so much information in a certain amount of time. So, QoS tools prioritize packets in a way that ensures that bandwidth is used to provide the best internet service possible in that fixed amount of time.
For example, packets pertaining to a video call would be prioritized over packets pertaining to an email download. This is because a video call is a more synchronous form of communication than an email -- video needs to happen in real time, whereas emailing is not necessarily time-sensitive. If a packet is dropped or delayed during a video chat, the end user may experience jitter or latency in the chat. If packets are dropped or delayed in the emailing process, they can still be sent after and the end-user will not experience any lapse in service. They will only receive the email when all packets have been assembled, whereas someone streaming video sees the packets as they arrive.
A QoS tool looks at packet headers to prioritize packets. Packet headers are bits of information that tell the tool and other network components what the packet contains, where it is going (the IP address of its destination) and what it will be used for. A QoS tool can read the packet header and determine that a packet is related to video streaming and prioritize it over packets that are less time-sensitive. A packet header can be thought of as the mailing and return addresses on a physical package. The QoS tool can alter a portion of the packet header to specify priority.
What are the benefits of QoS?
The main benefit of QoS is that it ensures the availability of an organization's network and the applications that run on that network. It provides the safe, efficient transfer of data over that network. QoS also allows organizations to use their existing bandwidths more efficiently, instead of upgrading network infrastructure to expand bandwidth.
More specific benefits include:
- Mission-critical applications have access to the resources they require.
- Administrators can manage traffic better.
- Organizations can reduce costs by eliminating the need to purchase new network infrastructure.
- User experience is improved.
When implementing QoS tools and strategies, organizations should follow these steps:
- Planning. The organization should gain an understanding of each department's service needs and requirements, choose a fitting model, and cultivate buy-in from stakeholders.
- Design. The organization should then take note of all significant software and hardware changes, and apply the chosen QoS model to the specifics of its network architecture.
- Testing. The organization should test QoS settings and policies in a safe, controlled testing environment where bugs can be worked out.
- Deployment. Policies should be rolled-out iteratively, in phases. An organization may choose to roll out policies by network segment or by separate QoS function (what each policy does).
- Monitoring and analysis. Policies should be adjusted to improve performance according to performance data.
Three models exist to implement QoS: Best Effort, Integrated Services and Differentiated Services.
- Best Effort.A QoS model where all the packets receive the same priority, and there is no guaranteed delivery of packets. Best Effort is applied when networks have not configured QoS policies or when the infrastructure does not support QoS.
- Integrated Services(IntServ). A QoS model that reserves bandwidth along a specific path on the network. Applications ask the network for resource reservation, and network devices monitor the flow of packets to make sure network resources can accept the packets.
Implementing IntServ requires IntServ-capable routers and uses the Resource Reservation Protocol (RSVP) for network resource reservation. IntServ has limited scalability and high consumption of network resources.
- Differentiated Services (DiffServ). A QoS model where network elements, such as routers and switches, are configured to service multiple classes of traffic with different priorities. Network traffic must be divided into classes based on a company's configuration
For example, voice traffic can be assigned a higher priority than other types of traffic. Packets are assigned priorities using Differentiated Services Code Point (DSCP) for classification. DiffServ also uses per-hop behavior to apply QoS techniques, such as queuing and prioritization, to packets.
Network architecture also affects how an organization implements QoS. A Multiprotocol Label Switching (MPLS) network includes a private link that offers end-to-end QoS along a single path. SLAs for MPLS specify bandwidth, QoS, latency and uptime. However, an MPLS can be expensive for organizations.
Software-defined WAN (SD-WAN) uses multiple connectivity types, including MPLS and broadband. SD-WAN monitors the state of current network connections for performance issues and uses its multiple connectivity types to fail over based on state. For example, if packet loss exceeds a certain level on one connection, SD-WAN capabilities will look for an alternative connection.
Certain QoS mechanisms can manage data traffic quality and maintain the QoS requirements specified in SLAs. QoS mechanisms fall under specific categories depending on the roles they play in managing the network.
- Classification and marking. These tools differentiate between applications and sort packets into different traffic types. Marking indicates each packet as a member of a network class, which allows devices on the network to recognize the packet's class. Classification and marking are implemented on network devices such as routers, switches and access points.
- Congestion management. These tools use packet classification and marking to determine which queue to place the packets in. Congestion management tools include priority queuing, first-in, first-out and low-latency queuing.
- Congestion avoidance. These tools monitor network traffic for congestion and drop low-priority packets when congestion occurs. Congestion avoidance tools include weighted random early detection and random early detection.
- Shaping. These tools manipulate traffic flowing into the network and prioritize real-time applications over less time-sensitive applications such as email and messaging. Traffic shaping tools include buffers, Generic Traffic Shaping and Frame-Relay Traffic Shaping.
- Link efficiency. These tools maximize bandwidth use and reduce delay for packets accessing the network. While not exclusively for QoS, link efficiency tools are used in conjunction with other QoS mechanisms. Link efficiency tools include Real-time Transport Protocol, header compression, Transmission Control Protocol, header compression and link compression.
QoS tools generally fall into these categories:
- Classification. Identifies traffic and marks it to make sure that other network devices can identify and prioritize it.
- Queueing. Reserves bandwidth to hold packets in a buffer to process later.
- Policing. Enforces a specific bandwidth and limit and drops packets that don't adhere to the rule. This is part of congestion avoidance.
- Shaping. Similar to policing but queues the excess traffic in a buffer instead of completely dropping them. This, along with queueing, is part of congestion management.
- Weighted random early discard (WRED). Drops low priority data flows to preserve high-priority data from the negative effects of network congestion.
- Fragmentation and compression. Lowers bandwidth on a network to prevent delay and jitter.
QoS tools may perform just one or a combination of these functions. Many QoS tools are managed and perform these functions automatically, giving administrators access to alter settings and policies as needed. Some popular QoS monitoring tools are:
- SolarWinds NetFlow Traffic Analyzer
- Paessler PRTG Network Monitor
- Nagios Network Analyzer
- ManageEngine NetFlow Analyzer
- OpenNMS (open source)
- Ntopng (open source)
- Bandwidthd (open source)