QoS Notes

Some personal notes about my on-going QoS studies, as already explained on earlier posts this notes will be updated all the time as I study deeper on the subject.

QoS Models:

1) Integrated Services (IntServ)

2) Differentiated Services (DiffServ)

IntServ is used on connection-oriented services, so that it requires states of all nodes along the path (end-to-end) and reserves required resources for a particular service, for example RSVP in MPLS.

DiffServ is used as connection-less type of QoS, because we can manipulate the behaviour (PHB) of a specific flow (traffic class) per hop. The original ToS byte in IP Header is called the DSCP field, and the values resulting from it are called DSCP values which we can use for Classification/Marking, and Policing. Only 6 bits of the ToS field are used for DSCP value generation, the remaining 2 bits are currently un-used.

Per Hop Behaviour (PHB) groups:

Class Selector PHB (CS-PHB) – has 7 classes that are backward compatible with IP Precedence (uses 3 leftmost bits for compatibility). See figure below about the different CS values and the mapping to IPP values.

Class Selector and IP Precedence

Assured Forwarding PHB (AF-PHB) – has 4 classes with 3 level of Drop Precedences on each class. See below figure about the different AF values.

Assured Forwarding

Expedited Forwarding PHB (EF-PHB) – Mainly used for traffic that requires low-latency, has only one value, DSCP 46. I did not upload any diagram about EF PHB since it only uses one unique value, 46.


Generaly the interface queues have a so called “tail” and “head” which represent the beggining and the end of a Queue (queue depth can be manually configured).

1) Input Queue – We can use Shaping and Policing.

2) Output Queue – The default algorithm used on Ethernet links is FIFO (Software Queue), but this can also be manually changed to WFQ, CBWFQ, LLQ, etc. Tail Drop means when a packet was dropped because the Output Queue is full, and there is no place for more packets before the first one leaves the Output Queue and is forwarded to the Transmit Ring (TxR or Hardware Queueing which is always forwarding on FIFO logic).

Queueing Algorithms:

FIFO Queueing – First packet that enters is the first that is leaving.

Fair Queueing – Resources (bandwidth) are shared equally amongst the flows.

Weighted Fair Queueing (WFQ) – Bandwidth is allocated per flow proportionally to weight (marks).

Class Bassed Weighted Fair Queueing (CBWFQ) – Successor of WFQ, plus we have the ability to create our own Classes for Traffic Classification. It is based on Weights (Bandwidth). By default only 75% of interface traffic is allowed to be assigned by CBWFQ, the other 25% remains for routing protocols and other control plane protocols. The default method of Dropping packet’s is Tail Drop, but you are allowed to change to WRED as well.

Low Latency Queueing (LLQ) – Probably the most wanted tool when it comes to Voice Traffic. Originally same as CBWFQ but the addition to this one is that you can give priority to sensitive traffic (Voice over IP, Video traffic, etc), and as we already know Voice traffic  is sensitive to Latency and/or Jitter, so by giving priority to a particular traffic we are lowering the possibility of packet loss.

Modified Deficit Round Robin (MDRR):
– Used on Cisco 12000 routers because it doesn’t support CBWFQ and LLQ.
– MDRR classifies traffic into 7 Round Robin queues with 1additional Priority queue.
Two options for Priority queues:
1) Strict Priority mode – same as LLQ, priority queue is served always first.
2) Alternate mode – serves the priority queue in between serving each of the other queues, for example Q1, P, Q2, P, Q3, P, Q4, P.

Ingress Queueing:

– Cisco 3560 switches have two Ingress Queues, where one of them can be configured as a priority queue.
– Ingress Queueing in Cisco 3560 use a method called Weighted Tail Drop (WTD) for setting different Discard Threshold values for each queue.
– Shared Round Robin (SRR) – is a method of packet scheduler on Cisco 3560 switches that controls the rates at which all packets are sent from Ingress Queue to the internal Switch Fabric.
– Default Ingress Queue settings on Cisco 3560 when QoS is enabled, are:
  • Queue number 2 is the Priority Queue
  • 10 Percent of the interface bandwidth is allocated to Queue 2.
  • Traffic marked as CoS 5 is placed on Queue 2.

Ingress Queue

p.s: The Diagrams above are not my own, I found them on google search.

More notes to be added soon…

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s