CEN4516: Computer Networks

Project 5

Spring 2008

1

Link State Routing

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

2

Overview of link state routing

You are to implement link state routing. There are five steps for each node of the graph to accomplish link state routing: 1. Neighbor discovery 2. Flooding of neighbor information to all nodes of the graph 3. Build graph representation of the node configuration and edge values 4. Calculate the shortest from your node to all the other nodes using Dijstra’s shortest path algorithm. 5. Produce the node’s forwarding table If neighbor information changes (new iteration), steps 2 - 5 are repeated to calculate the possibly new forwarding tables.

3

Details

Each node of the graph should be represented with a process and the processes should communicate 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! For flooding of neighbor information, you must rely on your neighbors. Part of the design of the project is deciding the structure that is used to send information to the nodes and the representation of the graph. Each node should obtain information to represent a graph in a data structure. 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. Once each node has heard from all the other nodes, it is time to run Dijkstra’s shortest path for each node. From these results, build a forwarding table. The forward table should be printed out by each node. Up to this point, the network has been static. To handle a dynamic network will earn bonus points. Each node will need to simulate that the time to travel to its neighbor changes and disseminate that information with flooding. You can develop your own method on how to represent the data and its dynamic behavior. The output of the program should be the forwarding table of each node for each iteration.

4

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. 1

CEN4516: Computer Networks

Project 5

Spring 2008

5

Language

Your program can be written in C or Java.

6

Submitting

Include the following when you submit your project: 1. A README.txt file 2. source code 3. other necessary files

7

Points: 25

2

Master your semester with Scribd & The New York Times

Special offer for students: Only $4.99/month.

Master your semester with Scribd & The New York Times

Cancel anytime.