5. 1) Délimitation des trames
• Il existe trois méthodes :
– Compter les caractères
– Utiliser des champs délimiteurs de trame
• Ils se situent en début et en fin de trame
• Des bits (ou caractères) de transparence sont
nécessaires
– Violer le codage normalement utilisé dans la
couche physique
6. Compter les caractères
• On utilise un champ dans l'en-tête de la
trame pour indiquer le nombre de
caractères de la trame
• Problème : si la valeur du champ est
modifiée au cours de la transmission
8. Utiliser des délimiteurs
• Un fanion (délimiteur) est placé :
– au début de chaque trame
– à la fin de chaque trame (en fait, au début de la
suivante)
• Un fanion (flag) = séquence particulière de bits
• Des bits de transparence sont alors nécessaires
pour qu’une séquence binaire dans la trame ne
corresponde accidentellement au fanion.
9. Exemple
• Fanion : 01111110
• Bit de transparence : 0 inséré après toute
séquence de cinq 1 successifs dans la
trame.
11. Utiliser des fanions
• Avantages
– permet toujours de retrouver la
synchronisation
– permet l'envoi de trames de tailles
quelconques
12. Violer le codage
• Utilisable lorsque le codage sur le support
physique contient des redondances
• Par exemple :
– 0 = impulsion positive puis négative
– 1 = impulsion négative puis positive
– On peut donc utiliser les combinaisons
positive-positive et négative-négative pour
délimiter les trames
• Utilisée dans la norme 802
14. • Pour lutter contre les erreurs de transmission
dans les systèmes de transmission de
données, on utilise en général les techniques
de codage de l’information.
• Ce codage consiste à introduire une
redondance contrôlable dans l’information
pour détecter et éventuellement corriger les
erreurs de transmission.
• On peut classer les codes comme suit:
-Codes Détecteurs (Parité simple)
-Codes Correcteurs
15. Suprématie des codes
détecteurs
Les codes détecteurs sont plus souvent
utilisés que les codes correcteurs mais :
– lorsque le canal est unidirectionnel
– lorsque la distance est élevée (satellite)
17. Code de contrôle de parité
Principe : un seul bit (dit de parité) est ajouté
aux bits de données.
• parité paire : le nombre de bits à 1 du mot
formé doit être pair.
• parité impaire : le nombre de bits à 1 du
mot formé doit être impair.
21. • Remarque :
Si lors de la transmission du message ainsi
contrôlé une erreur survient, le récepteur
détecte une erreur de parité en ligne et une
erreur de parité en colonne. Le bit erroné est
alors repéré et il suffit alors de l’inverser pour
le corriger. Notons que ceci fonctionne même
si c’est l’un des bits de parité qui est erroné.
22. Code de Hamming
•Le message contrôlé comporte ici 2n bits.
Concrètement nous allons prendre n = 3 , même si
une valeur supérieure paraît nécessaire pour
percevoir l’efficacité de la méthode.
•Nous allons donc transmettre un octet dont les
bits seront numérotés de 0 à 7 en allant de droite à
gauche.
23. • Le bit 0 va contrôler la parité de l’octet.
• Les bits 1 2 4 , , (correspondant aux puissances de 2) seront
les bits de contrôle de notre message.
• Les bits 3, 5, 6, 7 (les autres) seront les bits contenant
l’information transmise. On décompose leur numéro en
puissance de 2 : 3 = 2 + 1, 5 = 4 + 1, 6 = 4 + 2 et 7 =4+2+1
• Ensuite, on détermine les bits de contrôles 1, 2, 4 de sorte
que chacun complète la parité de l’ensemble des bits
d’information où ils apparaissent dans la décomposition en
puissance de 2.
• Concrètement, on veut transmettre 1 1 0 1 .
• On forme d’abord :
7 6 5 4 3 2 1 0
1 1 0 1
24. • Puis on détermine le bit 1 de la manière
suivante : 1 apparaît dans la décomposition
des nombres 3, 5 et 7, il va donc contrôler la
parité de ces trois bits et ici valoir 0 .
• De même le bit 2 contrôle 3, 6, et 7, il vaut
donc ici 1, etc...
• Finalement le message contrôlé est
7 6 5 4 3 2 1 0
1 1 0 0 1 1 0 0
25. • Si lors de la transmission, une erreur
est commise, on en détecte
l’existence par l’imparité du message
transmis,
• on contrôle ensuite la parité des bits
1, 2 et 4 pour localiser l’erreur.
26. • Efficacité : étudions le rapport entre les
tailles de l’information transmise et de
l’information de contrôle.
• La parité croisé : (2n+1)/(n+1)2 .
• Codage de Hamming : (n+1)/2n (les bits de
contrôles correspondent aux puissances de 2
strictement inférieure à 2n : il y en a n , on y
ajoute aussi le bit de parité).
• Pour une transmission de 128 bits, le tableau
de parité nécessite 31 bits de contrôle contre
9 au codage de Hamming.
27. Exercice 1 :
On veut envoyer le mot 1011, quels bits, je doit lui adjoindre et quelle séquence je
transmettrai alors ?
• Exercice 2 :
y a-t-il une erreur dans le mot suivant ? 1101101
• Exercice 3 :
Soit un mot de Hamming de longueur 15
Quels sont les bits de contrôle de parité ?
Quel est le message reçu ?
Est-ce que le message reçu correspond au message transmis ?
Si oui, quel a été le message transmis ?
1 0 1 1 0 1 1 1 1 0 1 1 0 1 1
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
28. Code polynomial
- Il porte aussi le nom de contrôle de
redondance cyclique.
- Le contrôle de redondance cyclique
(noté CRC, ou en anglais Cyclic
Redundancy Check) est un moyen de
contrôle d'intégrité des données puissant
et facile à mettre en oeuvre. Il représente
la principale méthode de détection
d'erreurs utilisée dans les
télécommunications.
29. • Principe :
Le contrôle de redondance cyclique
consiste à protéger des blocs de données,
appelés trames (frames en anglais). A
chaque trame est associé un bloc de
données, appelé code de contrôle (parfois
CRC par abus de langage ou FCS pour
Frame Check Sequence dans le cas d'un
code de 32 bits).
30. • Le principe du CRC consiste à traiter
les séquences binaires comme des
polynômes binaires, c'est-à-dire des
polynômes dont les coefficients
correspondent à la séquence binaire.
• Ainsi la séquence binaire 0110101001
peut être représentée sous la forme
polynomiale suivante :
0*X9 + 1*X8 + 1*X7 + 0*X6 + 1*X5 + 0*X4 + 1*X3 +
0*X2 + 0*X1 + 1*X0
soit X8 + X7 + X5 + X3 + X0
ou encore X8 + X7 + X5 + X3 + 1
31. • Dans ce mécanisme de détection d'erreur, un
polynôme prédéfini (appelé polynôme
générateur et noté G(X)) est connu de
l'émetteur et du récepteur.
• La détection d'erreur consiste pour l'émetteur
à effectuer un algorithme sur les bits de la
trame afin de générer un CRC, et de
transmettre ces deux éléments au récepteur.
Il suffit alors au récepteur d'effectuer le même
calcul afin de vérifier que le CRC est valide.
32. Emetteur
Soit D(x) les données à envoyer et k le
degré de G(x)
1) calculer D(x)*xk
revient à ajouter k zéros (poids faibles) à
D(x)
2) calculer D(x)*xk / G(x)
on obtient le quotient Q(x) et le reste R(x)
3) calculer T(x) = D(x)*xk - R(x)
revient à remplacer les k zéros par R(x)
34. Propriété
T(x) est toujours divisible par G(x)
Le dividende moins le reste est toujours
divisible par le diviseur.
35. Récepteur
• T(x) est le mot transmis par l’émetteur
• T(x) est le mot reçu par le récepteur
• Le récepteur effectue le test suivant :
Si T(x) / G(x) donne un reste égal à 0 alors
pas d’erreur
sinon
une erreur
fin si
41. Exercice 2:
On considère le code polynomial sur 14 bits généré par le polynôme
G(x)=x4+ x + 1
Question 1
Rappeler le principe des codes polynômiaux. Quel est le nombre de
bits de redondance qui seront ajoutés par G ? Quelle est la taille des
mots initiaux ?
On veut calculer les bits de redondance du mot M=1101011011
Question 2
Donner D(x), le polynôme correspondant à M.
Question 3
Calculer R(x), le reste de la division euclidienne de D(x).x4 par G(x).
En déduire la valeur des bits de redondance.
42. Exercice 3:
Echange de trames entre deux machines A (´émetteur) et B
(récepteur).
Hypothèses : on se place dans le cadre idéal d’une transmission sans
erreur. Les numéros de trames sont codés sur 3 bits. La taille de la
fenêtre d’´emission de A est égale à 4,celle de la fenêtre de réception
de B est égale à 3.
Etat initial : la machine B n’a aucune trame (reçue) en mémoire, elle
attend la trame 2.
1. Représenter schématiquement l’´etat de sa fenêtre de réception
2. la trame 2 arrive, que se passe-t-il ?
3. puis, la trame 4 arrive, que se passe-t-il ?
4. puis, la trame 3 arrive, que se passe-t-il ?
5. dans les trois cas précédents, donner l’´etat possible de la fenêtre
d’émission de A, avant et après la réaction de B.
44. PLAN
1) Domaines de collision
2) Segmentation
3) Introduction au protocole Spanning Tree
45. 1) Domaines de collision
• Ensemble des équipements de couche 1
interconnectés
• Environnement partagé (ressources)
• Bande passante partagée
• Taux de collisions proportionnel à la taille
du domaine
47. 2) Segmentation
• But : réduire la taille des domaines de
collision
– Augmentation de la bande passante par
segment
– Augmentation de la fiabilité par segment
– Augmentation du nombre de domaines de
collision
• Nécessité d’équipements de couche 2
49. Équipements de segmentation
• Pont
– Segmentation d’un réseau en 2 domaines de
collision
– Commutation logicielle
• Augmentation de la latence
• Commutateur
– Équivalent d’un pont multi ports
– Utilisation d’une table de commutation
– Commutation physique : micro circuits
• Faible augmentation de la latence
50. Fonctionnement d’un
commutateur
Arrivée d’une trame
unicast sur un port
Adresse MAC source stockée dans la table de
commutation avec le numéro de port associé si
l’entrée n’existe pas
Examen de l’adresse
MAC de destination
La trame est transmise sur
tous les ports de sortie
La trame est transmise sur
le bon port de sortie
NON
OUI L’adresse est-elle
dans la table de
commutation ?
52. Adresse MAC
1
1
2
3
4
1
0A-04-23-66-F4-DE 0B-04-23-66-F4-DE 0C-04-23-66-F4-DE 0D-04-23-66-F4-DE 0E-04-23-66-F4-DE
Commutation de trames
Port
A B C D E
4
2 3
• A veut communiquer avec E
• A connaît l’adresse MAC de E
• La table du commutateur est
vide
0A-04-23-66-F4-DE
53. Adresse MAC
1
1
2
3
4
1
0A-04-23-66-F4-DE 0B-04-23-66-F4-DE 0C-04-23-66-F4-DE 0D-04-23-66-F4-DE 0E-04-23-66-F4-DE
Commutation de trames
Port
A B C D E
4
2 3
• A veut communiquer avec E
• A ne connaît pas l’adresse MAC de E
• La table du commutateur est vide
0A-04-23-66-F4-DE
broadcast
broadcast
broadcast
54. 3) Introduction au
protocole Spanning Tree
• Besoin de fiabilité, tolérance de pannes :
– Établissement de chemins redondants
• Conséquences :
– Boucles de commutations
– Tempêtes de broadcast
– Bande passante réduite
– Congestion
57. Spanning Tree (suite)
• But de STP :
– Éviter les boucles de commutations
– Garder une tolérance de pannes
• Moyens utilisés :
– Établir un arbre unique de chemins
– Supprimer les boucles de commutation
– Garder des liens redondants (backup)
58. Commutateur racine
• Le STA ( spanning tree algorithm) désigne un
commutateur unique comme pont racine et il
l'utilise comme point de référence pour le calcul
de tous les chemins
• Tous les commutateurs associés au protocole
STP échangent de trames BPDU pour identifer
le commutateur ayant le bridge ID (BID) le plus
faible sur le réseau
• Le commutateur ayant le BID le plus faible
dévient automatiquement le pont racine pour les
calculs de l'algorithme STA
59. Bridge Protocol Data Units - BPDU
• Le BPDU est la trame de message échangé par
les commutateurs pour le protocole STP
• Chaque BPDU contient un BID qui identifie le
commutateur ayant envoyé le BPDU
• Le BPDU contient une valeur de priorité,
l'adresse mac du commutateur émetteur et un
ID du système étendu facultatif. La valeur BID la
plus faible est déterminée par la combinaison de
ces trois champs.
61. Election du commutateur racine
• Les commutateurs transmettent leurs trames BPDU aux
commutateurs voisins, les voisins dans le domaine de
diffusion lisent les informations d'ID de racine à partir de
la trame BPDU
• Si l'ID de racine de la trame BPDU reçue est inférieure à
l'ID de racine du commutateur, il met à jour son ID de
racine identifiant le commutateur voisin comme pont
racine
• Note: Le pont racine n'est pas nécessairement un
commutateur voisin
• Le commutateur transmet ensuite les trames BPDU avec
l'ID de racine plus faible aux autres commutateurs
voisins
• Finalement, le commutateur ayant l'ID de pont le plus
faible est alors identifié comme pont racine
62. Sélection des meilleurs chemins
• Lorsque le commutateur racine a été désigné,
l'algorithme STA entame le processus de sélection des
meilleurs chemins vers le commutateur racine à partir de
toutes les destinations du domaine de diffusion
• Les informations de chemin sont déterminées par la
somme des différents coûts de ports sur le chemin de la
destination vers le commutateur racine
• Les coûts du ports par défaut sont définis par la vitesse
du port
63. Rôles des ports
• Le port racine existe sur les ponts non racine, il
s'agit du port de commutateur offrant le meilleur
chemin vers le pont racine
• Le port désigné existe sur les ponts racine et
non racine
• Pour les ponts racine, tous les ports de
commutateur sont des ports désignés
• Le port non désigné est un port qui est bloqué
64. Rôles des ports
• Lorsque deux ports ont le même coût de chemin
vers le pont racine et qu'ils représentent tous
deux les coûts de chemin les plus faibles sur le
commutateur, le commutateur doit déterminer
lequel de ces ports jouera le rôle de port racine
• Il utilise la valeur de priorité de port, ou l'ID de
port le plus faible si les valeurs de priorité des
deux ports sont identiques
65. États des ports
• Un port de switch peut prendre 5 états différents pendant le
processus
de fabrication de l'arbre couvrant via le protocole STP
- Blocking : port non-désigné. Ne fait juste qu'envoyer des BPDU et les
analyser. Reste dans cet état pendant 20 secondes max
- Listening: Reste dans cet état pendant 15 secondes max
- Learning : le port ne forward toujours pas les trames mais apprend
les adresses MAC sources contenues dans celles-ci
Reste dans cet état pendant 15 secondes max
- Forwarding : toutes les trames sont transmises
- Disable : port administrativement désactivé (shutdown)
• Chaque switch envoie toutes les 2 secondes ses BPDU
Configurable entre 1 et 10 secondes
66. Commandes de diagnostic STP
• Pour le diagnostic STP d'une interface :
#show spanning-tree interface interface
• Pour des informations détaillées :
#show spanning-tree detail
• Pour vérifier uniquement les interfaces
actives :
#show spanning-tree active
• Pour le diagnostic STP sur un VLAN :
#show spanning-tree vlan vlan-id
67. Commandes de configuration de
STP
• Désactivation de STP :
(config)#no spanning-tree vlan vlan-id
• Priorité du commutateur :
(config)#spanning-tree vlan vlan-id priority priority
• Coût et priorité d'un port :
(config-if)#spanning-tree [vlan vlan-id] cost cost
(config-if)#spanning-tree [vlan vlan-id] port-prioritypriority
• Paramètres de délais :
(config)#spanning-tree [vlan vlan-id] max-age seconds
6 à 200 secondes, 20 secondes par défaut
(config)#spanning-tree [vlan vlan-id] forward-time seconds
4 à 200 secondes, 15 secondes par défaut
(config)#spanning-tree [vlan vlan-id] hello-time seconds
1 à 10 secondes, 2 secondes par défaut