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.

AX.25 Amateur Packet-Radio

Protocole niveau liaison

Version 2.0, Octobre 1984

Mise à jour de la table des PID Novembre 1997

2 Spécifications AX.25 du niveau liaison

2.1 Domaine et champ d'application

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.

2.2 Structure de la trame

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.

2.2.1 Champ fanion

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.

2.2.2 Champ adresse

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 .

2.2.3 Champ contrôle

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 .

2.2.4 Champ PID

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.

2.2.5 Champ information

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.

2.2.6 Insertion d'élément binaire

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é.

2.2.7 Champ séquence de contrôle de trame

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).

2.2.8 Ordre de transmission des bits

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.

2.2.9 Trames invalides

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.

2.2.10 Interruption de trame

Si une trame doit être interrompue prématurément, il faudra transmettre au moins quinze "1" consécutifs sans insertion de "0".

2.2.11 Remplissage inter trame

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.

2.2.12 Etats du lien

Non applicable.

2.2.13 Codage du champ adresse

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.

2.2.13.1 Codage du champ adresse sans répéteur

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.

2.2.13.1.1 Codage du sous-champ destination

La Fig. 3 indique comment un indicatif est placé dans le sous-champ adresse de destination, occupant les octets A1 à A7

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 :

  1. L'octet A1 sera émis en premier, le bit 0 de chaque octet étant transmis en premier et le bit 7 en dernier.
  2. Le premier bit de chaque octet (bit de poids faible ou bit 0) est le bit d'extension d'adresse HDLC. Il est positionné à zéro sur tous les octets sauf sur le dernier octet du champ adresse où il est positionné à un.
  3. Les bits marqués "r" sont réservés. Ils peuvent être utilisés par accord préalable sur des réseaux particuliers. Quand ils ne sont pas utilisés ces bits doivent être positionnés à un.
  4. Le bit marqué "C" est le bit commande / réponse d'une trame AX.25, comme indiqué en 2.4.1.2 .
  5. Les codes caractères de l'indicatif doivent être en standard ASCII 7 bits (majuscules uniquement) et placés dans les sept bits les plus à gauche de l'octet de façon à libérer l'emplacement du bit d'extension d'adresse. Si l'indicatif est constitué de moins de six caractères, il sera complété par des codes ASCII "espace" jusqu'à l'octet contenant le SSID.
  6. Le SSID 0000 est réservé pour la première station AX.25 personnelle. Ceci établit un SSID standard à utiliser sur le premier équipement des stations "normales".

2.2.13.2 Codage des adresses répéteurs niveau 2

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 :

  1. L'octet du haut (A15) est transmis en premier, bit de poids faible (bit 0) en tête.
  2. De la même manière que les champs adresses source et destination, le bit 0 de chaque octet constitue le bit d'extension d'adresse HDLC dont la valeur est à zéro excepté au niveau du dernier octet où il est positionné à un.
  3. Suivant le même principe du codage des adresses source et destination, les bits "R" sont réservés.
  4. Le bit "H" indique une transmission par répéteur. Il est positionné à un par le répéteur quand une trame vient d'être retransmise, et à zéro dans le cas contraire.

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.

2.2.13.3 Utilisation de plusieurs répéteurs

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é.

2.3 éléments de procédures

2.3.1

Les éléments de procédures sont définis en terme d'actions produites au moment de la réception de trames.

2.3.2 Formats du champ contrôle et variables d'états

2.3.2.1 Formats du champ contrôle

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:

  1. Le bit 0 est le premier bit transmis du champ contrôle, le bit 7 étant le dernier.
  2. N(S) est le numéro de séquence d'émission (le bit 1 étant le poids faible).
  3. N(R) est le numéro de séquence de réception (le bit 5 étant le poids faible).
  4. Les bits "S" sont associés aux trames de supervision, le codage est décrit en 2.3.4.2. .
  5. Les bits "M" sont associés aux trames non numérotées, le codage est décrit en 2.3.4.3 .
  6. Le bit P/F est le bit de Poll / Final. Sa fonction est décrite en 2.3.3 . La distinction entre commande et réponse, et par conséquent entre bits P et F, est réalisée par les règles d'adressage décrites en 2.4.1.2.

