# Modo de transferencia asíncrona

El modo de transferencia asíncrona (Asynchronous Transfer Mode, ATM) es, según el ya desaparecido ATM Forum, "un concepto de telecomunicaciones definido por las normas de las organizaciones ANSI y UIT para el transporte de una gama completa de tráfico de usuarios, incluidas las señales de voz, datos y video". ATM fue desarrollado para satisfacer las necesidades de la Red digital de servicios integrados de banda ancha, tal como se definió a fines de la década de 1980 y diseñada para integrar redes de telecomunicaciones. Además, fue diseñado para redes que deben manejar el tráfico tradicional de datos de alto rendimiento (por ejemplo, transferencias de archivos) y contenido de baja latencia en tiempo real, como voz y video. El modelo de referencia para ATM se asemeja a las tres capas más bajas del modelo de referencia ISO-OSI: capa de red, capa de enlace de datos y capa física.
ATM proporciona una funcionalidad similar tanto a la conmutación de circuitos como a las redes de conmutación de paquetes: ATM utiliza multiplexación por división de tiempo asincrónica y codifica datos en paquetes pequeños de tamaño fijo (tramas ISO-OSI) llamadas celda. Esto difiere de los enfoques como el Protocolo de Internet o Ethernet que usan paquetes y tramas de tamaño variable. ATM utiliza un modelo orientado a la conexión en el que se debe establecer un circuito virtual entre dos puntos finales antes de que comience el intercambio de datos real. Estos circuitos virtuales pueden ser "permanentes", es decir, conexiones dedicadas que normalmente están preconfiguradas por el proveedor del servicio, o "conmutadas", es decir, configuradas por llamada usando señalización y desconectadas cuando finaliza la llamada.
ATM es un protocolo central utilizado sobre la red troncal SONET/SDH de la red telefónica pública conmutada y la red digital de servicios integrados (RDSI), pero su uso está disminuyendo a favor de la red de siguiente generación en la cual la comunicación se basa en el Protocolo IP.

## Capa 2 - datagramas

En la capa de enlace de datos del modelo de referencia ISO-OSI (capa 2), las unidades básicas de transferencia se denominan genéricamente trama. En ATM estas tramas son de una longitud fija (53 octetos o bytes) y se denominan específicamente "celdas".

### Tamaño de la celda

