Complementi sul controllo d’errore (parte I)
description
Transcript of Complementi sul controllo d’errore (parte I)
![Page 1: Complementi sul controllo d’errore (parte I)](https://reader036.fdocuments.net/reader036/viewer/2022082614/56815d63550346895dcb6acf/html5/thumbnails/1.jpg)
Complementi sul controllo d’errore (parte I)
![Page 2: Complementi sul controllo d’errore (parte I)](https://reader036.fdocuments.net/reader036/viewer/2022082614/56815d63550346895dcb6acf/html5/thumbnails/2.jpg)
Introduzione
• Lo schema di gestione d’errore Idle RQ garantisce che i pacchetti:
– arrivino non corrotti al ricevente;– vengano sempre ricevuti nel corretto ordine.
• R richiede a M la ripetizione dell’invio dei pacchetti che non sono stati ricevuti correttamente.
Sia M che R possono avere buffer minimi: basta siano in grado di memorizzare un singolo pacchetto.
![Page 3: Complementi sul controllo d’errore (parte I)](https://reader036.fdocuments.net/reader036/viewer/2022082614/56815d63550346895dcb6acf/html5/thumbnails/3.jpg)
Problemi con Idle RQ
• M invia a R un solo pacchetto alla volta:
- mentre M attende l’ACK per il pacchetto appena trasmesso, non può trasmettere altri pacchetti.
• Lo schema Idle RQ non è molto efficiente:
- quando la velocità di connessione (bit rate) della linea è molto elevata;
- quando il link che collega M a R è molto lungo.
![Page 4: Complementi sul controllo d’errore (parte I)](https://reader036.fdocuments.net/reader036/viewer/2022082614/56815d63550346895dcb6acf/html5/thumbnails/4.jpg)
Continuous RQ
Lo schema di controllo Continuous RQ cerca di aumentare l’efficienza di utilizzo della connessione a spese della dimensione dei buffer di ricezione e trasmissione, che devono essere più capienti.
L’idea di base: • il mittente trasmette pacchetti continuamente
“continuous” = continuo vs. “idle” = inattivo
![Page 5: Complementi sul controllo d’errore (parte I)](https://reader036.fdocuments.net/reader036/viewer/2022082614/56815d63550346895dcb6acf/html5/thumbnails/5.jpg)
Schema generale senza errori di trasmissione (1)
Il mittente M:
• spedisce continuamente pacchetti [distinti dal numero progressivo di trasmissione I(N)].
• conserva ogni frame spedito in un buffer detto lista di ritrasmissione o retransmission list.
• quando riceve l’ACK[N], M rimuove il pacchetto N corrispondente dal buffer.
• per ciascun frame spedito viene attivato un timer. Allo scadere del timer, se il pacchetto è ancora nella lista di ritrasmissione viene rispedito a R.
• memorizza in una variabile V(S) il numero del prossimo pacchetto da trasmettere.
![Page 6: Complementi sul controllo d’errore (parte I)](https://reader036.fdocuments.net/reader036/viewer/2022082614/56815d63550346895dcb6acf/html5/thumbnails/6.jpg)
Schema generale senza errori di trasmissione (2)
Il ricevente R:
• quando riceve correttamente il pacchetto N, manda a M un pacchetto ACK(N) per confermare la ricezione. L’ACK contiene il numero N del frame ricevuto.
• mette il pacchetto ricevuto in una lista di attesa: la lista di ricezione o receive list.
• la variabile V(R) contiene il numero del successivo pacchetto da trasferire al livello applicativo superiore (che attende da M).
![Page 7: Complementi sul controllo d’errore (parte I)](https://reader036.fdocuments.net/reader036/viewer/2022082614/56815d63550346895dcb6acf/html5/thumbnails/7.jpg)
Schema generale senza errori di trasmissione (3)
![Page 8: Complementi sul controllo d’errore (parte I)](https://reader036.fdocuments.net/reader036/viewer/2022082614/56815d63550346895dcb6acf/html5/thumbnails/8.jpg)
OsservazioniIn attesa del primo ACK, la retrasmission list cresce.Il tempo che intercorre tra quando M spedisce il pacchetto N e quando riceve la conferma ACK[N] è RTT=2Tp (RTT=“Round Trip Time”).Il numero di pacchetti che M può spedire in questo intervallo di tempo è:
K=(Tix+2Tp)/ Tix =1+2RL/Dv = 1+2
dove:
La retrasmission list deve contenere almeno K frame -> M deve avere un buffer ben più grande rispetto a Idle RQ.
• Tp=L/v è il tempo di propagazione del segnale da M a R, ottenuto dividendo la lunghezza L della linea per la velocità v di propagazione del segnale.
• Tix=D/R è il tempo di trasmissione, cioè il tempo che M impiega a trasmettere il pacchetto, ottenuto dividendo la dimensione D del pacchetto per il bit-rate R della linea.
FINE