Des notes destinées à éclaircir certains points
ou à apporter d'intéressants suppléments d'information
sont programmées pour apparaître lorsqu'on passe le curseur de souris
sur des icônes telles que
          
Pour des raisons de sécurité, certains navigateurs
bloquent l'apparition de ces notes (programmées en JavaScript) .
Des précieuses informations, exercices, réponses, aidant à comprendre,
à se repérer, à étendre ses connaisances sont alors perdues.

AUTORISEZ DONC VOTRE NAVIGATEUR A OUVRIR CES SCRIPTS !

Réseaux
Couche Liaison de données
Généralités

PAGE D'ACCUEIL

DU SITE
Ici commence le parcours
"Couche Liaison"
Parcours Couche 2 "Liaison"
Suite :
Protocole HDLC
 

Pour bien nous situer...

Nous allons nous pencher sur la couche liaison entre noeuds reliés par une ligne directe d'un réseau.

Nous savons mainenant que, pour faciliter le trafic dans les noeuds,
les hôtes échangent des courtes séquences de bits logiquement structurées.
Appelées Unités de Transmission



  • Zone de DONNÉES : Contient l'information binaire à transmettre.
    On l'appelle aussi "charge utile" (
    payload)
  • Elle est comprise entre :
    • une EN-TÊTE : informations sur le traitement à réserver à cette unité de transmission.
    • une zone "CONTÔLE" : permettant de de déceler d'éventuelles erreurs de transmission.
  • éventuellement des délimiteurs à l'une ou/et l'autre des extrémités de l'unité.


En tant que structure logique,au niveau liaison, une telle unité de transmission est elle appelée: TRAME.
Parfois aussi "Unité de transmission de niveau 2" (ou de niveau liaison).

Ou PDU ( Protocol Data Unit) couche Liaison.

La zone des données des trames encapsule à son tour
une structure binaire semblable, de niveau 3 OSI (Réseau) , appelée PAQUET

Ou PDU ( Protocol Data Unit) couche Réseau.
Dont nous n'avons nullement à nous occuper ici, où nous traitons du niveau 2 (Liaison).

 


Les fonctionnalités de couche 2 "réseau" ne sont pas les mêmes pour tous les réseaux.

