El protocolo AX25


Autor: ON7PC

A fin de evitar una en lo posible el 'CAOS' la normalización debe ser la primera disciplina indispensable a aplicar en nuestro mundo.

Tomemos un ejemplo sencillo. Nos vamos un domingo por la mañana de expedición , un colega lleva el equipo completo, y otro por si las moscas lleva un micro de repuesto.
Se averia el micro del equipo, intentamos colocar el que llevavamos de repuesto y entra en accion la ley de Murphi, el equipo tiene cuatro patillas, y el que llevamos de repuesto 5.

La normalización puede también subdividirse en varios aspectos:

  1. El aspecto mecánico (la forma mecánica de los conectores por ejemplo)
  2. El aspecto eléctrico (los niveles de las tensiones presentes en los bornes de un conector)
  3. El protocolo (la descripción del diálogo entre una máquina y un aparato asociado).

En informática, la International Organization for Standarization (ISO) ha tenido como misión normalizar les comunicaciones entre ordenadores.

El fruto de su trabajo se concretó en la proposición de un modelo de referencia: Open Systems Interconnection Reference Model (OSI-RM).

El modelo consiste en una jerarquía de siete capas; la primera representa el nivel mas bajo y la séptima la de nivel más elevado (como diría un palizas !). Cada capa no puede comunicar mas que con una capa que esté por encima o por debajo suyo.

Algunas porciones del OSI-RM han sido ya utilizadas para la normalización del interface con la red pública de conmutación por packet.

Esta norma o protocolo se denomina Recomendación CCITT X.25 y es la base del AX.25.

El modelo de referencia OSI es un armazón alrededor del cual debe ser concebido el protocolo de comunicación.

La primera capa o capa física está compuesta por todo lo que afecta físicamente (tanto desde el punto de vista mecánico como desde el punto de vista eléctrico) al flujo de bits de un lugar hacia otro.

Por ejemplo la Electronic Industries Association (EIA) ha formulado una norma para la conexión entre un equipo terminal de tratamiento de datos (Data Terminal Equipment o DTE - por ejemplo un ordenador o un terminal) y un equipo de finalización de circuito de datos (Data Circuit-terminating Equipment o DCE - por ejemplo un modem).

Esta norma está definida por el documento EIA-232-D sucesor del famoso EIA RS-232-C y se le denomina mas comúnmente RS-232.

La segunda capa o capa de enlace tiene como objeto colocar los datos en tramas y proporcionar una transferencia exenta de errores. Se añaden a esta trama informaciones de direcciones del expedidor y del destinatario. Se calcula un código ("Cyclic Redundancy Check" o CRC) para cada trama, este código es verificado por la estación destinataria con el código de la estación expedidora. Si no hay concordancia la trama es rechazada.

El procedimiento HDLC (High-level Data Link Control) del ISO ha sido adoptado como capa de nivel 2.

El protocolo HDLC es un protocolo orientado en los bits, define la manera de encapsular informaciones en una trama y como añadirle un CRC y un flag.

La tercera capa o capa de nivel, concierne a la ruta de las tramas a través de una red. Esto se obtiene gracias a añadir información de ruta en cada trama.

Existen dos aproximaciones diferentes:

  1. La "conexión virtual" que establece primero un circuito específico y lo mantiene activo durante toda la duración de la transferencia de informaciones entre la fuente y el destinatario. Una vez establecido el circuito virtual, ya no es necesario transmitir las informaciones concernientes a la ruta.
  2. El protocolo del tipo "datagrama": transfiere cada packet independientemente según la ruta de mejor calidad. Cada trama contiene las informaciones completas de dirección y de rutas.

La misión de la cuarta capa o capa de transporte es la de mantener una conexión asegurando que los datos sean encaminados de la fuente hacia el destinatario.

La quinta capa o capa de sesión, gestiona el log-on y la autentificación.

La sexta capa o capa de presentación proporciona el medio de traducir o de interpretar los datos intercambiados.