2.3.2.1.1 Trame I - champ contrôle

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 .

2.3.2.1.2 Trame de Supervision - champ contrôle

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 .

2.3.2.1.3 Trames non numérotées - champ contrôle

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.

2.3.2.2 Paramètres du champ contrôle

2.3.2.3 Numéros de séquence

Chaque trame I devra comporter un numéro de séquence compris entre 0 et 7 (modulo 8). Pour une connexion de niveau 2, ceci permettra de transmettre jusqu'à sept trames à la fois.

2.3.2.4 Numéro de séquence et variable d'état

2.3.2.4.1 Variable d'état émission V(S)

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.

2.3.2.4.2 Numéro de séquence d'émission N(S)

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.

2.3.2.4.3 Variable d'état réception V(R)

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.

2.3.2.4.4 Numéro de séquence de réception N(R)

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.

2.3.3 Fonction du bit Poll/Final (P/F).

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 .

2.3.4 Codage du champ contrôle pour les commandes et les réponses

Les commandes et réponses suivantes, décrites par le codage du champ contrôle, sont à utiliser par les DXE.

2.3.4.1 Champ contrôle d'une trame de commande du type Information

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

2.3.4.2 Champ contrôle des trames de supervision

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é.

2.3.4.2.1 Commande et réponse RR (Receive Ready)

On utilise Receive Ready (RR) dans les cas suivants :

  1. Pour indiquer que l'expéditeur du RR peut maintenant recevoir d'autres trames I ,
  2. pour acquitter les trames I valides jusqu'à N(R)-1 inclus,et
  3. pour annuler une condition de contrôle de flux ayant été émise par une commande RNR.

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.

2.3.4.2.2 Commande et réponse RNR (Receive not Ready)

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.

2.3.4.2.3 Commande et réponse REJ (Reject)

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.

2.3.4.3 Champ contrôle des trames non numérotées

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

2.3.4.3.1 Commande SABM (Set Asynchronous Balanced Mode)

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.

2.3.4.3.2 Commande DISC (Disconnect)

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.

2.3.4.3.3 Réponse FRMR (Frame Reject)

2.3.4.3.3.1

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 :

  1. Réception d'une trame commande ou réponse incorrecte ou inconnue.
  2. Réception d'une trame I dont la longueur du champ information excède la valeur normalisée.(Voir 2.4.7.3 ci-dessous) .
  3. Réception d'un N(R) incorrect. Ceci ce produit quand le N(R) de la trame a déjà été transmis est acquitté ou quand N(R) est hors de la séquence attendue.
  4. Réception d'une trame dans laquelle un champ d'information n'est pas autorisé, ou réception d'une trame U ou S de longueur invalide. Pour indiquer cette condition les deux bits W et Y décrits en 2.3.4.3.3.2 doivent être positionnés.
  5. Réception d'une trame de supervision avec le bit F positionné à un, en dehors d'une condition de récupération avec temporisation (voir 2.4.4.9 ) , ou en dehors d'une réponse à une trame de commande avec le bit P positionné à un. Le bit W (décrit en 2.3.4.3.3.2 ) doit être positionné à un.
  6. Réception d'une trame réponse UA ou DM non attendue. Le bit W doit être positionné à un.
  7. Réception d'une trame comportant un N(S) invalide. Le bit W doit être positionné à un.

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.

2.3.4.3.3.2

