0% ont trouvé ce document utile (0 vote)
95 vues24 pages

Codes et Protocoles de Correction d'Erreurs

Ce document décrit les principes des codes autocorrecteurs et du code de Hamming. Il présente la notion de distance de Hamming et explique comment celle-ci permet la détection et la correction d'erreurs. Il fournit également des exemples d'application du code de Hamming.

Transféré par

issam dx
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
95 vues24 pages

Codes et Protocoles de Correction d'Erreurs

Ce document décrit les principes des codes autocorrecteurs et du code de Hamming. Il présente la notion de distance de Hamming et explique comment celle-ci permet la détection et la correction d'erreurs. Il fournit également des exemples d'application du code de Hamming.

Transféré par

issam dx
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Les codes autocorrecteurs

 Principe d'un code autocorrecteur

Les codes autocorrecteurs

 Dans les systèmes autocorrecteurs, on


substitue au mot à transmettre (mot naturel)
un nouveau mot (mot code), tel que deux
mots codes successifs diffèrent de d bits, où d
est appelé distance de Hamming.

1
Distance de Hamming de 2 mots

 Il s’agit du nombre de bits qui diffèrent entre


deux mots de code x et y.

1000 1001
10 110001
= 0011 1000

 Donc Dist(x,y) = 3

Distance de Hamming d’un code


Soit C un code (détecteur et/ou correcteur)

 Distance de Hamming du code C

Distmin(C) = min { Dist(x,y) } tel que xC , yC et x≠y

Il s’agit du minimum des distances de Hamming entre les


mots du code

– Tous les mots du code sont au moins à une distance Dist(C)

2
Capacité d’un code

 Pour qu’un code soit capable de détecter k


erreurs, sa distance de Hamming doit être égal
à k+1.

 Pour qu’un code soit capable de corriger k


erreurs, sa distance de Hamming doit être égal
à 2*k+1.

Exemple :

 Distance de Hamming = 3

– peut détecter 1 ou 2 erreurs


– peut corriger 1 erreur

3
Code de Hamming
 Considérons un mot binaire de données de taille
n
d=(d1,d2,d3,...,dn)

 Insertion dans d de k bits de contrôle pi aux


positions
20, 21, 22, 23, ... c'est-à-dire 1, 2, 4, 8, ...
 Soit s le mot à transmettre de taille m=n+k
s = (s1,s2,s3,...,sj,..., sn+k ) = (p1,p2,d1,p3,d2,d3,...,pi,...,dn)
 Le nombre de bits de contrôle est le premier
entier k supérieur à log2(m).
– Ex. : log2(11) < 4 donc k=4 et n=7

Code de Hamming
 Calcul des bits de contrôle
– Le bit de donnée sj est contrôlé par les bits dont les
positions sont les coefficients de la décomposition
binaire de j.
– Le bit de contrôle pi (en position i) est choisi de telle
sorte que la somme des bits qu'il contrôle (ainsi que
lui-même) fasse 0 modulo 2 (contrôle de parité).
 Détection et correction d'erreur
– à la réception d'un message, on effectue le contrôle
de parité sur le bits de contrôle
– si pa et pb (qui correspondent respectivement à sA et
sB )sont faux, alors il y a une erreur sur le bit sA+B qui
peut être corrigée !

4
Code de Hamming

 Exemple de calcul des bits de parités dans le


code de Hamming (11,7)

Exemple

5
Code de Hamming

Exercice : Code de Hamming (11,7)


 Quels sont les bits qui contrôlent s11 ?
 Quels sont les bits contrôlés par p1, par p4 ?
 Calculer le code de Hamming du mot 1101011
?

Code de Hamming

Correction
 le bit s11= d7 est contrôlé par p1, p2 et p4 (11 =
1 + 2 + 8)
 p1 contrôle s3+s5+s7+s9+s11 ; p4 contrôle
s9+s10+s11
 d = 1101011 ; s = p1.p2.1.p31.0.1.p4.0.1.1 =
00101010011

6
Code de Hamming