La séptima capa o capa de aplicación proporciona el interface entre el modelo de referencia y la aplicación del usuario.

Cuando se habla de protocolo AX.25 nivel 2 significa que la capa 2 (la capa de enlace) está definida.

Actualmente, la capa 2 está definida perfectamente, las capas 3 y 4 se encuentran en plena experimentación con los Net/Rom, TheNet, TexNet, TCP/IP y otros ...

3. AX.25, el protocolo de la capa de enlace :

El AX.25 Amateur Packet Radio Link Layer Protocol, Version 2.0 fue adoptado por la ARRL en octubre de 1984 , este protocolo fue descrito por Terry Fox WB4JFI, uno de los gurus de la AMRAD.

El protocolo AX.25 fue reconocido también por la mayoría de las administraciones encargadas de controlar el servicio de aficionados, en una palabra, está reconocido a través del mundo como "el protocolo standard de packet radio".

Tal y como está definido, el AX.25 funciona tanto en semi- como en full-duplex. El AX.25 autoriza las conexiones múltiples y la conexión consigo mismo.

4. Las tramas y los campos AX.25 :

Una transmisión AX.25 se compone de pequeños "bloques" de informaciones denominados "tramas". Une trama está a su vez dividida en elementos más pequeños llamados "campos".

Existen tres tipos de tramas:

  1. Las tramas de informaciones o tramas I, contienen las informaciones enviadas de una estación hacia otra.
  2. Las tramas de supervisión o de control o tramas S, realizan el control de la comunicación, por ejemplo acuse de recepción de una trama del tipo I o solicitud de repetición.
  3. Las tramas no numeradas o tramas U.

Cada trama comprende un campo bandera (flag), un campo de direcciones, un campo de control, un campo de información, un campo FCR y un campo con la bandera final.

El campo de flag o "bandera" indica el comienzo y el final de una trama. Una sola bandera puede ser compartida por dos tramas, en este caso la bandera indica el final de la trama precedente y el comienzo de la trama siguiente. La longitud del flag es de 8 bits (1 octeto) y su valor es único que vale:

0111 1110 o sea 7E en valor hexadecimal.

Cuando decimos que su valor es único, quiere decir que no podremos, en ningún caso, encontrar una secuencia igual, es decir donde 6 bits "1" estén seguidos. Para realizar este imperativo, existe un procedimiento que se denomina "bit stuffing" (o inserción de cero) que consiste en añadir, en la emisión, un cero cada vez que se encuentren 5 bits consecutivos de valor 1. Por supuesto, se debe incorporar un procedimiento inverso en la recepción: cada vez que se encuentren 5 bits consecutivos de "1", hay que suprimir el "0" que sigue.

El campo de direcciones contiene el indicativo de la fuente y del destinatario de la trama. Puede también contener el indicativo de uno de los 8 digipeaters (según AX.25 Versión 2). La longitud del campo de dirección varía pues de 14 a 70 octetos (112 a 560 bits)

Los 7 primeros octetos del campo de direcciones contienen el indicativo y el SSID del destinatario.

El indicativo tendrá pues un máximo de 6 caracteres, el codificado se hace sobre 7 bits, siendo siempre el octavo bit 0, excepto para el último indicativo mencionado en el campo de dirección.

El SSID permite utilizar el mismo indicativo varias veces. Para el octeto que contiene el SSID,

  1. El primer bit, llamado "H", - es 0 si se trata del expedidor o del destinatario, - y en el caso de indicativos de repetidores, es 1 si la trama ha sido repetida por el digipeater y 0 en caso contrario.
  2. Los bits 2 y 3 se denominan "R" y están reservados a un uso local o futuro.
  3. Los bits 4 a 7 están reservados al SSID propiamente dicho, por lo que puede tomar todos los valores comprendidos entre 0 y 15
  4. El bit 8 llamado bit de extensión es siempre 0 excepto si se trata del último indicativo (fuente o repetidor) mencionado en el campo de dirección.

