Publication Data
Proportional Rate Reduction for TCP
Abstract: Packet losses increase latency for Web users. Fast recovery
is a key mechanism for TCP to recover from packet losses. In this paper, we explore
some of the weaknesses of the standard algorithm described in RFC 3517 and the
non-standard algorithms implemented in Linux. We find that these algorithms deviate from
their intended behavior in the real world due to the combined effect of short flows,
application stalls, burst losses, acknowledgment (ACK) loss and reordering, and stretch
ACKs. Linux suffers from excessive congestion window reductions while RFC 3517 transmits
large bursts under high losses, both of which harm the rest of the flow and increase Web
latency. Our primary contribution is a new design to control transmission in fast
recovery called proportional rate reduction (PRR). PRR recovers from losses quickly,
smoothly and accurately by pacing out retransmissions across received ACKs. In addition
to PRR, we evaluate the TCP early retransmit (ER) algorithm which lowers the duplicate
acknowledgment threshold for short transfers, and show that delaying early
retransmissions for a short interval is effective in avoiding spurious retransmissions
in the presence of a small degree of reordering. PRR and ER reduce the TCP latency of
connections experiencing losses by 3-10% depending on the response size. Based on our
instrumentation on Google Web and YouTube servers in U.S. and India, we also present
key statistics on the nature of TCP retransmissions.
