Efficienza e controllo d’errore
Introduzione
Come abbiamo visto il controllo d’errore, necessario
per ottenere un trasporto affidabile, si basa su:
• somme di controllo (checksum);
• correzione degli errori.
Le tecniche di controllo d’errore si basano sull’idea di
ritrasmettere in modo controllato i dati errati.
Vediamo ora la relazione tra tecniche di
ritrasmissione per il controllo d’errore ed efficienza
nell’uso del canale di trasmissione.
Specifiche del Mittente (M)
[La variabile di stato V(S) contiene il numero del prossimo
pacchetto da spedire; viene inizializzata a 0]
while(forever)
1. se è disponibile, accetta un pacchetto dal livello
superiore e assegnagli il numero V(S)
2. trasmetti il pacchetto V(S); V(S)++; Fai partire il
timer;
3. se ricevi un ACK, è corretto e se V(S)-1 == V(R) [cioè
al numero contenuto nell’ACK], ferma il timer, GOTO 1
4. se ricevi un ACK, è corretto e V(S)-1 != V(R), GOTO 3
5. se ricevi un ACK, e non è corretto, GOTO 3
6. se ricevi un NAK, trasmetti V(S)-1, fai ripartire timer,
GOTO 3
7. se scade il Timer, trasmetti V(S)-1, fai ripartire
timer, GOTO 3
Specifiche del Ricevente (R)
[La variabile di stato V(R) contiene il numero del
prossimo paccetto atteso; viene inizializzata a 0]
while(1)
• Se ricevi un pacchetto corretto:
– se V(R) == V(S), manda un ACK[V(R)], passa il
pacchetto al livello superiore, V(R)++
– altrimenti se V(R) != V(S), elimina il
pacchetto ma manda un ACK[V(S)]
• Se il pacchetto non è corretto, invia un NAK[V(R)]
(solo nel caso di notifica esplicita)
Efficienza
Il protocollo idle RQ garantisce che i pacchetti siano
ricevuti integri e nel corretto ordine.
Ma quale è l’efficienza?
Definiamo l’efficienza di utilizzo:
U = Tix / Tt
• Tix è il tempo di invio del pacchetto (il tempo che il
mittente impiega ad inviarlo).
• Tt è il tempo totale che intercorre tra l’invio di un
frame è il successivo.
Calcolo di U
Avremo:
Tt = Tp + Tix + Tip + Tp + Tax + Tap
Trascurando i termini di secondo ordine,
Tt = Tix + 2 Tp
Quindi si ottiene:
U = Tix / (Tix + 2 Tp) =
= 1 / (1 + 2 Tp/Tix) =
= 1 / (1 + 2)
Come calcolare Tix?
Tix = (numero bit nel frame) / (bit rate in bps)
FINE
Scarica

Efficienza e controllo d`errore