what is simple stop and wait protocol ? Can you please share the code also.

please explain simple stop and wait protocol

3 commentaires

Harshit Sangwan
Harshit Sangwan le 25 Avr 2023
Déplacé(e) : Walter Roberson le 25 Avr 2023
close all;
clear all;
clc;
n = 10; %number of frames
i = 1;
while i<n
fprintf('Transmitting frame %d\n',i);
s = randi(10,1,1);
if s<=3
fprintf('Time out \n %d\n',i);
else
fprintf('Received frame %d\n',i);
i = i+1;
end
end
Harshit Sangwan
Harshit Sangwan le 25 Avr 2023
Déplacé(e) : Walter Roberson le 25 Avr 2023
close all;
clear all;
clc;
n=10;
w=3;
while w>=n
w=input('Invalid Window size - Cannot be bigger than or equa; to number of frames. \nRe-enter Window size:');
end
sentframes=0;
windowframes=0;
unsentframes=n;
pt=1;
flag=0;
flag2=0;
a=1:n;
threshold = 32;
dropcount = 0;
pause(1.0);
while flag==0
if flag2==0
for i=1:w
fprintf('Frame %d Transmitted \n',a(pt));
unsentframes = unsentframes-1;
windowframes = windowframes+1;
pt=pt+1;
end
pause(2.0);
flag2=1;
end
noise=randi(100,1,1);
pause(2.0);
if noise>threshold
fprintf('Acknowledgement of Frame %d Recieved\n',a(pt-w));
sentframes=sentframes+1;
if pt==n+1
fprintf('Frames %d Transmitted \n',a(pt-1));
else
fprintf('Frames %d Transmitted \n',a(pt))
end
windowframes=windowframes+1;
unsentframes=unsentframes-1;
if pt==n+1 || a(pt) == n
flag=1;
end
pt=pt+1;
else
dropcount=dropcount+1;
err=randi(10,1,1);
if err >5
fprintf('Courrupted Frame %d Recieved \n',a(pt-w));
else
pause(1.0);
fprintf('No Acknowledgement of Frame %d Recieved \n',a(pt-w));
end
for j=w-1:-1:1
fprintf('Frame %d Discarded \n',a(pt-w+j));
windowframes=windowframes-1;
unsentframes=unsentframes+1;
end
fprintf('NAK of frame %d recieved \n',a(pt-w));
windowframes=windowframes-1;
unsentframes=unsentframes+1;
pt=pt-w;
flag2=0;
end
end
i=n-w+1;
while(i<=n)
noise=randi(100,1,1);
pause(2.0);
if noise > threshold
fprintf('Acknowledgement of Frame %d Recieved\n',a(i));
sentframes=sentframes+1;
i=i+1;
else
dropcount=dropcount+1;
err=randi(10,1,1);
%If corrupted frame received
if err>5
fprintf('Corrupted Frame %d Received\n',a(i));
else
pause (1.0);
fprintf('No Acknowledgement of Frame %d Received\n',a(i));
end
for j=n:-1:1+1
fprintf('Frame %d Discarded \n',a(j));
windowframes=windowframes-1;
unsentframes=unsentframes+1;
end
fprintf('NAK of frame %d received\n', a(i));
windowframes=windowframes-1;
unsentframes=unsentframes+1;
%Retransmitting frames
pause(2.0);
for k=i:n
fprintf('Frame %d Transmitted\n',a(k));
windowframes = windowframes+1;
unsentframes=unsentframes-1;
end
end
end
Harshit Sangwan
Harshit Sangwan le 25 Avr 2023
Déplacé(e) : Walter Roberson le 25 Avr 2023
clear all;
close all;
clc;
n=200;
service=zeros(n,1);
arrival=zeros(n,1);
lam=5; %change lamda from here
u=2;
for i=l:n
service (i) =-log(rand) /u;
end
for i=2:n
arrival (i)=arrival (i-1)-log (rand) /lam;
end
enter _service_time=zeros(n,1);
leave _service_time=zeros(n,1);
leave _service_time(1)=service (1);
for i=2:n
if leave_service_time(i-1)<arrival (i)
enter_service_time(i)=arrival (i);
else
enter_service_time(i)=leave_service_time(i-1);
end
leave_service_time(i)=enter_service_time(i)+service(i);
end
service time=leave_service_time-arrival;
Subplot (3, 1,1) 7
plot (service_time);
xlabel('Person Number");
ylabel('Total Time Spent (in seconds)');
title('Time spent in the system');
subplot (3,1,2)7
plot (service) ;
xlabel('Person Number');
ylabel('Service Time (in seconds)');
title('Service Time');
maxTime=leave_service_time(n);
peopleInQueue=zeros (n*10,1);
timeq=maxTime/ (n*10);

Connectez-vous pour commenter.

Réponses (0)

Catégories

En savoir plus sur Argument Definitions dans Centre d'aide et File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by