Suggested Projects, Due by noon, Wednesday June 5thth for graduating students, noon Friday, June 14thth for other students. The projects listed below are suggestions. If you have other ideas which are similar, please check with me before starting them.Turn in a one paragraph summary of your planned project on Monday, May 6th.
Develop your own programming project. Keep in mind this should be a 3-4 week project, not a major undertaking you will find hard to finish by the end of the quarter. Here are some samples, but other programming projects related to course material will be considered.
1) Develop a web based configuration status and manager for your Linux machine. Use the following instructions to develop a simple web server. However, your web server will return status information instead of static documents. On connection, regardless of the document requested, instead return a status menu that you create which includes such information as disk space used and available, uptime, system load, free and used memory, recent disk activity, network activity including any collisions, input or output errors. You can call these items directory from the kernel or use system calls on utilities which report them, such as uptime, netstat, etc. Be sure to format them in a reasonable way.
You can structure the internals as you wish but one option would be to use the standard web cgi interface. Use the CGI interface to collect data. This is a good project if you have never created a web server.
Estra Credit: Provide a contol interface. If you have your own Linux machine, meaning you have root, this interface can support functions such as rebooting. Be sure to provide a security interface for such options. If you are using a department machine, you will be more limited in this area without root access.
2) Cnet is a network simulator which enables experimentation with various data-link layer, network layer, routing and transport layer networking protocols in networks consisting of any combination of point-to-point links and IEEE 802.3 Ethernet segments. With reference to the OSI/ISO Networking Reference Model, cnet provides the Application and Physical layers. User-written protocols are required to ``fill-in'' any necessary internal layers and, in particular, to overcome the corrupted and lost frames that cnet's Physical Layer randomly introduces. In addition, advanced users may develop different Application and Physical Layers which exhibit varying statistical characteristics of message generation and data transmission. Simulation sizes may range from two to a few hundred nodes.
Download Cnet to a Unix machine, compile and get it running. (Having some experience in downloading and installing open-source software will be useful for this project.) Implement the simple stop and go protocol used as an example in the Cnet documentation. Once you have that running, inplement an audio streaming protocol with high and low watermarks. Assume something like 100 Kbps/sec of data is needed. Start with with a two node network and introduce errors and delays. Increase the number of nodes in your network. Draw some conslusions about the streaming rate, high and low watermarks for ranges of delays and hopcounts.
3) Nagios is an open source network management system. Install Nagios on a computer and set it up for monitoring. Create your own MIB for managing a specialized device you have access to. Or think of another way to extend or do something else interesting with Nagios. (Just installing Nagios and getting it to work will take a some time, so allow for that in your planning.) This project is a good choice if you have access to a network of computers at another job as you will end up with a useful network monitor when you are done.
Write a paper on one of the topics covered this quarter by reading the current RFCs and then reading email discussion boards or other recent material on the appropraite standars sites. The paper should be 20-25 pages, doubled spaced including some graphics. Don't just cut and paste from other papers. You will be expected to do research on the Internet for related material, yet if it is found that you have cut and pasted from other papers, your grade will be very low (this is very easy to test!) But this is a good selection if you are more interested writing english than code. (This is a good choice for graduating students!) Since it is pretty easy to do a basic paper with research on the Internet, the grading for this option is a bit stricter.