Paper review: Analysis and Simulation of a Fair Queuing Algorithm

Reviewer: Kevin Hofstra

  1. What is the best way to fairly queue packets from multiple users?  Should queues be determined by number of packets or packet size?  How can we allocate the bandwidth fairly?  What protection do we have against malicious flows?
  2. A proposal of a queuing mechanism for the fair distribution of network bandwidth.  An evaluation and combination of previous works into a queuing algorithm and formulas.


B.                 The quantities Fi and Si remained unchanged when a packet is dropped.  This is because the packet is dropped only if it is received into a full queue and is the largest user of the aggregate queue.  This means a malicious user which attempts to flood the queue and does not reduce his queue because of lost, pays the time constraint of the queue for each packet, even those that are dropped.

C.                 A parameter for promptness is kept to reward a user that does not have a filled queue.  This time parameter is subtracted from the packet wait time in the queue, and grows larger with decreasing use of the bandwidth.  This mechanism gives faster latency for those who do not use their entire bandwidth.  This is perfect for web browsers, who because of their small traffic size, will get faster service.

D.                 The packets are distributed not just by packet arrival time, but also by the number of bits per packet.  This means that smaller packets will leave the queue quicker than larger to prevent users from packing many smaller packets into one large packet.

  1. Critique the main contribution
  2. System researchers and builders should recognize that it is very difficult to make assumptions about what should be considered fair.  In most situations fairness is perceived to be the max-min definition assuming all users have both equal rights to the resource and equal goals in its use.  This assumption is only accurate in very few situations.  Fairness is dependant on the goals of the users whether it is bandwidth or latency, and a more formal definition must be created in order to extend research in how we can maximize it.  This paper even brings another definition into question.  That of what do you consider a user of a queue?  Should this be by source, destination, process, or source-destination pair?  Each has both its advantages and disadvantages, with the best method being dependant on the intentions of the users.  A more concrete definition of user is necessary to properly allocate bandwidth between them.