Ce qui va suivre a pour intention de donner une description globale
des diverses variantes possibles que l'on pourra rencontrer dans les réseaux existants.
Elle concernera :
  • Les diverses modalités pour la correction des erreurs de transmission
    • Services avec ou sans acquittement.
    • Services avec ou sans connexion.
  • Le contrôle de flux.
  • Le multiplexage des protocoles des couches supérieures.
    (Possibilité d'orienter automatiquement les paquets vers des couches réseau pratiquant divers protocoles)
  • La possibilité d'ajouter dans cette couche liaison,
    un système d'adressage local accélérant l'adressage dans les réseaux locaux.


Fonctions de la couche liaison de données


Note
Bien qu'un certain nombre de réseaux locaux pratiquent, pour des raisons de rapidité,
l'adressage des hôtes locaux par des adresses contenues dans l'en-tête de couche liaison,
tout en conservant l'adressage de niveau 3 réseau pour les hôtes distants
(voir pour plus de précisions, sur ce site, le double adressage MAC-IP : ) ...

d'une manière générale, une couche liaison a pour fonction principale
de rattraper les éventuelles défaillances de la couche physique.
Principalement les erreurs de transmission.

Mais il n'y a pas qu'une seule façon de le faire !
Loin de là !

Par exemple
Si on veut une correction efficace, il suffit, en cas d'erreur,
de redemander à ce que la trame erronnée soit envoyée de nouveau
et ce, jusqu'à recevoir une bonne copie...

Forcément, cela va s'accompagner d'une perte de temps dont voici quelques causes:

  1. Le temps perdu à renvoyer une copie.

  2. Pour ce faire, les deux stations ont dû échanger des informations :
    • demande de renvoi, avec indication de la trame à répéter.
    • renvoi de la copie en indiquant que c'est une copie de telle trame...etc.
    Le dialogue peut prendre du temps.
    D'autant plus que ces indications doivent passer par les en-têtes de trames qui s'allongent en conséquence comme s'allonge le temps de leur traitement.

  3. Beaucoup plus sûr, mais pire en perte de temps :
    La station émettrice doit-elle attendre à chaque trame
    une trame de confirmation (acquittement) ACK Acknowledge
    ou de rejet ( NAK Negative Acknowledge) de celle qu'elle vient d'envoyer ?
    Si, si, çà existe !

Cependant, une correction parfaite est-elle souhaitable dans tous les cas ?
Nous allons voir que non.

Les problèmes de transmission, de perturbateurs, etc. sont très différents suivant :

  • Que les réseaux fonctionnent en milieu perturbé ou non.
  • Les type de données véhiculées :

    • On peut accepter une très courte perturbation dans la transmission de la voix ou de la musique.

    • Une erreur, même minime,dans un fichier informatique
      est généralement rédhibitoire !

  • La rapidité exigée des échanges.
  • L'étendue du réseau : LAN, WAN, MAN
  • les types de réseaux : bureautiques, industriels, réseaux de terrain,
  • etc.

Il s'en suit que la couche réseau sera dotée, suivant le cas,
de plus ou moins de fonctions, pouvant être plus moins performantes.

Une solutions très performante a toujours un prix, un temps d'exécution plus long.
Il serait tout à fait contre-indiqué de l'utiliser dans un réseau qui n'en a pas besoin.

D'une manière générale, lorsque la transmission a des chances d'être fortement
perturbée il faut une couche liaison robuste.

Sinon, il est préférable de compter sur une autre couche supérieure (Transport)
pour rattraper les paquets de données non transmis ou incorrectement transmis.

Mais cette correction par la couche transport exige que le dialogue entre hôtes
pour rattraper l'erreur traverse le réseau !
Alors...ne vaudrait-il mieux les corriger localement ?



Et ce sont là les quelques raisons pour lesquelles
il n'y a pas qu'un seule implémentation de la couche liaison,
...loin de là !


Dans cette page :
ou ailleurs Dans ce site :
,
sur ce sujet :

Fonctionnalités d'interface à la
couche supérieure
couche réseau
Services offerts par la couche liaison à la couche supérieure "Réseau" - SAP -
Assurer le multiplexage
des protocoles de niveau supérieur.
Fonctionnalités principales de la couche liaison
Pertinence d'un rattrapage d'erreurs au niveau liaison
Protocoles à acquittements - Reprises sur erreur -
Possibilité de mode connecté pour mettre en oeuvre
le rattrapage des erreurs et le contrôle de flux.
Mise en oeuvre d'un contrôle de flux
Diverses implémentations de la couche Liaison
Fonctionnalités d'interface à la
couche inférieure
couche physique
Assurer la reconnaissance des débuts et fins de trames :
cadrage de trames
Eventuellement mettre en oeuvre un type d'adressage dit : ''adressage niveau trame"
concurrençant l'adressage niveau réseau :

 


SERVICES DE COUCHE LIAISON - Qualité de Service : ( QOS )


Dans le voccabulaire des réseaux, le mot service présente certaines fonctions d'une couche quelconque
comme des services qu'elle rend à la couche immédiatement supérieure.

Ainsi, les services de couche liaison rendus à la couche réseau
consistent à faire en sorte que les paquets émis par la couche réseau
de l'une des machines arrivent intactes à la couche réseau de l'autre machine.
Même si, accidentellement, dans la couche physique, quelques trames les portant peuvent avoir été perturbées ou même perdues.

Il est possible, que pour des raisons de compatibilité entre types de réseaux différents,
certaines couches liaison puissent offrir des variantes de services ou moins fiables suivant les besoins particuliers.

Nous allons voir que pour la couche liaison, ces variantes peuvent être :

des services avec ou sans acquittement

des services orientés connexion

des services sans acquittement ni connexion

Ces services doivent pouvoir être demandés par la couche réseau sans qu'elle ait à connâitre
les détails d'implémentation de la couche liaison qui lui rend ces services.

Comment alors le logiciel de la couche supérieure peut-il choisir tel ou tel service de la couche inférieure ?

Le logiciel animant cette couche inférieure contient de procédures qui les implémentent.
Elles sont appelées "Primitives de service".

Il n'est pas question d'avoir à connaître le code exécutable du logiciel animant la couche adjacente inférieure
(plusieurs millions de signes binaires 0 1 )
pour que le logiciel de la couche adjacente puisse déclencher les procédures donnant accès aux services.

Il suffit de convenir d'une sorte de "mode d'emploi" externe de cette couche.
Pour le programmeur, ce mode d'emploi est écrit en langage compréhensible mais imposé par le concepteur de la couche sollicitée.
Ce "mode d'empoi" s'appelle interface entre couches adjacentes.

Cette interface définit des "Points d'accès aux Services"
"Service Access Point" - SAP -

Les SAP consistent en des codes appelés par le logiciel de la couche supérieure dans sa relation avec son adjacente inférieure.
Ils sont placés dans les en-têtes des unités de transmission pour être propagés vers la couche paire de l'autre machine..


SSAP
Source of Service Access Point - DSAP Destination Service Access Point.

Dialogue entre couches adjacentes et entre couches paires

Pour en savoir plus sur les SAP, RDV dans ce même site, en :

Dans ce même esprit,
certaines couches liaison peuvent offrir différentes qualités de service "QoS" ( Quality of Service)

  • débit minimal garanti
  • divers taux d'erreur maximaux garantis
  • disponibilité de la liaison

La notion de qualité de service concerne principalement les couches liaison
des réseaux de transport de données numériques à grande capacité et portée.

Sommaire :

 


Le rattrapage des erreurs de transmission au niveau liaison
en vaut-il la peine ?


Les perturbateurs peuvent produire des erreurs sur le flot de bits s'écoulant sur les lignes de transmission.

La couche physique dispose de plusieurs méthodes pour détecter ces erreurs à l'arrivée :

Le contrôle de parité - utilisé dans la jonction RS 232 (PC-Modem , PC-souris, etc.)
Les contrôles de redondance cycliques ou CRC :  
Les codes auto-correcteurs : codes de Hamming :

La couche liaison doit en principe réagir à toute indication d'erreur provenant de la couche physique.

Si on dispose d'une correction automatique des erreurs de transmission,
par exemple de type codes de Hamming,
la couche liaison ne doit prévoir que les cas où une trame n'est pas arrivée,
ce qui demande toutefois que l'on ait un moyen de numérotage pour s'apercevoir des absences.

Dans le cas beaucoup plus fréquent où l'on ne dispose que d'un code de détection d'erreurs,
le rattrapage d'une trame erronée donne lieu à plusieurs types de protocoles.

1
On peut ne pas s'en inquiéter du tout :
C'est le cas en transmission du son ou de la vidéo, des erreurs isolées n'ayant pas une grande importance.
2

La couche 2 élimine la trame signalée fausse par la couche 1 :
elle ne la transmet pas à la couche 3

Deux attitudes sont posibles à partir de là :

 
2.1

On ne s'en inquiète pas au niveau 2, laissant le problème à une couche supérieure.

C'est généralement la couche 4 Transport qui fait le nécessaire pour récupérer la trame manquante en la redemandant.

Cette méthode est rentable lorsque le taux d'erreurs en ligne est faible, comme c'est le cas dans les réseaux locaux bureautiques ou les lignes de transmission à grande vitesse.

Elle ne l'est plus lorsque les perturbations en ligne sont fréquentes et importantes : c'est le cas des liaisons au travers de réseau téléphonique d'abonnés par exemple.

 

 
2.2
On résout ce problème au niveau 2

Dans le cas où les perturbateurs obèrent fréquemment la liaison il est préférable, de disposer d'un protocole de liaison fiable.

En effet, le rattrapage des trames perdues par les protocoles des niveaux supérieurs prennent plus de temps que si on agit immédiatement au niveau le plus bas.

Inversement, mettre constamment en oeuvre un lourd protocole de liaison obère inutilement le temps de traitement des trames si les erreurs sont rares.


Voir dans la rubrique suivante "Acquittements"
les diverses méthodes de rattrapage d'erreurs :


Sommaire :

 


Acquittements - Reprise sur erreur -


Dans certains types de réseaux, la couche liaison de la station réceptrice élimine systématiquement toute trame s'avérant erronée.
L'élimination consiste à ne pas la transmettre aux couches supérieures.
Ou c'est sans importance pour les données transmises, ou on rattrape ce manquement par la couche Transport.

Mais, sur des lignes perturbées,on a intérêt à résoudre le problème localement.
Ce qui exige un dialogue entre machines communicantes.
Il se fait à travers les informations contenues en-têtes des trames échangées.


Quelques informations sur la manière dont peut se passer ce dialogue entre machines.
Uniquement pour vous donner une vague idée...
le détail des opérations est précisé séparément, ailleurs dans ce site, pour chaque type de réseau étudié.

Exemple pris sur le réseau en anneau : Token-Ring

Nous analysons ici, pour l'exemple, un type particulier trame de réponse, envoyée en confirmation à l'envoyeur.

Dans un réseau en anneau TOKEN-RING type IEEE802.5, les trames se terminent par un champ de deux bits : A et C.


Ne pas s'étonner des adresses Dest. & Sce. contenues dans l'en-tête.
Nombre de réseaux locaux (c'est le cas de Token-Ring)
doublent les adresses réseau contenues dans les en-têtes de couche 3 par des adresses locales.
Le but est d'accalarer l'adressage dans le réseau local.

  • le bit A ( Active), mis à 1 : la station receptrice se signale comme étant active.
  • le bit C ( Copy), mis à 1 : la station destinatrice a reçu la trame sans erreur et l'a copiée dans ses registres pour traitement.

    Si C=0, la station émettrice doit alors envoyer de nouveau la même trame à condition que A=1 .
    Si aucune erreur n'est signalée, la station receptrice indique sur le champ de fin de trame (bit C), que la trame a été lue convenablement. La station réceptrice n'a pas de raison de renvoyer une telle trame.

Ce mécanisme s'appelle un protocole par "acquittements". Ou à "reprise sur erreur".
Le bit (C) est l'acquittement : positif si C=1, négatif si C=0;

Dans un réseau en anneau, ce mécanisme n'implique aucune perte significative de temps.
Car de toute manière la trame entière retourne inmanquablement à son envoyeur du même anneau.
La vérification des bits C et A se fait très rapidement par comparaison matérielle

Réseaux à diffusion ou point-à-point :

Dans le cas d'un réseau à diffusion ou point à point,
l'acquittement ne peut se faire que par renvoi d'une trame d'information
par laquelle le récepteur fait entendre à l'émetteur que la trame a été correctement ou incorrectement reçue.

L'inconvénient de cette méthode est de ralentir les échanges :

Si le protocole utilisé exige que la station émettrice doive attendre à chaque trame envoyée
un acquittement, positif ou négatif, de la part de la station receptrice,
le débit est tout simplement divisé par deux.
Ce type de protocole s'appelle "Envoyer et attendre" "Send and Wait"
Dans certains protocoles de des liaisons bidirectionnelles, on peut utiliser les trames de données
pour renvoyer des acquittements.Voir protocole LAP B de HDLC.

Si le protocole utilisé exige seulement que la station réceptrice n'émette un acquittement que pour
les trames erronées, encore faudra-t-il que les trames soient numérotées pour désigner sans
ambiguïté la ou les trames erronées.

On utilise également des "protocoles à fenêtre d'anticipation" permettant à l'émetteur de s' "avancer"
en émettant des trames sans attendre les acquittements. Celles-ci pourront être acquittées en bloc par
une trame d'informations ou en utilisant une trame de données en retour.
Un système de compteurs des trames doit être mis en place sur les couches liaison des deux machines
communicantes. Chacune compte les trames envoyées, les trames acquittées, à acquitter, etc.
Encore faut-il mettre des limites au nombre de trames envoyées et non acquittées : c'est ce qu'on appelle
"Fenêtre d'Anticipation" Exemples : LAP B de HDLC et LLC 2

On voit que le problème n'est pas simple ; il a été résolu de diverses manières suivant les types de réseaux.

Mais comme en matière industrielle, les pionniers font loi, il faut bien observer que tous les protocoles
de rattrapage d'erreurs existants sont des variantes du premier d'entre eux par ordre chronologique,
le protocole LAP B (Link Access Protocol - Balanced mode) de HDLC.

Sommaire :


 


SERVICES ORIENTES CONNEXION


Avec ou sans Connexion ?

Ne confondons surtout pas "Connexion Logique" avec "Connexion physique" !

Si une connexion au sens logique a été établie, et si la communication physique est momentanément coupée,
les deux machines pourront reprendre leur échange au moment où la connexion physique sera rétablie
si elles ont gardé en mémoire suffisament de paramètres pour le reprendre le dialogue commencé,
depuis le début, ou même le reprendre à l'endroit où elles l'avaient laissé.

On dit que l'on a établi une connexion (logique) entre deux ordinateurs
lorsque chacun d'eux maintient une trace des principales caractéristiques de l'échange qui va avoir lieu
qui a lieu ou qui a lieu entre eux.

Une connexion (logique) se fait en trois phases :

  1. L'établissement de la connexion entre les deux machines :
    Préparation à l'échange des données, réseration de tampons de mémoires, du numérotage des trames,
    des temporisateurs, mémorisation des adresses, des modes de fonctionnement, etc.

  2. Le maintien de la connexion :
    phase d'échange des données

  3. La libération de la connexion :
    Une fois l'échange complètement terminé, on libère les ressources allouées dans chaque machine lors de l'établissement de la connexion.

Chaque protocole implémente à sa façon chacune de ces étapes.

Sommaire :


Seuls les services orientés connexion assurent les conditions d'une TRANSMISSION FIABLE.

D'ailleurs, les anglo-saxons désignent comme synonymes les termes :
Transmission Fiable "Reliable Transmission" et Service Orienté connexion "Connection Oriented"

Des services non fiables existent, paradoxalement.
Surtout quand une couche haute peut redemander l'envoir d'une trame absente.
(Couche 4 Transport).

On les appelle "SERVICES DATAGRAMME".
Par analogie aux "télégrammes" qui étaient expédiés sans accusé de réception.
Dans ces cas, la couche liaison ne fait pas grand chose. Par exemp LLC 1


Contrôle de flux - généralités -


Le contrôle de flux consiste pour une machine réceptrice, à avoir la faculté de notifier à temps à la machine émettrice,
que, momentanément ou définitivement, elle n'est pas ou plus en mesure de recevoir ses trames.

Cela peut arriver :

  • si les tampons (buffers) de réception de la machine réceptrice sont momentanément saturés.

  • si les autres noeuds du réseau ou les logiciels des couches hautes
    auxquelles la machine réceptrice doit, à son tour, envoyer les trames
    ne sont pas en mesure elles-mêmes de les recevoir.

    • Soit que la machine soit un noeud de transit (routeur) d'un réseau momentanément encombré.

    • Soit que les logiciels des couches hautes, notamment les applications,
      sont trop lentes pour traiter le flux entrant.

Il existe de nombreuses méthodes pour implémenter un contrôle de flux.

  • La machine réceptrice peut indiquer qu'elle est en mesure ou non de recevoir de l'information.
    Par un code situé à un endroit précis de l'en-tête d'une trame.
    Ce qui exige que la machine émettrice sonde la machine réceptrice par l'envoi d'une trame de questionnement.
    Et qu'elle attende ladite réponse...action à recommencer tant que la réceptrice est indisponible !

  • On peut décider que la machine émettrice devra attendre de la part de la station réceptrice
    une indication du nombre maximum de trames qu'elle peut envoyer : un appelle cela un crédit de trames.
    Quand la machine émettrice aura atteint ce crédit,
    elle devra attendre qu'un nouveau crédit lui soit accordé par la machine receptrice.
    Si toutefois ce crédit ne lui a pas déjà été envoyé pendant qu'elle émettait.
    L'inconvénient est que le flux est fixé par le client, ce qui exclut une politique centralisée de gestion du réseau.

  • Une politique centraliséée consiste, pour un superviseur du réseau,
    à envoyer des trames d'information à toutes les machines susceptibles d'envoyer des données dans le réseau,
    leur indiquant quelles quantités d'information elles sont autorisées à émettre.
    Le danger est que lorsqu'on approche la congestion du réseau,
    ces trames n'aient pas le temps d'arriver pour bloquer les crédits précédemment alloués.

  • Une autre technique consiste à allouer des ressources suffisantes - tampons de mémoire -
    lors de l'ouverture de la connexion des machines communicantes.
    Inconvénient : les ressources nécessaires sont forcément plus important
    es que pour un crédit limité
    et la communication est plus chère.

Sommaire :


Cadrage de trames


On appelle ainsi toute méthode permettant de détecter le début d'une trame dans un flot continu de bits arrivant sut la carte d'accès réseau d'une station ou d'un noeud quelconque du réseau.
J'ai signalé l'exemple de HDLC-LAPB qui utilise des drapeaux binaires 01111110.

Diverses autres méthodes sont actuellement utilisées dans ce but ;

La violation de codage des bits
Les délimiteurs de trame avec étoffage par bits de transparence
Le cadrage par vérification d'intégrité d'un code (ATM)

Développement de ces questions à la page "Liaisons Synchrones" de ce même site :

Sommaire :


Multilpexage de protocoles

On peut actuellement connecter sur le même réseau des machines échangeant des données
selon des protocoles de niveau 3 différents.

Une même machine peut mettre en oeuvre simultanément plusieurs applications utilisant des protocoles réseau différents.

Plusieurs machines différentes, des PC IBM et des Macintosh, peuvent partager les mêmes supports.

Comment reconnaître le protocole auquel sont liées les trames qui passent ?
Tel est le but du multiplexage des protocoles.

Comme exemple de multiplexage,
je vous inviteà consulter la page consacrée au protocole de liaison mltiplexé LLC (IEEE 802.2)

Lien :

Autre exemple de multiplexage : les protocoles PPP. Lien :

Sommaire :

QUELQUES IMPLEMENTATIONS DE LA COUCHE LIAISON

LLC - Logocal Link Control - Standard IEEE 802.2 -

HDLC - High Data Link Control - LAP - B - Link Access Protocol -
LAP - D - Liaison X 25 -  
LAP - F - Liaison Frame Relay  
PPP - Point to Point Protocol

Sommaire :


Ici commence le parcours
"Couche Liaison"
Parcours Couche 2 "Liaison"
Suite :
Protocole HDLC
 
PAGE
D'ACCUEIL

DU SITE