100 likes | 313 Views
Complementi sul controllo d’errore (parte I). Introduzione. Lo schema di gestione d’errore Idle RQ garantisce che i pacchetti: arrivino non corrotti al ricevente; vengano sempre ricevuti nel corretto ordine.
E N D
Complementi sul controllo d’errore (parte I)
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.
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.
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
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 diritrasmissione 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.
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).
FINE Osservazioni • In 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+2a • dove: • 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. La retrasmission list deve contenere almeno K frame -> M deve avere un buffer ben più grande rispetto a Idle RQ.