13eme partie/21 :
===============

Procedure HDLC :
===============
                      High level Data Link Control

NDLR : (On se rapproche du packet...)


-> Structure de cmd normalisee par l'ISO et le CCITT. Dans une procedure
HDLC, toutes les transmissions se font a l'interieur d'une trame. (trame
= enveloppe)


Composotion d'une trame d'info :  

+--------+------------+---------+-----------+----------------------+------+
|Flag ou | Adresse du | Champ   |    Info   | FCS                  | Flag |
|drapeau | noeud      |  de     |   utile   | Frame check control  |      |
|1 octet | de sortie  | cmd     |           | (Sequence de control |      |
| $7E    | 1 octet    | 1 octet |           | de trame)            |      |
|        |            |         |           | Detect erreur adresse|      |
|        |            |         |           | +champs cmd+info     |      |
+--------+------------+---------+-----------+----------------------+------+

Pour eviter de retrouver le FCS a $7E (equivalent au flag), au bout de
5 "1", on met un "0" a l'emission et on l'enleve a la reception.

 
 
Composition d'une trame de supervision :
idem ci-dessus mais sans la partie "Info utile"


Champ de commande : Bits 8, 7, 6, 5, 4, 3, 2, 1
=================

Bit 1 = 0 ==> Trame I / Trame d'info
====================================

             8   7   6   5   4   3   2   1 
          +------------+---+-----------+---+
          |  N(R)      |P/F|  N(S)     | 0 |
          +------------+---+-----------+---+

N(R) : Compteur reception => Numero de la trame a recevoir
N(S) : Compteur emission (S=Send) => Numero de la trame a emettre
P/F : Si cet octet est a "1", le receveur doit immediatement accuse
      reception a l'emetteur par une trame de supervision


Exemple (l'echelle du temps est de haut en bas)
==============================================

               Station A            Reseau          Station B

               001 0 001 0          ----->
               001 0 010 0          ----->
               A la rec de          <----           011 0 001 0 = Accuse
               la trame de                                        Rec de
               B, A efface                                    la trame 2 
               la trame 1                           Attend la trame 3
               et 2 de sa
               memoire

               010 0 100 0          ---->
                  
                                   etc...


B n'est pas oblige d'accuse reception a chaque trame mais il peut etre
force de le faire si A le lui demande en placant P/F a "1"



Bit 1 = "0" => Trame S / Trame de supervision :
=============================================

   8   7   6   5   4   3   2   1 
+------------+---+-----------+---+
|  N(R)      |P/F| X   X   0 | 1 |
+------------+---+-----------+---+

                   0   0 = RR = Receive ready a partir de la trame N(R)
                                Acquite les trame jusqu'a N(R)-1
                                Annule un ordre RNR

                   0   1 = REJect/NAK = En cas de probleme d'identifica-
                                        tion. On reprendra l'emission a
                                        partir de la trame incriminee
                                        N(R)

                   1   0 = RNR = Receive not ready = Controle de flux
                                 Pas pret a recevoir mais acquite les
                                 trame jusqu'a N(R)-1

                   1   1 = SREJ = Select reject (non utilise)
                             


Trame non numerotee / Trame U :
=============================

   8   7   6   5   4   3   2   1 
+------------+---+-----------+---+
|  X   X   X |P/F| X   X   1 | 1 |
+------------+---+-----------+---+

==> 19 commandes pour gerer la liaison


NDLR : Les trames X25 sont de ce type. L'information est decoupee en
       fragments de 128 octets (par exemple). Ces fragments constituent
       les parties "Info utile" des trames.


Fin de la 13eme partie/21
