You are on page 1of 1

#include<stdio.h> #include<string.

h> CRC
int main() { int a[20],b[30],i,j,k,count,n; data link layer
#include<stdio.h> int gen[4],genl,frl,rem[4]; #include<stdio.h> #include<conio.h> void main()
printf("Enter Frame length :"); scanf("%d",&n); void main() { int i,j,fr[8],dupfr[11],recfr[11],tlen,flag;
{ char sender[50],receiver[50]; int i,winsize;
printf("Enter input frame (0's &1's only): "); frl=8; genl=4; printf("Enter frame:"); for(i=0;i<frl;i++)
{ scanf("%d",&fr[i]); dupfr[i]=fr[i]; } printf("\n ENTER THE WINDOWS SIZE : ");
for(i=0;i<n;i++) scanf("%d",&a[i]); i=0; scanf("%d",&winsize); printf("\n SENDER
printf("Enter generator:"); for(i=0;i<genl;i++)
count=1; j=0; while(i<n) { if(a[i]==1) { scanf("%d",&gen[i]); tlen=frl+genl-1; for(i=frl;i<tlen;i++) { WINDOW IS EXPANDED TO STORE MESSAGE \n");
b[j]=a[i]; for(k=i+1;a[k]==1 && k<n && dupfr[i]=0; } remainder(dupfr); for(i=0;i<frl;i++) { recfr[i]=fr[i]; printf("\n ENTER THE DATA TO BE SENT: ");
count<5;k++) { j++; b[j]=a[k]; count++; } for(i=frl,j=1; j<genl;i++,j++) { recfr[i]=rem[j]; } fflush(stdin); gets(sender); for(i=0;i<winsize;i++)
remainder(recfr); flag=0; for(i=0;i<4;i++) { if(rem[i]!=0) flag++; receiver[i]=sender[i]; receiver[i]=NULL;
{ }{} i=k; j++; b[j]=0; } i++; j++; b[j]=a[i];
} if(flag==0) { printf("frame received correctly"); } printf("\n MESSAGE SEND BY THE SENDER:\n");
count=1; } printf("After stuffing the frame is:"); else { printf("the received frame is wrong"); } } puts(sender); printf("\n WINDOW SIZE OF RECEIVER
printf("01111110"); printf("%d",b[i]); remainder(int fr[]) { int k,k1,i,j; for(k=0;k<frl;k++) IS EXPANDED\n"); printf("\n ACKNOWLEDGEMENT
printf("01111110"); return 0; }} { if(fr[k]==1) { k1=k; for(i=0,j=k;i<genl;i++,j++) FROM RECEIVER \n"); for(i=0;i<winsize;i++);
{ rem[i]=fr[j]^gen[i]; } for(i=0;i<genl;i++) { printf("\n ACK:%d",i); printf("\n MESSAGE RECEIVED
fr[k1]=rem[i]; k1++; } } } } BY RECEIVER IS : "); puts(receiver);
//PROGRAM FOR CHARACTER STUFFING.
printf("\n WINDOW SIZE OF RECEIVER IS SHRINKED \n");
#include<stdio.h> #include<string.h>int main()
getch(); }
{ int i=0,j=0,n,pos; char a[20],b[50],ch;
printf("enter string\n"); //enter the character
scanf("%s",&a); n=strlen(a); b[0]='d'; b[2]='e';
b[3]='s'; b[4]='t'; b[5]='x';j=6; while(i<n) { Dijsktra’s
if( a[i]=='d' && a[i+1]=='l' && a[i+2]=='e') { #include<stdio.h> #include<conio.h> void main()
b[j]='d'; b[j+1]='l'; b[j+2]='e'; j=j+3; } { int path[5][5], i, j, min, a[5][5], p, st=1,ed=5,stp,edp, encryption and data decryption
b[j]=a[i];i++; j++; } b[j]='d'; b[j+1]='l'; t[5],index; printf("enter the cost matrix\n"); #include <stdio.h> int main() { int i, x;
b[j+2]='e'; b[j+3]='e'; b[j+4]='t'; b[j+5]='x'; for(i=1;i<=5;i++) for(j=1;j<=5;j++) scanf("%d",&a[i][j]); char str[100]; printf("\nPlease enter a string:\t");
b[j+6]='\0'; printf("\nframe after stuffing:\n"); printf("enter the paths\n"); scanf("%d",&p); gets(str); printf("\nPlease choose following options:\n");
printf("%s",b); return 0; } printf("enter possible paths\n"); for(i=1;i<=p;i++) printf("1 = Encrypt the string.\n");
for(j=1;j<=5;j++) scanf("%d",&path[i][j]); for(i=1;i<=p;i++) printf("2 = Decrypt the string.\n");
{ t[i]=0; stp=st; for(j=1;j<=5;j++) { edp=path[i][j+1]; scanf("%d", &x); switch(x) { case 1:
t[i]=t[i]+a[stp][edp]; if(edp==ed) break; else stp=edp; for(i = 0; (i < 100 && str[i] != '\0'); i++)
} } min=t[st];index=st; for(i=1;i<=p;i++) { if(min>t[i]) str[i] = str[i] + 3; printf("\nEncrypted string: %s\n", str);
{ min=t[i]; index=i; } } printf("minimum cost %d",min); break; case 2: for(i = 0; (i < 100 && str[i] != '\0'); i++)
printf("\n minimum cost path "); for(i=1;i<=5;i++) { str[i] = str[i] - 3; printf("\nDecrypted string: %s\n", str);
printf("--> %d",path[index][i]); if(path[index][i]==ed) break; default: printf("\nError\n"); } return 0; }
break; } getch(); }

data link layer Dijsktra’s


#include<stdio.h> #include<string.h> #include<stdio.h> #include<conio.h> void main() #include<stdio.h> #include<conio.h> void main()
int main() { int a[20],b[30],i,j,k,count,n; { char sender[50],receiver[50]; int i,winsize; { int path[5][5], i, j, min, a[5][5], p, st=1,ed=5,stp,edp,
printf("Enter Frame length :"); scanf("%d",&n); printf("\n ENTER THE WINDOWS SIZE : "); t[5],index; printf("enter the cost matrix\n");
printf("Enter input frame (0's &1's only): "); scanf("%d",&winsize); printf("\n SENDER for(i=1;i<=5;i++) for(j=1;j<=5;j++) scanf("%d",&a[i][j]);
for(i=0;i<n;i++) scanf("%d",&a[i]); i=0; WINDOW IS EXPANDED TO STORE MESSAGE \n"); printf("enter the paths\n"); scanf("%d",&p);
count=1; j=0; while(i<n) { if(a[i]==1) { printf("\n ENTER THE DATA TO BE SENT: "); printf("enter possible paths\n"); for(i=1;i<=p;i++)
fflush(stdin); gets(sender); for(i=0;i<winsize;i++) for(j=1;j<=5;j++) scanf("%d",&path[i][j]); for(i=1;i<=p;i++)
b[j]=a[i]; for(k=i+1;a[k]==1 && k<n && { t[i]=0; stp=st; for(j=1;j<=5;j++) { edp=path[i][j+1];
receiver[i]=sender[i]; receiver[i]=NULL;
count<5;k++) { j++; b[j]=a[k]; count++; printf("\n MESSAGE SEND BY THE SENDER:\n"); t[i]=t[i]+a[stp][edp]; if(edp==ed) break; else stp=edp;
{ }{} i=k; j++; b[j]=0; } i++; j++; b[j]=a[i]; puts(sender); printf("\n WINDOW SIZE OF RECEIVER } } min=t[st];index=st; for(i=1;i<=p;i++) { if(min>t[i])
count=1; } printf("After stuffing the frame is:"); IS EXPANDED\n"); printf("\n ACKNOWLEDGEMENT { min=t[i]; index=i; } } printf("minimum cost %d",min);
FROM RECEIVER \n"); for(i=0;i<winsize;i++); printf("\n minimum cost path "); for(i=1;i<=5;i++) {
printf("01111110"); printf("%d",b[i]);
printf("\n ACK:%d",i); printf("\n MESSAGE RECEIVED printf("--> %d",path[index][i]); if(path[index][i]==ed)
printf("01111110"); return 0; }} break; } getch(); }
BY RECEIVER IS : "); puts(receiver);
printf("\n WINDOW SIZE OF RECEIVER IS SHRINKED \n");
//PROGRAM FOR CHARACTER STUFFING. getch(); }
#include<stdio.h> #include<string.h>int main()
{ int i=0,j=0,n,pos; char a[20],b[50],ch;
printf("enter string\n"); //enter the character CRC
scanf("%s",&a); n=strlen(a); b[0]='d'; b[2]='e'; encryption and data decryption #include<stdio.h> int gen[4],genl,frl,rem[4];
b[3]='s'; b[4]='t'; b[5]='x';j=6; while(i<n) { #include <stdio.h> int main() { int i, x; void main() { int i,j,fr[8],dupfr[11],recfr[11],tlen,flag;
if( a[i]=='d' && a[i+1]=='l' && a[i+2]=='e') { frl=8; genl=4; printf("Enter frame:"); for(i=0;i<frl;i++)
char str[100]; printf("\nPlease enter a string:\t");
b[j]='d'; b[j+1]='l'; b[j+2]='e'; j=j+3; } { scanf("%d",&fr[i]); dupfr[i]=fr[i]; }
gets(str); printf("\nPlease choose following options:\n");
b[j]=a[i];i++; j++; } b[j]='d'; b[j+1]='l'; printf("Enter generator:"); for(i=0;i<genl;i++)
printf("1 = Encrypt the string.\n");
scanf("%d",&gen[i]); tlen=frl+genl-1; for(i=frl;i<tlen;i++) {
b[j+2]='e'; b[j+3]='e'; b[j+4]='t'; b[j+5]='x'; printf("2 = Decrypt the string.\n");
scanf("%d", &x); switch(x) { case 1: dupfr[i]=0; } remainder(dupfr); for(i=0;i<frl;i++) { recfr[i]=fr[i];
b[j+6]='\0'; printf("\nframe after stuffing:\n");
for(i = 0; (i < 100 && str[i] != '\0'); i++) } for(i=frl,j=1; j<genl;i++,j++) { recfr[i]=rem[j]; }
printf("%s",b); return 0; }
str[i] = str[i] + 3; printf("\nEncrypted string: %s\n", str); remainder(recfr); flag=0; for(i=0;i<4;i++) { if(rem[i]!=0) flag++;
break; case 2: for(i = 0; (i < 100 && str[i] != '\0'); i++) } if(flag==0) { printf("frame received correctly"); }
str[i] = str[i] - 3; printf("\nDecrypted string: %s\n", str); else { printf("the received frame is wrong"); } }
break; default: printf("\nError\n"); } return 0; } remainder(int fr[]) { int k,k1,i,j; for(k=0;k<frl;k++)
{ if(fr[k]==1) { k1=k; for(i=0,j=k;i<genl;i++,j++)
{ rem[i]=fr[j]^gen[i]; } for(i=0;i<genl;i++) {
fr[k1]=rem[i]; k1++; } } } }

data link layer


#include<stdio.h> #include<string.h> Dijsktra’s
#include<stdio.h> #include<conio.h> void main()
int main() { int a[20],b[30],i,j,k,count,n; #include<stdio.h> #include<conio.h> void main()
{ char sender[50],receiver[50]; int i,winsize; { int path[5][5], i, j, min, a[5][5], p, st=1,ed=5,stp,edp,
printf("Enter Frame length :"); scanf("%d",&n); printf("\n ENTER THE WINDOWS SIZE : "); t[5],index; printf("enter the cost matrix\n");
printf("Enter input frame (0's &1's only): "); scanf("%d",&winsize); printf("\n SENDER for(i=1;i<=5;i++) for(j=1;j<=5;j++) scanf("%d",&a[i][j]);
for(i=0;i<n;i++) scanf("%d",&a[i]); i=0; WINDOW IS EXPANDED TO STORE MESSAGE \n"); printf("enter the paths\n"); scanf("%d",&p);
count=1; j=0; while(i<n) { if(a[i]==1) { printf("\n ENTER THE DATA TO BE SENT: "); printf("enter possible paths\n"); for(i=1;i<=p;i++)
fflush(stdin); gets(sender); for(i=0;i<winsize;i++) for(j=1;j<=5;j++) scanf("%d",&path[i][j]); for(i=1;i<=p;i++)
b[j]=a[i]; for(k=i+1;a[k]==1 && k<n &&
receiver[i]=sender[i]; receiver[i]=NULL; { t[i]=0; stp=st; for(j=1;j<=5;j++) { edp=path[i][j+1];
count<5;k++) { j++; b[j]=a[k]; count++; printf("\n MESSAGE SEND BY THE SENDER:\n"); t[i]=t[i]+a[stp][edp]; if(edp==ed) break; else stp=edp;
{ }{} i=k; j++; b[j]=0; } i++; j++; b[j]=a[i]; puts(sender); printf("\n WINDOW SIZE OF RECEIVER } } min=t[st];index=st; for(i=1;i<=p;i++) { if(min>t[i])
count=1; } printf("After stuffing the frame is:"); IS EXPANDED\n"); printf("\n ACKNOWLEDGEMENT { min=t[i]; index=i; } } printf("minimum cost %d",min);
printf("01111110"); printf("%d",b[i]); FROM RECEIVER \n"); for(i=0;i<winsize;i++); printf("\n minimum cost path "); for(i=1;i<=5;i++) {
printf("\n ACK:%d",i); printf("\n MESSAGE RECEIVED printf("--> %d",path[index][i]); if(path[index][i]==ed)
printf("01111110"); return 0; }} break; } getch(); }
BY RECEIVER IS : "); puts(receiver);
printf("\n WINDOW SIZE OF RECEIVER IS SHRINKED \n");
//PROGRAM FOR CHARACTER STUFFING. getch(); }
#include<stdio.h> #include<string.h>int main()
{ int i=0,j=0,n,pos; char a[20],b[50],ch;
printf("enter string\n"); //enter the character CRC
scanf("%s",&a); n=strlen(a); b[0]='d'; b[2]='e'; encryption and data decryption #include<stdio.h> int gen[4],genl,frl,rem[4];
b[3]='s'; b[4]='t'; b[5]='x';j=6; while(i<n) { #include <stdio.h> int main() { int i, x; void main() { int i,j,fr[8],dupfr[11],recfr[11],tlen,flag;
if( a[i]=='d' && a[i+1]=='l' && a[i+2]=='e') { char str[100]; printf("\nPlease enter a string:\t"); frl=8; genl=4; printf("Enter frame:"); for(i=0;i<frl;i++)
b[j]='d'; b[j+1]='l'; b[j+2]='e'; j=j+3; } gets(str); printf("\nPlease choose following options:\n"); { scanf("%d",&fr[i]); dupfr[i]=fr[i]; }
b[j]=a[i];i++; j++; } b[j]='d'; b[j+1]='l'; printf("1 = Encrypt the string.\n"); printf("Enter generator:"); for(i=0;i<genl;i++)
b[j+2]='e'; b[j+3]='e'; b[j+4]='t'; b[j+5]='x'; printf("2 = Decrypt the string.\n"); scanf("%d",&gen[i]); tlen=frl+genl-1; for(i=frl;i<tlen;i++) {
b[j+6]='\0'; printf("\nframe after stuffing:\n"); scanf("%d", &x); switch(x) { case 1: dupfr[i]=0; } remainder(dupfr); for(i=0;i<frl;i++) { recfr[i]=fr[i];
printf("%s",b); return 0; } for(i = 0; (i < 100 && str[i] != '\0'); i++) } for(i=frl,j=1; j<genl;i++,j++) { recfr[i]=rem[j]; }
str[i] = str[i] + 3; printf("\nEncrypted string: %s\n", str); remainder(recfr); flag=0; for(i=0;i<4;i++) { if(rem[i]!=0) flag++;
break; case 2: for(i = 0; (i < 100 && str[i] != '\0'); i++) } if(flag==0) { printf("frame received correctly"); }
str[i] = str[i] - 3; printf("\nDecrypted string: %s\n", str); else { printf("the received frame is wrong"); } }
break; default: printf("\nError\n"); } return 0; } remainder(int fr[]) { int k,k1,i,j; for(k=0;k<frl;k++)
{ if(fr[k]==1) { k1=k; for(i=0,j=k;i<genl;i++,j++)
{ rem[i]=fr[j]^gen[i]; } for(i=0;i<genl;i++) {
fr[k1]=rem[i]; k1++; } } } }

You might also like