CS268 Reading Review

Analysis and Simulation of a Fair Queueing Algorithm

Alan Demers, Srinivasan Keshav and Scott Shanker
Review by Feng Zhou
2/12/2003

The problem: FCFS based gateways have notorious problems like the segregation effect and being vulnerable to misbehaved users. Fair Queueing tries to solve these problems by introducing a more sophisticated queueing mechanism and keeping more state about hosts and flows.

Key points:

  1. It is very good point to look at the interplay between the source flow control, gateway routing and gateway queueing policies together as a whole. Actually the simulations in this paper is done in this way, i.e. checking how things work with different queueing policies and different source flow control policies.
  2. The basic scheme of FQ is pretty straightforward. One queue is kept for each user(defined as a peer pair). Then packets are taken from these queue in a pseudo bit-by-bit round-robin pattern. The round-robin is done by keeping track of the current "round" of transmission and transfer the packet with the smallest finishing "round" number. It is easy to prove that this ensures truly asymtotical fair allocation of bandwidth. By introducting a little bit of history - the finish round of last packet - FQ can give more promptness to users who utilize less than their fair share of bandwidth, which is important to interactive applications like remote login.
  3. The experiments show very favorable results for FQ. However, just as the authors admit, the deployment of FQ depends on whether it can keep up with line speed. For example, from the algorithm description, it probably has to maintain a priority queue of all head of queue packets. This incurs a log(n) time to find the next packet to deliver and to insert the new packet. Given the large number of users and high line speed. This doesn't seem to be trivial problem.