Transcript chapitre-iv

Les Réseaux Informatiques
Chapitre IV
Protection contre les
erreurs
Sommaire
Les Réseaux Informatiques
1. Introduction
2. taux d’erreur
3. Détection d’erreur par clé calculée
a. VRC (Vertical Redundancy Check)
b. LRC (Longitudinal Redundancy Check)
c. CRC (Cyclic Redundancy Check)
4. code autocorrecteur (Hamming)
Protection contre les erreurs
Transmission d’information
canal
bruit
récepteur
émetteur
Causes d’erreurs sur un canal




rayonnement électromagnétique
Les éclairs
câblage mal isolé
…………………..
Indépendamment des supports de communication et des techniques de
transmission utilisés, des perturbations vont se produire entraînant des
erreurs.
Dans ses conditions, la suite binaire reçue ne sera pas identique à la suite
émise.
Mise en oeuvre de techniques de protection contre les erreurs de transmission
Un codeur est introduit avant la transmission sur le
canal et un décodeur est placé en sortie du canal.
 Stratégies de protection contre les erreurs de transmission
Détection par écho: le récepteur renvoie en écho le
message reçu à l’émetteur
Détection par répétition: chaque message émis est suivi
de sa réplique
Détection d’erreur: détecter les erreurs, puis demander
une retransmission
Détection et correction d’erreur par code: substituer aux
caractères à transmettre , une combinaison binaire
différente du codage de base (code autocorrecteur)
Taux d’erreur sur un canal
nombre de bits erronés
taux d' erreur 
nombre de bits émis
10-9 pour les réseaux locaux (paire
torsadée)
 10-5 pour le RTC


10-10 à 10-12 sur une fibre optique.
10-7 à 10-8 sur un coaxial

taux élevé pour le téléphone sans fil

Détection d’erreur par clé
calculée
Principe général pour la détection des erreurs de transmission
un émetteur veut transmettre
quelconque) à un récepteur
un
message
(suite
binaire
l’émetteur transforme le message initial à l’aide d’un procédé de
calcul spécifique qui génère une certaine redondance des
informations au sein du message codé.
La plupart des systèmes de détection d’erreurs ajoute des
informations à chaque trame avant de la transmettre sur le support
De façon générale pour transmettre k bits, on ajoute r bits, soit au
total k + r = n bits transmis. On parle de code(n, k) ou de mot de
code.
le récepteur vérifie à l’aide du même procédé de calcul que le
message reçu est bien le message envoyé grâce à ces redondances.
En cas d’erreur le récepteur demande à l’émetteur de retransmettre
à nouveau les données.
• Exemple : Technique de bit de parité et codes cycliques ou détection
par clé calculée.
Définition générale
Un code (n, k) transforme (code) tout bloc
initial de k bits d’information en un bloc codé de n
bits. Le code introduit une redondance puisque n
> k. Alors les r (r=n-k) derniers bits forment un
champ de contrôle d’erreur.
On appelle mot du code, la suite de n bits
obtenue après un codage (n, k). Le nombre n de
bits qui composent un mot du code est appelé la
longueur du code. La dimension k étant la
longueur initiale des mots.
Principe des codes


Exploiter la redondance d’informations
 ajouter des bits de contrôle aux bits de données
Corriger est plus difficile que détecter
 plus de bits de contrôle
Mot de code
k bits de données
+
r bits de contrôle
=
n bits d’information (à transmettre)
Un tel mot de n bits est appelé un mot de code
Code de contrôle de parité
Methode VRC : Vertical Redundancy Check
(Technique à bit de parité simple)
C'est la méthode de la parité verticale.
A chaque caractère, on ajoute un bit de parité (1 ou 0) de façon a ce
que le nombre total de 1 soit paire ou impaire.
 parité paire lorsque le nombre de 1 est paire
 parité impaire lorsque le nombre de 1 est impaire.
À la réception :
Si le nombre de bits 1 est pair, on suppose qu'il n'y a pas eu
d'erreur.
Sinon, on sait alors qu'il y a eu une erreur de transmission (mais on
ne sait pas la localiser)
 Technique simple à mettre en oeuvre
 Détection de 2n erreurs impossible.
Exemple

parité paire
100 0001 : bits de données
+
0 : bit de contrôle
= 100 00010 : mot de code

parité impaire
101 1001
: bits de données
+
1 : bit de contrôle
= 101 1001 1 : mot de code
Effet de modification d’un bit avec parité paire
Données
originales
Parité de
l’émetteur
Information
transmise
Parité
récepteur
concordance
0100110 1
01001101
1
oui
0100110 1
01001001
0
non
Effet de modification de deux bits avec parité paire
Données
originales
Parité de
l’émetteur
Information
transmise
Parité
récepteur
concordance
0100110 1
01001101
1
oui
0100110 1
01000001
1
oui
Effet de modification de quatre bit avec parité paire
Données
originales
Parité de
l’émetteur
Information
transmise
Parité
récepteur
concordance
0100110 1
01001101
1
oui
0100110 1
01010011
1
oui
Effet de modification du bit parité
Données
originales
Parité de
l’émetteur
Information
transmise
Parité
récepteur
concordance
0100110 1
01001101
1
oui
0100110 1
01001100
1
Non
Methode LRC : Longitudinal Redundancy Check
(Technique à bit de parité à deux dimension)
1001000
H
H
E
L
L
O
LRC
Bit0
0
1
0
0
1
0
Bit1
0
0
0
0
1
1
Bit2
0
1
1
1
1
0
Bit3
1
0
1
1
1
0
Bit4
0
0
0
0
0
0
Bit5
0
0
0
0
0
0
Bit6
1
1
1
1
1
1
VRC
0
1
1
1
1
0
0 1000101
E
1
1001100
L
1
1001100
L
1
1001111
O
1
1000010
LRC
0
Methode CRC : Cyclic Redundancy Check
Les codes cycliques
Le principe consiste à l'émission :
diviser les bits du message a émettre considéré comme un
polynôme de degré k-1 P(x) par un autre polynôme (dit générateur)
G(x).
 Le reste de la division R(x) constitue le CRC parfois appelé aussi
