Reordering-Robust DSACK TCP (RR-TCP)

TCP performs poorly on paths that reorder packets significantly,
where it misinterprets out-of-order delivery as packet loss. The
sender responds with a fast retransmit though no actual loss has
occurred. These repeated false fast retransmits keep the sender's
window small, and severely degrade the throughput it
attains. Persistent reordering occasionally occurs on present-day
networks. Moreover, TCP's requirement of nearly in-order delivery
complicates the design of such beneficial systems as DiffServ,
multi-path routing, and parallel packet switches. Toward relaxing this
constraint on Internet architecture, we present enhancements to TCP
that improve the protocol's robustness to reordered and delayed
packets. We extend the sender to detect and recover from false
fast retransmits using DSACK information, and to avoid false fast
retransmits proactively, by adaptively varying dupthresh. Our
algorithm adaptively balances increasing dupthresh, to avoid
false fast retransmits, and limiting the growth
of dupthresh, to avoid unnecessary timeouts. Finally, we
demonstrate that delayed packets negatively impact the accuracy of
TCP's RTO estimator, and present enhancements to the estimator that
ensure it is sufficiently conservative, without using timestamps or
additional TCP header bits. Our simulations show that these
enhancements significantly improve TCP's performance over paths that
reorder or delay packets.

An extended version of the above paper featuring a more detailed evaluation
of RR-TCP and enhancements to TCP's RTO estimator is available in the below:
Zhang, M., Karp, B., Floyd, S., and Peterson, L., RR-TCP: A
Reordering-Robust TCP with DSACK, ICSI Technical Report
TR-02-006, Berkeley, CA, July 2002.
.ps.gz.pdf