Quand une trame FRMR est émise on ajoute un champ d'informationcontenant des renseignements complémentaires indiquant à quel endroit le problème s'est produit. Ce champ d'information, long de trois octets, est décrit en Fig. 9.

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 :

  1. Le champ contrôle trame rejetée transporte le champ contrôle de la trame qui a provoqué la condition de rejet. Il est localisé dans les bits 0 à 7 du champ d'information.
  2. V(S) est la variable d'état courante du système ayant signalé le rejet (Bit 9 est le bit de poids faible)
  3. Le bit CR est à 0 pour indiquer que la trame rejetée était une commande, ou à 1 si c'était une réponse.
  4. V(R) est la variable d'état courante du système ayant signalé le rejet (Bit 13 est le bit de poids faible)
  5. Si W est à 1, le champ contrôle reçu est invalide ou inconnu.
  6. Si X est à 1, la trame ayant provoqué le rejet est considérée invalide parce qu'il s'agit d'une trame U ou S comportant un champ d'information non autorisé. En plus du bit X , le bit W doit être positionné à 1.
  7. Si Y est à 1, le champ information de la trame reçue dépasse le maximum autorisé par la recommandation 2.4.7.3 ci-après.
  8. Si Z est à 1, le champ contrôle reçu, et retourné dans les bits 1 à 8, contient un N(R) invalide.
  9. Les bits 8 et 20 à 23 sont à zéro.

2.3.4.3.4 Réponse UA (Unnumbered Acknowledge)

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.

2.3.4.3.5 Réponse DM (Disconnect Mode)

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.

2.3.4.3.6 Trame d'information non numérotée (UI)

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.

2.3.5 Compte rendu et récupération d'erreur sur un lien

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.

2.3.5.1 Condition DXE occupé

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.

2.3.5.2 Erreur de numéro de séquence à l'émission

Si le numéro de séquence à l'émission N(S) d'une trame valide reçue n'est pas égal à la variable d'état V(R), une erreur de séquence à l'émission s'est produite et le champ d'information sera ignoré. Le récepteur n'acquittera pas cette trame, ou aucune autres trames I, jusqu'à ce que N(R) soit identique à V(R).

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.

2.3.5.3 Récupération sur rejets de trames (REJ)

REJ est utilisée suite à une détection d'une erreur de séquence N(S) pour demander la retransmission de trames I. Une seul "REJ à émettre" en attente est autorisée à la fois. Cette condition est annulée quand la trame demandée a été reçue.

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.

2.3.5.4 Récupération sur erreur de dépassement de temporisation.

2.3.5.4.1 Récupération par temporisateur T1

Un DXE ne détectera pas un problème de séquence d'émission si, du fait d'une erreur de transmission, il ne reçoit pas (ou ignore) une trame I unique ou bien la dernière trame d'une séquence de trames I , et par conséquent ne transmettra pas un REJ. Le DXE qui a transmis cette (ces) trame(s) I non acquittée(s) devra, suivant la progression du temporisateur de période T1, mettre en place la procédure de récupération appropriée de façon à déterminer quand la retransmission des trames I doit débuter comme indiqué ci-dessous en 2.4.4.9 . Cette condition est annulée sur réception d'un acquittement de trame(s) émise(s) , ou par une initialisation du lien. Voir 2.4.6 .

2.3.5.4.2 Récupération par temporisateur T3

Le temporisateur T3 est utilisé pour s'assurer que le lien est toujours en fonctionnement pendant des périodes où le transfert d'information est faible. Quand T1 n'est pas actif (pas de trames I en attente), T3 est utilisé pour interroger périodiquement sur un lien le DXE distant. Quand le temporisateur T3 arrive à échéance une trame de commande RR ou RNR est transmise avec le bit P positionné. La procédure d'attente d'acquittement (Voir 2.4.4.9 ) est ensuite exécutée.

2.3.5.5 Trame invalide ou erreur FCS.

Si une trame invalide ou comportant une erreur FCS est reçue, aucune action ne sera mise en place et cette trame sera ignorée .

2.3.5.6 Condition de rejet de trame

La condition de rejet de trame apparaît quand une trame valide annexe a été reçue dans les conditions énoncées en 2.3.4.3.3 ci-dessus.

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 ).

2.4 Description des procédures AX.25

Les lignes suivantes décrivent les procédures utilisées pour mettre en place, utiliser, et déconnecter un lien en mode équilibré entre deux stations DXE.

2.4.1 Mise en oeuvre du champ adresse

2.4.1.1 Information sur les adresses

