R. Cusani, F. Cuomo: Telecomunicazioni - DataLinkLayer: Gestione degli errori, Aprile 2010

Documenti analoghi
CODICI CORRETTORI E RIVELATORI DI ERRORE

Controllo e correzione degli errori

Livello Data Link. Davide Quaglia. Scopi

Sistemi di rilevazione e correzione automatica di errori di trasmissione

Protocollo di Controllo della Linea Dati. Controllo della Linea Dati. Individuazione degli Errori. Servizi Offerti

1) Codici ciclici. 2) Esempi di codici ciclici. 3) Algoritmi di codifica e decodifica. 4) Circuiti di codifica

Protocolli a finestra

Un ripasso di aritmetica: Conversione dalla base 10 alla base 2

Rappresentazione di numeri relativi (interi con segno) Rappresentazione di numeri interi relativi (con N bit) Segno e Valore Assoluto

Parte II: Reti di calcolatori Lezione 20

Università degli Studi di Bergamo

Per gli esercizi sulla algebra booleana, si consiglia di verificare tramite tabelle di verità le equivalenze logiche proposte sulle dispense.

Codifica binaria. Rappresentazioni medianti basi diverse

Conversione di base. Conversione decimale binario. Si calcolano i resti delle divisioni per due

Analogico vs. Digitale. LEZIONE II La codifica binaria. Analogico vs digitale. Analogico. Digitale

Principi di trasferimento affidabile

La Rappresentazione dell Informazione

Elementi di Algebra e di Matematica Discreta Numeri interi, divisibilità, numerazione in base n

Piccolo teorema di Fermat

La codifica dei numeri

Moltiplicazione. Divisione. Multipli e divisori

Calcolatori: Sistemi di Numerazione

1 Fattorizzazione di polinomi

Rete: classificazione in funzione della distanza fra due generici elementi

La codifica. dell informazione

Fondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012

Cap. 2 - Rappresentazione in base 2 dei numeri interi

1) Hamming bound, coset, codici equivalenti

Strato di Col o l l e l g e a g m a e m n e t n o

Rappresentazione dell Informazione

Aritmetica dei Calcolatori - Operazioni

Codifica di canale. (dalle dispense e dalle fotocopie) Trasmissione dell Informazione

Anno 1. Divisione fra polinomi

Rappresentazione dell informazione

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione dei numeri relativi

Sistemi di numerazione e codici. Capitolo 1

La codifica. dell informazione

La codifica digitale

623 = , 413 = , 210 = , 203 =

Un ripasso di aritmetica: Conversione dalla base 10 alla base 2

la trasmissione è regolata solamente dall algoritmo per il controllo del flusso prima di inviare l ACK.

Reti di Telecomunicazione Lezione 18

Lezione 3. I numeri relativi

Esame di INFORMATICA (*) Operazioni Aritmetiche: Somma. Lezione 3. Operazioni Aritmetiche: Somma. Operazioni Aritmetiche: Somma

1 Multipli e sottomultipli. Divisibilità

Rappresentazione di Numeri Reali. Rappresentazione in virgola fissa (fixed-point) Rappresentazione in virgola fissa (fixed-point)

Gruppi, Anelli, Campi

Comunicazione codifica dei dati. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Rappresentazione dei numeri interi in un calcolatore

Numeri interi. Laboratorio di Calcolo Paola Gallo

SISTEMI DI NUMERAZIONE

La Rappresentazione dell Informazione

Arithmetic and Logic Unit e moltiplicatore

Insiemi numerici. Teoria in sintesi NUMERI NATURALI

Calcolo numerico e programmazione Rappresentazione dei numeri

Livello di trasporto: meccanismi trasferimento dati affidabile

La tabella dell addizione Completa la tabella e poi rispondi alle domande.

Prontuario degli argomenti di Algebra

CONVERSIONE DA DECIMALE A BINARIO

