Il protocollo AX.25 offre la possibilità di lavorare o meno in modo connesso, ed è usato sia da solo in collegamenti punto-punto, che per trasporto di altri protocolli come il TCP/IP e NetRom
La sua struttura è simile all'AX.25 level 2, con alcune estensioni che lo rendono più adatto all'ambito radioamatoriale.
Il protocollo NetRom rappresenta un tentativo di realizzare un protocollo di rete completo e usa AX.25 al livello più basso come protocollo dati. Presenta un livello di rete che è una forma adattata di AX.25 e offre il routing dinamico e l'alias dei nodi.
Il protocollo Rose fu concepito ed implementato da Tom Moulton W2VY come un'implementazione del livello di pacchetto di AX.25 che viene usato a sua volta a livello dati, funzionando anche a livello di rete. L'indirizzamento in Rose è costituito da un numero a 10 cifre. Le prime quattro rappresentano il Codice Identificativo dei Dati di rete (Data Network Identification Code) (DNIC) come indicato dalla Raccomandazione CCIT X.121 Appendice B. Maggiori informazioni sul protocollo Rose si possono trovare sul RATS Web server.
Alan Cox è stato lo sviluppatore del primo supporto AX.25 per il
kernel di Linux, che è stato successivamente preso in carico da
Jonathon Naylor <g4klx@g4klx.demon.co.uk>
che ha aggiunto
anche il supporto per NetRom e Rose. Il supporto per il protocollo
DAMA è stato sviluppato da
Joerg, DL1BKE, jreuter@poboxes.com
mentre il supporto per il
Baycom e il SoundModem è stato aggiunto da Thomas Sailer,
<sailer@ife.ee.ethz.ch>
. Il supporto e lo sviluppo delle
utility software per AX.25 è ora gestita da Terry Dawson, autore di
queste note.
Linux supporta i TNC (Terminal Node Controllers) in modo KISS, l'Ottawa PI card, la Gracilis PacketTwin card e le altre schede SCC basate su Z8530 attraverso l'apposito driver, nonché il modem Baycom seriale e parallelo. Il nuovo driver soundmodem di Thomas Sailer permette l'utilizzo come modem della SoundBlaster e delle schede sonore basate sul chipset crystal.
Il pacchetto User contiene un semplice PMS (Personal Message System), un beacon, un programma a linea di comando per effettuare connessioni, `listen' un esempio su come catturare tutti i pacchetti AX.25 a livello di interfaccia e programmi per configurare il protocollo NetRom. E' incluso anche un programma tipo server AX.25 per gestire ed instradare connessioni AX.25 e un demone NetRom che svolge la maggior parte del lavoro di supporto per questo protocollo.
Quella di Linux è un'implementazione di AX.25 piuttosto nuova. Sebbene somigli in molti modi a quella di NOS, BPQ o altre implementazioni AX.25, non è uguale a nessuna di queste. L'AX.25 di Linux è in grado di essere configurato in modo tale da poter comportarsi praticamente come altre implementazioni, ma il processo di configurazione è del tutto diverso.
Per aiutarvi a capire a cosa occorra pensare mentre si effettua la configurazione, questa sezione descrive alcune delle caratteristiche strutturali dell'implementazione AX.25 e come questa si inserisce nel contesto dell'intera struttura di Linux.
Diagramma semplificato dei livelli dei protocolli di rete
-----------------------------------------------
| AF_AX25 | AF_NETROM | AF_INET | AF_ROSE |
|=========|===========|=============|=========|
| | | | |
| | | TCP/IP | |
| | ---------- | |
| | NetRom | | Rose |
| -------------------------------------
| AX.25 |
-----------------------------------------------
Questo diagramma illustra con chiarezza come NetRom, Rose e TCP/IP lavorino sopra l'AX.25, ma che ognuno di questi sia considerato come un diverso protocollo a livello applicazione.
I nomi `AF_
' sono semplicemente quelli dati alla
`Address Family' di ognuno di questi, quando si scrivono
programmi che li utilizzano. Si noti l'implicita dipendenza dalla
configurazione della parte AX.25 presente in quelle di NetRom Rose o
del TCP/IP.
Moduli software presenti nell'implementazione di rete di Linux
------------------------------------------------------------------------------------ Utente | Programmi | call node || Demoni | ax25d mheardd | | pms mheard || | inetd netromd ------------------------------------------------------------------------------------ | Socket | open(), close(), listen(), read(), write(), connect() | | | |-------------------------------------------------------------- | | AF_AX25 | AF_NETROM | AF_ROSE | AF_INET |-------------------------------------------------------------------------- Kernel | Protocolli| AX.25 | NetRom | Rose | IP/TCP/UDP |-------------------------------------------------------------------------- | Devices | ax0,ax1 | nr0,nr1 | rose0,rose1 | eth0,ppp0 |-------------------------------------------------------------------------- | Drivers | Kiss PI2 PacketTwin SCC BPQ | slip ppp | | Soundmodem Baycom | ethernet ------------------------------------------------------------------------------------ Hardware | Scheda PI2, Scheda PacketTwin, Scheda SCC, Porta Seriale, Scheda Ethernet ------------------------------------------------------------------------------------ -------
Questo diagramma è un po' più esteso di quello precedente e vuole mostrare la relazione che intercorre tra le applicazioni utente, il kernel e l'hardware. In particolare si nota il rapporto esistente tra le interfacce di programmazione delle applicazioni (API) a livello di Socket, i moduli relativi ai vari protocolli, i device di rete del kernel e l'hardware.
Ogni cosa in questo diagramma dipende da ciò che è indicato sotto di lui, quindi in generale le parti da configurare devono essere fatte dal basso verso l'alto. Se, per esempio, si vuole far funzionare il programma call occorre configurare l'hardware, poi assicurarsi che il kernel abbia l'opportuno device driver, che sia stata creata l'opportuno device di rete e che il kernel includa il protocollo desiderato che a sua volta possa essere utilizzato dal programma call. La stesura di questo documento ricalca a grandi linee quest'ordine.