Si una señal de voz se reduce a paquetes y se ve forzada a compartir un enlace con un tráfico de datos desbordado (tráfico con algunos paquetes de datos grandes), no importa lo pequeños que puedan ser los paquetes de voz, siempre se encontrarán con paquetes de datos de tamaño completo. En condiciones normales de espera, las celdas pueden experimentar retrasos máximos en la espera. Para evitar esta emisión, todos los paquetes ATM, o "celdas", son del mismo tamaño. Además, la estructura de celdas fijas permite que el ATM pueda ser fácilmente conmutado por el hardware sin los retrasos inherentes introducidos por el software de conmutación y las tramas de enrutamiento.
Por lo tanto, los diseñadores de ATM utilizaron pequeñas celdas de datos para reducir jitter (la variación de retardo, en este caso) en la multiplexación de flujos de datos. La reducción del jitter (y también de los retrasos de ida y vuelta de extremo a extremo) es particularmente importante cuando se transporta tráfico de voz, ya que la conversión de la voz digitalizada en una señal de audio analógica es un proceso intrínsecamente computación en tiempo real, y para hacer un buen trabajo, el decodificador (codec) que hace esto necesita un flujo de datos espaciado uniformemente (en el tiempo). Si el siguiente elemento de datos no está disponible cuando se necesita, el códec no tiene más remedio que producir silencio o adivinar - y si los datos llegan tarde, es inútil, porque el período de tiempo en el que debería haberse convertido en una señal ya ha pasado.
En el momento del diseño de ATM, 155 Mbit/s jerarquía digital síncrona (SDH) con una carga útil de 135 Mbit/s se consideraba un enlace de red óptico rápido, y muchos jerarquía digital plesiócrona (PDH) en la red digital eran considerablemente más lentos, oscilando entre 1,544 y 45 Mbit/s en los EE. UU., y entre 2 y 34 Mbit/s en Europa.
A 155 Mbit/s, un paquete de datos de longitud completa de 1500 bytes (12 000 bits), suficiente para contener un máximo-tamaño de paquete IP para Ethernet, necesitaría 77,42 µs para transmitir. En un enlace de baja velocidad, como un enlace de 1,544 Mbit/s línea T1, el mismo paquete tardaría hasta 7,8 milisegundos.
Un retardo de cola inducido por varios de estos paquetes de datos podría superar la cifra de 7,8 ms varias veces, además de cualquier retardo de generación de paquetes en el paquete de voz más corto. Esto era claramente inaceptable para el tráfico de voz, que necesita tener un bajo jitter en el flujo de datos que se introduce en el códec si se quiere producir un sonido de buena calidad. Un sistema de voz en paquetes puede producir esta baja fluctuación de varias maneras:
* Usando un búfer de reproducción entre la red y el códec, uno lo suficientemente grande como para que el códec se mueva sobre casi todo el jitter de los datos. Esto permite suavizar el jitter, pero el retardo introducido por el paso a través del buffer requiere cancelador de ecos incluso en redes locales; esto se consideraba demasiado caro en ese momento. Además, aumentaba el retardo a través del canal y dificultaba la conversación en los canales de alto retardo.
* Usando un sistema que intrínsecamente proporciona un bajo jitter (y un retraso general mínimo) al tráfico que lo necesita.
* Operar con base en un usuario 1:1 (es decir, una tubería dedicada).
El diseño de ATM apuntaba a una interfaz de red de baja fluctuación. Sin embargo, se introdujeron "celdas" en el diseño para proporcionar retrasos cortos en las colas mientras se seguía soportando el tráfico datagrama. ATM dividió todos los paquetes, datos y flujos de voz en trozos de 48 bytes, añadiendo un encabezado de enrutamiento de 5 bytes a cada uno de ellos para que pudieran ser reensamblados más tarde. La elección de 48 bytes fue política y no técnica.
Cuando el CCITT (ahora el UIT-T) estaba normalizando el ATM, las partes de los Estados Unidos querían una carga útil de 64 bytes porque se consideraba que esto era un buen compromiso en cargas útiles más grandes optimizadas para la transmisión de datos y cargas útiles más cortas optimizadas para aplicaciones en tiempo real como la voz; las partes de Europa querían cargas útiles de 32 bytes porque el pequeño tamaño (y por lo tanto los cortos tiempos de transmisión) simplifican las aplicaciones de voz con respecto a la cancelación de eco. La mayoría de los partidos europeos finalmente aceptaron los argumentos de los estadounidenses, pero Francia y algunos otros se mantuvieron a favor de una longitud de celda más corta. Con 32 bytes, Francia habría podido implementar una red de voz basada en ATM con llamadas de un extremo a otro de Francia sin necesidad de cancelación de eco. Se eligieron 48 bytes (más 5 bytes de encabezado = 53) como compromiso entre las dos partes. Se eligieron cabeceras de 5 bytes porque se pensó que el 10% de la carga útil era el precio máximo a pagar por la información de enrutamiento. ATM multiplexó estas celdas de 53 bytes en lugar de paquetes que redujeron el jitter de la contención de celda en el peor de los casos en un factor de casi 30, reduciendo la necesidad de canceladores de eco.

### Estructura de una celda ATM

