Two types of TCP losses:

  1. Triple duplicate ACK (response: Fast retransmit)
    • Packet is lost, but packets , , etc. arrive
    • Then, sender quickly resends packet
    • Do a multiplicative decrease and keep going
  2. Timeout (repeat slow start - slow start restart)
    • Packet is lost and detected via timeout
    • Blasting entire congestion window would cause another burst
    • Better to start over with a new congestion window (CWND=1)
    • Slow-start restart: Slow start until reaching half of previous CWND
      • Why not restart at old CWND?
      • Suppose TCP connection goes idle for a while
      • Network conditions might change in between, maybe link is now backed up
      • Dangerous to start transmitting at old rate - previously idle sender might blast network

Repeating slow start after timeout