RR University Networking Practical Notes
RR University Networking Practical Notes
Program:
#include<stdio.h>
#include<conio.h>
void main()
{
int n[8],i,p=1,c=0;
clrscr();
printf("Enter 7bit Binary No: \n");
for(i=1;i<8;i++)
{
m: scanf("%d",&n[i]);
if((n[i]!=0)&&(n[i]!=1))
{
printf("enter 0 or 1 only\n");
goto m;
}
}
for(i=p;i<8;i++)
{
if(n[i]==1)
{
c++;
}
}
printf("\nThe No :-");
for(i=p;i<8;i++)
printf(" %d",n[i]);
if(c%2==0)
{
printf(" is even parity\n");
n[0]=0;
for(i=0;i<8;i++)
printf("%d ",n[i]);
}
else
{
printf(" is odd parity\n");
n[0]=1;
for(i=0;i<8;i++)
printf("%d ",n[i]);
}
getch();
}
Output:
CheckSum Generator
Program:
#include<stdio.h>
#include<conio.h>
#include<math.h>
for(i=0;i<k;i++)
sum+=b[i];
printf("SUM IS: %d",sum);
checksum=~sum;
printf("\nSENDER's CHECKSUM IS:%d",checksum);
return checksum;
}
Hamming Code
Program:
#include<stdio.h>
#include<conio.h>
void main() {
int data[10];
int dataatrec[10],c,c1,c2,c3,i;
clrscr();
printf("Enter 4 bits of data one by one\n");
scanf("%d",&data[0]);
scanf("%d",&data[1]);
scanf("%d",&data[2]);
scanf("%d",&data[4]);
c1=dataatrec[6]^dataatrec[4]^dataatrec[2]^dataatrec[0];
c2=dataatrec[5]^dataatrec[4]^dataatrec[1]^dataatrec[0];
c3=dataatrec[3]^dataatrec[2]^dataatrec[1]^dataatrec[0];
c=c3*4+c2*2+c1 ;
if(c==0) {
printf("\nNo error while transmission of data\n");
}
else {
printf("\nError on position %d",c);
Output:
CRC
Program:
#include <stdio.h>
#include <conio.h>
#include <string.h>
void main() {
int i,j,keylen,msglen;
char input[100], key[30],temp[30],quot[100],rem[30],key1[30];
clrscr();
printf("Enter Data: ");
gets(input);
printf("Enter Key: ");
gets(key);
keylen=strlen(key);
msglen=strlen(input);
strcpy(key1,key);
for (i=0;i<keylen-1;i++) {
input[msglen+i]='0';
}
for (i=0;i<keylen;i++)
temp[i]=input[i];
for (i=0;i<msglen;i++) {
quot[i]=temp[0];
if(quot[i]=='0')
for (j=0;j<keylen;j++)
key[j]='0'; else
for (j=0;j<keylen;j++)
key[j]=key1[j];
for (j=keylen-1;j>0;j--) {
if(temp[j]==key[j])
rem[j-1]='0'; else
rem[j-1]='1';
}
rem[keylen-1]=input[i+keylen];
strcpy(temp,rem);
}
strcpy(rem,temp);
printf("\nQuotient is ");
for (i=0;i<msglen;i++)
printf("%c",quot[i]);
printf("\nRemainder is ");
for (i=0;i<keylen-1;i++)
printf("%c",rem[i]);
printf("\nFinal data is: ");
for (i=0;i<msglen;i++)
printf("%c",input[i]);
for (i=0;i<keylen-1;i++)
printf("%c",rem[i]);
getch();
}
Output:
Stop and wait
Program:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
void main()
{
int i,j,noframes,x,x1=10,x2;
clrscr();
for(i=0;i<200;i++)
rand();
noframes=rand()/200;
i=1;j=1;
noframes=noframes/8;
printf("\nNumber of frames is %d",noframes);
getch();
while(noframes>0)
{
printf("\nSending Frame %d",i);
srand(x1++);
x=rand()%10;
if(x%2==0)
{
for(x2=1;x2<2;x2++)
{
printf("\nWaiting for %d seconds\n",x2);
sleep(x2);
}
printf("\nSending frame %d",i);
srand(x1++);
x=rand()%10;
}
printf("\nAck for frame %d",j);
noframes-=1;
i++;
j++;
}
printf("\nEnd of Stop and Wait protocol");
getch();
}
Output:
Distance Vector
Program:
#include<stdio.h>
#include<conio.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();
return 0;
}
Output:
Go Back N
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
void main()
{
int temp1,temp2,temp3,temp4,i,winsize=8,noframes,moreframes;
char c;
int receiver(int);
int simulate(int);
clrscr();
temp4=0, temp1=0,temp2=0, temp3=0;
for(i=0;i<200;i++)
rand();
noframes=rand()/200;
printf("\n Number of frames is %d",noframes);
getch();
moreframes=noframes;
while(moreframes>=0)
{
temp1=simulate(winsize);
winsize-=temp1;
temp4+=temp1;
if(temp4>noframes)
temp4=noframes;
for(i=temp3+1;i<=temp4;i++)
printf("\nSending Frame %d",i);
getch();
temp2=receiver(temp1);
temp3+=temp2;
if(temp3>noframes)
temp3=noframes;
printf("\nAcknowledgement for the frames up to %d",temp3);
getch();
moreframes-=temp2;
temp4=temp3;
if(winsize<=0)
winsize=8;
}
printf("\nEnd of sliding window protocol.");
getch();
}
int receiver(int temp1)
{
int i;
for(i=1;i<100;i++)
rand();
i=rand()%temp1;
return i;
}
int simulate(int winsize)
{
int temp1,i;
for(i=1;i<50;i++)
temp1=rand();
if(temp1==0)
temp1=simulate(winsize);
i=temp1%winsize;
if(i==0)
return winsize;
else
return temp1%winsize;
}
Output:
Selective Repeat
Program:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
void main()
{
int temp1,temp2,temp3,temp4,temp5,i,winsize=8,noframes,moreframes;
char c;
int receiver(int);
int simulate(int);
int nack(int);
clrscr();
temp4=0, temp1=0,temp2=0, temp3=0, temp5=0;
for(i=0;i<200;i++)
rand();
noframes=rand()/200;
printf("\n Number of frames is %d",noframes);
getch();
moreframes=noframes;
while(moreframes>=0)
{
temp1=simulate(winsize);
winsize-=temp1;
temp4+=temp1;
if(temp4>noframes)
temp4=noframes;
for(i=noframes-moreframes;i<=temp4;i++)
printf("\nSending Frame %d",i);
getch();
temp2=receiver(temp1);
temp3+=temp2;
if(temp3>noframes)
temp3=noframes;
temp2=nack(temp1);
temp5+=temp2;
if(temp5!=0)
{
printf("\nNo acknowledgement for the frame %d",temp5);
getch();
for(i=1;i<temp5;i++);
printf("\nRetransmitting frame %d",temp5);
getch();
}
moreframes-=temp1;
if(winsize<=0)
winsize=8;
}
printf("\nEnd of sliding window protocol.");
getch();
}
int receiver(int temp1)
{
int i;
for(i=1;i<100;i++)
rand();
i=rand()%temp1;
return i;
}
int nack(int temp1)
{
int i;
for(i=1;i<100;i++)
rand();
i=rand()%temp1;
return i;
}
int simulate(int winsize)
{
int temp1,i;
for(i=1;i<50;i++)
temp1=rand();
if(temp1==0)
temp1=simulate(winsize);
i=temp1%winsize;
if(i==0)
return winsize;
else
return temp1%winsize;
}
Output: