The Systems Research Group

Networks and Operating Systems

Part II/Diploma Project Suggestions, 1998-1999


Networking Related Projects


ATM Network Measurement Device

A device is required to monitor network activity on an ATM network running at 155Mbps. Detailed statistics of the inter-cell arrival times need to be obtained for use in Connection Admission Control (CAC) experiments. The project would involve low level programming in an ATM interface device driver and higher level work  designing an architecture for the efficient capture and presentation of the required information.

This project could either be carried out on the Nemesis operating system, taking advantage of its ability to provide applications with guarantees, or at a high priority on Linux.

ATM Network Traffic Generation

Previous work in the laboratory has developed an ATM experimental traffic generator running under Nemesis using the Digital ATMWorks 350 ATM interface card. Future work will require many more of these devices to operate simultaneously.

Ariel Control Architecture Supporting IP

A Control Architecture in The Tempest(tm) allows (among other things) heterogeneous, distributed of ATM switch networks. Such a control architecture could, for example, implement a particular signalling system previously unavailable on various switch architectures. Or, such a control architecture could implement a simple user interface over the top of a network of switches.

Goals: The objective of this project is to implement an Ariel compliant Control Architectures. The Control Architecture would implement IP routing allowing switches not supporting IP routing to do so.

Requirements: Experience with, or at the very least, exposure to the C programming language would be a definite advantage. C++ skills would also assist in this project.

Ariel Control Architecture Supporting RSVP

A Control Architecture in The Tempest(tm) allows (among other things) heterogeneous, distributed of ATM switch networks. Such a control architecture could, for example, implement a particular signalling system previously unavailable on various switch architectures. Or, such a control architecture could implement a simple user interface over the top of a network of switches.

RSVP is a resource reservation system put forward by the Internet community to give quality of service guarantees to IP traffic streams.

Goals: The objective of this project is to implement an Ariel compliant Control Architectures. The Control Architecture would implement RSVP resource allocation.

Requirements: Experience with, or at the very least, exposure to the C programming language would be a definite advantage. C++ skills would also assist in this project. An understanding of the IP protocols and the RSVP protocol in particular will also be an advantage.

Application of Traffic Estimators in the Internet

The Measure project is working on on-line estimation of the resource requirements for bursty multimedia data streams in high speed networks. For a summary of our approach see http://www.cl.cam.ac.uk/SRG/measure/.

A related project, named Entropic, has developed a toolkit which incorporates statistical estimators which are capable of taking an input stream of data measurements, and computing the effective resource requirements of the traffic, for use in traffic control. In the Internet, which is currently dying a well deserved death due to uncontrolled overload, there is no mechanism for deciding whether or not to allow additional flows to use a particular router.

The US-UK Fat Pipe is an IP link of limited capacity linking Super Janet to the Continental US. At times over 30% of the traffic on this link has been observed to be retransmissions of packets dropped due to congestion. When this occurs, the network (link) melts down, in effect, and no useful work can be done.

This project will develop a simulation of a set of long-haul Internet links carrying IP; routers will use on-line estimation of the effective capacity remaining in the network to enable network overload control mechanisms to be used, thereby preventing network melt-down.

Goals: This project has the potential to develop algorithms for network control which could be of great use in the Internet. There is a distinct possibility of publishing the results, depending on the quality of your work.

Requirements: You need to have a good understanding of TCP/IP, and networks. You need to be able to program in C/C++, with confidence.

Real Time Analysis and Resource Allocation in Network Interfaces

An area of critical interest to the networking community is that of the allocation of network resources, particularly as represented by guarantees of available bandwidth and upper bounds on latency. This project will investigate how network resources, in the form of access to a network via a host's network device driver, may be shared with appropriate QOS (quality of service) guarantees between processes on a single machine.

A set of laboratory machines used by the Compare project is equipped with a modified OSF/1 kernel containing instrumentation which allows the logging of selected events within the kernel (for details of this instrumentation see Project proposals ``Automatic Generation of Automata recognising Kernel Events'' and ``Real time analysis and display of kernel networking activity'').

The Measure project has, using the theory of large deviations, developed predictors which have application to resource allocation in such areas as network switching and process scheduling.

This project seeks to bring together existing techniques and infrastructures from both the Compare and Measure projects. Currently packets which cannot be immediately transmitted on a network interface are placed in a FIFO transmit queue, making it impossible to provide guarantees of bandwidth or bounds on latency. Such guarantees may be approached by manipulation of this queue, higher priority processes placing their packets higher in the queue, with the implication that spare capacity must be maintained for high priority arrivals. The degree of spare capacity required will vary dynamically, and it is hoped that this capacity may be adjusted by utilising the Measure predictors.

The implementation of this project will, therefore, involve modification of the existing instrumented kernel to recognise relevant events, to install real time analysis of these events and calculation of predictors of expected capacity requirements, and to manipulate interface transmit queues accordingly.

No modification of the kernel's scheduler will be required, should a packet for transmission not be admitted to a transmit queue the normal socket blocking mechanism being invoked. An existing modification to the system's scheduler may be utilised to provide a finer grained re-scheduling of blocked transmitting processes.

