• Nenhum resultado encontrado

VoIPFix: Uma ferramenta para análise e detecção de falhas em sistemas de telefonia IP

N/A
N/A
Protected

Academic year: 2021

Share "VoIPFix: Uma ferramenta para análise e detecção de falhas em sistemas de telefonia IP"

Copied!
8
0
0

Texto

(1)

VoIPFix: Uma ferramenta para análise e detecção

de falhas em sistemas de telefonia IP

Paulo C. Siécola1, Fabio Kon1

1

Departamento de Ciência da Computação – Instituto de Matemática e Estatística Universidade de São Paulo

{siecola,fabio.kon}@ime.usp.br

Abstract. The VoIPFix project arose from the need for a tool to complement similar tools in the analysis of computer networks for IP telephony. It was built to be an efficient and unique management tool for VoIP, with advanced features required to support the computer network and IP telephony professionals to observe and diagnose problems related to VoIP.

Resumo. O projeto VoIPFix surgiu da necessidade de uma ferramenta que complementasse as demais existentes no ramo de análise de redes de computadores para telefonia IP. Ele foi construído para ser uma ferramenta de gerenciamento eficiente e exclusiva para VoIP, com funcionalidades necessárias para dar suporte ao profissional de rede de computadores e telefonia IP a observar e diagnosticar problemas de VoIP.

1. Introdução

As primeiras aplicações de telefonia IP apareceram de forma mais concreta no final da década de 1990, quando começaram a se desenvolver aplicativos para computadores, capazes de transportar a voz codificada e transmitida em pacotes [Johnston 2004]. Com esses programas para telefonia IP, era possível que duas pessoas se comunicassem através da Internet, embora com uma qualidade de voz ainda muito precária.

O SIP [Rosenberg et al. 2002], desenvolvido pelo IETF (Internet Engineering Task Force), é o protocolo mais utilizado para iniciar, controlar e encerrar sessões, fazendo apenas o trabalho de sinalização entre os envolvidos, não lidando com questões de voz quando se trata de chamadas. Para o transporte da voz digitalizada e codificada, existe o RTP (Real-Time Transport Protocol) [Schulzrinne et al. 2003] desenvolvido também pelo IETF no período entre 1992 e 1996, baseado em outros protocolos com o mesmo objetivo.

Neste artigo, é apresentado o VoIPFix [Siécola 2011], uma ferramenta de análise ágil e eficiente de mensagens de sinalização e pacotes voz de telefonia IP, que pode ser executado em Windows ou GNU/Linux, disponibilizado como um projeto de software livre através do Centro de Competência de Software Livre do IME-USP, no sítio http://ccsl.ime.usp.br/voipfix, sob a licença GNU General Public License v.3.

2. Motivação

Apesar dos benefícios que a tecnologia VoIP trouxe, muitos problemas são enfrentados pelos usuários, pois o sistema de telefonia IP depende fortemente de

(2)

recursos que não estão sob o controle das aplicações e equipamentos responsáveis por oferecer esse serviço [Karapantazis and Pavlidou 2009]. Alguns dos problemas são:

· degradação da qualidade de voz;

· ausência de áudio em um ou ambos os sentidos; · queda de ligações e;

· indisponibilidade do serviço de telefonia.

As causas dos problemas de um sistema de telefonia IP são relativamente bem conhecidas, mas são muito difíceis de serem diagnosticadas, envolvendo análise de grande quantidade de dados. A fim de facilitar esse diagnóstico, os objetivos do VoIPFix são:

· capturar e analisar de forma eficiente, pacotes de sinalização e voz;

· exibir relatórios das ligações, informando dados como perda de pacotes e jitter; · informar problemas relativos à sinalização nas chamadas e nos pedidos de

registro e;

· permitir a operação e o diagnóstico de problemas por usuários que tenham conhecimento básico de VoIP.

3. VoIPFix

O VoIPFix foi construído com o conceito de programação orientada a objetos, utilizando a linguagem C++. Ele é composto por 25 classes contendo 9542 linhas de código espalhadas por 49 arquivos.

3.1 Arquitetura

A Figura 1 mostra os módulos principais da arquitetura de construção do VoIPFix.

Figura 1. Arquitetura do VoIPFix.

O módulo Capturador é responsável pela coleta de pacotes, seja ela feita através de uma interface de rede ou por arquivos salvos em disco, e também pelo salvamento de pacotes em arquivos. Essas duas tarefas são implementadas através de

(3)

bibliotecas específicas para esse tipo de aplicação: WinpCap [WinpCap 2010], para ambiente Windows, e libpcap [TCPDump/Libpcap 2010], para ambiente GNU/Linux.

