Stop&Wait Protokoll programmi arvutuse kirjeldus
Programm töötab tsüklis. Programm teeb niimitu tsüklit nagu on testi kestuvuse väljale sisestatud.
Paketil on kaks võimalust:
Selle teise võimaluse tõenäosus on on ära määratud väljaga Bitivea esinemise tõenäosus. Pakett on seega vigaselt kohale jõudnud kui kasvõi üks bitt 128st võimalikust on vigane või üks bitt 8'st ACK'is on vigane.
Kui pakett jõuab vastuvõtjani vigasena, vastuvõtja ACK tagasi ei saada, seega käiku tuleb time-out. Time-outi määrab ära kasutaja sisestades väärtuse välja Time-Out. Time-Outi arvestab programm järgmiselt:
kasutaja poolt sisestatava välja Time-Out (mis on µs-dites) lisatakse minimaalne aeg mis kulub paketi teekonnale kanalis ja ACK signaali tagasitulekuks, eeldusel et vastuvõtja poolel eemaldatakse pakett puhvrist momentaalselt (seega minimaalne aeg, millega on võimalik pakett edukalt saata). Seega kui time-out=0, siis on paketil veel võimalik jõuda edukalt kohale ja ACK signaalil tagasi. Reaalselt sellise situatsiooni tõenäosus on küllaltki väike, kuna vastuvõtja tavaliselt ei eemalda pakette oma puhvrist momentaalselt.
Järgmisena tuleb arvesse võtta vastuvõtja teenindussagedus (seega aeg, mille jooksul vastuvõtja eemaldab paketi puhvrist ja väljastab ACK signaali - loomulikult juhul kui pakett saabus ilma bitivigadeta).
See aga toimub Poissoni jaotuse järgi.
f(t)=µe-µt
Seega: f(t)/µ= e-µt
-µt=ln(f(t)/µ)
t=ln(f(t)/µ)/-µ
Funktsioon f(t) võib omandada väärtusi 0..µ-ni. Seega asendades funktsiooni f(t) random(µ)ga, saame:
t=-ln(random(µ)/µ)/µ
Kuna aga random(µ)/µ on sama, mis lihtsalt random, siis
t=-ln(random)/µ, kus random omandab väärtusi 0..1
Selle valemi järgi on võimalik arvutada aeg, mille jookul pakett eemaldatakse puhvrist.
Järgmiseks arvutab programm aja, mis kulub paketi edukaks kohalejõudmiseks ja ACK signaali tagasijõudmiseks.
t = 2*(250000/2*108) + (128+8)/1024² + (aeg, mis kulub paketi eemaldamiseks puhvrist)
Järgmiseks on võimalus, et kasutaja on määranud sellise Time-Out aja, mille korral pakett pole siiski jõudnud vastuvõtjasse (või ACK pole jõudnud tagasi). Sellel korral on näiteks teeninduseks kulunud aeg pikem kui Time-Outiga lubati. Ka sel korral läheb käiku Time-Out aeg ja pakett saadetakse uuesti teele.