Bit, Byte, Word e Codifica Dati

1. Supponendo che il canale trasmissivo sia esente da errori, si determini il throughput di S1.

Il Sistema di numerazione decimale

Strutture algebriche. Leggi di composizione. Leggi di composizione. Gruppi Insiemi di numeri Polinomi

Rappresentazione dei Dati

1.2f: Operazioni Binarie

TEOREMA DEL RESTO E REGOLA DI RUFFINI

Argomenti della lezione. Criteri di divisibilità fattorizzazione m.c.m. e M.C.D. frazioni ed espressioni

Esempio B2.1: dire il grado del monomio seguente rispetto ad ogni lettera e il suo grado complessivo:

Rappresentazione dei numeri binari.

Rappresentazione dei numeri interi in un calcolatore

Dipartimento di Ingegneria dell Informazione, Elettronica e Telecomunicazioni. Esercitazioni del corso di. Telecomunicazioni

0ROWLSOLFD]LRQHH'LYLVLRQH WUDQXPHULUHODWLYL

I.T.I. Modesto PANETTI B A R I

Riassunto Nell'esercitazione di oggi e' stata introdotta la codifica binaria naturale, intera e razionale in virgola fissa. Il materiale teorico

Codice binario. Codice. Codifica - numeri naturali. Codifica - numeri naturali. Alfabeto binario: costituito da due simboli

Rappresentazioni numeriche

APPUNTI DI MATEMATICA ALGEBRA \ CALCOLO LETTERALE \ MONOMI (1)

I.4 Rappresentazione dell informazione

Logica matematica e ragionamento numerico

Laboratorio di programmazione

La tabella dell addizione Completa la tabella e poi rispondi alle domande.

Rappresentazione. Notazione in complemento a 2. Complemento a due su 3 e 4 bit Complemento a due

Altrimenti, il M.C.D. di a e b è anche divisore di r (e.g. a=15,b=6,r=3 che è il M.C.D.)

Rappresentazione in virgola mobile Barbara Masucci

L insieme dei numeri razionali Q Prof. Walter Pugliese

Un polinomio è un espressione algebrica data dalla somma di più monomi.

Codici binari decimali

Codifica. Rappresentazione di numeri in memoria

Controllo di congestione

Corso di preparazione ai Giochi di Archimede Aritmetica, algebra e teoria dei numeri

Criteri di divisibilità

La Rappresentazione Dell Informazione

Trasmissione Seriale e Parallela. Esempio di Decodifica del Segnale. Ricezione e Decodifica. Tecniche di Comunicazione di Dati Digitali

Rappresentazione dei dati in memoria

Polinomi. Definizioni. Polinomi a più variabili. Grado di polinomi a più variabili. Operazioni tra polinomi. Somma. Moltiplicazione.

Codifica dell informazione

Reti di Telecomunicazioni 1

UNITÀ DIDATTICA 11 POLINOMI

ESERCIZIARIO DI MATEMATICA

COMUNICAZIONE SERIALE a cura dell' Ing. Buttolo Marco

Transcript:

1 11. Data link layer: codici di rilevazione di errore, gestione degli errori La rilevazione di errore Un codice a rilevazione di errore ha lo scopo di permettere al ricevente di determinare se vi sono stati errori in trasmissione Il codice non ha la finalità di correggere l errore, ma solo di rilevare che c è stato l errore Per raggiungere lo scopo si utilizzano bit di controllo in aggiunta ai bit dei dati La tecnica utilizzata è di assegnare in trasmissione ai bit di controllo un valore opportuno in funzione dei bit dei dati; in ricezione si calcolano nuovamente i valori dei bit di controllo e si fa la verifica con quelli ricevuti 1

