Você está na página 1de 2

CEN4516: Computer Networks Project 5 Spring 2008

1 Distance Vector Routing


We have discussed this algorithm in class and will discuss the project in lecture next time we meet.

2 Overview of distance vector routing


You are to implement distance vector routing. There are five steps for each node of the graph to
accomplish link state routing:

1. Neighbor discovery

2. Create forwarding table with only the information learned during neighbor discovery

3. Exchange the “two columns” of the fowarding table with neighbors

4. Update forwarding table with information received from neighbors

5. Repeat steps 3 and 4 until convergence

3 Details
Your assignment is to implement distance vector routing. The metric to minimize is distance.
Each node of the graph should be represented with a process and the processes should commu-
nicate with one another through UDP sockets. There should only exist one source code file whose
executable is used for each node process. The number of nodes in the graph should be at least five
and the graph should be connected. For neighbor discovery, you may assume this information is
already known. I suggest for each node you have a file for the process to read that contains the
node’s neighbors and time to travel to each neighbor. This file can only contain information about
the node’s neighbor! Part of the design of the project is deciding the structure that is used to send
information to the nodes. .You may hard code in the number of nodes in your graph so each node
will know that it has obtained information from all nodes in the graph.
The node executable may need to use select(). A node can only send datagrams to its
neighbors and receive datagrams from its neighbors. The information that is sent from a node,
for example node A, should be (destination node, A’s minimum cost to destination node).
This is further described in your text. A node only sends information to its neighbors when the
node has a new value to a destination.
In each node, a 2D array, D, should be maintained at each node. Also, each node should store
in an array the distance to its neighbors. You may find other data structures are necessary, this is
dependent on your implementation decision. Again, please see your book for details.
The project consists of three parts.

4 Part 1 (25 points): Convergence to minimum distance


The nodes should exchange data until they converge to the minimum distance. The distances to
neighbors should remain static. After the nodes have converged, each node should print out its
distance table D in a meaningful form - see examples in the text for guidance. Also each node must
report how many cost tables it received from each neighbor for the node to converge.

1
CEN4516: Computer Networks Project 5 Spring 2008

5 Part 2 (5 points): Good News


The distance between nodes, say A and C, changes to lower value. Again, let the values converge
to the minimum distance. Each node should report (print out) its distance table after converge.
Also each node must report how many cost tables it received from each neighbor for the node to
converge

6 Part 3 (5 points): Bad News


The distance between nodes changes to a higher value. Use the distance update from part 2 and the
distance tables after part 2 as the starting point. Again, let the values converge to the minimum
distance. Each node should report (print out) its distance table after converge. Also report the
number of exchanges required by each node for each destination for the values to converge.

7 Testing
Provide a text file with the information about the nodes. During the demonstration, we should not
have to type in information about the location of the nodes.

8 Language
Your program can be written in C or Java.

9 Submitting
Include the following when you submit your project:

1. A README.txt file

2. source code

3. other necessary files

10 Points 35; 10 of 35 are BONUS POINTS!

Você também pode gostar