cours 3 detection-correction erreur
DESCRIPTION
Cours 3 Detection-correction ErreurTRANSCRIPT
-
Dtections et corrections derreurs P. Sicard - Cours Rseaux
Les donnes peuvent tre modifies (ou perdues) pendant le transport
Un service primordial pour de nombreuses applications
Exemple : le transfert de fichier
Modification au niveau physique :
dformation de londe
Perte complte de paquet :
congestion du rseau, saturation des routeurs
Le contrle derreur
1
Dtections et corrections derreurs P. Sicard - Cours Rseaux
La dtection derreur Comment se rendre compte de la modification/pertes des donnes
larrive des trames ?
Suppression des erreurs, deux techniques : Comment corriger larrive les donnes errones ? :
la correction derreur larrive du paquet
Faire en sorte que lmetteur, renvoie les trames errones/perdues: la rcupration derreurs par re-mission
2
Dtections et corrections derreurs P. Sicard - Cours Rseaux
Transfert de donne sur un rseaux trs peu fiable: Exemple: Minitel, correction derreur dans lADSL
Transfert de donne sur un rseaux peu fiable: Code correcteur cote cher (en terme quantit dinformation rajoute) On prfre faire de la rcupration derreur par re-mission (si il ny a
pas de contrainte de temps) Mthodes de dtection et correction sont aussi utilises pour le stockage de
donne Lecture de fichier sur un disque dur
Systme de correction intgr aux disques (RAID Redundant Arrays of Inexpensive Disks)
Lecture de CD/DVD (problme de rayure) Problme lgrement diffrent : linformation peut aussi ne pas
exister (et on le sait)
Applications
3
Dtections et corrections derreurs P. Sicard - Cours Rseaux
Ide: rajouter de linformation aux donnes permettant de dtecter/corriger les erreurs larrive
Exemple de dtection: Code de rptition On duplique linformation Par exemple on rajoute un bit identique pour chacun des bits
transmettre Exemple:
Donnes: 1 0 0 0 1 1 Code: 1 1 0 0 0 0 0 0 1 1 1 1
Cot en taille : lev
Cot en calcul faible
Qualit de la dtection derreur ?
Est-on capable de dtecter 1 seul bit erron ? 2 bits ?...
La dtection/correction derreur
4
-
Dtections et corrections derreurs P. Sicard - Cours Rseaux
Exemple de correction: Code de rptition
On triple linformation
On rajoute deux bits identiques pour chacun des bits transmettre
Exemple:
Donnes: 1 0 0 1 1
Code: 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1
Cot en taille: trs lev
Qualit de la dtection derreur ?
Si il y a une seule erreur on peut la corriger ?
Si il y a deux erreurs ?
La correction derreur
5
Dtections et corrections derreurs P. Sicard - Cours Rseaux
Exemple de dtection: Le code de parit
On rajoute un bit 1 ou 0 suivant la parit du nombre de bits 1 dans les donnes Le rcepteur vrifie la valeur de ce bit de parit.
Exemple: Donnes: 1 0 0 0 1 1 Bit de parit: 1 Donnes: 1 0 0 1 1 1 0 1 1 Bit de parit : 0
Trs peu couteux en taille Trs peu couteux en calcul Qualit de la dtection derreur ?
Est-on capable de dtecter 1 seul bit erron ? 2 bits ?...
La dtection derreur
6
Dtections et corrections derreurs P. Sicard - Cours Rseaux
Mot de codeSi une trame contient m bits de donnes et r bits de contrle, on appelle mot du code le mot form par les m + r bits. On pose n = m + r
Distance de Hamming tant donn deux mots de n bits m1 et m2, le nombre de bits dont ils
diffrent est appel leur distance de Hamming (note Disth)
Distance de Hamming du code complet (ou distance minimale)h = { Min Disth(x1, x2) ; x1 et x2 M et x1x2}M est lensemble des 2 m mots de codes possibles si on admet que les r bits decontrle sont calculs en fonction des m bits de donnes.
Contrle derreur : un modle dtude
7
Dtections et corrections derreurs P. Sicard - Cours Rseaux
Dtection derreur Proprit:
Pour dtecter ( coup sr) x erreurs il suffit que la distance minimale h x + 1
En effet ainsi sil y a x erreurs on ne pourra pas retomber sur un code existant (diffrent forcment de x+1 bits)
Exemple: On suppose que le rcepteur possde en mmoire lensemble des mots
justes
Il compare le mot reu chacun de ces mots justes
m = 2, r =1 : M = {000, 011, 101, 110} h=2 Supposons 011 envoy et 111 reu (donc une erreur) 111 forcment diffrent des mots justes: encore au moins un bit
diffrent puisque h=2. Le rcepteur sait donc quil y a une erreur
8
-
Dtections et corrections derreurs P. Sicard - Cours Rseaux
Exemple de code dtecteur derreur
9 10 ...1 2 3 4 5 6 7 8
Bits de parit
k=8
n
Les bits de contrle sont calculs par lmetteur, le rcepteur fait un calcul analogue aprs rception
Bit de parit m = 2, r =1 : M = {000, 011, 101, 110 } h = 2 aucune erreur double mais dtecte aussi tous les erreurs dont
le nombre est impair
Bit de parit par colonne: Trame considre comme une matrice n*k bits 1 bit de parit par colonne h=2 dtection des rafales derreurs de longueur k
9
Dtections et corrections derreurs P. Sicard - Cours Rseaux
Donnes considres comme n mots de k bits Bits de contrles = complment 1 de la somme des n mots A la rception la somme des n mots de donnes plus le checksum ne
doit pas contenir de 0 h=2 mais aussi dtection de certaines erreurs doubles (dans les
colonnes) et des rafales derreur de longueur k Utilis dans UDP, TCP
Dtection derreur par checksum
0 0 0 1 1 1 0 1
k=8
n=3++
0 0 0 1 0 0 0 1
=
Checksum
0 0 1 1 0 0 0 00 1 0 1 1 1 1 0
1 0 1 0 0 0 0 1
Complment 1
10
Dtections et corrections derreurs P. Sicard - Cours Rseaux
Dtection derreur par CRC (Cyclic redundancy Code)
Plus performant que les simples Checksums, surtout pour les paquets/rafales derreurs
Ne dpend pas de la taille des donnes
Peu coteux en taille
Calcul coteux mais souvent fait par hard : ou exclusif successifs au fur et mesure que la trame arrive
Circuit simple et rapide base de registre dcalage et de portes XOR
11
Dtections et corrections derreurs P. Sicard - Cours Rseaux
Principe de calcul dun CRC Base sur des calculs de division de polynme coefficient dans [0, 1] Exemple: 1 0 1 0 1 reprsente x4+x2+1 Division de x3+x2+1= (x2+1)* (x + 1) + (x)# : Reste =x, Quotient = x+1 Arithmtique polynomiale modulo 2 (sans retenue): soustraction et addition
sont quivalentes un ou-exclusif bit bit On se donne un polynme gnrateur G de degr n qui dtermine le nombre
de bits de contrle
T= Quotient*G + Reste donc (T+Reste)/G = 0 La trame envoye E= (Donnes, Reste) est divisible par G, il suffit
larrive de calculer la division de E par G. Si le reste est non nul il y a une erreur
000...0DonnesT: G
QuotientReste
n
12
-
Dtections et corrections derreurs P. Sicard - Cours Rseaux
6 bits de donnes: 110101 , Polynme gnrateur 101 : x2 +1
On envoie E= 110101 11 On peut avec n=16 dtecter toutes les erreurs simples et doubles, toutes les
erreurs comportant un nombre impair de bits et tous les paquets d'erreur de longueur 16 et, avec une trs bonne probabilit, les paquets derreurs de longueur suprieure.
Exemple: Ethernet utilise un champs CRC 32 bits, Compression ZIP utilise un CRC 16 ou 32 bits
Exemple calcul de CRC
1 1 0 1 0 1 0 0 1 0 11 0 10 1 1 1 1 1 1 0 1 1
1 0 10 1 0 0
1 0 10 0 1 1 0
1 0 10 1 1 0
1 0 1Reste= 0 1 1
13
Dtections et corrections derreurs P. Sicard - Cours Rseaux
Proprit: Pour corriger x erreurs il suffit que la distance minimale h 2x + 1 En effet s il y a x erreurs, le code erron reste ainsi le plus proche du
code juste, on peut donc le retrouver. Les autres ont encore au moins x+1 diffrences.
Exemple de code correcteurm = 2, r = 3 M = {00111, 01100, 10000, 11011}, h = 3, on corrige une erreurOn envoie 01100, il arrive 11100 : une erreurLe rcepteur compare le mot arriv aux 4 mots du code possible:00111 et 11100 : 4 diffrences01100 et 11100 : 1 diffrence10000 et 11100 : 2 diffrences11011 et 11100 : 3 diffrencesSeul 01100 possde une seule diffrence, cest le mot envoy, le
rcepteur peut corriger
Correction derreur
14
Dtections et corrections derreurs P. Sicard - Cours Rseaux
Problme : Quelle est la valeur minimale de r permettant de corriger les
erreurs simples dans des trames de m bits de donnes et r de contrle ? on a 2m mots du code possibles (toutes les combinaisons
possibles des donnes) 1 mot juste peut aboutir n=m+r mots diffrents de 1 bit (n
erreurs possibles) Il faut que nombre de mots possibles sur n bits soit
suprieur au nombre de mots justes plus le nombre de mots faux (avec 1 erreur). Sinon on peut (avec une erreur) retomber sur un autre code (juste ou faux)
il faut donc que 2m+n*2m 2n , soit (n+1)2m 2(m+r), soit (m + r + 1) 2 r
Les codes correcteurs derreur cotent chers Par exemple: 4 bits sont ncessaires pour corriger une erreur sur 8 bits de donnes.
15
Dtections et corrections derreurs P. Sicard - Cours Rseaux
Le code correcteur de Hamming
16
Proprit : ncessite le nombre minimal de bit de contrle pour corriger une erreur
m=1 , r=2 jusqu m=4 , r= 3 jusqu m=11 r=4 ....
Utilisable pour nimporte quelle taille de donne Les bits de contrle sont les bits de numro gal une puissance de 2
1 2 3 4 5 6 7 8 9 10 11 12
Bits de contrle
-
Dtections et corrections derreurs P. Sicard - Cours Rseaux
Les bits de donnes qui servent au calcul dun bit de contrle de numro X sont ceux tel que X apparat dans la dcomposition en puissance de 2 de leur numro.
Exemple: 7 = 1 + 2+ 4 donc 7 apparat dans le calcul de 1, de 2 et de 4
1 calcul de telle faon que (1, 3, 5, 7, 9, 11, ) parit paire 2 calcul de telle faon que (2, 3, 6, 7, 10, 11,) parit paire 4 calcul de telle faon que (4, 5, 6, 7, 12, ) parit paire
...
Exemple :
Le code correcteur de Hamming
17
1 2 3 4 5 6 7 8 9 10 11 12
Calcul de parit
0 0 1 1 0 0 0 1 1
Dtections et corrections derreurs P. Sicard - Cours Rseaux
Exemple: Trame envoye:
Le code correcteur de Hamming
18
1 2 3 4 5 6 7 8 9 10 11 12
Bit de contrle 1
0 0 1 1 0 0 0 1 1
1 2 3 4 5 6 7 8 9 10 11 120 0 0 1 1 0 0 0 1 1
Bit de contrle 2
1 2 3 4 5 6 7 8 9 10 11 120 0 0 1 1 1 0 0 0 1 1
Bit de contrle 31 2 3 4 5 6 7 8 9 10 11 120 0 0 1 1 1 0 0 0 0 1 1
Bit de contrle 4
A destination on recalcule les bits de contrle...
Dtections et corrections derreurs P. Sicard - Cours Rseaux
Calcul de 1 (1, 3, 5, 7, 9 , 11): 2 bits 1: pair donc juste Calcul de 2 (2, 3, 6, 7, 10, 11): 1 bit 1 : impair donc faux Calcul de 4 (4, 5, 6, 7, 12) : 3 bits 1 : impair donc faux Calcul de 8 (9,10, 11, 12) : 2 bits 1: pair donc juste La somme des numros des bits de contrle errons donne le numro du bit qui porte lerreur
A la rception
19
2 + 4 = 6 , le 6me bit est faux, on peut le corriger
Trame reue
1 2 3 4 5 6 7 8 9 10 11 120 0 0 1 1 0 0 0 0 0 1 1
FJ
FJ
1
Dtections et corrections derreurs P. Sicard - Cours Rseaux
Quelle est la distance de Hamming de ce code correcteur ?
Si on change un bit de donne, forcment au moins deux bits de contrle change aussi, donc h=3
Que se passe-t il si cest un bit de contrle qui est erron ?
Seul une erreur apparait pour ce bit de contrle, cela ne sert rien mais on peut le corriger
Le code correcteur de Hamming
20
-
Dtections et corrections derreurs P. Sicard - Cours Rseaux
Que se passe-t il si deux bits sont errons ? Exemple
Le code correcteur de Hamming
21
1 2 3 4 5 6 7 8 9 10 11 120 0 0 1 1 1 0 0 0 0 1 1
Trame envoye
1 2 3 4 5 6 7 8 9 10 11 120 0 1 1 1 0 0 0 0 0 1 1
Trame reue
On trouve impairs pour un 1et 4, On corrige le bit 5, on rajoute une troisime erreur !!!
Dtections et corrections derreurs P. Sicard - Cours Rseaux
On rajoute un bit de contrle supplmentaire Bit de parit sur lensemble de la trame
Le code correcteur de Hamminggnralis
22
On trouve impairs pour un 1et 4, Le bit de parit supplmentaire est juste, il devrait tre faux si le
bit 5 seulement tait faux On ne peut pas corriger mais on a dtect au moins 2 erreurs
1 2 3 4 5 6 7 8 9 10 11 120 0 0 1 1 1 0 0 0 0 1 1
Trame envoye
Trame reue
1
1 2 3 4 5 6 7 8 9 10 11 120 0 1 1 1 0 0 0 0 0 1 1 1
Dtections et corrections derreurs P. Sicard - Cours Rseaux
Pour dtecter les erreurs on transmet les donnes par blocs de n lignes
de k bits. On rajoute un bit de parit par ligne et un par colonne.
Quelle est la distance de Hamming de ce code?
Quels types derreur peut on dtecter ?
Peut on corriger des erreurs ? Si oui comment ?
Autre exemple de code dtecteur/correcteur
23