Introducción
Este documento describe los cálculos del ancho de banda del códec de voz y las funciones para modificar o conservar el ancho de banda cuando se utiliza Voz sobre IP (VoIP).
Antecedentes
Uno de los factores más importantes que se deben considerar al construir redes de voz en paquetes es la correcta planificación de la capacidad. Dentro de la planificación de la capacidad, el cálculo de ancho de banda es un factor importante que se debe tener en cuenta al diseñar y solucionar problemas de las redes de voz en paquetes para obtener una buena calidad de voz.
Nota: como complemento a este documento, puede utilizar la herramienta TAC Voice Bandwidth Codec Calculator (sólo para clientes registrados). Esta herramienta proporciona información sobre cómo calcular el ancho de banda necesario para las llamadas de los paquetes de voz.
VoIP - Ancho de banda por llamada
Para los cálculos, se utilizan estas suposiciones de encabezado del protocolo:
-
40 bytes para encabezados IP (20 bytes) / User Datagram Protocol (UDP) (8 bytes) / User Datagram Protocol (RTP) (12 bytes).
-
El protocolo comprimido en tiempo real (cRTP) reduce los encabezados IP/UDP/RTP a 2 o 4 bytes (cRTP no está disponible en Ethernet).
-
6 bytes para el Multilink Point-to-Point Protocol (MP) o para el encabezado de Layer 2 (L2) del Frame Relay Forum (FRF).12.
-
1 byte para el indicador de fin de trama en las tramas MP y Frame Relay.
-
18 bytes para los encabezados Ethernet L2, incluidos 4 bytes de la Secuencia de verificación de tramas (FCS) o la Prueba cíclica de redundancia (CRC).
Nota: Esta tabla sólo contiene cálculos para los tamaños de carga útil de voz predeterminados en Cisco Call Manager o gateways H.323 del software Cisco IOS®. Para los cálculos adicionales, incluidos los diferentes tamaños de carga útil de voz y otros protocolos, como Voice over Frame Relay (VoFR) y Voice over ATM (VoATM), utilice la herramienta Calculadora de ancho de banda del códec de voz del TAC (solo para clientes registrados).
Información de códec |
Cálculos de ancho de banda |
Velocidad de bits y códec (kbps) |
Ejemplo de tamaño del códec (bytes) |
Ejemplo de intervalo del códec (ms) |
Mean Opinion Score (MOS) |
Tamaño de la carga útil de voz (bytes) |
Tamaño de la carga útil de voz (ms) |
Paquetes por segundo (PPS) |
Ancho de banda MP o FRF.12 (Kbps) |
Ancho de banda c/cRTP MP o FRF.12 (kbps) |
Ancho de banda Ethernet (Kbps) |
G.711 (64 Kbps) |
80 bytes |
10 ms |
4,1 |
160 bytes |
20 ms |
50 |
82.8 Kbps |
67.6 Kbps |
87.2 Kbps |
G.729 (8 Kbps) |
10 bytes |
10 ms |
3,92 |
20 bytes |
20 ms |
50 |
26.8 Kbps |
11.6 Kbps |
31.2 Kbps |
G.723.1 (6.3 Kbps) |
24 bytes |
30 ms |
3,9 |
24 bytes |
30 ms |
33,3 |
18.9 Kbps |
8.8 Kbps |
21.9 Kbps |
G.723.1 (5.3 Kbps) |
20 bytes |
30 ms |
3,8 |
20 bytes |
30 ms |
33,3 |
17.9 Kbps |
7.7 Kbps |
20.8 Kbps |
G.726 (32 Kbps) |
20 bytes |
5 ms |
3,85 |
80 bytes |
20 ms |
50 |
50.8 Kbps |
35.6 Kbps |
55.2 Kbps |
G.726 (24 Kbps) |
15 bytes |
5 ms |
|
|
20 ms |
50 |
42.8 Kbps |
27.6 Kbps |
47.2 Kbps |
G.728 (16 Kbps) |
10 bytes |
5 ms |
3,61 |
60 bytes |
30 ms |
33,3 |
28.5 Kbps |
18.4 Kbps |
31.5 Kbps |
G722_64k (64 Kbps) |
80 bytes |
10 ms |
4,13 |
160 bytes |
20 ms |
50 |
82.8 Kbps |
67.6 Kbps |
87.2 Kbps |
ilbc_mode_20 (15,2 kbps) |
38 bytes |
20 ms |
NA |
38 bytes |
20 ms |
50 |
34,0 Kbps |
18.8 Kbps |
38,4 Kbps |
ilbc_mode_30 (13,33 kbps) |
50 bytes |
30 ms |
NA |
50 bytes |
30 ms |
33,3 |
25.867 Kbps |
15,73 kbps |
28.8 Kbps |
Explicación de términos
Velocidad de bits del códec (Kbps) |
Según el códec, es la cantidad de bits que es preciso transmitir por segundo para enviar una llamada de voz. (velocidad de bits del códec = ejemplo de tamaño del códec / ejemplo de intervalo del códec). |
Ejemplo de tamaño del códec (bytes) |
Según el códec, es el número de bytes capturados por el Procesador de señales digitales (DSP) en cada ejemplo de intervalo del códec. Por ejemplo, el codificador G.729 opera en muestras de intervalos de 10 ms, lo que corresponde a 10 bytes (80 bits) por muestra a una velocidad de bits de 8 kbps. (velocidad de bits del códec = ejemplo de tamaño del códec / ejemplo de intervalo del códec). |
Ejemplo de intervalo del códec (ms) |
Es el ejemplo de intervalo al que funciona el códec. Por ejemplo, el codificador G.729 opera en muestras de intervalos de 10 ms, lo que corresponde a 10 bytes (80 bits) por muestra a una velocidad de bits de 8 kbps. (velocidad de bits del códec = ejemplo de tamaño del códec / ejemplo de intervalo del códec). |
Mean Opinion Score (MOS) |
MOS es un sistema que clasifica la calidad de la voz en las conexiones telefónicas. Con MOS, una amplia gama de oyentes juzgan la calidad de un ejemplo de voz en una escala que va del uno (mala) al cinco (excelente). Los puntajes se promedian para obtener el MOS del códec. |
Tamaño de la carga útil de voz (bytes) |
El tamaño de la carga útil de voz representa el número de bytes (o bits) que rellenan un paquete. El tamaño de la carga útil de voz debe ser un múltiplo del ejemplo de tamaño del códec. Por ejemplo, los paquetes G.729 pueden usar 10, 20, 30, 40, 50 o 60 bytes del tamaño de la carga útil de voz. |
Tamaño de la carga útil de voz (ms) |
El tamaño de la carga útil de voz también se puede representar en términos de ejemplos del códec. Por ejemplo, un tamaño de carga útil de voz G.729 de 20 ms (dos ejemplos de códec de 10 ms) representa una carga útil de voz de 20 bytes [ (20 bytes *
/ (20 ms) = 8 Kbps ] |
PPS |
PPS representa el número de paquetes que es preciso transmitir por segundo para alcanzar la velocidad de bits del códec. Por ejemplo, para una llamada G.729 con un tamaño de carga útil de voz por paquete de 20 bytes (160 bits), es preciso transmitir 50 paquetes por segundo [50 pps = (8 Kbps) / (160 bits por paquete)] |
Fórmulas de cálculo de ancho de banda
Se utilizan estos cálculos:
-
Tamaño total del paquete = (encabezado L2: MP o FRF.12 o Ethernet) + (encabezado IP/UDP/RTP) + (tamaño de carga útil de voz)
-
PPS = (velocidad de bits en codec) / (tamaño de la carga útil de voz)
-
Ancho de banda = tamaño de paquete total * PPS
Ejemplo de cálculo
Por ejemplo, el ancho de banda requerido para una llamada G.729 (velocidad de bits del códec de 8 kbps) con cRTP, MP y carga útil de voz predeterminada de 20 bytes es:
-
Tamaño del paquete total (bytes) = (encabezado de MP de 6 bytes) + (encabezado de IP/UDP/RTP comprimido de 2 bytes) + (carga útil de voz de 20 bytes) = 28 bytes
-
Tamaño total del paquete (bits) = (28 bytes) * 8 bits por byte = 224 bits
-
PPS = (8 Kbps de velocidad de bits del códec) / (160 bits) = 50 pps
Nota: 160 bits = 20 bytes (carga útil de voz predeterminada) * 8 bits por byte
-
Ancho de banda por llamada = tamaño de paquete de voz (224 bits) * 50 pps = 11.2 Kbps
Configuración de tamaños de carga útil de voz en Cisco Call Manager y gateways de Cisco IOS
El tamaño de carga útil de voz por paquete se puede configurar en Cisco Call Manager y gateways de Cisco IOS.
Nota: Si el gateway de Cisco IOS está configurado en Cisco Call Manager como gateway de Media Gateway Control Protocol (MGCP), toda la información del códec (tipo de códec, tamaño de carga útil, detección de actividad de voz, etc.) es controlada por Cisco CallManager.
En Cisco Call Manager, el tamaño de la carga útil de voz por paquete se puede configurar en todo el sistema. Este atributo se configura en Cisco Call Manager Administration (Service > Service Parameters > select_server > Cisco Call Manager) con estos tres parámetros de servicio:
-
PreferredG711MillisecondPacketSize (valor predeterminado: 20 ms) Configuración disponible: 10, 20 y 30 ms.)
-
PreferredG729MillisecondPacketSize (valor predeterminado: 20 ms) Configuración disponible: 10, 20, 30, 40, 50 y 60 ms.)
-
PreferredG723MillisecondPacketSize (valor predeterminado: 30 ms) Configuración disponible: 30 y 60 ms.)
En Cisco Call Manager, el tamaño de la carga útil de voz se configura en términos de muestras de milisegundos (ms). Según el códec, esta tabla representa algunos ejemplos en ms en relación al tamaño de la carga útil real expresado en bytes.
Códec |
Tamaño de la carga útil de voz (ms) |
Tamaño de la carga útil de voz (bytes) |
Comentarios |
G.711 |
20 ms (valor predeterminado) |
160 bytes |
Observe que la velocidad de bits del códec se mantiene siempre. Por ejemplo: códec G.711 = [240 bytes * 8(bits/bytes)] / 30 ms = 64 Kbps |
30 ms |
240 bytes |
G.729 |
20 ms (valor predeterminado) |
20 bytes |
30 ms |
30 bytes |
G.723 |
30 ms (valor predeterminado) |
|
|
En los gateways de Cisco IOS, se agregó una función en Cisco IOS Software Release 12.0(5)T que permite cambiar el tamaño de la carga útil de voz (en bytes) para los paquetes VoIP a través de la CLI. La nueva sintaxis del comando es la siguiente:
Cisco-Router(config-dial-peer)#codec g729r8 bytes ?
Each codec sample produces 10 bytes of voice payload.
Valid sizes are:
10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120,
130, 140, 150, 160, 170, 180, 190, 200, 210, 220, 230
Any other value within the range will be rounded down to nearest valid size.
<10-230> Choose a voice payload size from the list above
Impacto de los cambios en el tamaño de carga útil de voz
El número de ejemplos del códec por paquete es otro factor que determina el ancho de banda y el retraso de una llamada VoIP. El códec define el tamaño del ejemplo, pero el número total de ejemplos incluidos en un paquete afecta a cuántos paquetes se envían por segundo.
Al aumentar el tamaño de la carga útil de voz, se reduce el ancho de banda de VoIP y aumenta el retraso general. Así lo ilustra este ejemplo:
-
Llamada G.729 con un tamaño de carga útil de voz de 20 bytes (20 ms): (40 bytes de encabezados IP/UDP/RTP + carga útil de voz de 20 bytes)* 8 bits por byte * 50 pps = 24 Kbps
-
Llamada G.729 con un tamaño de carga útil de voz de 40 bytes (40 ms): (40 bytes de encabezados IP/UDP/RTP + carga útil de voz de 40 bytes) * 8 bits por byte * 25 pps = 16 Kbps
Notas:
- Los encabezados L2 no se tienen en cuenta en este cálculo.
- Los cálculos demuestran que mientras el tamaño de la carga útil se duplica, posteriormente la cantidad de paquetes requeridos por segundo se reduce a la mitad.
- Según se define en las especificaciones G.114 del Sector de Normalización de Telecomunicaciones de la Unión Internacional de Telecomunicaciones (ITU-T), el valor recomendado de retraso unidireccional total de voz es 150 ms. Para una red privada, 200 ms es un objetivo razonable, y 250 ms debe ser el máximo.
Detección de actividad de voz
Con las redes de voz con conmutación de circuitos, todas las llamadas de voz utilizan enlaces de ancho de banda fijos de 64 kbps, independientemente de cuánto de la conversación sea discurso y cuánto silencio. Con las redes VoIP, toda la conversación y el silencio son empaquetados. Con la Detección de actividad de voz (VAD), se pueden omitir los paquetes de silencio.
Con el tiempo y como promedio de un volumen de más de 24 llamadas, VAD puede proporcionar hasta un 35 por ciento de ahorro de ancho de banda. Los ahorros no se realizan en cada llamada de voz individual o en algún punto específico de medición. Para los fines de diseño de red y de ingeniería de ancho de banda, VAD no debe ser considerada, especialmente en links que transportan menos de 24 llamadas de voz simultáneamente. Varias funciones como la música en espera y el fax hacen que VAD resulte ineficaz. Cuando se realiza una ingeniería de la red para ancho de banda completo para llamadas de voz, todos los ahorros que proporciona la detección de actividades de voz (VAD) quedan a disposición de las aplicaciones de datos.
VAD también proporciona Generación de ruido de apaciguamiento (CNG). Debido a que puede confundir silencio con una llamada desconectada, CNG proporciona ruido blanco generado localmente para que la llamada aparezca normalmente conectada a ambas partes. G.729 Annex-B y G.723.1 Annex-A incluyen una función VAD integrada, pero por lo demás realiza lo mismo que G.729 y G.723.1, respectivamente.
En Cisco Call Manager, VAD se puede habilitar (está deshabilitado de forma predeterminada) con estos parámetros de servicio:
-
SilenceSuppressionSystemWide: este parámetro selecciona la configuración de VAD para todos los terminales skinny (por ejemplo, teléfonos IP de Cisco y gateways Skinny).
-
SilenceSuppressionWithGateways - Este parámetro selecciona la configuración VAD para todas las puertas de enlace MGCP. Esto no tiene efecto en los gateways H.323. VAD en los gateways H.323 debe ser inhabilitada en el gateway.
Puede encontrar estos parámetros de servicio en Cisco Call Manager Administration (Service > Service Parameters > select_server > Cisco CallManager).
Compresión del encabezamiento RTP o RTP comprimido (cRTP)
Todos los paquetes VoIP se componen de dos componentes: muestras de voz y encabezados IP/UDP/RTP. A pesar de que los ejemplos de voz se comprimen mediante el Procesador de señales digitales (DPS) y pueden variar de tamaño según el códec que se utilice, estos encabezados tienen una longitud constante de 40 bytes. En comparación con los 20 bytes de las muestras de voz en una llamada G.729 predeterminada, estos encabezados conforman una cantidad importante de sobrecarga. Con cRTP, estos encabezados pueden ser comprimidos en dos o cuatro bytes. Esta compresión ofrece ahorros significativos de ancho de banda VoIP. Por ejemplo, una llamada VoIP G.729 predeterminada consume 24 Kb sin cRTP, pero sólo 12 Kb si tiene habilitado cRTP.
Dado que cRTP comprime las llamadas VoIP de link a link, ambos extremos del link IP deben configurarse para cRTP.
En las versiones 12.0.5T y anteriores del software Cisco IOS, el cRTP está conmutado por proceso, por lo que limita seriamente la escalabilidad de las soluciones cRTP debido al desempeño de la CPU. Se han resuelto la mayoría de estos problemas por medio de varias mejoras de rendimiento del cRTP introducidos en las versiones del software IOS de Cisco 12.0.7T a 12.1.2T. Éste es un resumen del historial.
-
El cRTP es conmutado por proceso en la versión 12.0.5T y anterior del software del IOS de Cisco.
-
En Cisco IOS Software Release 12.0.7T, y luego en 12.1.1T, se introduce el soporte de fast switching y Cisco Express Forwarding-switching para cRTP.
-
En el software Cisco IOS versión 12.1.2T, se introducen mejoras algorítmicas del rendimiento.
Al mover cRTP a la ruta de conmutación rápida, aumenta significativamente el número de sesiones RTP (llamadas VoIP) que pueden procesar los gateways VoIP y los routers intermedios.
Heurística para la compresión
Dado que el RTP no tiene un encabezado de paquete propio y diferente, la transmisión RTP (para cRTP) se distingue de la transmisión UDP (cUDP) mediante el uso de la heurística. La heurística exacta usada actualmente para detectar los paquetes RTP para la compresión es:
-
El número de puerto de destino es par.
-
El número de puerto de destino se encuentra entre 16384-32767 o 49152-65535.
-
El campo de la versión de RTP está configurado en dos.
-
El campo de la extensión de RTP está configurado en cero.
Información Relacionada