"...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
A patched Linux 3c59x driver, allowing transmission rate
reduction through transmission of dummy packets. No
Old versions: 3c59x-1.0
- 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
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
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
Version 2.2 includes flexible support for label stacking,
and limited support for IP fragmentation, both
implemented by Phil Quiney (firstname.lastname@example.org).
- 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.
- 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
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
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
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.