Saturday, September 13, 2008

RED

This paper deals with "Random Early Detection" algorithms for marking or dropping packets. It's a particularly elegant solution to the question of what packets are dropped when the router gets congested. Instead of waiting for congestion, it drops or marks packets with higher probability as we approach congestion. It begins once you pass some heuristic for average queue size. This is done as a weighted average, as would be expected. Eventually the queues are filled and the probability of a drop is one.
I consider this so elegant as conversations that utilize more packets have a higher probability of being selected for dropping. It just falls out of the scheme. Totally brilliant.
I was confused about the punishment of bursty communications it claims to avoid, but I think I understand that now. Because it works on average queue size rather than actual queue size, the bursts do not imply a higher chance of drop. There is a chance that the queues may fill before the average queue size catches up though...

I did some work in Randy's datacenter 294 class that dealt with congestion control in datacenter networks. I made modifications to Click, which used RED as one of the mechanisms implemented.

The paper is ungodly long for such a simple system. RED is not complicated, and I feel as though a quick view of the Wiki page would be more valuable than this in-depth analysis of the algorithm.

No comments: