Protocoles de liaison
HDLC - LAP B
3.1 - Protocole LAP B

Accueil
du Site

 

Avant :
Trames HDLC
Parcours : "Couche 2 - Liaison"
Suite :
Protocole LAP 2°
 
     

INITIALISATION
Type de trame
 
8
7
6
5
4
3
2
1
 
SABM : Connexion LAP B - Réinitialisation LAP B
Com
0
0
1
P
1
1
1
1
LAP B

Commande lancée par l'initiateur de la liaison afin de s'accorder sur le type de protocole HDLC à employer.

SNRM : Set Normal Response Mode (Initialiser en mode de réponse normal) :
Valable seulement dans le mode dissymétrique primitif. Vers 1976. Voir étude faite au début :

SABM : Set Asynchronous Balanced Mode (Initialiser en mode asynchrone équilibré ) :
Valable seulement pour le mode HDLC équilibré ultérieurement adopté vers 1980 dans la procédure nommée LAP B

SABME : Un mode étendu (E comme Extended) de LAP B où les champs commande (ou réponse) des trames numérotées sont portés à deux octets au lieu d'un pour le mode SABM.


COMMANDE DE DÉCONNEXION - DISC
Type de trame
 
8
7
6
5
4
3
2
1
 
DISC : Déconnexion - Disconnection
Com
0
1
0
P
0
0
1
1
LAP/LAP B

Cette commande est émise par une station A lorsqu'elle veur arrêter la transmission : se déconnecter.
Cette station A doit attendre un accusé de réception de la part de la station à laquelle est connectée - disons B -
Une fois cet acquittement reçu de B, A peut s'arrêter.

Cet acquittement consiste en une une trame non numérotée UA
UA : Unnumbered Acknowledge : Acquittement non numéroté.

Type de trame
 
8
7
6
5
4
3
2
1
 
UA : Accusé de réception - Unumbered Ack.
Rép
0
1
1
F
0
0
1
1
LAP/LAP B


NUMÉROTAGE DES TRAMES

Le protocole HDLC permet l'envoi de plusieurs trames à la suite les unes des autres, sans attendre un accusé de réception pour chacune d'elles en particulier, ce qui ferait perdre du temps.
Bien entendu, un acquittement est attendu, mais pour une séquence entière de trames.

Cette séquence ne doit toutefois pas être trop longue, car une seule erreur dans une trame de cette séquence, exigerait que les trames à partir de celle contenant l'erreur - comprise - soient re-envoyées par l'émetteur, ce qui peut être très pénalisant si la trame erronnée se trouve parmi les premières envoyées.

On a fixé à 7 le nombre maximal de trames d'une séquence.
Vous observerez que les champs N(R) des trames numérotées et N(S) des trames I ont trois bits qui permettent donc d'écrire les nombres de 0 à 7.

Rappel :

Type de trame
 
8
7
6
5
4
3
2
1
 
Trames I : Information
Rép/Com
N(R)
P
N(S)
0
.
Trames S : Supervision
 
 
 
 
 
 
 
LAP
ou
LAP B
RR : Prêt à recevoir. - Receive Ready
Rép/Com
N(R)
P/F
0
0
0
1
RNR : Pas prêt à recevoir. - Receive Not Ready
Rép/Com
N(R)
P/F
0
1
0
1
REJ : Rejet - Rejected.
Rép/Com
N(R)
P/F
1
0
0
1
  • N(S)
    L'émetteur d'une séquence de trames inscrit dans le champ N(S) de celles-ci un numéro d'ordre, commençant par 0 et s'incrémentant de 1 à chaque envoi d'une nouvelle trame s'il n'y a pas d'incident signalé à la réception..
    Ce numéro ne peut excéder 7 bien entendu. Mais nous verrons qu'après 7, le numérotage peut recommencer à partir de zéro sans perdre son sens
  • N(R)
    Rappellons que la liaison est bidirectionnelle et que les deux stations échangent des trames.
    Chacune des stations lit et enregistre les numéros d'ordre N(S) des trames reçues de sa partenaire.
    Elle sait donc quel est le numéro N(S) de la trame qu'elle a le plus récemment reçue.
    Elle sait donc le numéro de la prochaine trame à recevoir (ce peut être 0 si, dans la dernière reçue, N(S) = 7).
    C'est le numéro de la prochaine trame à recevoir qu'elle va inscrire dans le champ N(R) de la prochaine trame qu'elle émettra.
    Si l'une des stations n'a pas momentanément de trames Information à envoyer à l'autre, les acquittements peuvent se faire par des trames RR, avec un N(R) égal à la prochaine trame attendue. C'est à dire le numéro de la dernière des trames reçues correctement plus un.

