15-849B Advanced Computer Networking - Projects Examples

Add support for QoS routing to a routing protocol

Routing protocols distribute information used to calculate routes on individual routers. To support QoS routing, i.e. select routes that have certain QoS properties, requires additional information to be distributed.

Electronic service

Implement (or more likely port and modify) an electronic service (retrieval of stored video, Web support, ..) to make use of advanced networking features such reservations, differentiated service, ... The implementation would have to resolve and evaluation several service features, e.g. response time, security, portability, scalability, ...

Application use of network QoS

Modify an application to use networking services (e.g. reservations) and evaluate the impact of the service on application performance and network efficiency.

DiffServ

Provide support for diffserv services, possibly using Darwin as a starting point. The project would like look at several components of the DiffServ model, e.g. scheduling support, bandwidth management, classification, ..

Building a Layer-7 Router Based on Darwin/H-FSC QoS Kernel

There is an increasing trend of putting functionalities inside routers to do application specific processing. A company called Packeteer offers products that classify traffic based on a variety of information including: application, service , port number, URL, user speed, host name, IP or MAC addresss. It then treat these packets differently according to the traffic classes they belong to. Design and implement an layer-7 router starting from the Darwin/H-FSC QoS Kernel, come up with interresting policies, then experiment the router in the Cairn Wide-Area testbed environments. For more information check out:

http://www.packeteer.com/products/features.htm
http://www.cs.cmu.edu/~hzhang/HFSC

Receiver-controlled Cooperative Resource Sharing

Consider yourself at home connected by modem. You have several telnet sessions, a WEB browse, a ftp program running to download a large file. If you do this today, the performance for your telnet and WEB browsing is usually bad due to the large file transfer. What you really want is a system that allows you to specify resource sharing policies such as: when I am browsing, my netscape browser gets the highest share bandwidth, but at the same time, I also want FTP program to make progress so that TCP does not timeout. You can theoretically do this if you have a Fair Queueing server at the router located at the other end of the telephone link, however, this is in practical.

One idea is to design a system that by manipulating TCP receiver state machine, you can control the rate of remote senders, and implement a receiver-controlled cooperative resource sharing system.

Porting Darwin to IPv6

Darwin is an experimental software system developed at CMU to support resource management for value-added network services. There is a prototype implementation of Darwin based on IPv4. In this project, you will port Darwin to IPv6. For more information on Darwin and its QoS kernel, check out

Porting Darwin to Linux

Darwin is currently running in NetBSD/FreeBSD environment, In this project, you will port Darwin to Linux environment. For more information on Darwin and its QoS kernel, check out

Improve the tele-lecture tools we used in class

There is clearly room for improvement. One example of an improvement might be to building a recording system for lectures. Check out the MANIC project. Make it work in our environment and improve it. http://gaia.cs.umass.edu/nmis/manic.html

Robust Inter-Domain Routing

Several studies have noted that routing on the Internet today is chock full of "pathological" behaviors: route flapping, withdrawals for routes that were never advertised, etc. In addition, human error can and has lead to instances where pieces of the Internet have become isolated from other pieces. It has been said (by me, mostly) that one of the fundamental problems in the Internet is that routing protocols assume that all routers will always tell the whole and complete truth. It is worth investigating whether or not this requirement can be loosened while still employing a dynamic routing protocol. Specifically, the question is: Can a router avoid pathological behavior by assuming that most routers are telling most of the truth, rather than that all routers are telling all of the truth.

For example, consider this network:

A               
 \              
  \             
   P-----------Q
  /             \
 /               \
C                 D
Hosts A, C, and D are connected by routers P and Q. Assume that there are 3 routes advertised in this network: A to D, A to C, and C to D. (The actual computation of which links and routers are involved in each route is left as an exercise for the reader.) Now, assume that the route from A to C is withdrawn. Suddenly, we see that the network has become inconsistent: If routes from A to D and from C to D are still good, how could it be that the route from A to C is NOT good? (Let's assume that any piece of hardware either fails completely, or doesn't fail at all.) Thus, if we believe that most of the information here is correct, we can deduce that the route from A to C must still be functioning.

To complete this project, an enterprising investigator should find a large base of BGP route information. By investigating this BGP data, it may be possible to identify instances in which either a single router has inconsistent state, or else a group of routers taken together is inconsistent. Further, the investigator should explore whether the idea of believing most rather than all information can resolve these inconsistencies.


prs@cs.cmu.edu (last updated Aug 1998)