Back to index
Simulation-based Comparisons of Tahoe, Reno and SACK TCP
Kevin Fall and Sally Floyd
Summary
  -  Main point: Nothing compares to SACK TCP!
  
 -  Tahoe TCP: Follows a basic go-back-n model using
  slow-start, congestion avoidance and fast retransmit algorithms. With
  Fast Retransmit, after receiving a small number of duplicate acks for
  the same TCP segment, the data sender infers that the packet has been
  lost and retransmits the packet without waiting for the retransmission
  timer to expire.
  
 -  Reno TCP: 
  
 
    - Modification to the Tahoe TCP Fast Retransmit
    algorithm to include Fast Recovery; this prevents the pipe from going
    empty after Fast Retransmit, thereby avoiding the need to slow start
    after a single packet loss.
    
 - A TCP sender enters Fast Recovery after receiving athreshold number of
    dup acks. The sender retransmits one packet and reduces its congestion
    window by half. Instead of slow-starting, the Reno sender uses
    additional incoming dup acks to clock subsequent outgoing packets.
    
    
 -  Reno TCP greatly improves performance in the face of single
    packet loss, but can suffer when multiple packets are lost.
  
 
  
   -  New Reno TCP: In Reno, a partial ack (ack for some but not
  all of the packets that were outstanding at the start of the fast
  recovery period) takes TCP out of Fast Recovery. In New Reno, partial
  acks fo not take TCP out of fast recovery; partial acks receivbed
  during fast recovery are treated as an indication that the packet
  immediately following the acked packet has been lost and should be
  retransmitted. Thus, when multiple packets are lost, New Reno can
  recover without a retransmission timeout.
  
 -   SACK TCP: The TCP sender maintain a scoreboard which
  keeps track of acks from previous SACK packets. When the sender is
  allowed to send a packet, it retransmits the next packet from the list
  of packets inferred to be missing at the receiver. If there are no
  such packets and the receiver's advertized window is sufficiently
  large, the sender sends a new packet.
  
 -  Simulations:
  
    -  One packet loss: Tahoe TCP does badly due to slow-start after
    the packet loss. All others do relatively the same.
    
 -  Two packet losses: Reno TCP fails to do as well as New Reno or
    SACK TCP, since its algorithm is tuned for single packet losses.
    
 - Multiple packet losses: Reno TCP performs miserably in the face
    of a large number of packet losses. SACK TCP continues to
    out-perform the rest of the algorithms.
 
Back to index (Created by Yatin Chawathe)