home search a-z help
University of Cambridge Computer Laboratory
Computer Laboratory > Research > Systems Research Group > NetOS > NetX


NetX logo
"...networking research without a better home..."


As the title suggests, this page is a placeholder for all the other miscellaneous networking research carried out by the NetOS group here at the CUCL SRG. This includes, but is not limited to, TCP congestion control and fairness, ECN marking strategies (involving the CU Statistical Laboratory), resource pricing, high-speed network monitoring, gigabit ethernet and user-space protocols, ATM resource control, adaptive applications, and probably other things I can't remember right now.

As time passes we intend to release various pieces of useful source code here, although it is quite possible that individual pieces of work may become large enough to gain their own web pages. So don't be surprised if things move on and off these pages.


  • Modified 3c59x driver
    A patched Linux 3c59x driver, allowing transmission rate reduction through transmission of dummy packets. No documentation.
    Old versions: 3c59x-1.0 3c59x-1.1

  • ECN utilities
    Some ECN utilities for testing ECN marking on Linux, with a patch to UCL's VIC v2.8 to enable adaptation to Receive Reports.
    Old versions: ecn-0.01

  • IP Chains patches
    Patches to Linux 2.2.14 and IPChains 1.3.9 to enable selection of packets using TCP header bits other than SYN.

  • Linux 2.2.14 SunRPC patch
    Patches ./net/sunrpc/xprt.c to prevent retrying forever in the face of ENETUNREACH when performing an RPC call.

  • mpls-2.3: MPLS on Linux (pick up the PostScript documentation here)
    An implementation of MPLS (Multi-Protocol Label Switching) for Linux 2.3.99-pre7 and 2.4.0. Supports IPv4 switch paths over ATM and Ethernet, with flexible support for hard partitioning of LSPs.
    Version 2.2 includes flexible support for label stacking, and limited support for IP fragmentation, both implemented by Phil Quiney (pquiney@nortelnetworks.com).

  • pttcp: Moore's modified test TCP code, based in part on Pratt's much earlier flat-rate loop Test TCP (linux source code)
    Generates multiple simultaneous (over 1200 between two PIIIs) TCP streams according to a variety of traffic models. Supports both receiver/transmitter and client/server behaviour.
    Old versions: pttcp-1.0 pttcp-1.1

  • ttcp+: Another extended version of the ttcp TCP/UDP test program
    In UDP mode its possible to get the sender to generate packets at a particular rate, and also to create periodic packet bursts. There's also a new mode that inserts (and checks) timestamps and sequence numbers, enabling loss and Time in Flight calculations (assuming hosts are NTP time synced). This turned out to be really useful when figuring out what the hell was going on with the GPRS network.

  • jroute: A parallel traceroute type program
    We used this tool in part of our Internet mapping work. It can do parallel traceroute to large numbers of hosts in a rate controlled fashion. It can also use TCP SYN packets to port 80 as the probes, which can be very useful for tracing routes to web servers through firewalls. It also understands lots of common router TTL expiry bugs, and makes a sensible guess abut what's actually going on. It also supports loads of really cool Loose Source Routeing and Record Route options that can enable you do get lots of cross-routeing information from a single network location, providing you know what you're doing. It needs to run as root, and has both command line and server modes. The code ain't pretty. The readme is here.

  • Mort's Python network scripts
    A selection of bits of Python that do various useful network related things. Well, I think they're useful anyway (`I' is Mort is Richard Mortier, by the way). Mostly to do with routeing, and dealing with such-like information.


Current Members:
photo photo photo photo photo
Ian Pratt Austin Donnelly Keir Fraser James Hall James Bulpin
Past Members:
photo photo
Richard Mortier Andrew Moore