0% found this document useful (0 votes)
5 views4 pages

Slective and Stop and Wait

Slective and stop and wait

Uploaded by

imran1006shaikh
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)
5 views4 pages

Slective and Stop and Wait

Slective and stop and wait

Uploaded by

imran1006shaikh
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/ 4

Assignment No.

1)Selective :-
#include<stdio.h>
#include<stdlib.h>
#define RTT 5
#ifdef __unix__
# include <unistd.h>
#elif defined _WIN32
# include <windows.h>
#define sleep(x) Sleep(1000 * (x))
#endif
int main()
{

int window_size,i,f,frames[50];
printf("Enter window size: ");
scanf("%d",&window_size);
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("\nAfter sending %d frames at each stage sender waits for ACK",window_size);
printf("\nSending frames in the following manner... \n\n");
for(i=1;i<=f;i++)
{
if(i%window_size!=0)
{
printf("%d",frames[i]);
}
else
{
printf("%d\n",frames[i]);
printf("SENDER:waiting for ACK...\n\n");
sleep(RTT/2);
printf("RECEIVER: Frames Received, ACK Sent\n");
printf(" \n");
sleep(RTT/2);
printf("SENDER:ACK received, sending next frames\n");
}
}
if(f%window_size!=0)
{
printf("\nSENDER: waiting for ACK...\n");
sleep(RTT/2);
printf("\nRECEIVER:Frames Received, ACK Sent\n");
printf(" \n");
sleep(RTT/2);
printf("SENDER:ACK received.");
}
return 0;
}
Output :-

2) Stop and Wait :-

#include <stdio.h>
#include <stdlib.h>
#define RTT 4
#define TIMEOUT 4
#define TOT_FRAMES 7
#ifdef __unix__
# include <unistd.h>
#elif defined _WIN32
# include <windows.h>
#define sleep(x) Sleep(1000 * (x))
#endif

enum {NO,YES}
ACK;

int main()
{
int wait_time,i=1;
ACK=YES;
for(;i<=TOT_FRAMES;)
{
if (ACK==YES && i!=1)
{
printf("\nSENDER: ACK for Frame %d Received.\n",i-1);
}
printf("\nSENDER: Frame %d sent, Waiting for ACK...\n",i);
ACK=NO;
wait_time= rand()% 4+1;
if(wait_time==TIMEOUT)
{
printf("SENDER: ACK not received for Frame %d=>TIMEOUT Resending Frame...",i);
}
else
{
sleep(RTT);
printf("\nRECEIVER: Frame %d received, ACK sent\n",i); printf(" ");
ACK=YES;
i++;
}
}
return 0;
}
Output :-

You might also like