ATM Asynchronous Transfer Mode. Estudiando una tecnología legacy


Aunque es una tecnología cada vez más en desuso, lo que en la industria se denomina ‘legacy’, ATM (Asynchronous Transfer Mode) es ampliamente estudiada en universidades y ciclos formativos y de hecho de un trabajo para una asignatura surge la idea de escribir esta entrada. No obstante, no deja de ser interesante el problema que resolvía en su momento y la solución técnica queda.

ATM surge a principio de los ’90, un momento en el que cada tipo de tráfico se cursaba por una red distinta dada su distinta naturaleza. Así, el tráfico de voz y en tiempo real se ve beneficiado por tecnologías de conmutación de circuitos dada su sensibilidad a las variaciones de latencia (jitter) y a las pérdidas, así como su ancho de banda predecible. Mientras tanto, el tráfico de datos más es tolerante a retardo y pérdidas (esto es discutible como vimos en el artículo de TCP) y puede tener muchas ráfagas y elevado e impredecible ancho de banda. Por lo tanto, ATM es una red orientada a transportar todo tipo de tráfico, lo que supone un coste mucho menor que tener una red dedicada a cada tráfico como sucedía hasta entonces.

Modelo de referencia ATM

Uno de los elementos curiosos de ATM es el modelo de referencia con varias capas y en forma tridimensional… ¡se quedaría a gusto el que lo hizo! Aunque todos los elementos tienen su por qué, los más relevantes y conocidos son las capas AAL (ATM Adaptation Layer) y ATM.
·         AAL. Básicamente es la capa que se encarga de convertir paquetes o tramas de datos en celdas ATM (veremos después lo de las celdas)
·         ATM. Esta capa es la más importante y define el formato de las celdas, su encabezado, gestiona los circuitos virtuales, lleva a cabo el control de congestión…


El tamaño importa: Celdas de 53 bytes

El uso de celdas es uno de los elementos más característicos de ATM. Se trata de la unidad de transmisión de datos sobre la que trabaja la tecnología y es siempre del mismo tamaño: 53 bytes. Esto confiere una serie de ventajas a ATM.
La primera de ellas es que al tratarse siempre del mismo tamaño la información está siempre en las mismas posiciones, lo que hace muy factible el uso de ASIC (Application Specific Integrated Circuit) aumentando así el rendimiento en la conmutación al hacerla por hardware frente a otras soluciones que realizan la conmutación a nivel de software. Esto también facilita la sincronización en la comunicación, lo que además se refuerza al estar continuamente emitiendo celdas aunque sea vacías.
La otra ventaja principal está relacionada con el tipo de tráfico. Como mencionábamos antes, además de datos la red ha de transportar voz, muy sensible a variación de latencia. El tamaño de celda permite priorizar adecuadamente las celdas de voz frente a grandes paquetes de otros tipos de tráfico. En la imagen inferior se aprecia este concepto visualmente: mientras que en otros protocolos el paquete de voz ha de esperar a que se transmitan los bloques de datos que le preceden y se encolaron antes, en ATM el conmutador puede priorizar el paquete adecuadamente y sacarlo antes a la red. Esto también permite aplicar QoS.

¿Qué quiere decir asíncrono?

El concepto de asíncrono se refiere a la diferencia respecto a TDM, donde cada unidad de datos a multiplexar va a tener asignado un slot de tiempo invariable. En el caso de ATM la asignación de slots temporales a las celdas se realiza de forma dinámica mejorando así el aprovechamiento del ancho de banda y aplicar calidad de servicio como vimos antes. Al igual que en el caso anterior una imagen ayuda a entenderlo.

Las cabeceras de las celdas

Como en todas las tecnologías de red no podía faltar el formato de las cabeceras. Dejo una ilustración con la cabecera y cada uno de los campos, ya que lo único llamativo son VPI y VCI que los explicaremos a continuación en la parte dedicada a los circuitos virtuales.


Circuitos virtuales. Qué son y cómo funcionan

Este es un tema que generalmente está explicado de una forma sorprendentemente compleja en la mayoría de sitios, o al menos a mí me lo ha parecido puede que por estar más habituado al mundo IP. Trataré de simplificar la explicación para que sea sencilla de entender.
Empezaremos mirando solamente la operación un conmutador o switch ATM para luego ver la comunicación extremo a extremo.
Como todo switch, tenemos una serie de puertos, en este caso utilizaremos 4. Hasta aquí nada nuevo.
Switch ATM 1