Una celda ATM consta de una cabecera de 5 bytes y una carga útil de 48 bytes. El tamaño de la carga útil de 48 bytes se eligió tal y como se ha descrito anteriormente.
ATM define dos formatos de celda diferentes: Interfaz usuario-red (UNI) y red de red. (NNI). La mayoría de los enlaces ATM utilizan el formato de celda UNI.
| 7 | | | 4 | 3 | | | 0 |
| GFC | GFC | GFC | GFC | VPI | VPI | VPI | VPI |
| VPI | VPI | VPI | VPI | VCI | VCI | VCI | VCI |
| VCI ||||||||
| VCI | VCI | VCI | VCI | PT | PT | PT | CLP |
| HEC ||||||||
| Carga útil y relleno si es necesario (48 bytes) ||||||||
| 7 | | | 4 | 3 | | | 0 |
| VPI ||||||||
| VPI | VPI | VPI | VPI | VCI | VCI | VCI | VCI |
| VCI ||||||||
| VCI | VCI | VCI | VCI | PT | PT | PT | CLP |
| HEC ||||||||
| Carga útil y relleno si es necesario (48 bytes) ||||||||
    GFC = El campo genérico de control de flujo (GFC) es un campo de 4 bits que se añadió originalmente para admitir la conexión de redes ATM a redes de acceso compartido, como un anillo de doble bus de cola distribuido (DQDB). El campo GFC fue diseñado para dar a la Interfaz Usuario-Red (UNI) 4 bits para negociar la multiplexación y el control de flujo entre las celdas de varias conexiones ATM. Sin embargo, el uso y los valores exactos del campo GFC no se han estandarizado, y el campo siempre se establece en 0000.
    VPI = Identificador de Ruta Virtual (8 bits UNI, o 12 bits NNI)
    VCI = Identificador de Canal Virtual (16 bits)
    PT = Tipo de carga útil (3 bits)
       PT bit 3 (msbit): celda de gestión de red. Si es 0, se aplica la celda de datos de usuario y lo siguiente:
       PT bit 2: Indicación explícita de congestión hacia delante (EFCI); 1 = congestión de la red experimentada
       PT bit 1 (lsbit): Bits de usuario a usuario (AAU) del ATM. Utilizado por AAL5 para indicar los límites de los paquetes.
    CLP = Prioridad de pérdida de celda (1-bit)
    HEC = Control de errores de cabecera (CRC de 8 bits, polinomio = X$^8$ + X$^2$ + X + 1)
