What is QoS?
QoS or Quality of Service is a feature present in switches and routers that help prioritize certain types of traffic over other types of traffic. QoS in essential to any organization’s network traffic and plays a significant role when it comes to real-time traffic (voice and video).
Computer networks at first simply put were meant to transport data from point A to point B. As time passed by computer networks grew larger and larger, the types of protocols traversing through these networks were simultaneously growing. On the other hand, networks started converging and technologies like voice and video conferencing evolved from being on their own individual platforms to reside with IP traffic. There was no real way of prioritizing and segregating traffic until QoS came into the picture. With the help of QoS we could potentially apply various policies onto our traffic that act differently for different types of data. To understand the need for QoS let us first differentiate the various characteristics of traffic.
Characteristics of traffic
Traffic making its way across a network behave differently depending on the protocols used by applications. In general, traditional traffic traversing the network is in large bursts. Traffic followed the FIFO (First In First Out) i.e. traffic arriving first on a switchport would be the first to be serviced by the switch. Data traffic (like http or ftp) were not sensitive to delays and delays as such were acceptable. In case of any drops in packets, the dropped packets could easily be checked and resent using TCP retransmits.
As networks converged and grew various other traffic characteristics started becoming apparent. For example voice traffic behaves completely different from traditional traffic and has its own individual characteristics. Voice traffic is sent out in constant short bursts and thus are in a constant fight with traditional bursty data. Voice packets are very sensitive to delay and drops. Also the retransmission of voice traffic really doesn’t solve any purpose.
Thus all traffic should not be looked at as the same and instead should be treated differently depending on the individual traffics characteristics. The different types of traffic can be identified and treated based on certain markings or labels present in the frame and/or ip packet.
QoS markings
The IEEE 802.3p standard defines QoS markings on layer 2 frames. Three bits from the frame are used to identify a total of 8 (0 to 7) values that can be used to classify traffic. These eight values are known as COS (Class of Service) markings and used to classify traffic based on QoS on a layer 2 level
For Layer 3 based QoS classification the ToS (Type of Service) Byte of the ip header is used for QoS markings. Using this 8 bit field there are two different markings are possible. One being IP Precedence and the other being DSCP (Differentiated Service Code Point). Using the IP Precedence model up to 8 different markings are possible and using the DSCP model up to 64 different markings are possible. The various traffic types present in our network can be assigned with an appropriate CoS/DSCP value. Once this value is assigned to the traffic the traffic can be treated differently depending on the value assigned to it.
QoS is a three stage process consisting of identifying the traffic, applying certain rules to the various traffic types present and then sending it out the desired interface with the interface specific settings applied. This three step process can easily be implemented with a MQC (Modular QoS CLI) based configuration.
Modular QoS CLI
The Modular QoS mechanism is an evolution from the traditional method of QoS configuration (standard CLI). The CLI methodology is tedious as it means applying policies applicable for each interface individually. The reutilization of this code is not feasible in this method. The MQC model being modular in nature allows different sets of configuration to be used or reused differently with other sets of configuration. For Example a red Lego block can be used to build a nice little red house and that very same red block can be used to build a not so nice death ray. Similarly parts of configuration can be placed and used differently using the MQC model. The MQC configuration model consists of class-maps, policy-maps and service-policies and each of these work in tandem to provide the desired QoS settings.
Class-maps
Class-maps are used to classify or identify traffic. They consist of certain match statements and can be used with a variety of techniques (like Access Control Lists, DSCP markings, NBAR) to match traffic
Policy-maps
Policy-maps define what policies are to be applied onto the various traffic types matched by the previously defined class-maps.
Service-policy
A service-policy defines where these policies are applied. It defines whether the traffic policies are on the ingress or egress of which interface.
Auto QoS
Then came the magic of Auto QoS. A method where in a single command would automatically generate a set of QoS commands that are appropriate for a generic QoS implementation. Further modification of these rudimental settings are easily possible. With Auto QoS, deployment of QoS mechanisms became quicker and more simplified.