Like all network equipment, a router is limited in terms of its available resources. While memory and interface speeds may differ depending upon a router’s model and the specific network environment, optimization of resources is often necessary to help ensure that traffic reaches its destination in a timely manner. To make better use of available bandwidth, a router is capable of using different queue scheduling mechanisms that control how traffic is forwarded out an interface. These mechanisms can ultimately be altered to give one type of traffic a higher priority than another, change the ways in which applications have access to bandwidth, and so forth. This is not unlike waiting in line at a bank. Some banks serve all customers on a first-come, first-serve basis, regardless of what they need. In others, special queues exist for business customers, regular individuals, or general customer service. While different queuing methods will have varying degrees of perceived “fairness”, the ability to configure them allows resources to be allocated according to need.
When implementing a queuing mechanism on a router, the goal is to try and reduce congestion, such that applications have an appropriate level of access to bandwidth. Queuing allows you to control the order in which traffic should be prioritized for sending. In some case, the queuing technique used is fairly simple – packets are simply forwarded out an interface in the order that the router receives them. While this sounds fair, the method is not always optimal. It might allow a particular application to monopolize bandwidth, at the expense of a more mission-critical data stream. Cisco supports four main queuing methods on its routers, each with associated advantages and disadvantages. These include:
- First In, First Out (FIFO)
- Weighted Fair Queuing
- Priority Queuing
- Custom Queuing
Each of these queuing methods is looked at in more detail in the following articles.