Complementi sul controllo d’errore (parte II) Efficienza di Idle RQ Lo schema Idle RQ ha un efficienza di utilizzo del link pari a: U idle= Tix / (Tix+2Tp) = 1 / 1+2a Efficienza di Continuous RQ Se supponiamo che non ci siano errori di trasmissione, uno schema Continuous RQ, che ammetta al più 3 frames “in sospeso” (cioè per i quali non ha sia ancora arrivato un ACK), ha efficienza di utilizzo: U idle= 3Tix / (Tix+2Tp) = 3 / 1+2a =3U idle Continuous RQ con errori di trasmissione • Se il frame N arriva al ricevente R corrotto, viene scartato. • Quando R riceve il pacchetto successivo, N+1, si rende conto che V(S) N+1: manca un pacchetto! • Ci sono due possibili strategie: –Selective Repeat: R attende che M, alla scadenza del timer, rimandi il pacchetto N (implicit retransmission) oppure chiede esplicitamente a M di rimandare il pacchetto N tramite un frame di controllo NAK (explicit request). Nel frattempo, accumula i frames corretti che arrivano nella receive list (i pacchetti devono essere trasferiti in ordine al livello superiore e quindi bisogna aspettare il pacchetto N). –Go-Back-N: R chiede a M di rimandare il frame N e tutti i successivi tramite un pacchetto speciale NAK chiamato reject. Nel frattempo R scarta tutti i pacchetti corretti che riceve. Selective Repeat • Il ricevente R attende che M, alla scadenza del timer, rimandi il pacchetto N (implicit retransmission) oppure chiede esplicitamente a M di rimandare il pacchetto N inviandogli un frame di controllo NAK (explicit request). • Nel frattempo, R accumula i frame corretti che arrivano nella receive list. I pacchetti devono essere trasferiti al livello superiore in ordine: bisogna aspettare il pacchetto N prima di inoltrare al livello superiore eventuali pacchetti contrassegnati da un numero successivo. Selective Repeat (ritrasmissione implicita) (1) frame N+1 corrotto Ritrasmissione implicita • Man mano che riceve ACK, M rimuove dalla retransmission list i pacchetti corrispondenti. • La retransmission list è una lista FIFO. La ritrasmissione avviene se: 1. il timer associato ad un pacchetto scade; 2. M riceve un ACK relativo ad un pacchetto che non è nella coda della lista di ritrasmissione. • I due criteri non sono poi così diversi. – In generale il tempo di timeout è impostato a 2Tp. • R invia al suo livello superiore (il sistema operativo)i pacchetti dopo averli riordinati. Selective Repeat (ritrasmissione implicita) (2) ACK N corrotto FINE