No módulo Interpretador, os pacotes provenientes de uma interface de rede ou de um arquivo aberto do disco são selecionados e interpretados, visando extrair somente as informações de interesse para os demais módulos da hierarquia superior da aplicação. O Detector de transações é responsável por identificar os pacotes SIP e RTP de uma mesma transação, para que possa ser feita análise de estados de fechamento, cálculos e estatísticas pelo módulo analisador. Essa tarefa é executada quando o VoIPFix recebe pacotes de uma interface de rede e quando recebe pacotes de um arquivo sendo aberto do disco.

O Analisador é um módulo que realiza as tarefas de maior interesse ao usuário, como por exemplo:

· identificação de problemas de sinalização e fluxo de mídia;

· cálculos de perda de pacotes, jitter e erros de sequência em fluxos de mídia e; · geração de gráficos de estatísticas, como fechamento de chamadas.

A interface gráfica de usuário (GUI) exibe as informações dos arquivos, transações e análises realizadas pela aplicação, mediante os comandos do usuário. A figura abaixo mostra a interface gráfica do VoIPFix.

Figura 2. Interface gráfica do VoIPFix.

As ferramentas do VoIPFix foram elaboradas para guiar o usuário a realizar a análise partindo de uma visão macro das ocorrências, passando por funcionalidades que trazem informações, relatórios e estatísticas, até chegar aos pacotes que compõem uma determinada transação. Essa abordagem permite que usuários de pouca experiência utilizem a ferramenta até o nível adequado do seu conhecimento, não deixando os usuários avançados sem as ferramentas de análise mais aprofundadas.

O Gerenciador, como o próprio nome diz, cuida do controle de todo o funcionamento da aplicação.

3.2 Funcionalidades

(4)

Captura de pacotes: realiza a captura de todos os pacotes de uma determinada interface de rede, permitindo o salvamento em arquivos, que poderão ser abertos para uma análise posterior pelo usuário.

Análise de pacotes de forma eficiente em plataformas multicore: em plataformas com processador multicore, o VoIPFix tem o desempenho de processamento dos pacotes aumentado, utilizando-se dessa característica para realizar a análise em mais de uma tarefa paralelamente.

Análise de múltiplos arquivos gravados sequencialmente: faz a ferramenta abrir vários arquivos selecionados de uma só vez, dando a sensação ao usuário de que ele está abrindo somente um arquivo contendo todas as informações.

Exibição de detalhes das mensagens de sinalização e voz: exibe todos os campos das mensagens de sinalização e voz de forma detalhada.

Exibição de gráfico detalhado de transações: exibe as mensagens da transação de forma gráfica, como na figura abaixo:

Figura 3. Gráfico com transação de registro e chamada.

Exibição de gráfico com número de transações, estatísticas de fechamento de chamadas e registros, número de chamadas por usuário ou máquina: mostra vários gráficos ao usuário de um arquivo aberto ou de uma captura realizada através de uma interface de rede.

(5)

Filtro de transações: através da lista de transações, essa ferramenta permite ao usuário filtrar as requisições com base em parâmetros como: tipo de transação, horário de início, endereço IP de origem, endereço IP de destino, usuário de origem, usuário de destino e estado de finalização da transação.

Medição de jitter, perda de pacotes e erros de sequência: exibe informações de jitter, perda de pacotes e erros de sequência nos fluxos RTP das chamadas, assim como é feita em outras ferramentas do gênero, como mostra a figura abaixo.

Figura 4. Relatório de jitter, perda de pacotes e erro de sequência.

Detecção de mudez total ou parcial em chamadas: essa funcionalidade é capaz de identificar a mudez total ou parcial através da detecção da ausência de pacotes RTP em um ou em ambos os sentidos.

Detecção de transações com erros de sinalização: o VoIPFix detecta erros de sinalização, como: problemas de fechamento de chamada, registros negados, valores de campos errados e problemas de estabelecimento de chamadas. A figura abaixo mostra um exemplo de valor incorreto da mensagem de BYE no fechamento de uma chamada.

Figura 5. Detecção de problema de fechamento de chamada.

Informativo com causas de problemas com transações: o VoIPFix evidencia as transações que não puderam ser completadas, por situações como: senha de autenticação incorreta, usuário de origem ou destino inexistente, usuário de destino ocupado ou temporariamente indisponível, configuração de codificadores de voz incorreta, erros no agente que recebe a requisição, indisponibilidade do agente destino e chamada cancelada.

Reprodução do áudio das chamadas com codificador G.711: permite que o usuário possa ouvir o áudio das chamadas que forem completadas utilizando o codificador de voz G.711.

(6)

4. Testes de desempenho

