Sie sind auf Seite 1von 6

Le contrle derreur

La dtection derreur
Les donnes peuvent tre modifies (ou perdues) pendant le
transport

Comment se rendre compte de la modification/pertes des donnes


larrive des trames ?

Un service primordial pour de nombreuses applications

Suppression des erreurs, deux techniques :

Exemple : le transfert de fichier

Comment corriger larrive les donnes errones ? :

Modification au niveau physique :

la correction derreur larrive du paquet

dformation de londe
Faire en sorte que lmetteur, renvoie les trames errones/perdues:

Perte complte de paquet :


congestion du rseau, saturation des routeurs

P. Sicard - Cours Rseaux

Dtections et corrections derreurs 1

Applications
Transfert de donne sur un rseaux trs peu fiable:
Exemple: Minitel, correction derreur dans lADSL
Transfert de donne sur un rseaux peu fiable:

P. Sicard - Cours Rseaux

Dtections et corrections derreurs 2

La dtection/correction derreur
Ide: rajouter de linformation aux donnes permettant de dtecter/
corriger les erreurs larrive
Exemple de dtection: Code de rptition

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)

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

Lecture de CD/DVD (problme de rayure)


Problme lgrement diffrent : linformation peut aussi ne pas
exister (et on le sait)
P. Sicard - Cours Rseaux

la rcupration derreurs par re-mission

Dtections et corrections derreurs 3

Qualit de la dtection derreur ?


Est-on capable de dtecter 1 seul bit erron ? 2 bits ?...
P. Sicard - Cours Rseaux

Dtections et corrections derreurs 4

La correction derreur
Exemple de correction: Code de rptition
On triple linformation
On rajoute deux bits identiques pour chacun des bits transmettre

La dtection derreur
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

Exemple:
Donnes: 1 0 0 1 1
Code: 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1

Trs peu couteux en taille

Cot en taille: trs lev

Trs peu couteux en calcul

Qualit de la dtection derreur ?

Qualit de la dtection derreur ?

Si il y a une seule erreur on peut la corriger ?

Est-on capable de dtecter 1 seul bit erron ? 2 bits ?...

Si il y a deux erreurs ?
P. Sicard - Cours Rseaux

Dtections et corrections derreurs 5

Contrle derreur : un modle dtude


Mot de code
Si 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

Dtections et corrections derreurs 6

Dtection derreur
Proprit:
Pour dtecter ( coup sr) x erreurs il suffit que la distance minimale
hx+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:

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 de
contrle sont calculs en fonction des m bits de donnes.
P. Sicard - Cours Rseaux

P. Sicard - Cours Rseaux

Dtections et corrections derreurs 7

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
P. Sicard - Cours Rseaux

Dtections et corrections derreurs 8

Dtection derreur par


checksum

Exemple de code dtecteur derreur


Les bits de contrle sont calculs par lmetteur, le rcepteur
fait un calcul analogue aprs rception

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

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

k=8
k=8
1 2 3 4 5 6 7 8
9 10 ...

0 0 0 1 1 1 0 1
+
+
=

n=3

0 0 0 1 0 0 0 1
0 0 1 1 0 0 0 0
0 1 0 1 1 1 1 0

Complment 1
Bits de parit

P. Sicard - Cours Rseaux

Dtections et corrections derreurs 9

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

Checksum
P. Sicard - Cours Rseaux

1 0 1 0 0 0 0 1
Dtections et corrections derreurs 10

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

Peu coteux en taille

n
T:

Calcul coteux mais souvent fait par hard : ou exclusif successifs au


fur et mesure que la trame arrive

Donnes

000...0

G
Quotient

Reste

Circuit simple et rapide base de registre dcalage et de portes


XOR

P. Sicard - Cours Rseaux

Dtections et corrections derreurs 11

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
P. Sicard - Cours Rseaux

Dtections et corrections derreurs 12

Exemple calcul de CRC

Correction derreur
Proprit:

6 bits de donnes: 110101 , Polynme gnrateur 101 : x2 +1


11010100
101
0111
101
0100
101
00110
101
0110
101
Reste= 0 1 1

101
111011

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
P. Sicard - Cours Rseaux

Dtections et corrections derreurs 13

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

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 correcteur


m = 2, r = 3
M = {00111, 01100, 10000, 11011}, h = 3, on corrige une erreur
On envoie 01100, il arrive 11100 : une erreur
Le rcepteur compare le mot arriv aux 4 mots du code possible:
00111 et 11100 : 4 diffrences
01100 et 11100 : 1 diffrence
10000 et 11100 : 2 diffrences
11011 et 11100 : 3 diffrences
Seul 01100 possde une seule diffrence, cest le mot envoy, le
rcepteur peut corriger
P. Sicard - Cours Rseaux

Dtections et corrections derreurs


14

Le code correcteur de Hamming


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

Bits de contrle
1

8 9 10 11 12

Les codes correcteurs derreur cotent chers


Par exemple: 4 bits sont ncessaires pour corriger une erreur
sur 8 bits de donnes.
P. Sicard - Cours Rseaux

Dtections et corrections derreurs 15

P. Sicard - Cours Rseaux

Dtections et corrections derreurs 16

Le code correcteur de Hamming

Le code correcteur de Hamming

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:
Trame envoye:

Bit
de
Bit
Bitcontrle
de
decontrle
contrle
contrle
Bit de
4 213
1010
11 12 12
1 11 12 22 2333 3 444 4 555 5 6666 7777 88 8899 9910
10111111
1212
0
0
0
1
1
0
0
0
0 000 000 0 1 1 111 111 000 00 000 0110 1 111 1 1

...

Calcul de parit

Exemple :

A destination on recalcule les bits de contrle...


1

P. Sicard - Cours Rseaux

8 9 10 11 12
0

0 1

Dtections et corrections derreurs 17

P. Sicard - Cours Rseaux

Dtections et corrections derreurs 18

A la rception
Le code correcteur de Hamming

Trame reue
1

01 0

8 9 10 11 12
0

0 1

J
F

Quelle est la distance de Hamming de ce code correcteur ?

F
J

Calcul de 1 (1, 3, 5, 7, 9 , 11): 2 bits 1: pair donc juste

Si on change un bit de donne, forcment au moins deux bits de


contrle change aussi, donc h=3

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

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

2 + 4 = 6 , le 6me bit est faux, on peut le corriger


P. Sicard - Cours Rseaux

Dtections et corrections derreurs 19

P. Sicard - Cours Rseaux

Dtections et corrections derreurs 20

Le code correcteur de Hamming


Que se passe-t il si deux bits sont errons ?
Exemple

On rajoute un bit de contrle supplmentaire


Bit de parit sur lensemble de la trame

Trame envoye
1

8 9 10 11 12

0 1

Trame reue
1

8 9 10 11 12

0 1

On trouve impairs pour un 1et 4,


On corrige le bit 5, on rajoute une troisime erreur !!!
P. Sicard - Cours Rseaux

Dtections et corrections derreurs 21

Autre exemple de code


dtecteur/correcteur
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 ?

P. Sicard - Cours Rseaux

Le code correcteur de Hamming


gnralis

Dtections et corrections derreurs 23

Trame envoye
1 2 3

8 9 10 11 12

Trame reue
1 2 3
0

0 1

1 1

8 9 10 11 12

0 1

1 1

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
P. Sicard - Cours Rseaux

Dtections et corrections derreurs 22

Das könnte Ihnen auch gefallen