cours 3 detection-correction erreur

6
Détections et corrections d’erreurs © P. Sicard - Cours Réseaux Les données peuvent être modifiées (ou perdues) pendant le transport Un service primordial pour de nombreuses applications Exemple : le transfert de fichier Modification au niveau physique : déformation de l’onde Perte complète de paquet : congestion du réseau, saturation des routeurs Le contrôle d’erreur 1 Détections et corrections d’erreurs © P. Sicard - Cours Réseaux La détection d’erreur Comment se rendre compte de la modification/pertes des données à l’arrivée des trames ? Suppression des erreurs, deux techniques : Comment corriger à l’arrivée les données erronées ? : » la correction d’erreur à l’arrivée du paquet Faire en sorte que l’émetteur, renvoie les trames erronées/perdues: » la récupération d’erreurs par re-émission 2 Détections et corrections d’erreurs © P. Sicard - Cours Réseaux Transfert de donnée sur un réseaux très peu fiable: Exemple: Minitel, correction d’erreur dans l’ADSL Transfert de donnée sur un réseaux peu fiable: Code correcteur coûte cher (en terme quantité d’information rajoutée) On préfère faire de la récupération d’erreur par re-émission (si il n’y a pas de contrainte de temps) Méthodes de détection et correction sont aussi utilisées pour le stockage de donnée Lecture de fichier sur un disque dur » Système de correction intégré aux disques (RAID Redundant Arrays of Inexpensive Disks) Lecture de CD/DVD (problème de rayure) » Problème légèrement différent : l’information peut aussi ne pas exister (et on le sait) Applications 3 Détections et corrections d’erreurs © P. Sicard - Cours Réseaux • Idée: rajouter de l’information aux données permettant de détecter/ corriger les erreurs à l’arrivée Exemple de détection: Code de répétition On duplique l’information Par exemple on rajoute un bit identique pour chacun des bits à transmettre – Exemple: » Données: 1 0 0 0 1 1 » Code: 1 1 0 0 0 0 0 0 1 1 1 1 Coût en taille : élevé Coût en calcul faible Qualité de la détection d’erreur ? Est-on capable de détecter 1 seul bit erroné ? 2 bits ?... La détection/correction d’erreur 4

Upload: jameles

Post on 17-Nov-2015

14 views

Category:

Documents


3 download

DESCRIPTION

Cours 3 Detection-correction Erreur

TRANSCRIPT

  • 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