Foram realizados testes de abertura de arquivos grandes no formato PCAP, com o objetivo de avaliar o tempo gasto pelo VoIPFix para realizar tal trabalho, comparado com o Wireshark [Wireshark 2010] em condições semelhantes.

Tabela 1. Informações sobre máquinas utilizadas nos testes.

Máquina Sistema Operacional Processador RAM

1 Debian GNU/Linux kernel

2.6.26-2-amd64, com KDE 3.5.10 64 bits

AMD Phenom II X4 945 (4 núcleos), com clock de 3 GHz e cache de 512 KB

4 GB

2 Windows 7 Home Basic 64 bits Intel Core 2 Duo T6600 (2 núcleos), com

clock de 2.20 GHz e cache de 2048 KB

3 GB

A seguir, são apresentadas informações relevantes sobre os arquivos utilizados nos teste:

Tabela 2. Informações sobre os arquivos utilizadas nos testes.

Tamanho / Número 50 MBytes 100 MBytes 150 MBytes 200 MBytes

transações SIP 5.869 7.715 8.781 11.020 transações de registro 338 377 407 454 transações de chamada 62 115 154 209 pacotes SIP 23.496 30.879 35.411 44.518 pacotes RTP 220.092 574.781 838.603 1.224.064 total de pacotes 388.619 817.997 1.163.435 1.629.625

A seguir, o resultado dos testes de abertura de cada arquivo, em cada máquina, utilizando o VoIPFix e o Wireshark:

Tabela 3. Tempo de abertura de arquivos.

Arquivo 50 MB Arquivo 100 MB Arquivo 150 MB Arquivo 200 MB Tempo (s) Máq. 1 Máq. 2 Máq. 1 Máq. 2 Máq. 1 Máq. 2 Máq. 1 Máq. 2

VoIPFix 8,74 11,62 23,97 28,11 46,92 49,43 64,47 72,46

Wireshark 53 71 126 175 173 240 295 460

A medição de tempo, nos testes com o VoIPFix, foi feita com a própria ferramenta, que informa os segundos gastos desde o comando de abertura do arquivo até a exibição de toda a lista de transações. No Wireshark, foi realizada a medição com a ajuda de cronômetro manual, por isso os tempos não são tão precisos quanto no VoIPFix.

Pelos resultados mostrados acima, é evidente que o VoIPFix atingiu com sucesso um dos maiores objetivos propostos, que foi a abertura e a análise de uma grande quantidade de pacotes de forma eficiente, pois ele gastou um tempo bem menor que o Wireshark, principalmente nos arquivos maiores.

(7)

Para comprovar a eficiência do VoIPFix em relação ao Wireshark, foram realizados os mesmos testes de abertura de arquivos grandes, porém em uma máquina com apenas um núcleo. Dessa forma, o VoIPFix utilizou apenas uma thread para processar os arquivos e seus pacotes, como o Wireshark. A seguir a descrição da máquina utilizada nos testes:

· sistema operacional: Kubuntu 8.04 com kernel 2.6.24-16 com KDE versão 3.5.9; · processador: AMD Athlon XP 2400+, com clock de 2 GHz - single core;

· memória RAM: 512 MB.

Tabela 4. Teste de desempenho em máquina de um núcleo.

Tamanho do arquivo / Tempo (s) 50 MB 100 MB 150 MB 200 MB

VoIPFix 29,50 97,30 205,05 322,11

Wireshark 274 790 1210 2180

A seguir, alguns motivos pelo qual o VoIPFix possui uma eficiência superior, se comparada ao Wireshark, em relação ao desempenho de abertura de arquivos:

· utiliza uma biblioteca de interpretação de mensagens SIP mais eficiente;

· somente realiza processamento de pacotes e mensagens que interessam para a análise de VoIP;

· utiliza classes de armazenamento de informações em forma de listas, desenvolvidos com foco em desempenho e baixo consumo de memória.

O VoIPFix já é utilizado como ferramenta, na empresa Leucotron Telecom, em situações como:

· detecção de eventos anormais no sistema de telefonia principal da empresa; · análise de problemas em campo;

· verificação de funcionamento de equipamentos de testes em laboratório; · medição de jitter e perda de pacotes em ensaios de grande escala.

5. Trabalhos futuros

A base desenvolvida neste trabalho permitirá evoluções, melhorias e criações de novas funcionalidades para o VoIPFix, possivelmente através da comunidade de software livre que espera-se ser criada em torno da ferramenta. Algumas delas serão:

· medição de qualidade de voz [Carvalho 2004]; · reprodução de áudio de chamadas com iLBC; · exportação de logs de eventos;

· detecção de dígitos no payload RTP e;

