Reti di CalcolatoriAndrea Frosini1 Reti di Calcolatori a.a. 2005/06 Lezione 7.

Slides:



Advertisements
Presentazioni simili
Rappresentazioni numeriche
Advertisements

I numeri naturali ….. Definizione e caratteristiche
Fondamenti di Informatica
IL NUMERO …qualche idea…..
Gli Elementi di Euclide
Le Informazioni e la loro Rappresentazione nei calcolatori
Trasmissione delle informazioni
Capitolo 8 Sistemi lineari.
PROPRIETÀ DEI DETERMINANTI
Determinanti del primo ordine
E.Mumolo. DEEI Reti di calcolatore e Applicazioni Telematiche – Livello Dati Lezioni di supporto al corso teledidattico E.Mumolo. DEEI.
esponente del radicando
2ab2 2b4 4x − 2y a 3b2y3 3b2y3b Definizione e caratteristiche
1 Istruzioni, algoritmi, linguaggi. 2 Algoritmo per il calcolo delle radici reali di unequazione di 2 o grado Data lequazione ax 2 +bx+c=0, quali sono.
6. Catene di Markov a tempo continuo (CMTC)
Sistemi e Tecnologie della Comunicazione
Sistemi e Tecnologie della Comunicazione
Modulazione QAM: idea base
CONFRONTO TRA DUE MEDIE:
File.
DefinizioneUn polinomio si dice…. Operazioni con i polinomi Prodotti notevoli Regola di RuffiniTeorema del resto di Ruffini fine Mammana Achille Patrizio.
Sistemi di equazioni lineari
Corso di Informatica per Giurisprudenza
I CODICI.
CODICI Si ringrazia il prof. Di Santo per aver gentilmente messo a disposizione il proprio materiale per la preparazione di alcune delle slides presenti.
Codici binari decimali
Sistema di comunicazione
Gli esseri viventi ricevono informazione direttamente dal mondo circostante e dai propri simili attraverso i sensi (percezione). La percezione, tuttavia,
Codifica binaria Rappresentazione di numeri
I File.
Rappresentazione di numeri relativi (interi con segno)
Usare rappresentazioni di lunghezza fissa porta ad avere valori non rappresentabili: Overflow indica un errore nella rappresentazione del risultato in.
Conversione binario - ottale/esadecimale
Conversione binario - ottale/esadecimale
Limiti al trasferimento di informazione u Il tempo necessario per trasmettere dellinformazione dipende da: –la velocita di segnalazione (cioe quanto velocemente.
1 Esercizio 1 Un router riceve da un collegamento A lungo 10 km a 100 Mb/s e instrada i pacchetti ricevuti, lunghi 1000 bit verso una linea duscita B a.
Reti di CalcolatoriAndrea Frosini1 Reti di Calcolatori a.a. 2005/06 Lezione 14.
MATRICI classe 3 A inf (a.s ).
Le operazioni con i numeri
Definizione di determinante
Esercizio 10.* Un cassiere vuole dare un resto di n centesimi di euro usando il minimo numero di monete. a) Descrivere un algoritmo goloso per fare ciò.
Reti di CalcolatoriAndrea Frosini1 Reti di Calcolatori a.a. 2005/06 Esercizi.
CORSO DI CRITTOGRAFIA Quinto incontro PROGETTO LAUREE SCIENTIFICHE
Radix-Sort(A,d) // A[i] = cd...c2c1
Reti di Calcolatori Lezione 11 a.a. 2005/06 Reti di Calcolatori
Reti di Calcolatori Lezione 4 a.a. 2005/06 Reti di Calcolatori
Un modem, una scheda di rete, o comunque una unità di comunicazione tra calcolatori elettronici, trasmettendo uninformazione, a causa di disturbi esterni,
Introduzione al controllo derrore. Introduzione Quando dei dati vengono scambiati tra due host, può accadere che il segnale venga alterato. Il controllo.
TCP/IP.
Corso di Matematica (6 CFU) (4 CFU Lezioni +2 CFU Esercitazioni)
Tecniche di progettazione Fault Tolerant
TESINA DI SISTEMI.
Rappresentazione dell’informazione nel calcolatore.

IL CAMPIONE.
Fondamenti di Informatica
Bit singolo e burst u un canale che trasmette voce tollera bene gli errori distribuiti uniformemente –perche’ errori singoli hanno effetti simili al rumore.
Rappresentazione dell'informazione
Rappresentazione dell'informazione 1 Se ho una rappresentazione in virgola fissa (es. su segno e 8 cifre con 3 cifre alla destra della virgola) rappresento.
La codifica dei numeri.
Conversione binario-ottale/esadecimale
Informatica Lezione 3 Psicologia dello sviluppo e dell'educazione (laurea magistrale) Anno accademico:
Sistemi e Tecnologie della Comunicazione
Rappresentazione dei numeri
Divisione tra un polinomio ed un binomio Regola di Ruffini
I sistemi di numerazione
Analisi matematica Introduzione ai limiti
Criteri di divisibilità
Cenni di Crittografia Luigi Vetrano TechnoLabs S.p.A. L’Aquila, Aprile 2011.
Transcript della presentazione:

