There are 3 basic types of QoS
1. Best Effort (BE) Delivery: The best effort delivery method does not distinguish between a priority traffic and a non-priority traffic. The packets are forwarded in the order that they arrive. However, the routers or switches put their best effort to forward the packets that are received. It is the default QoS model used for Internet and it doesn’t implement any QoS mechanism and the simplest model available. BE does not allow for resource reservation therefore does not work well with applications such as real-time (RT) traffic.
2. Integrated Services (IntServ) Model: The protocol that does scheduling and reserving adequate path bandwidth (end-to-end bandwidth) for application is known as Resource Reservation Protocol (RSVP). The source application requests QoS parameters through RSVP from the network devices along the route to destination. The minimum set of commonly agreed parameters is arrived at, and the source is informed of the same. RSVP enables traffic prioritization according to a pre-determined set of rules.
3. Differentiated Services Model (DiffServ): In the DiffServ model, the resources are dynamically arranged. The advantage over IntServ model is that the bandwidth utilization is more efficient in DiffServ. With IntServ, QoS is applied on a per-flow basis, whereas it is applied on a per-hop basis on DiffServ.
By default QoS is disabled globally on a Cisco switch. When you enable QoS, all switch ports are configured as untrusted, by deault. Further, the QoS values produced by the end users should not be trusted until a network device can verify it.
The command:
mls qos trust {cos|dscp|ip-precedence}
is used to configure a switch to trust the inbound QoS parameters.
CoS is used to trust inbound QoS from a trunk.
DSCP and IP-Precedence are used to derive QoS from IP headers.
In a Catalyst switch, the QoS is disabled by default. To enable QoS on a switch, use the command :
SwitchA(config)#mls qos
QoS policy is applied to an interface. You can apply one for inbound traffic, and another for outbound traffic on the same interface.
QoS trust on a switch can be configured in two ways:
1.Per Interface and
2.As a QoS policy.
The command used for enabling QoS trust on an interface is
Switch(config-if)#mls qos trust {cos | dscp | ip-precedence}
cos: The inbound CoS is taken from trunking tags
dscp: The DSCP is taken from the inbound IP packet headers
ip-precedence: IP Precedence is also taken from the inbound IP packet headers. IP Precedence values ( 0 to 7) are mapped into an internal DSCP value (0 to 63).
Only one of the above can be used on a given interface to make forwarding decisions.
The inbound QoS information is mapped using the following commands as appropriate:
CoS values (0 to 7) are mapped into an internal DSCP value (0 to 63)
Switch(config)# mls qos map cos-dscp
<dscp1> <dscp2> … <dscp8>
Switch(config)# mls qos map cos-dscp
0 8 16 24 32 46 48 56
To map the 8 values of CoS to 64 DCSP values, we need to use the above command. Here:
CoS value 0 = DCSP 0
CoS value 1 = DCSP 8
CoS value 2 = DSCP 16, etc..
CoS is a L2 marking contained within an 802.1q tag,. The values for CoS are 0 - 7. DSCP is a L3 marking and has values 0 – 63. Switches use an internal DSCP value when moving traffic through the switch. However if the marking received is a CoS marking the switch then needs to derive a DSCP value from this CoS value which is what the QOS map cos-dscp is used for.