CN - PART B
CN - PART B
i) bit stuffing
#include<stdio.h>
int main() {
int a[15];
int i, j, k, n, c = 0, pos = 0;
scanf("%d", &n);
scanf("%d", &a[i]);
if (a[i] == 1) {
c++;
if (c == 5) {
pos = i + 1;
c = 0;
k = j + 1;
a[k] = a[j];
a[pos] = 0;
n = n + 1;
} else {
c = 0;
printf("%d", a[i]);
return 0;
/*o/p:
*/
________________________________________
ii) Character stuffing:
#include<stdio.h>
#include<string.h>
void main()
int i=0,j=0,n,pos;
char a[20],b[50],ch;
scanf("%s",a);
printf("\nOrginal Data:%s",a);
n=strlen(a);
b[0]='d';
b[1]='l';
b[2]='e';
b[3]='s';
b[4]='t';
b[5]='x';
j=6;
while(i<n)
b[j]='d';
b[j+1]='l';
b[j+2]='e';
j=j+3;
b[j]=a[i];
i++;
j++;
b[j]='d';
b[j+1]='l';
b[j+2]='e';
b[j+3]='e';
b[j+4]='t';
b[j+5]='x';
b[j+6]='\0';
printf("Received Data:%s",a);
/*o/p:
Orginal Data:abcdefg
Received Data:abcdefg
*/
_____________________________________________________________________________________
______
2. Write a program for distance vector algorithm to find suitable path for
transmission.
#include <stdio.h>
struct node {
unsigned dist[20];
unsigned from[20];
} rt[10];
int main() {
scanf("%d", &n);
scanf("%d", &dmat[i][j]);
do {
count = 0;
printf("\n\n");
return 0;
/*o/p:
045
103
890
#include <stdio.h>
#define MAX_NODES 15
void min();
int main() {
scanf("%d", &n);
scanf("%d", &s);
scanf("%d", &nb);
scanf("%d", &nbs[i]);
scanf("%d", &snbs[i]);
printf("\n");
min();
return 0;
void min() {
printf("\n\t\t\tNew Route");
printf("\n\t\t\tTime Delay");
printf("\n");
sum = 0;
k = 1;
temp[k++] = delay[j][i];
store = y;
}
if (s == i) {
} else {
/*o/p:
New Route
Time Delay
4+ 10 = 14 1
8+ 10 = 18 1
12 + 10 = 22 1
*/
_____________________________________________________________________________________
________________
4. For the given data, use CRC-CCITT polynomial to obtain CRC code. Verify the
program for the cases
a. Without error
b. With error
#include<stdio.h>
#include<string.h>
#define N strlen(g)
char t[28],cs[28],g[]="10001000000100001";
int a,i,j;
void xor()
void crc()
for(i=0;i<N;i++)
cs[i]=t[i];
do
if(cs[0]=='1')
xor();
for(j=0;j<N-1;j++)
cs[j]=cs[j+1];
cs[j]=t[i++];
}
while(i<=a+N-1);
int main()
scanf("%s",t);
a=strlen(t);
for(i=a;i<a+N-1;i++)
t[i]='0';
crc();
printf("\nChecksum is : %s",cs);
for(i=a;i<a+N-1;i++) t[i]=cs[i-a];
scanf("%s",t);
crc();
if(i<N-1)
printf("\nError detected\n\n");
else
return 0;
}
/*op:
Checksum is : 1000101101011000
Error detected
Checksum is : 1000101101011000
No error detected*/
_____________________________________________________________________________________
_____________________
#include <stdio.h>
#include <stdlib.h>
int main() {
int i, f, frames[50];
printf("\nEnter number of frames to transmit: ");
scanf("%d", &f);
scanf("%d", &frames[i]);
if ((rand() % 2) == 1) {
printf("%d\n", frames[i]);
else {
sleep(3);
sleep(1);
return 0;
/*Output:
4
Acknowledgement of above frames sent is received by sender
*/
______________________________________
#include <stdio.h>
int main() {
int w, i, f, frames[50];
scanf("%d", &w);
scanf("%d", &f);
if (i % w == 0) {
printf("%d\n", frames[i]);
else {
printf("%d\n", frames[i]);
if (f % w != 0)
return 0;
/*Output:
12
20
87
65
_____________________________________________________________________________________
6. Write a program for congestion control using leaky bucket algorithm.
#include <stdio.h>
#include <stdlib.h>
int bucket_size;
else {
sleep(1);
pkt_sz -= op_rt;
sleep(1);
if (pkt_sz > 0) {
int main() {
scanf("%d", &bucket_size);
scanf("%d", &op_rate);
bucket_input(packet_size, op_rate);
return 0;
/*Ouput:
80 bytes outputted
80 bytes outputted
80 bytes outputted
80 bytes outputted
Bucket Overflow
Bucket Overflow
Bucket Overflow
Bucket Overflow
*/
-----------------------------------x-----------------------------x------------------------------x-----------------------------