Concetti Chiave
- Il protocollo Stop and Wait richiede che il mittente attenda una conferma (ACK) dal destinatario per ogni pacchetto inviato, garantendo l'integrità della trasmissione.
- In caso di mancata ricezione dell'ACK, il mittente utilizza un timeout per ritrasmettere il pacchetto, bilanciando tra ritardi di trasmissione e duplicati.
- La tecnica Sliding Windows permette di inviare più pacchetti senza attendere conferme immediate, migliorando l'efficienza della trasmissione.
- Le finestre di invio e ricezione nel protocollo Sliding Windows sono sincronizzate tramite un buffer, permettendo la gestione di più frame contemporaneamente.
- Esistono due varianti principali del protocollo Sliding Windows: Go-Back-N, che richiede ritrasmissioni sequenziali, e Selective Repeat, che gestisce i frame fuori ordine nel buffer.
Indice
Stop and wait
Quando avviene uno scambio di dati tra un mittente e un destinatario, prima che il mittente invia un nuovo messaggio al destinatario, quest’ultimo deve confermare se il precedente fosse corretto o meno.Questo meccanismo si chiama Stop and Wait e prevede che il mittente fermi la trasmissione dopo ogni invio di dati e attenda l’ACK (acknowledge) (messaggio del destinatario al mittente) di riscontro della corretta ricezione di quanto inviato prima di riprendere a trasmettere.
Questo ACK viene inviato solo se il messaggio è stato ricevuto senza errori, in caso contrario l’ACK non verrà inviato e.
Il trasmettitore imposta un timeout all’invio di ogni messaggio se al so scadere non avrà ricevuto l’ACK ritrasmetterà il messaggio.
Quindi sono soliti presentarsi tre scenari:
1) Trasmissione corretta: il destinatario invia al mittente l’ACK;
2) Dati non arrivati: al destinatario non è arrivato nulla oppure e arrivata errata la trasmissione;
3) L’ACK non arriva al mittente: o arriva errato. In tal caso allo scadere del timeout il mittente ritrasmette la sequenza.
Il timeout del mittente può presentare due falle:
- Se è corto potrebbero essere trasmessi messaggi duplicati o che erano stati trasmessi in precedenza;
- Se è lungo aumentano i tempi di trasmissione.
Sliding windows
Questa tecnica permette al mittente di inviare più informazione in pacchetti oppure interi pacchetti al destinatario senza dover ricevere una conferma (ACK) per poter continuare ad inviare frame. Se uno di questi pacchetti non viene riconosciuto entro un determinato lasso di tempo, il pacchetto dovrà essere rinviato al destinatario.Prima che il mittente inizi ad inviare frame, il destinatario gli comunica la dimensione della sua finestra (quindi quanti frame può ricevere) in modo che il mittente non riempi del tutto la sua finestra (buffer).
Man mano che il mittente riceve conferma, si svuota la finestra del ricevitore così che il mittente possa inviare altri frame:
• Nei protocolli Sliding Window, il termine finestra scorrevole si riferisce alla scatola immaginaria che può contenere i frame sia dal lato mittente che dal lato ricevente. La finestra del mittente si chiama “finestra di invio” e quella del destinatario invece “finestra di ricezione”. Le due finestre comunicano tra loro grazie al buffer (mezzo che collega due dispositivi)
• Entrambe le finestre possiedono una dimensione specifica dove i frame sono numerati modulo-n, il che significa semplicemente che i frame sono numerati da 0 a n-1 . Ad esempio se n = 10 , i frame sono numerati 0, 1,2,3,4,5,6, 7,8,9
I protocolli della finestra scorrevole possono essere di due tipi:
- Go-Back-N: se arrivano al destinatario dei frame danneggiati, ignora i frame e quelli successivi , non inviando i relativi ACK. Il mittente si curerà di rinviare i frame che erano danneggiati. Il ricevitore accetta inoltre solo messaggi in sequenza, in ordine. Se essi non lo sono, allora li scarta.
-Selective Repeat: il destinatario mantiene nel suo buffer tutti i frame ricevuti, anche quelli danneggiati ma ne richiede comunque la ritrasmissione. Non importa se i messaggi arrivano nel giusto ordine o meno. I messaggi fuori sequenza vengono archiviati nel buffer fino a che non viene inviati l’intera sequenza. Dopo vengono riordinati dal destinatario stesso.
Domande da interrogazione
- Che cos'è il meccanismo "Stop and Wait"?
- Quali sono i possibili scenari nel protocollo "Stop and Wait"?
- Come funziona la tecnica "Sliding Windows"?
- Qual è la differenza tra "Go-Back-N" e "Selective Repeat"?
- Quali sono le implicazioni del timeout nel protocollo "Stop and Wait"?
"Stop and Wait" è un meccanismo di trasmissione dati in cui il mittente invia un messaggio e attende un ACK dal destinatario prima di inviare il successivo. Se l'ACK non arriva, il mittente ritrasmette il messaggio.
I tre scenari possibili sono: trasmissione corretta con ricezione dell'ACK, dati non arrivati o errati, e l'ACK non arriva o arriva errato, portando alla ritrasmissione.
"Sliding Windows" permette al mittente di inviare più pacchetti senza attendere un ACK per ciascuno. Il destinatario comunica la dimensione della sua finestra per gestire i frame ricevuti.
In "Go-Back-N", i frame danneggiati e successivi vengono ignorati e ritrasmessi in sequenza. In "Selective Repeat", tutti i frame, anche danneggiati, vengono mantenuti nel buffer e ritrasmessi, indipendentemente dall'ordine.
Un timeout troppo corto può causare trasmissioni duplicate, mentre uno troppo lungo aumenta i tempi di trasmissione.