# LAPB

Link Access Procedure Balanced implémente la couche « lien » définie par le protocole X.25. LAPB est un protocole orienté « bit », dérivé du protocole HDLC ce qui assure que les trames arrivent dans l'ordre et sans erreurs. LAPB est décrit dans la Recommandation ITU-T X.25 et dans l’ISO/IEC 7776. Il peut être utilisé comme couche de liaison implémentant le mode-connecté du modèle OSI défini par la Recommandation IUT-T X.222. LAPB est utilisé pour superviser les communications et les paquets entre un équipement terminal de traitement de données et un équipement terminal de circuit de données utilisant une pile de protocole X.25. LAPB est essentiellement utilisé dans l'HDLC en « Mode Équilibrage Asynchrone » (Asynchronous Balanced Mode). Une session LAPB peut être établie par soit un DTE soit un DCE. L'équipement qui lance la communication est de fait désigné comme le « primaire », celui qui répond est logiquement désigné comme « secondaire ».

## Structure du protocole
### Type de trames

* « I-Frames » (Information Frame) - Trame d'Information - : Elle Porte des informations de contrôle et des informations de couches supérieurs. Le rôle des I-Frames inclut le contrôle de séquence, le contrôle de flux, et la détection d'erreur ainsi que leur corrections. Les I-Frames transportent les numéros des séquences envoyé et reçu.
* « S-Frames » (Supervisory Frame) - Trames de Supervision - : Elles portent des informations de contrôle. Les rôles des S-Frames est d'enclencher et de suspendre les transmissions de données, de reporter les statuts et les acquittements de réception des I-Frames. Les S-Frames ne portent que les numéros des séquences reçus.
* « U-Frames » (Unnumbered Frames) - Trames Sans Nombres - : Elles portent des informations de contrôle. Le rôle des U-Frames inclut l'établissement et la coupure des connexions aussi bien que le signalement des erreurs. Les U-Frames ne portent pas de numéro de séquence.

### Format des trames

| Flag | Address | Control | Data | Checksum | Flag |
| 0111 1110 | | | | | 0111 1110 |
| (8 bits) | (8 bits) | (8 bits) | (Variable) | (16 bits) | (8 bits) |
Flag - La valeur du flag est toujours 0x7E. Affin de s'assurer que le « bit pattern » de trame n'apparaisse pas dans le champ de données (ce qui provoquerait un désalignement), la technique dite du « bourrage » est utilisée par l'émetteur et le récepteur.
Address Field - Dans LAPB, ce champ n'a pas de signification tant que le protocole est utilisé en « point-à-point » et que l'adresse réseau du DTE est contenue dans la couche 3 de la pile réseau. Autrement ce bit à plusieurs utilisations; il sépare le message de commande de sa réponse et ne peut avoir que deux valeurs :
* 0x01 Qui identifie les trames contenant une commande en provenance du DTE vers le DCE et la réponse à cette commande du DCE vers le DTE,
* 0x03 Qui identifie les trames contenant une commande en provenance du DCE vers le DTE et la réponse à cette commande di DTE vers le DCE.
Par conséquent, un des deux équipements doit être configuré en tant que « DTE Couche 2 » et l'autre « DCE Couche 2 » (Attention, ne pas confondre avec la désignation plus commune « DCE/DTE Couche 1 »).
Control Field - ce champ est utilisé pour identifier le type de la trame. En plus, il inclut le numéro de séquence, les éléments de contrôle et de suivi associé au type de trame.
Mode of Operation - Lorsque LAPB travail en « Mode Asynchrone Équilibré ». Ce mode est équilibré (i.e. pas de relation maître/esclave), ce mode est signifié par une trame SABM(E)/SM. Chaque station doit initialiser, superviser, corriger les erreurs et envoyer les trames à n'importe quel moment. Les DCT et DTE sont traités équitablement.
FCS - Le « Frame Check Sequence » active un haut niveau de contrôle des erreurs en autorisant le contrôle de l'intégrité des données transmises.
Window Size - LAPB supporte des fenêtres étendues (modulo 128 et modulo 32768) où le nombre maximum de trames « remarquables » pour un acquittement est augmenté de 7 (modulo 8) a 127 (modulo 128) puis de 32767 (modulo 32768).

### Fonctionnement du protocole

LAPB n'implémente pas de relation « maître/esclave ». L'émetteur utilise un « bit de sondage » envoyé dans une S-Frame pour provoquer une réponse immédiate. Dans la réponse, le même bit est renvoyé par le destinataire.
* ↑ Recommandation ITU-T X.25 (10/96).