Los octetos 8 a 14 contienen el indicativo y el SSID del que ha transmitido la trama (fuente).

Los octetos 15 a 70 son facultativos y llevan pues los indicativos y SSID de los diferentes digipeaters.

El campo de control tiene una longitud de un octeto, la tabla siguiente resume los diferentes valores que puede tomar:

Tipo de TramaUsoSiglasbit
76543210
Trama IN(R)PN(S)0

Tipo de TramaUsoSiglasbit
76543210
Trama Sreceiver readyRR N(R)P/F0001
receiver not readyRNR N(R)P/F0101
rejectREJ N(R)P/F1001

Tipo de TramaUsoSiglasbit
76543210
Trama Uset SABM modeSABM 001P1111
disconnectDISC 010P0011
disconnectedDM 000F1111
unnumbered ackUA 011F0011
frame rejectFRMR 100F0111
unnumbered infoUI 000P/F0011

  1. N(S) número de secuencia en emisión es decir el número de la trama transmitida
  2. N(R) número de secuencia en recepción es decir el que espera recibir, gracias a este número se sabe que el receptor ha recibido correctamente todas las tramas hasta N(R)-1
  3. P/F bit poll/final es decir pide la escrutación o de terminación

El PID ('Protocol IDentifier') no está presente mas que en las tramas I y UI e indica el tipo de red que es utilizada.

Los valores de PID utilizados mas comúnmente son:

  1. Tráfico packet radio normal AX.25 level 2 version 2 : F0
  2. La Net/Rom y TheNet : CF
  3. TCP/IP : CC y CD

El campo de información contiene los datos que son transmitidos por una trama de tipo I, de tipo UI o por una trama de rechazo de trama (FRMR). La longitud máxima es de 256 octetos.

El campo de Frame Check Sequence FCS se utiliza como detección de error, contiene un número de 16 bits (o sea 2 octetos) que se calcula según la Recomendación ISO 3309. De hecho se toma el número binario formado por todos los bits enviados, se divide por

x16 + x15 + x2 + 1 o sea 1100 000 000 0101

y el resto de la división proporciona el número que será utilizado como FCS.

En la recepción se pone en juego un procedimiento idéntico y el resultado del FCS calculado en la recepción, y el transmitido en la trama serán comparados, para ver si son idénticos, y se concluirá que la transmisión es correcta.

La utilización de los tipos de tramas de supervisión (S) es la siguiente:

  1. Una trama del tipo Receiver Ready (RR) señala al corresponsal que todas las tramas han sido recibidas correctamente y que puede continuar enviando nuevas tramas.
  2. Una trama del tipo Receiver Not Ready (RNR) señala que todas las tramas han sido recibidas correctamente, pero que no se puede de todas formas transmitir nuevas tramas.
  3. Una trama del tipo Reject (REJ) pide la repetición a partir de la trama N(R), habiéndose recibido sin error las tramas precedentes.

La utilización de las tramas de informaciones no numeradas (U) es la siguiente:

  1. Una trama del tipo Set Asynchronous Balanced Mode (SABM) inicia la conexión entre dos estaciones de packet. La estación destinataria puede responder con un UA o un DM.
  2. Una trama del tipo Unnumbered Ack (UA) se envía como respuesta a una trama del tipo SABM, cuando la conexión es realizable.
  3. Una trama del tipo Disconnect Mode Response (DM) se envía como respuesta a una trama del tipo SABM, cuando la conexión no es realizable (estación ocupada).
  4. La trama de Frame Reject (FRMR) se envía cuando la estación es incapaz de tratar la información y la expedición de una nueva trama no arregla las cosas. Este tipo de trama tiene en el campo de informaciones, 3 octetos que especifican la naturaleza del error. Es muy raro ver este tipo de trama.
  5. Las tramas no numeradas del tipo Unnumbered Information (UI) permiten enviar informaciones sin que esté establecida la conexión. Como no puede haber corrección de error, no se puede dar ninguna garantia sobre la validez de esta trama.

