¿Qué hay bajo el AX.25?

                         =======================

 

Seguramente muchos se han preguntado alguna vez qu‚ es lo que pasa con un

paquete AX.25 desde que ‚ste est  formado hasta que es transmitido por la

emisora de radio. En este proceso intervienen algunos protocolos de

comunicaciones ampliamente usados como son el KISS, HDLC, etc. En este

art¡culo explicaremos c¢mo se realiza este proceso que podemos englobar

en los niveles inferiores al Nivel 2 o Nivel de Enlace de la jerarqu¡a OSI.

 

En art¡culos publicados en n£meros anteriores de la revista DigiClub ya se

ha explicado en qu‚ consiste la jerarqu¡a OSI de los protocolos de

comunicaciones, por lo que en el presente nos limitaremos a lo que nos

concierne: el Nivel F¡sico es la parte de un sistema de comunicaciones que

trata con el medio f¡sico (llamado canal de comunicaciones) y tiene la

misi¢n de adaptar los paquetes de datos que el Nivel del Enlace le entrega

para su transmisi¢n por el medio f¡sico, as¡ como detectar y recuperar los

datos que aparezcan en el canal de comunicaciones para entregarlos al Nivel

de Enlace.

 

En este art¡culo tambi‚n trataremos de la llamada Subcapa de Acceso al

Medio, ya que est  fuertemente ligada al proceso de transmisi¢n de datos

y se puede considerar perteneciente al Nivel 1 (aunque hay quien prefiere

situarla en la "parte baja" del Nivel 2). En todo caso, esta subcapa se

encuentra entre los niveles 1 y 2, y se encarga de controlar c¢mo y en

qu‚ momento se debe acceder al canal de comunicaciones cuando se va a

transmitir un paquete, lo cual es especialmente importante cuando hay

varias estaciones que comparten el canal, como es el caso del Packet

Radio, y se encuentra entre los niveles 1 y 2. Tambi‚n se conoce con el

nombre de capa MAC (Medium Access Control, control de acceso al medio).

 

Pues bien, seg£n lo expuesto parece bastante claro cu l es el camino que

sigue un paquete AX.25 hasta su transmisi¢n por el canal de radio:

 

                    _____________

                   |             |

                   |   Nivel 2   |

                   |             |

                    -------------

                          |

                          | (paquete AX.25 formado)

                          |

                          v

                    _____________

                   |             |

                   |  Nivel MAC  |

                   |             |

                    -------------

                          |

                          | (se entrega en el momento oportuno)

                          |

                          v

                    _____________

                   |             |

                   |   Nivel 1   |

                   |             |

                    -------------

                          |

                          | (bits codificados en FSK/PSK...)

                          |

                          v

                   (canal de Radio)

 

 

Las funciones de estas capas o niveles son realizadas por lo general por

componentes de software (excepto el proceso de codificaci¢n de los bits,

que suele ser realizado mediante el hardware del modem). Estos componentes

de software pueden encontrarse entre nuestro ordenador personal y la TNC,

ya que ambos son ordenadores capaces de ejecutar software. Dependiendo del

tipo de TNC o modem que poseamos, ser  capaz de realizar mas o menos

funciones, liberando a la CPU de nuestro ordenador de este trabajo (si

bien actualmente este concepto est  atrasado, ya que los ordenadores

actuales son lo suficientemente potentes para realizar este trabajo sin

interferir en las dem s tareas normales). En el siguiente diagrama se

ejemplifica la distribuci¢n de los niveles OSI para algunos tipos de TNC:

 

 

     Tarjeta SCC / modem        TNC KISS         TNC TAPR / TF

     -------------------        ---------        -------------

           Nivel 1               Nivel 1            Nivel 1

                                Nivel MAC          Nivel MAC

                                                    Nivel 2

 

Es decir, en el caso de una TNC con firmware TAPR o TF (WA8DED), ser  la

TNC la encargada de realizar las tareas de constituci¢n de paquetes AX.25,

determinar el momento cuando se pueda enviar el paquete, y prepararlo para

ser transmitido directamente por la emisora de radio. Adem s, si no se usa

