NEWTCP

Overview

Our 'newtcp' program began in 2005 with support from Cisco Systems (multiple grants via their University Research Program). We were initially focused on independent, interoperable implementations of new 'high speed' TCP congestion control (CC) algorithms in FreeBSD and exploration of possible delay-based and rate-based enhancements to existing loss-based TCP CC techniques. Along the way we have also implemented and released new tools to instrument FreeBSD-based testbeds for experimental TCP research and explored how aggressive loss-based CC algorithms can dramatically increase round trip times (RTTs).

In 2011 and 2012 we received new funding to (a) extend our work on delay-based TCP (particularly to mitigate the impact of bufferbloat, and work well in wireless/wired scenarios), and (b) implement multipath TCP (MPTCP) for FreeBSD and explore the impact of blending loss-based and delay-based CC on sub-flows of individual MPTCP connections.

We are revisiting path delay and flow rate as interesting congestion indicators for TCP CC. They can potentially allow TCP connections to utilise the network without excessive filling of queues (cf. traditional TCP which requires queues to fill and drop packets in order to trigger feedback). We are also exploring ways in which delay indications can help a TCP sender differentiate between packet losses caused by congestion or other reasons. If a delay-based CC algorithm can exhibit loss-tolerance it may out-perform loss-based TCP algorithms across naturally lossy paths (such as wireless links). In 2010 we released our first examples of delay-based TCP for FreeBSD.

Outcomes

Between 2005 and 2011 we have :

  • Designed and implemented Kernel-resident tools to enhance FreeBSD-based TCP research: 'Statistical Information For TCP Research' (SIFTR), providing detailed, event-driven logging of TCP state variables during active TCP sessions, and 'Deterministic Packet Discard' (DPD), allowing for fine-grained control of dummynet packet drops for testing CC algorithms
  • Designed and implemented a new modular congestion control framework for FreeBSD's network stack
  • Designed and implemented FreeBSD CC modules for New Reno and H-TCP
  • Compared induced latency caused by H-TCP vs NewReno in FreeBSD [paper]
  • Explored how much more queuing delay is induced by CUBIC relative to NewReno over congested links [paper,paper]
  • Designed and implemented FreeBSD CC modules for HD (a delay-based TCP from the Hamilton Institute), CUBIC and Vegas
  • Received FreeBSD Foundation support to port our SIFTR work into the official FreeBSD source tree -- SIFTR is now available in FreeBSD 8.2 and later.
  • Designed new delay-threshold (CHD) and delay-gradient (CDG) TCP congestion control algorithms that include a new idea -- the "shadow window" -- to help delay-based connections compete with traditional loss-based flows
  • Implemented CHD and CDG as FreeBSD modules
  • Published early analysis of our delay-threshold [paper] and delay-gradient [slides][paper]  TCP variants
  • Received FreeBSD Foundation support to port our modular congestion control framework and five congestion control algorithms into the official FreeBSD tree -- they are now available in FreeBSD 9.0 and later.

Program Members

Collaborators

  • Michael Welzl (University of Oslo, Norway)
  • David Hayes (CAIA Adjunct Research Fellow)
  • Naeem Khademi (University of Oslo, Norway)

Alumni

  • David Hayes
  • James Healy
  • Alana Huebner
cisco logo

This project has been made possible in part by grants from the Cisco University Research Program Fund at Community Foundation Silicon Valley.

Last Updated: Wednesday 28-Nov-2012 20:35:21 EST | Maintained by: Grenville Armitage (garmitage@swin.edu.au) | Authorised by: Grenville Armitage (garmitage@swin.edu.au)