Abstract
Many applications today (e.g., game servers and video streaming servers)
deliver time-dependent data to remote users. In TCP based systems,
retransmission of data might give high and varying delays. In applications with
thin data streams (e.g., interactive applications like games), the
interaction between game players raises stringent latency requirements, and it is
therefore important to retransmit lost or corrupted data as soon as
possible.
In the current version of the Linux kernel (2.6.15), several variations of
TCP are included. In this thesis, these variations are compared,
tested and evaluated with respect to retransmission latency in different
and varying RTT and loss scenarios. The variations are tested for thin
and thick data streams, respectively. Thick streams transmit as much data
as possible, while the thin streams only need to transfer a small
amount of data every once in a while, thus potentially having
considerable time intervals between the sending of a few packets.
Due to poor performance experienced for the TCP variations in the
thin stream part of the tests, several enhancements are proposed,
implemented and tested for use in thin stream scenarios. The loss
detection mechanisms of TCP do not perform adequately in a thin
stream scenario, resulting in high and varying retransmission
delays, something which might violate the stringent latency
requirements of interactive games. The
implemented enhancements provide considerable improvements in the
retransmission delay, reducing both the level and the variation of the
retransmission delay values.