Term Project
CSSE 432 – Computer Networks
Final Project Specifications
Objectives
In this project, you will:
- demonstrate your understanding of network layer and data link layer protocols.
- work in teams to implement the ping utility and the forwarding function of a software router.
Project teams
You will work in teams of four (with one exception, one team has three members). A repository has been created for your team. Clicking on the link for your team repository will reveal the URL for that repository. Each member of your team is advised to checkout your team repository at the start of the project. Before you edit code, documents, or other aspects of the project, you should update your local workspace, edit, update, then commit your work back to your repository. Using that cycle will minimize conflicts. Remember to provide appropriate commit messages and to do svn add
if you want to add new files to your repository. Of course, don't forget to commit after you add new files.
-
Team 01
- Matthew Moore, Eric Reed, Jeremy Tramm, David Zitnik
-
Team 02
- William Anderson, Timothy Hollingshead, Jimmy Theis, Bryan Watts
-
Team 03
- Aaron Bamberger, Stephan Lemmer, Kevin Risden, Douglas Selby
-
Team 04
- Andrew McCurry, Sean Richardson, Jacob Schmidt, Matthew Sickler
-
Team 05
- Alec Manke, Joe Lee, Zachary Reynolds
-
Team 06
- Brian Baro, Matthew Klaasse, Calvin Mlynarczyk, Nathaniel Varner
Before you begin
Go to http://vns-2.stanford.edu/login/ and login with the username and password that was emailed to you. Look up the Topology section to find information about your network topology. Copy the routing table to a file called rtable
and save the file in the same directory as the project files.
Part 1: Implementing the ping functionality
In this part of the project, you must implement the ping
functionality. When any of the interfaces of your router is pinged
, your router must respond to the message with an ICMP
echo response packet. In order to implement this behavior, your router must:
- handle incoming ARP request packets
- handle incoming ICMP echo request packets
- respond with ICMP echo response packets
Turning in your solution
When ready to turn in this implementation, you must tag
your files PING
. Here's how to do this (teamxx should be replaced with your team information i.e., team01, team02 and so on.).
After committing all the files to the Project folder in your repository, follow these steps.
Step 1: In the csse432-201230-teamxx folder in your repository, create the directory "tags":
>>svn mkdir tags
>>svn mkdir -m "Creating the tags folder" http://svn.csse.rosehulman.edu/repos/csse432-201230-teamxx/tags
Step 2: Copy the files to the tags folder
>>svn copy
http://svn.csse.rose-hulman.edu/repos/csse432-201230-teamxx/Project
http://svn.csse.rose-hulman.edu/repos/csse432-201230-teamxx/tags/PING -m "Implementation of ping"
Part 2: Implementing the forwarding function of the router
In this part of the project, you will add functionality to the router such that it can forward packets to two application servers. In order to implement this behavior, your router must:
- correctly send ARP requests.
- correctly handle ARP replies.
- correctly forward packets to and from the application servers.
- maintain an ARP cache.
- also, send an ICMP
host unreachable
message after 5 ARP requests are unanswered.
Turning in your solution
When ready to turn in this implementation, you must tag your files FORWARDING
. Here's
how to do this (teamxx should be replaced with your team information i.e. team01, team02 and so on).
After committing all the files to the Project folder in your repository, follow these steps.
Step 1: In the csse432-201230-teamxx folder, you have already created a tags
folder.
Step 2: Copy the files to the tags folder
>>svn copy
http://svn.csse.rose-hulman.edu/repos/csse432-201230-teamxx/Project http://svn.csse.rose-hulman.edu/repos/csse432-201230-teamxx/tags/FORWARDING -m "Implementation of forwarding"
Resources
- The following Powerpoint slides: Building an Internet Router.
- FAQ at http://yuba.stanford.edu/vns/assignments/simple-router/
- Various RFCs for the protocols.
Deadlines
Note that these deadlines are firm. No late days are available for the term project.
- Part 1: PING - Monday, May 7th, 2012 by 11:59 PM.
- Part 2: FORWARDING - Friday, May 18th, 2012 by 11:59 PM.
- Partner Evaluation: Available on ANGEL. Accessed by following these links: Lessons → Final Project → Partner Evaluation - Friday, May 18th, 2012 by 11:59 PM.