Debido a la proliferación en el mercado de sistemas de transmisión de audio a través de redes IP, (AoIP), como Dante, Ravenna, Q-LAN o LiveWire la Audio Engineering Society publicó en el año 2013 el estándar AES67.
Todos estos sistemas utilizaban una serie de protocolos comunes utilizados para la transmisión de datos a través de redes IP e Internet unidos a tecnologías propias de cada fabricante que hacían imposible la comunicación entre dispositivos que usaran sistemas diferentes. El estándar AES67-2013 establecía una serie de normas y recomendaciones para garantizar la interoperabilidad entre todos estos sistemas.
A finales de 2015 la AES publica una actualización del estándar AES67, así como los resultados del evento Plugfest celebrado en la sede de la NPR (National Public Radio) en Washington en donde se demostró que la interoperabilidad entre distintos sistemas AoIP era posible siguiendo las recomendaciones del AES67.
En este capítulo vamos a estudiar los protocolos y publicaciones RFC (Request for Comments) definidos en el estándar AES67, así como su demostración práctica analizando el funcionamiento del sistema Dante.
El estándar AES67-2015 se define para la transmisión de audio profesional de alto rendimiento a través de redes IP. Como audio profesional de alto rendimiento la AES establece una frecuencia mínima de muestreo de 44100 Hz con 16 bits por muestra, recomendando el uso del formato de 48000 Hz y 24 bits. Además, establece un retardo máximo de 10 ms para que estos sistemas puedan utilizarse en instalaciones de audio en vivo.
CONFIGURACIÓN DE UNA RED DANTE. REDES IP SEGÚN EL MODELO OSI.
Para conectar dos equipos entre sí mediante Dante o cualquier otro protocolo de AoIP según la norma AES67 lo primero que hay que hacer es crear una red LAN (Local Area Network) de capa 3 según el modelo de referencia OSI (Open Systems Interconnection), definido por la ISO en la publicación ISO/IEC7498. El modelo OSI es una normativa dividida en siete capas que define las diferentes fases por las que deben pasar los datos para viajar de un dispositivo a otro. Este modelo especifica el protocolo que debe usarse en cada capa.
CAPA 1. FÍSICA.
La capa física se encarga de transmitir y recibir un flujo de bits transmitido a través de un medio físico. En esta capa se codifica la señal lógica de 0´s y 1´s para adecuarla al medio físico de transmisión. Dependiendo del medio físico de transmisión (radioeléctrico, cable de cobre, cable de fibra, etc.) se establece cuáles son los valores para los que se considera que la señal representa un 1 o un 0 además de establecerse cuál es el momento en el que un receptor sabe que empieza el flanco de un bit. Determina el funcionamiento del transductor lógico eléctrico de un conector de cobre, el transductor óptico eléctrico de una fibra óptica o las normas de una antena transmisora de Wi-Fi además de definir el nivel de voltios/dB necesarios para representar cada estado dependiendo del medio elegido.
Protocolos de la capa física: RDSI, DSL, USB, ETHERNET 1000BASE-T, 802.11 Wi-Fi, Optical Transport Network (OTN).
Hardware de la capa física: Hub, tarjeta de red, modem, conversor de fibra óptica.
CAPA 2. ENLACE.
La capa de enlace garantiza la transmisión libre de errores de tramas de datos (frames) de un nodo a otro de la capa física. Establece y termina la conexión lógica entre dos nodos físicos. En esta capa se transmiten tramas de datos de forma secuencial realizando además un chequeo para que en caso de pérdida de tramas se vuelvan a retransmitir.
La capa de enlace transfiere datos entre nodos adyacentes de una red usando un identificador único para cada uno de los nodos denominado MAC (Media Access Control). En una red que siga los protocolos IEEE 802 como una red conectada por cable de cobre Ethernet (IEEE 802.3) o un transmisor y receptor Wi-Fi (IEEE 802.11) cada nodo tiene una dirección física MAC única. Esta dirección MAC se compone de 48 bits divididos en 6 octetos de 8 bits cada uno. Los 3 primeros octetos de cada MAC representan al fabricante del medio físico mientras que los otros 3 octetos representan de forma unívoca al adaptador físico. Cada octeto se escribe con su representación hexadecimal separado por dos puntos o un guión. Por ejemplo, la MAC de una tarjeta de red Ethernet Gigabit de Broadcom NetXtreme será 00-10-18-61-52-53, donde 00-10-18 representan los octetos que identifican al fabricante.
Cuando un nodo de una red manda una trama de bits a otro nodo incluye la MAC origen, que es la suya propia, y la MAC del adaptador del nodo de destino. Cuando la red se establece en una topología tipo anillo en que cada nodo está conectado en cadena al nodo anterior y al siguiente (Fig. 1) al recibir una trama analiza si la MAC destino es la suya y si no lo retransmite al siguiente nodo. Esto hace que el tráfico de tramas vaya pasando por todos los nodos hasta llegar al nodo destino. Una manera más eficiente es organizar la topología de la red en forma de estrella donde cada nodo se conecta a un equipo central (Fig. 1). Dentro de los equipos centrales en esta capa de enlace distinguimos entre dos tipos de dispositivos, los hubs y los switches.
Un hub recibe una trama de un nodo y lo retransmite a todos los demás nodos que estén conectados a él. Funciona básicamente como un repetidor de la señal.
Un switch es un dispositivo más complejo que tiene una memoria donde va almacenando la MAC de cada dispositivo que está conectado a cada uno de sus puertos físicos. Así al llegarle una trama de un nodo la retransmite al nodo que tiene la MAC destino y no a todos los nodos. Protocolos de la capa de red: Point to Point Protocol (PPP), Cisco Discovery Protocol (CDP), Link Layer Discovery Protocol (LLDP). Hardware de la capa de enlace: Bridge, switch de capa dos.
CAPA 3. RED.
El nivel superior de conexión de equipos enlazados físicamente es poder crear redes y subredes que nos permitan segmentar el tráfico de datos entre ellas permitiendo la interconectividad. Por ejemplo, podemos necesitar que unos datos lleguen a una serie de equipos, pero no a todos. Con enlaces físicos sólo podemos establecer una conexión a un equipo concreto o a todos los equipos de esa red. Este tipo de tráfico que llega a todos equipos de una red se denomina broadcast. Una red con mucho tráfico broadcast puede llevar a que se colapse y se produzcan colisiones entre paquetes.
A cada de los dispositivos de nuestra red le asignaremos una dirección que denominamos IP (Internet Protocol). Las direcciones IP se componen de 32 bits separados en 4 bytes de 8 bits cada uno. Cada byte puede alcanzar un valor entre 0 y 255. Se nombra la dirección IP por el valor decimal de cada byte separado por un punto, por ejemplo 192.168.1.37. Cada dirección viene acompañado de otro número, la máscara, también compuesto por 4 bytes. La máscara nos ayuda a establecer cuál es el rango de IP en el que trabajamos. La máscara se nombra por el número de bits con valor 1 que tiene, máscara de 22, 23, 24 bits, etc. Para averiguar la primera dirección IP dentro del rango dada una IP de ese rango y su máscara realizamos la operación lógica AND entre cada bit de la dirección IP y la máscara: X AND 1 = X, X AND 0=0.
Por ejemplo, dada una IP 192.168.1.37/24, el rango de direcciones irá entre 192.168.1.0/255. Como la primera y la última dirección se reservan tenemos que nuestro rango irá entre 192.168.1.1 y 192.168.1.254. Se suele hablar de un rango de direcciones tipo IP según su clase (Fig. 2). Las direcciones clase A son las que tienen máscara de 8 bits, B hasta 16 y máscara de 24 bits para la clase C. Las redes clase C son las más comunes para redes pequeñas. Existe otra clase de direcciones que usaremos bastante para AES67, las direcciones de clase D o multicast, que son las direcciones que se utilizan cuando queremos enviar paquetes a varios equipos a la vez.
Cada uno de los dispositivos debe tener una dirección única y en el mismo rango que el resto. Los equipos se mandarán datos entre sí fragmentados en paquetes, teniendo cada uno de estos paquetes en su cabecera unos bits que indican la dirección origen y su dirección destino.
Si tenemos equipos que están en distintas redes y queremos que haya conexión entre ellos necesitamos un router. Un router es un equipo capaz de encaminar paquetes a direcciones que están en diferentes redes. Para ello tiene varios dispositivos de red cada uno configurado en una red distinta. La dirección de un router dentro de una red se denomina gateway (puerta de enlace). En cada equipo configuramos como gateway la dirección IP del router en esa red. Cuando un equipo quiere mandar un paquete a una red distinta éste llega al router que determinará qué camino tiene que seguir para llegar a ella.
Si en nuestra red local tenemos switches además de asignar una IP única para cada dispositivo dentro del rango válido tenemos que tener en cuenta que en los switches se pueden asignar puertos a Virtual Local Area Networks (VLANs). Una VLAN es una segmentación de una red que se hace para separar el tráfico dentro de un mismo switch. Se crea la VLAN en el switch y se asignan puertos específicos de ese swtich para cada VLAN. Después para encaminar paquetes entre equipos que están en distintas VLANs necesitamos un router o switch con capacidad de enrutamiento en capa 3.
CAPA 4. TRANSPORTE.
La capa de transporte se encarga de organizar la transmisión de datos entre dos hosts que han establecido una conexión. Existen dos protocolos principales para el transporte de datos, TCP (Transmision Control Protocol) y UDP (User Datagram Protocol). Ambos protocolos se encargar de dividir la trama de datos en paquetes, añadirles las cabeceras de IP y de detección de errores y después multiplexar los paquetes para su envío. Sin embargo, existen diferencias entre ambos protocolos de transporte. En una transmisión vía TCP se comprueba mediante un algoritmo de checksum (suma de verificación) la fiabilidad de los datos recibidos. Si están correctos el receptor envía un mensaje de recibí (ACK Message) al transmisor. En caso contrario los paquetes perdidos o defectuosos se vuelven a enviar. Con TCP también existe un control de la velocidad con la que se transmite el flujo de datos. TCP puede almacenar los paquetes en un buffer para enviarlos después si detecta congestión de tráfico en la red. Garantiza la transmisión correcta de todos los paquetes sin garantizar una tasa de transmisión de datos constante.
En una transmisión UDP también se añade a cada paquete unos bits para generar el algoritmo de checksum para así poder detectar errores, pero al contrario que en TCP no se envían mensajes de ACK ni se pide el reenvío de paquetes. UDP se utiliza en conexiones donde no importa que se pueda recibir algún paquete defectuoso sino lo que prima es la velocidad de la transmisión. Protocolos utilizados: TCP y UDP.
CAPA 5. SESIÓN.
En la capa de sesión se establece una comunicación entre procesos que corren en diferentes estaciones. Dos procesos de aplicaciones que corren en diferentes máquinas pueden establecer, usar y finalizar una conexión a la que se denomina sesión.
En la capa de red se hace referencia a la dirección IP de dos equipos para que sean visibles entre ellos. Tomemos por ejemplo un equipo en el que corre una aplicación de transporte de ficheros (FTP) en modo servidor. Un equipo que tenga una aplicación cliente FTP y se quiera conectar al servidor debe hacer referencia no sólo a la IP del servidor, también al puerto específico de las aplicaciones FTP, que suele ser el 21. Un puerto es el punto final de una conexión entre equipos a través de una red, el conector lógico (socket) al que se enchufa la red establecida entre los dos equipos.
El puerto de origen y destino es un número de 16 bits que se especifica en la capa de transporte. Su rango va de 0 a 65535. Un proceso de un ordenador especifica sus canales de entrada y de salida de datos a través de un Internet Socket que incluye protocolo, dirección IP y un puerto. Protocolos utilizados: RPC (Remote Procedure Call), AppleTalk.
CAPA 6. PRESENTACIÓN.
La capa de presentación es la encargada de transformar los datos que llegan de la red para que puedan ser presentados por la aplicación correspondiente.
Convierte estructuras de datos complejas en cadenas de bytes planas además de realizar tareas de compresión de datos. Los datos también se pueden encriptar para su envío, como ocurre en caso de contraseñas que se envían a través de formularios de internet.
Las cadenas de datos pueden disponerse de varias formas siguiéndose de forma mayoritaria dos criterios: o bien en una cadena se incluye un campo al principio que dice cuántos bits hay a continuación o bien se incluye al final de una cadena de bits una etiqueta que indica su final.
CAPA 7. APLICACIÓN
La capa de aplicación es la ventana o interfaz que permite a los usuarios y a otras aplicaciones acceder a servicios a través de la red. Así el usuario puede conectarse a una página web, enviar ficheros o abrir un fichero de audio o vídeo vía streaming independientemente del protocolo de transporte utilizado, la dirección IP o los puertos que se especifican en el resto de capas.
MODELO OSI EN AES67 Y DANTE
A nivel de capa física y de enlace AES67 no pone ninguna limitación respecto al medio a utilizar, en teoría las conexiones entre dispositivos de una red podrían hacerse por cables de cobre de 8 pares con conectores RJ-45 Ethernet, por fibra o por Wi-Fi. Sin embargo, en Dante sí se establece que las conexiones físicas se hagan utilizando cable de cobre y conectores RJ-45 con conexiones Fast Ethernet (100 Mbps) y Gigabit Ethernet (1 Gbps). Hay dos tipos de equipos que usan Dante, los equipos que tienen una tarjeta física con puertos Ethernet, como mesas de mezclas o previos de micro y conversores A/D, y los ordenadores que tienen instalada una aplicación que simula una tarjeta de sonido virtual, el software Dante Virtual Soundcard (DVS). Estos ordenadores utilizan como puerto de salida Dante un adaptador de red físico Ethernet. Si en un ordenador tengo varios adaptadores de red instalados tengo que elegir el adaptador físico por el que establecer la red Dante para la DVS. Dante no permite seleccionar ni adaptadores de red Wi-Fi o virtuales, como conectores para redes VPN o los utilizados en las máquinas virtuales.
En un ordenador con adaptadores de red físicos Gigabit Ethernet, adaptadores de bucle invertido, de VPN o VM Ware Virtual Adapter (Fig. 3) el software de Dante Virtual Soundcard instalado en ese equipo sólo nos deja seleccionar los adaptadores físicos Gigabit Ethernet (Fig. 4).
Los equipos con una tarjeta Dante física tienen puertos Ethernet (Fig. 5), normalmente dos, denominados primario y secundario y cuya utilidad explicaremos posteriormente
El uso de conexiones Ethernet se limita a la conexión física de un dispositivo Dante. Estos dispositivos se pueden conectar a routers o switches con puertos Ethernet que luego se conecten a otros equipos de la red a través de fibra, Wi-Fi o radioenlace como veremos en capítulos posteriores.
AES67 define que los que equipos que quieran transmitirse audio entre ellos deben tener una dirección IP válida y que esas direcciones estén dentro del mismo rango. Los rangos de direcciones IP válidos son todos los de las 3 primeras clases, exceptuando las direcciones reservadas dentro de cada clase.
AES67 utiliza protocolos que trabajan mediante tráfico multicast para el descubrimiento de los dispositivos, la sincronización de estos y el envío de audio. El tráfico multicast en una red es el que desde un sólo origen se manda a múltiples destinos en vez de una comunicación punto a punto (Unicast) o a todas las direcciones de la red (Broadcast). En la comunicación multicast el equipo origen manda los paquetes de datos a una dirección única, la dirección multicast group address. Envía los paquetes una sola vez. Los receptores se suscriben a ese grupo informando a la red que quieren recibir los paquetes enviados a la dirección multicast. De esa manera los paquetes enviados a una dirección multicast sólo llegan a los equipos que estén suscritos a ese grupo. Para que una red permita el tráfico de paquetes multicast todos los routers y switches de la red deben tener habilitado y configurado el uso de IGMPv2 según está definido en el RFC 2236 e IGMPv3 según la definición de la IETF RFC 3376. Estas definiciones permiten crear los grupos multicast y establece las reglas para que un host pueda adherirse al grupo. También hay que habilitar en routers y switches el Protocol Independent Mode (PIM). Si en una red son pocos los nodos que van a estar suscritos al Multicast Address Group se suele habilitar el Sparse Mode (modo de densidad escasa) dentro de las distintas variantes de PIM. El sparse mode crea un árbol de rutas específico desde cada uno de los emisores a los receptores del grupo multicast. De esa manera se optimiza el uso de la red porque corta el tráfico de paquetes multicast a los equipos que no están suscritos al grupo.
Dentro de la capa de transporte AES67 usa siempre UDP, tanto para el envío de la señal de reloj como del audio transmitido en tiempo real.