Toutes les trames transmises doivent avoir des champs d'adresses conforme au paragraphe 2.2.13 ci-dessus. Toutes les trames doivent comporter à la fois l'adresse de dispositif de destination et l'adresse du dispositif source dans le champ adresse, l'adresse de destination étant indiquée en premier. Ceci permet à plusieurs liens de partager le même canal HF. L'adresse de destination est toujours l'adresse de la (des) station(s) recevant la trame alors que l'adresse source contient l'adresse du dispositif qui a émis la trame. L'adresse de destination peut être une adresse de groupe ou un indicatif "club" si le fonctionnement en "point vers multi-points" est autorisé.
L'utilisation d'adresses autres que les actuels indicatifs radioamateur est un sujet d'étude complémentaire.

2.4.1.2 Procédure de commande / réponse

La version 2.0 d'AX.25 a mis en place l'information de commande/réponse dans le champ adresse. Afin de maintenir la compatibilité avec les versions précédentes d'AX.25, l'information commande/réponse est transportée en utilisant 2 bits.

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".

2.4.2 Procédures avec bit P/F

La trame de réponse retournée par le DXE à une commande SABM ou DISC comportant le bit P positionné à 1 sera une réponse UA ou DM avec le bit F positionné à 1.

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 .

2.4.3 Procédures de mise en place et déconnexion d'un lien

2.4.3.1 Établissement d'une connexion sur un lien

Un DXE désirant connecter un autre DXE enverra une trame de commande SABM et démarrera le temporisateur T1. Si le DXE distant est présent, et s'il peut accepter la connexion, il acquittera par une trame de réponse UA et initialisera ses variables internes ( V(s) et V(r) ). A l'autre extrémité, la réception d'une trame UA provoquera l'arrêt du temporisateur T1 et la mise à zéro des variables internes du DXE ayant émis la requête de connexion.

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.

2.4.3.2 Phase de transfert d'information

Un DXE passera dans l'état transfert d'information après avoir établi une connexion au niveau liaison. Dans cet état un DXE transmettre et recevra des trames I et S conformément aux procédures décrites en 2.4.4 ci -dessous.

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.

2.4.3.3 Déconnexion du lien

2.4.3.3.1

Dans l'état transfert d'information, un DXE peut signaler une requête de déconnexion du lien en transmettant une trame de commande DISC et en mettent en route le temporisateur T1 (voir 2.4.7 ) .

2.4.3.3.2

Un DXE, sur réception d'une commande DISC valide, doit envoyer une trame de réponse UA et entrer dans l'état déconnecté.
Un DXE, sur réception d'une trame de réponse UA ou DM a une commande DISC émise, doit stopper le temporisateur T1 et passer dans l'état déconnecté.

2.4.3.3.3

Si une réponse UA ou DM n'est pas reçue avant l'échéance du temporisateur T1, la trame DISC doit de nouveau être émise et T1 redémarré. Au bout de N2 tentatives, le DXE doit passer dans l'état déconnecté.

2.4.3.4 Etat déconnecté

2.4.3.4.1

Un DXE dans l'état déconnecté doit surveiller les trames de commande et réagir sur la réception de SABM comme indiqué en 2.4.3.1 ou transmettre une trame DM en réponse à une commande DISC.

2.4.3.4.2

Dans l'état déconnecté un DXE peut mettre en place une liaison de donnée comme indiqué ci-dessus en 2.4.3.1 (établissement de connexion). Il peut aussi répondre à la réception de SABM et établir une connexion ou bien ignorer SABM et envoyer DM.

2.4.3.4.3

Un DXE recevant une trame autre que SABM ou UI avec le bit P positionné à un, doit répondre avec une trame DM dont le bit F est positionné à un. La trame incorrecte reçue doit être ignorée.

2.4.3.4.4

Un DXE qui passe dans l'état déconnecté après une condition d'erreur ou après une erreur interne apparaissant dans l'état déconnecté, doit signaler ce fait en envoyant une réponse DM plutôt qu'une trame DISC et suivre la procédure de déconnexion décrite en 2.4.3.3.3 ci-dessus. Le DXE peut ensuite essayer de rétablir le lien en utilisant la procédure de mise en place décrite en 2.4.3.1 , ci-dessus.

2.4.3.5 Récupération sur collision

