linux/Documentation/networking/tcp-thin.txt
<<
>>
Prefs
   1Thin-streams and TCP
   2====================
   3A wide range of Internet-based services that use reliable transport
   4protocols display what we call thin-stream properties. This means
   5that the application sends data with such a low rate that the
   6retransmission mechanisms of the transport protocol are not fully
   7effective. In time-dependent scenarios (like online games, control
   8systems, stock trading etc.) where the user experience depends
   9on the data delivery latency, packet loss can be devastating for
  10the service quality. Extreme latencies are caused by TCP's
  11dependency on the arrival of new data from the application to trigger
  12retransmissions effectively through fast retransmit instead of
  13waiting for long timeouts.
  14
  15After analysing a large number of time-dependent interactive
  16applications, we have seen that they often produce thin streams
  17and also stay with this traffic pattern throughout its entire
  18lifespan. The combination of time-dependency and the fact that the
  19streams provoke high latencies when using TCP is unfortunate.
  20
  21In order to reduce application-layer latency when packets are lost,
  22a set of mechanisms has been made, which address these latency issues
  23for thin streams. In short, if the kernel detects a thin stream,
  24the retransmission mechanisms are modified in the following manner:
  25
  261) If the stream is thin, fast retransmit on the first dupACK.
  272) If the stream is thin, do not apply exponential backoff.
  28
  29These enhancements are applied only if the stream is detected as
  30thin. This is accomplished by defining a threshold for the number
  31of packets in flight. If there are less than 4 packets in flight,
  32fast retransmissions can not be triggered, and the stream is prone
  33to experience high retransmission latencies.
  34
  35Since these mechanisms are targeted at time-dependent applications,
  36they must be specifically activated by the application using the
  37TCP_THIN_LINEAR_TIMEOUTS and TCP_THIN_DUPACK IOCTLS or the
  38tcp_thin_linear_timeouts and tcp_thin_dupack sysctls. Both
  39modifications are turned off by default.
  40
  41References
  42==========
  43More information on the modifications, as well as a wide range of
  44experimental data can be found here:
  45"Improving latency for interactive, thin-stream applications over
  46reliable transport"
  47http://simula.no/research/nd/publications/Simula.nd.477/simula_pdf_file
  48
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.