Slides

Tcc Mauricio Bento Ghem 2009 - Versão Final

Description
Trabalho de Conclusão de curso de Maurício Bento Ghem (Bentow).Proposta de uma Ferramenta de Monitoramento de Desempenho em Tempo Real para aplicações Live Streaming baseadas no protocolo RTP
Categories
Published
of 92
All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.
Related Documents
Share
Transcript
  • 1. Proposta de uma Ferramenta de Monitoramento de Desempenho em Tempo Real para aplicações Live Streaming baseadas no protocolo RTP por Maurício Bento Ghem
  • 2. UNIVERSIDADE DO VALE DO RIO DOS SINOS MAURÍCIO BENTO GHEM Proposta de uma Ferramenta de Monitoramento de Desempenho em Tempo Real para aplicações Live Streaming baseadas no protocolo RTP Monografia apresentada como requisito parcial para a obtenção do grau de Bacharel em Engenharia da Computação Prof. Msc. Eduardo Leivas Bastos Orientador São Leopoldo, Dezembro de 2009
  • 3. “O futuro pertence a quem souber libertar-se da idéia tradicional do trabalho como obrigação ou dever e for capaz de apostar numa mistura de atividades, onde o trabalho se confundirá com o tempo livre, com o estudo e com o jogo, enfim, com o ’ócio criativo’.” — D OMÊNICO D E M ASI
  • 4. AGRADECIMENTOS Gostaria de agradecer a meus pais que desde pequeno me incentivaram a estudar, e me apoiaram acreditando em meu potencial. Também, por me apoiar nas etapas da vida, me dar amor e proporcionar sempre as melhores condições em tudo. Pais, amo vocês. Agradeço a meu irmão por em momentos de total enlouquecimento devido ao tra- balho de conclusão entender minha situação e conversar comigo para relaxar um pouco. Agradeço a minha namorada por tentar compreender minha situação e ficar do meu lado nos muitos finais de semana que dediquei ao estudo. Agradeço aos meus amigos por entenderem a fase da vida que estou passando, por darem apoio e atenção nos momentos que mais precisei, e por estar ao meu lado mesmo eu estando um pouco ausente. Agradeço a meu orientador que me deu motivação, conhecimento, e muitas outras contribuições. Agradeço por acreditar em meu potencial e me dar forças que resultaram numa grande vontade em fazer o mestrado. Por fim, gostaria de fazer uma dedicação especial a todas as pessoas que frequentam meu blog. A troca de experiências para o crescimento pessoal e profissional é recíproca. Agora, é minha vez de agradecer a todos que me deram motivação, ajuda e compreensão nesta etapa. Valeu pessoal.
  • 5. SUMÁRIO LISTA DE ABREVIATURAS E SIGLAS . . . . . . . . . . . . . . . . . . . . 8 LISTA DE FIGURAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 LISTA DE TABELAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 RESUMO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 ABSTRACT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 1.1 Trabalhos relacionados . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 1.2 Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 1.3 Estrutura do Trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2 REVISÃO BIBLIOGRÁFICA . . . . . . . . . . . . . . . . . . . . . . . . 20 2.1 Live Streaming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.2 Fatores que afetam a transmissão Live Streaming . . . . . . . . . . . 22
  • 6. 2.2.1 Atraso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.2.2 Jitter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 2.2.3 Perda de Pacotes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2.2.4 Largura de Banda Disponível . . . . . . . . . . . . . . . . . . . . . . 28 2.3 Protocolo de Sinalização: SIP . . . . . . . . . . . . . . . . . . . . . . . 30 2.3.1 User Agent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 2.3.2 Proxy Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 2.3.3 Redirect Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 2.3.4 Registrar Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 2.3.5 Gateway Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 2.4 Protocolos de Transporte . . . . . . . . . . . . . . . . . . . . . . . . . . 34 2.4.1 Real-time Transport Protocol (RTP) . . . . . . . . . . . . . . . . . . . 35 2.4.2 RTP Control Protocol (RTCP) . . . . . . . . . . . . . . . . . . . . . . 36 2.5 Protocolo para Feedback : ICMP . . . . . . . . . . . . . . . . . . . . . . 39 2.6 Padrão de Arquitetura: MVC . . . . . . . . . . . . . . . . . . . . . . . . 41 2.7 Síntese do capítulo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 3 METODOLOGIA DE DESENVOLVIMENTO . . . . . . . . . . . . . . . 45 3.1 Ambiente de Desenvolvimento . . . . . . . . . . . . . . . . . . . . . . . 45 3.1.1 Ferramentas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 3.1.2 Dispositivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 3.2 Requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 3.3 Técnicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 3.3.1 Tráfego RTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 3.3.2 Perda de Pacotes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
  • 7. 3.3.3 Atraso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 3.3.4 Jitter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 3.4 Modelagem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 3.5 Implementação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 3.5.1 Lógica - Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 3.5.2 Interface gráfica - View . . . . . . . . . . . . . . . . . . . . . . . . . . 65 3.5.3 Controlador - Controller . . . . . . . . . . . . . . . . . . . . . . . . . 67 3.5.4 Extra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 3.6 Síntese do capítulo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 4 EXPERIMENTAÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 4.1 Ambiente de Experimentação . . . . . . . . . . . . . . . . . . . . . . . 71 4.1.1 Máquina Virtual 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 4.1.2 Máquina Virtual 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 4.1.3 Máquina Virtual 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 4.2 Experimento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 4.3 Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 4.4 Discussão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 4.4.1 Tráfego RTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 4.4.2 Atraso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 4.4.3 Perda de Pacotes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 4.4.4 Buffer de compensação de jitter . . . . . . . . . . . . . . . . . . . . 84 4.5 Síntese do Capítulo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 5 CONCLUSÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
  • 8. REFERÊNCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
  • 9. LISTA DE ABREVIATURAS E SIGLAS ACK Acknowledge ASCII American Standard Code for Information Interchange CNAME Canonical Name DARPA Defense Advanced Research Projects Agency FEC Forward Error Correction GUI Graphical User Interface ICMP Internet Control Message Protocol IDE Integrated Development Environment IETF Internet Engineer Task Force IP Internet Protocol MGCP Media Gateway Control Protocol MVC Model View Controller NTP Network Time Protocol PABX Private Automatic Branch Exchange PSNR Peak Signal Noise Ratio PSTN Public Switched Telephone Network QoS Quality of Service RFC Request for Comments
  • 10. RR Receiver Report RTCP RTP Control Protocol RTP Real-time Transport Protocol RTT Round Trip Time SDES Source Description SIP Session Initiation Protocol SNMP Simple Network Management Protocol SO Sistema Operacional SR Sender Report SSRC Synchronization Source TCP Transmission Control Protocol TTL Time to live UAC User Agent Client UAS User Agent Server UA User Agent UDP User Datagram Protocol
  • 11. LISTA DE FIGURAS Figura 2.1: Diagrama demonstrando uma transmissão por streaming. . . . 21 Figura 2.2: Diagrama apresentando o buffer de compensação de jitter em ação (LIMA, 2006). . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Figura 2.3: Funções das entidades numa rede SIP. . . . . . . . . . . . . . . 32 Figura 2.4: O pacote RTP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Figura 2.5: O tipo de pacote sender report, do protocolo RTCP. . . . . . . . 39 Figura 2.6: O tipo de pacote receiver report, do protocolo RTCP. . . . . . . 40 Figura 2.7: Apresentação de diversas visualizações possíveis por causa do MVC, sem alterar a integridade dos dados de negócio (BUSCHMANN et al., 1996). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 Figura 2.8: Diagrama contendo os relacionamentos e papéis de cada uma das partes que compõem o padrão MVC (MICROSYSTEMS, 2008). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Figura 3.1: Diagrama da topologia de redes utilizada para o ambiente de pré-teste. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 Figura 3.2: Diagrama da organização de pacotes por agrupamento de fun- cionalidades. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 Figura 3.3: Diagrama do modelo de classes do projeto. . . . . . . . . . . . . 60 Figura 3.4: Diagrama de classes completo do protótipo. . . . . . . . . . . . 61
  • 12. Figura 3.5: Diagrama da classe ThreadPcap. . . . . . . . . . . . . . . . . . 63 Figura 3.6: Diagrama da classe classquerierpcap. . . . . . . . . . . . . . . . 63 Figura 3.7: Diagrama da classe ThreadICMP. . . . . . . . . . . . . . . . . . 64 Figura 3.8: Diagrama da classe QuerierICMP. . . . . . . . . . . . . . . . . . 65 Figura 3.9: Diagrama de classes completo do pacote Model. . . . . . . . . 65 Figura 3.10: Diagrama da classe GuiInicial. . . . . . . . . . . . . . . . . . . . 66 Figura 3.11: Diagrama da classe GuiSmB. . . . . . . . . . . . . . . . . . . . . 67 Figura 3.12: Diagrama da classe Grafico. . . . . . . . . . . . . . . . . . . . . 67 Figura 3.13: Diagrama de classes completo do pacote View. . . . . . . . . . 68 Figura 3.14: Diagrama de classes completo do pacote Controller. . . . . . . 68 Figura 3.15: Diagrama de classes completo do pacote Extra. . . . . . . . . . 69 Figura 4.1: Topologia de redes simulada que foi utilizada no ambiente de testes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 Figura 4.2: Interface gráfica inicial do protótipo. . . . . . . . . . . . . . . . . 74 Figura 4.3: Interfaces de rede disponíveis para execução do protótipo. . . . 74 Figura 4.4: Interface gráfica que representa a tela dos gráficos. . . . . . . . 76
  • 13. LISTA DE TABELAS Tabela 2.1: Tipos de mensagem e códigos ICMP associados com a des- crição. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 Tabela 4.1: Valores medidos para cada um das cinco execuções da apli- cação para o tráfego RTP. . . . . . . . . . . . . . . . . . . . . . . 77 Tabela 4.2: Valores medidos para cada um das cinco execuções da apli- cação para o atraso de ida e volta. . . . . . . . . . . . . . . . . . 78 Tabela 4.3: Valores estimados para cada um das cinco execuções da apli- cação para tamanho do buffer de compensação de jitter. . . . . 79 Tabela 4.4: Média aritmética de todos atributos da transmissão live stream- ing ao longo de cinco iterações. . . . . . . . . . . . . . . . . . . 80
  • 14. RESUMO A utilização de aplicações em tempo real sobre redes de pacotes (ex: VoIP, videocon- ferência, live streaming) têm crescido muito nos últimos anos, principalmente em virtude da popularização da Internet e do acesso à banda larga. De modo diferente das aplicações que não são fortemente dependentes dos aspectos temporais da transmissão, as aplicações em tempo real exigem uma infra-estrutura de transporte que possa oferecer determinadas garantias de desempenho aos pacotes. Usualmente, tais garantias são expressas por um conjunto de quatro métricas: largura de banda, atraso, perda de pacotes e jitter. Exis- tem diversas soluções disponíveis no mercado para o monitoramento dessas métricas. No entanto, o cálculo dos valores usualmente depende da aplicação de certos algoritmos in- termediários que podem dificultar a tarefa. Esse trabalho teve como objetivo a criação de uma ferramenta em código-aberto e gratuita que fosse capaz de medir diretamente as quatro métricas descritas acima. Após o desenvolvimento da ferramenta, realizada com técnicas de engenharia de software, um experimento foi realizado com o intuito de verificar se os requisitos previamente propostos para a ferramenta foram atingidos. Os resultados demonstraram que houve pouca variação dos valores coletados em diferentes amostras, com exceção do jitter. Apesar de os testes terem sido realizados em ambiente controlado e com técnicas de coleta que podem influenciar as medições, a ferramenta demonstrou ser rápida e eficaz e pode servir para tornar mais clara e objetiva a medição de desempenho em redes de pacotes. Palavras-chave: Live Streaming. Métricas de desempenho de QoS. Ferramenta de mon- itoramento de redes.
  • 15. A Propose for a Real Time Monitoring Tool for Live Streaming Applications, based on the RTP Protocol. ABSTRACT The use of real-time applications over packet networks (e.g. VoIP, videoconferencing, live streaming) have grown in recent years, mainly due the popularization of Internet and broadband access. Differently from the applications that are not heavily dependent on temporal aspects of transmission, the real-time applications require a transport infrastruc- ture that can provide certain performance guarantees to packets. Usually, such guaranties are expressed by a set of four metrics: bandwidth, delay, packet loss and jitter. There are some solutions available in the market for monitoring these metrics. However, the calcu- lation of the values usually depends on certain intermediary algorithms that may hinder the task. This study had the objective to create a free and open source tool that could di- rectly measure the four metrics described above. After the development of the tool, held by software engineering techniques, an experiment was conducted with the objective of whether the previously proposed requisites for the tool have been met. The results showed that there was almost no variation in the values obtained at different samples, except for jitter. Although the tests have been conducted in a controlled environment and with data collection techniques that could influence the measurements, the tool proved to be rapid and effective and can serve to make clear and objective the performance measurement in packet networks. Keywords: Live Streaming, QoS metrics, Network Monitoring Tool.
  • 16. 15 1 INTRODUÇÃO O live streaming é todo conteúdo audiovisual capturado em tempo real e disponi- bilizado para inúmeros espectadores através da Internet (VELOS et al., 2002). Diversas aplicações multimídia podem ser caracterizadas por esse conceito, tais como conversações por VoIP (Voice over Internet Protocol), videoconferência e entretenimento, e educação à distância (EaD). De um ponto de vista mais específico, qualquer rede de transporte de da- dos baseada na técnica de comutação de pacotes (a Internet é apenas um caso particular) pode ser utilizada para suportar aplicações live streaming. Apesar de mais eficiente em termos de alocação de recursos do que a técnica de comutação de circuitos, a comutação de pacotes não reserva recursos para as aplicações. Cada pacote é visto como uma unidade de informação independente e tratado de maneira individual. Desta forma, os pacotes de uma aplicação podem sofrer atrasos variáveis quando passam em enlaces congestionados e até mesmo serem descartados em casos mais severos (KUROSE; ROSS, 2006). A literatura define quatro métricas de desempenho de rede que influenciam direta- mente no QoS (Quality of Service) oferecido às aplicações em geral: largura de banda, atraso, jitter e perda de pacotes. Em função de seus caráter instantâneo de transmissão, as aplicações live streaming necessitam de uma rede de transporte que ofereça garantias de desempenho que são expressas por valores adequados para cada uma dessas métricas (DURKIN, 2002). Apesar de haver um crescimento significativo na utilização de apli- cações em tempo real (motivado principalmente pelo barateamento do acesso à banda larga), percebe-se a inexistência de uma ferramenta gratuita e de código-aberto que mon- itore continuamente todas as quatro métricas de desempenho de rede oferecidas para uma aplicação em tempo real. Além disso, certas aplicações de monitoramento (especial- mente aquelas baseadas no protocolo SNMP) são dirigidas ao monitoramento de var-
  • 17. 16 iáveis simples e são complexas no tratamento de variáveis mais complexas e que exigem um histórico de amostras (como o jitter, por exemplo). Esse trabalho tem como objetivo o desenvolvimento de um protótipo de ferramenta de código-aberto para o monitoramento do desempenho de aplicações live streaming baseadas no protocolo RTP (Real Time Protocol). A concepção desse trabalho teve in- ício dentro do projeto Convergência Digital da UNISINOS, que tinha como objetivo a criação de aplicações interativas para a tecnologia de TV Digital. O objetivo principal do projeto era permitir a maior interatividade possível do usuário com um meio de acesso. Nesse contexto, foi percebida a necessidade da criação de um sistema Web para interação aluno-professor utilizando-se um ambiente baseado em videoconferência. Além do sis- tema, uma ferramenta de monitoramento em tempo real também mostrou-se necessária com o intuito de informar o usuário da qualidade de sua transmissão live streaming. Optou-se pela análise de aplicações em tempo real baseadas no protocolo RTP em vir- tude de sua ampla utilização no transporte de conteúdo multimídia. O protocolo RTP utiliza como protocolo de transporte o UDP (User Datagram Protocol). O UDP é ampla- mente utilizado em transmissões com tempo real por ser bastante simples e não-orientado à conexão (MEGGELEN; SMITH; MADSEN, 2005). Apesar da possibilidade de real- ização de transmissões em tempo real utilizando o protocolo TCP (Transmission Control Protocol), optou-se pela análise de aplicações em tempo real baseadas em RTP. 1.1 Trabalhos relacionados Existem diversos trabalhos teóricos que procuram analisar o impacto das métricas de desempenho nas aplicações em tempo real. No entanto, poucos descrevem o desen- volvimento de ferramentas que podem ser utilizadas para medir tais métricas. Tao, Apos- tolopoulos e Guérin (2008) propôs uma investigação na qualidade de vídeo em redes IP, por meio da métrica PSNR (Peak Signal Noise Ratio). Este trabalho analisou diversos codecs e suas relações com a taxa de transmissão e características de vídeo, entre outros parâmetros. Por outro lado, Lima (2006) propôs a criação de um sistema que permitia a monitoração das ligações VoIP. Este sistema tinha um caráter centralizado, ou seja, toda a informação era obtida nos hosts repassada para um banco de dados que realizava cálculos para obter uma pontuação média de qualidade com relação à qualidade de uma ligação.
  • 18. 17 Ao invés de decodificar os pacotes de controle da transmissão live streaming, o trabalho propôs a geração de logs por parte da aplicação utilizada na transmissão VoIP, que auxili- ado pelo protocolo SNMP (Simple Network Management Protocol) alimentava a base de dados. Um software pago que possui funcionalidades semelhantes, mas tem uma arquitetura centralizada, é o Cisco Voip Monitor Server 1 . Esta aplicação realiza toda monitoração que esta ferramenta propõe, centraliz
  • We Need Your Support
    Thank you for visiting our website and your interest in our free products and services. We are nonprofit website to share and download documents. To the running of this website, we need your help to support us.

    Thanks to everyone for your continued support.

    No, Thanks