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