Site Tools


qos-settings

QoS - Basic Principles

Quality of Service (QoS) is a method to prioritize/penalize predefined types of traffic. QoS is a complex topic so this text will discuss only enough basic principles to help you configure an initial setup.


QoS is not Bandwidth Limiter

QoS is not the same as FreshTomato's Bandwidth Limiter.

  • QoS analyzes all traffic on all clients on the network.
  • QoS follows rules for prioritizing one type of traffic over another.
  • Bandwidth Limiter limits the bandwidth used by one or more
    client devices on the network.
  • Bandwidth Limiter prioritizes one client device/group of
    client devices over others.
    It does not analzye traffic types.


If you need a simple, crude tool for one or more known client devices, Bandwidth Limiter may be all that you need.

QoS is a more sophisticated, more refined tool.

However, Bandwidth Limiter shares some settings with QoS. When Bandwidth Limiter is enabled, QoS should be disabled, and vice versa. If both are enabled, they conflict with each other and neither will work.

Basically, QoS performs the following:

  • Identifies traffic.
  • Classifies this traffic.
  • Marks packets.
  • Defines classes and subclasses.
  • Sets class parameters (such as reserved bandwidth).


Often these functions are mentioned when “diffserv” (differential services) is described. Diffserv is the only type of QoS FreshTomato can perform.

It's often said that QoS is a technique to mitigate lack of bandwidth when an upgrade is too costly or even impossible. More precisely, QoS also allows you to prioritize latency-sensitive traffic (such as voice) even when there's no network congestion. Thus, QoS contains controls to allow you to protect certain traffic from lack of bandwidth.







Here are some commonly used QoS terms:

  • Traffic: This is the stream of data between two nodes. Streams could be unidirectional (such as over UDP)
    or bidirectional (such as over TCP).

  • Best effort: This is also known as “no QoS” or “first come, first served” (FIFO).
    This is usually the default queuing mechanism applied to network interfaces.
    When QoS is operating, best effort usually means “that class of traffic that handles everything else”.

  • Classification: The process of internally identifying packets based on predefined parameters.
    For example: “from IP”, “to port”, “protocol=tcp”.

  • Marking: The process of changing the Type of Service/DSCP field in the IP header of a packet
    with a locally significant meaning. This will help a router match packets, as it can simply look at
    their ToS/DSCP headers to know what type of data they contain. Marking isn't always performed.

  • Queuing: This (Outbound-only process) is the buffering of data the network can't process in real time.
    There are many forms of Queuing in QoS. This is divided into classes.

  • Policing: This is the (Inbound and Outbound) process of dropping packets in a controlled way.

  • Queuing Discipline: Also known as “Class Disciplines”, are the actual rules of priority
    that are applied to the data classes.
    This specifies which packets are put into queues in which order, and in what quantity.
    • Packets in the Priority class always come first.
    • If Priority is empty, WFQ (Weighted Fair Queuing) is applied among all other classes.
      There are many queuing disciplines. FreshTomato only supports Qdisc.


This diagram should help you to understand these principles:



How Does all this Help Me?


  1. Have you ever experienced poor quality VoIP calls from your LAN to the Internet?
  2. Do your media, such as videos, buffer too much?
  3. Is someone on your LAN generating too much traffic?

These are all problems that QoS can help you solve.

QoS is NOT auto-regulating. You need to manually define and tweak most QoS parameters, as needed.

CTF implications



As shown in the above screenshot, QoS doesn't work when CTF is enabled. This is because CTF causes network packets to be routed in hardware, outside of firmware control or monitoring.



This Network Scheduler Wikipedia entry may help you further understand the above principles:
https://en.wikipedia.org/wiki/Network_scheduler

qos-settings.txt · Last modified: 2024/10/10 16:58 by hogwild