TCP performance
Packet loss
Packets that never arrive: TCP resends them and halves its window, so a small loss rate caps its speed.
TCP sees a gap when the receiver keeps acknowledging the same byte: at the third duplicate acknowledgement it resends the missing segment (fast retransmit), or else its retransmission timer fires. Either way it reads the loss as congestion and halves its window. Under a steady loss rate p the window saws around √(8 / 3p) packets, so TCP moves about 1.22 × packet size ÷ (round trip × √p), whatever the link could do: the longer the round trip, the more a little loss costs. UDP resends nothing; what is lost is gone.