2.4.3.5.1 Collisions dans un environnement semi-duplex

Les collisions de trames dans un environnement semi-duplex sont gérées implicitement dans les répétitions (temporisateur T1 et variable compteur de retransmission). Il n'est pas nécessaire de procéder à d'autres actions particulières.

2.4.3.5.2 Collisions de trames de commande non numérotées

Si les commandes SABM ou DISC émises et reçues sont les mêmes, les DXE émettent une réponse UA à la première occasion et passent dans l'état approprié.

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.

2.4.3.5.3 Collision d'une trame DM avec SABM ou DISC

Quand une trame de réponse DM non sollicitée est émise, il peut se produire une collision avec une trame SABM ou DISC. Afin d'éviter une interprétation erronée, les trames DM non sollicitées doivent être transmises avec le bit F positionné à zéro. Toutes le trames SABM ou DISC doivent être transmises avec le bit P positionné à 1. Ceci évitera toute confusion quand une trame DM est reçue.

2.4.3.6 Fonctionnement en mode non connecté

Au niveau radioamateur il existe un type de fonctionnement supplémentaire qui n'est pas réalisable en utilisant les connexions de niveau 2. Ce fonctionnement est le "mode conférence" dans lequel plusieurs amateurs participent à une conversation. Ce type de fonctionnement ne peut pas s'accommoder des connexions du niveau liaison AX.25.

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.

2.4.4 Procédures de transfert d'information

Une fois que la connexion a été établie, comme indiqué ci-dessus, les deux dispositifs sont capables d'accepter des trames I, S et U.

2.4.4.1 Émission de trames I

Un DXE ayant une trame à transmettre émettra cette trame avec le champ de contrôle N(S) égal à la valeur courante de la variable d'état V(S). Une fois cette trame émise, la variable d'état est incrémentée d'une unité. Si le temporisateur T1 n'est pas en route il doit être démarré (sic). Si le temporisateur T1 est en route il doit être redémarré.

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.

2.4.4.2 Réception de trames I

2.4.4.2.1

Un DXE recevant une trame valide ( FCS correct et numéro de séquence à l'émission égal à la variable d'état réception) et n'étant pas en condition d'occupation, acceptera la trame I , incrémente sa variable d'état réception, et procédera suivant une des manières suivantes:
  1. S'il a une trame I à émettre, cette trame I peut être émise avec N(R) égal à la variable d'état V(R) acquittant ainsi la trame reçue. Alternativement le dispositif peut émettre une trame RR avec N(R) égal à V(R) et transmettre ensuite la trame I.
  2. S'il n'y a pas de trames en attente d'émission, le système enverra une trame RR avec N(R) égal à V(R). Le DXE peut attendre une petite période de temps avant d'envoyer la trame RR de façon à être sûr que d'autres trames I ne vont pas être transmises.

2.4.4.2.2

Si un DXE est occupé, il peut ignorer toutes les trame I reçues sans rendre compte de cet état autrement qu'en répétant l'indication d'occupation.

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.

2.4.4.3 Réception de trames hors séquence

Si une trame est reçue avec un FCS correct mais que son numéro de séquence N(S) n'est pas égal à la variable d'état de réception, cette trame doit être rejetée. Une trame REJ doit être émise avec une numéro de séquence de réception égal au dernier numéro de séquence de trame I correctement reçu augmenté de un (modulo 8) à condition qu'une condition d'erreur N(S) non traitée n'ai été établie antérieurement. La variable d'état de réception et le bit P de la trame doit être testé et traité, si nécessaire, avant de rejeter la trame.

2.4.4.4 Réception de trames incorrectes

Une trame avec un FCS erroné, une trame invalide, ou une trame comportant une adresse incorrecte doit être rejetée par le DXE.

2.4.4.5 Acquittement de réception

Quand une trame I ou S est correctement reçue, même en cas d'occupation, le champ N(R) doit être vérifié de façon à voir s'il comporte l'acquittement des trames I émises. Le temporisateur T1 doit être stoppé si la trame actuelle acquitte des trames non encore acquittées. Si T1 est annulé et qu'il reste encore des trames émises non acquittées, T1 doit de nouveau démarrer. Si le temporisateur T1 expire avant la réception d'un acquittement, le système doit effectuer la procédure de réémission décrite en 2.4.4.9 .

