O documento introduz conceitos fundamentais sobre VoIP, incluindo que VoIP transmite voz sobre protocolo IP, que existem vários protocolos envolvidos como IP, UDP, RTP e codecs como G.711 e G.729, e que a largura de banda real necessária é maior do que a do codec devido à sobrecarga dos protocolos.
2. Que é VoIP?
– A voz sobre IP ou VoIP consiste em transmitir voz sobre protocolo IP.
– O conceito é muito amplo e existem muitas alternativas de protocolo. É
uma verdadeira sopa de protocolo.
– A voz é empacotada para poder ser transmitida em uma rede IP.
– O protocolo IP não foi desenhado especificamente para transportar voz.
4. Protocolo IP
– Um dos protocolos mais conhecidos.
– Seu nome vem de Internet Protocol.
– Este protocolo oferece um serviço “sem garantias” também chamado de
“melhor esforço”.
– Os pacotes podem chegar desordenados e são reordenados no destino.
5. Protocolo IP
– Inclusive, pacotes podem se perder na viagem.
– Esta desordem e perdas de pacotes podem afetar a qualidade de voz.
– Apesar de tudo, tem-se encontrado maneiras inteligente de resolver estes
problemas da melhor maneira possível.
6. Direção IP (1)
– É um número único que identifica a um host conectado a uma rede IP.
– Consta de 32 bits ou 4 bits. Na prática se utiliza uma notação onde cada bits
se traduz em números decimais e se separa com um ponto. Um exemplo de
direção IP é 130.5.5.26
– Uma direção IP está composta por duas partes, uma identifica o host e a
outra identifica a rede a qual pertence o dito host.
– Para encontrar estas partes se utiliza outro parâmetro chamado máscara de
rede.
7. Direção IP (2)
– A máscara de rede é um número binário de 32 bits que também se representa
em uma notação similar a uma direção IP.
– Começa com números um e continua assim até alcançar a quantidade de
“uns” igual a porção de direção IP que corresponde a rede.
8. Direção IP (3)
– Por tanto, no exemplo anterior obteremos a direção IP 130.5.5.26 com
máscara 255.255.255.0 pertence a rede 130.5.5.0
– A máscara anterior foi uma máscara de 24 bits, já que havia 24 “uns”.
– Uma vez conhecida a rede onde se encontra o host que queremos localizar
já é mais fácil encaminhar os pacotes IP ao seu destino.
– Os roteadores armazenam tabelas de rotas ou regras de como localizar as
outras redes.
9. Pacotes IP (1)
– Um pacote IP contém toda informação necessária para chegar ao destino.
– Poderia se dividir em duas partes: cabeceira e carga útil.
– A cabeceira é a que contém a informação referente ao pacote.
– Essa cabeceira diminui ligeiramente a quantidade de informação que pode-se
transportar já que ocupa espaço.
– A carga útil pode encapsular por sua vez outros protocolos como por
exemplo UDP ou TCP.
11. Direcionamento IP
– Para que os pacotes cheguem ao destino é necessário roteadores.
– Os roteadores são dispositivos com tabelas de rotas.
– A tabela de rotas de redes destino e para cada uma a direção IP do roteador
que permite alcançá-las.
– O roteador que nos permite saída a outras redes se denomina gateway.
– O pacote IP que chega ao roteador examina-se para ver a que rede
pertence, elege-se a rota adequada e o envia para lá.
12. Protocolo TCP (1)
– É um protocolo de transporte.
– Se monta sobre protocolo IP para controlar erros na transmissão e que os
pacotes sejam recebidos pelas aplicações na mesma ordem em que foram
enviados .
– Para executar a sua missão TCP necessita conduzir informação adicional que
adiciona peso ao pacote. Por isso não é muito recomendado para aplicações
de tempo real como a voz.
– Contudo pode servir para a sinalização de voz.
13. Protocolo TCP (2)
– TCP introduz o conceito de porta.
– Uma porta é uma abstração que nos permite relacionar fluxos de dados
com serviços de rede.
– Por exemplo, a porta 80 corresponde ao serviço de Web o protocolo
HTTP.
14. Protocolo UDP
– UDP (User Datagram Protocol) é outro protocolo de transporte.
– Divide informações em pacotes chamados datagramas.
– Diferencia-se com o TCP sendo que neste protocolo não lhe importa se os
dados chegam com erros ou inclusive se chegam ou não.
– Pelo mesmo introduz pouco peso extra ao pacote IP tornando-o mais
adequado para aplicações do tempo real como voz.
15. Sinalização de VoIP
– Tal como acontece com a telefonia tradicional é necessário sinalizar as
chamadas VoIP.
– Existem algumas alternativas aqui de protocolos de sinalização como SIP,
H323, MGCP, SIP, entre outros.
– Os mais populares sobre Asterisk são SIP e IAX.
– Com respeito a SIP e H323, muitas pessoas confundem e pensam que a voz
se transmite por este protocolo porém é só a sinalização.
16. Transporte de VoIP
– O transporte da voz se executa pelo protocolo RTP.
– RTP significa Realtime Transport Protocol.
– O protocolo RTP é quem realmente transporta o áudio codificado.
– RTP se transporta sobre UDP.
– Em SIP o áudio se transmite por RTP uma vez que se tenha negociado a
porta de rede entre Elastix e o endpoint ou telefone.
18. Codificação da voz
– Para transmitir a voz adequadamente, ela é codificada.
– E depois de codifica-la é que ela se monta sobre o RTP.
– A codificação pode servir para diminuir a probabilidade de erro ou também
para minimizar a largura da banda utilizada.
– Para codificar se utiliza um codec, que é um algorítmico.
– Existem diferentes codecs, cada um com seus prós e contras.
19. G.711
– Um dos codecs mais utilizados de todos os tempos.
– Vem de um padrão ITU-T que foi liberado em 1972.
– Ele vem em dois sabores chamados μ-Law (usado na Europa) e a-Law
(utilizado nos USA).
– Vantagem 1: Boa qualidade de voz já que utiliza 64 kbit/s, uma amostra de 8
bits a 8 KHz.
– Vantagem 2: Já vem habilitado em Elastix, não tem que pagar por ele.
– Desvantagem: Ocupa muita largura de banda. Não é recomendado para
conexões com pouco BW.
20. G.729
– Também um codec muito popular.
– Licenciado pela Intel.
– Vantagem: Uma muito grande é que comprime muito bem a voz sem
nenhum dano significativo da qualidade.
– Desvantagem 1: Licenciado por canal de voz. Aprox. $10 por canal.
– Desvantagem 2: Embora não cause dano significativo a voz, a qualidade é
menor do que se utilizar G.711.
21. GSM
– Também bom compactando voz.
– Está relacionado com o padrão de telefonia celular GSM (Global System for
Mobile communications), daí o seu nome.
– Compacta muito bem a voz com uma qualidade similar ao telemóvel/celular.
– Vem habilitado por defeito em Elastix.
– Bom como alternativa ao G.729. Ainda que a sua qualidade de áudio é
ligeiramente inferior a G.729.
22. Sobrecarga de protocolos (1)
– Os diversos protocolos enviam data adicional à voz.
– Temos a Ethernet, IP, UDP, RTP.
– Isso faz com que a largura da banda seja real para transmitir voz seja maior
ao do codec.
– Por exemplo, para transmitir voz utilizando G.711 na teoria deveríamos
utilizar 64Kbps (peso do codec) mas na realidade utilizaremos 95.2Kbps de
BW.
– Em outros codecs mais compressores a sobrecarga é inclusa, mais
significativa. (percentualmente falando).
24. Sobrecarga de protocolos (3)
– Calculemos a largura da banda para G.711
Bytes transmitidos para cada 20ms
– 38 + 20 + 12 + 8 + 160 = 238 bytes
Bits transmitidos para cada 20ms
– 238 bytes * 8 bits/byte = 1904 bits
Bits transmitidos para cada segundo
– 1904 bits/frame * 50 frames/seg. = 95,200 bits/segundo = 95.2Kbps!
25. Comparativa Codecs
Tabela da largura de banda real para alguns codecs.
(utilizando Ethernet):
Codec BW codec BW real (ethernet)
G.711 64 Kbps 95.2 Kbps
G.726* 32 Kbps 63.2 Kbps
iLBC* 15.2 Kbps 46.4 Kbps
GSM 13 Kbps 43.7 Kbps
G.720A 8 Kbps 39.2 Kbps
* Para esses codec, outras larguras de banda também podem ser utilizados