0% found this document useful (0 votes)
10 views3 pages

Routing Algorithms Java Report

Uploaded by

ramyadenesh8
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
10 views3 pages

Routing Algorithms Java Report

Uploaded by

ramyadenesh8
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

Simulation of Distance Vector and Link State Routing

Algorithms in Java — Report


Generated: 2025-09-15 15:03:39 This PDF contains Java programs for Distance Vector (Bellman-Ford)
and Link State (Dijkstra) routing simulations.

Aim: To implement and simulate Distance Vector Routing (using Bellman-Ford algorithm) and Link State
Routing (using Dijkstra’s algorithm) in Java, and observe the construction of routing tables in a small
network.
Procedure: 1. Represent the network topology using an adjacency matrix in Java. 2. Implement Distance
Vector Routing: - Apply Bellman-Ford relaxation iteratively. - Update routing tables until no more
improvements are possible. - Print final routing tables. 3. Implement Link State Routing: - Use Dijkstra’s
algorithm from a chosen source node. - Compute shortest paths to all other nodes. - Print the routing table
with distances and predecessors. 4. Test the programs with a small 4-node graph.

Java Program: Distance Vector Routing


// Java Program: Distance Vector Routing (Bellman-Ford)
public class DistanceVector {
static final int INF = 999;
static final int N = 4;

public static void main(String[] args) {


int[][] cost = {
{0, 1, 3, INF},
{1, 0, 1, 4},
{3, 1, 0, 2},
{INF, 4, 2, 0}
};
int[][] dist = new int[N][N];
int[][] via = new int[N][N];

for(int i=0;i<N;i++) {
for(int j=0;j<N;j++) {
dist[i][j] = cost[i][j];
via[i][j] = j;
}
}
boolean updated;
do {
updated = false;
for(int i=0;i<N;i++) {
for(int j=0;j<N;j++) {
for(int k=0;k<N;k++) {
if(dist[i][j] > cost[i][k] + dist[k][j]) {
dist[i][j] = cost[i][k] + dist[k][j];
via[i][j] = k;
updated = true;
}
}
}
}
} while(updated);

System.out.println("Distance Vector Routing Table:");


for(int i=0;i<N;i++) {
System.out.println("From Node " + i + ":");
for(int j=0;j<N;j++) {
System.out.println(" To " + j + ": Distance=" + dist[i][j] + " via " + via[i][j]);
}
}
}
}

Java Program: Link State Routing


// Java Program: Link State Routing (Dijkstra)
public class LinkState {
static final int INF = 999;
static final int N = 4;

public static void main(String[] args) {


int[][] cost = {
{0, 1, 3, INF},
{1, 0, 1, 4},
{3, 1, 0, 2},
{INF, 4, 2, 0}
};
int[] dist = new int[N];
int[] pred = new int[N];
boolean[] visited = new boolean[N];
int src = 0; // source node

for(int i=0;i<N;i++) {
dist[i] = cost[src][i];
pred[i] = src;
visited[i] = false;
}
dist[src] = 0;
visited[src] = true;

for(int count=1; count<N-1; count++) {


int min = INF, nextNode = -1;
for(int i=0;i<N;i++) {
if(!visited[i] && dist[i] < min) {
min = dist[i];
nextNode = i;
}
}
visited[nextNode] = true;
for(int i=0;i<N;i++) {
if(!visited[i] && min + cost[nextNode][i] < dist[i]) {
dist[i] = min + cost[nextNode][i];
pred[i] = nextNode;
}
}
}
System.out.println("Link State Routing Table (from source node " + src + "):");
for(int i=0;i<N;i++) {
if(i != src) {
System.out.println(" To " + i + ": Distance=" + dist[i] + " via " + pred[i]);
}
}
}
}
Sample Output
Sample Output:

Distance Vector Routing Table:


From Node 0:
To 0: Distance=0 via 0
To 1: Distance=1 via 1
To 2: Distance=2 via 1
To 3: Distance=4 via 2
...

Link State Routing Table (from source node 0):


To 1: Distance=1 via 0
To 2: Distance=2 via 1
To 3: Distance=4 via 2

Result & Conclusion: - The Java implementation of Distance Vector Routing (Bellman-Ford) demonstrates
iterative updates of routing tables until convergence. - The Java implementation of Link State Routing
(Dijkstra) computes shortest paths efficiently using global topology knowledge. - Both algorithms generate
correct routing tables for the given sample network. - These programs can be extended for larger
topologies by modifying the adjacency matrix.
Tips to Run in Java: 1. Save each program in separate files: DistanceVector.java and LinkState.java. 2.
Compile using: javac DistanceVector.java and javac LinkState.java 3. Run using: java DistanceVector and
java LinkState 4. Modify the adjacency matrix 'cost' to simulate different network topologies.

You might also like