0% found this document useful (0 votes)
10 views

cn internals

Uploaded by

217y1a05e9
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
10 views

cn internals

Uploaded by

217y1a05e9
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 13

Week-1

BIT Stuffing program


#include <stdio.h>
void main() {
int a[20], b[30], n, j = 0, count = 0;
printf("Enter frame length: ");
scanf("%d", &n);
printf("Enter input frame (0's & 1's only): ");
for (int i = 0; i < n; i++)
scanf("%d", &a[i]);
for (int i = 0; i < n; i++) {
b[j++] = a[i];
if (a[i] == 1) {
count++;
if (count == 5) {
b[j++] = 0;
count = 0;
}
} else {
count = 0;
}
}
printf("After stuffing the frame is: ");
for (int i = 0; i < j; i++)
printf("%d", b[i]);
}
Character stuffing
#include <stdio.h>
#include <string.h>
void main() {
char a[20], b[50], ch;
int n, pos, i = 0, j = 0;
printf("Enter string: ");
scanf("%s", a);
n = strlen(a);
printf("Enter position: ");
scanf("%d", &pos);
if (pos > n) {
printf("Invalid position, Enter again: ");
scanf("%d", &pos);
}
printf("Enter the character: ");
ch = getche();
strcpy(b, "dest");
j = 4;
while (i < n) {
if (i == pos - 1) {
b[j++] = 'd';
b[j++] = 'l';
b[j++] = 'e';
b[j++] = 'ch';
b[j++] = 'd';
b[j++] = 'l';
b[j++] = 'e';
}
if (a[i] == 'd' && a[i + 1] == 'l' && a[i + 2] == 'e') {
b[j++] = 'd';
b[j++] = 'l';
b[j++] = 'e';
}
b[j++] = a[i];
i++;
}
strcat(b, "deetx"); // End delimiter
printf("\nFrame after stuffing: \n");
printf("%s", b);
}

Week-2
CRC
#include <stdio.h>
int data[10], gen[10], temp[10];
int dl, gl, c;
// Left shift function
void left_shift() {
for (int i = 0; i < gl - 1; i++) {
temp[i] = temp[i + 1];
}
temp[gl - 1] = (c < dl) ? data[c] : 0; // Add new bit or 0
}
// XOR operation function
void xor_operation() {
for (int i = 0; i < gl; i++) {
temp[i] = (gen[i] == temp[i]) ? 0 : 1;
}
}
int main() {
printf("1. Generate CRC\n2. Check CRC\nEnter choice: ");
int choice;
scanf("%d", &choice);
printf("Enter length of data: ");
scanf("%d", &dl);
printf("Enter data: ");
for (int i = 0; i < dl; i++)
scanf("%d", &data[i]);
printf("Enter length of generator: ");
scanf("%d", &gl);
printf("Enter generator: ");
for (int i = 0; i < gl; i++)
scanf("%d", &gen[i]);
for (int i = 0; i < gl; i++)
temp[i] = data[i];
if (choice == 1) {
for (c = 0; c < dl; c++) {
xor_operation();
left_shift();
}
printf("CRC: ");
for (int i = 0; i < gl - 1; i++)
printf("%d", temp[i]);
printf("\n");
}
return 0;
}

