Voz sobre Redes de Datos
Codificación de Voz
La voz es codificada digitalmente para su transmisión. Los dispositivos de codificación y decodificación se denominan CoDec (Codificadores / Decodificadores). Los procesos de codificación y decodificación,
Los codecs pueden ser clasificados según diferentes características, entre las que se encuentran su tasa de bits (bit rates), la calidad resultante del audio codificado, su complejidad, el tipo de tecnología utilizada y el retardo que introducen, entre otros
Transmisión de Voz sobre Redes de Datos
Para poder transmitir las muestras codificadas de voz sobre redes de datos, es necesario armar “paquetes”. Un canal de voz consiste en un flujo de bits, dependientes del codec utilizado. Si, por ejemplo, la voz está codificada con el codec G.711 en ley A, un canal de voz consiste en un flujo de 64 kb/s. (una “muestra” de voz, codificada con 8 bits, cada 125 μs). Para enviar este flujo sobre una red de datos, es necesario armar “paquetes”. Si bien se podría formar un paquete con cada muestra de voz, esto generaría un sobrecarga (“overhead”) demasiado importante (recordar que cada paquete requiere de cabezales
RTP – Real-Time Transport Protocol
El protocolo RTP es un protocolo de transporte sobre redes que no garantizan calidad de servicio para datos “de tiempo real”, como por ejemplo voz y video.
El protocolo establece la manera de generar paquetes que incluyen, además de los propios datos de “tiempo real” a transmitir, números de secuencia, marcas de tiempo, y monitoreo de entrega. Las aplicaciones típicamente utilizan RTP sobre protocolos de red “no confiables”, como UDP. Los “bytes” obtenidos de cada conjunto de muestras de voz o video son encapsulados en paquetes RTP, y cada paquete RTP es a su vez encapsulado en segmentos UDP
RTP soporta transferencia de datos a destinos múltiples, usando facilidades de “multicast”, si esto es provisto por la red.
RTCP – RTP Control Protocol
El protocolo RTCP se basa en transmisiones periódicas de paquetes de control que realizan todos los participantes de la sesión.
Es un protocolo de control para el flujo RTP, que permite transmitir información básica sobre los participantes de la sesión y la calidad de servicio.
El protocolo RTCP tiene las siguientes funciones principales:
- Proveer realimentación acerca de la calidad de los datos distribuidos (por ejemplo, de la calidad percibida de VoIP).
- Transporte del CNAME (Canonical Name) de cada originador. Este identificador permite asociar varios flujos RTP con el mismo origen (por ejemplo, flujos de audio y video provenientes del mismo emisor)
- Adaptar dinámicamente la frecuencia de envío de paquetes de control RTCP de acuerdo al número de participantes en la sesión. Dado que los paquetes se deben intercambiar “todos contra todos”, es posible saber cuantos participantes hay, y de esta manera calcular la frecuencia de envíos de esto paquetes.
Los paquetes RTCP pueden ser de los siguientes tipos:
- SR (Sender Report): Envía estadísticas de los participantes “origen” (sender)
- RR (Receiver Report): Envía estadísticas de los participantes “destino” (receivers)
- SDES (Source Description): Envía ítems de descripción del origen
- BYE: Indica el fin de la participación en el intercambio de mensajes RTCP
- APP: Funciones específicas para las aplicaciones participantes
Ancho de Banda en IP para Voz
Dado que para el envío de voz sobre redes de datos es necesario armar “paquetes”, el ancho de banda requerido dependerá de la “sobrecarga” (“overhead”) que generen estos paquetes.
Como se ha visto, para el envío de voz sobre redes de paquetes se utiliza el estándar RTP. Éste protocolo a su vez se monta sobre UDP, el que a su vez se monta sobre IP, el que, en la LAN, viaja sobre Ethernet.
Esta suma de protocolos hace que el ancho de banda requerido para el tráfico de voz sobre Ethernet sea bastante mayor al ancho de banda del audio. A continuación se presenta un ejemplo, para el codec G.711.
- Bytes de voz/trama = 64 kb/s * 20 ms / 8 = 160 bytes
El paquete IP (incluyendo los protocolos RTP y UDP) agrega 40 bytes adicionales
- Bytes de paquete IP = 160 + 40 = 200 bytes
La trama Ethernet agrega otros 26 bytes:
- Bytes de Trama Ethernet = 200 + 26 = 226 bytes
En este ejemplo, cada 20ms se generan 226 bytes que se deben enviar por la LAN. Esto equivale a un ancho de banda de 90,4 kb/s (compárese con los 64 kb/s del flujo de audio)
- Ancho de banda LAN = 226 * 8 / 20 ms = 90.4 kb/s
Es de hacer notar que este cálculo fue hecho para el envío de audio en una dirección.
Por lo visto anteriormente, el ancho de banda de la voz paquetizada en la LAN depende del tamaño de la “ventana” (típicamente 10, 20 o 30 ms) y el codec utilizado.