In the previous discussion on QoS, the uses of Per-Hop Behaviors DiffServ to mark packets were identified and discussed in detail. Today’s post will identify the mechanisms to implement QoS. The five main categories of tools used to implement QoS are as follows.
- Classification and Marking
- Congestion Management
- Congestion Avoidance
- Policing and Shaping
- Link Efficiency
Classification and Marking
Classification and Marking, although lumped together as one, are two distinct items within the QoS mechanisms to implement QoS. In general terms they identify and split traffic into different classes and mark the traffic according to desired behaviors.
Classification tools sort packets into different traffic types, to which different policies can be applied. Classification can be done at every node in the network or be implemented at the edge of the network when the packet enters the network. Classification of packets can happen without marking the packets. Classification inspects one or more fields in the packet to identify the type of traffic that the packet is carrying. After the identification process the traffic is handed to the treatment application such as, marking, remarking, queuing, policing, shaping or a combination of these.
Marking writes a field within the packet, frame, cell or label to preserve the classification decision that was reached during the classification process. Marking is also known as coloring the packet, which involves marking each packet as a member of a network class so all devices throughout the rest of the network can quickly recognize the packet class. The marking process set bits in the DSCP or IP Precedence field of each IP packet according to the class that the packet is in. Packets that are marked as high priority, such as a voice packet, will generally never be dropped by congestion avoidance mechanisms. On the other hand, if packets are marked as low priority they will be dropped when congestion occurs.
Congestion management queuing algorithms use the marking on each packet to determine which queue to place packets in. Each queue is given different treatment based on the class of packets in the queue. Congestion management tools are implemented on all output interfaces in a QoS enabled network. Cisco IOS uses the following congestion management queuing methods:
- FIFO (First in First Out), Priority Queuing (PQ), Custom Queuing (CQ)
- Weighted Fair Queuing (WFQ)
- Class Based Weighted Fair Queuing (CBWFQ)
- Low Latency Queuing (LLQ)
Congestion Avoidance monitors network traffic loads in an effort to anticipate and avoid congestion. Congestion Avoidance is achieved through packet dropping. Typically, congestion avoidance is implemented on output interfaces where high-speed links intersect with low speed links. Congestion Avoidance in Cisco products uses Weighted Random Early Detection (WRED) to avoid congestion by dropping low priority packets and allowing high priority packets to continue on their path.
Policing and Shaping
Policing or Shaping mechanisms are used to condition traffic before transmitting or when receiving traffic. Policers and Shapers can work in tandem, they are not mutually exclusive.
Policing controls bursts and conforms traffic to ensure each traffic type gets the prescribed bandwidth. In some cases policing can help service providers maintain service level agreements (SLA). This is accomplished by throttling excess traffic above agreed SLA by dropping low priority traffic. Policing is implemented with Class-Based Policing and Committed Access Rate (CAR).
Shaping helps smooth out speed mismatches in the network and limits transmission rates. These mechanisms are typically used to limit the flow from high speed links to low speed links, to prevent the low speed links from becoming over run. Cisco QoS uses Generic Traffic Shaping (GTS), and Frame Relay Traffic Shaping (FRTS) to implement shaping.
Although not exclusively QoS tools, link efficiency tools are categorized as QoS tools because they are often used in conjunction with QoS. Both of the link efficiency tools were created outside of the realm of QoS, and were used as independent Cisco IOS Tools.
Header-compression is a tool that is used to reduce the IP overhead of a Real-Time Transport Protocol (RTP) voice packet which reduces the overall size of the IP packet. Large packets normally do not use header-compression because the ratio of the size of the IP header is not significant compared to the payload of the packet. Short voice packets’ IP header can more than triple the overall size of the packet which can increase the delay of transmitting the packet to its destination.
A RTP packet has 40 bytes of IP Over head broken out as follows:
- IP Header = 20 bytes
- UDP Header = 8 bytes
- RTP Header = 12 bytes
- Total = 40 bytes
When compressed, the IP/UDP/RTP header is reduced down to 2 or 4 bytes depending on if the cyclic redundancy check (CRC) is transmitted.
Link Fragmentation and Interleaving (LFI) is used to reduce delay and jitter on slower speed links by breaking the larger packets, such as FTP file transfers, into smaller packets and interleaving them in with the small voice packets. LFI reduces serialization delay by fragmenting large packets such as file transfers on slow WAN links (768K or less). If these large packets are allowed to continue unimpeded the voice packets would exceed their delay and jitter tolerances, and would result in bad quality voice.
The next few entries of this QoS blog will explore the Cisco IOS Modular QoS Command Line Interface (MQC), and how to configure the QoS mechanisms explained in this blog.
End-To-End QoS network Design, by Tim Szigeti and Christina Hattingh
DiffServ – The Scalable End-To-End QoS Model
Integrated Services Architecture
Definition of the Differentiated Services Field
An Architecture for Differentiated Services
Requirements for IP Version 4 Routers
An Expedited Forwarding PHB (Per-Hop Behavior)
Author: Paul Stryer