Why Do I Need CBWFQ on My Network?
You might ask yourself,“Why do I need any kind of special queuing?” Packetbased
networks drop packets by their very nature. IP network protocols are
designed around the inevitability of dropped packets.The question therefore
becomes,“If you had a choice, which packets would you prefer to keep and
which would you prefer to drop?”This will help determine what type of
queuing mechanism you choose.
WFQ is on by default on low-speed serial interfaces for good reason. It
works well to overcome the limitations of first in/first out (FIFO) queuing by
not allowing large flows to dominate smaller, interactive flows, and it is easy to
implement. However, even with the extension of the weighting model by using
IP precedence, flow-based fair queuing is still just that—fair.There are times
when the fair slice of the bandwidth pie is less than you require for certain applications,
or when you require more granular control over the QoS provided to
your traffic.
With CBWFQ, you can leverage the DiffServ model to divide all your traffic
into distinct classes to which CBWFQ can subsequently give specialized bandwidth
guarantees.The typical application of this is to mark traffic at the edge with IP
precedence, and then let mechanisms like CBWFQ give differential treatment
throughout the entire network according to the service levels defined. By placing
important applications into a class to which CBWFQ can give a guaranteed bandwidth,
you have effectively prevented other applications from stealing bandwidth
from those critical applications. Let us examine a couple of illustrative cases.