Lab: Routing

In this lab you will implement a distance vector routing protocol for Bene, so that it can dynamically route packets across an arbitrary network of simulated nodes. You will use the simulator to examine the correctness and performance of your implementation.

Distance Vector Routing

Simulate a distance vector routing protocol running on each node. It should include the following features:

To implement the protocol, you should create a routing application that handles broadcast packets that use the "dvrouting" protocol field in the packet header.

Experiments

To demonstrate that your routing protocol works, you should run experiments showing:

For each of these examples, show a trace of the routing protocol so that you can demonstrate how it works, plus a trace of the nodes as they forward a packet correctly.

Report

Write a formal, scientific report that includes the following:

Write using a formal, scientific report style. Your report should be written as if you are explaining your work to another CS student, and they need all of the details of what you did so that they can replicate your experiments.

Your report can be any length, as long as you thoroughly describe your project and results. The paper must use 11 point type, single spacing, and one column per page.

You must use LaTex to write your report. You can use this template for your report. To help you learn LaTeX, I suggest using the WikiBooks LaTex reference.

Submission

Your code should be located in a directory called lab4 in the top level:

bene/
  src/
  examples/
  lab4/

Turn in a tarball that includes all of your code (for the simulator, experiments, graphing, etc), and a PDF of your report:

tar -czvf bene.tgz bene

using Learning Suite.

Grading

This lab is worth 100 points, and will be graded with the following rubric:

To get full points, all experiments must work well and the report must be complete and written with a scientific style.