Ernie's Quality of Service Guide
|
QoS Overview
"The ability to identify and prioritize specific applications,
users, or data flows and guarantee a desired level of network
performance"
-
Converged Networking: Voice, Video, Special
Applications and Data
-
Quality of Service: Grade of Service and Mean
Opinion Score
-
Factors: Throughput, Latency, Jitter and Loss
-
Features: Classification, Queuing, Congestion
Avoidance, Policing, Rewriting and Scheduling

-
Layer 2 frames will identify "interesting"
traffic by CoS in the Ethernet Header (Class of Service: 802.1p
markings carried on an 802.1Q trunk)
Valid values for CoS: 0 - 7
-
Layer 3 packets will identify "interesting"
traffic by ToS in the IP Header (Type of Service: IP Precedence
and DSCP aka DiffServ)
Valid values for IP Precedence: 0 - 7
Valid values for DSCP: 0 - 63
|
|
QoS Goals
- Prioritize traffic to help ensure voice quality and call
control are maintained
- Guarantee bandwidth for voice during times of congestion
(G.711 = ~90kbs/call and G.729 = ~32kbps/call)
- Latency < 150ms (less than 80ms ideally) - In one direction
(mouth to ear)
- Jitter < 30ms
- Packet Loss < 1%
- Reduce latency and increase throughput for other specific
applications such as video
QoS Strategy
- Use CoS (Class of Service) and DSCP (DiffServ) to identify
voice, video, control and specific applications frames and
packets and ensure that this specially marked traffic is given
the correct priority PHB (Per Hop Behavior) as an end-to-end
(LAN and WAN) solution enterprise wide
- Configure VoIP equipment to correctly mark voice traffic
(RTP and Control) with specific CoS / DSCP values
- Configure switch / router queues to move (and use policies
to mark) frames and packets based on an agreed upon order and
desired bandwidth
Network traffic will fit into one of these four (4) general
categories in this strategy guide:
- Voice Traffic – Real-time conversations
- Control Traffic – Network (Spanning Tree),
Inter-Network (Routing Protocols) and Voice (H.248 / MGCP)
- Priority Application Traffic – Video, Citrix,
3270 etc.
- Everything Else! – Email, Web, File Copy, FTP
etc.
“Pre-set / agreed upon standards" -
Ethernet Frame and IP Packet markings table
|
COS (Ethernet Frame) |
DSCP (IP Packet) |
Traffic |
|
5 |
46 |
Voice Traffic (RTP) |
|
3,
6, 7 |
26,
48, 56 |
Control Traffic (H.248 /
MGCP) |
|
4 |
34 |
Priority Application
Traffic (Video) |
|
0, 1, 2 (Unmarked) |
0 (Unmarked) |
All “Other” Traffic (Email,
HTTP, FTP, SMB etc.) |
- Some telecom equipment is intelligent enough to
correctly mark its own network traffic.
If this is the case, you should configure the gear
to mark based on the table above (Voice RTP = CoS 5
/ DSCP 46 for example)
- Other gear may need to rely on the Cisco switch
or router to identify and mark frames and packets.
ACLs, Class Maps and Policy Maps can use things like
IP address, TCP / UDP port or the physical incoming
switch port to mark traffic.
- Simply marking traffic isn't enough. You will
need to configure switches and routers to correctly
queue and police ingress and egress ports based on
the CoS / DSCP markings. During times of congestion,
voice traffic should get special treatment and
placed in the "front of the line" while other
traffic like HTTP may get dropped! This is what QoS
(Traffic Shaping) is all about.
|
|
Ernie's QoS Configuration Examples
|
|
Monitoring QoS
|
|
Tools
|
|
Selecting a Cisco Ethernet switch specifically for QoS
- Cisco 2950 - Not desired, only has two (2) egress queues and
no ingress QoS capability. (Has some basic QoS ability if you
already own one.)
- Cisco 2960 - Has POE and
four (4) egress queues as well as can
classify, reclassify, police, mark, queue, and schedule incoming
packets.
- Cisco 3560 - Optional POE,
has great QoS support and the "Enhanced" image supports VRF-Lite.
- Cisco 4500 Series -
Modular "Campus" switch, optional POE and has great QoS support.
- Cisco 6500 Series - Modular "Core" switch, optional POE and
has full QoS support.
|
|
Additional QoS Related Reading & Links
Switching Methods
- Cut Through - Forwards after looking at only the first 6
bytes. Could mistakenly forward a fragment, runt or damaged
frame.
- Fragment Free (Fast Forward) - Forwards after looking at
only the first 64 bytes. Could mistakenly forward a damaged
frame.
- Store and Forward - Forwards after receiving and examining
the entire frame. This was slower, but newer Cisco switches have
very fast
ASICs now.
Switching "Bus" Topologies
Buffering Configuration
- Shared Memory
- Port Buffered Memory
Queuing Methods
- FIFO queuing
This is the basic first-in, first-out queuing technique in which
the first packet in the queue is the first packet that is
processed. When queues become full, congestion occurs and
incoming packets are dropped. FIFO relies on end systems to
control congestion via congestion control mechanisms.
- Priority queuing
This technique uses multiple queues, but queues are serviced
with different levels of priority, with the highest priority
queues being serviced first. When congestion occurs, packets are
dropped from lower-priority queues. The only problem with this
method is that lower-priority queues may not get serviced at all
if high-priority traffic is excessive. Packets are classified
and placed into queues according to information in the packets.
For example, Cisco routers can be programmed to prioritize
traffic for a particular port into high-, medium-, or
low-priority queues. Priority schemes may be abused by users or
applications that mark packets with priorities that are not
allowed. Admission control functions can monitor this.
- Fair queuing
This method helps solve the problem where some queues may not
get serviced because high-priority queues are being serviced. A
round-robin approach is used to service all queues in a fair
way. This prevents any one source from overusing its share of
network capacity. Problems can occur when packets are variable
in length and each queue is allowed to release one packet at a
time. Some queues will take more time. A byte-oriented scheme
may be used to equalize the queues. In addition, some queues may
be more full than others and naturally need more service, but a
strict, fair queuing scheme will service each queue equally.
- WFQ (weighted fair queuing)
This can be seen as a combination of priority queuing and fair
queuing. All queues are serviced so that none are starved, but
some queues are serviced more than others. A weight is applied
to queues to give some queues higher priority. For example, one
queue may get half the available bandwidth and other queues will
get an allocation of the remaining bandwidth. Traffic may be
prioritized according to packet markings, source and destination
IP address fields, port numbers, and information in the ToS
field. WFQ weights traffic so that low-bandwidth traffic gets a
fair level of priority. If high-priority queues are not in use,
lower-priority traffic uses its queues. This prevents
high-bandwidth traffic from grabbing an unfair share of
resources. WFQ is Cisco's "premier queuing technique" according
to the Cisco QoS paper listed on related entries page. A unique
feature is that it moves real-time interactive traffic to the
front of queues and fairly shares the remaining bandwidth among
other flows.
- CBQ (class-based queuing)
CBQ is a class-based algorithm that schedules packets in queues
and guarantees a certain transmission rate. If a queue is not in
use, the bandwidth is made available to other queues. A CBQ-compliant
device looks deep in packets to classify packets according to
addresses, application type, protocol, URL, or other
information. CBQ is more than a queuing scheme. It is also a QoS
scheme that identifies different types of traffic and queues the
traffic according to predefined parameters.
|
|
Terminology & Definitions
- CBWFQ - Class Based Weighted Fair Queuing
- COS
- DiffServ
- IP Precedence
- LLQ - Low-Latency Queuing
- PQ - Priority Queuing
- Strict Queue
- WRED - Weighted Random Early Detection
|
|
Other worthwhile reading (not specifically QoS related)
|