University of Helsinki Department of Computer Science
 

Department of Computer Science

Department information

 

Modifications to Linux TCP


This page contains patches to Linux TCP implementation. The patches have been used in measurements performed in our research projects. The primary purpose of the patches is to allow experimental use of TCP, thus it is not intended to be used in general networking. The code is very experimental in nature (read: not beautiful or easily maintainable), and there may be bugs. Some of the modifications, e.g. fixes on FRTO have been submitted to Linux network development list and will be included to future releases, but many of the modifications remain unsubmitted due to their nature. They can be used for tests in closed network but not in a general Linux system.
patch-2.6.18.8-2007-05-21
Updated 2.6.18 series patch
  • Two FRTO bug fixes
patch-2.6.18.8-2007-04-19 This is the TCP patch for Linux 2.6.18 series. The patch gives control over TCP implementation so that different combination of RFCs may be enabled at will. In addition, many of them allow just to disabled the mainline Linux non-std behavior). Complete list of tunable features:
  • initial window,
  • behavior when tcp is application limited [RFC2861] (2.6.21 will apply a different kind of fix to the same problem using slow start after idle sysctl),
  • delayed ACK timer auto-tuning,
  • quick-ACK behavior (DAASS),
  • ratehalving (Hoe's method),
  • limited transmit [RFC3042],
  • Control Block Interdependence [RFC2140] (ssthresh, rtt, reordering independently),
  • F-RTO algorithm [RFC4138] (fixes + adds SACK enhanced version; hits mainline at 2.6.22),
  • retransmission timeout calculation [RFC2988] (+min/max bounds),
  • head segment timeouts (non-std feature),
  • use dup ACK to trigger recovery (Linux uses SACK blocks by default),
  • lost retransmission detection,
  • dupThresh auto-tuning,
  • SACK pipe calculation [RFC3517],
  • advertized window auto-tuning,
  • max-burst behavior, and
  • RTO after RTO ssthresh halving
When using this patch, be sure to check that TCP behaves as expected before jumping into conclusions.
patch-iip-2.6.14.4 This is the IIP patch for Linux kernel version 2.6.14.4. The patch gives control over
  • initial window,
  • behavior when tcp is application limited [RFC2861],
  • delayed ack behavior,
  • quick-ack behavior (DAASS),
  • SACK pipe calculation [RFC3517],
  • ratehalving (Hoe's method),
  • limited transmit [RFC3042],
  • Control Block Interdependence [RFC2140] (ssthresh, rtt, reordering, complete disabling),
  • retransmission timeout calculation [RFC2988], and
  • F-RTO algorithm [RFC4138] (SACK enhanced version).
Limited transmit, RFC2988 RTT estimator and SACK enhanced F-RTO have not been tested, so (more so than usual) when using this patch, be sure to check that they behave as expected before jumping into conclusions.
patch-iip-12-2.4.19 This is the IIP patch for Linux kernel version 2.4.19. It works also with kernel 2.4.20. The patch gives control over the following functionalities:
  • Control Block Interdependence (CBI) [RFC 2140]
  • Forward RTO (F-RTO) [Internet draft: draft-sarolahti-tsvwg-tcp-frto-03.txt]
  • Delayed acknowledgments
  • Initial Window (Note: though the patch does not limit this setting in any way, the value should not be set larger than the recommended value)
  • Limited transmit [RFC 3042]
  • Rate halving [Internet draft: draft-ratehalving.txt]
Please read the readme-file for more information.
patch-2.4.18-frto-20020419 This patch adds the F-RTO support to version 2.4.18 of Linux kernel.

Aki Nyrhinen - anyrhine@cs.helsinki.fi