Exercice : Code de Hamming (11,7)


 Quels sont les bits qui contrôlent s11 ?
 Quels sont les bits contrôlés par p1, par p4 ?
 Calculer le code de Hamming du mot 1101011
?
 On reçoit le message suivant 11111011100 ?
– Y-a-t-il une erreur ? Si oui, corriger cette erreur !

Code de Hamming

Correction
 s' = 11111011100 (après réception)
– p1 faux, p2 faux, p3 faux et p4 ok
– erreur sur le bit d'indice 1+2+4=7
– s = 11111001100 (après correction)
– d = 1100100 (mot reçu)

7
Stratégies de protection

 Stratégies de protection contre les erreurs de


transmission

Contrôle de flux

8
Problème

 Supposons que A soit un ordinateur et B une


imprimante lente, dotée d’une capacité
mémoire limitée, lui imposant de garder en
mémoire toutes les informations envoyées par
A tant qu’elles ne sont pas imprimées.
 Si le rythme d’envoi des informations est
nettement supérieur à son rythme
d’impression
– il y a rapidement saturation de la mémoire et
perte d’informations par B.

Problème

9
Introduction

 Il faut mettre en place un mécanisme de


contrôle du rythme d’envoi des informations
vers le récepteur, appelé contrôle de flux.

Introduction

 Le contrôle de flux : l’émetteur ne doit


envoyer des trames que si le récepteur est
en mesure de les traiter.

10
Les protocoles ARQ

 ARQ ( Automatic Repeat reQuest) : l'émetteur


attend des acquittements positifs ou négatifs ;
le récepteur détecte les erreurs, et selon le
cas, ignore la trame ou demande sa
retransmission.
 Deux types de protocoles ARQ :
– protocoles « envoyer et attendre » (send and wait)
– protocoles « continus » (continuous ou pipelined
ARQ) ou « à fenêtre d'anticipation ».

Protocoles ARQ «envoyer et attendre»

 But : empêcher l'émetteur d'envoyer des


données plus rapidement que le récepteur ne
peut les traiter.
 Méthode :
– Obliger le récepteur à informer l'émetteur de son
état →acqui ements.
– Côté émetteur : envoyer et attendre.

11
Protocoles ARQ «envoyer et attendre»

 Trame erronée : acquittement positif ou négatif

Protocoles ARQ «envoyer et attendre»

 Trame perdue : temporisateur

12
Protocoles ARQ «envoyer et attendre»

 Acquittement perdu, duplication : numérotation des trames

Protocoles ARQ «envoyer et attendre»

 Temporisateur expire trop tôt : numérotation des acquittements

13
Protocoles ARQ «envoyer et attendre»

 Ces protocoles sont unidirectionnels, et ne permettent


qu’une pauvre utilisation de la capacité du canal.

Protocoles ARQ «envoyer et attendre»

 Utilisation du canal par ’envoyer et attendre’

14
Protocoles ARQ «envoyer et attendre»

 Exemple :
– Ligne satellite à 56kbps et trames de 1000 bits. Le
satellite est stationné à 33.000km sur la terre et la
vitesse de propagation 3. 108 m/sec.
– L’utilisation U=Tx/Tt est de 3.4% seulement en
utilisant un protocole « envoyer et attendre »
pour envoyer la trame et renvoyer l’acquittement.

Protocoles «à fenêtre d'anticipation»

 Améliorations:
– Données (et acquittements) dans les 2 sens (mode
bidirectionnel).
– Envoi d'un certain nombre de trames sans
attendre d'acquittement (pipelining)
– Acquittements ajoutés à des trames de données
envoyées dans l'autre sens (piggypacking).
 + d'efficacité, + de complexité de gestion aussi
 besoin de tampons pour trames non encore
