Program 1: Write A Program in C/C++ For Error Detecting Code Using CRC-CCITT (16-Bits)
Program 1: Write A Program in C/C++ For Error Detecting Code Using CRC-CCITT (16-Bits)
CRC-CCITT(16-bits).
#include<stdio.h>
char m[50],g[50],r[50],q[50],temp[50];
void calrem()
{ int i,j;
for(i=1;i<=16;i++)
r[i-1]=((int)temp[i]-48)^((int)g[i]-48)+48;
}
void shiftl()
{ int i;
for(i=1;i<=16;i++) r[i-1]=r[i];
}
void crc(int n)
{
int i,j;
for(i=0;i<n;i++) temp[i]=m[i];
for(i=0;i<n;i++) r[i]=m[i];
for(i=0;i<n-16;i++)
{
if(r[0] == '1')
{
q[i]='1';
calrem();
}
else
{
q[i]='0';
shiftl();
}
r[16]=m[17+i];
r[17]='\0';
for(j=0;j<=17;j++)
temp[j]=r[j];
}
q[n-16]='\0';
}
void caltrans(int n)
{
int i,k=0;
for(i=n-16;i<n;i++)
m[i]=((int)m[i]-48)^((int)r[k++]-48)+48;
m[i]='\0';
}
int main()
{
int n,i=0;
char ch,flag=0;
printf("Enter the frame bits:");
while((ch=getc(stdin))!='\n')
m[i++]=ch;
n=i;
for(i=0;i<16;i++)
m[n++]='0';
m[n]='\0';
printf("\n Message after appending 16 zeros:%s",m);
for(i=0;i<=16;i++)
g[i]='0';
g[0]=g[4]=g[11]=g[16]='1';g[17]='\0';
printf("\n Generator :%s\n",g);
crc(n);
printf("\n\n Quotient:%s",q);
printf("\n The final remainder is:%s",r);
caltrans(n);
printf("\n Transmitted frame:%s",m);
printf("\n\n Enter transmitted frame which contains %d bits:",n);
scanf("\n %s",m);
printf("CC checking\n");
crc(n);
printf("\n Remainder is:%s",r);
for(i=0;i<16;i++)
{
if(r[i] == '0')
{
flag = 0;
continue;
}
else
{
flag = 1;
break;
}
}
if (flag == 1)
printf("\n\n Error during transmission\n");
else
printf("\n\n Received frame is correct\n");
}
#include<stdio.h>
struct node
unsigned dist[20];
unsigned from[20];
}rt[10];
int main()
int dmat[20][20];
int n,i,j,k,count=0;
scanf("%d",&n);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
scanf("%d",&dmat[i][j]);
dmat[i][i]=0;
rt[i].dist[j]=dmat[i][j];
rt[i].from[j]=j;
do
count=0;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
for(k=0;k<n;k++)
if(rt[i].dist[j]>dmat[i][k]+rt[k].dist[j])
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<n;i++)
for(j=0;j<n;j++)
printf("\n\n");
return 0;
#include<math.h>
#include<string.h>
long int k = 1;
k = k *b;
k = k % m;
return k;
int main()
int alpha;
scanf("%ld",&p);
scanf("%ld",&alpha);
n=p;
if(n%i == 0)
exit(0);
scanf("%ld",&xa);
ya=compute(alpha,xa,p);
scanf("%ld", &xb);
yb=compute(alpha,xb,p);
key1=compute(ya,xb,p);
printf("\n Shared secret key1 is %ld",key1);
key2=compute(yb,xa,p);
if (key1==key2)
else
return 1;
Program 4 :RSA
#include<stdio.h>
#include<string.h>
#include<math.h>
int j;
for(j=1;j<=y;j++)
k=(k*x)%n;
return(unsigned int) k;
int main()
char msg[100],pt[100];
scanf("%s",msg);
strcpy(pt,msg);
for(i=0;i<strlen(msg);i++)
pt[i]=msg[i];
n=253;d=17;e=13;
printf("CT=");
for(i=0;i<strlen(msg);i++)
ct[i]=mult(pt[i],e,n);
for(i=0;i<strlen(msg);i++)
printf("%d",ct[i]);
printf("\nPT=");
for(i=0;i<strlen(msg);i++)
printf("%c",pt[i]);
for(i=0;i<strlen(msg);i++)
pt[i]=mult(ct[i],d,n);
return 0;
Program 5: Write a program in C/C++ for congestion control using leaky bucket
algorithm.
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<unistd.h>
int main()
{
int
packets[8],i,j,clk,b_size,o_rate,i_rate,p_remain,p_sz_rm=0,p_sz,p_time,flag=0;
system("clear");
for(i=0;i<5;++i)
packets[i]=rand()%10;
scanf("%d",&o_rate);
scanf("%d",&b_size);
for(i=0;i<5;++i)
if((packets[i]+p_sz_rm)>b_size)
if(packets[i]>b_size)
else
}
else
{ p_remain=4-i;
p_sz=packets[i];
p_sz_rm+=p_sz;
printf("\n_________________________\n");
p_time=rand()%10;
sleep(1);
printf(" - Transmitted!!");
if(p_sz_rm<=o_rate)
p_sz_rm=0;
else
p_sz_rm-=o_rate;
if(p_time-clk>0)
return(0);