AVERTISSEMENT : La traduction proposée n'a pour simple but que de faciliter aux lecteurs francophones la lecture des spécifications du protocole radioamateur AX.25. Cette traduction ne remplace en aucune manière le document de référence édité en anglais par l'ARRL.
Merci par avance de me signaler toutes corrections ou suggestions permettant d'améliorer la présentation de ce document.
Mise à jour 2023-09-19.
Mise à jour de la table des PID Novembre 1997
Afin de fournir un service fiable de transmission de données entre deux terminaux, il est nécessaire de définir un protocole pouvant recevoir et émettre ces données sur divers liens de communications. Le protocole du niveau liaison AX.25 est conçu pour fournir ce service indépendamment d'autres niveaux éventuels.
Ce protocole se conforme aux recommandations ISO 3309, 4335 (incluant DAD 1 & 2), 6256 HDLC (High-level Data Link Control) et utilise partiellement la terminologie de ces documents. Il se conforme aussi à l' ANSI X3.66 décrivant ADCCP (Advanced Data Communication Control Procedure) en mode équilibré.
Ce protocole reprend dans le principe les recommandations CCITT X.25 à l'exception du champ d'adressage étendu et de l'ajout de la trame d'information non numérotée (trame UI). Il suit également les principes de la recommandation CCITT Q.921 (LAP-D) concernant l'utilisation de liens multiples, identifiés par le champ adresse, sur un canal unique partagé.
Tel qu'il est défini ce protocole fonctionnera dans des environnements radio aussi bien duplex que semi-duplex.
Ce protocole a été étudié pour fonctionner aussi bien entre deux stations packet radio individuelles qu'entre une station individuelle est un système à accès multiples.
Ce protocole permet l'établissement de plusieurs connexions par appareil si ce dernier en a la possibilité.
Ce protocole n'interdit pas l'auto-connexion. On considère qu'il y a auto-connexion quand un dispositif établit un lien vers lui même
en utilisant sa propre adresse, à la fois comme source et destination de la trame.
La plupart des protocoles de niveau liaison supposent qu'un système primaire (ou maître) généralement appelé DCE (Data Circuit-terminating Equipment) soit connecté à un ou plusieurs systèmes secondaires (esclaves) habituellement dénommé DTE (Data Terminating Equipment). Dans un environnement radioamateur, qui utilise un canal HF partagé, ce type de fonctionnement en mode non équilibré n'est pas utilisable. Le protocole AX.25 considère que les deux extrémités d'un lien sont de classes identiques supprimant de fait cette distinction. Le sigle DXE sera utilisé dans les spécifications de ce protocole afin de décrire les systèmes en mode équilibré que l'on trouve en transmission amateur packet-radio.
Les transmissions packet-radio du niveau liaison s'effectuent dans des petits blocs de données appelées trames. Chaque trame est constituée de plusieurs sous-ensembles appelés champs. Les Fig.1A et 1B montrent la composition des trois types de trames de base.
Fig. 1A -- Composition des trames U et S
1er bit transmis | ||||
Fanion | Adresse | Contrôle | FCS | Fanion |
01111110 | 112/560 Bits | 8 Bits | 16 Bits | 01111110 |
Fig. 1B -- Composition de la trame Information
1er bit transmis | ||||||
Fanion | Adresse | Contrôle | PID | Info. | FCS | Fanion |
01111110 | 112/560 Bits | 8 Bits | 8 Bits | N*8 Bits | 16 Bits | 01111110 |
Chaque champ est constitué d'un nombre entier d'octet, la fonction spécifique étant précisée ci après.
La longueur du champ fanion est d'un octet. Du fait de son utilisation pour délimiter les trames, il apparaît en début et fin de chaque trame. Deux trames peuvent partager un fanion ce qui dénote la fin de la première trame et le début de la deuxième. Un fanion est constitué par un zéro suivit de six uns et d'un autre zéro, soit 01111110 (Hex. 7E). Du fait de l'insertion d'élément binaire ( cf.2.2.6) cette séquence n'apparaît nulle part ailleurs dans la trame.
Le champ adresse est utilisé pour identifier à la fois la source de la trame et sa destination. De plus le champ adresse contient l'information commande / réponse et des services complémentaires pour l'utilisation en répéteur de niveau 2 (liaison).
Le codage du champ adresse est décrit en 2.2.13 .
Le champ contrôle est utilisé pour identifier la trame en cours et pour gérer différents états de la connexion du niveau 2. Sa longueur est d' un octet, et son codage est décrit en 2.3.2.1 .
Le champ identificateur de protocole (PID: Protocol Identifer) doit être présent dans les trames d'information (I et UI). Ce champ identifie le type de protocole de niveau 3 (réseau) éventuellement utilisé. Le champ PID n'est pas inclus dans le comptage des octets de la trame d'information. Le codage du champ PID est le suivant :
HEX | 76543210 | Signification |
0x01 | 00000001 | ISO 8208/CCITT X.25 PLP |
0x06 | 00000110 | Compressed TCP/IP packet. Van Jacobson (RFC 1144) |
0x07 | 00000111 | Uncompressed TCP/IP packet. Van Jacobson (RFC 1144) |
0x08 | 00001000 | Segmentation fragment |
(**) | yy01yyyy | Protocole AX.25 de niveau 3 |
(**) | yy10yyyy | Protocole AX.25 de niveau 3 |
0xC3 | 11000011 | TEXNET datagram protocol |
0xC4 | 11000100 | Link Quality Protocol |
0xCA | 11001010 | Appletalk |
0xCB | 11001011 | Appletalk ARP |
0xCC | 11001100 | ARPA Internet Protocol (IP) |
0xCD | 11001101 | ARPA Address resolution (ARP) |
0xCE | 11001110 | FlexNet |
0xCF | 11001111 | NET/ROM (TheNet) |
0xF0 | 11110000 | Absence de protocole de niveau 3. |
0xFF | 11111111 | Code d'échappement. L'octet suivant contient des informations supplémentaires sur le protocole de niveau 3. |
(Un "y" indique les combinaisons utilisables)
(**) Note:
Toutes combinaisons en yy11yyyy et yy00yyyy autres que celles listées ci-dessus, sont à l'heure actuelle réservées
pour de futurs protocoles de niveau 3. L'assignation de ces formats est décidé par accord entre radioamateurs. Il est recommandé que les concepteurs
de protocoles de niveau 3 contactent l' ARRL Ad Hoc Committee on Digital Communications pour les suggestions de codages.
Le champ information est utilisé pour transporter les données utilisateur d'une extrémité à l'autre du lien. Le champ information est autorisé uniquement dans trois types de trames: la trame I , la trame UI et la trame FRMR. La longueur du champ d'information peut atteindre 256 octets et doit toujours contenir un nombre entier d'octets. Cette contrainte s'applique avant l'insertion de bits à zéro comme spécifié en 2.2.6 . Toute information dans le champ "I" doit transiter le long du lien d'une manière transparente, mise à part l'insertion de "bit-zéro"( 2.2.6 ) nécessaire pour prévenir l'apparition de code fanions dans le champ information.
Afin de s'assurer que la séquence binaire du fanion, mentionnée plus haut, n'apparaisse pas accidentellement n'importe où dans la trame, la station émettrice doit vérifier la présence de séquence binaire comportant un groupe de cinq, ou plus, bits "1" contigus. Dès la transmission de cinq bits "1" contigus, la station émettrice insère un bit "0" après le cinquième bit "1". Durant la réception d'une trame, un bit "0" suivant immédiatement cinq bits "1"contigus sera obligatoirement éliminé.
La séquence de contrôle de trame (FCS: Frame Check Sequence) est un nombre codé sur 16 bits calculé à la fois par l'émetteur et le destinataire de la trame. Cette séquence est utilisée pour s'assurer que l'intégrité de la trame n'est pas perturbée par le média utilisé. Le calcul doit être effectué conformément aux recommandations ISO 3309 (HDLC).
Le bit de poids faible de chaque octet des champs d'une trame AX.25 devra être transmis en premier, à l'exception du FCS qui sera transmis poids fort en tête.
Toute trame constituée de moins de 136 bits (fanions de début et fin inclus), non délimitée par des fanions de début et fin, ou non alignée au niveau octet (nombre entier d'octets), sera considérée invalide par la couche liaison. Voir également 2.4.4.4, ci-après.
Si une trame doit être interrompue prématurément, il faudra transmettre au moins quinze "1" consécutifs sans insertion de "0".
Quand il est nécessaire pour un DXE de maintenir son émetteur actif, tout en n'ayant pas de trames à émettre, l'intervalle entre trames devra être rempli par des fanions contigus.
Non applicable.
Le champ adresse de toutes les trames doit être codé avec les indicatifs radioamateur source et destination. Mis à part l'identificateur secondaire de station (SSID: Secondary Station IDentifier), le champ adresse doit être composé seulement de caractères alphanumériques ASCII. Si des répéteurs de niveau 2 doivent être utilisés, leurs indicatifs devront également apparaître dans le champ adresse.
Le champ adresse HDLC est étendu au delà d'un octet en assignant au bit de poids faible de chaque octet le rôle de "bit d'extension". Le bit d'extension de chaque octet est positionné à zéro afin d'indiquer que l'octet suivant contient une information supplémentaire d'adresse, ou bien à un pour indiquer qu'il s'agit du dernier octet du champ adresse. Pour libérer l'emplacement du bit d'extension, le codage de l'indicatif radioamateur est décalé d'un rang vers la gauche.
Si des répéteurs de niveau 2 ne sont pas utilisés,le champ adresse est codé comme indiqué en Fig. 2. L'adresse de destination est l'indicatif radioamateur et le SSID de la station vers laquelle la trame est destinée, alors que l'adresse source contient l'indicatif radioamateur et le SSID de la station qui a émis la trame. Ces indicatifs concernent uniquement les deux extrémités d'un lien AX.25.
Fig. 2 -- Codage du champ adresse sans répéteur
Champ adresse de la trame | |||||||||||||
Premier octet transmis | |||||||||||||
Adresse destination | Adresse source | ||||||||||||
A1 | A2 | A3 | A4 | A5 | A6 | A7 | A8 | A9 | A10 | A11 | A12 | A13 | A14 |
Les quatorze octets de A1 à A14 contiennent les deux "sous-champs" d'adressage. L'adresse de destination, composée de sept octets (A1 à A7), est envoyée en premier. Durant la réception d'une trame, cette séquence d'adresse permet aux systèmes de vérifier le champ adresse destination afin de déterminer si la trame leur est destinée. L'adresse source est transmise dans les octets A8 à A14. Ces deux "sous-champs" sont codés de la même manière mis à part le dernier octet dont le bit d'extension d'adresse HDLC est positionné à un.
L'octet à la fin du "sous-champ" d'adresse contient l'identificateur secondaire de station (SSID). Ce SSID permet à un radioamateur d'avoir plusieurs équipements packet radio utilisable sous le même indicatif. Par exemple ceci peut être utile quand un radioamateur veut mettre en place un répéteur en plus de sa station habituelle. Cet octet contient également le bit C ( voir 2.4.1.2 ) , le bit H (voir 2.2.13.2 ) ainsi que deux bits réservés pour des extensions futures.
La Fig. 3A décrit une trame AX.25 typique en mode sans répéteur.
Fig. 3A -- Trame AX.25 sans répéteur
Octet | ASCII | Binaire | Hexa. |
Fanion | 01111110 | 7E | |
A1 | K | 10010110 | 96 |
A2 | 8 | 01110000 | 70 |
A3 | M | 10011010 | 9A |
A4 | M | 10011010 | 9A |
A5 | O | 10011110 | 9E |
A6 | espace | 01000000 | 40 |
A7 | ( SSID ) | 11100000 | E0 |
A8 | W | 10101110 | AE |
A9 | B | 10000100 | 84 |
A10 | 4 | 01100100 | 68 |
A11 | J | 10010100 | 94 |
A12 | F | 10001100 | 8C |
A13 | I | 10010010 | 92 |
A14 | (SSID) | 01100001 | 61 |
Contrôle | ( I 1,7 p) | 00111110 | 3E |
PID | (Pas de L3) | 11110000 | F0 |
FCS | (partie 1) | xxxxxxxx | HH |
FCS | (partie 2) | xxxxxxxx | HH |
Fanion | 01111110 | 7E | |
Position bit | 76543210 |
Il s'agit d'une trame I, ne passant pas au travers d'un répéteur, émise par WB4JFI (SSID=0) vers K8MMO (SSID=0) et sans protocole de niveau 3. Le bit P/F est positionné, le numéro de séquence de réception N(R)=1, le numéro de séquence d'émission N(S)=7.
Fig. 3 -- Codage champ destination
Octet | ASCII | Binaire | Hex. |
A1 | W | 10101110 | AE |
A2 | B | 10000100 | 84 |
A3 | 4 | 01101000 | 68 |
A4 | J | 10010100 | 94 |
A5 | F | 10001100 | 8C |
A6 | I | 10010010 | 92 |
A7 | SSID | CRRSSID0 | |
Position bit | 76543210 |
Notes :
Si une trame doit transiter par des répéteurs radioamateur de niveau 2, un champ complémentaire d'adressage doit être ajouté à la suite du champ d'adresse. Ce champ additionnel contient le(s) indicatif(s) du (des) répéteur(s) utilisé(s). Ceci permet de partager un canal HF par plusieurs répéteurs. Si ce champ existe, le bit s'extension d'adresse du dernier octet de l'adresse source est positionné à zéro, indiquant que des champs complémentaires suivent. Les adresses répéteurs sont codées de la même manière que les adresses sources et destinations, excepté le bit de poids fort du dernier octet, appelé bit "H". Le bit "H" indique si la trame a été,ou non, transmise par le répéteur.
Afin de fournir une indication quand une trame a été transmise par répéteur, le bit H est à zéro dans les trames dirigées vers un répéteur. Le répéteur positionnera le bit H à la valeur un quand la trame sera retransmise. Les stations utilisant un répéteur doivent contrôler le bit H et écarter les trames allant vers le répéteur (trames sur le lien montant). La Fig. 4 montre comment est codé le champ adresse répéteur. La Fig. 4A est un exemple de trame ayant été retransmise par répéteur.
Fig. 4 -- Codage adresse répéteur
Octet | ASCII | Binaire | Hex. |
A15 | W | 10101110 | AE |
A16 | B | 10000100 | 84 |
A17 | 4 | 01101000 | 68 |
A18 | J | 10010100 | 94 |
A19 | F | 10001100 | 8C |
A20 | I | 10010010 | 92 |
A21 | SSID | HRRSSID1 | |
Position bit | 76543210 |
Notes :
Fig. 4A -- Trame AX.25 par répéteur
Octet | ASCII | Binaire | Hex. |
Fanion | 01111110 | 7E | |
A1 | K | 10010110 | 96 |
A2 | 8 | 01110000 | 70 |
A3 | M | 10011010 | 9A |
A4 | M | 10011010 | 9A |
A5 | O | 10011110 | 9E |
A6 | espace | 01000000 | 40 |
A7 | SSID | 11100000 | E0 |
A8 | W | 10101110 | AE |
A9 | B | 10000100 | 84 |
A10 | 4 | 01100100 | 68 |
A11 | J | 10010100 | 94 |
A12 | F | 10001100 | 8C |
A13 | I | 10010010 | 92 |
A14 | SSID | 01100000 | 60 |
A15 | W | 10101110 | AE |
A16 | B | 10000100 | 84 |
A17 | 4 | 01101000 | 68 |
A18 | J | 10010100 | 94 |
A19 | F | 10001100 | 8C |
A20 | I | 10010010 | 92 |
A21 | SSID | 11100011 | E3 |
Contrôle | ( I 1,7 p) | 00111110 | 3E |
PID | (Pas de L3) | 11110000 | F0 |
FCS | partie 1 | xxxxxxxx | HH |
FCS | partie 2 | xxxxxxxx | HH |
Fanion | 01111110 | 7E | |
Position bit | 76543210 |
La trame ci-dessus est identique à celle de la Fig. 3A , excepté l'ajout du champ adresse répéteur (WB4JFI, SSID=1). Le bit H est positionné indiquant que la trame provient d'un répéteur.
Le protocole AX.25 de niveau liaison permet l'utilisation de plusieurs répéteurs créant ainsi un début de mécanisme de routage de trames. L'extension du champ d'adressage permet d'utiliser jusqu'à huit répéteurs. Quand il y a plusieurs adresses répéteurs, l'adresse répéteur suivant immédiatement l'adresse source sera considérée comme étant celle du premier répéteur d'une chaîne. Durant la progression d'une trame au travers d'une suite de répéteurs, chaque répéteur positionnera le bit H (Has been repeated bit) dans son octet contenant la SSID, indiquant ainsi que la trame a été retransmise avec succès. Il n'y a pas d'autres changement dans la trame (excepté le nécessité de recalculer le FCS). La station destinataire peut déterminer la route suivie par la trame pour la joindre en examinant le champ adresse.
Le nombre d'adresses répéteurs est variable. Le bit d'extension des tous les octets d'adresse sera à zéro, mis à part le dernier octet de la dernière adresse. Le dernier octet de la dernière adresse répéteur aura le bit d'extension positionné à un, indiquant ainsi qu'il s'agit de la fin du champ d'adresse.
Quand une trame traverse une suite de répéteur, il faut noter que les différents temporisateurs (voir 2.4.7 ci-dessous) doivent être ajustés afin de tenir compte des délais additionnels, et que les retours d'acquittements doivent suivre le même chemin avant d'atteindre la station source.
Jusqu'à ce qu'un protocole de niveau 3 soit utilisé, il faut s'attendre à ce que l'utilisation de répéteurs soit une méthode provisoire d'interconnexion à grande distance. Dès que ce protocole de niveau 3 sera opérationnel, le chaînage de répéteurs devra être progressivement abandonné.
Les éléments de procédures sont définis en terme d'actions produites au moment de la réception de trames.
Le champ contrôle a pour rôle l'identification du type de trame transmise ainsi que de l'acheminement des commandes et des réponses d'un bout à l'autre du lien, de façon à maintenir une supervision appropriée.
Le champ contrôle utilisé en AX.25 reprend celui du CCITT X25 en mode équilibré (LAP-B), avec un champ additionnel issu de l'ADCCP permettant des dialogues en mode non connecté.
Il y a trois types principaux de trames AX.25: Les trames d'information (Trame I), les trames de supervision (Trame S) et les trames non numérotées ( Trames U = Unnumbered ). La Fig.5 montre le format de base du champ contrôle associé à ces trois types de trames.
Fig. 5 -- Formats du champ contrôle
Type | Bits du champ contrôle | |||||||
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
Trame I | N(R) | P | N(S) | 0 | ||||
Trame S | N(R) | P/F | S | S | 0 | 1 | ||
Trame U | M | M | M | P/F | M | M | 1 | 1 |
Notes:
Toutes les trames I ont le bit 0 du champ contrôle positionné à zéro. N(S) constitue le numéro de séquence d'émission du transmetteur (le numéro de séquence de la trame émise). N(R) est le numéro de séquence de réception du transmetteur (numéro de séquence de la prochaine trame à recevoir). Cette numérotation est décrite en 2.3.2.4. De plus le bit P/F doit être géré comme indiqué en 2.4.2 .
Les trames de supervision sont caractérisées en ayant le bit 0 du champ contrôle à positionné à la valeur un et le bit 1 à la valeur zéro. Les trames S fournissent un contrôle de supervision tel que l'acquittement ou la répétition des trames I ainsi que la gestion de la fenêtre de numérotation du niveau liaison. Les trames S ne comportant pas de champ d'information, la variable d'émission du transmetteur et la variable de réception du récepteur ne sont pas incrémentées. De plus le bit P/F doit être géré comme indiqué en 2.4.2 .
Les trames non numérotées sont caractérisées par la valeur un des bits 0 et 1 du champ contrôle. Au delà de l'action des trames S, les trames U sont responsables du maintient d'un contrôle supplémentaire du lien. Elles sont également responsables de l'établissement et de la fermeture des connexions du niveau liaison. Les trames U permettent aussi l'émission et la réception d'informations en dehors du flux normal. Certaines trames U peuvent comporter un champ information ainsi qu'un champ PID. L'utilisation du bit P/F est décrite en 2.4.2.
La variable d'état émission est interne au DXE et n'est jamais transmise. Elle contient le numéro de la prochaine trame I à émettre. Elle est mise à jour à chaque transmission de trame I.
On trouve le numéro de séquence d'émission dans le champ contrôle de toutes les trames I. Ce champ contient le numéro de la trame venant d'être transmise. De façon à être égal à la valeur de la variable d'état émission, N(S) est mis à jour juste avant la transmission de la trame I.
La variable d'état réception est interne au DXE. Elle contient le numéro de séquence de la prochaine trame I attendue. Cette variable est mise à jour sur réception d'une trame I valide dont le numéro de séquence est égal à la valeur de la variable d'état réception.
On trouve le numéro de séquence de réception à la fois dans les trames I et S. Avant d'émettre une trame I ou S, ce numéro de séquence est mis à jour de façon à être égal à la valeur de la variable d'état réception, acquittant ainsi d'une manière implicite la réception correcte des trames jusqu'à N(R)-1 inclus.
Le bit P/F est présent dans tous les types de trame. Il est utilisé en mode commande (poll) de façon à demander une réponse immédiate. La réponse à la demande poll s'effectue en positionnant le bit final dans la trame appropriée. On n'autorise qu'une seule demande poll par sens de transmission. La procédure d'utilisation du bit P/F est décrite en 2.4.2 .
Les commandes et réponses suivantes, décrites par le codage du champ contrôle, sont à utiliser par les DXE.
La fonction d'une trame de commande du type information (I) est de transmettre d'une manière séquentielle sur une liaison de données des trames numérotées comportant un champ d'information.
Le champ contrôle de la trame information est codé comme indiqué en Fig. 6. Pour assurer le contrôle du transfert sur une connexion de niveau liaison, ces trames sont numérotées séquentiellement par le champ N(S).
Fig. 6 -- Champ contrôle trame I
Bits du champ contrôle | |||||||
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
N(R) | P | N(S) | 0 |
Le champ contrôle des trames de supervision est codé comme indiqué en Fig. 7.
Fig. 7 -- Champs contrôle trames S
Type | Bits champ contrôle | ||||||||
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | ||
Receive Ready | RR | N(R) | P/F | 0 | 0 | 0 | 1 | ||
Receive Not Ready | RNR | N(R) | P/F | 0 | 1 | 0 | 1 | ||
Reject | REJ | N(R) | P/F | 1 | 0 | 0 | 1 |
Identification des trames :
SABM | Requête de connexion niveau liaison. |
DISC | Requête de déconnexion niveau liaison. |
I | Trame Information |
RR | Receive Ready. Système prêt à recevoir. |
RNR | Receive Not Ready. Système non prêt à recevoir (ex. buffer TNC saturé). |
REJ | Reject Frame. Trame refusée : hors séquence ou dupliquée. |
FRMR | Frame Reject. Rejet de trame, erreur fatale. |
UI | Unnumbered Information Frame. Trame d'information non numérotée. ("Unproto") NDT: UNconnected PROTOcol |
UA | Unnumbered Acknowledge. Trame non numérotée d'acquittement. |
DM | Disconnect Mode. Mode déconnecté: système occupé ou déconnecté. |
On utilise Receive Ready (RR) dans les cas suivants :
On peut effectuer une requête de l'état du DXE à l'autre extrémité du lien en envoyant une trame RR comportant le bit P positionné à la valeur un.
On utilise RNR pour indiquer à l'expéditeur de trames I que le DXE recevant ces trames est temporairement occupé et qu'il ne peut plus en accepter d'autres. Les trames sont acquittées jusqu'à N(R)-1. Ne sont pas prises en compte toutes trames I , numérotées N(R) ou plus, qui auraient pu être reçues et non acquittées quand la commande RNR a été transmise.
La condition RNR peut être annulée par l'émission d'une trame UA , RR , REJ ou SABM.
On peut effectuer une requête de l'état du DXE à l'autre extrémité du lien en envoyant une trame RNR comportant le bit P positionné à la valeur un.
On utilise la trame REJ pour demander la retransmission de trames I à partir de N(R). Tous les trames émises avec un numéro de séquence N(R)-1 ou inférieur sont acquittées. Si des trames I supplémentaires sont présentes on peut les ajouter à la retransmission de la trame N(R).
Il ne peut y avoir qu'une seule condition REJect à la fois par sens de transmission. La condition REJect est annulée par la réception correcte de trames I incluant la trame ayant causé ce rejet.
On peut effectuer une requête de l'état du DXE à l'autre extrémité du lien en envoyant une trame REJ comportant le bit P positionné à la valeur un.
Le champ contrôle des trames non numérotées concerne à la fois les commandes et les réponses.
La Fig. 8 montre la structure des trames U utilisées dans le protocole.
Fig. 8 -- Champ contrôle des trames U
Type de trame | Bits du champ contrôle | |||||||||
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |||
Set Asynchronous Balanced Mode | SABM | Cmd | 0 | 0 | 1 | P | 1 | 1 | 1 | 1 |
Disconnect | DISC | Cmd | 0 | 1 | 0 | P | 0 | 0 | 1 | 1 |
Disconnected Mode | DM | Rép. | 0 | 0 | 0 | F | 1 | 1 | 1 | 1 |
Unnumbered Acknowledge | UA | Rép. | 0 | 1 | 1 | F | 0 | 0 | 1 | 1 |
Frame Reject | FRMR | Rép. | 1 | 0 | 0 | F | 0 | 1 | 1 | 1 |
Unnumbered Information | UI | Cmd/Rép. | 0 | 0 | 0 | P/F | 0 | 0 | 1 | 1 |
La commande SABM est utilisée pour mettre en place 2 DXE en mode asynchrone équilibré. C'est un mode d'opération équilibré, connu sous le sigle LAP-B, où deux systèmes sont traités de manière égalitaire.
Le champ d'information n'est pas autorisé dans les trames de commande SABM. Toutes trames I en attente et expédiée après une commande SABM ne sera pas acquittée.
Le DXE accepte et confirme une commande SABM en envoyant une trame de réponse UA le plus rapidement possible. Si le DXE ne peut pas accepter une commande SABM il doit répondre si possible avec une trame DM.
La commande DISC est utilisée pour terminer une session de liaison de données entre deux stations. Aucun champ d'information n'est permis dans la trame de commande DISC.
Avant toute action, le DXE recevant une trame DISC confirme la déconnexion le plus rapidement possible en envoyant une trame de réponse UA . Le DXE ayant émis la trame DISC passe en mode déconnecté dès qu' il reçoit la réponse UA.
Toute trame I non acquittée quand la commande de déconnexion est activée restera non acquittée.
Une trame de réponse FRMR est émise afin de rendre compte que le destinataire ne peut traiter correctement une trame et que l'erreur n'est pas récupérable par retransmission. Cet événement apparaît typiquement quand une trame ne comportant pas d'erreur FCS a été reçue dans une des conditions suivantes :
On défini comme N(R) invalide celui qui pointe sur une trame I déjà transmise et acquittée, ou sur une trame I non transmise et qui n'est pas la prochaine attendue en séquence.
On défini un N(S) invalide celui qui est égal au dernier N(R)+K et à la variable d'état V(R) , avec K nombre maximum de trames en attente de transmission comme défini en 2.4.7.4 ci-dessous.
Une trame dont le champ contrôle n'est par reconnu par le destinataire est définie comme étant une commande ou une réponse inconnue ou invalide.
Fig. 9 -- Champ information de la trame FRMR
Bits champ information | |||||||||||||||||||||||
23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
0 | 0 | 0 | 0 | Z | Y | X | W | V(R) | C R |
V(S) | 0 |
Champ contrôle trame rejetée |
Avec :
La réponse UA est émise pour acquitter et accepter une trame de commande SABM ou DISC. Avant que la réponse UA soit émise la réception d'une commande n'est pas véritablement traitée. Le champ information n'est pas autorisé dans la trame UA.
La réponse DM est émise chaque fois qu'un DXE reçoit une trame autre que SABM ou UI alors qu'il est en mode déconnecté. Elle est aussi envoyée pour indiquer qu'un DXE ne peut pas accepter la connexion à un moment donné. La trame de réponse DM ne comporte pas de champ information.
Quand une trame SABM est reçue et qu'il est établi que la connexion n'est pas possible, une trame DM doit être émise. Ceci indique que la station appelée ne peut pas momentanément accepter de connexion.
Dans l'état déconnecté, un DXE répondra à toutes commandes autres que SABM ou UI par une trame réponse DM avec le bit P/F positionné à 1.
La trame d'information non numérotée possède un PID et champ d'information, elle est utilisée pour transmettre des données sur un lien en dehors du contrôle normal des trames informations. Ceci autorise sur le lien des échanges d'informations contournant le contrôle de flux. Étant donné que ces trames ne peuvent être acquittées, si une d'entre elles est perdue iln'y a aucun moyen de la restituer. La réception d'un trame UI avec le bit P positionné devra donner lieu à l'émission d'une réponse. Cette réponse devra être une trame DM dans l'état déconnecté ou bien une trame RR (ou RNR si nécessaire) dans l'état transfert d'information.
Il existe plusieurs type d'erreurs de niveau liaison pouvant être récupérées sans terminer la connexion. Ces situations d'erreur peuvent apparaître en cas de mauvais fonctionnement d'un DXE ou en cas d'erreurs de transmissions.
Un DXE ne pouvant pas recevoir temporairement des trames I , du fait de la saturation des tampons de réception, enverra une trame RNR (Receive Not Ready). Ceci indique à l'autre DXE qu'il ne peut plus traiter de trame I pour le moment. Cet état est généralement annulé en envoyant une trame de commande UA, RR, REJ ou SABM.
Le champ contrôle de cette des trames I erronées sera traité de façon à ce que les fonctions de supervisions telle que la vérification du bit P/F soit quand même effectuée. De ce fait la trame I retransmise peut avoir N(R) et le bit P actualisés.
Un DXE recevant une commande REJ annulera la condition en retransmettant toutes les trames I en attente (dans la limite de la fenêtre d'anticipation) en commençant par celle référencée N(R) dans la trame REJ.
Dès qu'il se produit une condition de rejet, aucune autre trame I n'est acceptée (excepté pour le test du bit P/F) jusqu'à ce que le problème soit résolu. Un compte rendu d'erreur est envoyé à l'autre DXE en envoyant une trame de réponse FRMR. (Voir 2.4.5 ).
Un DXE AX.25 ayant une compatibilité ascendante peut déterminer s'il communique avec un DXE qui utilise une ancienne version du protocole en testant le bit de commande/réponse situé dans le bit 7 du SSID des champs adresse source et destination. Si les deux bits C sont à zéro, le système utilise l'ancien protocole. La nouvelle version de protocole a toujours un de deux bits à la valeur un et l'autre à la valeur zéro, ceci dépendant du fait que la trame soit une réponse ou une commande.
L'information commande / réponse est codée dans le champ adresse comme indiqué en Fig. 10.
Fig. 10 -- Codage commande / réponse.
Bit C SSID Dest. | Bit C SSID Src | |
Versions antérieures | 0 | 0 |
Commande (V.2.0) | 1 | 0 |
Réponse (V.2.0) | 0 | 1 |
Versions antérieures | 1 | 1 |
Du fait que les trames sont considérées comme étant soit des commandes soit des réponses, un système devra avoir un des bits positionné à un, et l'autre à zéro.
L'utilisation de l'information commande / réponse en AX.25 permet
aux trames S d'être soit des commandes soit des réponses. Ceci
permet de maintenir un contrôle approprié du lien durant l'état
"transfert d'information".
La trame de réponse retournée à une trame I comportant le bit P positionné à 1, reçue dans la phase transfert d'information, sera une trame RR, RNR ou REJ avec le bit F positionné à 1.
La trame de réponse retournée à une trame de supervision comportant le bit P positionné à 1, reçue dans la phase transfert d'information, sera une trame RR, RNR ou REJ avec le bit F positionné à 1.
La trame de réponse retournée à une trame S ou I comportant le bit P positionné à 1, reçue pendant l'état déconnecté, sera une trame DM avec le bit F positionné à 1.
Le bit P est utilisé conjointement aux conditions de récupération par temporisateur évoquées plus haut en 2.3.5.4 .
Si le DXE distant ne répond pas avant que T1 arrive à échéance, le système qui demande la connexion retransmettra de nouveau une trame SABM et démarrera à nouveau T1. Le DXE continuera à essayer d'établir une connexion jusqu'à N2 tentatives infructueuses. Le paramètre N2 est défini en 2.4.7.2 ci-dessous.
Si le DXE décide qu'il ne peut pas passer dans l'état connecté sur réception d'une trame de commande SABM, il doit envoyer une trame DM.
Un DXE ayant émis une trame SABM doit stopper son temporisateur T1 et ne pas passer dans l'état transfert d'information si une réponse DM est reçue.
Un DXE ayant émis une commande SABM devra ignorer et écarter toutes les trames exceptées SABM , DISC, UA et DM du DXE distant.
Les trames autres que UA et DM en réponse à un SABM seront émises seulement après l'établissement du lien et s'il n'existe pas de trame SABM en attente.
Quand une trame SABM est reçue en cours d'état
transfert d'information, le DXE devra suivre le procédure d'initialisation
décrite 2.4.6 en
ci-dessous.
Si les commandes SABM ou DISC émises et reçues sont différentes, les DXE entrent dans la phase de déconnexion et émettent une réponse DM à la première occasion.
La manière dont le "mode conférence" est mise en place est techniquement hors connexion AX.25, tout en utilisant la structure de trame AX.25.
AX.25 utilise une trame particulière appelée trame d'information non numérotée (UI). Dans ce mode de fonctionnement l'adresse de destination doit contenir un mot de code afin d'éviter aux participants du "mode conférence" de voir passer toutes les trames transitant par le canal HF partagé. Par exemple si un groupe d'amateurs est en discussion concernant le packet radio ils peuvent indiquer PACKET comme adresse de destination, de cette manière ils ne recevront uniquement que les trames des stations participant à la même discussion. Un autre avantage à utiliser AX.25 dans ce mode est que l'adresse source est présente dans chaque trame, ainsi un logiciel peut afficher automatiquement "qui émet quoi".
Du fait que ce mode soit sans connexion, il n'y aura pas de requêtes de retransmissions de trames erronées. Il peut aussi se produire des collisions avec potentiellement des pertes de trames.
Un DXE ne transmettra plus de trames I que la valeur de sa variable d'état, égale au dernier N(R) reçu provenant de l'autre extrémité du lien, plus sept. S'il émettait plus de trames il y aurait dépassement de la fenêtre de contrôle de flux et risques d'erreurs.
Un DXE dans l'état occupé peut toujours émettre des trames à condition que le système distant soit disponible.
Un DXE en mode rejet de trames doit stopper sa transmission de trames I.
Quand une condition d'occupation existe, le DXE recevant cette condition doit interroger périodiquement l'expéditeur jusqu'à ce que cette condition disparaisse.
Un DXE peut interroger le DXE occupé à l'aide de trames RR ou RNR comportant le bit P positionné à un.
La réception de trames I contenant un champ d'information de longueur nulle doit être signalée au niveau supérieur mais aucune information ne sera transférée.
Si le temporisateur T1 arrive à échéance avant que la trame de réponse du type supervision avec bit F soit reçue, le DXE retransmet une trame de commande appropriée du type supervision ( RR ou RNR ) avec le bit P positionné. Après N2 tentatives d'obtention d'une réponse du type supervision avec bit F en provenance du DXE distant, le DXE démarrera une procédure de réinitialisation du lien comme indiqué en 2.4.6 ci-dessous.
Dans ces conditions, le DXE demandera au DXE distant de réinitialiser le lien (cf. 2.4.6.3 ) par l'émission d'une trame de réponse FRMR .
Après avoir émis une trame FRMR, le DXE passe dans l'état rejet de trame. C'est état sera annulé quand le DXE ayant émis la trame FRMR reçoit une commande SABM ou DISC ou bien une réponse DM. Toutes autres trames reçues provoquera la retransmission de la trame FMRM initiale.
Dans l'état rejet de trame il n'y aura pas de transmission de trames I et les trames I et S reçues seront ignorées.
Le DXE ayant transmis la trame FRMR doit démarrer le temporisateur T1. Si aucune trame SABM ou DISC est reçue avant échéance du temporisateur, la trame FRMR est retransmise et le temporisateur T1 redémarré comme indiqué en dans la section 2.4.4.9 (attente d'acquittement). Après N2 tentatives infructueuses de transmission de FRMR le lien doit être réinitialisé.
Si une réponse DM est reçue, le DXE passe dans l'état déconnexion est stoppe le temporisateur T1. Si le temporisateur T1 arrive à échéance avant qu'une réponse UA ou DM soit reçue, le trame SABM sera retransmise et le temporisateur T1 redémarré. Au bout de N2 échéances de T1, le DXE passe dans l'état déconnecté et les liens existants sont annulés.
Toutes autres commandes ou réponses reçues par le DXE avant la fin de la procédure de réinitialisation seront ignorées.
L'utilisation des temporisateurs est recommandée
afin de maintenir l'intégrité des connexions de niveau 2,
.
Si des relais de niveau 2 doivent être utilisés, la valeur de T1 doit être ajustée en fonction du nombre de relais traversés par la trame.
A un moment donné le nombre de trames en anticipation de transmission sera au maximum de sept.
This document was originally downloaded from the TAPR archives and ftp://ftp.tapr.org FTP site, as http://www.tapr.org/pub_ax25.html. HTML markup was done by Bill Buthod,N5RRS. Last updated: 27 Dec 1997.
Tentative de traduction en français : F6CSS 4 février 2002.