Un exemple


Cette figure montre des trames échangées (rectangles blancs) entre deux stations,
en indiquant seulement leurs N(S) pour la station A et N(R) pour B.

Dans ce cas de figure, les acquittements des trames reçues sont portés par les champs N(R)
des trames d'information en retour.
Ce qui suppose que chacune des stations a de l'information à transmettre à l'autre.
Si en ravanche une station n'a pas d'information à retourner, elle peut envoyer des trames RR,
dont le champ N(S) aura la même fonction.

C'est au temps T1 que la station B compose la prochaine trame qu'elle envoie à la station A.
Elle envoie cette trame entre les temps T1 et T2
Au temps T1, la trame N(S)=2, invisible sur la figure, n'est pas encore reçue.
Elle est donc attendue.
La station B inscrit donc 2 dans son champ N(R).

L a trame N(S) = 3 ne sera totalement reçue qu'après T2 et avant T3.
Par conséquent, à l'instant T2 où elle forme sa trame, la station B n' a totalement reçu que la trame N(S)=2.
En T2 cette station "sait " seulement qu'elle attend N(S) = 3.

Et ainsi de suite...

Cela fait penser à un échange de type "envoyer et attendre" à chaque trame.
Il n'en est rien !

Dans le cas présenté ci-dessus, la station B renvoie, certes, des acquittements à chaque trame,
mais c'est parce qu'elle profite ici des trames de données qu'elle devait de toute manière envoyer à la station A.
Elle doit seulement ajouter les champs N(S) et N(R) dont le codage informatique est quasi-immédiat
et incomparablement plus rapide qu'un envoi de trame sur une liaison.


Si la station du bas n'avait pas de données à transférer à celle du haut,
elle acquitterait les trames par groupes à concurrence de 7...

Voici un exemple où la station B est plus lente ou a des trames plus longues à envoyer.
Ici, trois trames sont acquittées en bloc.

Ainsi toute station émettrice de trames garde en mémoire deux variables d'état :

  • V(S) contenant le numéro de la dernière trame qu ' elle a émise, et,
  • V(R) la prochaine trame que la station réceptrice s'attend à recevoir.

Ces variables sont régulièrement mises à jour lors de l'envoi et lors la réception de chaque trame.

Et ce de manière symétrique par les deux stations en communication point à point.

Chacune est donc en mesure de savoir si le flot des trames envoyées est bien intégralement reçu par le destinataire.

Mais que se passe-t-il si une trame est perdue (coupure intempestive de la liaison ou erreur de transission) ?
Nous allons le découvrir prochainement...
Pour le moment, examinons les diverses autres commandes, leur utilité,
les circonstances de leur utilisation, le dialogue et les réponses qui s'en suivent.


COMMANDE "PRET A RECEVOIR" - RR (Receive Ready)
Type de trame
 
8
7
6
5
4
3
2
1
 
Trames S : Supervision
 
 
 
 
 
 
 
LAP
ou
LAP B
RR : Prêt à recevoir. - Receive Ready
Rép/Com
N(R)
P/F
0
0
0
1
RNR : Pas prêt à recevoir. - Receive Not Ready
Rép/Com
N(R)
P/F
0
1
0
1
REJ : Rejet - Rejected.
Rép/Com
N(R)
P/F
1
0
0
1

1 - L'émetteur doit envoyer cette commande RR :

pour indiquer au récepteur qu'il est prêt à recevoir une trame I (Informaion) ;
accusant ainsi réception des trames I (Information) reçues dont le numéro
est inférieur ou égal à N(R) - 1