Reti di CalcolatoriAndrea Frosini1 Reti di Calcolatori a.a. 2005/06 Lezione 7

Reti di CalcolatoriAndrea Frosini2 Nel modello di riferimento: Application Transport Network Data Link Fisico

Reti di CalcolatoriAndrea Frosini3 Rilevare errori - schema Host1: messaggio M + bit di controllo R = parola di codice C Host2: riceve parola C C è una parola del codice NO Errore rilevato! SI Host2: trasmette OK ma … C == C SINO Errore non rilevato! Nessun errore!

Reti di CalcolatoriAndrea Frosini4 Per correggere un singolo errore su m bit si devono impiegare almeno r bit di check, con 2 r m + r + 1 ossia sono necessari circa log 2 m bit Esiste un codice (codice di Hamming) che raggiunge tale limite teorico Esiste una semplice tecnica che consente di impiegare il codice di Hamming per correggere burst di errori (cioè gruppi contigui di errori, come usualmente accade nelle trasmissioni reali). Codici per la correzione di errori

Reti di CalcolatoriAndrea Frosini5 Codice di Hamming per burst di errori Il codice di Hamming corregge un singolo errore su stringhe di m bit Supponiamo di voler invece correggere un burst di al più k errori (ma non tutti i k bit sono necessariamente sbagliati!) 1. codificare k messaggi consecutivi di lunghezza m, ottenendo k parole di codice di lunghezza n 2. organizzare le k parole di codice in una matrice 3. inviare i k bit della prima colonna, poi i k bit della seconda colonna,..., infine i k bit della n-esima colonna Se il burst di errori è lungo al più k, ciascuna riga della matrice può avere al più 1 bit errato, quindi il codice è in grado di correggerlo

Reti di CalcolatoriAndrea Frosini6 23 Codice di Hamming per burst di errori - idea Supponiamo di voler trasmettere parole di 7 lettere ( m = 7 ) su una linea con burst di errori di al più 5 lettere ( k = 5 ). La situazione è la seguente: a marean p eptied inalid f r o si ettear r in l 123 … 1 a maXean p epXied inXlid f r X si eXtear r in l … XXXXX

Reti di CalcolatoriAndrea Frosini7 Codici per il rilevamento di errori I codici per il rilevamento di errori sono in pratica più diffusi dei codici per la correzione di errori: i codici per il rilevamento sono molto più efficienti dei codici per la correzione (meno ridondanza nei bit trasmessi) se un codice per la correzione di 1 errore indica che un bit è errato, vi è una probabilità non trascurabile che si sia verificato un intero burst di errori (gli errori tendono ad addensarsi) Il più semplice codice per il rilevamento di errori è il bit di parità Tale codice ha distanza di Hamming pari a 2, quindi garantisce solo il rilevamento del singolo errore

Reti di CalcolatoriAndrea Frosini8 Un solo bit di controllo è sufficiente per blocchi di qualunque dimensione I burst di errori vengono rilevati solo quando il numero effettivo di bit sbagliati è dispari, ossia con probabilità 50% Bit di parità Un metodo per rilevare burst di al più k errori basato sul bit di parità è il seguente: 1. distribuire i bit da trasmettere in una matrice con righe di k bit 2. per ciascuna colonna, calcolare il relativo bit di parità 3. inviare la prima riga, poi la seconda riga, eccetera 4. inviare come ultima riga i bit di controllo

Reti di CalcolatoriAndrea Frosini9 Il codice polinomiale, detto anche cyclic redundancy code (CRC), è il codice per il rilevamento di errori più diffuso In apparenza è complesso, ma esistono circuiti hardware abbastanza semplici che lo calcolano efficientemente E basato sulla teoria dei campi algebrici: le addizioni e sottrazioni sono sempre effettuate modulo 2 (XOR), quindi non esiste riporto o prestito la divisione è effettuata come in binario, ma con sottrazioni modulo 2; inoltre un divisore sta nel dividendo se il dividendo ha tanti bit significativi quanti il divisore, ossia se il resto ha strettamente meno bit significativi del divisore Codice polinomiale

Reti di CalcolatoriAndrea Frosini10 Il codice polinomiale è basato sulla rappresentazione di polinomi algebrici a coefficienti in {0, 1} con sequenze di bit Una sequenza di m bit rappresenta un polinomio di grado (al più) m – 1; ciascun bit è il valore di un coefficiente. Ad esempio: corrisponde al polinomio x 10 +x 6 +x 3 +1 Rappresentazione di polinomi con sequenze di bit

Reti di CalcolatoriAndrea Frosini11 Polinomio generatore Il polinomio generatore G(x) è un polinomio algebrico prefissato di grado r (la stringa ha r + 1 bit). E conosciuto sia dal trasmittente che dal ricevente. Il primo e lultimo bit devono essere 1. Il messaggio da trasmettere è rappresentato da un altro polinomio M(x) di grado al più n - 1 (n > r) Idea chiave: appendere al messaggio una stringa di bit di controllo in modo tale che il polinomio corrispondente alla parola di codice sia divisibile per G(x) Se uno o più errori di trasmissione modificano la parola di codice, il polinomio corrispondente non sarà divisibile, con alta probabilità, per G(x).

