Introdução
Este documento descreve os cálculos e recursos de largura de banda de codec de voz para modificar ou conservar a largura de banda quando o VoIP (Voice over IP) for usado.
Informações de Apoio
Um dos fatores mais importantes a serem considerados ao criar redes de voz de pacote é o planejamento adequado da capacidade. No planejamento da capacidade, o cálculo de largura de banda é um fator importante a considerar quando você projeta e resolve problemas nas redes de voz de pacote para obter uma boa qualidade de voz.
Observação: como um complemento a este documento, você pode usar a ferramenta TAC Voice Bandwidth Codec Calculator (somente clientes registrados). Essa ferramenta fornece informações sobre como calcular a largura de banda exigida para chamadas de voz de pacote.
VoIP - largura de banda por chamada
Estas suposições de cabeçalho de protocolo são utilizadas para os cálculos:
-
40 bytes para IP (20 bytes)/cabeçalhos de Protocolo UDP (8 bytes)/Real-Time Transport Protocol (RTP) (12 bytes).
-
O Compressed Real-Time Protocol (cRTP) reduz os cabeçalhos IP/UDP/RTP para 2 ou 4 bytes (cRTP não está disponível na Ethernet).
-
6 bytes para cabeçalho de Camada 2 (L2) Multilink Point-to-Point Protocol (MP) ou Frame Relay Forum (FRF).12.
-
1 byte para o indicador de fim de quadro em quadros MP e Frame Relay.
-
18 bytes para cabeçalhos L2 Ethernet, que incluem 4 bytes de Sequência de verificação de quadro (FCS) ou Verificação de redundância cíclica (CRC).
Observação: esta tabela contém apenas cálculos para os tamanhos de payload de voz padrão nos gateways H.323 do Cisco Call Manager ou do software Cisco IOS®. Para cálculos adicionais, que incluem tamanhos diferentes de payload de voz e outros protocolos, como Voice over Frame Relay (VoFR) e Voice over ATM (VoATM), use a ferramenta TAC Voice Bandwidth Codec Calculator (somente para clientes registrados).
Informações sobre Codec |
Cálculos de Largura de Banda |
Codec e Taxa de Bits (Kbps) |
Tamanho de Exemplo do Codec (Bytes) |
Intervalo de Exemplo do Codec (ms) |
Mean Opinion Score (MOS) |
Tamanho de Payload de Voz (Bytes) |
Tamanho de Payload de Voz (ms) |
Pacotes por Segundo (PPS) |
Largura de Banda MP ou FRF.12 (Kbps) |
Largura de Banda com cRTP ou FRF.12 (Kbps) |
Ethernet de Largura de Banda (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 |
Explicação dos termos
Taxa de Bits do Codec (Kbps) |
Com base no codec, esse é o número de bits por segundo que precisam ser transmitidos para entregar uma chamada de voz. (taxa de bits do codec = tamanho de exemplo do codec/intervalo de exemplo do codec). |
Tamanho de Exemplo do Codec (Bytes) |
Com base no codec, esse é o número de bytes capturado pelo Processador do Sinal Digital (DSP) em cada intervalo de exemplo do codec. Por exemplo, o codificador G.729 opera em intervalos de amostra de 10 ms, o que corresponde a 10 bytes (80 bits) por amostra a uma taxa de bits de 8 kbps. (taxa de bits do codec = tamanho de exemplo do codec/intervalo de exemplo do codec). |
Intervalo de Exemplo do Codec (ms) |
Esse é o intervalo de exemplo em que o codec funciona. Por exemplo, o codificador G.729 opera em intervalos de amostra de 10 ms, o que corresponde a 10 bytes (80 bits) por amostra a uma taxa de bits de 8 kbps. (taxa de bits do codec = tamanho de exemplo do codec/intervalo de exemplo do codec). |
Mean Opinion Score (MOS) |
MOS é um sistema usado para classificar a qualidade de voz das conexões telefônicas. Com o MOS, um amplo intervalo de ouvintes julga a qualidade de um exemplo de voz em uma escala de um (ruim) a cinco (excelente). A média das pontuações é calculada para fornecer o MOS para o codec. |
Tamanho de Payload de Voz (Bytes) |
O tamanho de payload de voz representa o número de bytes (ou bits) que são preenchidos em um pacote. O tamanho de payload de voz deve ser um múltiplo do tamanho de exemplo do codec. Por exemplo, os pacotes G.729 podem utilizar 10, 20, 30, 40, 50 ou 60 bytes do tamanho de payload de voz. |
Tamanho de Payload de Voz (ms) |
O tamanho de payload de voz também pode ser representado em termos dos exemplos do codec. Por exemplo, um tamanho de payload de voz G.729 de 20 ms (duas amostras de codec de 10 ms) representa um payload de voz de 20 bytes [ (20 bytes *
/ (20 ms) = 8 Kbps ] |
PPS |
PPS representa o número de pacotes que precisam ser transmitidos a cada segundo para entregar a taxa de bits do codec. Por exemplo, para uma chamada G.729 com tamanho de payload de voz por pacote de 20 bytes (160 bits), é necessário transmitir 50 pacotes a cada segundo [50 pps = (8) Kbps/(160 bits por pacote)] |
Fórmulas para cálculo de largura de banda
Estes cálculos são utilizados:
-
Tamanho total do pacote = (cabeçalho L2: MP ou FRF.12 ou Ethernet) + (cabeçalho IP/UDP/RTP) + (tamanho do payload de voz)
-
PPS = (taxa de bit de codec) / (tamanho do payload de voz)
-
Largura de banda = tamanho total do pacote * PPS
Exemplo de cálculo
Por exemplo, a largura de banda necessária para uma chamada G.729 (taxa de bits do codec de 8 kbps) com cRTP, MP e os 20 bytes padrão de carga de voz é:
-
Tamanho total do pacote (bytes) = (cabeçalho de MP de 6 bytes) + (cabeçalho comprimido de IP/UDP/RTP de 2 bytes) + (payload de voz de 20 bytes) = 28 bytes
-
Tamanho total do pacote (bits) = (28 bytes) * 8 bits por byte = 224 bits
-
PPS = (taxa de bits do codec de 8 Kbps/(160 bits) = 50 pps
Observação: 160 bits = 20 bytes (payload de voz padrão) * 8 bits por byte
-
Largura de banda por chamada = tamanho do pacote de voz (224 bits) * 50 pps = 11,2 Kbps
Configurar tamanhos de payload de voz no Cisco Call Manager e nos gateways do Cisco IOS
O tamanho do payload de voz por pacote pode ser configurado nos gateways do Cisco Call Manager e do Cisco IOS.
Observação: se o gateway do Cisco IOS estiver configurado no Cisco Call Manager como um gateway de Media Gateway Control Protocol (MGCP), todas as informações de codec (tipo de codec, tamanho de payload, detecção de atividade de voz, etc.) serão controladas pelo Cisco CallManager.
No Cisco Call Manager, o tamanho do payload de voz por pacote é configurável em todo o sistema. Esse atributo é definido no Cisco Call Manager Administration (Service > Service Parameters > select_server > Cisco Call Manager) com estes três parâmetros de serviço:
-
PreferredG711MillisecondPacketSize - (Configuração padrão: 20 ms. Configurações disponíveis: 10, 20 e 30 ms.)
-
PreferredG729MillisecondPacketSize - (Configuração padrão: 20 ms. Configurações disponíveis: 10, 20, 30, 40, 50 e 60 ms.)
-
PreferredG723MillisecondPacketSize - (Configuração padrão: 30 ms. Configurações disponíveis: 30 e 60 ms.)
No Cisco Call Manager, o tamanho do payload de voz é configurado em termos de amostras de milissegundos (ms). Com base no codec, esta tabela mapeia alguns exemplos de ms para o tamanho de payload real em bytes.
Codec |
Tamanho de Payload de Voz (ms) |
Tamanho de Payload de Voz (Bytes) |
Comentários |
G.711 |
20 ms (padrão) |
160 Bytes |
Observe que a taxa de bits do codec é sempre mantida. Por exemplo: codec G.711 = [240 bytes * 8(bits/bytes)] / 30 ms = 64 Kbps |
30 ms |
240 bytes |
G.729 |
20 ms (padrão) |
20 bytes |
30 ms |
30 bytes |
G.723 |
30 ms (padrão) |
|
|
Nos gateways do Cisco IOS, um recurso foi adicionado ao Cisco IOS Software Release 12.0(5)T que permite que o tamanho do payload de voz (em bytes) para pacotes VoIP sejam alterados através do CLI. A nova sintaxe do comando é a seguinte:
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 uma mudança nos tamanhos de payload de voz
O número de exemplos do codec por pacote é outro fator que determina a largura de banda e o atraso de uma chamada VoIP. O codec define o tamanho do exemplo, mas o número total de exemplos colocados em um pacote afeta a quantidade de pacotes enviados por segundo.
Quando você aumenta o tamanho do payload de voz, a largura de banda de VoIP é reduzida e o atraso geral aumenta. Este exemplo ilustra isso:
-
Chamada G.729 com tamanho de payload de voz de 20 bytes (20 ms): (40 bytes de cabeçalhos IP/UDP/RTP + payload de voz de 20 bytes)* 8 bits por byte * 50 pps = 24 Kbps
-
Chamada G.729 com tamanho de payload de voz de 40 bytes (40 ms): (40 bytes de cabeçalhos IP/UDP/RTP + payload de voz de 40 bytes) * 8 bits por byte * 25 pps = 16 Kbps
Notas:
- Os cabeçalhos L2 não são considerados nesse cálculo.
- Os cálculos mostram que, enquanto o tamanho de payload é dobrado, o número de pacotes necessários por segundo é cortado pela metade subsequentemente.
- Conforme definido nas especificações do International Telecommunication Union Telecommunication Standardization Sector (ITU-T) G.114, o atraso geral unidirecional recomendado para voz é 150 ms. Para uma rede privada, 200 ms é uma meta razoável, e 250 ms deve ser o máximo.
Detecção de atividade de voz
Com redes de voz comutadas por circuito, todas as chamadas de voz utilizam links de largura de banda fixa de 64 Kbps, não importando o quanto é conversação e o quanto é silêncio. Com redes VoIP, toda a conversação e silêncio são inseridos no pacote. Com Detecção de Atividades de Voz (VAD), os pacotes de silêncio podem ser suprimidos.
Ao longo do tempo e como uma média em um volume de mais de 24 chamadas, a VAD pode proporcionar uma economia de até 35% de largura de banda. Não se percebe a economia em cada chamada de voz individual ou na medida de qualquer ponto específico. Para fins de projeto de rede e de engenharia de largura de banda, a VAD não deve ser levada em consideração, principalmente em links que carregam menos de 24 chamadas de voz simultaneamente. Diversos recursos como música de espera e fax tornam o VAD ineficaz. Quando a rede é desenvolvida para a largura de banda total para chamadas de voz, todas as economias oferecidas pelo VAD estão disponíveis para os aplicativos de dados.
A VAD também fornece o Comfort Noise Generation (CNG). Como você pode confundir o silêncio com uma chamada desconectada, o CNG fornece ruído branco gerado localmente, de modo que a chamada pareça estar normalmente conectada a ambas as partes. O G.729 Anexo-B e o G.723.1 Anexo-A incluem uma função VAD integrada, mas executa o mesmo que o G.729 e o G.723.1, respectivamente.
No Cisco Call Manager, o VAD pode ser habilitado (desabilitado por padrão) com estes parâmetros de serviço:
-
SilenceSuppressionSystemWide - Este parâmetro seleciona a configuração VAD para todos os pontos finais skinny (por exemplo, Telefones IP Cisco e Gateways Skinny).
-
SilenceSuppressionWithGateways - este parâmetro seleciona a configuração de VAD para todos os gateways MGCP. Isso não afeta os gateways H.323. A VAD nos gateways H.323 deve ser desabilitada no gateway.
Você pode encontrar esses parâmetros de serviço em Cisco Call Manager Administration (Service > Service Parameters > select_server > Cisco CallManager).
Compressão de cabeçalho de RTP ou RTP comprimido (cRTP)
Todos os pacotes VoIP são compostos de dois componentes: amostras de voz e cabeçalhos IP/UDP/RTP. Embora os exemplos de voz sejam compactados pelo Processador de Sinal Digital (DSP) e possam variar em tamanho com base no codec utilizado, esses cabeçalhos são uma constante de 40 bytes de comprimento. Quando comparados com os exemplos de voz de 20 bytes em uma chamada G.729 padrão, esses cabeçalhos formam uma quantidade considerável de carga adicional. Com cRTP, esses cabeçalhos podem ser compactados para dois ou quatro bytes. Esta compactação oferece economias de largura de banda VoIP significativas. Por exemplo, um chamada VoIP G.729 padrão consome 24 Kb sem cRTP, mas apenas 12 Kb com cRTP habilitado.
Como o cRTP faz a compressão de chamadas de VoIP em cada enlace, as duas extremidades do enlace de IP precisam ser configuradas para cRTP.
No software Cisco IOS versões 12.0.5T e anterior, o cRTP é alternado por processo, o que limita muito a escalabilidade das soluções de cRTP devido ao desempenho da CPU. A maioria desses problemas foram resolvidos com a introdução de várias melhorias no desempenho de cRTP no Cisco IOS Software Releases 12.0.7T a 12.1.2T. Este é um resumo da história.
-
O cRTP sofre Switch de processo no Cisco IOS Software Release 12.0.5T e anteriores.
-
No Cisco IOS Software Release 12.0.7T e, em seguida, no 12.1.1T, o suporte de switching rápido e switching do Cisco Express Forwarding para cRTP é apresentado.
-
Na versão do Cisco IOS Software 12.1.2T, foram introduzidos aprimoramentos de desempenho algorítmico.
Quando você move o cRTP para o caminho de switching rápido, ele aumenta significativamente o número de sessões RTP (chamadas VoIP) que os gateways VoIP e os roteadores intermediários podem processar.
Heurística da compressão
Como o RTP não tem um cabeçalho de pacote diferente, a distinção entre um fluxo RTP (para cRTP) e um fluxo UDP (cUDP) é realizada pelo uso de heurística. As heurísticas exatas utilizadas atualmente para detectar pacotes RTP para compactação são:
-
O número da porta de destino é uniforme.
-
O número da porta de destino está no intervalo 16384-32767 ou 49152-65535.
-
O campo da versão RTP é definido como dois.
-
O campo de extensão RTP é definido como zero.
Informações Relacionadas