In this assignment you will implement a simplified version of the Distance Vector Routing Protocol. The protocol will be run on top of four servers/laptops (behaving as routers) using TCP or UDP. Each server runs on a machine at a pre-defined port number. The servers should be able to output their forwarding tables along with the cost and should be robust to link changes. A server should send out routing packets only in the following two conditions: a) periodic update and b) the user uses command asking for one. This is a little different from the original algorithm which immediately sends out update routing information when routing table changes.
A distance vector routing protocol uses the Bellman-Ford Algorithm or Ford-Fulkerson Algorithm or Diffusing update Algorithm. We will be using Bellman-Ford Algorithm to calculate the cost of the paths. A distance vector routing protocol only works on the basis of sending the routing table to its neighbors periodically or if there are any updates in the table. Initially, each server/node is going to have no information about the topology except its neighbors. Each server gets information about its whole topology, when each server starts to send information about its neighbors. Examples of distance vector routing protocols are RIPv1, RIPv2, IGRP and EIGRP.
The server supports the following commands:-
- server -t topology-file-name -i time-interval-for-step
- update server-id1 server-id2 updated-cost
- step
- packets
- display
- disable server-id
- crash
- Austin Vargason - Commands, Distance Vector Algorithm, Testing
- Carlos - README, Topology, Testing, Routing Table
- Mayank Saboo - Commands, Distance Vector Algorithm, Testing