B non invia NACK. A deduce dal timeout.
Stop-and-Wait è il più semplice protocollo ARQ (Automatic Repeat reQuest). Il mittente A trasmette un solo frame alla volta e aspetta la conferma (ACK) prima di inviarne un altro. Risolve contemporaneamente il controllo degli errori e il controllo del flusso.
ACK (Acknowledgement) è un frame di controllo inviato da B ad A per confermare la corretta ricezione di un frame. Contiene solo il numero di sequenza del frame confermato (0 oppure 1). Non segnala errori: se qualcosa va storto, B tace silenziosamente.
Nota: per semplicità grafica, il simulatore rappresenta frame e ACK con tempi convenzionali proporzionali; nella realtà un ACK è generalmente molto più piccolo di un frame dati e impiega meno tempo a essere trasmesso.
Quando A trasmette un frame, avvia un timer. Se l'ACK non arriva entro il tempo stabilito (timeout), A ritrasmette lo stesso frame. A non sa se il frame era corrotto, perso, o se era l'ACK a perdersi: in tutti i casi la risposta è ritrasmettere.
Frame perso o corrotto: B non riceve nulla di valido, tace. A aspetta il timeout e ritrasmette.
ACK perso: B ha ricevuto correttamente e ha risposto, ma l'ACK si è perso. A aspetta il timeout e ritrasmette — ma stavolta B riceve un duplicato.
Dal punto di vista di A i due casi sono identici: A vede solo che il timer è scaduto.
Ogni frame porta un numero di sequenza: 0 oppure 1, alternati. Servono a B per riconoscere i duplicati, in particolare quando un ACK viene perso e il mittente ritrasmette un frame già ricevuto correttamente:
• B si aspetta seq=0 → arriva seq=0 → accetta, ora si aspetta seq=1.
• Arriva ancora seq=0 (duplicato) → B si aspettava seq=1 → scarta il duplicato ma rimanda ACK 0.
Un solo bit basta perché c'è sempre al massimo un frame in transito alla volta.
Esempio: canale 1 Mbps, frame 1000 bit, distanza 500 km → TTX=1 ms, TPROP=2,5 ms → a=2,5 → η ≈ 16,7%.
Nota: le statistiche della simulazione (frame consegnati, ritrasmissioni ecc.) descrivono il comportamento della sessione corrente e non devono essere confuse con questa formula teorica, che dipende dai parametri fisici del canale.
1. Trasmissione corretta: frame arriva integro → B manda ACK → A procede.
2. Frame corrotto (CRC fallito): B scarta silenziosamente → A fa timeout e ritrasmette.
3. Frame perso: non arriva a B → A fa timeout e ritrasmette.
4. ACK perso: B ha ricevuto ma ACK si perde → A fa timeout e ritrasmette → B scarta il duplicato.
5. Frame in ritardo: arriva dopo il timeout → A ha già ritrasmesso → B scarta l'originale come duplicato.
6. Errori casuali: combinazione casuale dei casi 2 e 3 su ogni frame con probabilità configurabile.