el llamado Modo Host de estos firmwares, la TNC realizar  adem s las

funciones del Nivel 7 o Nivel de Aplicaci¢n, comport ndose en este caso

el ordenador como un "terminal tonto", destinado £nicamente a la

presentaci¢n por pantalla de los datos que llegan de la TNC y el env¡o

hacia la TNC de los caracteres que escribe el usuario a trav‚s del teclado.

 

En el caso de una TNC con firmware KISS, ser  el software residente en el

ordenador personal el que formar  los paquetes AX.25 y los enviar  a la TNC

(usando el protocolo KISS que m s tarde veremos) para su posterior

transmisi¢n a trav‚s de la emisora de radio. Ya que la TNC KISS hace las

funciones del Nivel MAC, almacenar  en su memoria los paquetes que recibe

del ordenador hasta el momento en que sea conveniente su emisi¢n.

 

Por £ltimo, si s¢lo poseemos un sencillo m¢dem o una tarjeta SCC interna,

ser  el ordenador quien adem s decida el momento oportuno en que puede

transmitir los paquetes AX.25, envi ndolos en ese momento al m¢dem o SCC

quienes £nicamente realizar n la tarea de codificaci¢n de bits (como se

dijo antes, por lo general esto se realiza con alg£n componente de

hardware, es decir, un m¢dem) y tambi‚n de proporcionar a la emisora de

radio la se¤al anal¢gica a transmitir.

 

Desde el punto de vista del usuario, una TNC KISS y una tarjeta SCC pueden

pareces iguales, sin embargo un m¢dem suele tener m s limitaciones, aunque

estas est n impuestas por la forma en que se comunica el m¢dem con el

ordenador. Por lo general, la tendencia suele ser dejar al ordenador la

mayor parte de las tareas posibles, ya que esto proporciona una mayor

flexibilidad. La TNC KISS se diferencia de la tarjeta SCC y del m¢dem en

un aspecto aparte de la realizaci¢n del Nivel MAC, que es el empleo del

protocolo KISS. A continuaci¢n veremos estos dos conceptos con m s detalle.

 

 

El Nivel MAC:

-------------

 

Como hemos visto, el Nivel MAC consiste en un software (ya est‚ en la TNC

o en el ordenador) cuya funci¢n es decidir cu ndo se pueden transmitir los

paquetes AX.25 por el canal de radio. Es necesario establecer un protocolo

de acceso al medio debido a que en la radioafici¢n el canal puede ser

compartido por varias estaciones. La expresi¢n "protocolo de acceso al

medio" simplemente significa que es una convenci¢n establecida que hay

que seguir en el momento en que deseamos transmitir (esto es, acceder al

medio de transmisi¢n de datos, que es el canal de radio).

 

Nosotros los radioaficionados tenemos cierta experiencia en el uso

compartido de un canal de comunicaciones. Por lo general, lo que hacemos

es esperar hasta que la frecuencia se encuentre libre, y en ese momento

aprovechamos para transmitir (si es que alguien no ha sido m s r pido que

nosotros). A veces ocurre que alguien ha empezado a emitir en el mismo

momento que nosotros, haciendo ininteligible uno de los comentarios o

incluso el de ambos. Las emisoras de radio no incorporan un sistema para

detectar esta colisi¢n entre emisiones, debido a que cada persona suele

esperar un tiempo ligeramente distinto a las dem s, ya que los humanos no

somos del todo precisos, y esto hace que las colisiones sean infrecuentes.

 

Sin embargo, los ordenadores pueden alcanzar precisiones del orden de

milisegundos o incluso menores, lo cual conlleva a que si establecemos un

tiempo fijo de espera para cada estaci¢n en la frecuencia, basta que dos

estaciones tengan el mismo tiempo de espera para que colisionen de forma

continuada, lo cual dificulta enormemente la comunicaci¢n. Este m‚todo de

elegir de antemano un tiempo de espera era el empleado en las TNC con

firmware TAPR cuando se usaba el comando DWAIT. T‚cnicamente, ‚sta es una

de las formas de implementar un m‚todo de acceso m£ltiple por detecci¢n de