Tecniche di codifica La codifica con bit di parità permette di rilevare errori singoli, ed in generale di un numero dispari di errori ma non un numero pari la codifica identifica burst di errori con probabilità del 50% Anche in questo caso si può utilizzare la tecnica di trasmettere K codeword in colonna per identificare errori burst di lunghezza non superiore a K; errori più estesi, o piccole serie multiple di errori produrranno un valore valido per ogni riga con probabilità 0.5 la probabilità che l errore non venga rilevato sarà pari a -k il vantaggio di questa codifica è il basso overhead (1 bit per ogni frame) Generalmente si utilizza una tecnica più efficiente, detta CRC (Cyclic Redundancy Check), o codifica polinomiale 3 Rappresentazione di sequenze di bit tramite polinomi Una sequenza di N bit può essere rappresentata tramite un polinomio a coefficienti binari, di grado pari a N-1, tale che i suoi coefficienti siano uguali ai valori dei bit della sequenza Il bit più a sinistra rappresenta il coefficiente del termine di grado N-1, mentre il bit più a destra rappresenta il termine noto (di grado 0) Ad esempio, la sequenza 1001011011 può essere rappresentata dal polinomio 9 6 3 Il grado del polinomio è determinato dal primo bit a sinistra di valore 1 presente nella sequenza

Aritmetica dei polinomi in modulo L aritmetica dei polinomi a coefficienti binari si gestisce con le regole della aritmetica modulo : le somme e le sottrazioni non prevedono riporti; sono pertanto coincidenti ed equivalenti all OR esclusivo: 10011011 11001010 01010001 + = 00110011 11001101 11111110 = + le divisioni sono eseguite normalmente, tranne che le sottrazioni seguono la regola sopra detta; in questi termini, il divisore sta nel dividendo quando il dividendo ha grado maggiore o uguale al divisore, mentre non si può dividere quando il dividendo ha grado inferiore al divisore 5 Esempio di divisione binaria di polinomi 6 6 3 = 3 c o n r e s 3

Codifica polinomiale (CRC) La tecnica consiste nel considerare i dati (m bit) da inviare come un polinomio di grado m-1 Trasmettitore e ricevitore si accordano sull utilizzo di un polinomio generatore G() di grado r Il trasmettitore aggiunge in coda al messaggio una sequenza di bit di controllo (CRC) in modo che il polinomio associato ai bit del frame trasmesso, costituito dall insieme di dati e CRC, sia divisibile per G() è sempre possibile trovare tale polinomio In ricezione si divide il polinomio associato ai dati ricevuti per G(X) se la divisione ha resto nullo, si assume che la trasmissione sia avvenuta senza errori se la divisione ha resto non nullo, sono certamente avvenuti errori 7 Generazione del codice CRC Sia M() il polinomio associato agli m bit di dati Sia G() il polinomio generatore di grado r Si aggiungono r bit a valore 0 in fondo ai bit di dati; il polinomio associato all insieme di m+r bit è quindi r M() Si calcola il resto della divisione r M()/G(), che è un polinomio R() di grado inferiore ad r, quindi rappresentativo di una sequenza di r bit Si costruisce la sequenza di bit associata al polinomio T() = r M()-R() (oppure r M()+R()), che equivale ad aggiungere i bit corrispondenti a R() in coda ai dati da inviare: vanno riportati tutti gli r bit associati ad R(), quindi anche eventuali zeri in testa al resto; questa è una sequenza di m+r bit il polinomio T() risulterà divisibile per G() con resto nullo 8

Esempio di calcolo di CRC Supponiamo di voler trasmettere con CRC la sequenza 1101011011, utilizzando il polinomio generatore equivalente alla sequenza di bit 10011 Si costruisce la sequenza 11010110110000, e la si divide per 10011 Il resto della divisione è 1110 Il frame che verrà trasmesso sarà quindi 11010110111110, che è divisibile per 10011 In ricezione si divide la sequenza ricevuta per lo stesso polinomio, e si verifica che il resto sia nullo 9 Caratteristiche del polinomio generatore Le caratteristiche del polinomio generatore determinano quali errori saranno rilevabili e quali invece potranno passare inosservati Detto T() il polinomio associato al frame trasmesso, il polinomio associato al frame ricevuto può essere espresso come T()+E(), dove E() avrà coefficiente 1 per ogni bit che è stato modificato da errori trasmissivi Risulta chiaro che un errore passerà inosservato solo se T()+E() sarà divisibile per G(), ma essendo per definizione T()/G() = 0, l errore passerà inosservato se E() sarà divisibile per G() 10 5

