Lezione 13 · Canale 1 · lunedì 26 ottobre 2026
ARQ e stop and wait
FCI · Reti
Lezione 13 · Canale 1 · lunedì 26 ottobre 2026
FCI · Reti
Il servizio sottostante introduce errori e perdite, ma chi lo usa vuole le PDU consegnate in ordine, senza errori, duplicazioni o mancanze. Le procedure ARQ (Automatic Repeat Request, richiesta di ripetizione automatica) usano tre strumenti: un codice che rivela gli errori, i riscontri, positivi o negativi, e un timeout. Sono tre procedure; la più semplice è lo stop and wait.
La procedura vale fra entità di collegamento adiacenti, con unità dette trame (frame), e da estremo a estremo, per esempio nel trasporto. Qui si guarda il collegamento.
Il pacchetto dello strato superiore diventa una trama con un'intestazione e, in coda, un CRC. Chi riceve risponde con una trama di controllo, di solito senza dati, con intestazione e CRC: anche l'informazione di controllo viaggia su un canale con errori, quindi va protetta.
Il trasmettitore A manda una trama e aspetta. Il ricevitore B ne controlla il CRC e, se è corretta, risponde con un ACK (acknowledgement): A manda la trama successiva. Se la trama non arriva o è errata, non c'è ACK e A resterebbe bloccato.
Per sbloccarlo A avvia un temporizzatore a ogni trama trasmessa. Se allo scadere, il timeout, l'ACK non è arrivato, A ritrasmette la trama.
Il timeout da solo crea un'ambiguità. Se la trama arriva ma l'ACK si perde, A ritrasmette e B riceve due volte la stessa trama, identica: non può sapere se la seconda è nuova.
Si aggiunge un campo all'intestazione, il numero di sequenza , che numera le trame. B riconosce la copia e la scarta, ma risponde con un nuovo ACK, perché A, che non ha ricevuto il precedente, è bloccato.
Se un ACK arriva in ritardo, o il timeout scade troppo presto, A ritrasmette la trama 1 mentre il suo ACK è ancora in viaggio. Arriva il primo ACK, A manda la 2 e arriva il secondo ACK, quello della copia della 1: A ha trasmesso due trame e ricevuto due ACK, quindi crede che tutto sia regolare. Se la 2 si è persa, sbaglia: il secondo ACK riguarda ancora la 1.
Si numera anche l'ACK. Il suo numero è quello della prossima trama che B si aspetta: dopo la 1 scrive ACK 2, e lo ripete se la 1 arriva di nuovo. Così A vede che B non ha ancora ricevuto la 2.
Con lo stop and wait c'è una sola trama in attesa di riscontro, quindi basta un bit: e alternano 0 e 1. A numera le trame 0, 1, 0, 1, … e B risponde con il numero della trama che attende: ACK 1 dopo la 0, ACK 0 dopo la 1. Una copia porta il numero dell'ultima trama accettata, non quello atteso.
B:
A:
Tre casi dello stop and wait
Il funzionamento regolare si descrive con lo stato : il numero della trama corrente di A e quello atteso da B. Da , senza errori, lo stato percorre un ciclo:
Senza errori ogni trama occupa il collegamento per un ciclo: trasmissione della trama, propagazione fino a B, elaborazione in B (il CRC), trasmissione dell'ACK, propagazione di ritorno ed elaborazione in A (il CRC dell'ACK). Con il bit rate, i bit della trama e quelli dell'ACK, i tempi di trasmissione sono
e il ciclo dura
dove è il ritardo di propagazione e il tempo di elaborazione a ciascun estremo, spesso trascurabile.
L'efficienza è il rapporto fra il bit rate utile e il bit rate dell'interfaccia. In ogni ciclo si consegnano bit utili, perché bit della trama sono l'intestazione:
Trascurando intestazione, ACK ed elaborazione resta
Il termine , in bit, è il prodotto banda-ritardo, un parametro chiave di tutti questi protocolli: è vicina a 1 solo se è piccolo rispetto a .
Se cresce, il ciclo si allunga e cala. Se cresce, si accorcia ma l'attesa del ritorno no, quindi cala anche così. Con minore la trasmissione pesa di più sul ciclo e sale.
Il ciclo di una trama e l'efficienza
Un ciclo trama-ACK
Efficienza
Una trama è di 1250 byte, cioè bit, con intestazione e ACK di 25 byte, cioè bit, su un collegamento da Mbit/s. Con ms è bit e , il punto da cui parte la figura.
Con un ritardo di andata e ritorno di 1 ms, 10 ms, 100 ms e 1 s il prodotto banda-ritardo vale , , e bit e l'efficienza è 88 %, 49 %, 9 % e 1 %. Con Gbit/s il prodotto è mille volte più grande e l'efficienza è 1 %, 0,1 %, 0,01 % e 0,001 %.
Lo stop and wait è semplice e garantisce una trasmissione corretta, ma rende poco quando il prodotto banda-ritardo è alto: a bit rate elevati o su collegamenti lunghi, come quelli via satellite.
ACK che A attende (modulo 2)
Tempi di trasmissione
Ciclo trama-ACK
Efficienza, bit di intestazione
Senza intestazione, ACK ed elaborazione
Prodotto banda-ritardo