Table des matières
[I. Présentation de la couche liaison de données 2](#_Toc349740013)
[II. Les normes de réseau local 2](#_Toc349740014)
[II.1. IEEE et le modèle OSI 2](#_Toc349740017)
[II.2. Les adresses MAC 3](#_Toc349740018)
[II.3. Structure de trame générique 3](#_Toc349740019)
[III. Les sous couches LLC et MAC 4](#_Toc349740020)
[III.1. Le contrôle de lien logique (LLC) 4](#_Toc349740021)
[III.2. La sous-couche MAC 4](#_Toc349740022)
[IV. Notions de base de la technologie Token Ring 4](#_Toc349740023)
[IV.1. Principe du MAC Token Ring : le passage de jeton 5](#_Toc349740024)
[IV.2. Format de la trame Token Ring 5](#_Toc349740025)
[IV.3. Les mécanismes d’administration Token Ring 6](#_Toc349740026)
[V. Notions de base d’Ethernet et d’IEEE 802.3 7](#_Toc349740027)
[V.1. Structure de trame Ethernet 7](#_Toc349740028)
[V.2. MAC Ethernet 8](#_Toc349740029)
[V.3. Signalisation et médias Ethernet 8](#_Toc349740030)
[VI. Les équipements de couche 2 8](#_Toc349740031)
[VI.1. Les cartes réseau ou NIC 8](#_Toc349740032)
[VI.2. Les ponts 9](#_Toc349740033)
[VI.3. Les commutateurs 9](#_Toc349740034)
[VII. Gestion des erreurs de transmission 10](#_Toc349740035)
[VII.1. La détection d'erreurs 10](#_Toc349740036)
[VII.2. La correction d'erreurs 12](#_Toc349740037)
[VII.3. Gestion des acquittements : Contrôle de flux 12](#_Toc349740038)
Chapitre 4
La couche liaison de données
Présentation de la couche liaison de données
La couche liaison de données permet d’échanger des données via un support local commun.
La couche liaison de données assure deux services de base :
* Elle permet aux couches supérieures d’accéder aux supports par des techniques. * Elle contrôle la manière dont les données sont placées sur les supports et reçues des supports par des techniques telles que le contrôle d’accès au support et la détection des erreurs.
Tout comme pour chacune des couches OSI, il existe des termes spécifiques à cette couche :
* Trame : l’unité de données de protocole (ou PDU) de la couche liaison de données. * Nœud : la notation de couche 2 des périphériques réseau connectés à un support commun. * Support physique : le média permettant de procéder au transfert des informations entre deux nœuds. * Réseau physique : deux nœuds ou plus connectés à un support commun.
Les normes de réseau local
Le modèle OSI comprend 2 couches dites « matérielles » en opposition aux couches logicielles. La couche 1 est la couche physique, elle englobe les médias, les signaux ainsi que les bits se déplaçant sur diverses topologies.
La couche Liaison de données a pour fonction de combler tous les manques de la couche physique afin de permettre la communication réseau.
IEEE et le modèle OSI
Selon l’IEEE, on sépare la couche Liaison de données en 2 parties :
* Média Access Control (MAC) : transmission vers le bas jusqu’au média * Logical Link Control (LLC) : transmission vers le haut jusqu’à la couche réseau
| | | | | | | | | --- | --- | --- | --- | --- | --- | --- | | Couches OSI | | Spécifications LAN | | | | | | | Couche liaison de données | Sous couche LLC | Ethernet | IEEE LLC 802,2 | | | | | Sous couche MAC | IEEE 802,3 | 100 BASE-T | Token Ring / IEEE 802,5 | FDDI | | Couche Physique | |
Figure 1 : différences entre le modèle OSI et les spécifications de l’IEEE
Les adresses MAC
Une adresse MAC est une adresse matérielle ; c'est-à-dire une adresse unique non modifiable par l’administrateur et stockée sur une mémoire morte (ROM) de la carte réseau.
Les adresses MAC comportent 48bits et sont exprimées sous la forme de 12 chiffres hexadécimaux :
* 6 chiffres administrés par l’IEEE et identifient le fabricant de la carte. * 6 chiffres forment le numéro de série de la carte.
On peut les représenter de 2 manières différentes : par groupe de 4 chiffres séparés par des points ou par groupe de 2 chiffres séparés par des tirets
Publicité
Exemple : 0000.0c12.3456 OU 00-00-0c-12-34-56
Les LANs de type Ethernet et 802.3 sont des réseaux dits de broadcast, ce qui signifie que tous les hôtes voient toutes les trames. L’adressage MAC est donc un élément important afin de pouvoir déterminer les émetteurs et les destinataires en lisant les trames.
Structure de trame générique
| | | | | | | | --- | --- | --- | --- | --- | --- | | **A** | **B** | **C** | **D** | **E** | **F** | | Champ de début de trame | Champ d'adresse | Champ de type/ longueur | Champ de Données | Champ FCS | Champ de fin de trame |
Figure 2 : les champs d’une trame générique
* *Champ de début de trames* : annonce l’arrivée d’une trame. * *Champ d’adresse* : contient les informations d’identification (source et destination). * *Champ de longueur/type* : dépend de la technologie, il peut indiquer la longueur de la trame, le protocole de couche 3, etc. * *Champ de données* : contient les informations à transmettre, parfois accompagnés d’octets de remplissage pour que les trames aient une longueur minimale à des fins de synchronisation. * *Champ de FCS* : permet de détecter les erreurs, c’est une séquence de contrôle permettant au destinataire de vérifier le bon état de la trame.
Exemple : le CRC ou code de redondance cyclique : calculs polynomiaux sur les données.
* *Champ de fin de trame* : permet d’annoncer la fin de la trame.
Les sous couches LLC et MAC
Le contrôle de lien logique (LLC)
La sous couche LLC a été crée afin de permettre à une partie de la couche liaison de données de fonctionner indépendamment des technologies existantes. Le rôle de cette sous-couche est de réceptionner le paquet IP et d’y ajouter les informations de contrôle pour en faciliter l’acheminement jusqu’à la destination. Elle ajoute 2 éléments d’adressage décrit dans la spécification LLC 802.2 :
* *Le point d’accès DSAP* : point d’accès SAP du nœud réseau désigné dans le champ de destination du paquet * *Le point d’accès SSAP* : point d’accès au service du nœud réseau désigné dans le champ source du paquet
Il est à noter que le SAP (point d’accès au service) est un champ de la spécification d’une adresse définie par la norme IEEE 802.2
La sous-couche MAC
La sous-couche MAC concerne les protocoles que doit suivre un hôte pour accéder au média. Dans un environnement de média partagé, il permet de déterminer quel ordinateur peut parler. On distingue 2 types de protocoles MAC :
* Déterministes : chacun son tour. Exemple : Token Ring * Non déterministe : premier arrivé premier servi. Exemple : Ethernet
Notions de base de la technologie Token Ring
Token Ring, mis en place par IBM, a commencé à se développer au début des années 70. C’est aujourd’hui le deuxième type de réseau derrière Ethernet. Il en existe 2 variantes quasi identiques : Token Ring IBM et IEEE 802.5 :
| | | | | --- | --- | --- | | | **Token Ring IBM** | **IEEE 802,5** | | **Débits** | 4 ou 16 Mbits/s | 4 ou 16 Mbits/s | | **stations /** **segments** | 260 (câble a paire torsadées blindées) 72 (câble a paire torsadées non blindées) | 250 | | **Topologie** | En étoile | non spécifié | | **Média** | Paire torsadée | Non spécifié | | **Signalisation** | Bande de base | Bande de base | | **Méthode d'accès** | Passage de jeton | Passage de jeton | | **Codage** | Manchester Différentiel | Manchester différentiel |
Principe du MAC Token Ring : le passage de jeton
La topologie de Token Ring est en anneau. Dans cet anneau, une petite trame (le jeton) circule. Toutes les stations le reçoivent tour à tour. Si une station n’a rien à émettre, elle se contente de récupérer le jeton et de le transmettre à son voisin. Si par contre elle désire émettre des données sur le réseau, elle saisit le jeton, en altère un bit pour en faire son début de trame, puis y ajoute les informations à transmettre avant de transmettre cela à son voisin. Pendant ce temps, aucun jeton ne circule sur le réseau.
La trame circule autour de l’anneau jusqu’au destinataire, qui réceptionne la trame, la copie afin de la traiter puis la remet sur le réseau qu’elle parcourt jusqu’à l’émetteur. Ce dernier s’assure que le destinataire a bien reçu la trame, puis peut soit émettre une nouvelle trame soit ; s’il n’a plus rien à émettre ; remettre le jeton sur le réseau.
Ce principe comporte 2 avantages : il est exempt de toute collision et permet un accès déterministe au média grâce au système de priorité :
Format de la trame Token Ring
Le jeton (3 octets) : composé d'un début et d'une fin de trame et d'un octet de contrôle d'accès
* *Un octet de contrôle d'accès* : comprend un champ priorité, un champ réservation, et un bit représentant le jeton plus un bit de comptage moniteur * *Le bit représentant le jeton* fait la distinction entre le jeton et la trame de données/contrôle * *Le bit de comptage moniteur* détermine si la trame circule constamment autour de l'anneau * *Le délimiteur de fin de trame* indique la fin du jeton ou de la trame. Il contient des bits indiquant une trame endommagée et d'autre indiquant la dernière trame d'une séquence logique
| | | | | | | | | | | --- | --- | --- | --- | --- | --- | --- | --- | --- | | | | Trame de données / commandes | | | | | | | | | | | | | | | | | | 1 | 1 | 1 | 6 | 6 | 0 | 4 | 1 | 1 | | Délimiteur De début | Contrôle d'accès | Contrôle de trame | Adresse de destination | Adresse D’origine | Données | FCS | Délimiteur de fin | Etat de la trame | | | | | | | | | | | | | | | Jeton | | | | | | | Délimiteur de début | Contrôle d'accès | Délimiteur de fin |
Figure 4 : structure de la trame Token Ring
Les trames de données/contrôle : leur taille varie selon la taille du champ d'information. Elles comportent des informations à l'intention des protocoles de couches supérieures (trames de données) ou des informations de contrôle (trame de contrôle).
* *Un octet de contrôle* de trame suit l'octet de *contrôle d'accès*. Il indique le type de la trame. Si c'est une trame de contrôle, il indique aussi le type de contrôle * *Champs d'adresse* : indique l'origine et la destination de la trame, ces adresses ont une taille de 6 octets. * *Champ de données* : sa taille est limitée par le jeton de l'anneau qui spécifie le temps maximal durant lequel une station peut conserver le jeton. * *FCS* : contrôle d'erreur * *Délimiteur de fin de trame* : indique la fin de la trame * *Etat de la trame* : permet de vérifier si le destinataire a bien reçu la trame
Les mécanismes d’administration Token Ring
Différents mécanismes existent pour détecter et compenser les défaillances d’un réseau Token Ring. L’un d’eux consiste à définir un hôte du réseau comme moniteur actif. Cette station agit alors comme une source centralisée d’information de synchronisation et exécute diverses fonctions de maintenance de l’anneau.
Exemple : Si une station en train d’émettre tombe en panne, sa trame va continuer à tourner dans le réseau. Le rôle du moniteur actif sera d’enlever cette trame et de remettre le jeton en circulation.
Les stations sont reliées par des concentrateurs actifs nommés MSAU. Ces derniers créent entre les différentes stations un anneau virtuel. Ils peuvent aussi détecter les pannes éventuelles et retirer les stations défectueuses de l’anneau. Si une station détecte un problème sur le réseau, elle envoie une trame «Beacon », cette dernière définissant un domaine de panne. Cette trame déclenche un processus de reconfiguration automatique de l’anneau que les MSAU effectuent par le biais de reconfiguration électrique.
Domaine de panne : comprend la station signalant la défaillance et son voisin le plus proche.
Notions de base d’Ethernet et d’IEEE 802.3
Conçu à Hawaï, Ethernet est la technologie la plus répandue dans les réseaux actuels qui fut mise en place par l’IEEE la norme IEEE 802.3 à partir d’Ethernet.
Ethernet et IEEE 802.3 définissent des technologies semblables :
- Utilisation de CSMA/CD pour l’accès au média
- Concept de réseaux de broadcast
Il existe cependant quelques différences subtiles, en effet, Ethernet offre des services correspondant aux couches 1 et 2 du modèle OSI alors que IEEE 802.3 définit la couche 1 ainsi que la partie MAC de la couche 2
Structure de trame Ethernet
| | | | | | | | | --- | --- | --- | --- | --- | --- | --- | | **Trame Ethernet** | | | | | | | | ? | 1 | 6 | 6 | 2 | 46-1500 | 4 | | Préambule | Délimiteur de début de trame | Adresse de destination | Adresse d'origine | Type | Données | FCS | | **Trame IEEE 802.3** | | | | | | | | ? | 1 | 6 | 6 | 2 | 64-1500 | 4 | | Préambule | Délimiteur de début de trame | Adresse de destination | Adresse d'origine | Longueur | Données | FCS |
Figure 9 : Structure de trames Ethernet et IEEE 802.
- *Préambule* : composé de 1 et de 0 en alternance, annonce si la trame est de type Ethernet ou 802.3.
- *Début de trame* : IEEE 802.3 : l'octet séparateur se termine par 2 bits 1 consécutifs servant à synchroniser les portions de réception des trames de toutes les stations.
Publicité
- *Champ d'adresse d'origine* : toujours de type unicast
- *Champ d’adresse de destination* : peut être de type unicast, multicast ou broadcast.
- *Type (Ethernet)* : précise le type de protocole de couche supérieure qui reçoit les données
- *Longueur (802.3)* : indique le nombre d'octets de données qui suit le champ.
- Données Ethernet : une fois le traitement de couche 1 et 2 terminé, les données sont transmises au protocole de la couche supérieure indiqué dans le champ type.
- *FCS* : Séquence de contrôle de trame. Cette séquence contient un code de redondance cyclique de 4 octets permettant à l’unité réceptrice de vérifier l’intégrité des données.
MAC Ethernet
Ethernet et 802.3 utilisent un principe d’accès au média non déterministe: CSMA/CD (Carrier Sense Multiple Access / Collision Detect). Les hôtes se partagent le média, si l’un d’eux désire émettre, il vérifie au préalable que personne n’est en train de le faire, puis commence à émettre (CSMA). Si cependant 2 hôtes émettent en même temps, il se produit alors une collision. La première station qui détecte une collision envoie alors un signal de bourrage, se traduisant par un arrêt d’émission de tous les hôtes. Les paquets concernés sont alors détruits. Chaque hôte calcule alors une valeur aléatoire définissant la durée avant de recommencer à émettre, puis le mécanisme de CSMA se remet en fonction.
Signalisation et médias Ethernet
Ethernet utilise un codage de type Manchester. Il existe actuellement de nombreuses variantes d’Ethernet, la figure ci-dessous présente les différents médias et topologie utilisée en fonction du type utilisé :
| | | | | | | | --- | --- | --- | --- | --- | --- | | Type : | Média | Bande passante maximale | longueur de segment maximale | topologie physique | topologie logique | | 10BASE5 | Coaxial Epais | 10 Mbits/s | 500m | Bus | Bus | | 10BASE-T | UTP CAT 5 | 10 Mbits/s | 100m | Etoile Etoile étendue | Bus | | 10BASE-FL | Fibre optique Multimode | 10 Mbits/s | 2000m | Etoile | Bus | | 100BASE-TX | UTP CAT 5 | 100 Mbits/s | 100m | Etoile + étoile étendue | Bus | | 100BASE-FX | Fibre optique Multimode | 100 Mbits/s | 2000m | Etoile | Bus | | 1000BASE-TX | UTP CAT 5 | 1 000 Mbits/s | 100m | Etoile + étoile étendue | Bus |
Figure 10 : les différents types d’Ethernet
Les équipements de couche 2
Les cartes réseau ou NIC
Se connectant sur la carte mère, la carte réseau assure la connexion physique entre l’ordinateur et le réseau. Elle contient également l’adresse MAC. Trois facteurs différencient les types de cartes :
- le type de réseau. Exemple : Ethernet, Token Ring
- le type de média. Exemple : Fibre optique, UTP, coaxial
- le type de bus système. Exemple : PCI, ISA, PCMCIA
Au niveau de la couche liaison de données, la carte réseau assure le contrôle de lien logique, la désignation ; le verrouillage de trame, l’accès au média ainsi que la signalisation
Les ponts
* Les ponts servent à relier des segments réseaux en permettant une segmentation des domaines de collisions. * Une analyse des trames est effectuée afin d’acheminer les trames sur le bon segment réseau en fonction des adresses MAC. * Il permet de plus de connecter différentes technologies de couche 1 et cumule à ses fonctions celle du répéteur.
Les commutateurs
Le commutateur est un pont multi ports. Il permet donc de relier plusieurs segments réseau et d’acheminer les trames sur le bon segment de destination grâce aux informations de couche 2.
On distingue 2 types de commutations :
- *cut through* : dès que le commutateur connaît l’adresse de destination, il commence l’envoi de la trame sur le bon segment.
- *Store and forward* : le commutateur attend l’arrivée complète de la trame pour acheminer celle ci au bon segment.
Gestion des erreurs de transmission
Le codage binaire est très pratique pour une utilisation dans des appareils électroniques tels qu'un ordinateur, dans lesquels l'information peut être codée grâce à la présence ou non d'un signal électrique.
Cependant le signal électrique peut subir des perturbations (distorsion, présence de bruit), notamment lors du transport des données sur un long trajet. Ainsi, le contrôle de la validité des données est nécessaire pour certaines applications (professionnelles, bancaires, industrielles, confidentielles, relatives à la sécurité, ...).
C'est pourquoi il existe des mécanismes permettant de garantir un certain niveau d'**intégrité** des données, c'est-à-dire de fournir au destinataire une assurance que les données reçues sont bien similaires aux données émises. La protection contre les erreurs peut se faire de deux façons :
* soit en fiabilisant le support de transmission en se basant sur une protection **physique**. * soit en mettant en place des mécanismes **logiques** de *détection* et de *correction* des erreurs.
La plupart des systèmes de contrôle d'erreur au niveau logique sont basés sur un ajout d'information (on parle de « *redondance* ») permettant de vérifier la validité des données. On appelle **somme de contrôle** (en anglais *checksum*) cette information supplémentaire.
La détection d'erreurs
Une méthode de détection d’erreurs doit permettre de constater qu’une erreur est apparue dans la trame. Elle ne fournit aucun détail sur le nombre d’erreurs, leurs localisations, leurs conséquences sur les données…son seul but est de signaler que la trame reçue est différente de celle envoyée, et donc de demander à l’émetteur une retransmission de la trame endommagée.
Le contrôle de parité
Le contrôle de parité (appelé parfois *VRC*, pour *Vertical Redundancy Check* ou *Vertical Redundancy Checking*) est un des systèmes de contrôle les plus simples. 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. Pour être plus explicite il consiste à ajouter un *1* si le nombre de bits du mot de code est impair, *0* dans le cas contraire.
Prenons l'exemple suivant :
Dans cet exemple, le nombre de bits de données à *1* est pair, le bit de parité est donc positionné à *0*. Dans l'exemple suivant, par contre, les bits de données étant en nombre impair, le bit de parité est à 1 :

Imaginons désormais qu'après transmission le bit de poids faible (le bit situé à droite) de l'octet précédent soit victime d'une interférence :

Le bit de parité ne correspond alors plus à la parité de l'octet : **une erreur est détectée**.
Toutefois, si deux bits (ou un nombre pair de bits) venaient à se modifier simultanément lors du transport de données, aucune erreur ne serait alors détectée...
Le système de contrôle de parité ne détectant que les erreurs en nombre impair, il ne permet donc de détecter que 50% des erreurs. Ce système de détection d'erreurs possède également l'inconvénient majeur de ne pas permettre de corriger les erreurs détectées (le seul moyen est d'exiger la retransmission de l'octet erroné...).
Le contrôle de parité croisé
Le contrôle de parité croisé (aussi appelé *contrôle de redondance longitudinale* ou *Longitudinal Redundancy Check*, noté **LRC**) consiste non pas à contrôler l'intégrité des données d'un caractère, mais à contrôler l'intégrité des bits de parité d'un bloc de caractères.
Publicité
Soit « HELLO » le message à transmettre, en utilisant le code ASCII standard. Voici les données telles qu'elles seront transmises avec les codes de contrôle de parité croisé :
Le code CRC
Le code CRC (Code de Redondance Cyclique) ou code Polynomial est la méthode utilisée dans la majeure partie des réseaux locaux.
Le code CRC est basé sur le fait que toute chaine binaire permet de construire un polynôme, chacun des bits donnant sa valeur au coefficient polynomial correspondant. Par exemple, la suite 0101 sera associée au polynôme 0x3+1x2+0x1+1x0 c’est-à-dire x2+1.
La mise en place du code CRC nécessite de choisir un polynôme dit **générateur**, souvent noté **G(x),** qui va permettre le contrôle.
Soit la chaine binaire 10111 à émettre.
Soit le polynome générateur G(x)= x3+1 : 1001
G(x) est de degré 3 : on ajoute 3 bits de valeur 0 pour que le polynôme soit divisible par G(x) : on obtient alors le polynôme 10111000.
On réalise alors la division du polynôme à émettre par le polynôme générateur :
10111000 1001
1001
0101 10101
0000
1010
1001
0110
0000
1100
1001
101
Le reste de la division est 101 : la trame émise par l’émetteur sera 10111101.
Supposons ici que la chaine bianire reçue est 10110101. Pour détecter une éventuelle erreur, la chaine reçue est divisée par G(x) .
Le reste 001 ,n’est pas nul, une erreur est donc apparue : une demande de retransmission est donc soumise à l’emetteur.
Début
Division des données binaires par G(x)
Insertion du reste de la division dans le champ de contrôle
Transmission du message (données+ reste)
Division du message reçu par G(x)
Reste nul ?
Fin
Demande de retransmission du message
La correction d'erreurs
Une méthode de correction d’erreur est beaucoup plus complexe qu’une méthode simplement détectrice. Elle doit transmettre en plus des données tout ce qui est nécessaire à les reconstituer en cas de constat d’erreur à l’arrivée. Une telle méthode est intéressante lorsqu’une ligne physique est très peu fiable : une méthode de détection déclencherait de nombreuses retransmission de trames d’où une perte de temps importante. Une des méthodes répandue de correction d’erreur est la méthode de Hamming.
Gestion des acquittements : Contrôle de flux
Chaque trame envoyée doit être acquittée par le récepteur. L’acquittement peut être positif (ACK) ou négatif (NACK)
1. **Problème 1 :**
***Solution*** : Armer un temporisateur T1 après l’envoi d’une trame d’information. Si T1 expire avant la réception d’un acquittement (+ ou -), l’émetteur renvoi la même trame d’information.
1. ** Problème 2 :**
***Solution*** : Numérotation de trames (identification).
1. **Problème 3 :**
* Si chaque trame doit être acquittée par une trame spécifique et d’une manière individuelle l’efficacité de la liaison sera très faible. * La plupart de temps les extrémités de la liaison seront en état d’attente d’acquittement.
***Solutions :***
* *Piggypacking* : le récepteur peut acquitter une trame d’information reçue par l ’envoi d’une autre trame d’information. * *Anticipation* : l’émetteur peut envoyer w trames sans avoir un acquittement.
*Acquittement groupé* : Le récepteur peut acquitter par une seule trame un groupe de trames reçues. Dans ce cas on aura une numérotation de trames d’information. Acquitter la trame N c’est acquitter toutes les trames précédentes 1..N