Caratteristiche del polinomio generatore (cont.) Errori di singolo bit: il polinomio E() avrà la forma: E() = i dove i è il bit errato; un polinomio G() costituito da più di un termine non potrà dividere E() Per errori di coppie di bit il polinomio ha la forma: E( ) = = in questo caso G() non potrà essere divisore di E() se G() non divide k per ogni k: già visto G() non divide ( k +1) per ogni k possibile (cioè fino a k pari al numero di bit del frame): sono noti molti polinomi semplici e di basso grado che non sono divisori di ( k +1) fino a valori di k molto elevati; ad esempio, il polinomio: non divide ( k +1) per K<3768 i k k c i k ( ) o i > k n G( ) 15 1 = 11 Caratteristiche del polinomio generatore (cont.) Errori in numero dispari di bit: se G() contiene a fattore (+1) non può essere divisore di un polinomio con numero dispari di elementi Per assurdo, supponiamo che E() sia divisibile per (+1) si può scrivere E() = (+1)Q() calcoliamo E(1) = (1+1)Q(1) ma 1+1 = 0, quindi E(1) = 0 Però se E() ha un numero dispari di elementi, E(1) è la somma di un numero dispari di 1, che fa 1 si ha quindi un assurdo che nega l ipotesi di partenza 1 6

Caratteristiche del polinomio generatore (cont.) Sequenze di errori di lunghezza r un burst di errori lungo K si può rappresentare come: E() = j ( k-1 + k- + +1) j determina la distanza dell ultimo bit errato dall ultimo bit del frame come detto, G() non divide j la restante parte di E() non potrà essere divisibile per G() se K r 13 Caratteristiche del polinomio generatore (cont.) Sequenze di errori di lunghezza r+1 in questo caso E() sarà divisibile per G() solo se il burst genera una sequenza identica al polinomio generatore la probabilità che questo accada è (½) r+1 Sequenze di errori di lunghezza maggiore si può dimostrare, nella assunzione che tutti i bit possano essere errati con uguale probabilità, che negli altri casi la probabilità che E() sia divisibile per G() è pari a (½) r 1 7

Polinomi standard Viste le caratteristiche dei polinomi, si sono identificati diversi polinomi opportuni per rendere molto improbabile la mancata rilevazione di errori I più comuni a 16 bit sono 16 16 Un polinomio standard a 3 bit utilizzato in molte applicazioni (tra cui IEEE 80) è il CRC-3: 3 6 15 1 10 3 5 8 7 C R CC R C 16 5-1 6 C C I 1 11 + 15 Gestione degli errori I protocolli a rilevazione di errore devono gestire due tipi di evento: perdita di un frame perdita di un riscontro dove la perdita può essere un evento noto (ricezione di un frame errato) o un evento ignoto (distruzione del frame in trasmissione) Generalmente si utilizzano una o più delle seguenti tecniche: riscontro positivo attesa di timeout per la ricezione dell ACK e ritrasmissione riscontro negativo Questi meccanismi si chiamano ARQ (Automatic Repeat request) 16 8

Gestione degli errori Esistono diversi meccanismi di ARQ, che si basano sulle funzionalità dei diversi protocolli di controllo di flusso ARQ stop-and-wait ARQ go-back N ARQ selective reject Poiché il loro funzionamento dipende da questi protocolli, li vedremo assieme all analisi del controllo di flusso 17 9