ATM utiliza el campo PT para designar varios tipos especiales de celdas para operaciones, administración y gestión (OAM), y delinear los límites de los paquetes en algunos capa de adaptación ATMs (AAL). Si el el bit más significativo (MSB) del campo PT es 0, se trata de una celda de datos de usuario, y los otros dos bits se utilizan para indicar la congestión de la red y como un bit de encabezamiento de propósito general disponible para las capas de adaptación ATM. Si el MSB es 1, se trata de una celda de gestión, y los otros dos bits indican el tipo. (Segmento de gestión de red, gestión de red de extremo a extremo, gestión de recursos y reservado para uso futuro.
Varios protocolos de enlace ATM utilizan el campo HEC para controlar un algoritmo enmarcado basado en CRC, que permite localizar las celdas ATM sin sobrecarga más allá de lo que de otro modo se necesitaría para la protección del cabezal. El CRC de 8 bits se utiliza para corregir errores de encabezado de un solo bit y detectar errores de encabezado de varios bits. Cuando se detectan errores de encabezado de múltiples bits, las celdas actuales y subsiguientes se omiten hasta que se encuentra una celda sin errores de encabezado.
Una celda UNI reserva el campo GFC para un sistema local control de flujo/submultiplexación entre usuarios. Con ello se pretendía permitir que varios terminales compartieran una única conexión de red, de la misma manera que dos Integrated Services Digital Network. (RDSI) pueden compartir una sola conexión RDSI de tarifa básica. Los cuatro bits GFC deben ser cero por defecto.
El formato de celda NNI replica el formato UNI casi exactamente, excepto que el campo GFC de 4 bits se reasigna al campo VPI, extendiendo el VPI a 12 bits. Así pues, una única interconexión ATM NNI es capaz de tratar casi 2$^{12}$ VPs de hasta casi 2$^{16}$ VCs cada uno (en la práctica, algunos de los números de VP y VC están reservados).

### Celdas en la práctica

ATM soporta diferentes tipos de servicios a través de AALs. Los AAL estandarizados incluyen AAL1, AAL2 y AAL5, y los raramente utilizados AAL3 y AAL4. AAL1 se utiliza para servicios de velocidad binaria constante (CBR) y emulación de circuitos. La sincronización también se mantiene en AAL1. AAL2 a AAL4 se utilizan para Variable de tasa de bits (VBR) y AAL5 para datos. El AAL que se utiliza para una celda determinada no está codificado en la celda. En su lugar, se negocia o configura en los puntos finales en función de la conexión virtual.
Tras el diseño inicial de la ATM, las redes se han vuelto mucho más rápidas. Un marco de 1500 bytes (12000 bits) de tamaño completo trama Ethernet tarda sólo 1,2 µs en transmitirse en una red de 10 Gbit/s, lo que reduce la necesidad de que las celdas pequeñas reduzcan el jitter debido a la contención. Algunos consideran que esto justifica la sustitución de ATM por Ethernet en la red troncal. Sin embargo, hay que tener en cuenta que el aumento de la velocidad de los enlaces por sí solo no alivia el jitter debidos a las colas. Además, el hardware para implementar la adaptación del servicio para paquetes IP es caro a velocidades muy altas. Específicamente, a velocidades de OC-3 y superiores, el costo del hardware de segmentación y reensamblado (SAR) hace que ATM sea menos competitivo para IP que Packet Over SONET(POS); debido a su carga útil fija de 48 bytes, ATM no es adecuado como capa de enlace de datos directamente subyacente a la IP (sin necesidad de SAR a nivel de enlace de datos), ya que la capa de interconexión de sistemas abiertos sobre la que opera la IP debe proporcionar una unidad máxima de transmisión (MTU) de al menos 576 bytes. Los límites de rendimiento SAR significan que las interfaces ATM del enrutador IP más rápido son STM16 - STM64, que en realidad compara, mientras que a partir de 2004 el POS puede operar en OC-192 (STM64) con velocidades más altas esperadas en el futuro.
En los enlaces más lentos o congestionados (622 Mbit/s o menos), ATM tiene sentido, y por esta razón la mayoría de línea de abonado digital asimétrica. (ADSL) utilizan ATM como capa intermedia entre la capa de enlace físico y un protocolo de Capa 2 como PPP o Ethernet.
A estas velocidades más bajas, ATM proporciona una capacidad útil para transportar múltiples circuitos lógicos en un solo medio físico o virtual, aunque existen otras técnicas, como Multi-link PPP y Ethernet. VLANs, que son opcionales en las implementaciones VDSL, DSL puede ser utilizado como un método de acceso para una red de ATM, permitiendo que un punto de terminación DSL en una oficina central de telefonía se conecte a muchos proveedores de servicios de Internet a través de una red de ATM de área amplia. En los Estados Unidos, al menos, esto ha permitido a los proveedores de DSL proporcionar acceso DSL a los clientes de muchos proveedores de servicios de Internet. Dado que un punto de terminación DSL puede soportar varios ISP, la viabilidad económica de la DSL ha mejorado sustancialmente.

### Razones para los circuitos virtuales

ATM funciona como una capa de transporte basada en canales, utilizando circuito virtuals (VCs). Esto está incluido en el concepto de las rutas virtuales (VP) y los canales virtuales. Cada celda ATM tiene un identificador de ruta virtual (VPI) de 8 o 12 bits y un par de identificadores de canal virtual (VCI) de 16 bits definidos en su encabezamiento.
El VCI, junto con el VPI, se utiliza para identificar el siguiente destino de una celda cuando pasa por una serie de conmutadores ATM en su camino hacia su destino. La longitud del VPI varía en función de si la celda se envía a la interfaz usuario-red (en el borde de la red), o si se envía a la interfaz red-red (dentro de la red).
A medida que estas celdas atraviesan una red ATM, la conmutación tiene lugar cambiando los valores VPI/VCI (intercambio de etiquetas). Aunque los valores de VPI/VCI no son necesariamente consistentes de un extremo de la conexión al otro, el concepto de un circuito es consistente (a diferencia de IP, donde un paquete dado podría llegar a su destino por una ruta diferente a las otras). Los conmutadores ATM usan los campos VPI/VCI para identificar el virtual channel link (VCL) de la siguiente red que una celda necesita para transitar en su camino hacia su destino final. La función del VCI es similar a la del identificador de conexión del enlace de datos (DLCI) en frame relay y el número de canal lógico y el número de grupo de canal lógico en X.25.
Otra ventaja del uso de los circuitos virtuales es la posibilidad de utilizarlos como una capa de multiplexación, permitiendo diferentes servicios (como voz, frame relay, n* 64 canales, IP). El VPI es útil para reducir la tabla de conmutación de algunos circuitos virtuales que tienen rutas comunes.

### Usando celdas y circuitos virtuales para la ingeniería de tráfico

Otro concepto clave de ATM es el contrato de tráfico. Cuando se configura un circuito ATM, se informa a cada interruptor del circuito de la clase de tráfico de la conexión.
Los contratos de tráfico ATM forman parte del mecanismo mediante el cual "calidad del servicio" (QoS) está garantizada. Existen cuatro tipos básicos (y varias variantes) que tienen cada uno un conjunto de parámetros que describen la conexión.
* CBR - Velocidad de bits constante: se especifica una velocidad máxima de celda (PCR), que es constante.
* VBR - Velocidad binaria variable: se especifica una velocidad binaria media o sostenible (SCR), que puede alcanzar un determinado nivel, una PCR, durante un intervalo máximo antes de ser problemática.
* ABR - Velocidad binaria disponible: se especifica una velocidad mínima garantizada.
* UBR - Velocidad binaria no especificada: el tráfico se asigna a toda la capacidad de transmisión restante.
VBR tiene variantes en tiempo real y no en tiempo real, y sirve para el tráfico "bursty". En ocasiones, el término "no en tiempo real" se abrevia como vbr-nrt.
La mayoría de las clases de tráfico también introducen el concepto de tolerancia a la variación del retardo de celda (CDVT), que define el "agrupamiento" de las celdas en el tiempo.

#### Políticas de tráfico

Para mantener el rendimiento de la red, las redes pueden aplicar traffic policing a los circuitos virtuales para limitarlos a sus contratos de tráfico en los puntos de entrada a la red, es decir, los user-network interfaces (UNIs) y network-to-network interfaces (NNIs): usage/network parameter control. (UPC y NPC).. El modelo de referencia dado por el UIT-T y el Foro ATM para UPC y NPC es el generic cell rate algorithm (GCRA), que es una versión del algoritmo leaky bucket. El tráfico de CBR se vigilará normalmente a una PCR y CDVt solamente, mientras que el tráfico de VBR se vigilará normalmente utilizando un controlador de celda con doble fuga a una PCR y CDVt y a una SCR y Tamaño Máximo de Ráfaga (MBS). El MBS normalmente será el packet (SAR-SDU) para el VBR VC en las celdas.
La vigilancia básica funciona celda por celda, pero esto no es óptimo para el tráfico de paquetes encapsulados (ya que descartar una sola celda invalidará todo el paquete). Como resultado, se han creado esquemas tales como el descarte parcial de paquetes (PPD) y el descarte temprano de paquetes (EPD) que descartarán toda una serie de celdas hasta que comience el siguiente paquete. Esto reduce el número de celdas inútiles en la red, ahorrando ancho de banda para paquetes completos. EPD y PPD trabajan con conexiones AAL5 cuando utilizan el marcador de fin de paquete: el bit de indicación ATM user-to-ATM user (AUU) en el campo de tipo carga útil de la cabecera, que se establece en la última celda de un SAR-SDU.

#### Conformación del tráfico

Traffic shaping normalmente tiene lugar en la network interface card. (NIC) en el equipo del usuario, e intenta asegurar que el flujo de celdas en un VC cumpla con su política de tráfico, es decir, que las celdas no se caigan o se reduzcan en prioridad en el UNI. Puesto que el modelo de referencia dado para la vigilancia del tráfico en la red es el GCRA, este algoritmo se utiliza normalmente también para la conformación, y pueden utilizarse implementaciones de cubos con fugas simples y dobles, según proceda.

### Tipos de circuitos virtuales y rutas

ATM puede construir circuitos virtuales y rutas virtuales de forma estática o dinámica. Los circuitos estáticos (circuitos virtuales permanentes o PVC) o caminos (caminos virtuales permanentes o PVP) requieren que el circuito esté compuesto por una serie de segmentos, uno por cada par de interfaces por los que pasa.
Las PVP y los PVC, aunque conceptualmente simples, requieren un esfuerzo significativo en las grandes redes. Tampoco son compatibles con el desvío del servicio en caso de fallo. Las PVPs de construcción dinámica (PVPs blandas o SPVPs) y PVCs (PVCs blandos o SPVCs), en cambio, se construyen especificando las características del circuito (el "contrato" de servicio) y los dos puntos finales.
Las redes ATM crean y eliminan circuitos virtuales conmutados (SVC) bajo demanda cuando así lo solicita un equipo final. Una aplicación para SVCs es llevar llamadas telefónicas individuales cuando una red de conmutadores telefónicos están interconectados usando ATM. Las VPC también se utilizaron en los intentos de sustituir las redes de área local por ATM.

### Enrutamiento del circuito virtual

La mayoría de las redes ATM que soportan SPVPs, SPVCs y SVCs utilizan la Interfaz de Nodo de Red Privada o la Interfaz de Red a Red Privada. (PNNI). PNNI utiliza el mismo algoritmo de ruta más corta que utilizan OSPF y IS-IS para encaminar paquetes IP con el fin de compartir información de topología entre conmutadores y seleccionar una ruta a través de una red. PNNI también incluye un poderoso mecanismo de resumen para permitir la construcción de redes muy grandes, así como un call admission control. (CAC) que determina la disponibilidad de ancho de banda suficiente en una ruta propuesta a través de una red para satisfacer los requisitos de servicio de un VC o VP.

#### Admisión de llamadas y establecimiento de conexión

Una red debe establecer una conexión antes de que dos partes puedan enviarse celdas entre sí. En ATM esto se llama circuito virtual. (VC). Puede ser un circuito virtual permanente (PVC), que se crea administrativamente en los puntos finales, o un circuito virtual conmutado (SVC), que se crea según las necesidades de las partes comunicantes. La creación del SVC se gestiona mediante señalización, en la que el solicitante indica la dirección del receptor, el tipo de servicio solicitado y los parámetros de tráfico aplicables al servicio seleccionado. "La red realiza la "admisión de llamadas" para confirmar que los recursos solicitados están disponibles y que existe una ruta para la conexión.

#### Modelo de referencia

ATM especifica las tres capas siguientes:
* capa de adaptación ATM (AAL)
* Capa ATM 2, que corresponde aproximadamente a la OSI capa de enlace de datos
* Capa física, equivalente a la OSI capa física

## Despliegue

Los ATM se hicieron populares entre las compañías telefónicas y muchos fabricantes de computadoras en la década de 1990. Sin embargo, incluso a finales de la década, el mejor precio/rendimiento de los productos basados en Protocolo de Internet estaba compitiendo con la tecnología ATM para integrar el tráfico de red en tiempo real y en ráfagas. Compañías como FORE Systems se centraron en productos ATM, mientras que otros grandes proveedores como Cisco Systems proporcionaron ATM como opción.. Después de la explosión de la burbuja de las puntocom, algunos todavía predicen que "ATM va a dominar". Sin embargo, en 2005, la ATM Forum, que había sido la organización comercial que promocionaba la tecnología, se fusionó con grupos que promocionaban otras tecnologías y, finalmente, se convirtió en Broadband Forum.

## ATM inalámbrico o ATM móvil

ATM inalámbrico, o ATM móvil, consiste en una red central de ATM con una red de acceso inalámbrico. Las celdas ATM se transmiten de las estaciones base a los terminales móviles. Las funciones de movilidad se realizan en un conmutador ATM de la red central, conocido como "crossover switch", que es similar al MSC (centro de conmutación móvil) de las redes GSM. La ventaja de los ATM inalámbricos es su gran ancho de banda y la alta velocidad de transferencia de datos en la capa 2. A principios de los años 90, Bell Labs y NEC trabajaron activamente en este campo. Andy Hopper del laboratorio de computación Universidad de Cambridge de también trabajó en esta área. Se formó un foro de ATM inalámbricos para estandarizar la tecnología detrás de las redes de ATM inalámbricos. El foro contó con el apoyo de varias empresas de telecomunicaciones, entre ellas NEC, Fujitsu y AT&T. El objetivo del Mobile ATM era proporcionar tecnología de comunicaciones multimedia de alta velocidad, capaz de ofrecer comunicaciones móviles de banda ancha más allá de las de GSM y WLAN.