Introduzione al controllo derrore. Introduzione Quando dei dati vengono scambiati tra due host, può...

13
Introduzione al controllo d’errore

Transcript of Introduzione al controllo derrore. Introduzione Quando dei dati vengono scambiati tra due host, può...

Page 1: Introduzione al controllo derrore. Introduzione Quando dei dati vengono scambiati tra due host, può accadere che il segnale venga alterato. Il controllo.

Introduzione al controllo d’errore

Page 2: Introduzione al controllo derrore. Introduzione Quando dei dati vengono scambiati tra due host, può accadere che il segnale venga alterato. Il controllo.

Introduzione

Quando dei dati vengono scambiati tra due host, può accadere che il segnale venga alterato.

Il controllo d’errore, necessario per ottenere un trasposto affidabile, si basa su:

Le tecniche di controllo d’errore sono applicate a tutti i livelli dello stack di protocolli.

• somme di controllo (checksum); • correzione degli errori.

Ci occuperemo delle tecniche di controllo e correzione importanti per i livelli 3 e 4, e in particolare per la suite di

protocolli TCP/IP.

In questi casi, il ricevente riceve un messaggio diverso da quello trasmesso dal mittente.

Page 3: Introduzione al controllo derrore. Introduzione Quando dei dati vengono scambiati tra due host, può accadere che il segnale venga alterato. Il controllo.

IP checksum

Il valore del checksum si calcola:• trattando l’intestazione come una sequenza di interi a 16 bit (2

byte alla volta) dove checksum vale 0;

• sommando gli interi (con aritmetica in complemento a 1);

• prendendo il complemento a 1 (cioè il not binario) del risultato.

Versione (4) Tipo di Servizio(8) Lunghezza Totale(16)IHL(4)

Id del Datagramma(16) Offset di Frammentazione(13)Flag(3)

Checksum dello header(16)Protocollo(8)Time To Live(8)

Indirizzo IP sorgente(32)

Indirizzo IP destinazione(32)

Opzioni Padding

Dati

Si ripete l’operazione e si confronta il valore di checksum ottenuto con quello ricevuto.

Page 4: Introduzione al controllo derrore. Introduzione Quando dei dati vengono scambiati tra due host, può accadere che il segnale venga alterato. Il controllo.

TCP checksum

TCP utilizza un meccanismo analogo, inoltre:

• aggiunge una pseudo-intestazione che contiene, fra l’altro, l’IP della sorgente e della destinazione;

• prende in considerazione anche i dati.

Porta mittente Porta destinatario

Numero di sequenza

Numero di acknowledgementLunghezza header Riservato Bit di codice Finestra

Puntatore urgente

Eventuali opzioni

DATI

Riempimento

Page 5: Introduzione al controllo derrore. Introduzione Quando dei dati vengono scambiati tra due host, può accadere che il segnale venga alterato. Il controllo.

Gestione dell’errore (1)

Grazie al controllo di ridondanza con questi checksum, il ricevente riesce a stabilire se il frame sia arrivato integro o meno.

Il servizio così ottenuto è di tipo best-try: se un frame arriva a destinazione corrotto, lo si scarta.

• è valida per un protocollo connectionless, come UDP, dove il trasporto non è garantito;

• è chiaramente insufficiente per un protocollo connection-oriented come TCP.

Questa procedura:

Page 6: Introduzione al controllo derrore. Introduzione Quando dei dati vengono scambiati tra due host, può accadere che il segnale venga alterato. Il controllo.

Gestione dell’errore (2)

Perchè il trasporto sia garantito, dobbiamo avere una strategia di reazione ad un frame corrotto.

Ricordiamo le due principali strategie.

• Forward Error Correction (FEC)

Vengono utilizzati particolari codici di ridondanza (come il CRC del frame Ethernet) che permettono, non solo di rilevare l’esistenza di un errore, ma anche di correggerlo.

• Automatic Repeat reQuest (ARQ)

Richiesta di ripetizione automatica, spesso usata a livello 3.

– Il ricevente controlla se il pacchetto ricevuto è integro e manda conferma al mittente.

– Se il pacchetto è corrotto il mittente può ritrasmetterlo finché non arriva correttamente.

Page 7: Introduzione al controllo derrore. Introduzione Quando dei dati vengono scambiati tra due host, può accadere che il segnale venga alterato. Il controllo.

Tipi di ARQ

• IDLE RQ (detto anche “Stop & Wait” o “Send & Wait”)

“Manda pacchetto e aspetta conferma prima di mandare il successivo. Se corrotto ritrasmetti.”

• Continuous RQ

“Manda una sequenza di pacchetti. Se alcuni sono corrotti, ritrasmettili.”

Le possibili strategie di ritrasmissione sono:

– Go-Back-N

– Selective Repeat

Obiettivi:

• correttezza (i pacchetti devono arrivano integri e nella corretta sequenza);

• efficienza (sfruttare al meglio la banda di trasmissione).

Page 8: Introduzione al controllo derrore. Introduzione Quando dei dati vengono scambiati tra due host, può accadere che il segnale venga alterato. Il controllo.

Idle RQ

I pacchetti vengono trasmessi serialmente da M(ittente) a R(icevente).

Page 9: Introduzione al controllo derrore. Introduzione Quando dei dati vengono scambiati tra due host, può accadere che il segnale venga alterato. Il controllo.

M spedisce il pacchetto e attende conferma da R.

• Se entro un certo tempo T non viene ricevuto un pacchetto di controllo detto ACK (ACKnoledgement), il pacchetto viene rispedito automaticamente.

• Se R riceve correttamente il pacchetto (controllo di ridondanza) manda ad M un ACK (ACKnoledgement), per confermare la corretta ricezione.

• Se invece il pacchetto arriva corrotto R può :

a) attendere che M lo rispedisca;b) inviare un blocco di controllo NAK (Negative ACKnowledgement) per richiedere la

ritrasmissione (explicitrequest).

Funzionamento di Idle RQ

Page 10: Introduzione al controllo derrore. Introduzione Quando dei dati vengono scambiati tra due host, può accadere che il segnale venga alterato. Il controllo.

Idle RQ con ri-trasmissione implicita (1)

Page 11: Introduzione al controllo derrore. Introduzione Quando dei dati vengono scambiati tra due host, può accadere che il segnale venga alterato. Il controllo.

Idle RQ con ri-trasmissione esplicita (2)

Page 12: Introduzione al controllo derrore. Introduzione Quando dei dati vengono scambiati tra due host, può accadere che il segnale venga alterato. Il controllo.

Idle RQ: temporizzazione

Page 13: Introduzione al controllo derrore. Introduzione Quando dei dati vengono scambiati tra due host, può accadere che il segnale venga alterato. Il controllo.

• Il tempo di timeout, dopo il quale M ritrasmette il pacchetto, deve essere scelto tenendo conto dell’entità dei tempi di propagazione, trasmissione ed elaborazione.

• Visto che M rispedisce il pacchetto allo scadere del timer, e possibile che R ne riceva più di uno: quelli di troppo vengono scartati.

• Perché R possa riconoscere di aver già ricevuto un pacchetto, è necessario che questi siano numerati. In IDLE RQ, visto che M non manda mai un nuovo pacchetto prima di aver ricevuto un ACK su quello precedente, bastano 2 numeri di frame, tipicamente 0 e 1.

Idle RQ: timeout

FINE