0% found this document useful (0 votes)
18 views1 page

CN

The document discusses several topics related to data communication and networks: 1. It includes code snippets for character stuffing, cyclic redundancy check (CRC), and implementing the sliding window protocol for reliable data transfer. 2. The CRC code calculates checksum bits for error detection on transmitted frames. 3. The sliding window code expands and shrinks sender/receiver windows and uses acknowledgments for reliable data transfer. 4. Dijkstra's algorithm code finds the shortest path between nodes in a graph and was applied to routing.

Uploaded by

SATYAM JHA
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)
18 views1 page

CN

The document discusses several topics related to data communication and networks: 1. It includes code snippets for character stuffing, cyclic redundancy check (CRC), and implementing the sliding window protocol for reliable data transfer. 2. The CRC code calculates checksum bits for error detection on transmitted frames. 3. The sliding window code expands and shrinks sender/receiver windows and uses acknowledgments for reliable data transfer. 4. Dijkstra's algorithm code finds the shortest path between nodes in a graph and was applied to routing.

Uploaded by

SATYAM JHA
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/ 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