Transmissão de Voz sobre IP com Taxas Variáveis - PDF
Download "Transmissão de Voz sobre IP com Taxas Variáveis"
Gabriella Lopes de Oliveira
1 UNIVERSIDADE FEDERAL DO RIO DE JANEIRO ESCOLA DE ENGENHARIA DEPARTAMENTO DE ENGENHARIA ELETRÔNICA E DE COMPUTAÇÃO Transmissão de Voz sobre IP com Taxas Variáveis Autor: Orientador: Examinador: Examinador: André Marcos Dias Campos Prof. Sergio Lima Netto, Ph.D. Prof. Marcelo Luiz Drumond Lanza, M.Sc. Prof. José Ferreira de Rezende, Ph.D. DEL Agosto/2005
2 Dedicatória Dedico este trabalho a minha mãe (Maria Regina Futuro Marcos Dias) e a meus avós (João Marcos Dias e Glória Futuro Marcos Dias) que sempre acreditaram em mim e investiram em minha educação e formação. ii
3 Agradecimentos Agradeço: à minha mãe (Maria Regina Futuro Marcos Dias), a minha irmã (Priscilla Marcos Dias Campos) e a minha namorada (Kátia Holz da Silva) por terem sempre me apoiado e me dado força para atingir todos meus objetivos. ao avô João e a minha avó Glória que ajudaram a me formar, educar e sempre contribuíram com bons exemplos. ao meu orientador Sergio Lima Netto pela orientação, pelas conversas, pelas idéias e pela compreensão. aos meus amigos do DEL Rafael Silva Pereira, Gustavo Henrique Fraga de Carvalho, Marcello de Lima Azambuja e Eduardo Brasil por toda a ajuda que me deram no projeto. aos amigos da Cisco Emanoel Nigri, Luis Filipe Silva, Julio Gouy e Carlos Mont Alverne que muito me ensinaram sobre Telefonia IP. ao LPS por ter dado infra-estrutura para desenvolver o projeto. a todos meus amigos, que sempre me apoiaram e incentivaram. iii
4 Resumo: Neste trabalho será realizada uma apresentação geral de VoIP. Serão mostradas as arquiteturas atuais de VoIP, os protocolos de sinalização mais utilizados atualmente, as atuais arquiteturas de qualidade de serviço (QoS) e os codecs de voz mais utilizados. Além da abordagem teórica de VoIP, será implementado um sistema de transmissão de voz sobre IP com taxas variáveis. Esse consiste em um cliente e um servidor, que trocam pacotes de voz, codificada com um codificador CELP, através de uma rede IP. No sistema proposto, há a possibilidade de se modificar a taxa de compressão de voz no decorrer de uma chamada. Para isto, foi desenvolvido um protocolo entre o cliente e o servidor, que possibilite troca de codec durante uma chamada. O objetivo da mudança de codec é melhorar a qualidade da chamada, que muda em função das condições da rede. Devido a isto, a decisão de trocar de codec será tomada em função dos parâmetros da rede (atraso, taxa de perda de pacotes e jitter). O sistema foi desenvolvido para o sistema operacional Linux, utilizando a linguagem de programação C++. Desenvolveu-se também uma interface gráfica para o sistema. Para esta utilizou-se a biblioteca WX-Windows, também em C++. Palavras-chave: VoIP, QoS, TCP/IP, Codec e redes. iv
5 Índice SIGLAS E ABREVIATURAS... vi CAPÍTULO 1 INTRODUÇÃO 1.1 Introdução Organização do Projeto... 3 CAPÍTULO 2 PROTOCOLOS ATUAIS DE VOIP 2.1 Introdução Arquitetura VoIP H SIP Comparação entre H.323 e SIP Conclusão CAPÍTULO 3 QOS 3.1 Introdução QoS DiffServ IntServ RSVP Conclusão CAPÍTULO 4 CODIFICADORES ATUAIS 4.1 Introdução Codificadores Atuais Codificador Utilizado Análise do Codificador Utilizado Conclusão CAPÍTULO 5 APLICAÇÃO DESENVOLVIDA 5.1 Introdução Estrutura do Funcionamento da Aplicação Protocolo para Troca de Modo de Operação Fase de Setup Fase de Conversa Descrição dos Pacotes Inteligência da Aplicação Analisador da Rede Interface Gráfica Conclusão CAPÍTULO 6 CONCLUSÃO 6.1 Conclusão Trabalhos Futuros REFERÊNCIAS BIBLIOGRÁFICAS v
6 Siglas e Abreviaturas: ADPCM AF ASCII ASN.1 ATM BE CELP Diffserv DNS DS DSCP DSP EF GW HTTP ICMP IETF Intserv IP ISDN ITU kbps LAN LPC LSF Mbps MC MCU MGCP MIME MOS MP MPLS MP-MLQ Ms OSI P2P PATH PBX PC Adaptive Differencial Pulse Code Modulation Assured Forwarding American Standard Code for Information Interchange Abstract Syntax Notation number One Asynchronous Transfer Mode Best Effort Code Excited Linear Prediction Differentiated Services Domain Name System Differentiated Services Differentiated Services Code Point Digital Signal Processor Expedited Forwarding Gateway Hypertext Transfer Protocol Internet Control Message Protocol Internet Engineering Task Force Integrated Services Internet Protocol Integrated Services Digital Network International Telecommunication Union kilo bits per second Local Area Network Linear Predictive Coding Line Spectral Frequency Mega bits per second Multipoint Controller Multipoint Control Unit Media Gateway Controller Protocol Multipurpose Internet Mail Extentions Mean Opinion Score Multipoint Processor Multi Protocol Label Switching Multipulse Multilevel Quantization Miliseconds Open Systems Interconnection Peer-to-Peer Path Message Private Branch exchange Personal Computer vi
7 PCM PDA PESQ PGP PHB POTS PSTN QoS RAM RESV RFC RSVP RTCP RTP SCCP SCN SIP SSL TCP ToS UA UAC UAS UDP UFRJ URL VAD VoIP WAN Pulse Code Modulation Personal Digital Assistant Perceptual Evaluation of Speech Quality Pretty Good Privacy Per-Hop Behavior Plain Old Telephony Service Public Switched Telephone Network Quality of Service Random Access Memory Reservation Message Request For Comments Resource ReSerVation Protocol Real Time Control Protocol Real Time Protocol Signaling Connection Control Point Switched Circuit Network Session Initiation Protocol Secure Socket Layer Transmission Control Protocol Type of Service User Agent User Agent Client User Agent Server User Datagram Protocol Universidade Federal do Rio de Janeiro Uniform Resource Locator Voice Activity Detector Voice over Internet Protocol Wide Area Network vii
8 Capítulo 1 - Introdução 1.1 Introdução A evolução das redes de dados baseadas no protocolo IP, e ainda a motivação da diminuição dos custos, desperta o interesse da utilização da rede dados para outros serviços como por exemplo para a transmissão de voz sobre IP (VoIP Voice over IP), motivando ainda mais o crescimento da integração de dados e voz. A idéia básica é aproveitar a mesma estrutura dos meios de comunicação de dados para transportar também a voz. Ao invés de se ter uma rede para dados e outra para voz, pretende-se ter uma rede convergente, na qual dados e voz sejam transmitidos. Este projeto tem objetivos tanto teóricos como práticos. O tema fundamental do projeto é VoIP, com ênfase em qualidade de serviço (Quality of Service QoS). Pode-se dizer que o projeto é divido em duas partes: a parte teórica e a parte prática. O projeto começa com a parte teórica, que tem como objetivo estudar as atuais arquiteturas de VoIP, bem como cada elemento que compõe cada arquitetura. Também são foco de nosso estudo os protocolos de comunicação VoIP atualmente utilizados, H.323 e SIP. Assim, apresentaremos as principais características, vantagens e desvantagens destes protocolos, posteriormente será realizada uma comparação entre ambos. Outro elemento importante de um sistema VoIP é a Qualidade de Serviço (Quality of Service QoS). As atuais arquiteturas utilizadas de QoS são Diffserv (Differentiated Services) e Intserv (Integrated Services). Estudaremos as duas arquiteturas bem como o protocolo RSVP (Resource ReSerVation Protocol), que é um protocolo que compõe a arquitetura Intserv. O último elemento para terminarmos o estudo teórico, são os principais codificadores utilizados atualmente nas implementações de VoIP, como G.711, G.723, G.729, entre outros. Como os serviços de telefonia públicos são considerados de alta disponibilidade, é necessário que a VoIP mantenha esta mesma qualidade tradicional oferecida pelas redes públicas de telefonia e pelos PBXs (Private Branch exchange). A satisfação do usuário é um fator preponderante de sucesso para a migração da tecnologia. A voz é uma aplicação
9 que precisa ser tratada de forma adequada pela rede de comunicação para que haja a qualidade de serviço necessária. Devido a isto, entendemos que a QoS é fundamental para a utilização e popularização de VoIP, portanto este projeto tem como principal foco a QoS em VoIP. No que diz respeito à implementação, desenvolveu-se uma aplicação do tipo cliente-servidor com uma interface gráfica para o usuário, que transmite voz codificada através de uma rede IP. Para esta aplicação desenvolveu-se um protocolo de sinalização entre o cliente e o servidor de modo que o servidor fique monitorando os parâmetros da rede IP que podem influenciar a qualidade da comunicação VoIP: atraso, variação do atraso (jitter) e taxa de perda de pacotes. Ao perceber, durante uma chamada, que algum desses parâmetros não está de acordo com o desejado, o servidor toma alguma medida para que a qualidade se restabeleça. O codificador/decodificador utilizado na aplicação será um CELP desenvolvido na UFRJ [1][2][3]. Ao estudarmos este codificador, constatamos que alterando alguns de seus parâmetros, como por exemplo, o tamanho dos dicionários fixo e adaptativo, podemos modificar características como a complexidade computacional para codificar/decodificar a voz, a banda requerida para transmitir a voz codificada e a qualidade da voz. Explorando este fato, dependendo das condições da rede, o servidor troca algumas características da codificação, ou seja, troca o modo de operação do codificador. Desta forma, insere-se um módulo simples de QoS na aplicação, sem ter que mudar nada na rede, diferente das duas soluções existentes (Diffserv e Intserv). Porém, é importante ressaltar que, esta proposta de QoS não exclui a utilização tanto de Diffserv como de Intserv. Para que tudo isto seja possível, é necessário implementar um protocolo de sinalização para os pontos finais (cliente e servidor) trocarem mensagens de controle, criar um módulo que meça o atraso, o jitter e a taxa de perda de pacotes, um módulo que decida quando o codificador deve ser trocado e uma interface gráfica amigável para o usuário, de modo que não somente usuários familiarizados com computador possam utilizar a aplicação. 2
10 1.2 Organização do Projeto No Capítulo 2 deste projeto, abordaremos as arquiteturas e os protocolos atuais de VoIP. No que diz respeito às arquiteturas, mostraremos seus principais componentes e função de cada um em um sistema VoIP. Já com relação aos protocolos, os mais utilizados são H.323 e SIP. Apresentaremos ambos, evidenciando as suas principais características. A partir disto apontaremos as suas principais vantagens e desvantagens, procurando fazer uma comparação direta entre H.323 e SIP. No Capítulo 3, abordaremos QoS em VoIP. Inicialmente mostraremos a necessidade de QoS em um sistema VoIP. Abordaremos as duas principais arquiteturas atuais de QoS: Diffserv e Intserv. Mostraremos as suas principais características, e, por fim, faremos uma comparação entre as duas arquiteturas. O Capítulo 4 é o último capítulo da parte teórica e já expõe aspectos da implementação realizada neste projeto. Nesse capítulo, trataremos dos codificadores de voz. Primeiramente mostraremos a necessidade de usarmos codificadores de voz para transmitir voz por redes IP. Também serão mostrados os codificadores mais utilizados atualmente, como por exemplo, G.711, G.723 e G.729, suas principais características, vantagens e desvantagens, especialmente com relação à qualidade da voz e sua taxa de compressão. Com isto, termina-se a apresentação dos principais componentes de um sistema VoIP e inicia-se a parte prática do projeto. Começaremos, com a apresentação do codificador desenvolvido na UFRJ, como mencionado anteriormente. Com o devido entendimento do funcionamento do codificador CELP, mostraremos os modos de operação do codificador estudados e seus desempenhos no que diz respeito à complexidade computacional, qualidade da voz e taxa de compressão. No Capítulo 5, veremos todo o detalhamento da aplicação desenvolvida. Inicialmente apresentaremos a arquitetura da aplicação e qual a função de cada parte do sistema. Com isso, apresentaremos o protocolo de comunicação entre o cliente e o servidor, que permite a troca do codificador durante uma chamada, e o critério de escolha adotado pelo servidor, em função dos parâmetros da rede. Nesse capítulo, também 3
11 mostramos como foi implementado o módulo que mede os parâmetros de rede (atraso, jitter e taxa de perda de pacotes). Por fim, apresentaremos a interface gráfica desenvolvida com a biblioteca Wx-Windows e explicaremos como o usuário deve proceder para utilizar a aplicação através desta interface. Finalmente no Capítulo 6, concluiremos o projeto. Apontaremos os principais pontos do trabalho, explicitando suas contribuições. Apresentaremos também sugestões de trabalhos futuros, que dêem continuidade a este trabalho. 4
12 Capítulo 2 Protocolos Atuais de VoIP 2.1 Introdução A evolução das redes de dados baseadas no protocolo IP desperta o interesse para a transmissão de voz sobre IP (VoIP Voice over IP), motivando ainda mais o crescimento da integração de dados e voz. A idéia básica é aproveitar a mesma estrutura dos meios de comunicação de dados para transportar também a voz. O objetivo deste capítulo é apresentarmos um panorama atual das tecnologias de VoIP, abordando os principais pontos da arquitetura e dos protocolos de comunicação utilizados atualmente. Em capítulos posteriores, abordaremos outros aspectos importantes de comunicação utilizando VoIP como os codificadores e qualidade de serviço (QoS). Na seção 2.2 apresentaremos a arquitetura VoIP, mostrando seus componentes e funcionamento de modo geral. Na seção 2.3 apresentaremos o protocolo H.323, mostrando seus componentes, funcionamento básico, apontando vantagens e desvantagens. Na seção 2.4 apresentaremos o protocolo SIP, mostrando seus componentes, funcionamento básico, apontando vantagens e desvantagens. Na seção 2.5 faremos uma comparação entre os protocolos H.323 e SIP, explicitando as vantagens e desvantagens de cada um com relação ao outro. Na seção 2.6 concluiremos o capítulo ressaltando os pontos mais importantes abordados. 2.2 Arquitetura VoIP A definição básica de um sistema VoIP é a conversão das amostras de voz em uma série de pacotes para a transmissão destes através de uma rede IP. A arquitetura de um serviço VoIP é formada por três componentes básicos: Gateway de Voz - Dispositivo responsável pela digitalização, compressão, demodulação e funções de empacotamento IP sobre o sinal de voz recebido.
13 Agente de Chamada - Notificado via sinalização enviada pelo gateway de que uma chamada está sendo iniciada e analisa como a chamada será gerenciada. Equipamento de usuário Dispositivo final usado pelo usuário que solicita o uso de serviço de voz. Podendo ser este analógico ou digital. A figura 2.1, de [4], apresenta a arquitetura VoIP com os componentes descritos acima. Os telefones que estão ligados aos PBXs são os equipamentos do usuário, os pontos finais. Os gateways digitalizam a voz vinda do PBX, empacotam e enviam para o seu destino, ou seja, um outro gateway. Figura 2.1 Mostra pontos finais ligados a PBXs que estão interligados através de uma rede IP. [4] As soluções VoIP seguem um modelo de camadas hierárquico podendo ser comparado ao modelo de referência OSI. O efeito de cada camada no processo de comunicação VoIP é a adição de um cabeçalho para controle e transmissão da informação. Como por ser visto na figura 2.2. Figura 2.2 Adição dos cabeçalhos RTP, UDP e IP a amostra de voz codificada. [4] 6
14 Inicialmente, a voz é comprimida depois de naturalmente ser digitalizada, deve ser empacotada utilizando o protocolo Real Time Protocol (RTP). O RTP transporta os pacotes de voz, incluindo pacotes multimídia interativos, mas sem nenhuma garantia ou qualidade de serviço. Em uma rede IP não se pode garantir qual caminho um pacote percorrerá para chegar ao seu destino. Com isto, os pacotes podem chegar ao destino fora de ordem. Uma das principais funções do protocolo RTP é ordenar os pacotes antes de a voz ser decodificada. Juntamente com RTP, utiliza-se Real Time Control Protocol (RTCP). Este é utilizado como protocolo de controle durante a chamada. Este protocolo tem como objetivo medir e informar aos pontos finais as condições da rede. É importante ressaltar, que mesmo detectando condições ruins da rede, o RTCP não toma nenhuma medida. Devido à necessidade de uma entrega rápida e a falta de tempo para uma retransmissão no caso da perda de um único pacote, utiliza-se UDP para transmitir voz através de RTP. Para que o pacote possa ser transmitido pela rede, é necessário o uso do protocolo IP, que é fundamental para os roteadores conseguirem achar o destino do pacote. No final de todo este processo de adição de cabeçalhos, o pacote de voz tem um overhead de 40 bytes (20 bytes IP, 8 bytes UDP e 12 bytes RTP). Os cabeçalhos são enviados seqüencialmente antes das amostras digitalizadas e codificadas de voz como mostra a figura 2.2. Ao contrário da telefonia convencional, a sinalização IP requer uma tecnologia muita mais complexa devido à natureza distinta dos pontos finais. Cada ponto final pode variar em vários aspectos, como por exemplo, requerimento de banda, áudio, capacidade de dados, etc. Logo antes de qualquer conexão é necessário assegurar que os dois pontos possuam as mesmas capacidades, é necessário implementar uma arquitetura de controle de chamadas ou de sinalização que promova o controle do estado dos recursos da rede, habilitando-os para a correta conexão entre as partes de uma comunicação. 7
15 2.3 H.323 O padrão H.323 provê fundamentos para transmissão de áudio, vídeo e comunicação de dados sobre redes baseadas em pacotes, incluindo a Internet. Os usuários podem se comunicar sem a preocupação de compatibilidade, ou seja, produtos multimídia e aplicações de diferentes fornecedores podem interoperar. Todos os dispositivos que utilizam este padrão devem dar suporte ao tráfego de voz e opcionalmente a vídeo e a dados. Estes dispositivos podem ser integrados a um PC, através de uma solução de software, ou implementados em equipamentos do tipo standalone, como por exemplo, um telefone IP. As conexões podem ser de dois tipos: ponto a ponto ou ponto a multiponto. O protocolo H.323 é na verdade um protocolo formado por vários outros protocolos. A figura 2.3 mostra a pilha de protocolos implementada pelos pontos finais (terminais e gateways) do H.323 em redes VoIP. Figura 2.3 Protocolos formadores do H.323. Os principais são H.245 e H.225[4]. O padrão H.323 foi formalizado em 1996 pela ITU (International Telecommunication Union), abaixo descreveremos os demais padrões que o compõe: 8
16 H.225 especifica mensagens de controle da chamada, incluindo sinalização, registros, admissões, empacotamento sincronização de streams. H.245 negocia o codec a ser utilizado na chamada, especifica as mensagens para abertura e fechamento de canais de transmissão de streams e outros comandos de requerimento e indicação. H.261 codificador de vídeo para serviços audiovisuais a 64 kbps. H.263 especifica um novo codificador de vídeo para vídeos POTS (Plain Old Telephony Service). A arquitetura do padrão H.323 é composta por vários componentes, que serão descritos abaixo: Terminal é um ponto final em uma rede local que prove comunicação em tempo real com um outro terminal H.323, gateway ou MCU. Esta comunicação consiste em sinais de controle, indicações, áudio, vídeo e dados entre os dois terminais. Um terminal pode prover somente voz, voz e dados, voz e vídeo, ou ainda voz, dados e vídeo. Gateway (GW) é um ponto final em uma rede local que prove comunicação em tempo real entre terminais H.323 em uma LAN (Local Area Network) e outros terminais ITU em uma WAN (Wide-Area Network), ou outro gateway H.323. Em outros terminais ITU incluem-se dispositivos que suportem H.310 (H.320 em B-ISDN), H.320 (ISDN), H.321 (ATM), H.322 (GQOS-LAN), H.324 (GSTN), H.324M (móvel), e V.70 (DSVD). 9
17 Gatekeeper provê controle de serviço de chamadas para os pontos H.323. Mais um gatekeeper pode estar presente e eles podem se comunicar entre si. Um gatekeeper é logicamente separado dos pontos finais, mas fisicamente, sua implementação pode coexistir com um terminal, MCU, gateway, MC, ou outros dispositivos não H.323. Unidade de Controle Multiponto (Multipoint Control Unit - MCU) é um ponto final em uma rede local que permite que três ou mais terminais e gateways participem de uma conferência multiponto. Permite também dois terminais se conectarem em uma conferência ponto-a-ponto, que posteriormente pode se tornar uma conferência multiponto. Controlador Multiponto (Multipoint controller - MC) é uma entidade H.323 em uma rede local que prove o controle para que três ou mais terminais participem de uma conferência multiponto. Permite também conectar dois terminais em uma conferência ponto-a-ponto que posteriormente pode se tornar uma conferência multiponto. Processador Multiponto (Multipoint Processor - MP) é uma entidade H.323 em uma rede local que provê processamento centralizado de streams de áudio, vídeo e dados em uma conferência multiponto. O MP prove mistura, chaveamento, ou outros processamentos das streams acima sob o controle de um MC. Conferência ponto-a-ponto (Point-to-point Conference) uma conferência ponto-a-ponto é uma conferência direta entre dois terminais ou entre um terminal H.323 e um terminal SCN através de um gateway. Switched-circuit Network (SCN) é uma rede de telecomunicação chaveada pública ou privada como GSTN, N-ISDN ou B-ISDN. 10
18 A figura 2.4 mostra uma possível arquitetura com quase todos os componentes do padrão H.323 e com quase todas as modalidades de chamada. Dentre estas podemos destacar: dois terminais fazendo uma chamada ponto-a-ponto dentro da LAN. Dois terminais realizando uma chamada através da Intranet ou da Internet. Dois terminais realizando uma chamada com a ajuda de um Gatekeeper. Dois ou mais terminais realizando uma conferência com a ajuda de uma MCU e por último uma chamada de um terminal para a PSTN através de um gateway. Figura uma possível arquitetura com quase todos os componentes (terminais, gateway, MCU e gatekeeper) do padrão H.323. [4] O protocolo H.323 tem pontos finais razoavelmente inteligentes, pois são capazes de manter suas próprias chamadas. O protocolo H.323 é um sistema peer-to-peer de sinalização. Cada ponto final pode chamar outro diretamente utilizando os procedimentos dados pelo padrão, evidentemente se cada ponto final souber o endereço IP do outro. As mensagens de sinalização do setup inicial seguem as do modelo tradicional ISDN Q.931, utilizando o formato ASN.1 encapsulado em pacotes TCP. Após a fase de setup, os dois pontos são capazes de negociar qual codificador de áudio vão utilizar, e finalmente escolher quais portas usarão para a transmissão de pacotes RTP, a transmissão de voz em si. É bom notar, que pelo fato das portas RTP serem escolhidas dinamicamente pelos pontos finais em uma grande faixa de possibilidades, há uma relativa dificuldade de operar com a presença de firewalls. 11
19 Figura 2.5 Estabelecimento de uma chamada H.323. A figura 2.5 mostra o estabelecimento de uma chamada H.323 sem gatekeeper. Para realizar o call-setup, utiliza-se o protocolo H.225, que utiliza pacotes TCP. Após isto, há a troca capacidade, ou seja, quais codificadores cada ponto final tem disponível, isto se dá através do protocolo H.245. Com isto a chamada H.323 está estabelecida, então se inicia a troca de pacotes de voz através do protocolo RTP. 2.4 SIP Session Initiation Protocol (SIP) é um novo protocolo de sinalização com uma arquitetura peer-to-peer muito parecida com a do H.323. Diferentemente do H.323, SIP é por filosofia e intenção um protocolo direcionado para Internet. Esse está descrito no RFC 2543, que foi desenvolvido pelo IETF MMUSIC Working Group em O SIP depende de pontos finais relativamente inteligentes, o que requer pouca ou nenhuma interação com servidores. Cada ponto final gerencia sua própria sinalização e ainda há um controle de sessão, o que dá inúmeras vantagens ao SIP. 12
20 O protocolo possui uma estrutura simples de mensagens, o que permite fazer o setup de uma chamada em menos passos que o H.323, o que acarreta uma melhor performance com relação ao H.323, com o mesmo hardware. SIP também é mais escalável que o H.323 por ter um modelo de chamada distribuído, mas a verdadeira vantagem do SIP é o fato de ser um protocolo concebido para ser usado na Internet. SIP usa mensagens ASCII baseado em HTTP/1.1, o que significa que as mensagens são facilmente decodificadas e depuradas. Devido a isto, outras aplicações web podem suportar serviços SIP sem grandes modificações. O SIP suporta nomes de URL (com DNS) e MIME (Multipurpose Internet Mail Extentions), o que significa que o modelo permite que o de um usuário seja, por exemplo, seu número de telefone, fazendo com que diferentes pontos finais possam se comunicar. Embora o SIP seja filosoficamente um protocolo peer-to-peer, é regido pela lógica cliente-servidor. Um típico cliente SIP seria um Telefone IP, um PC ou um PDA (Personal Digital Assistant). Para haver comunicação, é necessário haver um UAC (user agent client) para originar a requisição SIP e um UAS (User Agent Server) para receber a requisição. Também são suportados SIP Proxy Servers, SIP Redirect Servers, Registrar e Location Servers. Estes servidores são opcionais, mas normalmente, úteis e valiosos em atuais implementações de SIP. Abaixo apresentaremos esses servidores: Proxy Server - atua como servidor e cliente, inicializa requisições SIP de acordo com o interesse do UAC. Servidor de Redirecionamento (Redirect Server RS) recebe requisição SIP, mapeia o destino para um ou mais endereços e responde com aqueles endereços. Registrador (Registrar) aceita requisições de registro da atual localização dos UAC. Tipicamente colocado com um Redirect Server. 13
21 Servidor de Localização (Location Server) provê informação sobre as possíveis localidades de chamadas. Normalmente, é contatado por um Redirect Server. Um Location Server/Service pode coexistir com um SIP Redirect Server. Como já foi mencionado, o protocolo SIP é baseado um simples vocabulário de mensagens de requisição e resposta. As mensagens serão descritas abaixo: REGISTER registra localização atual no servidor. INVITE é enviada pelo chamador para iniciar uma chamada. ACK é enviada pelo chama dor confirmar a aceitação da chamada pelo chamado. Esta mensagem não é respondida. BYE é enviado por qualquer lado para terminar a chamada. CANCEL é enviada para terminar uma chamada ainda não conectada. OPTIONS é enviada para requerer capacidades. Como mencionado anteriormente, o endereçamento SIP é modelado como de URLs. Como por exemplo: sip: "einstein" transport=udp A estrutura do endereço indica os parâmetros como o tipo de transporte e endereços. Na figura 2.6, é demonstrado o quão mais simples é o setup de uma chamada SIP com relação a H.323, mesmo com um servidor Proxy envolvido. Sem o Proxy, os pontos finais precisam saber o IP um do outro. De qualquer forma, o setup de uma chamada, se 14
22 inicia com uma simples mensagem INVITE enviada diretamente de um ponto final a outro. Quando há o envolvimento de um servidor de Proxy, em conjunto com os outros servidores descritos anteriormente, são basicamente responsáveis por resolver um endereço SIP em IP, de modo que o UAC consiga enviar a mensagem de INVITE para o UAS. Figura 2.6 Estabelecimento de uma chamada SIP. [4] 2.5 Comparação entre H.323 e SIP Ambos os protocolos são usados para configuração e controle de sinalização de chamada, logo os mesmos podem ser usados como protocolos de sinalização em uma rede IP. Apesar de o SIP ser mais escalável, flexível e possuir uma maior facilidade de implementação. O H.323 vem sendo utilizado por fabricantes como o preferido para soluções VoIP devido a sua maior segurança. Ainda existe muita discussão sobre qual protocolo será mais usado pela comunidade VoIP. Defensores do ITU-T dizem que o H.323 ganhou suporte de múltiplos fabricantes, em contra partida os defensores do SIP questionam a sua interoperabilidade. 15
23 A tabela 2.1 a seguir, sem nenhuma pretensão de apontar qual a melhor implementação, mostra uma compararão entre os dois protocolos. Tabela 2.1 Comparação entre H.323 e SIP. H.323 SIP Filosofia Desenvolvido para gerenciar chamadas de voz, multimídia e serviços suplementares através de recomendações específicas para cada tipo de serviço. Desenvolvido para estabelecer uma sessão entre dois pontos finais, sem nenhum relacionamento específico com algum tipo de mídia. Complexidade Mais Complexo Relativamente simples Formato das Mensagens Representação binária Representação textual ASCII Transporte de Mídia RTP/RTCP RTP/RTCP Protocolo de Transporte UDP UDP Endereçamento Entende URLs e E.164 Somente formato URL Resolução de endereços O Gatekeeper pode usar muitos protocolos para descobrir o endereço de destino do usuário chamado, inclusive conversando com outros Gatekeepers. Um UAC precisa enviar um invite para um servidor Proxy, sendo este o responsável em fazer a resolução de endereço, podendo usar muitos protocolos para descobrir o endereço destino. Requerimentos para chamada O Gatekeeper é opcional, uma chamada pode ser estabelecida diretamente entre dois pontos finais. O servidor Proxy pode não ser usado para o estabelecimento da chamada. Uma chamada pode ser estabelecida diretamente entre dois UA. Escalabilidade Não é muito escalável Altamente escalável 16
24 Autenticação Através de H.235 Via HTTP,SSL,PGP e outros Encriptação Via H.235 Via SSL,PGP e outros 2.6 Conclusão Neste capítulo, apresentamos um panorama atual das tecnologias de VoIP, abordando os principais pontos da arquitetura e dos protocolos mais utilizados atualmente, H.323 e SIP. É interessante observar, que há outros protocolos como MGCP e MEGACO, mas que não serão abordados neste texto. Atualmente H.323 apresenta mais funcionalidades do que o SIP, mas especialmente pela simplicidade e pela compatibilidade do SIP com a Web, há uma tendência do SIP passar a ser mais utilizado que H.323. De qualquer forma, a tecnologia VoIP ainda é muito recente para se apontar um padrão de sinalização definitivo. Ambos ainda têm a evoluir. No próximo capítulo, será abordada a questão da Qualidade de Serviço (QoS) em sistemas VoIP. Será apresentado à necessidade de se ter QoS em redes que utilizem VoIP e quais são as atuais arquiteturas de QoS. 17
25 Capítulo 3 - Qos 3.1 Introdução Como os serviços de telefonia públicos são considerados de alta disponibilidade, é necessário que a telefonia sobre pacotes mantenha esta mesma qualidade tradicional oferecida pelas redes públicas de telefonia e pelos PBXs. A satisfação do usuário é fator preponderante de sucesso para a migração da tecnologia. Para o entendimento do processo de migração de ambientes distintos de dados e voz para um ambiente integrado, é fundamental a compreensão, de que voz é uma aplicação e como deverá ser tratada de forma adequada pela rede de comunicação, para que haja a qualidade de serviço (QoS Quality of Service) necessária. Neste capítulo adordaremos as tecnologias e arquiteturas atuais que implementam QoS em redes IP. Na seção 3.2, apresentaremos o conceito de qualidade de serviço, mostrando sua necessidade e importância em um sistema VoIP. Na seção 3.3, apresentaremos a arquitetura de Serviços Diferenciados (Diffserv), seu funcionamento, suas vantagens e desvantagens. Na seção 3.4, apresentaremos a arquitetura de Serviços Integrados (Intserv), bem como o protocolo RSVP, que implementa a arquitetura, suas vantagens e desvantagens. 3.2 QoS A convergência de dados, voz e vídeo em um só meio é uma realidade com os sistemas VoIP. Em conseqüência disto, as redes, e a própria Internet, precisam mudar para acomodar as demandas das novas aplicações, especialmente as multimídia, como voz e vídeo, que tem uma maior exigência de QoS. Quando a voz, dividida e empacotada, compartilha o meio físico com um volume imprevisível de tráfico de dados, a QoS é requisitada para proteger o tráfego de voz. A especificação adequada de QoS que implica no atendimento de um serviço, é um requisito de operação de rede, de seus componentes e dos equipamentos para viabilizar a operação com qualidade para uma aplicação baseada em parâmetros definidos. A quantidade de banda mínima é o parâmetro básico e certamente mais presente na especificação de QoS. Este parâmetro é normalmente
26 considerado durante a fase de projeto e implantação da rede. A ampliação da largura de banda é necessária, mas não suficiente, pois é necessário que esta seja administrada. O protocolo IP não tem nenhum compromisso com QoS. É considerado um protocolo que provê um serviço de melhor esforço no qual os recursos da rede são divididos de forma igualitária, não há diferenciação entre os pacotes. A adição de QoS na rede representa uma mudança significativa pois possibilita o tratamento diferenciado de serviços. Entretanto, modifica o princípio fundamental da simplicidade que fez o sucesso da Internet. Entretanto, com o crescimento da quantidade de novos serviços sobre IP (everything over IP), estão sendo geradas novas oportunidades e incentivando o suporte a QoS, que é essencial em aplicações de comunicação em tempo real envolvendo voz, áudio e vídeo. Atualmente, a QoS é definida como a capacidade da rede prover serviço de encaminhamento de dados de forma consistente e previsível. Outra possibilidade é definir Qos como a habilidade de um elemento da rede (seja uma aplicação, host, roteador, ou outro dispositivo) ter algum nível de garantia que seu tráfego e exigências de serviço possam ser satisfeitos. Basicamente existem dois mecanismos básicos para prover QoS em redes IP: Reserva de Recursos: os recursos da rede são divididos de acordo com os requisitos de QoS da aplicação, e sujeitos à política de administração de largura de banda. O RSVP (Resource ReSerVation Protocol), por exemplo, fornece os mecanismos para implementação de Serviços Integrados (IntServ) baseado na reserva de recursos. Quando um recurso estiver alocado para uma aplicação, mesmo que esta não o esteja utilizando, ninguém pode utilizá-lo. Priorização: o tráfego da rede é classificado e os recursos de rede são divididos, entre as classes de tráfego, de acordo com critérios de políticas de administração de largura de banda. Para habilitar QoS os mecanismos de classificação dão tratamento preferencial a aplicações identificadas como tendo requisitos mais 19
27 exigentes. A arquitetura de Serviços Diferenciados (DiffServ) provê este tipo de serviço. É importante ressaltar que estas duas arquiteturas de QoS não são mutuamente exclusivas, na verdade são complementares. Há um conjunto de parâmetros considerados essenciais para redes com QoS. Estes são o atraso fim-a-fim, a variação do atraso (jitter), a taxa de perda de pacotes e largura de banda. Cada um destes parâmetros será descrito abaixo: Atraso fim-a-fim - é o tempo entre o envio de uma mensagem por um ponto-final e a recepção desta mensagem pelo ponto-final destino. Este atraso ocorre no caminho de transmissão ou em um dispositivo no caminho de transmissão. Para transmissão de voz, a ITU através da norma G.114, recomenda não haver atraso maior que 150 ms. Variação do atraso (jitter) - é uma distorção ocorrida nos tempos de chegada entre pacotes comparados aos tempos originais de transmissão entre pacotes. É uma distorção que acontece, por exemplo, quando fluxos de voz ou vídeo são transmitidos em uma rede e os pacotes não chegam ao seu destino dentro da ordem sucessiva ou em uma determinada cadência. Ou seja, eles variam em termos de tempo de atraso. Esta distorção é particularmente prejudicial ao tráfego multimídia, fazendo com que o sinal de áudio ou vídeo tenha uma qualidade distorcida ou fragmentada na recepção. Para transmissão de voz recomenda-se, jitter médio de no máximo 30 ms. Perda de pacotes - representa o número de pacotes que foram transmitidos na rede, mas não alcançaram seu destino em um determinado período de tempo. Para transmissão de voz recomenda-se, que a perda de pacotes não deve ser maior que 1%. 20
28 Largura de banda - é uma medida de capacidade de transmissão de dados, normalmente expressa em kilobits por segundo (kbps) ou megabits por segundo (Mbps). Durante a fase de projeto de uma rede, é necessário definir a quantidade de banda que deverá ser utilizada por cada aplicação da rede, de modo que cada aplicação consiga realizar sua função, sem causar prejuízos às demais aplicações. Nas próximas duas seções, abordaremos os dois modelos (Diffserv e Intserv) de QoS fim-a-fim que é a habilidade da rede em prover o serviço requerido por um tráfego específico de uma extremidade a outra da rede, mas antes disto é importante apresentarmos o modelo de serviço de melhor esforço (Best Effort). Este serviço também é conhecido como sem QoS e, provê simplesmente a conectividade básica sem nenhuma garantia. Atualmente, a Internet é um bom exemplo de serviço de melhor esforço. Embora o serviço de melhor esforço não ofereça QoS, este é adequado para uma grande gama de aplicações de rede, tais como, correio eletrônico e transferência de arquivos, pois estas se adaptam facilmente às condições da rede. 3.3 Diffserv A qualidade de serviço na solução DiffServ se dá através da divisão do tráfego de rede em diferentes classes, chamadas classes de serviço (Class of Service), e pela aplicação de parâmetros de QoS nestas classes. A divisão dos pacotes em classes se dá através de um número que fica armazenado no byte de tipo de serviço (Type of Service ToS) no cabeçalho IP. Na verdade, este byte não é inteiramente utilizado, usam-se somente os 6 bits mais significativos. Este conjunto de 6 bits é chamado de Differentiated Services Code Point (DSCP). Neste texto, abordaremos somente classificação feita com base no valor do DSCP do cabeçalho IP, mas é importante ressaltar que se pode classificar tráfego com base em informações contidas em cabeçalhos 802.1p, MPLS, ATM e FrameRelay [4]. Uma vez classificados, os pacotes recebem tratamento específicos para serem encaminhados, isto é formalmente chamado de PHB (Per-Hop Behavior), que são aplicados em cada elemento da rede (roteadores ou switches), provendo tratamento 21
29 apropriado ao pacote no que diz respeito a atraso, jitter e banda. Esta combinação de marcação de pacotes e PHBs bem definidos resulta numa solução de QoS bem escalável para qualquer pacote dado, de qualquer aplicação. Com isto, em Diffserv, não há sinalização para QoS, o que resulta numa solução altamente escalável. A descrição da solução Diffserv foi terminada pelo IETF no final de Os objetivos do IEFT eram de criar métodos simples de prover diferentes classes de serviço para o tráfego da Internet, para suportar vários tipos de aplicações. Como já mencionado, a marcação de pacotes é feita através dos 6 bits do ToS. Este campo é agora chamado de DS (Differentiated Services), que tem dois bits (os menos significativos) que não são utilizados (RFC-2474). Os 6 bits utilizados são chamados de Differentiated Services Codepoint (DSCP). Com estes 6 bits é possível classificar ou agregar 64 tipos diferentes de classes. Toda a classificação no modelo Diffserv é realizada principalmente através do DSCP. Cada nó em uma arquitetura DiffServ define dois importantes componentes: um de classificação e um de condicionamento de tráfego. O classificador é o componente que divide o fluxo de entrada em um conjunto de fluxos de saída por meio de filtros de tráfego baseados no conteúdo do DSCP. Com a chegada do pacote, o nó se o pacote está de acordo com um perfil de tráfego pré-definido. Dependendo da conformidade três ações podem ser executadas: marcação, formatação (shaping) e descarte. A marcação de um pacote é realizada no campo DSCP, no qual se atribui um valor, este é mapeado para um PHB definido na arquitetura DiffServ. Os PHBs definem o comportamento de encaminhamento de um pacote em um nó DiffServ. O DSCP é usado para selecionar o PHB que o pacote terá em cada nó. Este campo é tratado como um índice em uma tabela usada para selecionar o mecanismo de manipulação de pacotes implementado em cada dispositivo. Cada PHB pode especificar que, para determinados pacotes, serão dadas certas prioridades relativas a outros, em termos de banda utilizada ou de preferência para descarte. 22
30 PHBs são comportamentos individuais aplicados em cada nó, por isso isoladamente não garantem QoS fim-a-fim. Entretanto, a interligação de roteadores com os mesmos PHBs e a limitação da taxa em que os pacotes são enviados para um PHB, possibilita o uso de PHBs para construir QoS de fim-a-fim. Por exemplo, a concatenação de PHBs ao longo de uma rota pré-estabelecida, com um controle de admissão, pode prover um serviço similar ao de uma linha dedicada, que é satisfatório para voz. Há três PHB padronizados: PHB EF (Expedited Forwarding), AF (Assured Forwarding) e PHB default que serve para o tráfego BE (Best Effort), assegurando compatibilidade com o encaminhamento melhor esforço. No PHB default, o valor de DSCP é igual à zero, como mostra a figura 3.1. Figura 3.1: O valor do DSCP é igual à zero para PHB Default. O PHB EF pode ser usado para tráfego com requisitos de baixa perda de pacotes, baixo atraso, baixo jitter (variação de atraso) e garantia de largura de banda. Estes requisitos são alcançados assegurando-se que os agregados de tráfego encontram nenhum ou pouco enfileiramento. Este PHB é indicado para pacotes de voz. O valor do DSCP para o PHB EF é 46 em decimal, como pode ser visto na figura
31 Figura 3.2: O valor do DSCP é igual a 46 para PHB EF. O PHB AF tem por objetivo fornecer entrega de pacotes IP, com largura de banda assegurada, em quatro classes de transmissão (AF1, AF2, AF3 e AF4), mas não oferece garantias quanto ao atraso. Cada classe tem três precedências de descartes (Drop Precedence), que são utilizadas para determinar a importância do pacote. Assim, um nó congestionado dá preferência para serem descartados, entre os pacotes de uma mesma classe, aqueles com maiores valores de precedência de descarte. Este PHB é indicado a pacotes que façam parte de aplicações importantes, no caso de um ambiente empresarial, de aplicações relevantes para o negócio da empresa. O formato do campo DSCP para o PHB AF é aaadd0, no qual os três bits mais significativos indicam a classe (AF1 001, AF2 010, AF3 011 e AF4 100) como pode ser visto na tabela 3.1. Já os outros dois bits dd indicam a precedência de descarte (Baixa Precedência 01, Média Precedência 10 e Alta Precedência 11), como pode ser visto na tabela 3.2. É interessante ressaltar, que o bit menos significativo do DSCP é sempre igual a zero. Tabela 3.1: Valores de DSCP para cada classe AF. Classe Valor AF1 001 dd 0 AF2 010 dd 0 AF3 011 dd 0 AF4 100 dd 0 24
32 Tabela 3.2: Valores do DSCP para cada precedência de descarte. ProbabilidadeValor AF de Descarte Baixa 01 AF11 Média 10 AF12 Alta 11 AF13 Após apresentar os PHBs padrões, utilizaremos a tabela 3.3 para exemplificar quais aplicações normalmente compõe cada classe de serviço. Tabela 3.3: Aplicações que compõe cada classe. PHB DSCP Valor DSCP Aplicações EF EF / 46 Voz AF1 AF / 10 FTP, Backup AF12 AF / / 14 AF2 AF21 AF / / 20 Banco de dados, tráfego interativo. AF / 22 AF3 AF / 26 Aplicações AF / 28 Críticas para AF / 30 empresa AF4 AF41 AF / / 36 Vídeo, sinalização de voz. AF / 38 Default Default / 0 e Internet Após a classificação, dependendo da conformidade do pacote com relação ao seu PHB, o pacote, em um caso extremo de fila cheia, pode ser descartado. Normalmente, em 25
33 interfaces com links pequenos (menores que 2 Mbps), não se deve descartar um pacote, mas armazená-lo em um buffer, até que seja possível transmiti-lo (shapping). 3.4 IntServ A solução de Serviços Integrados (Intserv) para QoS foi proposta pela IEFT (Internet Engineering Task Force). Na solução, cada aplicação que necessite de QoS para seus pacotes deve informar as condições que julgam necessárias ou imprescindíveis para que transmissão tenha qualidade, ou seja, a solução é baseada em reserva de recursos da rede. Em cada roteador no caminho entre os pontos finais, são necessários mecanismos de controle de admissão e escalonamento de pacotes, de forma que se mantenha uma dinâmica dos recursos mais equilibrada, para que todas as aplicações tenham iguais oportunidades de realizar suas comunicações. O controle de admissão implementa um algoritmo que garante ou nega recursos, mantendo a carga da rede em níveis aceitáveis para todos os usuários. O escalonamento de pacotes utiliza-se de algoritmos que decidem em que ordem devem ser enviados os pacotes que estejam aguardando transmissão, de acordo com a prioridade definida pela aplicação. Faz-se necessário também a existência de um protocolo de gerência de recursos, de forma a requisitar e reservar em um determinado caminho a QoS requerida pelas aplicações, tanto em ambientes ponto-a-ponto ou multicast. Os recursos mais comuns de serem controlados são a banda e o tamanho dos buffers dos roteadores. O RSVP (ReSerVation Protocol) é um protocolo que implementa a reserva de recursos da arquitetura Intserv. Esse será descrito na próxima subseção RSVP RSVP é um protocolo desenvolvido para permitir que as aplicações requisitem diferentes QoS para seus fluxos de dados. Na implementação de RSVP, os roteadores devem adequar-se aos mecanismos de controle de QoS para garantir a entrega dos 26
34 pacotes de dados e cada aplicação deve estar capacitada a fornecer os parâmetros ideais de QoS. Outro fato importante é que RSVP não é um protocolo de roteamento, mas trabalha em conjunto com este. É usado por uma aplicação para requisitar um nível de QoS específico da rede. O protocolo atua tanto em máquinas do usuário quanto em roteadores, responsabilizando-se, nesse caso, a estabelecer e manter as condições para o serviço requisitado. RSVP é um protocolo de sinalização para o controle de reserva de recursos. Uma série de mensagens devem ser trocadas entre as aplicações e os elementos de rede para corretamente requisitar a qualidade de serviço para uma determinada sessão. Após a definição da sessão, serão trocadas mensagens de controle RSVP. As mensagens RSVP fundamentais são reservation message (RESV) e path message (PATH). A mensagem PATH, enviada pelo transmissor, é propagada pelo caminho pontoa-ponto ou multicast, seguindo a rota informada pelos mecanismos de encaminhamento até os receptores. Um elemento no caminho dos dados, ao receber um PATH, criará um estado chamado PATH state. As mensagens deste tipo armazenam o estado de cada nó pelos quais a mensagem de PATH transitou. A mensagem RESV, enviada pelo receptor, contém um descritor de fluxo, definindo a QoS aceita pelo receptor em função daquela pedida pela mensagem PATH. Mediante a troca dessas mensagens, o protocolo toma uma série de decisões, como por exemplo, aceitar ou não um novo fluxo, criando um ambiente para que os recursos sejam reservados. Cada parâmetro utilizado para requisitar a QoS está representado nas mensagens do RSVP. A seguir, apresentaremos um exemplo em um cenário simples, ponto-a-ponto, em que todos os elementos compreendam o protocolo RSVP. Em cada nó roteador, além do gerenciador de recursos, responsável pela reserva, existem módulos de controle de tráfego e policiamento que auxiliam o RSVP na tarefa de reservar os recursos requisitados. 27
35 Exemplo: Seja T1 uma máquina que contém uma aplicação que tenha requisitos de QoS, R1 outra máquina que receberá dados dessa aplicação e G roteadores intermediários. A aplicação em T1, para iniciar sua transmissão, envia uma mensagem de controle chamada de mensagem de caminho (PATH), que seguirá seu caminho, pelos diversos roteadores até chegar em R1, conforme figura 3.3. A mensagem PATH contém um cabeçalho RSVP e todas as informações sobre o tráfego que a aplicação em T1 espera gerar e valores para os parâmetros de QoS. A cada roteador G existente entre T1 e R1, será criado um estado chamado de PATH state. Figura 3.3: Mensagem PATH Seguindo de T1 a R1 [6]. Ao chegar em R1, este analisa as informações contidas em PATH e seleciona os parâmetros de reserva desejados, montando a mensagem de reserva (RESV). Por onde passar, a RESV provocará nos roteadores um estado chamado SOFT state, até chegar de volta em T1, informando-o sobre as condições dos parâmetros de QoS da reserva realizada por R1 e propriedades do caminho entre ambos, como é mostrado na figura 3.4. Figura 3.4: Reserva entre R1 e T1, Criando o Soft State nos Elementos Intermediários [6]. 3.5 Conclusão Neste capítulo, foi abordada a importância de QoS em redes IP e especialmente para aplicações que transmitam voz e vídeo. Também foram mostradas as duas arquiteturas que implementam atualmente QoS, Diffserv e Intserv. 28
36 Na solução Diffserv, QoS é garantida através da divisão do tráfego em classes e após isto uma priorização de cada classe. Devido a esta característica, é uma solução que não requisita sinalização, o que acarreta nenhum overhead na rede, garantindo maior escalabilidade, entretanto não há garantia de 100%. A solução Intserv garante QoS através da reserva de recursos, fazendo com que seja necessário um protocolo de sinalização entre os pontos-finais e roteadores (RSVP). Este fato acarreta um overhead na rede, o que reduz a escalabilidade da solução. Com Intserv há 100% de garantia, pois os recursos que forem reservados para certa aplicação, somente poderão ser utilizados pela mesma. É importante ressaltarmos que as soluções Diffserv e Intserv não são excludentes, mas podem e devem atuar conjuntamente para prover a rede melhor QoS. No próximo capítulo abordaremos outro quesito fundamental para o sucesso de VoIP, os codificadores. Serão apresentados alguns dos codificadores usados atualmente e o codificador utilizado neste trabalho. 29