portadora (CSMA) 1-persistente (donde la probabilidad de transmitir es 1

(100%) en el momento de quedar el canal libre).

 

Para mejorar este m‚todo se emplea el CSMA p-persistente. Consiste en que

en el momento de transmitir, se "lanzan los dados". Si ganamos, comenzamos

a transmitir en ese instante. Si perdemos, tendremos que esperar de nuevo

un lapso de tiempo para volver a intentarlo. Es decir, transmitiremos con

una probabilidad dada. Esto conlleva que cada estaci¢n espera un tiempo

aleatorio antes de transmitir, lo cual se acerca bastante al m‚todo que

empleamos los humanos. La probabilidad de transmitir la fijamos mediante

el par metro p-persistencia, donde p ser  un valor (te¢ricamente)

fraccional entre 0 y 1. En la pr ctica, se emplean valores enteros para

especificar la probabilidad, normalmente con un rango de 0 (0%) a 255

(100%).

 

En este caso el par metro que establece el tiempo de espera se llama

SlotTime (tiempo de ranura), por la siguiente raz¢n: se considera que

el tiempo est  dividido en ranuras. Es como si nos movi‚ramos por una

pared en la que existen una serie de ranuras separadas en intervalos

regulares, y es a trav‚s de estas ranuras como podemos acceder al otro

extremo (que ser¡a el canal de comunicaci¢n). Cada vez que llegamos a

una ranura (lo cual ocurre pasado el Tiempo de Ranura) miramos si est 

el canal libre para transmitir, y si es as¡ lo haremos con una probabilidad

'p' (de p-persistencia). Si no, esperaremos a que llegue la siguiente

ranura.

 

En el siguiente gr fico se muestra la eficiencia en la utilizaci¢n del

