#include <stdio.
h>
int main() {
int w, i, f, frames[50];
printf("Enter window size: ");
scanf("%d", &w);
printf("Enter number of frames to transmit: ");
scanf("%d", &f);
printf("Enter %d frames: ", f);
for (i = 0; i < f; i++) {
scanf("%d", &frames[i]);
}
printf("\nUsing Sliding Window Protocol...\n");
printf("Frames will be sent in the following manner (assuming no corruption):\n\n");
printf("After sending %d frames at each stage, sender waits for ACK from receiver\n\n", w);
for (i = 0; i < f; i++) {
printf("%d ", frames[i]);
// After every 'w' frames, simulate receiving ACK
if ((i + 1) % w == 0) {
printf("\nAcknowledgment received for above frames.\n\n");
}
}
// Handle remaining frames (if f is not divisible by w)
if (f % w != 0) {
printf("\nAcknowledgment received for above frames.\n");
}
return 0;
}
Output
Enter window size: 3
Enter number of frames to transmit: 7
Enter 7 frames: 1 2 3 4 5 6 7
Using Sliding Window Protocol...
Frames will be sent in the following manner (assuming no corruption):
After sending 3 frames at each stage, sender waits for ACK from receiver
123
Acknowledgment received for above frames.
456
Acknowledgment received for above frames.
7
Acknowledgment received for above frames.