Paper review: TCP Slow Start, Congestion Avoidance, Fast Retransmit, and Fast Recovery Algorithms

Reviewer: Mike Liu

  1. State the problem the paper is trying to solve.
  2. The main problem the paper is trying to document four intertwined algorithms that are contained in modern implementations of TCP.
  3. State the main contribution of the paper: solving a new problem, proposing a new algorithm, or presenting a new evaluation (analysis). If a new problem, why was the problem important? Is the problem still important today? Will the problem be important tomorrow?  If a new algorithm or new evaluation (analysis), what are the improvements over previous algorithms or evaluations? How do they come up with the new algorithm or evaluation? 
  4. The main contribution of the paper is that it presents four intertwined arguments in TCP that have never been formally documented before. This is not a new problem since documentation is very important in order for standards to propagate through the Internet community and allow for their rapid and widespread implementation. These algorithms are still relevant today because they are probably still incorporated into TCP to prevent congestion and to allow faster throughput in the high traffic modern Internet. Slow start and Congestion Avoidance were implemented due to RFC 1122 Fast Retransmit and Fast Recovery were implemented after RFC 1122. They were developed originally Van Jacobson and the author is documenting how they work. Slow start is used to correct for problems that arise when a sender injects multiple segments up to a window size advertised by the receiver into a network of different routers and slower links. Congestion avoidance is used to deal with lost packets that occur when data arrives on a big pipe and gets sent out of a smaller pipe or when multiple input streams arrive at a router whose output capacity is less than the sum of the pipes. Fast retransmit is used to indicate that a segment is lost when three or more duplicate ACKs are received in a row, and initiates retransmission with waiting for a retransmission timer to expire. Fast recovery is used to start congestion avoidance after fast retransmit instead of slow start. This allow high throughput under moderate congestion.
  5. Summarize the (at most) 3 key main ideas (each in 1 sentence.) 
  6. The three 3 key main ideas are: (1) Slow start works by progressively incrementing the congestion window exponentially after successive successful ACKs are received. (2) In contrast, congestion avoidance increments the congestion window linearly and is used to deal with lost packets. (3) Fast Retransmit and Fast recovery deal with special cases in which a segment is lost rather than out of order and allows the segment to retransmitted quickly and allows normal transmission to recover quickly.
  7. Critique the main contribution
  8. What lessons should researchers and builders take away from this work. What (if any) questions does this work leave open?
  9. The lessons researchers should take from this work is that effective algorithm development can be developed in the real world as it is needed. It may be implemented long before it is documented and may turn out to be a good solution by its wide acceptance before it is carefully analyzed. The questions this work leaves open is of course, what would happen if these algorithms were analyzed with other algorithms that may be used in their place. How do they perform against other similar algorithms? Also, as mentioned earlier, what are the security issues faced by the current implementations.