Transmission Données Chapitre4 PDF
Transmission Données Chapitre4 PDF
Transmission Données Chapitre4 PDF
1
Sommaire
Introduction
Contrôle d’erreur
Détection d’erreur
La détection par écho et la détection par répétition
La détection par clé calculée (VRC, CRC…)
La détection et correction d’erreur par code (code de
Hamming,…)
Protocole HDLC
2
Introduction
Nous avons étudié jusque là, tous les mécanismes à mettre en
œuvre pour transmettre un flot de bits entre deux systèmes distants
Cependant, il ne suffit pas d’envoyer seulement l’information,
mais il faut encore contrôler l’échange de données
3
Introduction
Contrôle d’intégrité:
Lors d’une transmission de données, on doit assurer que les données
reçues n’ont pas été altérées durant la transmission (fiabilité de
transmission)
Plusieurs facteurs peuvent modifier le contenu des données, les uns sont
d’origine humaine:
le contrôle d’intégrité concerne alors la sécurité des données
Les autres sont d’origine physique:
le contrôle d’intégrité porte alors le nom de contrôle d’erreur
• Les rayonnements
électromagnétiques Peuvent modifier les Informations
• Les perturbations transmises (bits erronés)
propres au système
(bruit... )
4
Contrôle d’erreur
Notion d’erreur
On appelle taux d’erreur binaire ou BER(Bit Error Rate) le rapport entre le
nombre d’informations (bits) erronées reçues et le nombre d’informations
(bits) transmises
Exemple:
Pourquoi ?
Des canaux de transmission imparfait entraînant des erreurs lors des
échanges de données.
Probabilité d’erreur sur une ligne téléphonique : P=10e-4 (cela peut même
atteindre 10e-7).
Utilisation de méthodes de détection des erreurs et éventuellement de
correction des erreurs.
6
Détection d’erreur
Méthodes mises en place au niveau de la couche 2 OSI (« liaison de
données » )
Principe général :
Chaque suite de bits (trame) à transmettre est augmentée par une
autre suite de bit dite de redondance ou de contrôle.
Pour chaque suite de k bits transmis, on ajoute r bits. On dit alors
que l’on utilise un code C(n; k) avec n = k + r.
À la réception, on effectue l’opération inverse et les bits ajoutés
permettent d’effectuer des contrôles à l’arrivée.
9
Détection d’erreurs par VRC
Vertical Redundancy Check : ajout d’un bit de parité à chaque mot de code.
– Il consiste à ajouter un bit supplémentaire (appelé bit de parité) à un
certain nombre de bits de données appelé mot de code (généralement
7 bits, pour former un octet avec le bit de parité) dont la valeur (0 ou 1)
est telle que le nombre total de bits à 1 soit pair.
– Si le nombre de 1 dans le mot de code est impair, on ajoute un 1, sinon
on ajoute un 0.
– Vérification par redondance verticale ne permet de détecter que les
erreurs portant sur un nombre impair de bits. Cette méthode détecte les
erreurs dans 50% des cas.
10
Détection d’erreurs par VRC
leurs bits de parité, rangés dans les lignes d’un tableau, on calcule la parité
12
Détection d’erreurs par LRC&VRC
– Soit « HELLO » le message à transmettre, en utilisant le code ASCII
standard. Voici les données telles qu'elles seront transmises avec les
13
Détection d’erreurs par LRC
14
Parité
Exemples 0
1
1
1
0
1
1
0
1
1
1
0
0
0 verticale
0 1 1 0 1 0 1
1 1 0 1 1 1 1
1 1 1 0 1 0 0
1 1 1 0 1 1 1
1 1 1 0 1 1 1
Parité longitudinale 1 1 1 0 1 0 0
(Frame Check Sequence) : Codes les plus utilisés (à la fois dans les LAN et WAN)
Idée de base
1x9+1x8+0x7+1x6+0x5+1x4+1x3+0x2+1x+1 =x9 + x8 + x6 + x4 + x3 + x + 1 16
Supposons que les données soient transmises par bloc de « k » bits
– Exemple pratique
1101011011 M(x) = x9 + x8 + x6 + x4 + x3 + x + 1
supérieure à 0.999
17
Détection d’erreurs par le code CRC
Codage à l’émission pour un bloc de « k » bits de données
1 1 0 1 0 1 1 0 1 1 0 0 0 0 1 0 0 1 1
1 0 0 1 1 1 1 0 0 0 0 1 0 1 0
0 1 0 0 1 1
1 0 0 1 1
0 0 0 0 0 1 0 1 1 0
1 0 0 1 1
0 0 1 0 1 0 0
1 0 0 1 1
0 0 1 1 1 0
1 1 0 1 0 1 1 0 1 1 1 1 1 0 Bits transmis
19
Exemple de décodage CRC ( Sans erreur de transmission )
1 1 0 1 0 1 1 0 1 1 1 1 1 0 1 0 0 1 1
1 0 0 1 1 1 1 0 0 0 0 1 0 1 0
0 1 0 0 1 1
1 0 0 1 1
0 0 0 0 0 1 0 1 1 1
1 0 0 1 1
0 0 1 0 0 1 1
1 0 0 1 1
0 0 0 0 0 0
20
Exemple de décodage CRC ( Avec erreur de transmission)
1 1 0 1 0 1 1 0 0 1 1 1 1 0 1 0 0 1 1
1 0 0 1 1 1 1 0 0 0 0 1 0 0 0
0 1 0 0 1 1
1 0 0 1 1
0 0 0 0 0 1 0 0 1 1
1 0 0 1 1
0 0 0 0 0 1 1 0
Erreur de transmission
car le reste n’est pas nul
21
Exemple:
Le plus simple est encore de prendre un exemple : prenons le
message M de 14 bits suivant : 11010011101100
Etant donné que G(X) est de degré 3, il s'agit d'ajouter 3 bits nuls à M :
M’ =11010011101100 000.
Le CRC est égal au reste de la division de M’ par G :
22
code de Hamming
Détection par code de Hamming
Structure d’un mot de code de Hamming:
Le code de Hamming C(n,k) est constitué des k bits
d’information et des r bits de redondance (de
contrôle): c’est la séquence qui va être transmise.
k appelé dimension du code = la taille du message
d’information.
n appelé longueur du code = la taille du mot de
code.
23
code de Hamming
Les bits de contrôle Ci sont en position 2i dans le mot
de code transmis, .
Les bits du message Dj occupe le reste du code.
On appelle efficacité ou rendement ou taux d’un
code le rapport:
k
R
n
Exemple: Code C(7,4)
Efficacité=4/7=57%
Le mot de code est:
Sens de la
D3 D2 D1 C2 D0 C1 C0 transmission
24
code de Hamming
25
0 0 1
0
H (n-k) lignes
1
1 0 1
n colonnes
Le mot de code est tel que:
CHt 0
code de Hamming
26
C = D3 D2 D1 C2 D0 C1 C0
=101–0––
C2 D1 D2 D3 1 0 1 0
On a : C1 D0 D2 D3 0 0 1 1
C D D D 0 1 1 0
0 0 1 3
C=1010010
code de Hamming
29
~ t
C H 001 , c’est à dire 1 en base 10.
31
code de Hamming
32
Application :
Soit le code de Hamming reçu suivant de longueur 15:
101101111011011
Quels sont les bits de contrôle de parité ?
1 0 1 1 0 1 1 1 1 0 1 1 0 1 1
D10 D9 D8 D7 D6 D5 D4 C3 D3 D2 D1 C2 D0 C1 C0
Propriétés:
Capacité de détection: Un code de bloc est capable de détecter des
erreurs de poids x tels que x dm 1
où dm désigne la distance de Hamming minimale entre les différents mots codes
Exemples:
Si dm=1 xmax = 0 ( car une erreur portant sur ce bit transforme un mot
de code valide en un autre mot de code valide )
Si dm=2 xmax = 1
( Possibilité de détection d’une erreur unique )
y T x T GT avec GT Idm P
36
Au niveau réception:
S yT H
T
avec
H IdP r et yT le mot code reçu
37
Exemple:
Au niveau émission:
1 0 0 1 0 1
T T
Y x 0 0
YT 1 1 0 0 1 1
YT=XT GT 1 0 1 1
0 0 1 0 1 1 Mot information Bits de redondance
Au niveau réception:
T
Le mot de code reçu Y 1 1 1 0 1 1 10 1
11 0
T 011
Calcule du vecteur syndrome ST S [ 1 1 1 0 1 1 ] 10 0[ 0 1 1 ]
010
001
38
Calcule de la distance de Hamming minimale d m
Mots informations Mots codes Poids de
x1 x2 x3 x1 x2 x3 a1 a2 a3 Hamming dm = 3
000 000000 0
001 001011 3
010 010110 3 x1
011 011101 4
100 100101 3
101 101110 4
Dans cette exemple le code de bloc ne
110 110011 4
peut corriger qu’une seule erreur
111 111000 3
41
SEND AND WAIT:
43
HDLC : Format de Trame
44
HDLC (High- Level Data Link Control)
01111110 Adresse Commande Données FCS 01111110
47
HDLC : Trame U
Les trames non numérotées (U) ont pour rôle de gérer la mise en place et le
relâchement de la connexion. Elles sont sans champ N(S) ou N(R) et ne
permettent pas de faire un acquittement. Leur champ données est vide et leur
champ commande est structuré de la manière suivante:
3 bits 1 bit 2 bits 1 bit 1 bit
M5 M4 M3 P/F M2 M1 1 1
• La séquence M5M4M3M2M1 possède 32 valeurs possibles dont :
– 00111 signifie SABM (Set Asynchronous Balanced Mode) : établit une liaison en mode
équilibré.
– 10000 signifie SNRM (Set Normal Response Mode) : établit une liaison en mode de
réponse normale.
– 00011 signifie SARM (Set Asynchronous Response Mode) : établit une liaison en
mode de réponse asynchrone.
50
TRAMES I
Les trames d’informations (I) sont utilisées pour le transfert de données et pour
l’acquittement de l’information, c’est le seul type de trame pour le quel le champ
de données n’est pas vide. Son champ commande est structuré de la manière
suivante: 3 bit 1 bits 3bit 1bits
N (R) P/F N(S) T
- N(S) correspond au numéro de la trame émise (Sent Frame).
- N(R) représente un acquittement indiquant le numéro de la prochaine trame
attendue (Requested Frame).
- P/F signifie
P=0 L’initiateur n’attend pas de réponse à cette trame
Trame provenant de
l’initiateur de l’échange P=1 L’initiateur attend une réponse à cette trame
Trame transmise à F=0 Le secondaire n’a pas terminé d’émettre des trames
l’initiateur de l’échange F=1 Le secondaire a terminé ses envois de trames
51
TRAMES I
V(s): indique le numéro de la trame à émettre,
V(r): indique le numéro de la trame attendue
Après la phase de connexion les compteurs sont initialisés à zéro de chaque
côté
N(S): numéro de la trame émise
N(R): acquittement des trames reçues indiquant le numéro de la prochaine
trame attendue
52
TRAMES S
Les trames de supervision (S) sont utilisées pour acquitter les trames
d’information, pour la gestion des erreurs et pour le contrôle de flux. Le champ
données est vide et le champ commande set structurée de la manière suivante:
3 bits 1 bit 2 bits 1 bit 1 bit
N(R) P/F S2 S1 0 1
• Le champ S2 S1 possède 4 valeurs :
– 00 signifie RR (Received & Ready) : prêt à recevoir de nouvelles trames.
confirme la réception des trames de données de n°< N(R) et demande la réception
des trames suivantes (trame d’acquittement)
– 01 signifie RNR (Received & Not Ready) : pas prêt à recevoir de nouvelles trames.
confirme la réception des trames de données de n°< N(R) et interdit la transmission
des trames suivantes (trame de contrôle de flux)
– 10 signifie REJ (Reject) : rejet non sélectif
confirme la réception des trames de données de n°< N(R) et demande la
retransmission des trames de n°>= N(R) (trame de protection contre les erreurs)
– 11 signifie SREJ (Selctive Reject) :rejet sélectif
confirme la réception des trames de données de n°< N(R) et demande la
retransmission de la trame n°= N(R) (trame de protection contre les erreurs) 53
TRAMES I et S
La temporisation de retransmission (T1 ou RTO, Retransmission Time
Out),
A chaque trame I émise l’émetteur initialise le temporisateur T1.
Si, à l’échéance de ce temporisateur, l’émetteur n’a pas reçu de trame
d’information ou d’acquittement de son correspondant, alors il réémet la
trame supposée perdue.
La temporisation d’acquittement (T2)
Correspond au délai maximum au bout du quel, le récepteur, s’il n’a
pas de données à transmettre (il n’y a pas de trame I), doit envoyer un une
trame S indique RR (Receive Ready) à son correspondant.
54
Gestion des Erreurs (TRAMES S)
Exemple de la reprise sur erreur
Supposons la trame 2 erronée, elle est ignorée par le récepteur.
La trame 3 est alors reçue hors séquence, elle est rejetée.
La machine B émet alors une trame de supervision de rejet (REJ: Reject)
en indiquent à A à partir de quelle trame il doit reprendre la transmission
[N(r) = 2].
Toutes les trames dont la valeur de Ns est supérieure à 2 sont alors
rejetées (rejet simple).
La machine A reprend la transmission à partir de la trame2 (N(s)=2).
Si, suite à la trame erronée, A n’avait plus de données à émettre, alors B
n’aurait pas détecté le déséquencement.
Dans ce cas, c’est A qui à l’échéance du temporisateur T1, aurait pris
l’initiative de retransmettre la trame 2.
55
Gestion des Erreurs (TRAMES S)
Il émet la trame S indique RNR (Receive Not Ready) avec le compteur
Nr positionné au numéro de la trame reçue et rejetée.
57
Gestion de Flux (TRAMES S)
58