Le protocole AX.25 fonctionne aussi bien en mode connecté que non-connecté et s'emploie tel quel pour des liaisons point-à-point ou pour encapsuler d'autres protocoles tels qu'IP ou NetRom.
Sa structure se rapproche de celle du niveau 2 d'X25 avec des extensions qui l'adaptent à l'environnement radioamateur.
Le protocole NetRom a pour objectif de fournir un protocole réseau complet. Il repose sur AX.25 au niveau liaison de données et procure une couche réseau dérivée d'AX.25. Le protocole NetRom autorise le routage dynamique et la création d'alias pour les noeuds.
Le protocole Rose a été initialement conçu et réalisé par Tom Moulton alias W2VY. Il constitue une mise en oeuvre du protocole par paquets X25 et peut inter-opérer avec AX.25 au niveau liaison. Il fournit des services de couche réseau. Les adresses Roses comportent 10 digits. Les quatre premiers constituent le code d'identification du réseau de données (DNIC ou Data Network Identification Code) et sont référencés dans l'Appendice B de la recommandation X121 du CCITT. Des informations supplémentaires sur le protocole Rose sont disponibles sur le site suivant : Serveur Web RATS.
Alan Cox a créé les toutes premières versions de support noyau pour AX.25.
Jonathon Naylor <g4klx@g4klx.demon.co.uk>
a poursuivi le
développement, ajouté la gestion de NetRom et de Rose et assure à présent
officiellement la maintenance du code noyau relatif à AX.25. La prise en
compte de DAMA est l'oeuvre de Joerg, DL1BKE, jreuter@poboxes.com
.
Thomas Sailer, <sailer@ife.ee.ethz.ch>
s'est chargé des
matériels Baycom et SoundModem. J'assure pour ma part le suivi des
utilitaires AX.25.
Linux gère les TNC (Terminal Node Controllers) KISS, les cartes Ottawa PI, les PacketTwin Gracilis et autres cartes à base de SCC Z8530 via le pilote SCC générique ainsi que les modems sur ports série et parallèle de Baycom. Le nouveau pilote pour modems à base de carte son de Thomas accepte les Soundblaster et les cartes à base de composants Crystal.
Le paquetage de programmes applicatifs comprend une messagerie individuelle (PMS ou Personal Message System), une balise, un programme de connexion en mode texte, un exemple de récupération des trames AX.25 au niveau de l'interface et des utilitaires de configuration du protocole NetRom. Il comprend également un serveur de type AX.25 qui gère les demandes de connexions AX.25 et un démon qui se charge de l'essentiel du travail pour le protocole NetRom.
La mise en oeuvre d'AX.25 sous Linux lui est propre de A à Z. Bien qu'elle puisse ressembler à NOS, à BPQ ou à d'autres versions d'AX.25 sur certains points, elle ne se confond avec aucune d'entre elles. La version Linux peut être configurée pour se comporter de façon voisine aux autres mais le processus n'en reste pas moins radicalement différent.
Pour vous aider à comprendre la démarche intellectuelle à suivre lors de la configuration, cette section décrit les fonctionnalités structurelles d'AX.25 et son adaptation au contexte Linux.
Diagramme simplifié des couches protocolaires
+----------+-----------+-------------+---------+
| AF_AX.25 | AF_NETROM | AF_INET | AF_ROSE |
+==========+===========+=============+=========+
| | | | |
| | | TCP/IP | |
| | +--------+ | |
| | NetRom | | Rose |
| +--------------------+----+---------+
| AX.25 |
+----------------------------------------------+
Le diagramme précédent illustre simplement le fait que Rose, NetRom, AX.25 et
TCP/IP reposent tous sur AX.25 mais que chacun est traité comme un protocole
différent au niveau de l'interface de programmation. Les noms
`AF_
' correspondent aux noms donnés aux `Familles
d'Adresses' de chacun du point de vue du programmeur. On notera ici
l'obligation de configurer la pile AX.25 avant toute configuration des
protocoles NetRom, Rose ou TCP/IP.
Diagramme des modules logiciels de la pile réseau de Linux
---------------+-----------+-----------------------++----------+--------------- Utilisateur |Programmes | call node || Démons | ax25d mheardd | | pms mheard || | inetd netromd ---------------+-----------+-----------------------++----------+--------------- |Sockets | open(), close(), listen(), read(), write(), connect() | +----------------------+-------------------+---------- | | AF_AX.25 | AF_NETROM | AF_ROSE | AF_INET +-----------+--------------+-------+-----+-------------+---------- Noyau |Protocoles | AX.25 | NetRom | Rose | IP/TCP/UDP +-----------+--------------+-------------+-------------+---------- |Périph. | ax0,ax1 | nr0,nr1 | rose0,rose1 | eth0,ppp0 +-----------+--------------+-------------+-------------+---------- |Pilotes | Kiss PI2 PacketTwin SCC BPQ | slip ppp | | modems type son Baycom | ethernet ---------------+-----------+------------------------------------------+----- Matériel | Cartes PI2, PacketTwin, SCC, Série, Ethernet ----------------------------------------------------------------------------Ce diagramme est plus général que le précédent. Il montre les relations entre les applications, le noyau et le matériel ainsi qu'entre l'interface de programmation des sockets, les modules de protocoles, les périphériques réseau et leurs pilotes. Chaque niveau dépend de celui sur lequel il repose et, de façon générale, la configuration doit se faire de bas en haut. Par exemple, si vous souhaitez exécuter le programme call, vous devez configurer le matériel, vérifier que le pilote adéquat est inclus dans le noyau, créer les périphériques noyaux correspondants et inclure le protocole requis par le programme call. J'ai essayé d'organiser le présent document de cette façon.