Go-Back-N (GBN) è un protocollo ARQ a finestra scorrevole che consente al mittente di trasmettere più frame (fino a una dimensione di finestra definita) senza attendere riconoscimenti individuali.
differenza tra volpe e lupo
- Se un pacchetto viene perso o danneggiato, il mittente ritrasmette quel pacchetto e tutti i pacchetti successivi nella finestra.
- Esempio: se vengono inviati i pacchetti 1–5 e il pacchetto 3 viene perso, i pacchetti 3, 4 e 5 verranno ritrasmessi.
Questo meccanismo garantisce affidabilità ma potrebbe sprecare larghezza di banda se gli errori si verificano frequentemente.
Le tre caratteristiche principali del GBN sono:
1. Dimensioni finestra mittente (L S )
È N stesso. Se diciamo che il protocollo è GB10 allora Ws = 10. N dovrebbe essere sempre maggiore di 1 per implementare il pipelining. Per N = 1 si riduce a Protocollo Stop and Wait .
Efficienza di GBN = N/(1+2a)
Dove
un = TP/TT
TP= Ritardo di propagazione
TT= Ritardo di trasmissione del mittente
Quale sarà l'efficienza se il ritardo di elaborazione, il ritardo in coda e il ritardo di trasmissione del riconoscimento non sono pari a zero?
Efficienza = N * (Tempo utile) / (Tempo totale)
dove tempo utile=TT
Tempo totale = TT+2*TP+PR+Pq+TT(risposta)
Dove
- T T =Ritardo di trasmissione del lato mittente
- T P = Ritardo di propagazione
- Pr = Ritardo di elaborazione
- Pq = Ritardo in coda
- T T (risposta) = Ritardo di trasmissione del riconoscimento
Se B è la larghezza di banda del canale allora
Larghezza di banda o throughput effettiva
= Efficienza * Larghezza di banda
= (N/(1+2a)) * B
2. Dimensioni della finestra del ricevitore (L R )
- Sempre 1 in GBN.
- Il ricevitore accetta solo il successivo pacchetto atteso.
- I pacchetti fuori ordine vengono scartati.
3. Ringraziamenti
I riconoscimenti (ACK) sono segnali inviati dal ricevitore per confermare la corretta ricezione dei pacchetti di dati. Garantiscono una comunicazione affidabile tra mittente e destinatario. Se un ACK non viene ricevuto entro un tempo prestabilito, il mittente presume che il pacchetto sia perso e lo ritrasmette.
Tipi di ACK
ACK cumulativo
- Un unico riconoscimento conferma la ricezione di tutti i pacchetti fino a un certo punto.
- Vantaggio: Meno traffico (meno ACK).
- Svantaggio: Meno affidabile se viene perso un ACK, più pacchetti appaiono non riconosciuti.
ACK indipendente
- Ogni pacchetto viene riconosciuto individualmente.
- Vantaggio: Alta affidabilità.
- Svantaggio: Traffico più elevato dovuto a più ACK.
Funzionamento del protocollo GB-N
Invio pagina
prova a prendere a prendere java
- Mantiene una finestra di dimensione N (ad esempio dimensione finestra GB4 = 4).
- Può inviare fino a N pacchetti non riconosciuti.
- Ogni pacchetto trasmesso ha un timer.
- Se viene ricevuto un ACK la finestra scorre in avanti.
- Se si verifica un timeout (per un pacchetto mancante) il mittente ritrasmette quel pacchetto e tutti quelli successivi nella finestra.
Lato ricevitore
- Mantiene una dimensione della finestra pari a 1 (WR = 1).
- Accetta solo il pacchetto previsto in sequenza.
- Se arriva il pacchetto corretto: invia un ACK e passa al successivo numero di sequenza previsto.
- Se arriva un pacchetto fuori ordine: lo scarta e invia nuovamente ACK per l'ultimo pacchetto ricevuto correttamente.
Relazione tra dimensione della finestra e numeri di sequenza
IL dimensione della finestra E numeri di sequenza in un protocollo a finestra scorrevole come Go-Back-N o Selective Repeat sono strettamente correlati.
- IL dimensione della finestra determina quanti pacchetti il mittente può trasmettere senza bisogno di una conferma. È come un limite alla quantità di dati che possono essere inviati prima che il mittente debba fermarsi e attendere la conferma.
- Numeri di sequenza vengono utilizzati per etichettare i pacchetti in modo che il destinatario ne conosca l'ordine e possa rilevare eventuali pacchetti mancanti.
IL dimensione della finestra dovrebbe essere inferiore o uguale all'intervallo disponibile numeri di sequenza . Se la dimensione della finestra è troppo grande rispetto all'intervallo del numero di sequenza, il ricevitore potrebbe confondersi perché lo stesso numero di sequenza potrebbe essere riutilizzato prima che il primo venga riconosciuto. Ciò renderebbe difficile sapere se un pacchetto è nuovo o duplicato.
La relazione tra la dimensione della finestra e il numero di sequenza è data dalla formula:
INS+WR<= ASN
dove WSè la dimensione della finestra del mittente e WRè la dimensione della finestra del ricevitore e ASN è il numero di sequenza disponibile.
INS+1<= ASN because WR= 1 nel protocollo GB-N
Quindi i numeri di sequenza minimi richiesti in GBN = N + 1
Bit richiesti in GBN = ⌈ log2(N+1)⌉
L'1 extra è necessario per evitare il problema dei pacchetti duplicati.
Esempio di Protocollo GB-N
Considera un esempio di GB4.
- La dimensione della finestra del mittente è 4, pertanto richiediamo un minimo di 4 numeri di sequenza per etichettare ciascun pacchetto nella finestra.
- Supponiamo ora che il destinatario abbia ricevuto tutti i pacchetti (0 1 2 e 3 inviati dal mittente) e quindi ora stia aspettando di nuovo il pacchetto numero 0 (non possiamo usare 4 qui poiché abbiamo solo 4 numeri di sequenza disponibili poiché N = 4).
- Supponiamo ora che l'ACK cumulativo per i 4 pacchetti precedenti venga perso nella rete.
- Dal lato del mittente ci sarà un timeout per il pacchetto 0 e quindi tutti e 4 i pacchetti verranno trasmessi nuovamente.
- Il problema ora è che il ricevitore sta aspettando un nuovo set di pacchetti che avrebbe dovuto iniziare da 0 ma ora riceverà le copie duplicate dei pacchetti precedentemente accettati.
- Per evitare ciò abbiamo bisogno di un numero di sequenza aggiuntivo.
- Ora il ricevitore potrebbe facilmente rifiutare tutti i pacchetti duplicati che iniziavano da 0 perché ora aspetterà il pacchetto numero 4 (ora abbiamo aggiunto un numero di sequenza extra).
Ciò è spiegato con l'aiuto delle illustrazioni seguenti. Provare con i numeri di sequenza 4.
Ora provo con un numero di sequenza in più.
Ora è chiaro il motivo per cui abbiamo bisogno di 1 bit in più nel protocollo GBN.
Vantaggi del protocollo GBN
- Semplice da implementare ed efficace per una comunicazione affidabile.
- Prestazioni migliori rispetto ai protocolli stop-and-wait per reti prive di errori o con errori ridotti.
Svantaggi del protocollo GBN
- Inefficiente se gli errori sono frequenti poiché potrebbe essere necessario ritrasmettere più frame inutilmente.
- La larghezza di banda può essere sprecata a causa di ritrasmissioni ridondanti.