0% found this document useful (0 votes)
55 views

Net Com Lab Assigment

This document contains code to implement link state and distance vector routing protocols. It includes pseudocode for the link state algorithm which initializes costs and iterates through nodes to find the minimum cost path. It also includes C code for implementing distance vector routing which uses a cost matrix and Bellman-Ford equation to iteratively calculate least costs paths between nodes. The output displays the routing tables with next hops and path costs for each node.

Uploaded by

satyamoorthy m
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)
55 views

Net Com Lab Assigment

This document contains code to implement link state and distance vector routing protocols. It includes pseudocode for the link state algorithm which initializes costs and iterates through nodes to find the minimum cost path. It also includes C code for implementing distance vector routing which uses a cost matrix and Bellman-Ford equation to iteratively calculate least costs paths between nodes. The output displays the routing tables with next hops and path costs for each node.

Uploaded by

satyamoorthy m
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/ 9

CSE1004 – Network and communication

Winter semester 2020~21

Slot: L15 + 16

LAB DIGITAL ASSIGNMENT

NAME:M.YASWANTH
REG NO:-19BCE0656
Implement Link State Routing Protocol:
Algorithm:-
1 Initialization:
2 N' = {u}
3 for all nodes v
4 if v adjacent to u
5 then D(v) = c(u, v)
6 else D(v) = 00
7
8 Loop
9 find w not in N' such that D(w) is a minimum
10 add w to N'
11 update D(v) for all v adjacent to w and not in N' :
12 D(v) = min( D(v), D(w) + c(w,v) )
13 /* new cost to v is either old cost to v or known
14 shortest path cost to w plus cost from w to v */ 15 until all nodes in
N'
CODE:
#include <stdio.h>

#include <string.h>

int main()

int count,src_router,i,j,k,w,v,min;

int cost_matrix[100][100],dist[100],last[100];

int flag[100];

printf("\n Enter the no of routers: ");

scanf("%d",&count);

printf("\n Enter the cost matrix values: ");

for(i=0;i<count;i++)

for(j=0;j<count;j++)

printf("\n%d->%d:",i,j);

scanf("%d",&cost_matrix[i][j]);

if(cost_matrix[i][j]<0)

cost_matrix[i][j]=1000;

printf("\n Enter the source router: ");

scanf("%d",&src_router);

for(v=0;v<count;v++)

flag[v]=0;

last[v]=src_router;

dist[v]=cost_matrix[src_router][v];
}

flag[src_router]=1;

for(i=0;i<count;i++)

min=1000;

for(w=0;w<count;w++)

if(!flag[w])

if(dist[w]<min)

v=w;

min=dist[w];

flag[v]=1;

for(w=0;w<count;w++)

if(!flag[w])

if(min+cost_matrix[v][w]<dist[w])

dist[w]=min+cost_matrix[v][w];

last[w]=v;

for(i=0;i<count;i++)

printf("\n%d==>%d:Path taken:%d",src_router,i,i);

w=i;
while(w!=src_router)

printf("\n<--%d",last[w]);w=last[w];

printf("\n Shortest path cost:%d",dist[i]);

Output:-
Implement Distance Vector Routing Protocol:-
Alogirthm:-
Distance-vector (DV) algorithm is iterative, asynchronous, and
distributed.
It is distributed in that each node receives some information from one or
more of its directly attached neighbours, performs a calculation, and
then distributes the results of its calculation back to its neighbours.
It is iterative. so, process continues on until no more information is
exchanged between neighbours.
• The algorithm is asynchronous. It does not require all of the nodes to
operate with each other.
■ Let dx(y) be the cost of the least-cost path from node x to node y.
• Then least costs are related by the celebrated Bellman-Ford equation:

dx(y) = cost of least-cost path from x to y then

dx(y) = minv(c(x,v) + dv(y) }


CODE:-

#include<stdio.h>
struct node
{
unsigned dist[20];
unsigned from[20];
}rt[10];
int main()
{
int costmat[20][20]; int nodes,i,j,k,count=0;
printf("\nEnter the number of nodes : "); scanf("%d",&nodes);//Enter the
nodes printf("\nEnter the cost matrix :\n"); for(i=0;i<nodes;i++)
{
for(j=0;j<nodes;j++)
{
scanf("%d",&costmat[i][j]); costmat[i][i]=0;
rt[i].dist[j]=costmat[i][j];//initialise the distance equal to cost matrix
rt[i].from[j]=j;
}
}
do
{
count=0;
for(i=0;i<nodes;i++)//We choose arbitary vertex k and we calculate the
direct distance from the node i to k using the cost matrix
//and add the distance from k to node j for(j=0;j<nodes;j++)
for(k=0;k<nodes;k++)
if(rt[i].dist[j]>costmat[i][k]+rt[k].dist[j])
{//We calculate the minimum distance
rt[i].dist[j]=rt[i].dist[k]+rt[k].dist[j]; rt[i].from[j]=k;
count++;
}
}while(count!=0); for(i=0;i<nodes;i++)
{
printf("\n\n For router %d\n",i+1); for(j=0;j<nodes;j++)
{
printf("\t\nnode %d via %d Distance %d
",j+1,rt[i].from[j]+1,rt[i].dist[j]);
}
}
printf("\n\n"); getch();
}
Output:-

You might also like