Week-3
sliding window protocol
#include <stdio.h>
int main() {
int w, f, i;
printf("Enter window size: ");
scanf("%d", &w);
printf("Enter number of frames to transmit: ");
scanf("%d", &f);
int frames[f]; // Declare the array after reading f
printf("Enter %d frames: ", f);
for(i = 0; i < f; i++) {
scanf("%d", &frames[i]);
}
printf("\nTransmitting frames:\n");
for(i = 0; i < f; i++) {
printf("%d ", frames[i]);
if((i + 1) % w == 0 || i == f - 1) {
printf("\nAcknowledgement received\n");
}
}
return 0;
}
Week-4
#include <stdio.h>
#include <limits.h>
#define V 5
int minDistance(int dist[], int sptSet[]) {
int min = INT_MAX, min_index;
for (int v = 0; v < V; v++)
if (!sptSet[v] && dist[v] <= min) min = dist[v],
min_index = v;
return min_index;
}
void dijkstra(int graph[V][V], int src) {
int dist[V], sptSet[V] = {0};
for (int i = 0; i < V; i++) dist[i] = INT_MAX;
dist[src] = 0;
for (int count = 0; count < V - 1; count++) {
int u = minDistance(dist, sptSet);
sptSet[u] = 1;
for (int v = 0; v < V; v++)
if (!sptSet[v] && graph[u][v] && dist[u] != INT_MAX && dist[u] +
graph[u][v] < dist[v])
dist[v] = dist[u] + graph[u][v];
}
printf("Vertex \t Distance from Source\n");
for (int i = 0; i < V; i++) printf("%d \t %d\n", i, dist[i]);
}
int main() {
int graph[V][V];
int src;
printf("Enter the adjacency matrix for the graph (%dx%d):\n", V, V);
for (int i = 0; i < V; i++) {
for (int j = 0; j < V; j++) {
scanf("%d", &graph[i][j]);
}
}
printf("Enter the source vertex (0 to %d): ", V - 1);
scanf("%d", &src);
if (src < 0 || src >= V) {
printf("Invalid source vertex!\n");
return 1;
}
dijkstra(graph, src);
return 0;
}
Week-5
#include <stdio.h>
int a[10][10], n;
void printAdj(int root) {
printf("Adjacent nodes of %d:\n", root);
for (int j = 1; j <= n; j++)
if (a[root][j]) printf("%d\t", j);
printf("\n");
}
int main() {
printf("Enter number of nodes: ");
scanf("%d", &n);
printf("Enter adjacency matrix:\n");
for (int i = 1; i <= n; i++)
for (int j = 1; j <= n; j++)
scanf("%d", &a[i][j]);
int root;
printf("Enter root node: ");
scanf("%d", &root);

printAdj(root);
return 0;
}
Week-6
#include<stdio.h>
struct node
{ unsigned dist[20], from[20];
}rt[10];
int main()
{
int dmat[20][20];
int n,i,j,k,count=0;
printf("\nEnter the number of nodes : ");
scanf("%d",&n);
printf("\nEnter the cost matrix :\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++)
{
printf("\n\nState value for router %d is \n",i+1);
for(j=0;j<n;j++) {
printf("\t\nnode %d via %d Distance%d",j+1,rt[i].from[j]+1,rt[i].dist[j]);
}
}
printf("\n\n");
}
Week-7
#include <stdio.h>
#include <string.h>
void transform(char *text, int shift) {
for (int i = 0; text[i]; i++) {
char ch = text[i];
if (ch >= 'a' && ch <= 'z') text[i] = (ch - 'a' + shift) % 26 + 'a';
else if (ch >= 'A' && ch <= 'Z') text[i] = (ch - 'A' + shift) % 26 + 'A';
}
}
int main() {
char text[100];
int shift;
printf("Enter text: ");
fgets(text, sizeof(text), stdin);
text[strcspn(text, "\n")] = 0;
printf("Enter shift value (1-25): ");
scanf("%d", &shift);
transform(text, shift);
printf("Encrypted text: %s\n", text);
transform(text, 26 - shift);
printf("Decrypted text: %s\n", text);
return 0;
}
Week-8
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#define MAX_PACKETS 5
int main() {
int p[MAX_PACKETS], i, b, r = 0, o;
for (i = 0; i < MAX_PACKETS; i++)
p[i] = rand() % 10 + 1;
printf("Enter output rate and bucket size: ");
scanf("%d %d", &o, &b);
for (i = 0; i < MAX_PACKETS; i++) {
int s = p[i];
if (r + s > b)
printf("Packet %d exceeds bucket capacity\n", s);
else {
r += s;
printf("Incoming packet: %d, Remaining: %d\n", s, r);
for (int t = 0; t < 3; t++) { // Simulate 3 seconds
sleep(1);
if (r > 0) {
int x = (r < o) ? r : o;
r -= x;
printf("Transmitted %d bytes, Remaining: %d bytes\n", x, r);
} else
printf("No packets to transmit\n");
}
}
}
return 0;
}
Week-9
#include <stdio.h>
#include <stdlib.h>
#define MAX 10
struct Frame {
int seq;
char info[20];
};
struct Frame f[MAX];
int n;
void sort() {
for (int i = 0; i < n - 1; i++)
for (int j = 0; j < n - i - 1; j++)
if (f[j].seq > f[j + 1].seq) {
struct Frame temp = f[j];
f[j] = f[j + 1];
f[j + 1] = temp;
}
}
int main() {
printf("Enter number of frames (max %d): ", MAX);
scanf("%d", &n);
for (int i = 0; i < n; i++) {
f[i].seq = rand() % 50;
printf("Enter data for seq %d: ", f[i].seq);
scanf("%s", f[i].info);
}
sort();
printf("\nSorted frames:\n");
for (int i = 0; i < n; i++)
printf("%d\t%s\n", f[i].seq, f[i].info);
return 0;
}

You might also like