Para conmutar el SW mirará su tabla, que en ATM está formada por un una columna de entrada y otra de salida con los datos de puerto y VPI. ¿Qué va a hacer esta tabla? Pues cada celda que entre por el puerto 1 y cuyo valor en el campo VPI sea 10, la sacará por el puerto 3 y le cambiará el valor de VPI a 31. ¿Qué pasará con la celda que llegue al puerto 1 y con VPI=11? La respuesta es obvia.
Rx
Tx
Puerto
VPI
Puerto
VPI
1
10
3
31
1
11
4
41
Tabla SW ATM 1

Ahora sí, vamos a tomar una topología completa (no así las tablas de encaminamiento). Aquí vemos que la celda que habíamos enviado antes venía del Host A y sigue su camino virtual (VPI viene Virtual Path Indicator) hasta el Host B. La operación que realizará el SW 2 será la misma. Por lo tanto las operaciones serán:


  1. Host A.
    1. Celda VPI = 10
  2. SW 1
    1. Recibe la celda en puerto 1
    2. Cambia VPI = 31
    3. La envía por el puerto 3
  3. SW 2
    1. Recibe la celda en el puerto 1
    2. Cambia VPI = 231
    3. La envía por el puerto 3
  4. El Host B recibe la celda. 


Topología ATM


Sin embargo aquí nos está faltando algo: no utilizamos el otro valor que vimos en la cabecera, VCI. El VCI es el “Virtual Channel Indicator”. Si el “Virtual Path” es un circuito virtual entre hosts, el “Virtual Channel” es una conexión virtual entre estos. Qué lío, ¿no? Podemos hacer un símil con un socket TCP/IP, donde utilizamos la misma IP para conectarnos a una máquina pero distintos puertos para cada aplicación. Pues aquí sucede lo mismo, el VP entre dos equipos es el mismo, pero dentro de cada VP puede haber múltiples VCs para establecer distintas conexiones. Esto simplifica enormemente las tablas de conmutación en cada uno de los SW, ya que un solo VP puede transportar 65.536 VC.

Por lo tanto, realmente la etiqueta VCI solamente se utiliza en los extremos de comunicación, del mismo modo que los puertos TCP o UDP.
Aunque no la he utilizado en la explicación, creo que esta imagen es bastante ilustrativa de la jerarquía en todas estas conexiones:




Una cuestión que no me ha terminado de quedar completamente clara es hasta qué punto se realiza el ‘swap’ de VCI en una operación similar a los VPI. Según las fuentes más teóricas (las pongo al final), parece que sí se hace la operación ya que ambos campos se consideran de ámbito local. Sin embargo, esto hace el proceso más ineficiente al tener que mantener en los switches tablas con las equivalencias de VCIs y llevar a cabo también esta operación en cada celda, aunque esta no debería ser ya tan costosa al cambiarse el VPI. Pero no solo eso, sino que en alguna otra fuente más práctica como esta de Juniper, la operación es opcional. En cualquier caso, creo que queda claro el funcionamiento en ambos casos.

Conclusión

ATM es una tecnología legacy pero técnicamente no deja de ser interesante por el uso de celdas y las implicaciones que esto tiene, como la posibilidad de utilizar hardware dedicado o por el mecanismo de circuitos virtuales y la conmutación llevada a cabo.


Con esto doy por concluido el tema de ATM. Aunque se puede profundizar mucho más, sobre todo en lo que se refiere a la creación de circuitos, creo que como visión general es suficiente y un mayor detalle sería para analizar algún aspecto específico. Espero que sea de ayuda a quien lo lea J

Bibliografía

  • ASYNCHRONOUS TRANSFER MODE. Link
  • Asynchronous Transfer Mode Chapter 14 from Understanding Data Communications, 6th Edition, published by New Riders Publishing. Link.
  • Wikipedia
  • ATM Pocket Guide – Acterna Vol. 4. Link
  • Redes de Computadoras. William Stallings
  • Redes de Computadoras. Andrew Tanenbaum 
  • Configuring ATM Cell-Relay Pseudowire VPI/VCI Swapping. Link 

Comentarios

Entradas populares