Skip to content

saboomayank/distance-vector

Repository files navigation

Distance Vector Protocol Algorithm Implementation

1. Problem Statement

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.

2. Getting Started

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.

3. Server Commands/ Input format

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

Contributors

  • Austin Vargason - Commands, Distance Vector Algorithm, Testing
  • Carlos - README, Topology, Testing, Routing Table
  • Mayank Saboo - Commands, Distance Vector Algorithm, Testing

Releases

No releases published

Packages

 
 
 

Languages