Cómo funciona una unión AX.25 ?

Supondremos aquí que trabajamos con un TNC2 de TAPR o un equipo compatible.

Como se anuncia en el cine ... "todo parecido con un indicativo o una persona que haya existido no es mas que pura coincidencia..."

Sea pues EA5AL que desea contactar con EA5FMC, EA5AL ordena a su estación de packet iniciar la conexión.

Para hacer esto, EA5AL comienza por poner su TNC en modo comando, envía CONTROL C, retorno de carro (vamos a designar éste por CTRL C ) en respuesta a este comando el TNC de EA5AL va a indicar que ya está en modo comando y para ello va a presentar un cmd: en la pantalla.

Ya que el TNC espera un comando, enviemosle la orden de establecer la conexión con EA5FMC o sea: CONNECT EA5FMC . El TNC de EA5AL va a construir una trama con EA5AL-0 como indicativo de la fuente, y con EA5FMC-0 como destinatario, siendo el campo de control del tipo SABM. Y esta trama va a ser enviada, vía el conector de micrófono, al emisor y transmitida "on the air" a EA5FMC.

Al mismo tiempo arranca un temporizador llamado 'acknoledgement timer T1'.

Si EA5FMC-0 está operacional, y es capaz de recibir la petición de conexión de EA5AL, el TNC de EA5FMC responderá a la petición de conexión de EA5AL enviando una trama UA, y el TNC de EA5AL presentará en la pantalla *** Connected to EA5FMC.

Si EA5FMC-0 está ocupado y no puede aceptar una petición de conexión, su TNC generará una trama DM y el TNC de EA5FMC enviará una trama que hará aparecer en la pantalla de EA5AL *** EA5FMC busy y después *** Disconnected.

Si no se recibe ninguna respuesta, el TNC de EA5AL continúa enviando SABM's hasta el momento que el tiempo T1 llegue a su fin, entonces el TNC de EA5AL presentará en la pantalla *** retry count exceeded seguido de *** Disconnected.

Pero supongamos que la conexión sea posible, EA5AL puede entonces enviar informaciones hacia EA5FMC, informaciones que serán 'encapsuladas' en tramas de tipo I, y cada vez el timer T1 será puesto a cero. El protocolo AX.25 prevé que se pueda transmitir como máximo 7 tramas antes de recibir un acuse de recibo.

Si el destinatario EA5FMC recibe las tramas I en el orden correcto y sin errores (el control del FCS es positivo), EA5FMC envía un acuse de recibo. Si no hay trama I para transmitir, enviará una trama RR (o eventualmente RNR), pero si hay tramas I para transmitir podrá enviar el acuse de recibo en el interior de estas tramas I.

Si el destinatario recibe tramas en un orden diferente del que esperaba (es decir el que está en su tabla), enviará una trama del tipo REJ.

Si una trama no es válida (porque el FCS calculado no corresponde al FCS en la trama), EA5FMC no enviará REJ, ni RR ni RNR, en éstas condiciones el temporizador T1 del TNC de EA5AL finalizará y el TNC de EA5AL reenviará las informaciones al cabo de cierto tiempo.

Una vez que ha finalizado el contacto entre EA5AL y EA5FMC, uno u otro podrán romper la conexión. Supongamos que EA5FMC hace una demanda de desconexión, su TNC genera una trama DISC, y coloca el timer T1 a cero.

La estación que recibe un DISC reenvía un UA y vuelve al modo de desconexión. Cuando la trama UA es recibida por la estación que ha pedido la desconexión, pone el timer T1 a 0 y vuelve al modo desconectado. Si no se recibe ninguna respuesta antes del fin de T1, la estación retransmite una trama DISC hasta que obtenga una respuesta, o hasta que el número de intentos se sobrepase.

Así funciona el AX.25, pero si desea conocer en detalle los mecanismos del protocolo, le aconsejamos leer AX.25 Amateur Packet Radio Link Layer Protocol, Version 2.0 Octubre 1984 editado por la ARRL.