acquittées (et susceptibles d'être réémises).

15
Transmission continue

 L’émetteur peut envoyer des trames sans


attendre l’acquittement (pipelining).
 Pour utiliser encore davantage la capacité du
canal, on passe à un mode bidirectionnel où
les acquittements sont ajoutés à des trames
envoyées dans l’autre direction (piggypacking)
: besoin de tampons pour les trames non-
acquittées.

Protocoles «à fenêtre d'anticipation»

 Transmission continue

16
Protocoles «à fenêtre d'anticipation»

 La transmission continue permet à l’émetteur de


transmettre plusieurs trames sans avoir reçu leurs
acquittements.
– Il faut limiter le nombre de trames non-acquittées
pour des raisons de capacité de traitement et de taille
de mémoire (tampons) chez le récepteur et l’émetteur
: contrôle du flux.
 La méthode des fenêtres d’anticipation nécessite
l’introduction de numéros de séquence pour les
trames ainsi qu’une taille de fenêtre maximale
pour l’émetteur et le récepteur.

Fenêtre d'anticipation

 Trames : ont un numéro de séquence codé sur


n bits (0 →2n -1).
 Fenêtre d'émission (côté émetteur) : liste des
numéros de séquence des trames autorisées à
être émises.
 Fenêtre de réception (côté récepteur) : liste
des numéros de séquence des trames
autorisées à être reçues.

17
Fenêtre d’émission

 Taille (maximale) = nombre de trames


autorisées être émises sans attendre
acquittement.
 Contenu = numéros de séquence des trames
envoyées mais non encore acquittées.

Fenêtre d’émission

 L'émetteur stocke les trames non acquittées


dans des zones tampons (au plus m trames, si
m est la taille de la fenêtre).
 Si la fenêtre atteint son maximum, on n'envoie
plus rien jusqu'à une libération, ie un
acquittement.

18
Fenêtre de réception

 Taille (fixe)= nombre de trames autorisées à


être reçues.
 Contenu= numéros de séquence de ces
trames attendues.

Exemples de protocoles

 Une fenêtre d’anticipation de taille 1 avec des numéros de


séquence codés sur 3 bit: (a) initialement, (b) après l’envoie
de la première trame, (c) après la réception de la première
trame, (d) après la réception du premier acquittement.

19
Acquittements

 Lorsque plusieurs trames doivent être


acquittées, il est possible :
– d’envoyer un acquittement « individuel » pour
chaque trame
– d’envoyer un acquittement « collectif » en
indiquant
• le plus grand numéro de trame parmi celles qui sont
acquittées
• ou le numéro de la prochaine trame attendue.

Erreurs de transmission

 Si une trame située au milieu d'une série est


perdue ou erronée ?

 Deux techniques de rejet sont possibles :


– technique du rejet total
– technique du rejet sélectif

20
Technique de rejet total

 Le récepteur rejettent toutes les trames qui


suivent celle qui est erronée.
– inconvénient : le canal est mal exploité
– avantage : pas besoin de mémoires tampons
 Cette technique correspond à l’utilisation
d’une fenêtre de réception de taille 1.

Exemple

21
Technique de rejet sélectif

 Le récepteur accepte les suivantes (en les stockant)


jusqu'à une certaine limite donnée par la taille de la
fenêtre.
– avantage : le canal est mieux exploité
– inconvénient : besoin de mémoires tampons
 Cette technique correspond à l’utilisation d’une
fenêtre de réception de taille supérieure à 1.
 Le récepteur utilise un acquittement « collectif ».

Exemple

22
Utilisation des fenêtres d’anticipation

 L'utilisation des fenêtres d'anticipation pour


les protocoles avec une transmission continue
doit respecter les conditions suivantes :
– un temporisateur individuel pour chaque trame
non acquittée
– L'émetteur et le récepteur possèdent une
mémoire tampon pour chacune des trames dont
le numéro de séquence figure dans la fenêtre

Protocoles ARQ : Résumé

 Si la station réceptrice détecte un erreur de


transmission, elle demande la retransmission de
la trame erronée : Automatic Repeat Request
(ARQ).
 Les mécanismes pour la retransmission
automatique reposent sur:
– Temporisateur
– Acquittement positif et/ou négatif; individuel ou
collectif.
– Numérotation des trames
– Numérotation de acquittement

23
Quelques protocoles

 Réseaux publics de télécommunications


– HDLC
 Réseaux locaux
– MAC et LLC

24

Vous aimerez peut-être aussi