newtcp

NEWTCP

Tools

Name Description
TCP Congestion Control Algorithms
CUBIC

A FreeBSD loadable kernel module that implements the CUBIC congestion control algorithm.

Now included in FreeBSD 9.x

  • Now included in FreeBSD 9.x
  • Version 0.10, released 30 July 2010
    • source (requires the CAIA modular congestion control patch v0.10.0)
    • readme
  • Version 0.9, released 17 July 2009
    • source (requires the CAIA modular congestion control patch v0.9.3)
H-TCP

A FreeBSD loadable kernel module that implements the H-TCP congestion control algorithm.

Now included in FreeBSD 9.x

  • Now included in FreeBSD 9.x
  • Version 0.12, released 30 July 2010
  • Version 0.11, released 2009-07-17
    • obsolete source (requires the CAIA modular congestion control patch v0.9.3)
  • Version 0.10, released 09 Apr 2009
    • obsolete source (requires the CAIA modular congestion control patch v0.9.2)
  • Version 0.9, released 18 Dec 2007
    • obsolete source (requires the CAIA modular congestion control patch v0.9.1)
Hamilton Delay

A FreeBSD loadable kernel module that implements an experimental delay based congestion control algorithm proposed by the Hamilton Institute.

Now included in FreeBSD 9.x

  • Now included in FreeBSD 9.x
  • Version 0.2, released 30 July 2010
    • obsolete source (requires the CAIA Modular TCP Congestion control v0.10.0 and Khelp Framework v0.1.1 bundled patch)
    • readme
  • Version 0.1, released 19 Feb 2010
    • obsolete source (requires the CAIA Modular TCP Congestion control v0.9.4 and Khelp Framework v0.1.0 bundled patch)
    • Note: v0.1 can back off more than once per RTT for delay based congestion indications. Issue is fixed in v0.2.
CAIA-Hamilton Delay

A FreeBSD loadable kernel module that implements enhancements to the HD algorithm to provide: tolerance to non-congestion related losses, improved coexistence with loss-based CC algorithms, and per RTT decisions.

Now included in FreeBSD 9.x

  • Now included in FreeBSD 9.x
  • Version 0.1, released 30 July 2010
    • obsolete source (requires the CAIA Modular TCP Congestion control v0.10.0 and Khelp Framework v0.1.1 bundled patch)
    • readme
Vegas

A FreeBSD loadable kernel module that implements the VEGAS congestion control algorithm.

Now included in FreeBSD 9.x

  • Now included in FreeBSD 9.x
  • Version 0.2, released 30 July 2010
    • obsolete source (requires the CAIA Modular TCP Congestion control v0.10.0 and Khelp Framework v0.1.1 bundled patch)
    • readme
  • Version 0.1, released 19 Feb 2010
    • obsolete source (requires the CAIA Modular TCP Congestion control v0.9.4 and Khelp Framework v0.1.0 bundled patch)
CAIA-Delay Gradient

A FreeBSD loadable kernel module implementing a novel hybrid TCP congestion control module. CDG modifies the TCP sender in order to use the delay gradient as a congestion indicator.

Now included in FreeBSD-CURRENT as of r252504, and FreeBSD 9.x as of r252951

CDG uses an exponential probabilistic based backoff for delay-gradient congestion indications, and includes a number of initiatives to help it compete with loss-based congestion control flows (such as NewReno, cubic, compoundTCP, etc). It also has inbuilt tolerance to non-congestion related packet loss.

  • Now included in FreeBSD-CURRENT as of r252504, and FreeBSD 9.x as of r252951

    Note: this version uses slightly different sysctl names and meanings than the 2011 patch against r219723. Check the official man page closely.

  • Version 0.1, released 26 March 2011
Support Frameworks and Modules
Modular TCP Congestion Control for FreeBSD

A FreeBSD kernel patch that adds support for modularised TCP congestion control algorithms.

Now included in FreeBSD 9.x

