Tuesday, September 9, 2008

Analysis and Simulation of a Fair Queueing Algorithm

This paper describes a fair queuing algorithm, in the sense that misbehaving clients cannot abuse the network. With standard TCP and FCFS queuing at the intermediate routers, a client who ignores the sliding window and packing drops can gain an advantage and a disproportionate share of the network. They demonstrate this, as well as a solution.

Some background exists in the TCP Daytona implementation by Savage. He implemented a form of TCP that misbehaved in precisely the wrong way to cause this. Also, during my time in Uganda, I found another problems with TCP. They have these "download accelerators" that open multiple TCP connections, allowing the one download to grab a larger portion of the network. This system doesn't solve this problem, as it queues on a per-connection basis. Is this algorithm used? I'm assuming so. Could it be modified to solve the tcp accelerator? It hoses the network at Makerere, that much I'm sure of.

The paper was thick and dense. I wasn't able to glean the details, but I found the algorithm and the concept simple enough. I doubt there is a version of this that reads more easily, I would much prefer that.

The paper is valuable, but not important enough for the syllabus. This could be explained in ten minutes in class.

1 comment:

Randy H. Katz said...

I agree about the mathematical density, and I won't try a rederivation in class tomorrow (I will almost certainly blow it). However there are proposed variations on FQ that aggregate flows in a variety of ways -- primary to reduce the state that has to be maintained -- but also can be used to insure that flows from the same destination compete among themselves for their fair share. This would deal with your comment on the "download accelerators".