canal seg£n la p-persistencia empleada y con un n£mero de estaciones dado.

 

 

 Eficiencia

      1.0 -|        ____________________________ p=0.01

           |    .---

      0.8 -|   /.-------._______

           |  // __             -------.________ p=0.1

      0.6 -| (/.-  ---.___

           | |/__         --._

      0.4 -| |/  -.           -

           |//     -. p=1      \

      0.2 -||        \_         -._

           ||          ---.____    ------------- p=0.5

        0 -+---+---+---+---+---+---+---+---+---+

           0   1   2   3   4   5   6   7   8   9 Estaciones

 

 

Como se puede observar, con una p-persistencia de 0.01 (que corresponde a

un 1% de probabilidad) se obtiene el mejor resultado en cuanto a

utilizaci¢n del canal cuando el n£mero de estaciones que comparten el

canal es elevado (lo cual es muy com£n en el caso del Packet Radio). Sin

embargo, el valor que solemos utilizar en nuestras estaciones de packet

radio no baja de 32 (sobre 255), que viene a ser un 18% de probabilidad

y el resultado obtenido es similar al de la gr fica cuando p=0.1, aunque

son muchos los radioaficionados que aumentan este valor incluso hasta el

100%, degradando considerablemente la eficiencia del canal. Espero que

despu‚s de leer este art¡culo algunos packeteros reconsideren esta

postura.

 

Terminamos con esta explicaci¢n del Nivel MAC con la observaci¢n de que

existen otros protocolos de acceso al medio que consiguen un mejor

resultado como es el caso del CSMA/CD (acceso m£ltiple por detecci¢n de

portadora, con detecci¢n de colisi¢n) el cual se emplea en las redes

locales Ethernet, y que consiste en que es posible detectar la colisi¢n

una vez que esta se ha producido para as¡ poder interrumpir el env¡o de

datos cuanto antes, minimizando el da¤o. Actualmente no es posible usar

el CSMA/CD en la radio debido a las caracter¡sticas de las emisoras

convencionales, aunque quiz s en un futuro y con el empleo de transceptores

espec¡ficamente dise¤ados para las comunicaciones digitales sea posible el

empleo de esta t‚cnica.

 

 

El protocolo KISS:

------------------

 

Este protocolo surgi¢ de la necesidad de enviar paquetes AX.25 completos

a la TNC para que ‚sta los transmitiera por la radio. KISS es un juego de

palabras, que significa "beso" en ingl‚s pero cuyas siglas (Keep It Simple,

Stupid) vienen a significar algo as¡ como "deja que sea tonta y simple",

indicando que la TNC s¢lo va a realizar las acciones m¡nimas necesarias.

La forma en que el ordenador se comunica con la TNC es a trav‚s de una

l¡nea serie, conectada al puerto RS-232 del ordenador. A trav‚s de esta

l¡nea serie se transmiten los datos de 8 en 8 bits, sin emplear paridad y

con 1 bit de STOP (8N1). La TNC tiene que saber cu ndo el ordenador ha

terminado de enviar un paquete AX.25 completo, para lo cual se usa un

caracter especial que delimita los paquetes (llamado FEND, Frame End).

Puesto que los paquetes AX.25 pueden contener cualquiera de los 256 c¢digos

posibles resultante de las combinaciones de 8 bits (entre los cuales se

encuentra el FEND), se hace necesario el uso de un nuevo caracter especial

significado: FESC (Frame Escape), cuya misi¢n ser  preceder a los posibles

caracteres FEND o FESC que puedan aparecer en el contenido del paquete

AX.25. Una explicaci¢n m s detallada de este proceso de "transparencia" en

el env¡o de los datos se encuentra en la referencia [KISS] de la

Bibliograf¡a, que dicho sea de paso, es exactamente igual al empleado

en el protocolo SLIP (el cual se usa para la transmisi¢n de tramas TCP/IP

a trav‚s de una l¡nea serie).

 

Estas "tramas" KISS (delimitadas por c¢digos FEND) no s¢lo pueden contener

datos (ya sean paquetes AX.25 o cualquier otra cosa susceptible de ser

retransmitida por la TNC), sino que tambi‚n pueden delimitar comandos KISS,

destinados al ajuste de algunos par metros que ser n empleados por la TNC

para decidir cu ndo puede enviar los paquetes recibidos (esto es, son

par metros empleados en el Nivel MAC). Para diferenciar las tramas KISS que

contienen datos de las que contienen comandos, se emplea un c¢digo al

principio de cada trama. Este c¢digo es un byte que se divide en dos partes

de 4 bits cada una: los 4 bits superiores indican el puerto de radio por

donde se enviar n los datos o los comandos (de entre 16 posibles), mientras

que los 4 inferiores pueden ser:

 

        +------+-----------+

        |C¢digo|  Funci¢n  |

        +------+-----------+

        |  0   | Datos     |

        |  1   | TXDelay   |

        |  2   | P-Persist |

        |  3   | SlotTime  |

        |  4   | TXTail    |

        |  5   | FullDuplex|

        |  FF  | Salir KISS|

        +------+-----------+

 

De esta forma el ordenador puede indicarle a la TNC cu les van a ser los

valores de estos par metros que, por lo general, han sido elegidos por el

usuario. El £ltimo c¢digo, FF en hexadecimal, sirve para indicarle a la

TNC que se desea salir del modo KISS y retornar al modo normal de trabajo,

lo cual es £til cuando la TNC puede actuar en otros modos adem s del KISS

(como es el caso de los firmwares TAPR o TF). Este c¢digo, a diferencia de

los dem s, es obvio que no cabe en 4 bits sino que ocupa los 8 bits del

primer c¢digo de la trama KISS. Por eso, a veces para salir del modo KISS

se suele enviar a la TNC la secuencia de c¢digos: 192, 255, 192 (FEND, FFh,

FEND).

 

El protocolo KISS ha sido ampliamente utilizado por los fabricantes de TNCs

en sus firmwares. Algunos han a¤adido otros c¢digos para controlar otras

funcionalidades de la TNC. Por lo general, una TNC KISS se comunica con el

ordenador en modo 8N1 y sin emplear control de flujo mediante las patillas

RTS/CTS (lo que se llama Handshaking) ni tampoco la l¡nea DCD, aunque nada

impide que otros fabricantes a¤adan estas funcionalidades a la TNC mediante

comandos KISS adicionales.

 

Sin embargo, el protocolo KISS adolece de un problema: no es capaz de

detectar errores en la transmisi¢n de datos a trav‚s de la l¡nea serie,

ya que ni siquiera se emplea paridad. Esto no es problema si el paquete

de datos que se env¡a ya incluye esta detecci¢n de errores (como es el caso

del AX.25, donde cada paquete lleva un c¢digo CRC de comprobaci¢n), aunque

no se pueden detectar errores en los paquetes de comandos. Para solucionar

esto, se han inventado otros protocolos como el SMACK (que anecd¢ticamente

tambi‚n significa "beso", en ingl‚s), que incluye un c¢digo CRC de

comprobaci¢n en cada trama.

 

Para terminar con el protocolo KISS, diremos que se puede considerar que

pertenece al Nivel 1 pero s¢lo desde el punto de vista del ordenador, ya

que en el momento de enviar la trama por el canal de radio no quedar 

rastro alguno de este protocolo, sino que se emplear  otro protocolo de

Nivel 1, que luego veremos. Podemos decir que el ordenador, cuando le

decimos que use una TNC KISS, emplea el KISS como protocolo de Nivel 1, y

no emplea protocolo MAC. Despu‚s ser  la TNC la encargada de transformar

las tramas KISS en el formato adecuado para su transmisi¢n por la radio.

 

 

El "verdadero" Nivel 1:

-----------------------

 

Despu‚s de haber decidido cu ndo es el momento oportuno para enviar nuestro

paquete AX.25, llega el momento de prepararlo para su emisi¢n. En esta fase

se realizar n dos tareas fundamentalmente: la inserci¢n de bits y la

codificaci¢n de los bits.

 

Hay que tener en cuenta que en este nivel ya no se considera el paquete

AX.25 como una secuencia de bytes (como ocurr¡a con el KISS), sino que en

este momento lo que hay que hacer es transmitir los bits, por lo que s¢lo

consideraremos el paquete como un conjunto de bits.

 

La inserci¢n de bits es un proceso propio de la parte baja del Nivel de

Enlace, esto es porque se considera que el Nivel de Enlace lo que entrega

al Nivel F¡sico es una secuencia de bits. Sin embargo, en la pr ctica, esto

no es adecuado ya que resultar¡a poco eficiente, as¡ que se relega al Nivel

F¡sico la parte de tratamiento de los bits. La inserci¢n de bits consiste

en que cada 5 bits '1' seguidos, se inserta un bit '0'. En la recepci¢n del

paquete se realizar  el proceso contrario: si se encuentran 5 bits '1'

seguidos de un bit '0', ‚ste £ltimo bit se ignorar . Este proceso de

inserci¢n de bits es muy importante, ya que de esta forma se consigue la

transparencia:

 

A la hora de enviar el paquete de datos, hay que delimitarlo entre dos

banderas o flags, cuya misi¢n ser  la de indicar cu ndo empieza y termina

un paquete. Es necesario el uso de estas banderas ya que los paquetes se

env¡an de forma as¡ncrona (en cualquier momento de tiempo), por lo que hay

que indicar cu ndo comienza un paquete. Estas banderas consisten en la

siguiente secuencia de bits: 01111110 (es decir, 6 bits '1' flanqueados por

bits '0'). Es obvio que dentro del paquete de datos no puede aparecer esta

secuencia, ya que de lo contrario se confundir¡a con el fin del paquete.

Por tanto se realiza el proceso de inserci¢n de bits antes mencionado.

 

En este momento ya tenemos la secuencia de bits que se transmitir  por la

radio. Ahora lo que hay que hacer es realizar el proceso de codificaci¢n de

los bits, lo que se realiza en dos fases: codificaci¢n NRZI y modulaci¢n.

 

La codificaci¢n NRZI consiste en transformar el flujo de bits de forma que

un bit 0 provoque un cambio de estado, mientras que con un bit 1 se

mantenga el nivel anterior. A modo de ejemplo, en el siguiente gr fico se

representa la transmisi¢n de una secuencia de bits en la codificaci¢n usual

NRZ (Non Return to Zero) y en NRZI (NRZ Inverted).

 

 

 Nivel alto     #####       #####   ########   #####

                #   #       #   #   #      #   #   #

                #   #       #   #   #      #   #   #

                # 0 # 1  1  # 0 # 1 # 0  0 # 1 # 0 # 1

                #   #       #   #   #      #   #   #

                #   #       #   #   #      #   #   #

 Nivel bajo ...##   #########   #####      #####   ######...

 

                         Codificaci¢n NRZ

 

 

  Frecuencia 1             #########   #########

                           #       #   #       #

                           #       #   #       #

                     1   1 # 0   1 # 0 # 0   1 # 0

                           #       #   #       #

                           #       #   #       #

  Frecuencia 2  ...#########       #####       #####...

 

                        Codificaci¢n NRZI

 

 

A continuaci¢n se realiza la modulaci¢n de los bits, tarea que corre a

cargo del m¢dem. Dependiendo de la velocidad utilizada, se suele realizar

un tipo de modulaci¢n u otro, que puede llevar consigo una nuevo proceso

de codificaci¢n de los bits. Por ejemplo, en el packet FSK a 1200 bits por

segundo, se emplean tonos dentro del rango audible (1200 Hz/2200 Hz) para

modular cada nivel de NRZI, por eso se llama tambi‚n AFSK (Audio Frequency

Shift Keying). Sin embargo, en el caso de los 9600 bits por segundo en FSK,

el m¢dem se encarga de realizar primero un proceso de aleatorizaci¢n de los

bits llamado "scrambling", seg£n el est ndar G3RUH. Este proceso es

necesario debido a que a la velocidad de 9600 baudios no es posible emplear

tonos de audiofrecuencia para la modulaci¢n (ya que se salen del rango

permitido por las emisoras de banda estrecha) por lo que en este caso se

hace necesario el empleo de modulaci¢n FSK directa. Esto conlleva aplicar

directamente los niveles NRZI a la etapa de modulaci¢n de la emisora de

radio, y el scrambling se encarga de evitar que se produzcan bajas

frecuencias, que son indetectables por la emisora.

 

 

Agradecimientos:

----------------

 

A Fernando Fern ndez de Villegas (EB3EMD) por su completo art¡culo sobre el

C.I. TCM3105, difundido por la red de Packet Radio.

 

A Lancelot (HG5CDU) y Laurent (F1JKJ) por la difusi¢n a trav‚s de la red

de Packet Radio del TCM3105 Data Sheet.

 

A Antonio (LU4AKC), por su interesante art¡culo sobre el m¢dem G3RUH,

enviado a trav‚s de la red de Packet Radio, y en general por toda la serie

SATINIT.

 

 

Bibliograf¡a:

-------------

 

[AX25]  AX.25 Amateur Packet-Radio Link-Layer Protocol, version 2.0.

        Octubre de 1994. Copyright 1994 por la ARRL.

 

[LAPA]  AX.25 Link Access Protocol - Amateur Packet Radio, version 2.2.

        Julio de 1993. William A. Beech (NJ7P), Douglas E. Nielsen (N7LEM)

        y Jack Taylor (N7OO).

 

[KISS]  The KISS TNC: A simple Host-to-TNC communications protocol.

        Mike Chepponis (K3MC) y Phil Karn (KA9Q).

 

[TCM3]  TCM3105 Data Sheet. Del libro Texas Instruments Interface Circuits.

 

[TANE]  Redes de Ordenadores. 2¦ edici¢n. Andrew S. Tanenbaum.

        Prentice-Hall Hispanoamericana, S.A. 1991.

 

 

Contactar con el autor:

-----------------------

 

Si deseas enviarme tus comentarios al respecto de este art¡culo, puedes

contactar conmigo por diversos medios: a trav‚s de Internet, en la

direcci¢n de e-mail cramirez@arrakis.es o en eb7cjo@digigrup.es; o por la

red de Packet Radio, en la direcci¢n EB7CJO @ EA7RKC.EACA.ESP.EU; tambi‚n

por correo, en el Apartado de Correos 2684, C.P. 11080 C diz.

 

73 de Jos‚ Carlos, EB7CJO.