Généralités sur le protocole AX.25

Mise à jour mars 2010

Introduction:
Le protocole AX.25 ("Amateur X.25") est utilisé dans les transmission de données par radio en mode paquet (packet radio). Ce protocole a été décrit dans un document proposé par l'ARRL: AX.25 Amateur Packet-Radio Link-Layer Protocol Version 2.0 Octobre 1984.

AX.25 un "mini X.25" pour amateur ? :
Dans les systèmes professionnels les recommandations X.25 définissent les protocoles d'accès à un réseau à commutation de paquets. Cet accès utilise le plus souvent une liaison point à point sur ligne spécialisée (louée). (N.B.: X.25 ne défini pas les caractéristiques et la structure interne des réseaux).

Au niveau liaison (niveau 2) AX.25 est basé sur des procédures du type HDLC (on retrouvera donc des points commun avec le protocole de liaison LAP-B utilisé en X.25).

Il serait faux de penser qu' AX.25 est un "protocole simplifié à usage amateur". Dans son principe le niveau liaison décrit dans AX.25 est assez proche du protocole LAP-D utilisé dans les Réseaux Numériques à Intégration de Services (RNIS / ISDN).

Pour les radioamateurs le document décrivant le protocole AX.25 défini essentiellement le niveau liaison et ne spécifie pas les caractéristiques de protocoles au niveau réseau et transport.

Des protocoles de niveau réseau (niveau 3) pouvant être "transportés" dans les trames AX.25 ont fait l'objet de nombreuses expérimentations. Les plus connus sont :

  • TheNet (NET/ROM ®): mode datagramme, routage dynamique (inspiré de TCP/IP mais en plus simple afin de pouvoir être implanté en EPROM sur des TNCs).
  • ROSE / FPAC :  Adaptation du protocole réseau X.25. Circuits virtuels , routage statique.
  • I.P. : Internet Protocol et toute la suite de protocoles associés ! 
  • FlexNet : Circuits virtuels et routage dynamique (état de liens). Protocole ultra efficace complètement adapté aux contraintes des réseaux radioamateurs.
  • Quelques caractéristiques de l'AX.25 V2.0 :
  • Format et codage trames :  HDLC.
  • Mode connecté "équilibré" ABM (Asynchronous Balanced Mode).
  • Mode non connecté (trames UI).
  • Capacité de transport des trames informations : 256 octets.
  • Numérotation des trames : modulo 8  (de 0 à 7).
  • Champ adresse : indicatif destination (7 octets) + indicatif source (7 octets) .
  • Champ complémentaire d'adresse: maximum  8 indicatifs "relais" de 7 octets.
  • Détection d'erreur : 16 bits (CRC HDLC).
  • Algorithme d'accès au support : du type CSMA  (p-persistant).
  • Identificateur de protocole de niveau supérieur : champ spécifique (1 octet).
  • Variantes "non officielles"  du protocole AX.25 V2.0 :
  • Algorithme d'accès au support DAMA :

  • Le système CSMA étant peu efficace dans le cas du problème dit  "des terminaux cachés" (collisions de trames) , un mode d'exploitation du type maître/esclave a été expérimenté. Le mode DAMA (Demand Assigned Multiple Access), négocié "à la connexion", est essentiellement utilisé dans les communications du type "client-serveur" (BBS , Node).
     
  • EAX.25 :

  • EAX.25 signifie "Extended" AX.25. L'idée principale est l'exploitation d'un mode étendu de numérotation trame. Le champ de numérotation passe de 3 bits à 7 bits permettant ainsi de numéroter de 0 à 127. Ce mode étendu est utile en transmission haut débit, il permet des acquittements groupés de plusieurs dizaines de trames. L' EAX.25 est notamment présent dans des applications Linux, la disponibilité des programmes sources AX.25 ayant permis aux développeurs d'expérimenter ce mode .
    Version 2.2 du protocole l'AX.25:
    La version 2.0 de 1982 est toujours utilisée à l'heure actuelle. Une version 2.2 (novembre 1997) a été publiée par l'ARRL et le TAPR. En quelques lignes les principales modifications proposées sont :
  • Négociation des paramètres de communication.
  • Numérotation trame en mode étendu.
  • Rejet sélectif de trame.
  • Indicatifs répéteurs limités à 2.
  • Où trouver les descriptions détaillées du protocole AX.25 ?
    Les documentations (en anglais) sont disponibles en ligne sur le site du  T.A.P.R.

    Je vous propose également une (tentative de) traduction en français de la version 2.0 ainsi que les tableaux de l'automate d'états (state machine) .