Two types of TCP losses:
- 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
- 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