close

Couche de liaison de données

Aller à la navigation Aller à la recherche

La couche liaison de données (ou couche liaison de données ) est la deuxième couche de l' architecture réseau basée sur le modèle ISO/OSI pour l'interconnexion des systèmes ouverts. Cette couche de transmission reçoit des paquets de données de la couche réseau et forme les trames qui sont transmises à la couche physique sous-jacente dans le but de permettre le transfert fiable des données via le canal sous-jacent .

Descriptif

Dans la pile IP, dans certains cas, la couche liaison de données consiste en l'utilisation d'un réseau construit avec un autre protocole pour transporter des paquets IP. Cela se produit par exemple avec X.25 , Frame Relay , mode de transfert asynchrone . Voici quelques exemples de protocoles de couche liaison de données :

  • Ethernet (pour les réseaux locaux )
  • PPP , HDLC et ADCCP pour les connexions point à point , c'est-à-dire entre deux stations connectées directement, sans nœuds intermédiaires.

Il peut être fiable ou non - de nombreux protocoles de liaison de données n'utilisent pas d'accusés de réception, et certains peuvent même ne pas vérifier les erreurs de transmission. Dans ce cas, les niveaux supérieurs doivent assurer le contrôle de flux , le contrôle d'erreur et gérer les confirmations (et les retransmissions associées).

Dans certains réseaux, tels que les réseaux locaux IEEE 802 , cette couche est divisée en sous-couches MAC et LLC . Ce dernier est commun à toutes les couches MAC, telles que Token Ring et IEEE 802.11 mais également aux couches MAC qui ne font pas partie de la norme 802, telles que FDDI .

Fonctionnalités

La couche liaison de données doit donc assurer plusieurs fonctions spécifiques :

  • En phase de transmission , il regroupe les bits provenant de la couche supérieure et destinés à la couche physique dans des paquets appelés trames ( framing ) ;
  • En phase de réception, il vérifie et gère les erreurs de transmission ( error control ) ;
  • Régule le flux de transmission entre la source et le récepteur ( contrôle de flux ).
  • Dans la phase de transmission, une certaine forme d' accès multiple / multiplexage fonctionne pour un accès partagé entre plusieurs utilisateurs au canal physique qui évite les collisions entre les paquets et les interférences en réception ou sur le canal.

Tout cela permet de faire apparaître le support physique en réception, au niveau supérieur, comme une ligne de transmission sans erreur. [1] [2]

Sous-niveau LLC

Le sous-niveau supérieur est le contrôle de liaison logique (LLC) et peut fournir des services de contrôle de flux, de confirmation, de détection (ou de correction) d'erreurs. Les protocoles PPP et HDLC font partie de ce sous-niveau.

Les protocoles de sous-niveau LLC qui fournissent le service de confirmation ou de garantie de la réception des données doivent inclure des messages d'accusé de réception ou ACK . L'expéditeur peut attendre que chaque message soit acquitté avant de transmettre le suivant, ou il peut continuer à transmettre jusqu'à ce qu'un nombre maximum de messages non encore confirmés par le destinataire soit atteint, dans les protocoles dits fenêtrés .

Dans les protocoles de fenêtre, chaque paquet transmis est identifié par un numéro progressif à l'intérieur de la fenêtre , appelé numéro de séquence ; les messages de confirmation doivent rapporter le numéro de séquence du paquet qu'ils rencontrent.

Les messages de confirmation peuvent être cumulatifs (« paquets reçus jusqu'à N »), ou nécessiter une retransmission cumulative (« paquets retransmis jusqu'à N ») ou sélectifs uniquement des paquets non reçus correctement. Dans certains cas l'acquittement des messages reçus utilise un message dédié, dans d'autres cas l'acquittement est inséré dans des champs spécifiques des messages transmis en sens inverse ( piggyback ), diminuant les latences de retransmission .

Sous-couche MAC

Le sous-niveau inférieur est Media Access Control ou Medium Access Control . Son but est de réguler l' accès multiple de plusieurs nœuds à un canal de communication partagé , en évitant ou en gérant l'apparition de collisions. Une collision se produit lorsque deux nœuds ou plus transmettent simultanément des données sur le canal partagé. Cela conduit à la perte inévitable des données transmises avec un gaspillage conséquent de bande passante .

