CS551: Computer Communications
Spring 2000 |
Project 1: The Extended Bellman-Ford Algorithm
Due: 11:59pm on Friday March 10 |
Motivation
In this project you will build a simulated network using UNIX processes and inter-process communication. On this network, you will then demonstrate the extended Bellman-Ford algorithm we discussed in class. For starters, you should read about socket
programming and various system calls related to process management
(like fork, kill etc).
|
Project Description
This project has two parts:
|
Part 1: Configuring the network
To configure the network, you will implement a program called the manager. The manager takes as an argument a single file. This file contains a network topology description. The format of this is as follows:
After the manager reads the program, the following things must happen:
|
|
Part 2: Implementing the Extended Bellman-Ford
Algorithm
The goal of this second part is to implement the Extended Bellman-Ford routing algorithm discussed in class. Once this part is implemented, you should be able to have each router process (after it has received its connectivity table) exchange distance vector messages with each of its neighbors. This distance-vector information should include the head of path data as described in the paper. In order to implement this functionality:
|
File Layout
I want you to learn some basic concepts about Makefile and compiling
programs when written in multiple files. So, your project must have the
following:
|
Submitting your project
You should submit the project using submit command. The exact syntax of the command is the following. You have to submit all the files i.e. C/C++ files, *.h files, and the makefile. % submit -user csci551 -tag proj1 file1 [ file2 ... ]
|
Evaluating your project
Here is how we will evaluate your submission. First, we will copy all the files you have submitted into an empty directory, and then type the following command: % make You should structure your makefile so that the result of this command is a single executable, called manager. We will then execute one or more of the following commands: % ./manager test.data where "test.data" is a file containing a network topology description. This description may not be the same as the example shown above. We will not tell you in advance what topology description we intend to use. You may, however, assume that the topology description will be syntactically correct. To aid us in evaluating your program, your software should output the
following files containing the information specified below. Be sure
to adhere to the format suggested below, otherwise you may not get credit
for your submission:
|