One possible kind of project implements a feature or a software subsystem (or part thereof) for which a specification exists, but no public-domain implementation exists. The Internet Drafts produced by the Internet Engineering Task Force (IETF) are a good place to get ideas for such projects. The Usenix Proceedings are also another great source.
Another kind of project might choose to evaluate modifications and performance enhancements to an existing software subsystem. Reproducing and verifying the results of work published in USENIX, SOSP, SIGCOMM, and INFOCOM conferences might be good candidates for projects.
The following is a list of suggested projects. Unless otherwise stated, you can implement your projects on Linux or freeBSD. In most cases, you can implement a simplified version of these projects:
New Projects:
Old projects:
Implement TFRC as a kernel protocol. Implement anycast Implement a simplified version of Content-based routing (come talk to me). Investigate TCP performance assuming accurte and synchronized clocks (e.g., GPS clocks). Create a distributed version of a intrusion detection system (e.g., snort). Implement one of the trace-back schemes studied in class. Design an implement a High-Availability Heartbeat protocol Improve on the work on Enhancements to the Linux Kernel for Blocking Buffer Overflow Based Attacks Some neat project with Real-Time Linux Implement MPLS packet forwarding. Instrument how much of a performance gain does MPLS switching give you? Implement label distribution protocol and instrument alternate path routing using MPLS forwarding. ICMP extensions for mpls http://www.ietf.org/internet-drafts/draft-ietf-mpls-icmp-01.txt Implement a scheme that automatically creates network overlays (simplified XBone).
Implement level 4 forwarding. http://www.acm.org/sigcomm/sigcomm98/tp/abs_16.html
Implement GRE tunneling in FreeBSD. ftp://ftp.isi.edu/pub/internet-drafts/draft-meyer-gre-update-03.txt
Implement undoable file deletions, i.e. deleted files are moved elsewhere and a daemon cleans it up later. Aka trash-bin in windows.
Swap compression. (usenix freenix track 1999 proceedings).
Many to many thread scheduling.
Loading compressed (gzipped) executables.
RSVP Refresh Reduction Extensions (draft-ietf-rsvp-refresh-reduct-02.txt).
Implement a pseudo-network driver which allows controllable delay/error to be introduced on a fake link.
Implement an in-kernel auto-compressing file system.
Sigcomm 97 has a paper describing a method for optimizing packet forwarding costs. Implement the alogorithm, and reproduce the results described in that paper.
Re-cast IPv6 neighbor discovery in IPv4 terms. Implement address autoconfiguration in Ipv4.
Implement the IP/UDP/RTP header compression scheme. ftp://ftp.isi.edu/in-notes/rfc2508.txt
Implement dns dhcp extensions http://www.ietf.org/internet-drafts/draft-ietf-dhc-dhcp-dns-11.txt
Implement a simplified zero-configuration local area networking. http://www.ietf.org/internet-drafts/draft-ietf-zeroconf-reqts-02.txt
Automatic TCP buffer tuning. http://www.acm.org/sigcomm/sigcomm98/tp/abs_26.html
You are expected to accomplish the following milestones with respect
to the project.
|
|
|
|
| June 19 | A three page writeup of your project: one page problem definition which shows you understand it, one page implementation plan which shows you have a clue how to solve it include what kernel and/or user software modifications needed, and one page on what you will complete by the end of the semester and what you will demo (so that we agree how to grade you). You dont have to fill the whole page, but start each section in a new page. You will bring a print out of your writeup to the class on the due date. |
|
| July 10 | Pseudo code describing your implementation. If you are modifying existing software, you will need to indicate where you will make the modifications as well. Not to exceed 5 pages. You will bring a print out of your writeup to the class on the due date. |
|
| Last class | Project demonstration. Each team will meet with the instructor for 20 minutes, during which time you will demonstrate your work, and answer any questions. |
|