Ongoing backporting of the patch is occurring in the tcp_cc_8.x and tcp_cc_7.x project branches within the FreeBSD Subversion repository. The aim is to merge the work into the main FreeBSD source tree as time and staff resources allow.

Khelp Framework for FreeBSD

A FreeBSD kernel patch that provides support for generic kernel modules known as "helpers" to hook into arbitrary points within the kernel and provide service(s) to the running system.

Now included in FreeBSD 9.x

ERTT Khelp Module

A FreeBSD loadable kernel module that provides Enhanced Round Trip Time (ERTT) measurements for use by delay and rate based TCP congestion control algorithms.

Now included in FreeBSD 9.x

  • Now included in FreeBSD 9.x
  • Version 0.2, released 30 July 2010
  • Version 0.1, released 19 Feb 2010
    • obsolete source (requires the CAIA Modular TCP Congestion control v0.9.4 and Khelp Framework v0.1.0 bundled patch)
Instrumentation & control
SIFTR (Statistical Information For TCP Research)

A FreeBSD kernel module that logs statistics on active TCP connections to a file.

Now included in FreeBSD 9.x

See the included README for detailed information.

A technical report on the performance characteristics of the module is available from the papers page.

NB: SIFTR has been imported into FreeBSD's "head" svn branch (a.k.a. 9-CURRENT) as revision 209662 and will be backported to 8-STABLE in time for 8.2-RELEASE. It is therefore likely that SIFTR v1.2.3 will be the last release to appear on the NewTCP website. Future development will continue directly in the FreeBSD source repository.

  • Now included in FreeBSD 9.x
  • Version 1.2.3, released 14 Jul 2010
  • Version 1.2.2, released 15 Jul 2009
  • Version 1.2.1, released 30 Apr 2009
  • Version 1.2.0, released 08 Apr 2009
  • Version 1.1.5, released 18 Dec 2007
  • Version 1.1.4, released 09 Oct 2007
  • Version 1.1.3, released 06 Sep 2007
  • Version 1.1.2, released 06 Sep 2007
  • Version 1.1.1, released 29 Aug 2007
  • Version 1.0.1, released 27 Jun 2007
Deterministic Packet Discard

A patch against FreeBSD's ipfw/dummynet tools to add configurable, deterministic packet loss capabilities to dummynet pipes.

Current: v2.0, released 06 Oct 2008

  • Version 2.0, released 06 Oct 2008

    A patch against FreeBSD's ipfw/dummynet tools to add configurable, deterministic packet loss capabilities to dummynet pipes.

  • Version 1.0, released 09 Oct 2007

    A FreeBSD kernel module that can discard specific TCP packets from a flow for testing purposes. See the included README for detailed information.

Tools for parsing SIFTR logs
Scilab-SIFTR

A Scilab module to simplify working with SIFTR log files.

Current: v0.2.2, released 3 Apr 2013

Miscellaneous
Iperf Patch

A patch for the Iperf network benchmarking tool that provides greater and more accurate contol over buffer sizes.

Current: v1.1, released 27 Aug 2007 (Iperf v2.0.2) and 08 Apr 2009 (Iperf v2.0.4)

SIFTR_CDEV

A prototype FreeBSD kernel module that illustrates the kernel sharing data with user space via a /dev device

Current: v1.0, released 22 Jun 2007

NS2 patches

This package contains various minor patches for ns-2.33 that add normally distributed random jitter to cbr packets, and a dummynet style droptail queue mechanism.

Current: v0.1.1, released 10 August 2010

NS2 cbr scripts

This package contains scripts to run queue size simulations using byte-based, packet-based and loose byte-based drop strategies. The simulations require the newtcp ns2.33 patches that add normally distributed random jitter to cbr packets, and a dummynet style droptail queue mechanism.

Current: v0.1, released 8 February 2012



Last Updated: Wednesday 25-Sep-2013 06:42:01 EST | Maintained by: Lawrence Stewart (lastewart@swin.edu.au) | Authorised by: Grenville Armitage (garmitage@swin.edu.au)