2.4.4.6 Réception d'un rejet

Sur réception d'une trame REJ, le DXE initialisera sa variable d'état émission à la même valeur que le numéro de séquence du champ contrôle de la trame REJ. Le DXE transmettra toute(s) trame(s) en attente dès la prochaine opportunité conformément à ce qui suit:
  1. Si le DXE n'est pas en train d'émettre et que le canal est libre, il doit commencer immédiatement à transmettre
  2. Quand il reçoit la trame REJ , le DXE en opération un canal full duplex en cours de transmission de trames UI ou S doit terminer l'émission de ces trames et retransmettre ensuite la (les) trame(s) I .
  3. Quand il reçoit la trame REJ , le DXE en opération sur un canal full duplex en cours de transmission de trames I doit stopper l'émission de ces trames et retransmettre immédiatement les trames demandées.
  4. Le DXE peut transmettre une seule trame I ou plusieurs à la suite de la trame demandée, pourvu que le total ne dépasse pas la fenêtre de contrôle de flux (7 trames).
Un DXE recevant une trame REJ avec le bit P positionné, doit répondre avec une trame RR ou RNR avec le bit F positionné avant de retransmettre la (les) trame(s) I.

2.4.4.7 Réception d'une trame RNR

Quand un DXE reçoit une trame RNR, il doit stopper la transmission des trames I jusqu'à ce que la condition d'occupation ait disparue. Si le temporisateur T1 arrive à échéance après que la trame RNR soit reçue, la procédure d'attente d'acquittement décrite en 2.4.4.9 ci dessous doit être exécutée. Le bit P peut être utilisé conjointement à des trames S pour tester un changement de l'état occupé du DXE distant.

2.4.4.8 Emission d'une indication d'occupation

Chaque fois qu'un DXE passe en occupation, il l'indique cet état en envoyant à la prochaine occasion une réponse RNR. Pendant que le DXE est en condition d'occupation il peut recevoir et traiter des trames S, et si cette trame S a le bit P positionné à un, le DXE doit envoyer dès que possible une trame RNR avec le bit F positionné à un. Pour annuler cette condition d'occupation le DXE doit envoyer soit une trame RR soit une trame REJ, en fonction du fait que la dernière trame I a été ou non correctement reçue, avec un numéro de séquence égal à la valeur courante de la variable d'état en réception.

2.4.4.9 Attente d'acquittement

Si en cours d'attente d'un acquittement d'une trame I par le DXE distant le temporisateur T1 arrive à échéance, le DXE redémarre le temporisateur T1 est transmet une trame de supervision appropriée (RR ou RNR) avec le bit P positionné. Si le DXE reçoit une trame de supervision correcte avec le bit F positionné et un N(R) dans la plage allant du dernier N(R) reçu au dernier N(S) plus un, le DXE redémarre le temporisateur T1 et règle sa variable d'état en émission V(S) sur la valeur N(R) reçue. Suivant le cas, il peut continuer en transmission ou bien en retransmission de trame I. D'un autre côté si le DXE reçoit correctement une trame de supervision du type réponse dont le bit F n'est pas positionné, trame I ou trame de supervision du type commande, avec N(R) dans la plage allant du dernier N(R) reçu au dernier N(S) plus un, le DXE ne redémarre pas le temporisateur T1 mais utilise le N(R) reçu comme un acquittement des trames I jusqu'à N(R)-1 inclus.

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.

2.4.5 Conditions de rejet de trames

Un DXE doit mettre en place une procédure de réinitialisation trame quand, durant un transfert d'information, une trame comportant un champ adresse est un champ FCS valides, entre dans le cas d'une ou plusieurs conditions évoquées en 2.3.4.3.3 ci-dessus.

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é.

2.4.6 Procédure de réinitialisation

2.4.6.1

Cette procédure est utilisée pour réinitialiser un transfert bidirectionnel de données à la suite d'une erreur non récupérable. Elle est utilisée uniquement dans l'état transfert d'informations d'un lien AX.25.