For the purposes of this project priority may be assigned by interface port number, certain `well known' ports such as those used by (say) ftp having priority over others such as telnet. Additionally a small suite of applications having differing QOS requirements and using other specified ports can be used for evaluation purposes.

Special resources: Access to project workstations, limited root access and additional file space for kernel building.

Call Admission Control (CAC) Algorithm -- Exponentially Weighted Mean

A CAC algorithm will decide whether new calls into an ATM network will be admitted or rejected based on a certain criteria. Most usually this criteria is related to such things as the current load on a communications interface, guarantees made of Quality of Service for particular calls and limitations on available network bandwidth.

The objective of this project is to implement a CAC algorithm based on an exponentially weighted mean. Such an algorithm uses a combination of the current and previous line utilisation to predict the utilisation on the line in the future.

The laboratory has a test-rig for the testing of CAC algorithms. This test-rig enables calls of particular types and with nominated arrival characteristics to be sent into a variety of CAC algorithms. The behaviour of the algorithms can be compared on the basis of such characteristics as cell loss, line utilisation and call accept/reject ratios.

This algorithm will form another of a battery of such algorithms in the call test-rig. The test-rig can compare and contrast its behaviour with the behaviour of other CAC algorithms.

In addition to implementation of this algorithm, it is expected that a thorough comparison of this algorithm with others available will be undertaken. The test-rig has already been used comprehensively for this task and such a comparison has a well defined agenda.

Experience with, or at the very least, exposure to the C programming language would be a definite advantage.

Call Admission Control (CAC) -- Demonstration Front End

A CAC algorithm will decide whether new calls into an ATM network will be admitted or rejected based on a certain criteria. Most usually this criteria is related to such things as the current load on a communications interface, guarantees made of Quality of Service for particular calls and limitations on available network bandwidth.

The laboratory has developed a test environment for the evaluation and demonstration of CAC algorithms.

It is useful to be able to demonstrate the operating of algorithms and the operation of the Call Admission Control kit in use. Currently the demonstration environment has not evolved with the growth of the kit itself and as a result it can be difficult to show the output of the kit in a demonstration environment.

Goals: The objective is to allow a user (in the demonstration situation) to be able to select from a range of output available which algorithms for Call Admission Control to use and what sorts of traffic would be used. A further extension to this work would be to allow the dummying or simulation of the network whereupon the traffic generated and measurements taken are done as a real-time, simulated, task. The design of the demonstration environment must allow a developer to simply and easily extend the demonstration environment as the CAC evaluation kit is enhanced.

Requirements: Experience with, or at the very least, exposure to the C programming language would be a definite advantage. X environment programming skills, TCL/Tk skills or related skills in a related rapid prototyping language may also be of assistance.

Virtual Network Resource Usage in The Tempest(tm)

Current research in The Tempest(tm) is looking at the dynamic reallocation of switchlet resources between virtual networks. A switchlet is a partition of the physical resources of a switch; one or more switchlets from different switches can be combined to form a virtual network, and multiple virtual networks can co-exist on a single physical network.

A user interface that interacts with components of The Tempest(tm) world has already been developed, which shows graphically the presence of virtual networks and the connections created and deleted on behalf of each virtual network. In addition, some separate work has been done that has involved gathering statistics from a switch.

The project would be to develop a version of the user interface that visualises network resource usage, showing the proportion of allocated resource used by each virtual network, and the usage by all virtual networks as a proportion of available resource. A certain amount of code from the existing user interface as well as from the statistics-gathering work could be reused to create the new interface.

Once a basic user interface has been written, some experimentation on the optimal way to gather meaningful statistics for this task as well as different approaches to scheduling for "networks on demand" could be carried out.

LBL Network Simulator: ATM Simulation

There is a network simulator that has been developed at LBL, for the simulation of IP networks, and in particular the TCP protocols. It would be useful to extend this to simulation of ATM networks, either at a cell or a flow level. It would be helpful to have experience with Tcl (or even OTcl), as well as C for this project. A project carried out last year used NS to simulate the application of the Measure technology to TCP, and was very successful.

IrDA protocol stack

Most recent computer motherboards include a connector for an IrDA transceiver, which can be used to send and receive data over an infra-red link. There are a number of standards which, when implemented, make up the IrDA protocol stack.

It may be interesting to implement this protocol on Nemesis. Nemesis machines could then exchange objects with handheld devices like PDAs, mobile phones, etc. The protocol stack includes several layers, including the physical signalling layer, the link access protocol (device discovery), the link management protocol (multiplexing), a transport protocol (flow control, segmentation and reassembly), and two high level protocols: one providing emulation of serial and parallel ports, and the other providing for typed exchange of objects.


Project enquiries to:

Austin Donnelly, Cambridge Computer Laboratory, Austin.Donnelly@cl.cam.ac.uk
Stephen Early, Cambridge Computer Laboratory, Stephen.Early@cl.cam.ac.uk
Dickon Reed, Cambridge Computer Laboratory, Dickon.Reed@cl.cam.ac.uk

HTML gripes to:

Richard Mortier, Cambridge Computer Laboratory, Richard.Mortier@cl.cam.ac.uk


Last updated: $Date: 1998/09/10 15:15:08 $