Title: D
1Détection et correction derreurs
- au sein de la couche 2 liaison de données
2Introduction
- Les erreurs de transmission sont
- rares sur des supports numériques (fibre
optique), - beaucoup plus fréquentes sur les boucles locales
du RTC (paires torsadées analogiques) ou les
réseaux sans fil. - Ces erreurs se produisent la plupart du temps en
rafale - Avantage (par rapport aux erreurs isolées, ie 1
seul bit) en moyenne, moins de blocs de bits
sont affectés. Exemple - Soit la taille des blocs 1000 bits, le taux
derreur 1/1000 - Erreurs isolées la plupart des blocs
contiennent 1 erreur - Erreurs en rafale de 100 ou plus 1 ou 2 blocs
sur 100 seulement - Inconvénient beaucoup plus difficiles à
détecter et à corriger
3Il faut donc apprendre à vivre avec les erreurs
- Deux stratégies ont été développées. Lémetteur
inclut dans le bloc de données - suffisamment de redondance pour que le récepteur
puisse reconstituer les données originales. - ? utilise des codes correcteurs derreur
- plutôt pour des canaux non fiables comme le sans
fil - juste assez de redondance pour que le récepteur
puisse détecter les erreurs et demander une
retransmission. - ? utilise des codes détecteurs derreur
- plutôt pour des canaux fiables comme la fibre
optique
4Principe
- On souhaite envoyer m bits de données.
- On y rajoute r bits de redondance selon un
certain algorithme ou codage
. - ? Ainsi, la longueur de la trame envoyée est n
m r.(cette séquence de n bits un mot du
code) - A la réception, en fonction du codage , on
pourra détecter (2.) et/ou corriger (1.) des
erreurs. - En général, lapproche (1.) induit davantage de
redondance, ce qui diminue le débit utile du
canal
5Généralités sur les codes
- Un code C de longueur n est un ensemble de mots
(séquences) de n bits.Ex n 3, C 110,
101, 011 - Parmi toutes les séquences possibles de n bits
(2n) - celles qui appartiennent à C sont valides.
- celles qui nappartiennent pas à C sont
invalides. - Ex 111 est invalide 101 est valide
6A la réception dune séquence S de n bits
- Soit S est invalide (nappartient pas au code C).
- Il y a forcément eu une (ou plusieurs) erreur de
transmission. - Le récepteur corrige (1.) ou demande une
retransmission (2.). - Soit S est valide (appartient au code C).
- La séquence S est considérée comme correcte
et acceptée par le récepteur. - Remarque considérée seulement, car
- si lémetteur envoie 011 et le récepteur reçoit
101, - aucun moyen de détecter quil y a eu des erreurs
(2 ici) - car 101 est valide !
7Distance de Hamming dun code
- Cest le critère qui permet dévaluer le pouvoir
détecteur dun code ainsi que son pouvoir
correcteur. - Distance de Hamming entre 2 mots (noté dh) nbre
de positions qui ont des valeurs distinctes.Ex
dh ( 110011, 101010 ) 3 - (Astuce nbre de 1 du OU exclusif)
- Distance de Hamming dun code C (noté DH(C)) le
minimum des distances entre 2 mots du codeEx
DH ( 110, 101, 011 ) 2 DH ( 0011,
0101, 1001, 0110, 1010, 1100 ) 2
8Représentation graphique
- Sommets ts les mots de n bits
- Liens entre les mots tq dh 1
- DH(C) longueur du plus court chemin entre 2
mots valides
9Pouvoir détecteur dun code
- Déf On parle derreur dordre k lorsquun mot
émis u diffère par k bits du mot reçu v, ie
dh(u,v) k. - Pour détecter une erreur dordre 1, quelle doit
être la distance de Hamming du code ? - Réponse DH(C) 2en effet, dans ce cas, 1
erreur simple ne peut pas changer un mot du code
en un autre mot du code. - Même question pour une erreur dordre k ?
- Réponse DH(C) k1
10Pouvoir correcteur dun code
M
mot de code valide
0 1 1 0 1 0 1 1 1 0 1 0 0 0
point dans lespace
Code transmis S un point en M dimensions
Distance 1 bit
Au décodeur S est toujours le mot de code le
plus près du mot reçu S ? on décode sans
erreur
S
(code reçu avec 1 erreur)
S
(point transmis)
11Pouvoir correcteur dun code
- Pour pouvoir corriger une erreur dordre 1, une
distance de Hamming DH(C) 2 est-elle suffisante
? - Réponse non il faut DH(C) 3en effet, si
DH(C) 2, 1 erreur simple peut nous produire un
mot exactement au milieu de 2 mots du code, à
distance 1 de chacun !si DH(C) 3, 1 erreur
simple produit un mot qui reste le plus proche du
mot transmis on peut donc le retrouver ! - Pour corriger une erreur dordre k,
- il faut DH(C) 2k1.
12Résumé pouvoir détecteur et correcteur
- Un code C peut
- détecter des erreurs dordre DH(C) 1
- corriger des erreurs dordre (DH(C) 1)/2
(partie entière)
Distance de Hamming du code Ordre maximal des erreurs détectables Ordre maximal des erreurs corrigibles
1 - -
2 1 -
3 2 1
4 3 1
5 4 2
6 5 2
13Exemples de codes détecteurs
14Détection des erreurs
- Permet de vérifier lintégrité dune trame au
récepteur - Retransmission des trames corrompues
- Plus efficace que la correction
- ? requiert moins de bits de redondance
- Parité Verticale
- Parité Horizontale
- Parité Verticale et Horizontale
- CRC Cyclic Redundancy Code
- ? codes de détection couramment utilisés
15Parité Verticale (Exo 2.1)
- Exemple envoi de 7 caractères de longueur 3
(m3). - Info utile 000 111 000 110 101 011 010
- Info envoyée 0000 1111 0000
1100 1010 0110 0101 - Propriétés
- distance de Hamming est 2 détecte les erreurs
simples - détecte les erreurs qui sont d'ordre impair
- ignore les erreurs doubles et toutes celles qui
sont d'ordre pair
16Parité Horizontale (Exo 2.2)
- Exemple envoi de 7 caractères de longueur 3
(m3). - Info utile 000 111 000 110 101 011 010
- Info envoyée 000 111 000 110 101 011 010 010
17Parité Verticale et Horizontale (Exo 2.3)
- Exemple envoi de 7 caractères de longueur 3
(m3). - Info utile 000 111 000 110 101 011 010
- Info envoyée 0000 1111 0000
1100 1010 0110 0101 1010 - Propriétés
- détecte les erreurs dordre 3 et corrige les
erreurs simples - détecte les erreurs qui sont d'ordre impair
0 1 0 1 1 0 0 1
0 1 0 1 0 1 1 0
0 1 0 0 1 1 0 1
0 1 0 0 0 0 1 0
18Codes Polynomiaux CRC
- Codes de blocs particuliers
- Facilement implémentables de façon matérielle
- Excellents résultats
- Principe
- Toute séquence de n bits peut être représentée
par un polynôme à coefficients binaires. - Opérations d'addition et de multiplication modulo
2. - G(X) un polynôme de degré r appelé polynôme
générateur. - Code polynomial CG,n
- Ensemble des séquences de longueur n, dont le
polynôme associé est multiple de G(X).
19CRC Propriétés
- Peut détecter 1 erreur isolée si G contient au
moins 2 termes - Peut détecter 2 erreurs (si G ne divise pas xk1,
avec kfenêtre) - Peut détecter tous les patrons derreurs impairs
- ? si (x 1) est un facteur de G(x)
- Peut détecter r erreurs consécutives sil est
dordre r (bursts) - Trois polynômes standards
- CRC-12 x12 x11 x3 x2 x 1
- CRC-16 x16 x15 x2 1
- CRC-CCITT x16 x12 x5 1
20Anciennes non utilisées
21Technique de détection/correction derreur
- Code de longueur N
- exemples
- 2 parmi 3
- Distance de Hamming 2
- Parité verticale/horizontale
- Distance de Hamming 4
- Contrôle de flux
- Pb perte à la réception
- Solution
- Sol1réception bufferisée
- Sol2évenement Xon/Xoff
22CODES VERSION PF
23Technique de détection/correction derreur
- Stratégies
- Détection (et demande de retransmission) code
détecteur derreurs - Détection correction code correcteur
derreurs - Code de longueur N
- Ensemble de séquences (mots) binaires de N bits
- Séquences valides / invalides
- Exemple M bits utiles, R bits de redondance
- 2M séquences valides (2N séquences possibles)
- Distance de Hamming entre 2 mots de code
- Nombre de différences si u1101100 et
v1001010, alors dh(u,v)3 - Distance de Hamming dun code C
- Le minimum des distances entre 2 séquences du
code C ( DH(C).
24Un exemple de code 2 Parmi 3
- Configurations valides
- mots de longueur 3 avec exactement 2 bits à 1.
- Code de longueur 3
- Distance de Hamming 2
- Propriétés
- Pouvoir détecteur oui (erreur simple)
- Pouvoir correcteur non
- Plus généralement
- La distance de Hamming d'un code permet d'évaluer
son pouvoir détecteur d'erreur ainsi que son
pouvoir correcteur. - un code C peut détecter des erreurs d'ordre
(DH(C) -1), - un code C peut corriger des erreurs d'ordre
PartieEntière((DH(C)-1)/2).
25Code de bloc
- On découpe l'information utile en tronçon de m
bits auquel on rajoute r bits de redondance. - Code de longueur nmr.
- Sur 2n combinaisons possibles, seules 2m
combinaisons sont valides. - Exemple 1 Parité verticale (VRCVertical
Redundancy Checking) - m8 (caractère) et r1 (parité paire ou impaire)
- Exemple envoi de 4 caractères de longueur 3
(m3). - Information utile 110 001 011 000
- Information envoyée 1100 0011 0110 0000
- Propriétés
- distance de Hamming est 2 détecte les erreurs
simples - détecte les erreurs qui sont d'ordre impair
- ignore les erreurs doubles et toutes celles qui
sont d'ordre pair
26Code de bloc (suite)
- Exemple 2 Parité verticale/horinzontale
(LRC/VRC pour Vertical Redundancy Checking /
Longitudinal Redundancy Checking) - Principe les caractères munis de leur bit de
parité transversale sont regroupés en blocs, et
on ajoute à la fin de chaque bloc un caractère
supplémentaire pour la parité longitudinale - Exemple envoi dun bloc de 4 caractères de
longueur 3 (m3). - Information utile 110 001 011 000
- Information envoyée 1100 0011 0110 0000 1001
- Propriétés
- distance de Hamming est 4
- détecte les erreurs dordre 3 et corrige les
erreurs simples - détecte les erreurs qui sont d'ordre impair
1 0 0 0 1
1 0 1 0 0
0 1 1 0 0
0 1 0 0 1
27Codes polynomiaux
- Codes de blocs particuliers
- Facilement implémentables de façon matérielle
- Excellents résultats.
- Principe
- Toute séquence de i bits peut être représentée
par un polynôme à coefficients binaires - Par exemple, la séquence "001101" peut être
représentée par le polynôme x3x21. - opérations d'addition et de multiplication modulo
2 - G(X) un polynôme de degré r appelé polynôme
générateur - Code polynomial CG,n
- Ensemble des séquences de longueur n, dont le
polynôme associé est multiple de G(X).
28Codes polynomiaux (suite)
- Exemple n4, G(X)X2.
- Les multiples de G(X) de degré au plus égal à n-1
- 0.G(X)0, 1.G(X)X2, X.G(X)X3, (X1).G(X)X3X2.
- Les séquences valides du code CG,4 0000, 0100,
1000, 1100. - Application à la détection d'erreur
- G(X) (degré r) connu de l'émetteur et du
récepteur - La taille des informations utiles m.
- On utilise le code CG,mr
29Codes polynomiaux (suite)
- Côté émetteur
- bm-1 bm-2 ... b2 b1 b0 l'information utile de
longueur m - M(X) le polynôme associé à l'information utile.
- On divise le polynôme M(X).Xr par G(X)
- M(X).Xr G(X).Q(X) R(X) (R(X) de degré r-1)
- On envoie la séquence de bits de longueur nmr
associée au polynôme N(X)M(X).Xr R(X). - Remarquons que ce polynôme N(X) est divisible
par G(X) - M(X).Xr R(X) G(X).Q(X) R(X) R(X)
G(X).Q(X). - Côté récepteur
- Détection d'erreur vérifier que le polynôme
associé à la séquence binaire reçue, est
divisible par G(X). - Information utile supprimer les r derniers bits
de la séquence reçue.
30Contrôle de flux
- Problème
- Un émetteur émet plus de messages que le
récepteur peut accepter - perte à la réception
- couches concernées 2, 3 et 4
- Solution éviter cette situation (prévention).
Deux approches - Lémetteur német que sur autorisation du
récepteur - Le débit est adapté au capacité du récepteur
- Exemple Transmission asynchrone
- Réception bufferisée évenement Xon/Xoff