2.4.6.2

Un DXE doit mettre en place une procédure de réinitialisation dès qu'il reçoit une réponse UA non prévue ou une sollicitation par trame de réponse avec le bit F positionné à 1. Il peut aussi mettre en place cette procédure suite à la réception d'une trame FRMR. Une autre possibilité serait que le DXE réponde à FRMR en terminant la connexion par une trame DISC.

2.4.6.3

Un DXE doit réinitialiser un lien en émettant SABM et en démarrant le temporisateur T1. Sur réception d'un SABM en provenance d'un DXE précédemment connecté, il faut que le DXE retourne le plus tôt possible une trame UA, initialise ses variables d'émission V(S) et de réception V(R) à zéro, stoppe le temporisateur T1 à moins qu'il n'ait déjà expédié une trame SABM ou DISC. Si le premier DXE reçoit bien UA , il initialise ses variables d'émission V(S) et de réception V(R) à zéro et stoppe le temporisateur T1. Tout état antérieur d'occupation sera aussi annulé.

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.

2.4.6.4

En émettant une trame de réponse DM un DXE peut demander que le DXE distant réinitialise le lien. Après l'émission de la trame DM le DXE passe dans l'état déconnecté.

2.4.7 Liste et définitions des paramètres système

2.4.7.1 Temporisateurs


L'utilisation des temporisateurs est recommandée afin de maintenir l'intégrité des connexions de niveau 2, .

2.4.7.1.1 Temporisateur d'acquittement T1

Le premier temporisateur T1 est utilisé afin d'être sûr qu'un DXE ne vas pas attendre indéfiniment une réponse à la trame qu'il vient d'émettre. Ce temporisateur ne peut être défini en valeur absolue du fait que le temps nécessaire pour transmettre une trame varie fortement en fonction du débit de transmission utilisé au niveau 1 (physique). T1 doit prendre comme valeur au moins deux fois le temps nécessaire pour émettre une trame de longueur maximum vers le DXE distant et pour recevoir la réponse.

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.

2.4.7.1.2 Délai de réponse, temporisateur T2

Le deuxième temporisateur T2 peut être mis en oeuvre par le DXE de façon à spécifier le délai maximum à introduire entre la réception d'une trame I et la transmission de la trame de réponse résultante. Ce délai peut être mis en place pour permettre au DXE qui reçoit d'attendre un petite période de temps afin de déterminer s'il y a encore des trames qui lui sont destinées. Si plusieurs trames sont reçues le DXE peut les acquitter en une seule fois (jusqu'à 7 trames), au lieu d'un acquittement individuel. L'utilisation du temporisateur T2 n'est pas obligatoire mais est recommandée pour améliorer l'efficacité du canal de transmission. A noter que sur des liaisons en duplex les acquittements ne doivent pas être retardés au delà de K/2 trames afin d'obtenir un maximum d'efficacité de transfert. Le paramètre K est défini en 2.4.7.4 ci-dessous.

2.4.7.1.3 Temporisateur d'inactivité T3

Un troisième temporisateur, T3, est utilisé quand T1 n'est pas actif afin de maintenir l'intégrité du lien. Il est recommandé d'émettre une trame RR ou RNR , avec le bit P positionné, à chaque période T3 de façon à connaître l'état du DXE distant quand il n'y a pas de trames I non acquittées en attente de trame(s) avec bit P positionné (État transfert d'information). La période de T3 est à définir localement, elle dépend fortement des caractéristiques du niveau 1. T3 doit être plus grand que T1 et sa valeur peut être très élevée sur des liens fiables.

2.4.7.2 Nombre maximum de tentatives (N2)

Le nombre maximum de tentatives est utilisé conjointement avec le temporisateur T1.

2.4.7.3 Nombre maximum d'octets dans une trame I (N1)

Le nombre maximum d'octets autorisés dans le champ information d'une trame I sera de 256. Ce champ comportera un nombre entier d'octets.

2.4.7.4 Nombre maximum de trames en anticipation de transmission (K)

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.