Congestion Avoidance and Control
Reviewer: Oleg Elkhunovich
Th explsive growth in computer networks bring severe congestion problems. This paper explores problems with TCP implemenations and offers algorithms to solve those problems.
The paper explores the problems with pre-1988 TCP implementation and offers seven new algorithms to improve those problems.
The flow on a TCP connection should obey a 'conservation of packets' principle for robustness (A new packet isnt' put into the network until an old packet leaves).
Self-clocked systems are stable when running, but are hard to start. The solution offered is a slow-start algorithm that gradually opens up a window with negligible effect on performance.
Round trip time estimator is the key feature of protocol implementation necessary for conservation at equilibrium. Variation needs to be estimated and should not be fixed or it will not adapt over 30%.
Stability is exponential in linear systems - exponential backoff is the only one that has any hope to work.
Congestion avoidance - dynamic increase/decrease of the window size depending on congestion. Packet loss is a good candidate for 'network is congestion' signal.
The paper combines many good ideas together and does a good job analyzing problems with congestion. It addresses a serious problem as network grow and offers actual solutions to those problems with new algorithms. While improvements are simple, they are subtle as well.
The paper itself is largely theoretical. Some proves are missing and just presented as assumptions. Experimental graphs however add to the credibility.
Limitations are presented by a future work section. Congestion detection algorithm is the next important step in improving the protocol. Fairness enforcement is another.
Close analysis of the problem can help to pinpoint specific faults. Simple solutions can be used to solve difficult problems. Implementation is an important aspect of the protocol.