FCS(Frame check sequence).
émettre le message avec le CRC
On transmet une séquence binaire M’ construite à partir du message
binaire M concaténé avec un CRC de r bits construit de tel sorte que
M’(x)/G(x) = 0.
A la réception
Recalculer le CRC de la même façon.
Les deux interlocuteurs (l’émetteur et le récepteur du signal)
conviennent d’un : « polynôme générateur » noté G(x)
 le CRC transmis est comparés avec celui calculé à la réception.
Si les valeurs diffèrent une erreur est signalée
Les valeurs transmises sont vues comme des polynômes
manipulés avec une arithmétique modulo 2 :
Avec un message
M = 1101011011
Et une fonction génératrice
G(x) = x4 + x + 1
On construit un message
M’’ = 1101011011 0000
(4 zéro car G de degré 4).
Le reste de
M’’
G
=1110
M’ = 1101011011 1110
Comment construire le CRC ?
Exemples de codes polynomiaux :
(i) L’avis V41 du CCITT conseille l’utilisation de codes
polynomiaux (de longueurs n =260, 500, 980 ou 3860
bits) avec le polynôme générateur G(x) = x16 + x12 + x5 +
1.
(ii) Le polynôme CRC-16 est utilisé par le protocole HDLC :
G(x) = x16 + x15 + x2+ 1.
(iii) Le polynôme suivant est utilisé par Ethernet :
G(x)=
x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+1.
Codes autocorrecteurs
Code de Hamming: correcteur d'erreurs
Le poids de Hamming d’un mot est le nombre de bits à 1 qu’il
contient.
 La distance de Hamming entre deux mots de même longueur est
définie par le nombre de positions binaires qui diffèrent entre ces
deux mots. On l’obtient par le poids de Hamming de la somme binaire
des 2 mots.
Distance minimale: la distance minimale dmin d’un code C est le plus
petit poids de Hamming d’un mot non nul.
dH(000,010) = dH(000,001) = … = 1
dH(000,110) = dH(110,101) = … = 2
dH(000,111) = dH(100,011) = … = 3
1000 1001
1011 0001
= 0011 1000
Dist(x,y) = 3
Capacité d’un code


Pour qu’un code soit capable de détecter d
erreurs, sa distance de Hamming minimale
doit être égal ou supérieur à d+1.
Pour qu’un code soit capable de corriger d
erreurs, sa distance de Hamming minimale doit
être égal à ou supérieur 2*d+1.
EXEMPLE: Le code (0 = 000,1 = 111) est :
• 2_detecteur car il détecte jusqu’à 2 erreurs dans le symbole
transmis ;
• 1_correcteur car il permet de corriger une erreur par symbole
Exemple : Code de Hamming
1_correcteur pour 4 symboles
Soit S un alphabet de 4 symboles avec S = { 00000, 00111, 11100 ,
11011 }
dmin(x,y) = 3
Code 2_détecteur et 1_correcteur.
Corriger: 00101 : dH(00101,00000) = 2 donc 00101 n’est pas le
premier symbole.
dH(00101,00111) = 1 donc 00101 est le second symbole(avec 1
erreur)
S nous permet de coder 4 valeurs binaires différentes soit 2 bits :
Un code de Hamming (R. W. Hamming, années 1950)
0000000 0100111 1000101 1100010
0001011 0101100 1001110 1101001
0010110 0110001 1010011 1110100
0011101 0111010 1011000 1111111
Dans le code correcteur ci-dessus, les mots de départ
a1a2a3a4 ont quatre bits (il y a donc 24 = 16 mots distincts).
On rajoute à chaque mot trois bits de contrôle a5, a6, a7
dont la valeur est déterminée par les quatre premiers bits :
a5 = a1 + a2 + a3,
a6 = a2 + a3 + a4,
a7 = a1 + a2 + a4
Ces relations étant calculées "modulo 2", c'est-à-dire en ne
retenant que le reste dans la division par 2 (par exemple, 1
+ 1 + 1 = 1, 1 + 0 + 1 = 0).
La distance minimale entre deux mots de ce code vaut 3, ce
qui permet de détecter et corriger une erreur sur l'un des
sept bits d'un mot.
Détection d'erreur - correction
Dans tous les cas de détection d'erreur,
lorsqu'une erreur est détectée, il faut la
corriger.
L'émetteur et le récepteur amorce un
dialogue (a l'initiative du récepteur) pour
effectuer la correction de l'erreur.