C'est un moyen pour acquitter les trames reçues quand le récepteur ne peut pas le faire dans le champ N(R) d'une trame I faute d'information à trasmettre à l'émetteur.

2 - L'une ou l'autre des stations connectées doit envoyer la commande RR à sa partenaire

pour lui signaler sa fin d'indisponibilité dans le cas où elle aurait précédemment envoyé une commande RNR (Receiver Not Ready - Récepteur Non Prêt).

3 - L'émetteur peut lui-aussi envoyer cette commande RR au récepteur pour lui demander son état de disponibilité.

Il faut alors que l'émetteur positionne le bit P de cette commande RR
Réponses attendues : RR ou RNR avec F=1.


COMMANDE " RECEPTEUR NON PRET " RNR (Receive Not Ready)
Type de trame
 
8
7
6
5
4
3
2
1
 
Trames S : Supervision
 
 
 
 
 
 
 
LAP
ou
LAP B
RR : Prêt à recevoir. - Receive Ready
Rép/Com
N(R)
P/F
0
0
0
1
RNR : Pas prêt à recevoir. - Receive Not Ready
Rép/Com
N(R)
P/F
0
1
0
1
REJ : Rejet - Rejected.
Rép/Com
N(R)
P/F
1
0
0
1

La trame RNR doit être envoyée par une station réceptrice pour signaler son état d'impossibilité à accepter
de nouvelles trames I ( Information).

Cette commande doit accuser réception des trames I (Information) dont le numéro est inférieur ou égal à N(R) - 1

Comme la station émettrice recevra cette commande avec un retard dû à la transmission, il est possible qu'elle continue à émettre des trames entre temps : 5, 6 et 7 dans la figure ci-dessous.

Vu son signalement d'indisponibilité, il est fort possible que ces trames ne puissent pas être acceptées par la station réceptrice.

Néanmoins, si quelques unes le sont, elles pourront être acquittées plus tard.

Exemple :

A l'instant T1 la trame 4 est reçue mais pas la 5 qui est attendue. Le champ N(R) de la trame RNR doit donc être 5.

Au moment de la constitution de la trame RR, la trame 6 est arrivée mais pas la 7.
Et d'ailleurs, B ayant signalé son indisponibilité à recevoir imminente, la trame 6 n'a peut-être pas été
convenablement reçue.

Dans tous les cas, la trame RR qui signale la fin de l'indisponibilité doit porter le même N(R) que la trame RNR préccédente qui l'a signalée, c'est à dire 5 dans le cas de la figure ci-dessus.
Et ce,
indépendament du fait que la station réceptrice ait ou n'ait pas n'a pu traiter les trames 5, 6, 7.

La commande RNR peut être envoyée au récepteur avec le bit P=1 pour demander son état..
Réponses de celui-ci : RR ou RNR les deux avec le bit F = 1.

COMMANDE ET RÉPONSE de REJET : REJ (Réjected)
Type de trame
 
8
7
6
5
4
3
2
1
 
Trames S : Supervision
 
 
 
 
 
 
 
LAP
ou
LAP B
RR : Prêt à recevoir. - Receive Ready
Rép/Com
N(R)
P/F
0
0
0
1
REJ : Rejet - Rejected.
Rép/Com
N(R)
P/F
1
0
0
1
RNR : Pas prêt à recevoir. - Receive Not Ready
Rép/Com
N(R)
P/F
0
1
0
1

Cette trame de supervision REJ est utilisée par le récepteur, suite à une erreur de transmission, pour pour demander la retransmission des trames I (Information) à partir du numéro de la première des trames non valable ; numéro qu'elle inscrit dans le champ N(R) de la trame REJ. Elle accuse de fait la réception des trames précédentes jusqu'à N(R) - 1 seulement.
L'émetteur doit alors retrasmettre toutes les trames à partir de ce N(R).


La suite ?
Maintenant que nous connaissons la plupart des commandes,
nous pouvons passer à l'analyse des échanges.

Orientation

Avant :
Trames HDLC
Parcours : "Couche 2 - Liaison"
Suite :
Protocole LAP 2°
 
Page d'accueil

du Site