Reti di CalcolatoriAndrea Frosini12 Algoritmo di calcolo del CRC 1. Mittente e destinatario si mettono d'accordo su un polinomio generatore G(x), con bit più significativo e meno significativo uguali ad 1 2. Il mittente aggiunge al frame un checksum di r bit 0 in coda agli m bit del messaggio (la nuova stringa rappresenta il polinomio x r M(x)) 3. Dividere la stringa corrispondente a x r M(x) per la stringa corrispondente a G(x) 4. Sottrarre il resto (che ha sempre al più r bit) dalla stringa corrispondente a x r M(x) 5. Il risultato è il polinomio T(x) da trasmettere: è divisibile per G(x) ed i primi m bit sono uguali a quelli di M(x) Il polinomio T (x) ricevuto viene diviso per G(x): il messaggio viene accettato se e solo se il resto della divisione è zero

Reti di CalcolatoriAndrea Frosini13 Fissiamo il polinomio generatore: G(x) = x 4 +x+1 (corrispondente a 10011) Sia il messaggio = (corrispondente a M(x) = x 5 +x 3 +x 2 +1) Passo 1: aggiungiamo r = 4 bit 0 al messaggio: Passo 2: dividiamo x 4 M(x) per G(x): scartiamo il risultato e teniamo il resto (la divisione sarà : = con resto 1110 ) Passo 3: calcoliamo – 1110 = Passo 4: trasmettiamo la sequenza ottenuta Calcolo del CRC - Esempio

Reti di CalcolatoriAndrea Frosini14 Sia T(x) il polinomio trasmesso, e sia T(x)+E(x) il polinomio ricevuto Ogni bit 1 in E(x) corrisponde ad un bit invertito per errore T(x)+E(x) diviso G(x) ha resto zero se e solo se E(x) è nullo (trasmissione senza errori), oppure E(x) è un multiplo di G(x) Errori catturati dal CRC I

Reti di CalcolatoriAndrea Frosini15 Se G(x) ha due o più termini, il codice polinomiale rileva tutti gli errori singoli (E(x) = x i non può essere multiplo di G(x), perché G(x) contiene sempre almeno due termini) Se G(x) non è divisibile per x e non divide alcun x k +1, con k = 1,..., n, il codice polinomiale rileva tutti gli errori in parole di codice da n bit consistenti in due bit invertiti (cioè tali che E(x) = x i +x j ) (?perché?) Ad es. x 15 +x non divide x k +1 per ogni k < Se G(x) ha come fattore x + 1, il codice polinomiale rileva tutti gli errori consistenti di un numero dispari di bit (?perchè?) Errori catturati dal CRC II

Reti di CalcolatoriAndrea Frosini16 Se G(x) ha grado r (r bit di controllo), il codice polinomiale rileva tutti i burst di al più r errori Infatti, un burst di k errori è rappresentato da E(x) = x i (x k ) Dato che G(x) contiene il termine x 0, G(x) non può avere x i come fattore; se k - 1 < r, laltro fattore di E(x) non può essere multiplo di G(x) (aggiungo qualcosa che è più piccolo di G(x)). Perciò il resto di E(x)/G(x) non può essere nullo Dato un burst di r + 1 errori, la probabilità che esso non sia rilevato è 1/2 r-1 (solo quando gli r+1 bits sono uguali a G(x)); la probabilità di non rilevare un burst di più di r + 1 errori è 1/2 r (assumendo che allinterno del burst gli errori si distribuiscano in modo casuale) Errori catturati dal CRC III

Reti di CalcolatoriAndrea Frosini17 CRC standard I Alcuni polinomi generatori sono diventati standard internazionali: CRC-8: x 8 +x 2 +x+1 (usato in reti ATM) CRC-10: x 10 +x 9 +x 5 +x 4 +x+1 (usato in reti ATM) CRC-12: x 12 +x 11 +x 3 +x 2 +x+1 (usato per caratteri codificati con 6 bit) CRC-16: x 16 +x 15 +x 2 +1 (usato per caratteri ad 8 bit) CRC-CCITT: x 16 +x 12 +x 5 +1 (usato da HDLC) CRC-32: x 32 +x 26 +x 23 +x 22 +x 16 +x 12 +x 11 +x 10 +x 8 +x 7 +x 5 + x 4 +x 2 +x +1 (usato in IEEE 802 e in reti ATM)

Reti di CalcolatoriAndrea Frosini18 Il codice a 32 bit CRC-32 rileva: tutti gli errori singoli e doppi tutti gli errori con numero dispari di bit tutti i burst di errori di lunghezza al più 32 teoricamente, il % di tutti i burst di errori lunghi più di 32 bit In realtà la stima teorica per i burst lunghi 33 o più bit è troppo ottimistica, in quanto i bit erronei non sono distribuiti allinterno del burst in modo veramente casuale CRC standard II