· gráfico de jitter e taxa de perda de pacotes ao longo da chamada.

6. Descrição da demonstração

A demonstração do VoIPFix será feita com a construção de um pequeno sistema de telefonia IP, composto por um PBX IP e aparelhos telefônicos IP. Todos esses equipamentos estarão ligados em um switch gerenciável, com espelhamento de portas para um computador, que executará o VoIPFix, capturando e analisando as chamadas entre os terminais.

(8)

Também será feita a abertura de arquivos grandes, para exibir o desempenho da aplicação nessa situação, comparada com outras ferramentas do gênero. Além disso, outros arquivos serão utilizados para exibir as demais características do VoIPFix, como medição de jitter, perda de pacotes, detecção de erros de sinalização, ausência de áudio, exibição de gráficos e relatórios.

7. Conclusão

Com o VoIPFix, o profissional de VoIP tem funcionalidades importantes que trazem grandes benefícios para seu trabalho de análise de protocolos de sinalização e pacotes de voz, como:

· ferramenta de código aberto, eficiente, ágil, intuitiva para profissionais com

conhecimentos básicos em protocolos e detalhista para avançados;

· análise ágil de pacotes SIP e RTP em tarefas concorrentes, reduzindo o tempo gasto para localizar e analisar transações de interesse;

· mecanismos de detecção de ausência de áudio em chamadas, que auxilia a localização de chamadas com problemas de mudez;

· análise de transações de registro, funcionalidade importante para detectar situações anormais nas requisições desse tipo;

· mecanismo de análise de vários arquivos gravados em sequência, que auxilia e acelera a localização e análise de transações em situações onde foram gerados muitos arquivos de captura, e;

· detecção de erros de sinalização, que aponta as causas em detalhes nos campos das mensagens, sem que o profissional tenha que ter um conhecimento profundo do protocolo SIP.

8. Referências

Carvalho, L. S. G. D. (2004) Implementação do Modelo E para Avaliação Objetiva da Qualidade de Fala em Redes de Comunicação VoIP. 2004. 169 p. Dissertação (Mestrado em Ciência da Computação) – Instituto de Ciências Exatas, Universidade Federal do Amazonas, Manaus, Setembro de 2004.

Johnston, Alan B. (2004) Undestanding the Session Initiation Protocol. 2nd. ed. Artech House Telecommunications. 283 p.

Rosenberg, J. et al. (2002) SIP: Session Initiation Protocol. IETF RFC3261.

Schulzrinne, H. et al. (2003) RTP: A Transport Protocol for Real-Time Applications. IETF RFC3550.

Siécola, Paulo C. (2011) VoIPFix: Uma ferramenta para análise e detecção de falhas em sistemas de telefonia IP. 106 p. Dissertação (Mestrado em Ciência da Computação) – Instituto de Matemática e Estatística, Universidade de São Paulo, São Paulo, Fevereiro de 2011.

Karapantazis, S., Pavlidou, F. (2009) VoIP: A comprehensive survey on a promising technology. In The International Journal of Computer and Telecommunications Networking, volume 53, issue 12, agosto de 2009.

WinpCap. (2010) http://www.winpcap.org. Último acesso em 02/10/2010. Wireshark. (2010) www.wireshark.org. Último acesso em 01/11/2010

Referências

Documentos relacionados

Por último, temos o vídeo que está sendo exibido dentro do celular, que é segurado e comentado por alguém, e compartilhado e comentado no perfil de BolsoWoman no Twitter. No

Local de realização da avaliação: Centro de Aperfeiçoamento dos Profissionais da Educação - EAPE , endereço : SGAS 907 - Brasília/DF. Estamos à disposição

Mestrado em: Nutrição Humana ou Nutrição Clínica ou Saúde Coletiva ou Ciências da Saúde ou Ciências ou Saúde ou Alimentos e Nutrição e Desenvolvimento na

A participação foi observada durante todas as fases do roadmap (Alinhamento, Prova de Conceito, Piloto e Expansão), promovendo a utilização do sistema implementado e a

Objetivo: Garantir estimativas mais realistas e precisas para o projeto, ao considerar nesta estimativa o esforço necessário (em horas ou percentual do projeto) para

a) Realizar entrevistas com duas empresas importadoras, sendo uma de equipamentos médico-hospitalares, para identificação de requisitos para desenvolvimento de um protótipo de

Ainda segundo Gil (2002), como a revisão bibliográfica esclarece os pressupostos teóricos que dão fundamentação à pesquisa e às contribuições oferecidas por

Os ativos não circulantes classificados como disponível para venda são mensurados pelo menor montante entre o seu custo contábil e o seu valor justo, líquido das despesas com a