Skip to main content
networking

Retransmission

TCP retransmission resends packets that were lost or not acknowledged within a timeout period. Fast retransmit triggers after 3 duplicate ACKs (indicating a gap). Timeout-based retransmission (RTO) fires after a calculated delay. Excessive retransmissions indicate network congestion or path problems.

Definition

TCP guarantees reliable delivery through retransmission. When a sender does not receive an ACK within the Retransmission Timeout (RTO), it resends the segment. RTO is calculated from smoothed RTT measurements (Jacobson's algorithm, RFC 6298) – typically 200ms minimum. Fast retransmit does not wait for timeout: when the receiver gets an out-of-order segment, it immediately ACKs the last in-order byte. Three duplicate ACKs (same ack number repeated) tell the sender that one specific segment was likely lost, triggering immediate retransmission without waiting for RTO. SACK (Selective Acknowledgment) further optimizes by reporting exactly which segments were received, so the sender retransmits only truly missing data. Retransmission rates above 1-2% indicate serious network issues. Monitor with ss -ti (retrans field) or netstat -s (retransmit statistics).

Examples

  • ss -ti shows per-connection retransmit count
  • netstat -s | grep retrans – system-wide retransmission stats
  • tc qdisc add dev eth0 root netem loss 5% – simulate loss to test retransmit behavior

Related Protocols

Related Terms