Tuesday, September 9, 2008

Analysis and Simulation of a Fair Queueing Algorithm

This paper discusses queuing algorithms implemented at the gateway and how fair queueing aids in congestion control. Queueing algorithms attempt to allocate bandwidth, promptness and buffer space. The most common queueing algorithm FCFS uses the order of packet arrival to determine allocation. On the other hand Nagle's FQ algorithm uses the concept of having separate queues per flow and service the queues in a round-robin fashion. The authors in this paper propose a FQ algorithm that is a modified version of Nagle's approach and discuss how their modified version resolves some of the drawbacks of Nagle's alogrithm.

Authors argue that bandwidth and buffer allocation per user changes based on what constitutes a user. A user can be a source, a receiver, process or a source-destination pair. The authors propose allocation on the basis of source-destination pairs because this fits well with respect to security and efficiency.

Nagle's proposed approach does not do fair allocation of bandwidth in case of varying packet sizes. This problem can be solved by sending packets in a bit-by-bit fashion but that has a lot of overhead. They emulate the bit-by-bit concept by servicing a packet that is going to finish transmission first if the bit-by-bit algorithm was used. This algorithm allocates bandwidth to competing flows fairly. No flow may be further ahead than another by more than the maximum packet size. Promptness fairness is addressed by giving less delay to packets from flows that are using less than their fair share of the bandwidth. The authors briefly describe several flow control algorithms used at the source and present simulations of using these algorithms in conjuction with fair queuing and FCFS and compare the results with reapect to throughput, RTT, number of retransmissions and dropped packets.

The paper was interesting to read and the simulations aided in understanding how FCFS and FQ perform when coupled with other flow control algorithms and with different type of source and different network settings. FQ algorithms proposed in this paper require complex operations to be performed at the router. The authors argue about this and give reasoning behind it. CSFQ algorithm proposed by Stoica et al. tries to address this issue. It will be nice to discuss the pros and cons of both these approaches and also talk what is used these days.

No comments: