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

please explain simple stop and wait protocol

3 Commenti

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
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
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);

Accedi per commentare.

Risposte (0)

Categorie

Scopri di più su Argument Definitions in Centro assistenza e File Exchange

Tag

Richiesto:

il 25 Apr 2023

Spostato:

il 25 Apr 2023

Community Treasure Hunt

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

Start Hunting!

Translated by