Home
Se complete record
O.S notes
DBMS complete notes
Java all programs
Price per kg calc
computer networks cn lab
CN lab programs
By
Ashish Singh
November 28, 2022
Cn manual 👇👇
All programs are well executed if any error comes comment below..
PROGRAMS:
1. bit-stuffing
#include
#include
int main() { int i,k,a,count=0; char c[50]; printf("Enter the data to be send:"); fflush(stdin); // gets(c); scanf("%s",c); a=strlen(c); for(i=0;i
i+1;k--) c[k]=c[k-1]; a=a+1; count=0; c[i+1]='0'; } } else count=0; } printf("Data after stuffing:"); puts(c); count=0; for(i=0;i
Copy It
2. (character-stuffing)
//(character-stuffing) #include
#include
int main() { char a[50],b[50],c[50]; int i,j,k,m=0,count,l1,l2; printf("Enter the data to send:"); fflush(stdin); gets(a); printf("Enter the delimeter:"); fflush(stdin); gets(b); l1=strlen(a); l2=strlen(b); c[0]='S'; for(i=0;i
m;k--) a[k]=a[k-l2]; for(k=0;k
Copy It
3. Cyclic Redundancy Check(CRC)
//Cyclic Redundancy Check(CRC). #include
#include
int main() { int i,j,k=0; int flag=1,a[16],g[16],r[20],div[16],n,m; system("clear"); printf("Enter degree of generator:"); scanf("%d",&n); printf("\n Enter the generator:\n"); for(i=0;i<=n;i++) scanf("%d",&g[i]); printf("\nEnter the degree of the frame:"); scanf("%d",&m); printf("Enter the frame:\n"); for(i=0;i<=m;i++) scanf("%d",&a[i]); if(m
n) { for(j=0;j
n) { for(j=0;j
Copy It
4. sliding window protocol, and loss recovery using the Go-Back-N mechanism.
#include
int main() { int w,i,f,frames[50]; printf("Enter window size: "); scanf("%d",&w); printf("\nEnter number of frames to transmit: "); scanf("%d",&f); printf("\nEnter %d frames: ",f); for(i=1;i<=f;i++) scanf("%d",&frames[i]); printf("\nWith sliding window protocol the frames will be sent in the following manner (assuming no corruption of frames)\n\n"); printf("After sending %d frames at each stage sender waits for acknowledgement sent by the receiver\n\n",w); for(i=1;i<=f;i++) { if(i%w==0) { printf("%d\n",frames[i]); printf("Acknowledgement of above frames sent is received by sender\n\n"); } else printf("%d ",frames[i]); } if(f%w!=0) printf("\nAcknowledgement of above frames sent is received by sender\n"); return 0; } /*output Enter window size: 3 Enter number of frames to transmit: 5 Enter 5 frames: 12 5 89 4 6 With sliding window protocol the frames will be sent in the following manner (assuming no corruption of frames) After sending 3 frames at each stage sender waits for acknowledgement sent by the receiver 12 5 89 Acknowledgement of above frames sent is received by sender 4 6 Acknowledgement of above frames sent is received by sender */
Copy It
5. Dijikstra’s Algorithm
//dijikstra’s Algorithm #include
#include
#define M_NODES 10 #define INFINITY 1000 int n,dis[M_NODES][M_NODES]; int main() { void spath(int,int); int i,j,g[100][100],s,t,c; printf("\nEnter number of nodes:"); scanf("%d",&n); for(i=0;i
%d\t",i,j); scanf("%d",&c); if(c>=0) dis[i][j]=c; else exit(0); } } printf("\nEnter source and destination nodes:"); scanf("%d%d",&t,&s); spath(s,t); //getch(); return 0; } void spath(int s,int t) { struct state { int pre,len; enum{permanet,tentative} label; }state[M_NODES]; int i,k,min,path[20],c=0; struct state *p; for(p=&state[0];p<&state[n];p++) { p->pre=-1; p->len=INFINITY; p->label=tentative; } state[t].len=0; state[t].label=permanet; k=t; do { for(i=0;i
=0); printf("\nMinimum Cost is=%d",min); printf("\nShortest path is="); for(k=c-1;k>=0;k--) printf("%d-->",path[k]); } /*output r weight between 0-->3 2 Enter weight between 1-->1 0 Enter weight between 1-->2 3 Enter weight between 1-->3 4 Enter weight between 2-->2 0 Enter weight between 2-->3 4 Enter weight between 3-->3 0 Enter source and destination nodes:0 3 Minimum Cost is=2 Shortest path is=0-->3--> */
Copy It
6. Implement broadcast tree for a given subnet of hosts
//Implement broadcast tree for a given subnet of hosts #include
int p,q,u,v,n; int min=99,mincost=0; int t[50][2],i,j; int parent[50],edge[50][50]; int main() { printf("Enter the number of nodes: "); scanf("%d",&n); printf(" "); for(i=0;i
edge[i][j]) { min=edge[i][j]; u=i; v=j; } p=find(u); q=find(v); if(p!=q) { t[i][0]=u; t[i][1]=v; mincost=mincost+edge[u][v]; sunion(p,q); } else { t[i][0]=-1; t[i][1]=-1; } min=99; } printf("Minimum cost is %d\nMinimum spanning tree is\n" ,mincost); for(i=0;i
0) l=parent[l]; return l; } /*output Enter the number of nodes: 4 A B C D A 1 3 5 6 B 6 7 8 9 C 2 3 5 6 D 1 2 3 7 Minimum cost is 9 Minimum spanning tree is B A 6 C A 2 D A 1 */
Copy It
7. Take an example subnet graph with weights indicating delay between nodes. Now obtain routing table at each node using vector routing algorithm.
/*Take an example subnet graph with weights indicating delay between nodes. Now obtain routing table at each node using vector routing algorithm.*/ #include
#include
#define MN 100 #define INFINITY 500 char graph[30][30]; struct st { int a[20][20]; }st[20]; int n; int main() { int i,j; void disk(int,int); //clrscr(); printf("Enter the number of nodes:"); scanf("%d",&n); for(i=0;i
%d: ",i,j); scanf("%d",&graph[i][j]); graph[j][i]=graph[i][j]; } } for(i=0;i
predecessor=-1; p->length=INFINITY; p->label=tentative; } state[t].length=0; state[t].label=permanent; k=t; do { for(i=0;i
=0); st[t].a[s][t]=path[i-2]; st[t].a[s][t+1]=state[s].length; } /*output Enter the number of nodes:2 Enter distance between 0 -->0: 3 Enter distance between 0 -->1: 3 Enter distance between 1 -->1: 5 Routing table for node 0: 1 | 1 | 3 Routing table for node 1: 0 | 0 | 3 */
Copy It
8. Take a 64 bit plain text and encrypt the same using DES algorithm. OR Decrypting DES.
/* Take a 64 bit plain text and encrypt the same using DES algorithm. */ #include
#include
#include
int main() { int i, ch, lp; char cipher[50],plain[50]; char key[50]; while(1) { printf("\n-----MENU------\n"); printf("\n1:Data Encryption\t\n\n2:Data Decryption\t\n\n3:Exit"); printf("\n\nEnter your choice:"); scanf("%d",&ch); switch(ch) { case 1: printf("\nData Encryption"); printf("\nEnter the plain text:"); fflush(stdin); scanf("%s",&plain); printf("\nEnter the encryption key:"); scanf("%s",&key); lp=strlen(key); for(i=0;plain[i]!='\0';i++) cipher[i]=plain[i]^lp; cipher[i]='\0'; printf("\nThe encrypted text is:"); puts(cipher); break; case 2: printf("\nData decryption"); for(i=0;cipher[i]!='\0';i++) plain[i]=cipher[i]^lp; printf("\nDecrypted text is:"); puts(plain); break; case 3: exit(0); } } return 0; } /*output -----MENU------ 1:Data Encryption 2:Data Decryption 3:Exit Enter your choice:1 Data Encryption Enter the plain text:cmrec Enter the encryption key:21345 The encrypted text is:fhw`f -----MENU------ 1:Data Encryption 2:Data Decryption 3:Exit Enter your choice:2 Data decryption Decrypted text is:cmrec -----MENU------ 1:Data Encryption 2:Data Decryption 3:Exit Enter your choice:3 */
Copy It
9. Leaky bucket algorithm
//Leaky bucket algorithm #include
#include
#include
#define NOF_PACKETS 10 int rrand(int a) { int rn = (random() % 10) % a; return rn == 0 ? 1 :rn; } int main() { int packet_sz[NOF_PACKETS], i, clk, b_size, o_rate, p_sz_rm=0, p_sz, p_time, op; for(i = 0; i
b_size) if(packet_sz[i] >b_size)/*compare the packet siz with bucket size*/ printf("\n\nIncoming packet size (%dbytes) is Greater than bucket capacity (%dbytes)-PACKET REJECTED", packet_sz[i], b_size); else printf("\n\nBucket capacity exceeded-PACKETS REJECTED!!"); else { p_sz_rm += packet_sz[i]; printf("\n\nIncoming Packet size: %d", packet_sz[i]); printf("\nBytes remaining to Transmit: %d", p_sz_rm); p_time = rrand(4) * 10; printf("\nTime left for transmission: %d units", p_time); for(clk = 10; clk<= p_time; clk += 10) { sleep(1); if(p_sz_rm) { if(p_sz_rm<= o_rate)/*packet size remaining comparing with output rate*/ op = p_sz_rm, p_sz_rm = 0; else op = o_rate, p_sz_rm -= o_rate; printf("\nPacket of size %d Transmitted", op); printf("----Bytes Remaining to Transmit: %d", p_sz_rm); } else { printf("\nTime left for transmission: %d units", p_time-clk); printf("\nNo packets to transmit!!"); } } } } } /*output packet[0]:30 bytes packet[1]:10 bytes packet[2]:10 bytes packet[3]:50 bytes packet[4]:30 bytes packet[5]:50 bytes packet[6]:10 bytes packet[7]:20 bytes packet[8]:30 bytes packet[9]:10 bytes Enter the Output rate:10 Enter the Bucket Size:15 Incoming packet size (30bytes) is Greater than bucket capacity (15bytes)-PACKET REJECTED Incoming Packet size: 10 Bytes remaining to Transmit: 10 Time left for transmission: 20 units Packet of size 10 Transmitted----Bytes Remaining to Transmit: 0 Time left for transmission: 0 units No packets to transmit!! Incoming Packet size: 10 Bytes remaining to Transmit: 10 Time left for transmission: 30 units Packet of size 10 Transmitted----Bytes Remaining to Transmit: 0 Time left for transmission: 10 units No packets to transmit!! Time left for transmission: 0 units No packets to transmit!! Incoming packet size (50bytes) is Greater than bucket capacity (15bytes)-PACKET REJECTED Incoming packet size (30bytes) is Greater than bucket capacity (15bytes)-PACKET REJECTED Incoming packet size (50bytes) is Greater than bucket capacity (15bytes)-PACKET REJECTED Incoming Packet size: 10 Bytes remaining to Transmit: 10 Time left for transmission: 10 units Packet of size 10 Transmitted----Bytes Remaining to Transmit: 0 Incoming packet size (20bytes) is Greater than bucket capacity (15bytes)-PACKET REJECTED Incoming packet size (30bytes) is Greater than bucket capacity (15bytes)-PACKET REJECTED Incoming Packet size: 10 Bytes remaining to Transmit: 10 Time left for transmission: 10 units Packet of size 10 Transmitted----Bytes Remaining to Transmit: 0 */
Copy It
10. Write a program for frame sorting technique used in buffers.
#include
#include
#include
#include
#include
#define FSize 3 typedef struct packet { int SeqNum; char Data[FSize+1]; }packet; struct packet *readdata, *transdata; int divide(char *msg) { int msglen, NoOfPacket, i, j; msglen = strlen(msg); NoOfPacket = msglen/FSize; if ((msglen%FSize)!=0) NoOfPacket++; readdata = (struct packet *)malloc(sizeof(packet) * NoOfPacket); for(i = 0; i
transdata[j + 1].SeqNum) { temp.SeqNum = transdata[j].SeqNum; strcpy(temp.Data, transdata[j].Data); transdata[j].SeqNum = transdata[j + 1].SeqNum; strcpy(transdata[j].Data, transdata[j + 1].Data); transdata[j + 1].SeqNum = temp.SeqNum; strcpy(transdata[j + 1].Data, temp.Data); } } void receive(int NoOfPacket) { int i; printf("\nPackets received in the following order\n"); for (i = 0; i
Copy It
0 Comments
Follow Us
Powered by Blogger
0 Comments