Fast recovery from losses is an important problem for reliable data
communication protocols. The Internet standard TCP protocol (Transmission
Control Protocol) implements two algorithms for that: an original one
based on a special timer, and a later addition to TCP that is triggered
when there are three packets received by the client after the missing
one. Web communications are most frequently carrying rather small objects
that are generally ineligible for anything other than timeout-based
retransmission schemes. The present invention describes a system
delivering performance improvements to TCP (and other reliable data
communication protocols) that are compliant with present Internet
standards. One improvement is to send duplicates of packets without
waiting for a timeout to occur. Another is to split particular parts of a
data stream into smaller packets. A third is to send packets out-of-order
to force the remote host to acknowledge all packets that were
successfully received.