¿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.