Network traffic is bursty by nature. This can create conditions where the subjective “feel” of the network, which is also commonly referred to as Quality of Experience (QoE), can make the home network feel sluggish and frustrating.
Quality of Service (QoS), is an objective value which can directly impact the QoE and how a network “feels” to the end user. The goal of a good QoS implementation is to balance the traffic on a network. Without QoS in place, devices do not have awareness of each other or bandwidth needs and usage. This will usually result in a situation where all devices "fighting" over network capacity. Some devices feast on bandwidth while others live in famine, resulting in inconsistent QoE for the subscriber.
With QoS in place, it acts like a traffic cop - sometimes called a policer, shaper, buffer or queue. It sits inside the network policing the flows within to ensure that devices are playing nicely and preventing any devices from starving, thereby improving the subjective “feel” of the network and providing a positive QoE.
Something to Keep in Mind:
There are some use cases with real-time traffic that need some special consideration, such as online gaming, VoIP, streaming and video chats like FaceTime or Zoom. These all require very low bandwidth, but very high importance on keeping delay low and reliability high. Buffered video, such as Netflix or YouTube, and large downloads are extremely bandwidth hungry, but are also very tolerant of high delay and easily handle low reliability.
QoS & Minim
Imagine the following real world scenario... A parent gets frustrated that the Smart TV in the living keeps buffering video, so they run a speed test on their laptop and find that the results are abysmal. They call the service provider because the Internet feels slow and the speed test result appears to confirm and justify that they’re receiving poor service. This customer is ready to churn, is experiencing poor QoE, and is upset.
In reality, a Roku is streaming video at ultra high definition consuming lots of bandwidth in one of the bedrooms upstairs - and a PC in the office is also downloading a huge Windows update.
To provide a subscriber with great QoE performance, Minim focuses on Bufferbloat. In a network, the sizes of the packets traveling will vary depending on how the subscriber is using the connection. The majority of conditions - real-time gaming or browsing - use very little bandwidth and latency so they operate with small to medium sized packets. Conversely, the high bandwidth traffic, such as buffered video and downloads like patches and updates, nearly always fill the packets to the brim, minimizing protocol overhead and maximizing payload.
If we extrapolate from this that a reasonable assumption is that it’s almost always OK to buffer large packets, and almost never good to queue up small ones, then we can implement a design where we use “fairness” to ensure that no flows (or devices) ever end up starved and we can service small packets first and allow large packets to arrive at best effort.
This logic has been proven to provide a significant enhancement in QoE for very little configuration overhead. The underlying queueing mechanism must support Fairness Queueing (SFQ in ROS, SQM in WRT).
When QoS is enabled, it will look at the speeds received when a speed test is ran and determine how the available bandwidth can be shared between the devices connected on the network. It will sit in the network (like a traffic cop on the freeway) and make sure a single device is not allowed to use the full connection while other devices a left trying to use the leftover bandwidth.