Il existe plusieurs algorithmes et protocoles standard pour le contrôle d'accès multiple. Par exemple, le MAC IEEE 802.3 adopte l' algorithme CSMA/CD tandis que le MAC IEEE 802.11 est basé sur l' algorithme CSMA/CA . Le premier est communément adopté dans les LAN câblés , le second dans le WLAN .

Il existe deux principaux types d'algorithmes d'accès multiple : aléatoire et ordonné. Dans un accès multiple aléatoire, des collisions peuvent se produire mais des mécanismes appropriés sont mis en œuvre pour réduire la probabilité de leur occurrence et pour retransmettre les trames en collision. En accès ordonné, en revanche, la survenue d'une collision est totalement impossible puisque les nœuds suivent un ordre précis d'accès au canal (établi dans la phase d'initialisation du réseau) qui en fait des utilisateurs exclusifs du support de transmission (sauf si il y a des pannes) ou des dysfonctionnements).

De plus, au niveau MAC, le format de trame est défini, qui contiendra généralement les champs de début/fin, les champs d'adresse MAC de l' expéditeur/destinataire , le paquet encapsulé de niveau LLC , le code de détection d'erreur (FEC), et éventuellement des octets de remplissage à s'assurer que la taille de la trame ne descende pas en dessous d'un seuil minimum.

Interfaces

La couche de liaison de données est souvent implémentée en tant que pilote de carte réseau . Le système d'exploitation aura une interface logicielle entre cette couche et la couche supérieure (réseau). Cette interface n'est pas une couche, mais plutôt un standard de communication inter-couches. Quelques exemples:

Fonctionnalité de la sous-couche LLC

Transmission synchrone et asynchrone

La transmission série peut avoir lieu de manière synchrone ou asynchrone .

Dans la transmission asynchrone, chaque caractère transmis est précédé et suivi de signaux qui indiquent le début et la fin du caractère ; ces signaux sont appelés signaux de démarrage et d'arrêt. La transmission asynchrone est donc également appelée transmission arythmique. Avec cette méthode chaque caractère peut être considéré comme indépendant des autres, l'intervalle de temps entre l'envoi de deux caractères n'est pas précisé.

En transmission synchrone, les caractères à émettre sont regroupés en messages ( trames ). Chaque trame est précédée de caractères de synchronisation qui permettent de synchroniser la station réceptrice sur la vitesse de transmission de la station émettrice du message. La transmission synchrone est plus rapide car les temps morts de transmission sont réduits, mais une erreur ne serait-ce que sur un seul bit peut endommager l'ensemble du message envoyé. Les protocoles de transmission synchrone sont divisés en BCP ( Byte Control Protocol ) ou orienté octet, dans lequel la subdivision en caractères du message à transmettre est maintenue, et BOP ( Bit Oriented Protocol ) ou orienté bit, dans lequel les messages sont vu comme une succession de bits (de cette façon vous n'êtes pas lié à l'encodage ASCII 8 bits).

Une opération importante en transmission synchrone est le framing , c'est-à-dire le découpage en trames des informations à transmettre.

Cadrage

Le terme cadrage fait référence aux opérations suivantes :

  • Encapsulation des données avec un en-tête et une éventuelle file d'attente (trailer).
  • Interprétation des bits présents dans les en-têtes (et éventuellement dans les files d'attente).

Afin de fournir des services au niveau de la couche réseau, la couche liaison de données doit tirer parti des services qui lui sont fournis par la couche physique. L'approche habituelle de la couche liaison de données est de diviser le flux de bits en paquets (précisément adaptés à une transmission sur un réseau de paquets ), et de calculer le Checksum . Diverses méthodes sont utilisées pour diviser les bits en paquets ou en trames :

  • Nombre de caractères.
  • Caractères de début et de fin.
  • Drapeaux de début et de fin.

La méthode du comptage de caractères (obtenue en spécifiant le nombre de caractères de la trame dans le champ d'en-tête de paquet) est rarement utilisable puisque, si le champ contenant le nombre de caractères est endommagé (altéré) lors de la transmission, il ne peut plus être utilisé. où commence la trame suivante ; les autres techniques sont alors utilisées.

En transmission orientée octet (la trame conserve la subdivision en octets) la trame est précédée de la séquence de caractères ASCII DLE STX ( Data Link Escape Start of TeXt ) et se termine par la séquence DLE ETX ( Data Link Escape End of TeXt ). Si une trame échoue et que la destination perd sa synchronisation, trouvez simplement le prochain DLE STX ou DLE ETX. Cependant, le caractère DLE peut apparaître de manière aléatoire à l'intérieur de la trame lorsque des données binaires telles que des programmes objets ou des nombres à virgule flottante sont transmises ; pour que ces caractères n'interfèrent pas, un DLE supplémentaire est ajouté (qui est retiré à la destination avant de passer la trame au niveau du réseau) afin que seuls les DLE simples soient interprétés comme des délimiteurs ; cette technique s'appelle le bourrage de caractères .

En transmission orientée bit (la trame peut contenir n'importe quel nombre d'octets) chaque trame commence et se termine par la séquence 01111110 appelée flag : cette séquence peut apparaître aléatoirement dans les données, donc en transmission après cinq 1 consécutifs un 0 est toujours inséré dans le flux de bits, que le bit suivant soit 1 ou 0, alors qu'en réception il est nécessaire d'éliminer les bits insérés, en supprimant toujours un 0 après cinq 1 ; cette technique s'appelle le bourrage de bits .

Vérification d'erreur

Comme mentionné, la station émettrice de la couche liaison de données reçoit les données de la couche supérieure et les subdivise en trames avant de les confier à la couche physique pour transmission sur le canal, en y ajoutant un code de contrôle des erreurs de transmission ( data intégrité ) en réception ( somme de contrôle ).

Lorsqu'un paquet arrive à destination, la somme de contrôle est recalculée à partir de la même couche de liaison de données que le système récepteur. Si le résultat diffère de celui contenu dans le paquet, la couche liaison de données reconnaît qu'une erreur a été commise et prend les mesures appropriées (telles que rejeter le paquet et envoyer un message d'erreur en réponse à l'expéditeur).

En général il existe deux types de codes de contrôle , les codes détecteurs qui permettent uniquement de comprendre que la trame n'est pas correcte et éventuellement demander la retransmission du paquet ( ARQ Automatic Repeat-reQuest ) et les codes de correction qui permettent non seulement de comprendre si une erreur s'est produite, mais aussi pour identifier l'emplacement de l'erreur et la corriger en conséquence ( FEC Forward Error Correction ). Ces derniers codes nécessitent beaucoup plus de bits que les codes détecteurs et gaspillent donc de la bande passante ; par conséquent, des codes de détection uniquement sont généralement utilisés.

En cas d'erreur, si le service n'est pas fiable, la trame peut simplement être rejetée ; pour que la ligne soit fiable, toutes les trames doivent arriver correctement ; si un code détecteur est utilisé, le récepteur doit demander la retransmission des trames erronées.

Le choix entre code détecteur et code correcteur peut aussi dépendre de la vitesse des lignes (pour les lignes à bas débit, l'attente de la retransmission peut être trop longue) ou de la fiabilité (si le taux d'erreur sur la ligne est très faible ce n'est pas la peine de gaspiller beaucoup de bande passante pour un code correcteur) ou le type de service demandé (temps réel ou non).

La manière habituelle d'assurer une livraison fiable est de fournir à l'expéditeur des informations sur ce qui se passe à l'autre bout de la ligne. Typiquement, le protocole demande au récepteur de renvoyer des paquets de contrôle spéciaux avec une valeur positive ou négative selon les paquets reçus. Si l'expéditeur reçoit une réponse positive sur un colis expédié, il sait qu'il est arrivé correctement. Si, en revanche, il obtient une réponse négative, cela signifie que quelque chose s'est mal passé et que le paquet doit être retransmis.

Une complication supplémentaire pourrait provenir de la possibilité que des problèmes matériels entraînent la disparition totale du package. Si un paquet n'arrive pas à destination, l'expéditeur n'attendra pas indéfiniment, en fait un temporisateur est utilisé, qui est déclenché lors de la transmission des données, si le temporisateur dépasse le seuil limite (programmé) sans recevoir l'ACK ( Acknowledgment ou confirmation ), il renverra les colis. Cependant, si le paquet ou le message d'accusé de réception est perdu, le temporisateur expire ( time-out ) et la station émettrice, ne recevant pas de confirmation, est forcée de renvoyer les données, mais à ce stade, l'expéditeur pourrait recevoir deux fois ou plus. même colis. Pour résoudre ce problème, les paquets envoyés sont numérotés, ainsi le système récepteur, dans le cas où il reçoit un numéro de paquet égal au précédent, c'est-à-dire une copie du paquet, le rejette. Cette technique est connue sous le nom de Stop and wait ; les autres techniques les plus couramment utilisées pour le contrôle d'erreurs sont le code de Hamming et le CRC ( Cyclic Redundancy Control ). En fait, cependant, les fonctions de contrôle d'erreur sur les paquets individuels sont effectuées non seulement au niveau de la liaison de données, mais dans toutes les autres couches du protocole pour garantir l'exactitude des données de service ( en-tête ) des protocoles destinés aux couches respectives.

Contrôle de flux

Un autre problème de conception important que l'on trouve dans la couche liaison de données est celui de la gestion d'une ligne partagée lorsque plusieurs nœuds veulent envoyer des messages en même temps et doit également décider quoi faire avec un expéditeur qui a systématiquement tendance à transmettre des paquets plus rapidement que le le destinataire peut les accepter. Cette situation peut facilement se rencontrer lorsque l'expéditeur est situé sur une machine rapide et le destinataire sur une machine lente. L'expéditeur continue d'envoyer des paquets à grande vitesse, jusqu'à ce que le destinataire soit complètement submergé. Même si la transmission est sans erreur, à un moment donné, le récepteur ne pourra pas gérer les paquets entrants et commencera à les perdre ( débordement de tampon ).

La solution typique est d'introduire un contrôle de flux pour forcer l'expéditeur à respecter la vitesse du récepteur dans l'envoi des paquets. Cette imposition nécessite généralement un certain type de mécanisme de rétroaction afin que l'expéditeur puisse être informé si le destinataire est en mesure de recevoir ou non.

Si, en revanche, plusieurs nœuds veulent envoyer des messages en même temps, un contrôle centralisé tend à être introduit, créant un nœud de contrôle unique, chargé de déterminer qui a la priorité au sein du réseau ; le nœud suivant vérifiera alors quand le réseau n'est plus occupé, afin qu'il puisse envoyer le message dès qu'il sera libre. Cependant, il peut arriver que plusieurs nœuds surveillent le réseau et que dès qu'il est libre, ils envoient immédiatement des messages, dans ce cas il y aura des problèmes de collision ; pour pallier ce problème, les noeuds surveillant le réseau seront régulés par un protocole d' accès multiple en attendant par exemple un temps aléatoire avant d'envoyer les messages, car il est peu probable que les noeuds choisissent le même instant pour envoyer les données.

Fonctionnalité de la sous-couche MAC

En télécommunications , dans le cadre des réseaux informatiques , le MAC ( acronyme de Medium Access Control ou Media Access Control ) est un sous - niveau du modèle architectural normalisé ISO / OSI , défini dans la norme IEEE 802 , qui contient des fonctions de contrôle d' accès au support physique pour les canaux de diffusion , la fonctionnalité de cadrage et la vérification des erreurs .

Il fait partie du niveau datalink , dont il représente le sous-niveau inférieur surmonté du sous-niveau LLC et limité en dessous par le niveau physique . Les différentes caractéristiques de cette couche sont décrites à partir de la troisième partie de la norme. Il s'agit du niveau où se trouve l' adresse MAC ou l'adresse physique de l'ordinateur. Cette couche a principalement deux fonctions, celle d'encapsulation des données et celle d'accès au médium.

La première fonction traite de l'encapsulation des trames avant leur émission et de la décapsulation à leur réception ; il traite également de la détection des erreurs de transmission et de la délimitation de la trame pour faciliter la synchronisation entre l'émetteur et le récepteur. La deuxième fonction contrôle l'accès aux médias , communiquant directement avec la couche physique.

Remarques

  1. ^ Définition de la couche de liaison de données , sur linfo.org , 16 octobre 2005. Récupéré le 13 mai 2012 .
  2. ^ Bradley Mitchell, Visual Networking Overview - The OSI Model - Data Link Layer , sur compnetworking.about.com , about.com . Consulté le 13 mai 2012 .

Bibliographie

  • A. Tanenbaum, Réseaux informatiques .
  • Fabrizia Scorzoni, Réseaux et protocoles .

Objets associés

Autres projets

Liens externes