Packets can get lost in the network (router congestion, cable issues, buffer overflow). Without handling packet loss, data transfers would fail randomly and unpredictably.
When a TCP packet is dropped (lost in network), TCP detects the loss (via timeout or duplicate ACKs) and retransmits the packet. This ensures reliable delivery despite unreliable underlying networks.
- Packet sent: TCP sends packet with sequence number
- Packet lost: Router drops packet (congestion, error)
- Timeout: Sender doesn’t receive ACK within timeout
- Retransmit: Sender resends the packet
- Congestion control: TCP reduces sending rate (slow start, congestion avoidance)
TCP treats packet drops as a signal of network congestion.
- Detected via timeout or 3 duplicate ACKs
- Triggers retransmission automatically
- Reduces congestion window (slows down sending)
- Part of TCP’s reliability guarantees
- Built from: TCP Handshake — TCP connection must exist
- Related: Congestion Control — packet drop triggers slowdown
- Related: Timeout — mechanism to detect lost packets
- Contrasts with: UDP — UDP doesn’t handle packet loss
- Too-short timeout = unnecessary retransmissions
- Too-long timeout = slow recovery
- Congestion collapse if many TCP flows don’t back off
- Some networks drop packets intentionally (policing)