Product Documentation

Weighted Fair Queuing

Dec 07, 2012

In any link, the bottleneck gateway determines the queuing discipline, because data in the non-bottleneck gateways does not back up. Without pending data in the queues, the queuing protocol is irrelevant.

Most IP networks use deep FIFO queues. If traffic arrives faster than the bottleneck speed, the queues fill up and all packets suffer increased queuing times. Sometimes the traffic is divided into a few different classes with separate FIFOs, but the problem remains. A single connection sending too much data can cause large delays, packet losses, or both for all the other connections in its class.

A CloudBridge appliance uses weighted fair queuing, which provides a separate queue for each connection. With fair queuing, a too-fast connection can overflow only its own queue. It has no effect on other connections. But because of lossless flow control, there is no such thing as a too-fast connection, and queues do not overflow.

The result is that each connection has its traffic metered into the link in a fair manner, and the link as a whole has an optimal bandwidth and latency profile.

The following figure shows the effect of fair queuing. A connection that requires less than its fair share of bandwidth (the bottom connection) gets as much bandwidth as it attempts to use. In addition, it has very little queuing latency. Connections that attempt to use more than their fair share get their fair share, plus any bandwidth left over from connections that use less than their fair share.

Figure 1. Fair Queuing in Action


The optimal latency profile provides users of interactive and transactional applications with ideal performance, even when they are sharing the link with multiple bulk transfers. The combination of lossless, transparent flow control and fair queuing enables you to combine all kinds of traffic over the same link safely and transparently.

The difference between weighted fair queuing and unweighted fair queuing is that weighted fair queuing includes the option of giving some traffic a higher priority (weight) than others. Traffic with a weight of two receives twice the bandwidth of traffic with a weight of one. In a CloudBridge configuration, the weights are assigned in traffic-shaping policies.