ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups...

79
FERNANDO ZANK CORREA EVANGELISTA ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA EM REDES PAR-A-PAR CANOAS, JUNHO DE 2009

Transcript of ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups...

Page 1: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

FERNANDO ZANK CORREA EVANGELISTA

ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDI A

EM REDES PAR-A-PAR

CANOAS, JUNHO DE 2009

Page 2: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

2

FERNANDO ZANK CORREA EVANGELISTA

ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA

EM REDES PARA-A-PAR

Trabalho de conclusão apresentado à banca examinadora do curso de Ciência da Computação do Centro Universitário La Salle - UNILASALLE, como exigência parcial para a obtenção do grau de bacharel em Ciência da Computação, sob a orientação do professor Ms. Tasso Gomes de Faria.

CANOAS, JUNHO DE 2009

Page 3: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

3

TERMO DE APROVAÇÃO

FERNANDO ZANK CORREA EVANGELISTA

ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA

EM REDES PAR-A-PAR

Trabalho de conclusão aprovado como requisito parcial para obtenção do grau de bacharel em Ciência da Computação do Curso de Ciência da Computação do Centro Universitário La Salle - UNILASALLE, pela seguinte banca examinadora:

Prof. Ms. Marcos Ennes Barreto

Unilasalle

Prof. Ms. Rafael Kunst

Unilasalle

Canoas, de Junho de 2009.

Page 4: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

DEDICATÓRIA

Dedico este trabalho a minha família que me deu todo apoio necessário para

chegar até aqui, principalmente minha mãe Márcia e meu pai Mário, ao meu avô

Mário que infelizmente não pode acompanhar até o final, mas foi muito importante

durante o caminho percorrido para chegar até aqui e a minha avó Suely. Também

dedico a minha namorada Priscila que teve paciência para me aguentar nos

momentos difíceis e compreender os dias que tive que me dedicar totalmente ao

trabalho. Também dedico aos amigos e colegas que acompanharam esta jornada e

todos os demais que de alguma maneira foram importante para a conclusão deste

trabalho. Finalmente dedico este trabalho ao meu orientador Tasso Gomes de Faria

que aceitou o desafio de me orientar durante este trabalho e fez isso brilhantemente

conseguindo me mostrar caminhos viáveis para chegar até o fechamento deste

trabalho.

Page 5: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

AGRADECIMENTOS

Agradeço a Unilasalle pela estrutura disponibilizada para realizar este

trabalho e ao quadro docente do curso de Ciência da Computação pelo

conhecimento transmitido e pela ajuda dada nos momentos necessários. Agradeço

por todo empenho, dedicação e pela ajuda incentivadora do meu orientador Tasso

Gomes de Faria. Agradeço aos meus colegas de curso que também partilharam

deste trabalho especialmente aos colegas Gian Franscesco Jaskulski e Nélson Buis

Sonntag que me incentivaram e se disponibilizaram em momentos importantes para

a realização deste trabalho. Também agradeço aos colegas Thiago Cabelleira,

Thiago Oliveira, Michel David, Rafael Garbin, Cassius Pain entre muitos outros que

também foram importantes durante este processo. Também agradeço a todos meus

amigos que acompanharam este sonho desde antes dele se iniciar até o final do

percurso.

Page 6: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

RESUMO

Com a popularização da Internet e o aumento da velocidade da banda larga, um grande número de usuários opta por acessar a informações através de conteúdo multimídia. Sistemas de fluxo de vídeo ao vivo par-a-par são utilizados para entregar conteúdo multimídia para os usuários; estes sistemas podem ser afetados por uma série de problemas que interferem em sua transmissão ou qualidade do conteúdo, um destes problemas é flash crowds. Este trabalho apresenta uma análise de parâmetros que influenciam no flash crowd em sistemas de fluxo de vídeo ao vivo par-a-par. Palavras-Chave: redes par-a-par, live streaming e flash crowd.

ABSTRACT

With the popularization of the Internet and the broadband’s increase of speed, many users choose to access the information through multimedia content. Peer-to-peer live streaming systems are employed to delivery multimedia content to the users; these systems may be affected by a series of problems that interfere in its transmission or content’s quality, one of these problems is flash crowds. This work presents one analyses of parameters that interfere on flash crowds in live streaming peer-to-peer systems.

Keywords: peer-to-peer networks, live streaming and flash crowd.

Page 7: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

LISTA DE ABREVIATURAS E SIGLAS

ALM Application layer multicast

AOL American on line

BSD Berkeley Software Distribution

CAN Content Addressable Network

CD Compact Disc

CDN Content Delivery Network

CNN Cable News Network

CPU Central Processing Unit

CSV Comma-separated values

DHT Distributed Hash Table

DTV Digital Television

DV Digital Video

DVD Digital Video Disk

DoS Denial of Service

HTTP Hypertext Transfer Protocol

IEEE Institute of Electrical and Electronics Engineers

IP Internet Protocol

ISP Internet Service Provider

MPEG Moving Pictures Experts Groups

MPF Média de pacotes transmitidos até a falha

NF Número de falhas ocorridas

NM Número máximo de falhas

NP Número de pares utilizados

NR Número de repetições realizadas

P2P Peer-to-peer

PF Percentual de falhas ocorridas

PG Total de pacotes gerados durante uma transmissão sem erros

PTF Percentual médio do vídeo transmitido até a falha

QoS Quality of Service

RFC Request for Comments

Page 8: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

8

RTP Real-time Transport Protocol

RTSP Real Time Streaming Protocol

TCP Transmission Control Protocol

TP Tempo médio de execução dos pares que não apresentaram

falhas

TPF Tempo médio de execução dos pares que apresentaram falhas

TS Tempo médio de execução do servidor

VCR Video Cassete Recording

VoD Video on Demand

VOIP Voice Over Internet Protocol

Page 9: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

LISTA DE FIGURAS

Figura 1 – Fluxo de vídeo unicast .............................................................................18

Figura 2 – Fluxo de vídeo multicast...........................................................................19

Figura 3 – Arquitetura centralizada ...........................................................................21

Figura 4 – Arquitetura baseada em proxy .................................................................22

Figura 5 – Rede de distribuição de conteúdo............................................................22

Figura 6 – Arquitetura híbrida....................................................................................23

Figura 7 – (a) Falha ou saída inesperada de um par ................................................28

Figura 7 – (b) Auto-adaptação da rede .....................................................................28

Figura 8 – Topologia de fluxo de vídeo P2P organizado em árvore..........................30

Figura 9 – Topologia de fluxo de vídeo P2P organizado em malha ..........................31

Figura 10 – Distribuição de conteúdo no PRIME.......................................................35

Figura 11 – Gráfico demonstrativo de flash crowd ....................................................43

Figura 12 – Gráfico percentual de pares sem falhas x pares com falhas em A1.......54

Figura 13 – Gráfico percentual de pares sem falhas x pares com falhas em A2.......54

Figura 14 – Gráfico relação PTF x NF em A .............................................................55

Figura 15 – Gráfico percentual de pares sem falhas x pares com falhas em B1.......56

Figura 16 – Gráfico percentual de pares sem falhas x pares com falhas em B2.......57

Figura 17 – Gráfico percentual de pares sem falhas x pares com falhas em B3.......58

Figura 18 – Gráfico percentual de pares sem falhas x pares com falhas em B4.......59

Figura 19 – Gráfico relação PTF x NF em B .............................................................60

Figura 20 – Gráfico percentual de pares sem falhas x pares com falhas em C1 ......61

Figura 21 – Gráfico percentual de pares sem falhas x pares com falhas em C2 ......61

Figura 22 – Gráfico percentual de pares sem falhas x pares com falhas em C3 ......62

Figura 23 – Gráfico percentual de pares sem falhas x pares com falhas em C4 ......63

Figura 24 – Gráfico relação PTF x NF em C .............................................................64

Figura 25 – Gráfico relação PTF x PF dos melhores casos ......................................65

Figura 26 – Gráfico relação PTF x PF dos piores casos ...........................................66

Page 10: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

10

LISTA DE QUADROS

Quadro 1 – Comparativo entre sistemas de streaming P2P.................................... 38

Quadro 2 – Comparativo entre características de flash crowds e aaques de DoS.. 42

Quadro 3 – Parâmetros utilizados nas experimentações dos cenários ................... 51

Quadro 4 – Parâmetros utilizados nas experimentações dos cenários ................... 52

Quadro 5 – Siglas e Parâmetros utilizados na avaliação.......................................... 55

Page 11: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

SUMÁRIO

1 INTRODUÇÃO................................................................................................. 13

1.1 Motivação.......................................... ........................................................... 13

1.2 Objetivos.......................................... ............................................................ 14

1.3 Organização do texto............................... ................................................... 14

2 FLUXO DE VÍDEO........................................................................................... 15

2.1 Aplicações ......................................... .......................................................... 16

2.2 Tipos de fluxos de vídeo........................... .................................................. 17

2.2.1 Fluxo de vídeo sob demanda (VoD) ........................................................... 17

2.2.2 Fluxo de vídeo ao vivo (Live streaming) ..................................................... 18

2.3 Protocolos......................................... ........................................................... 19

2.4 Arquitetura e topologia............................ ................................................... 20

2.4.1 Centralizada ............................................................................................... 20

2.4.2 Baseada em proxy...................................................................................... 21

2.4.3 Rede de distribuição de conteúdo (CDN) ................................................... 22

2.4.4 Híbrida ........................................................................................................ 23

2.4.5 Considerações sobre o Capítulo ................................................................ 23

3 REDES PAR-A-PAR (P2P) .............................. ............................................... 25

3.1 Características de redes P2P ....................... .............................................. 26

3.2 Organização de redes de sobreposição............... ..................................... 28

3.3 Streaming P2P...................................... ....................................................... 29

3.3.1 Topologia em árvore................................................................................... 30

3.3.2 Topologia em malha ................................................................................... 31

4 TRABALHOS RELACIONADOS ............................. ....................................... 32

4.1 Chainsaw ..................................................................................................... 32

4.2 AnySee ......................................................................................................... 33

4.3 Coolstreaming ............................................................................................. 33

4.4 PRIME ........................................................................................................... 34

4.5 Análise comparativa de sistemas de fluxo de vídeo p ar-a-par ............... 35

4.6 Problemas identificados............................ ................................................. 37

5 FLASH CROWD ........................................ ...................................................... 39

Page 12: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

12

5.1 Identificação de eventos de flash crowd............ ....................................... 39

5.2 Flash crowds em sistemas Par-a-par ................. ....................................... 41

6 MÉTODO PROPOSTO.................................................................................... 44

6.1 Escopo do Trabalho................................. ................................................... 44

6.2 Linguagem e ambiente de programação................ ................................... 45

6.3 Estrutura do protótipo ............................. ................................................... 46

6.3.1 Módulo Bootstrap ....................................................................................... 46

6.3.2 Módulo Servidor de Fluxo de vídeo ............................................................ 47

6.3.3 Módulo par.................................................................................................. 48

6.3.4 Módulos e funcionalidades do protótipo ..................................................... 48

6.4 Avaliação do Método ................................ .................................................. 49

6.5 Cenários........................................... ............................................................ 49

6.5.1 Cenário A.................................................................................................... 51

6.5.2 Cenário B.................................................................................................... 51

6.5.3 Cenário C ................................................................................................... 51

6.6 Análise e resultados ............................... .................................................... 52

6.6.1 Resultados e análise do cenário A ............................................................. 53

6.6.2 Resultados e análise do cenário B ............................................................. 56

6.6.3 Resultados e análise do cenário C ............................................................. 60

6.6.4 Comparação entre cenários ....................................................................... 64

7 CONSIDERAÇÕES FINAIS............................... .............................................. 67

7.1.1 Resultados encontrados ............................................................................. 67

7.1.2 Limitações e dificuldades encontradas....................................................... 68

7.1.3 Trabalhos futuros........................................................................................ 69

REFÊRENCIAS..................................................................................................... 71

APÊNDICE A – Código fonte do módulo Bootstrap ...... ................................... 76

APÊNDICE B – Código fonte do módulo Servidor de flu xo de vídeo ............. 78

APÊNDICE C – Código fonte do módulo Par ............ ........................................ 79

Page 13: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

1 INTRODUÇÃO

Na medida em que os avanços tecnológicos são constantes, a necessidade

de obter informações em tempo real é imprescindível. Este comportamento

ocasionou um aumento na demanda por acessos, e com ela a criação de

mecanismos para atendê-las. A transmissão de vídeos em tempo real é um grande

desafio, pois fluxos de vídeo em tempo real sofrem grande sensibilidade ao atraso e

perda de pacotes, por este motivo é necessário garantir uma série de pré-requisitos

para que seja garantida a usabilidade desta tecnologia.

Redes par-a-par (P2P) (CLARK, 2001) responsáveis atualmente por grande

parte da disponibilidade do conteúdo multimídia na rede (Internet) acompanham o

aumento da banda, possibilitando assim que mais usuários tenham acesso a

informações em tempo real. Conseqüentemente esta estrutura necessita de um

grande poder de escalabilidade para aumentar os recursos disponíveis na rede.

1.1 Motivação

A utilização de sistemas par-a-par para as mais diversas áreas vem

crescendo dia a dia podendo ser aplicados nos contextos mais variados, como

principal fator de motivação deste estudo é o desafio de se iniciar novas discussões

e pesquisas na área de flash crowd em sistemas de fluxo de vídeo ao vivo par-a-par,

uma vez que a maioria dos estudos relacionados a flash crowd nestes ambientes

está diretamente relacionada ao estudo do comportamento de usuários na rede.

Page 14: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

14

1.2 Objetivos

Existem muitos desafios encontrados para se disponibilizar conteúdo com

qualidade em sistemas de distribuição de fluxo de vídeo ao vivo para um grande

número de usuários simultaneamente. Um dos tópicos em aberto é a estabilidade e

escalabilidade destes sistemas quando estão sofrendo eventos de flash crowds.

Os eventos de flash crowd são problemas encontrados em diversas áreas da

computação onde existem vários usuários que podem acessar ao mesmo conteúdo,

desde um site na Internet até sistemas de transmissão de conteúdo multimídia.

Diante disto este trabalho tem como principal objetivo analisar o problema de

flash crowds em sistemas de fluxo de vídeo ao vivo par-a-par através de

experimentações e análises dos resultados. Serão analisados neste trabalho a

influencia que o tamanho do payload enviado pelo servidor de fluxo de vídeo e o

tamanho de buffer de leitura especificado em cada um dos pares gera para o

sistema de fluxo de vídeo ao vivo par-a-par durante flash crowds.

1.3 Organização do texto

Além da apresentação do presente Capítulo, o restante deste trabalho esta

organizado como segue. No Capítulo 2, são apresentados conceitos e definições de

fluxo de vídeo, áreas de aplicação e aplicações, tipos, protocolos e arquitetura. O

Capítulo 3 apresenta redes par-a-par assim como suas características, organização

e topologia. O Capítulo 4 reúne os trabalhos diretamente relacionados a estes. No

Capítulo 5 é abordada a descrição de flash crowds, formas de identificação e flash

crowds em sistemas de fluxo de vídeo ao vivo par-a-par. No capítulo 6, é

apresentada a metodologia utilizada durante as análises realizadas neste trabalho.

As conclusões e considerações sobre a continuação do trabalho são apresentadas

no Capítulo 7, que encerra este trabalho.

Page 15: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

2 FLUXO DE VÍDEO

Segundo Apostolopoulos (2002), vídeo tem sido uma importante mídia para

comunicação e entretenimento durante muitas décadas. Inicialmente a captura e

transmissão dos vídeos eram feitas de uma forma analógica, com o avanço da

tecnologia foram criadas técnicas de digitalização de vídeo. As pesquisas na área de

compressão de vídeo começaram a se tornar importantes desde então, resultando

em tecnologias largamente utilizadas atualmente como armazenamento de vídeo em

DVDs e CDs, transmissão de vídeo digital sobre cabo, satélite e televisão digital

terrestre (DTV) e conferências de vídeo e videofones. Inicialmente as aplicações de

comunicação de vídeo através da Internet eram feitas de acordo com o

funcionamento da Internet, ou seja, utilizando a entrega de pacotes por melhor

esforço. Foi constatado que as transmissões de vídeo utilizando melhor esforço

eram problemáticas por diversos fatores, tais como, jitter, delay, perda de pacotes,

falta de um mecanismo para distribuição justa de recursos da rede e também a falta

de uma maneira eficiente para de distribuição conteúdos populares de uma fonte

para muitos receptores (Apostolopoulos, 2002).

Fluxos de vídeo são sequências de “imagens em movimento” comprimidas e

distribuídas através da Internet, podendo ser acessadas assim que alcançarem o

seu destino final. O servidor de fluxo de vídeo pode utilizar transmissões do tipo

unicast ou multicast.

Uma das grandes vantagens na distribuição do conteúdo por fluxo de vídeo é

que os usuários não necessitam esperar o download completo de um arquivo para

poderem reproduzir o mesmo, o receptor começa a reproduzir o conteúdo assim que

os primeiros pacotes começam a chegar a seu computador, desta forma o usuário

inicia a reprodução do vídeo mesmo sem ter o arquivo completo em seu

computador. Para a reprodução do conteúdo, é necessário, que o usuário tenha um

Page 16: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

16

software de reprodução de mídia (player) instalado em seu computador ou um plugin

integrado em seu navegador de Internet. Geralmente este player ou plugin podem

ser encontrados diretamente no site do fabricante ou responsável pelo software de

fluxo de vídeo.

2.1 Aplicações

A forma como os usuários acessam as informações na Internet tem mudado

ao longo do tempo, cada vez mais os usuários procuram conteúdos como filmes,

programas de televisão e outros tipos de conteúdos multimídia, os quais eles

consigam acessar pela rede. A distribuição de fluxo de vídeo agrega funcionalidades

nas mais diversas áreas, entre elas se podem citar as áreas de educação à

distância, cursos e treinamentos, rádios virtuais, publicidade, notícias, televisão

digital, videoconferência, teleconferência, jogos distribuídos, realidade virtual,

entretenimento, entre outras.

Muitas empresas têm investido pesado em pesquisa e aplicações de

distribuição de conteúdo por fluxo de vídeo, esta Seção irá apresentar algumas

delas.

O YouTube é uma aplicação gratuita que permite que os usuários

disponibilizem e assistam vídeos, estes são transmitidos para os usuários através de

fluxo de vídeo sob demanda (VoD) (YOUTUBE, 2009).

CNN Pipeline (CNN PIPELINE, 2009) é um serviço que disponibiliza fluxo de

vídeo sob demanda e fluxo de vídeo ao vivo aos usuários.

Amazon Video on Demand (AMAZON, 2009) é um serviço disponibilizado

pela Amazon onde o usuário pode comprar e alugar filmes, seriados, eventos

esportivos. Também existem conteúdos que são disponibilizados de graça para o

usuário.

AOL Video (AOL VIDEO, 2009) disponibiliza um serviço parecido com o

YouTube onde os usuários podem assistir a diversos vídeos enviados através de

fluxos de vídeo sob demanda e fazer upload de vídeos de autoria própria.

Page 17: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

17

2.2 Tipos de fluxos de vídeo

Existem diferentes tipos de fluxos de vídeo, estes podem ser feitos através de

fluxo de vídeo sob demanda (VoD) (MOL, 2008) ou fluxo de vídeo ao vivo (live

streaming) (APOSTOLOPOULOS, 2002).

2.2.1 Fluxo de vídeo sob demanda (VoD)

O fluxo de vídeo sob demanda possibilita ao usuário escolher entre uma lista

de vídeos disponibilizados em uma coleção e reproduzi-los assim que o inicio dos

dados começarem a chegar a seu computador. Thouin (2007), afirma que neste tipo

de transmissão o usuário tem praticamente o mesmo controle do conteúdo que ele

teria se estivesse assistindo ao vídeo em um videocassete (VCR) tradicional. O

usuário tem controle dos comandos de pause, play, avanço, avanço rápido,

retrocesso e retrocesso rápido.

O conteúdo multimídia fica previamente armazenado em um servidor e

poderá ser acessado por um longo período de tempo (enquanto o conteúdo estiver

armazenado no servidor), sempre que o usuário fizer uma requisição para acessar

esta mídia, uma das aplicações mais conhecidas de vídeo sob demanda é o

YouTube. (YOUTUBE, 2009)

A entrega de conteúdo consiste em transmitir objetos de um servidor (source)

ou origem para os clientes. Geralmente a entrega de conteúdo ocorre de forma

unicast, ou seja, existe um fluxo de vídeo para cada cliente, o que consome bastante

recurso de rede.

Cada cliente pode acessar ao conteúdo em horas variadas e visualizar partes

diferentes da mídia, de acordo com sua própria escolha.

Geralmente esse tipo de fluxo de vídeo é enviado de maneira unicast. Para a

transmissão unicast são necessárias múltiplas conexões do mesmo servidor de fluxo

de vídeo, mesmo quando este esta transmitindo o mesmo conteúdo para mais de

um receptor. A figura 1 ilustra um servidor de fluxo de vídeo enviando dados desta

maneira.

Page 18: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

18

Figura 1 – Fluxo de vídeo unicast Fonte: Autoria própria, 2009.

2.2.2 Fluxo de vídeo ao vivo (Live streaming)

O fluxo de vídeo ao vivo, popularmente conhecido como live streaming ou

streaming em tempo real, assim como o fluxo de vídeo sob demanda, consiste em

enviar o conteúdo de um servidor (source) ou origem para diversos clientes. Uma

das principais diferenças entre fluxo de vídeo ao vivo e fluxo de vídeo sob demanda

é que no fluxo de vídeo ao vivo os clientes não podem acessar o conteúdo do fluxo

de vídeo a qualquer momento, neste tipo de transmissão, existe um agendamento

de horário, onde o responsável pela distribuição do conteúdo irá definir a hora em

que a transmissão será iniciada.

Entretanto caso o usuário queira assistir ao conteúdo em outro momento, é

possível que ele pause o vídeo e futuramente reproduza o conteúdo que esta salvo

em buffer no seu computador.

O fluxo de vídeo ao vivo geralmente só fica disponível por um determinado

período de tempo, por exemplo, a transmissão ao vivo de uma partida de futebol

(APOSTOLOPOULOS, 2002).

De acordo com Rodenas (2008) um grande número de aplicações atuais,

incluindo televisão pela Internet, transmissão de eventos esportivos, jogos online e

educação à distância, requerem suporte para transmissões de fluxo de vídeo ao

vivo. Esta categoria de aplicações caracteriza-se pela entrega de conteúdo

multimídia que está sendo codificado e transmitido quase simultaneamente a uma

quantidade de usuários potencialmente grande.

Page 19: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

19

Na maioria dos casos a distribuição de vídeo por fluxo de vídeo ao vivo é feita

de maneira multicast, onde o servidor de fluxo de vídeo envia o mesmo fluxo de

dados para todos os usuários que estão acessando ao seu conteúdo. Cada novo

usuário que requisitar o acesso a esse conteúdo irá recebê-lo a partir do ponto em

que a mídia localizada no momento da requisição e não a partir do início da

transmissão.

A grande maioria dos softwares que fazem transmissão de fluxo de vídeo ao

vivo utiliza um arquivo de vídeo previamente gravado, porém é possível transmitir

eventos ao vivo através da captura de uma câmera web ou de uma câmera digital

video (DV).

A figura 2 mostra um servidor de fluxo de vídeo enviando um fluxo de dados

multicast para os computadores que estão no inscritos no grupo de multicast deste

computador, estes computadores podem ser identificados na figura ao se observar

os computadores que estão recebendo o fluxo de dados enviado pelo servidor, este

fluxo é representado através de setas que são direcionadas diretamente para o

computador pertencente ao grupo de multicast.

Figura 2 – Fluxo de vídeo multicast Fonte: Autoria própria, 2009.

2.3 Protocolos

Existem alguns protocolos específicos para a transmissão de fluxos de mídia,

alguns destes foram padronizados pela IETF e são utilizados em boa parte de

aplicações de fluxo de mídia e fluxo de mídia ao vivo na Internet. Entre eles estão o

RTP (RFC 1889), RTCP (RFC 3550) e RTSP (RFC 2326).

Page 20: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

20

O protocolo de transporte Real-time transport protocol (RTP) (RFC 1889,

2009) foi definido e padronizado pela IETF na RFC 1889, este protocolo prove

transporte de dados em tempo real. Ele define padrões de pacote para o transporte

de áudio e vídeo na Internet. Foi desenvolvido para a transmissão de dados em

ponto a ponto em tempo real. Este protocolo não garante a entrega, ele apenas

possui algumas informações que serão úteis para a reconstrução de dados. O

padrão de RTP define um par de protocolos que são usados em conjunto, o RTP

para fazer a entrega de dados e o RTCP para informações de controle e qualidade

de serviço (QoS).

Real-time transport control protocol (RTCP) é um protocolo definido pela RFC

3550 (RFC 3550, 2009), é utilizado em conjunto com o RTP, ele provê estatística e

controle de informações nos fluxos de dados RTP. Este protocolo sozinho não

suporta a transmissão de pacotes, por isto necessita ser utilizado em parceria com o

RTP que trafega os dados enquanto ele envia feedbacks de QoS sobre a

distribuição da mídia.

O Real-time streaming protocol (RTSP), definido pela IETF na RFC 2326

(RFC 2326, 2009), é o protocolo responsável pelo controle do conteúdo multimídia

que esta sendo distribuído via fluxo de dados. Ele possibilita que o usuário envie

controles para o servidor e tenha a possibilidade de controlar a sessão de fluxo de

dados com comandos similares a de um vídeo cassete. Ele possui uma sintaxe

similar a sintaxe do HTTP (RFC 2616, 2009). Alguns servidores de fluxo de dados

possuem as funcionalidades de controle do RTSP implementadas, como é o caso do

Helix Server (Helix Server, 2009) e do QuickTime Streaming Server (QUICKTIME,

2009).

2.4 Arquitetura e topologia

2.4.1 Centralizada

Em uma arquitetura centralizada, o servidor de origem é responsável por

servir todos os clientes do fluxo de dados (THOUIN, 2007). Esta arquitetura também

é conhecida como modelo cliente-servidor. Ela requer uma capacidade alta de

Page 21: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

21

banda para que possa transmitir para um número decente de usuários mesmo

quando o streaming que esta sendo enviado tem uma qualidade baixa. “Por

exemplo, para prover 1 Mbit/s de vídeo para 1000 usuários, exige que o servidor

sustente 1000 Mbits/s de throughput de Internet.” (TRIBLE STREAMING

EXPLAINED, 2009).

Thouin (2007) destaca outros problemas desta arquitetura como, por

exemplo, um único ponto de falha e uso elevado da largura da banda. A figura 3

ilustra a sua topologia.

Figura 3 – Arquitetura centralizada Fonte: Adaptada de (THOUIN, 2007).

2.4.2 Baseada em proxy

Esta arquitetura é definida por Thouin (2007) como um avanço da tecnologia

centralizada, sua principal característica é espalhar servidores de proxy com a

réplica do conteúdo do fluxo de dados para perto do usuário final. Estes servidores

armazenam o cache e diminuem o carregamento da rede.

A figura 4 ilustra esta arquitetura onde os servidores de proxy estão

diretamente conectados ao servidor de fluxo de dados, esta ligação é feita para que

os servidores de proxy mantenham cópias do conteúdo original (réplicas). O fluxo

de dados pode ser enviado para os clientes por um dos servidores de proxy ou pelo

servidor de fluxo de dados, dependendo da localidade do cliente na rede.

Page 22: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

22

Figura 4 – Arquitetura baseada em proxy Fonte: Adaptada de (THOUIN, 2007).

2.4.3 Rede de distribuição de conteúdo (CDN)

Esta arquitetura é mais conhecida como Content Delivery Network (CDN), o

servidor envia seu conteúdo e a rede CDN fica responsável por fazer a distribuição

do fluxo de dados para os clientes. Hefeeda (2003) questiona que arquiteturas

baseadas em proxy e CDN apenas transferem o gargalo da rede do servidor de

origem para os servidores proxy e não tem um bom custo benefício para a

transmissão de fluxo de mídia. Arquitetura CDN é demonstrada na figura 5.

Figura 5 – Rede de distribuição de conteúdo Fonte: Adaptada de (THOUIN, 2007).

Page 23: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

23

2.4.4 Híbrida

Também conhecida como descentralizada, esta arquitetura é baseada no

paradigma par-a-par (P2P) de distribuição de conteúdo. O servidor de origem

funciona como um par fazendo o papel de semente (seed) em uma rede P2P

(HEFEEDA, 2004). Esta arquitetura apresenta vantagens de um custo menor em

relação às demais arquiteturas apresentadas, atualmente existem diversos sistemas

que utilizam arquiteturas híbridas para fazer distribuição de fluxo de conteúdo

multimídia sob redes par-a-par. Cada cliente ou par compartilha seus recursos com

outros clientes para fazer a distribuição do conteúdo, sendo assim a carga do

servidor é diminuída e proporcionalmente o custo de tráfego na rede. A figura 6

apresenta um exemplo desta arquitetura.

Figura 6 – Arquitetura híbrida Fonte: Adaptada de (THOUIN, 2007).

2.4.5 Considerações sobre o Capítulo

Este capítulo apresentou conceitos sobre fluxos de vídeo, assim como suas

aplicações, tipos e topologia, a importância destes conceitos para este trabalho é

entender as diferenças de topologias de fluxo de vídeo e fluxo de vídeo par-a-par,

embora eles utilizem os mesmos tipos de fluxo de vídeo, a topologia da rede e a

distribuição do conteúdo ocorrem de formas diferentes. Entre as topologias de fluxo

de vídeo, podemos acompanhar uma evolução entre elas, iniciando na topologia

Page 24: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

24

centralizada com apenas um ponto único de falha, até chegar á arquitetura híbrida

que se aproxima das arquiteturas utilizadas nas redes par-a-par.

Page 25: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

3 REDES PAR-A-PAR (P2P)

Originalmente par-a-par (P2P) foi definido como um modelo totalmente

diferente do modelo cliente-servidor, em suas primeiras aparições na literatura,

redes P2P eram referidas como sistemas distribuídos completamente

descentralizados onde todos os pares têm a mesma função dentro da rede,

funcionando tanto como cliente, quanto como servidor (BARCELLOS, 2006). Uma

vantagem em relação à arquitetura cliente-servidor é que nas redes par-a-par os

recursos são compartilhados entre todos os seus pares, com estas características a

rede P2P fica mais suscetível à implementação de balanceamento de carga e

tolerância a falhas.

Este modelo trata todos os usuários da rede com os mesmo direitos e

privilégios (salvo algumas exceções onde existem pares com funções especificas na

rede), todos os participantes da rede são definidos como pares. Eles atuam tanto

como clientes, quanto como servidores e compartilham seus recursos com os outros

pares da rede, os quais são identificados como vizinhos.

As redes P2P foram inicialmente projetadas para o compartilhamento de

recursos computacionais (conteúdo, armazenamento, processamento) através de

trocas diretas ao invés da necessidade de intermediação ou suporte de um servidor

central ou ponto de autoridade na rede (ANDROUTSELLIS-THEOTOKIS, 2004).

Esta característica elimina alguns problemas de redes centralizadas, como por

exemplo, o problema de um único ponto de falha na rede.

Aplicativos P2P passaram a ser associados a uma classe de aplicações que

aproveitam e compartilham recursos como disco, banda de acesso e CPU presentes

nas bordas da Internet (BARCELLOS, 2006).

Page 26: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

26

Estas definições de P2P apresentadas anteriormente são a visão primordial

de aplicações par-a-par, excluindo diversas aplicações aceitas recentemente, como

por exemplo, em alguns casos de aplicações podem ser utilizados servidores

centralizados para controle de informações e também pares com funções

diferenciadas de pares ordinários.

Em Barcellos (2006) pode se observar que a utilização de redes P2P não está

mais somente limitada a usuários domésticos, estas aplicações estão sendo

utilizadas também nos meios acadêmicos e corporativos. “Por exemplo, sistemas de

armazenamento de arquivos em rede de transmissão de dados, de computação

distribuída e de colaboração também têm tirado proveito dessas redes”

(BARCELLOS, 2006). Alguns dos fatores que são propícios para essas mudanças

são que as redes P2P são escaláveis, eliminam um ponto único de falha sendo mais

resistentes a ataques de negação de serviço (DoS) e também possibilitam que o

usuário da rede tenha uma autonomia maior quanto à decisão do tempo de

utilização da rede, este de acordo com seu interesse e disponibilidade.

3.1 Características de redes P2P

Dentro das muitas características apresentadas pelas redes par-a-par,

algumas das mais referenciadas nos estudos sobre a área são:

• Descentralização: Os dados são distribuídos em diversos pares localizados

em pontos geográficos diferentes, amenizando o problema de falhas de algum

par.

• Escalabilidade: Redes P2P são conhecidas por sua auto escalabilidade,

geralmente permitindo que um número maior de clientes utilize a rede se

comparada a uma arquitetura centralizada ou ao modelo cliente-servidor, um

dos fatores que possibilitam esta característica é o compartilhamento de

recursos entre o grupo que está conectado na mesma rede.

• Anonimato: Aos pares conectados a uma rede P2P é garantido o anonimato,

este é garantido para autoria de conteúdo, publicação de conteúdo, acesso,

disponibilização de conteúdo, armazenamento e pesquisa.

Page 27: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

27

• Custo de propriedade: O compartilhamento de recursos entre os pares

possibilita um baixo custo de propriedade e manutenção do conteúdo.

• Conectividade Ad-Hoc: Pares podem conectar-se e desconectar-se de uma

rede P2P a qualquer momento, ficando assim disponíveis ou não para outros

pares da rede.

• Segurança: Alguns fatores das redes P2P dificultam a segurança no sistema,

entre eles alguns fatores citados por Barcellos (2006) como anonimato,

disponibilidade, autenticidade, confidencialidade, integridade, autorização,

reputação, negabilidade e o não repúdio acarretam em alguns problemas

relacionados à área de segurança. Barcellos (2006) ainda afirma que isto

torna a área de segurança uma das suas principais áreas de pesquisa em

redes par-a-par. Wallach (2002) diz que tornar esta área segura é um grande

desafio.

• Tolerância a falhas: Pela sua descentralização, sistemas P2P são propícios

para tolerância a falhas. Embora essa característica, ainda existe outros

fatores que causam falhas nesses sistemas, entre eles, a entrada e saída

inesperada de muitos pares da rede (churn) (MOL, 2007) e também flash

crowds (LI, 2007).

Barcellos (2006) diz que em um sistema P2P, pares estabelecem ligações

lógicas e interagem através das mesmas, formando uma “rede de sobreposição” ou

overlay no nível de aplicação.

São destacadas três características consideras chaves por Androutsellis-

Theotokis (2004), elas são:

• Compartilhamento direto de recursos computacionais entre os pares sem a

necessidade de intervenção de um servidor centralizado (servidores centrais

são aceitáveis para tarefas específicas como adicionar um par na rede,

manter chaves globais para criptografia e também um index com todos os

pares na rede para pesquisa).

• Sua habilidade de tratar a instabilidade e conectividade variável como norma,

se adaptando automaticamente a falhas tanto em conexões de servidores

quanto em conexão de clientes.

• Capacidade de tolerância a falhas e auto-organização de acordo com a

entrada e saída de pares na rede, a figura 7(a) apresenta essa característica

Page 28: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

28

utilizando uma estrutura de aplicações de camada de árvores multicast (ALM)

(LIU, 2008) em uma rede que sofreu uma saída inesperada do sistema e a

figura 7(b) demonstra seu comportamento de se reorganizar.

Figura 7 – (a) Falha ou saída inesperada de um par

Figura 7 – (b) Auto-adaptação da rede Fonte: Adaptada de (LIU, 2007).

3.2 Organização de redes de sobreposição

Redes de sobreposição também são referenciadas como overlays na

literatura disponível sobre estudos de redes P2P, neste estudo serão referenciados

sempre como redes de sobreposição.

Segundo Lua (2005), existe duas classes de construção de redes de

sobreposição em redes P2P, elas podem ser construídas de maneiras estruturas ou

de maneiras não estruturada.

“Essencialmente, a organização determina as regras, caso exista alguma,

para alocação de objetos (ou suas chaves) a nodos, e os algoritmos de busca

empregados” (BARCELLOS, 2006).

De acordo com Lua (2005) alguns dos principais exemplos de infra-estrutura

de redes estruturadas são Chord (STOICA, 2003), Tapestry (ZHAO, 2004), Content

Page 29: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

29

Addressable Network (CAN), (RATNASAMY, 2001), Pastry (ROWSTRON, 2001),

Kademlia (MAYMOUNKOV, 2002) e Viceroy (MALKHI, 2002).

Barcellos (2006) e Lua (2005) assumem que os principais exemplos de infra-

estrutura par-a-par não estruturados são Napster (NAPSTER, 2009), Gnutella

(ADAR, 2000), FastTrack/Kazaa (KAZAA, 2009), BitTorrent (BitTorrent, 2009),

Overnet/eDonkey2000, porém este último não está mais disponível por motivos de

infração de leis e distribuição de downloads ilegais.

3.3 Streaming P2P

Geralmente aplicações fluxo de vídeo ao vivo possuem somente uma única

origem (source), esta origem tem a responsabilidade de gerar e distribuir o conteúdo.

A origem é assumida como não falha, permanecendo durante toda a sessão de

broadcast. O endereço de origem é conhecido previamente pelos pares interessados

no conteúdo, servido como um ponto de encontro (rendezvous) para novos usuários

ingressarem na sessão (LIU, 2008).

Para as redes P2P transportarem fluxos de vídeo é necessário que elas

atendam características como larga escalabilidade de usuários, bom desempenho,

restrições de tempo real (a interatividade deve ser garantida, mas é necessária a

sincronização de áudio e vídeo causando um pequeno atraso devido aos buffers) e

degradação cuidadosa da qualidade para atender a diversas larguras de banda.

Segundo Jurca (2007) as aplicações de fluxo de vídeo ao vivo utilizam arquiteturas

de redes adaptativas e auto-organizáveis para conseguirem alcançar seus requisitos

de qualidade. Utilizando redes P2P pode-se dividir a responsabilidade do servidor

com os clientes da rede.

As estruturas básicas consideradas para se prover aplicações em “tempo

real” utilizando redes P2P são: topologia em árvore, e topologia em malha.

Page 30: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

30

3.3.1 Topologia em árvore

Os pares da rede são organizados em árvore, tendo suas relações definidas

como pai e filho. Esta organização é útil para propagação de dados na rede com um

menor esforço. Como todos os pacotes são enviados através da árvore, uma

limitação ou problema em um par próximo à raiz pode afetar diversos receptores.

Torna se crítico garantir que a estrutura esteja otimizada para oferecer bom

desempenho para todos os receptores (LIU, 2008).

Segundo Rodenas (2008) As arquiteturas de árvores múltiplas visam tratar os

problemas apresentados pelas árvores simples, provendo redundância nos

caminhos da rede e buscando justiça na participação dos pares. Ela conduz à

solução de problemas contraditórios como minimizar a profundidade da árvore,

enquanto simultaneamente provê a diversidade de caminhos de rede. A topologia

física subjacente deve ser cuidadosamente estudada para obter uma disseminação

eficiente de conteúdo (JURCA, 2007). A figura 8 ilustra a topologia de redes par-a-

par em árvore, o streaming tem a origem em um servidor de fluxo de dados que

repassa o fluxo de dados para os demais pares da rede que estão organizados em

uma estrutura de árvore.

Figura 8 – Topologia de fluxo de vídeo P2P organizado em árvore Fonte: Autoria própria, 2009.

Page 31: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

31

3.3.2 Topologia em malha

Diferente das arquiteturas de árvores onde um nó filho recebe um fluxo de

dado do seu nó pai, esta arquitetura permite que os pares existentes na rede

estabeleçam conexões com seus vizinhos de forma mais autônoma como é

demonstrado na figura 9. As redes de sobreposição se diferenciam das organizadas

em árvores, pois nas primeiras não se constrói nem se mantêm uma estrutura

explícita para entrega de dados (LIU, 2008). Segundo Liu (2008) esta arquitetura é

considerada mais robusta contra a entrada e saída inesperada de pares na rede

(churn). Mesmo existindo uma sobrecarga de troca de mensagens relacionadas à

gerência da malha e a propagação do conteúdo, ela parece ser independente do

tamanho da rede, mas tende aumentar com o dinamismo da rede (FODOR, 2007). A

figura 9 demonstra os pares da rede conectados entre si com troca de fluxo de

dados podendo ser feita de maneira bidirecional, diferentemente da estrutura em

árvore os pares estabelecem conexões com outros pares que estão localizados no

mesmo nível da rede e também podem enviar dados para os pares que estão

localizados em um nível inferior ao seu.

Figura 9 – Topologia de fluxo de vídeo P2P organizado em malha Fonte: Autoria própria, 2009.

Page 32: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

4 TRABALHOS RELACIONADOS

Neste Capítulo serão brevemente apresentados alguns trabalhos que estão

relacionados diretamente com esta pesquisa, embora existam outras pesquisas em

andamento na área, está Seção será limitada apenas a algumas delas por serem

consideradas mais atuais.

Para a transmissão do fluxo de dados, os sistemas podem utilizar as formas

de push (origem envia o fluxo de dados para os pares), pull (pares requisitam a

transmissão do fluxo de dados) ou utilizar um sistema híbrido destas duas

tecnologias.

4.1 Chainsaw

Chainsaw (PAI, 2005) é um sistema P2P utilizado para transmitir conteúdos

em aplicações de fluxo de vídeo ao vivo, seus autores enfatizam que sua arquitetura

não é baseada em árvores. Embora este trabalho esteja relacionado à pesquisa

proposta neste artigo, o autor não destaca seus mecanismos de roteamento, apenas

afirma que o conteúdo é distribuído através de um simples protocolo de request-

response.

É possível identificar alguns problemas relacionados a este estudo, entre eles

se destacam que os autores não disponibilizam seu código fonte, impossibilitando a

hipótese de gerar uma avaliação independente do código fonte, também não são

apresentadas análises para tratar o problema de free-riders (este problema esta

explicado na Seção 4.5), bem como, o impacto que a entrada e saída de pares irão

causar no funcionamento do sistema.

Page 33: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

33

4.2 AnySee

AnySee (LIAO, 2006) (PROJECT ANYSEE, 2006) é uma aplicação de

distribuição de vídeo por fluxo de dados que adota um sistema de inter-overlay

(múltiplas redes de sobreposição) onde os recursos podem ser obtidos em múltiplas

redes de sobreposição. Sua primeira versão disponibilizada em Java tinha sua

topologia baseada em árvore, sendo totalmente reestruturada, nas versões

seguintes adotou uma nova linguagem de programação (C++) e topologia em malha.

4.3 Coolstreaming

No Coolstreaming (XIE, 2007), cada par mantém uma lista parcial dos

identificadores dos pares ativos na rede. Através desses identificadores os pares

conseguem estabelecer conexões TCP entre os outros pares da rede. Uma vez que

os pares estão conectados, estes trocam informações sobre os pares vizinhos do

parceiro, conhecendo assim também os pares vizinhos de seus vizinhos, esta troca

de informação é feita através de um protocolo de Gossip. Em sua arquitetura

existem três módulos básicos:

• Membership Manager: Mantém visão parcial da rede de sobreposição.

• Partnership Manager: Estabelece e mantém parcerias com outros

pares, troca informações de pares ativos na rede e sobre blocos de

conteúdo disponíveis.

• Stream Manager: Responsável pela gerência do fluxo de dados.

O ingresso de novos pares na rede é dado através de um par chamado

Bootstrap, este par é responsável pela Mcache (lista de todos pares participantes na

rede), cada novo par se conecta a ele e recebe uma lista gerada randomicamente

contendo endereços dos pares da Mcache. Cada par mantém a sua Mcache com os

pares recebidos pelo Bootstrap e tenta se conectar a eles.

O fluxo de vídeo é dividido em K subfluxos onde cada par poderá ter um

número K de pares pais. Cada par é dotado com dois buffers, uma para a

sincronização de todos os subfluxos recebidos pelos diversos pais e o outro de

Page 34: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

34

leitura. Através do protocolo de Gossip os pares trocam informações de blocos de

vídeo disponíveis e podem requisitar estes blocos de outros pares (pull).

4.4 PRIME

Em PRIME (MAGHAREI, 2007a) (MAGHAREI, 2007c), os pares participantes

da rede formam uma malha randômica direcionada em uma relação pai-filho. Cada

par tenta estabelecer conexão com um número suficiente de pares pais, até que

consiga ocupar toda largura da banda disponível.

A entrega de conteúdo é dada através de mecanismos dinâmicos conforme

apresentado por Magharei (2007a), este sistema emprega um mecanismo dinâmico

de entrega de conteúdo; esse mecanismo é considerado muito complexo inclusive

pelos próprios autores do sistema. O sistema apresenta duas fases de distribuição

de conteúdo:

• Fase de entrega por difusão: Uma vez que um novo segmento de dado

torna-se disponível na origem, os pares do primeiro nível da topologia

requisitam (pull) coletivamente este segmento para a origem, no

próximo intervalo de tempo, os pares localizados no nível dois da

topologia repetem este processo e assim sucessivamente até o último

nível da topologia.

• Fase de entrega por enxame: No final da fase de difusão, os pares

requisitam os segmentos que eles não tenham recebido para os seus

pares pais de mesmo nível na topologia ou de um nível menor.

A figura 10 ilustra as duas fases de distribuição do conteúdo onde difusion

representa a fase de difusão e swarm representa a fase de enxame.

Page 35: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

35

Figura 10 – Distribuição de conteúdo no PRIME Fonte: Retirado de (MAGHAREI 2007a).

4.5 Análise comparativa de sistemas de fluxo de víd eo par-a-par

Os sistemas de fluxo de vídeo par-a-par apresentados no quadro 1, na

maioria dos casos, opta por utilizar a topologia de rede em malhas, muitos deles

apresentam características herdadas de sistemas de troca de arquivo par-a-par,

Estes sistemas apresentados, por serem baseados em outros sistemas de par-a-par,

acabam também herdando alguns problemas encontrados nos sistemas os quais

eles foram baseados, é o caso do problema de flash crowds, que no caso dos

sistemas de troca de arquivos não apresenta um impacto tão negativo quanto o

impacto ocasionado em sistemas de fluxo de vídeo par-a-par.

Entre os sistemas apresentados nesta Seção, é possível identificar algumas

diferenças e similaridades, estas características podem ser observadas no quadro 1.

Page 36: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

36

Quadro 1 – Comparativo entre os sistemas de streaming P2P

Sistema de fluxo

de vídeo ao vivo

par-a-par

Topologia

Tipo de

requisição de

envio de fluxo

de conteúdo

Implementação

Características

Similaridade

Chainsaw

Não

apresentada.

Pares

requisitam o

envio.

Prototipação

Pacotes contêm

número de

sequencia,

mantém

informações do

grupo de

vizinhos.

BitTorrent.

CoolStreaming

Malha.

Híbrida.

Implementação

em Python.

Pacotes contêm

número de

identificação

único. Mantém

lista dos pares

que estão

conectados.

Utilização de

protocolo de

Gossip para troca

de informações

dos demais

pares.

BitTorrent.

AnySee

Versão 1.0 –

árvore. Versões

2.0, 3.0 e 4.0

em

Malha.

Não

especificada.

Versão 1.0 em

Java, demais

versões em C++.

Mantém

informações dos

vizinhos mais

próximos,

pacotes com

números de

sequência e

distribuição por

técnica de

enxame (mesmo

tipo do BitTorrent)

Narada, Donet

e Gnutella.

PRIME

Malha.

Híbrida.

Prototipação.

Entrega de

conteúdo por

técnicas de

enxame.

Não

apresentada.

Fonte: Autoria própria, 2009.

Page 37: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

37

4.6 Problemas identificados

Com base nestes estudos, é possível identificar alguns problemas

considerados os principais em sistemas de fluxo de vídeo ao vivo par-a-par, entre

eles destacam-se churn, free-riders e flash crowds.

Biskupski (2007) aborda alguns problemas encontrados em Chainsaw e no

CoolStreaming, quanto ao Chainsaw ele destaca que redes de sobreposição

randômicas baseadas em malha são ineficientes em redes heterogêneas, limitando

a distribuição de dados e não explorando a proximidade dos pares na rede, em

relação ao CoolStreaming ele demonstra que este utiliza mecanismos para que os

pares identifiquem os melhores vizinhos na rede (called partners) o que acaba

limitando o número de vizinhos e conseqüentemente acaba por não utilizar de

maneira eficiente a capacidade da largura da banda de upload.

Rodenas (2008) destaca que nos artigos relacionados sobre os sistemas

AnySee, Chainsaw e Coolstreaming não existe uma análise aprofundada sobre o

impacto causado pelo churn na rede e nem a disponibilidade de um código fonte

para que possa ser feita a análise do mesmo.

Outro problema apresentado é o problema de free-riders ou free-loaders,

este problema é causado por pares conectados a rede que não estão dispostos a

compartilhar seus recursos, prejudicando consideravelmente a rede.

Magharei (2007c) apresenta que a presença de free-riders na rede afeta

diretamente o funcionamento do PRIME, prejudicando as conexões entre as sub-

árvores afetando diretamente o desempenho na entrega do conteúdo, mesmo

quando os recursos disponíveis são suficientes. Um estudo mais aprofundando nos

resultados revela que free-loaders afetam a conectividade da rede de sobreposição

de uma maneira que desorganiza as duas fases de entrega de conteúdo

(MAGHAREI, 2007b).

Li (2007) afirma que churn causam mudanças constantes no sistema e é

acreditado por ele que essas mudanças constantes são um dos grandes problemas

em sistemas de fluxo de vídeo ao vivo P2P.

Churn e free-riders são problemas considerados críticos, porém já existem

muitos estudos e soluções propostas para a solução de ambos, outro problema

menos discutido na área, porém não menos importante, é o problema da entrada

Page 38: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

38

inesperada de muitos usuários na sessão de streaming em um espaço curto de

tempo (flash crowd), este problema será mais bem especificado no Capítulo 5.

Alguns autores destacam que o tempo de inicialização até o início da

reprodução do conteúdo de um fluxo de vídeo (start up delay) é um fator crítico para

transmissões de eventos ao vivo, este tempo é agravado na ocorrência de flash

crowds. Li (2007) destaca que as altas taxas de falhas de ingresso de pares no

sistema durante flash crowds afetam a escalabilidade do sistema e podem tornar

pares estáveis em pares instáveis no sistema. Quando o Coolstreaming está

sofrendo de flash crowds sua Mcache pode ser preenchida com o endereço de

muitos pares que ainda não estão aptos a distribuir um conteúdo de vídeo de

qualidade, causando várias readaptações de pares na rede (tentativa de conexões

com novos pares pais) e consequentemente uma competição entre estes pares para

ingressar no sistema, tornando o sistema instável.

Dentre os problemas destacados, este estudo abordará o problema de flash

crowds em sistemas par-a-par de fluxos de vídeo ao vivo através de uma análise no

comportamento de sistemas de fluxo de vídeo ao vivo durante flash crowds, por

razões de que já são apresentadas estudos dos outros dois problemas discutidos

nesta Seção, podendo assim agregar mais valor as discussões na área.

Page 39: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

5 FLASH CROWD

Flash crowd não é um problema específico de redes par-a-par e sistemas de

fluxo de vídeo ao vivo. Existem referências anteriores de estudos sobre flash crowd

na área computacional. Em suas primeiras definições em aplicações

computacionais, muitos autores definem flash crowd como um tráfego repentino e

inesperado em um determinado servidor na Internet, levando este servidor a ficar

inalcançável na rede Internet.

Stavrou (2004) define flash crowd como fenômenos resultantes de um

aumento inesperado de acessos em um objeto online de popularidade. Esta

definição se referencia a flash crowd ocorridas em servidores web e que levam estes

a ficar instáveis ou indisponíveis.

Pan (2002) define flash crowd como um aumento de volume inesperado nas

taxas de requisições para uma página na Internet em particular, levando esta a ficar

virtualmente inalcançável.

Pan (2002) exemplifica alguns eventos de flash crowd em links de sites

populares como Slashdot ou notícias de última hora, como no caso ocorrido dos

ataques terrorista as torres gêmeas em 11 de setembro, nesses casos sites como o

da CNN recebem um número de acessos maior do que o esperado em um curto

espaço de tempo. Outras características de eventos de flash crowd foram que os

recursos de CPU assim como gargalos na largura da banda de Internet são os

primeiros sintomas que pode ser observados.

5.1 Identificação de eventos de flash crowd

Ataques de negação de serviço (DoS) causam muitas vezes os mesmos

efeitos de eventos de flash crowd, estes são referenciados como flash events

Page 40: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

40

(JUNG, 2002). Jung (2002) afirma que antes de se estudar os efeitos de flash

crowds é necessário estudar os efeitos de ataques de DoS, por este ser um efeito

relacionado a flash crowd, porém distinto. É necessário identificar no sistema quais

os efeitos são causados por ataques de DoS para poder conte-los e ao mesmo

tempo identificar quais efeitos são causados por flash events, pois estes são

requisições de usuários legítimos e deverão ter o acesso garantido ao sistema.

Jung (2002) salienta algumas diferenças entre ataques de DoS e flash crowds

que devem ser conhecidas e identificadas pelo sistema, o quadro 2 contém um

comparativo entre estes 2 eventos.

Quadro 2 – Comparativo entre características de flash crowds e ataques de Dos

Característica

Flash Events

Ataques de DoS

Volume de tráfego

Os dois fenômenos causam um aumento no número de requisições.

Número de clientes e sua distribuição

Geralmente causados pelo aumento no número de clientes acessando o site. A distribuição dos clientes é esperada por seguir grupos a população agrupada entre os ISPs e redes.

Causadas pelo aumento no número de clientes ou por um cliente em particular enviando requisições em uma taxa elevada. A distribuição dos clientes entre ISPs e redes não segue a distribuição da população.

Sobreposição de clusters

Significantes antes e durante flash events.

Muito pequena.

Taxa de requisição por clientes

Baixas durante flash crowd.

Alguns poucos clientes emitindo uma taxa muito alta ou vários clientes emitindo uma taxa baixa, porém suas taxas sempre são estáveis.

Arquivos requisitados

Distribuição similar com as formas das leis de ZIPF

Formas de distribuição em formato diferente dos apresentados pelas leis de ZIPF

Fonte: Adaptada de (JUNG, 2002).

Li (2002) apresenta outros fatores que podem caracterizar que ocorreu flash

crowds no sistema, ele diz que o comportamento de usuários durante flash crowds

pode ser mais bem identificado de acordo com o número de tentativas de re-

conexões feitas por um par e pelo tempo de espera do par até conseguir ingressar

em uma sessão de fluxo de vídeo.

Page 41: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

41

5.2 Flash crowds em sistemas Par-a-par

Estudos realizados demonstram muitas soluções propostas para combater

problemas de flash crowd (STAVROU, 2004) (PAN, 2004) (STADING, 2002) (HUI,

2004) (DESHPANDE, 2007) (RUBENSTEIN, 2005), porém estes estudos são

aplicados para flash crowd ocorridas em servidores de páginas na Internet e podem

ser resolvida através de proxys, replicação de dados ou sistemas par-a-par que tem

a função de fazer o cache do conteúdo ou a replicação dos dados. Embora estas

soluções sejam consideradas eficientes, elas não abordam sistemas par-a-par para

distribuição de conteúdo multimídia através de fluxo de vídeo ao vivo.

Li (2007) define flash crowd em sistemas de fluxo de vídeo como o aumento

súbito no número de usuários ao aderir ao fluxo de vídeo em um curto período de

tempo

É apresentado por Li (2007) que um dos problemas mais críticos em sistemas

par-a-par de fluxo de vídeo ao vivo são flash crowds, porém não tão críticos em

outros sistemas P2P como de troca de arquivos, pois estes podem tolerar um maior

tempo de espera. Sripanidkulchai (2004) afirma que durante um evento de flash

crowd, existe um grande aumento do número de pessoas querendo se sintonizar no

fluxo de vídeo. Consequentemente a taxa de chegada e o número de clientes

concorrentemente aumentam para uma taxa maior do que a taxa média. Todos os

fluxos de vídeo de curta duração apresentam comportamento de flash crowd

(SRIPANIDKULCHAI, 2004).

Flash crowds trazem um desafio para aplicações de fluxo de vídeo ao vivo,

onde é possível que centenas de usuários ingressem no sistema durante os minutos

iniciais do fluxo de vídeo ao vivo, prejudicando a escalabilidade do sistema e a

qualidade da taxa de serviço aceitável para visualizar o conteúdo multimídia (LI,

2007). Flash Crowd em sistemas de fluxo de vídeo ao vivo par-a-par também podem

apresentar problemas de flash crowd durante outras partes da transmissão do

conteúdo, mas geralmente estes problemas são apresentados nos momentos iniciais

da transmissão, pelo motivo de que os usuários geralmente desejam começar a

assistir ao conteúdo desde o seu início, este comportamento é dado de acordo com

um estudo no comportamento de usuários apresentado por Li (2007).

Page 42: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

42

Li (2007) também apresenta um estudo baseado no comportamento dos

usuários e no impacto da escalabilidade do sistema durante eventos de flash crowd.

Como sistema base para o estudo foi utilizado o Coolstreaming, alguns resultados

apresentados por eles foram:

• O comportamento de usuários durante flash crowd pode ser mais bem

identificado através do número de tentativas de entrada no sistema.

• O sistema consegue escalar até um determinado limite durante flash

crowds.

• O número elevado de tentativas de readaptação dos pares no sistema

leva os mesmos a receberem endereços de pares que não estão aptos

a transmitir o conteúdo, causando instabilidade no mesmo.

A figura 11 representa um sistema de fluxo de vídeo ao vivo par-a-par que é afetado

por um evento de flash crowd em um determinado tempo de seu funcionamento, ele

representa a taxa de ingresso no sistema durante seu tempo de funcionamento, é

observado a ocorrência de flash crowd a partir do milésimo minuto de funcionamento

do sistema, onde é ilustrado no gráfico o crescimento repentino da taxa de entrada

no sistema até um determinado tempo (aproximadamente no tempo 1200). Pode-se

também ser observado que o sistema aumenta sua escalabilidade até um

determinado limite durante o evento de flash crowd e leva mais um intervalo de

tempo até que retorne a sua condição original.

Li (2007) diz, que em sistemas de fluxo de vídeo ao vivo par-a-par que um

dos fatores que influenciam na escalabilidade do sistema é o start up delay, este

tempo pode ser aumentado ou diminuído de acordo com o tamanho do buffer de

leitura utilizado, caso o tempo inicial seja muito pequeno o sistema pode sofrer de

problemas como a mídia não estar pronto para ser enviada a outro par, caso este

seja muito grande, podem ocorrer muitas tentativas de re-conexão ao sistema

tornando-o instável. Isto gera muitas sessões curtas no sistema acarretando em

competições entre pares e consequentemente em flash crowds, devido a um grande

número de pares ingressando na rede em um período muito pequeno de tempo.

Page 43: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

43

Figura 11 – Gráfico demonstrativo de flash crowd Fonte: Retirado de (HEFEEDA, 2004).

Este trabalho visa agregar conhecimentos na área de pesquisas sobre flash

crowds tendo como sua principal motivação o tamanho do problema para sistemas

de fluxo de vídeo ao vivo par-a-par e ao mesmo tempo o desafio por ainda não

existirem muitas discussões sobre o assunto na área.

Neste primeiro momento, o principal objetivo será analisar como o tamanho

do payload dos pacotes transmitidos pelo servidor de fluxo de vídeo e o tamanho de

buffer de leitura nos pares influenciam durante a ocorrência de flash crowds e

também propor algumas sugestões para que seja possível dar continuidade a este

estudo tornando-o um ponto de partida para outros pesquisadores.

Page 44: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

6 MÉTODO PROPOSTO

O objetivo do método proposto foi o desenvolvimento de um protótipo de

envio de fluxo multimídia par-a-par para que se fosse possível fazer

experimentações e obter resultados para a análise do flash crowd nestes sistemas.

O protótipo foi o responsável pelo envio de fluxos de vídeo, pelas conexões dos

pares ao servidor de fluxos de vídeo e pela criação e manutenção da rede de

sobreposição. O principal objetivo deste trabalho é a análise realizada com base nos

resultados obtidos durante as experimentações.

6.1 Escopo do Trabalho

O método proposto consiste na criação de um protótipo que foi utilizado para

a geração dos dados que foram utilizados na análise apresentada neste trabalho. O

protótipo desenvolvido é composto por três módulos, o módulo de Bootstrap

baseado no sistema CoolStreaming, um módulo de servidor de fluxo de vídeo e o

módulo de pares com capacidade de se conectar ao Bootstrap para receber uma

lista aleatória de pares ou diretamente ao servidor de fluxo de vídeo.

Os módulos utilizados para geração dos dados analisados foram o módulo de

servidor de fluxo de vídeo e o módulo Par, o módulo Bootstrap não foi utilizado nesta

primeira análise porque o módulo Par ainda não esta aceitando conexões de outros

pares, o que impossibilita a utilização do módulo Bootstrap, uma vez que este gera

uma lista de possíveis pares que possam exercer o papel de pares pais na rede.

Page 45: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

45

Para a utilização do módulo Bootstrap nas experimentações foi necessário

programar a funcionalidade de receber conexões de outros pares no módulo Par.

O servidor de fluxo de vídeo tem a capacidade de disponibilizar conteúdo

multimídia para todos os pares conectados a ele, o conteúdo disponibilizado foi um

arquivo multimídia de vídeo gravado anteriormente no formato MPEG, o tamanho do

arquivo de vídeo é de 15,4mb e o seu tempo de duração é de 1,21min, o tamanho e

o tempo de vídeo foram escolhidos aleatoriamente por não serem especificados em

nenhuma das referências deste trabalho e por não serem o foco principal da análise.

O protótipo será utilizado em conjunto com os cenários criados (especificação

dos cenários na Seção 6.5) onde foram realizadas experimentações para a geração

dos resultados que serão realizados.

A análise dos resultados foi feita utilizando variações do tamanho do payload

dos pacotes enviados pelo servidor e do buffer de leitura especificado nos pares.

6.2 Linguagem e ambiente de programação

Para o desenvolvimento do protótipo, foram utilizados linguagem de

programação Python versão 2.5.2 e o sistema operacional Linux Ubuntu com o

kernel na versão 2.6.27-7.

A linguagem de programação Python foi escolhida em funções de sua

portabilidade, velocidade de desenvolvimento e debbuging, estruturas e classes

disponibilizadas pela linguagem, aliado com os bons resultados encontrados em

outros sistemas que foram estudados no decorrer deste estudo, exemplos destes

sistemas são o YouTube e o Coolstreaming. O fator principal que contribuiu para a

escolha da linguagem de programação é que o protótipo foi baseado no sistema

Coolstreaming e o mesmo foi desenvolvido em Python.

O sistema operacional Linux foi escolhido pela facilidade de depuração de

programas através de seu terminal, pelo ótimo suporte em sockets BSD e também

por se tratar de um sistema aberto e preparado para ser utilizado em ambientes de

redes de computadores.

Para a reprodução dos vídeos foi utilizado o software Mplayer com a versão

1.0rc2-4.3.2 devido a sua grande estabilidade, suporte a diversos codecs, bom

Page 46: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

46

desempenho na reprodução das mídias e também pela sua funcionalidade de

reproduzir fluxos de dados redirecionados para ele.

6.3 Estrutura do protótipo

Esta Seção apresenta os módulos do protótipo desenvolvido apresentando

suas funções e características.

6.3.1 Módulo Bootstrap

O módulo Bootstrap é o responsável pela criação e manutenção da rede de

sobreposição e também por manter uma lista com todos os pares participantes da

rede, ele recebe conexões através de sockets TCP de pares dispostos a

ingressarem na rede e atende a requisições enviadas por estes pares. Este arquivo

é identificado com o nome Bootstrap.py, seu código fonte esta disponibilizado no

apêndice A.

O Bootstrap atende aos comandos REGISTER, REMOVE, LIST e EXIT:

• REGISTER: Ao se conectar no Bootstrap, um par envia o comando

REGISTER e passa a fazer parte da lista de pares registrados no

Bootstrap (Mcache).

• LIST: Este comando só é permitido aos pares que estão registrados na

Mcache, um envia o comando LIST para o Bootstrap e recebe uma

lista aleatória de até cinco pares candidatos a serem seus pares pais.

Caso ainda não haja nenhum par registrado na Mcache, o Bootstrap

envia automaticamente o endereço do servidor de fluxo de vídeo.

• REMOVE: Este comando serve para atualização da Mcache, sempre

que um par não consegue encontrar um dos pares candidatos a ser

seu pai, ele guarda o endereço deste par em uma lista. Esta lista de

endereços não alcançáveis pode ser enviada para o Bootstrap através

do comando REMOVE, o Bootstrap recebe uma lista de pares e

remove de sua Mcache e finaliza a leitura dos endereços dos pares a

Page 47: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

47

serem removidos quando recebe uma mensagem contendo o comando

“FINISH”.

• EXIT: Um par envia o comando EXIT para encerrar a conexão com o

Bootstrap.

Esta estrutura permite que os pares criem uma topologia de rede em malha

onde todos os pares possam se conectar entre si.

Este módulo de Bootstrap será utilizado para trabalhos futuros e atualmente

não fará parte dos cenários estudados no trabalho atual.

6.3.2 Módulo Servidor de Fluxo de vídeo

O módulo de servidor de fluxo de vídeo, identificado como source.py e

disponibilizado no apêndice B é o responsável pela distribuição do conteúdo

multimídia. Este servidor recebe conexões dos pares do sistema através de sockets.

Ele atende ao seguinte comando:

• PLAY: ao receber este comando de um par, o servidor adiciona o par a

sua lista de reprodução, para onde serão enviados os fluxos de vídeo.

Para a geração de flash crowds, este servidor aguarda até um número x de

conexões (definido por parâmetro em sua inicialização), e após receber todas essas

conexões ele inicializa sua transmissão de fluxo de vídeo simulando o efeito de um

evento de flash crowd no sistema.

Este servidor recebe os seguintes parâmetros em sua inicialização:

• Número de pares: Define o número de pares que irão conectar ao

servidor até que o mesmo inicialize a transmissão de fluxo de vídeo.

• Payload: define o tamanho de pacotes que serão enviados para os

pares, sendo que os primeiros 24 caracteres estão reservados para a

identificação dos pacotes (IDs).

• Nome do log: Define o nome do arquivo de log que será gerado, o

nome configurado por parâmetro será complementado pela timestamp

do sistema e pelo sufixo “.txt”.

Page 48: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

48

O servidor gera um arquivo de log com o formato csv contendo o número do

id do pacote (ID), tamanho do payload, endereço do par que será enviado o

conteúdo, timestamp da hora em que o pacote foi enviado ao par.

6.3.3 Módulo par

Este módulo consiste de um par da rede par-a-par, assim como no servidor

de streaming, este par permite configurações passadas por parâmetro para que

sejam facilitadas as análises do trabalho. Como parâmetros o programa recebe o

endereço de IP ao qual ele vai se conectar (podendo ser o endereço Bootstrap.py ou

diretamente do source.py), o tamanho do payload, o tamanho do buffer de leitura e o

nome do arquivo de log (este segue o mesmo padrão do servidor de fluxo de vídeo).

No primeiro momento deste estudo os cenários irão apenas fazer a utilização

do servidor de fluxo de vídeo e do módulo par conforme foi explicado na Seção 6.1,

por este motivo, o par esta apenas enviando o comando “PLAY” que é o comando

compatível com o source.py. Nas primeiras versões o módulo de par executava as

funções compatíveis com o módulo Bootstrap, porém a utilização deste módulo será

reservada para futuros trabalhos.

Este módulo não tem um player de mídia proprietária e por este motivo é

utilizado em conjunto com o software Mplayer, o par recebe a mídia, envia o

conteúdo para a saída padrão do sistema (stdout) e então é feito o redirecionamento

deste conteúdo para o software Mplayer. O código fonte deste módulo tem o nome

de node_buffer.py e é demonstrado no apêndice C.

6.3.4 Módulos e funcionalidades do protótipo

As funcionalidades dos módulos implementados no protótipo deste trabalho

são apresentadas no Quadro 3.

Page 49: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

49

Quadro 3 – Módulos e funcionalidades do protótipo

Módulos Funcionalidade

Bootstrap Criação e manutenção da rede de sobreposição

Servidor de fluxo de vídeo Envio do fluxo de vídeo para os pares.

Par Requisão e recepção do fluxo de vídeo.

Fonte: Autoria própria, 2009.

6.4 Avaliação do Método

Faz-se necessária uma avaliação do método proposto, onde através de

experimentação e análise comparativa dos resultados serão identificados quais

parâmetros influenciam o sistema durante a ocorrência de flash crowds.

O objetivo desta análise será identificar os seguintes fatores em cada

ambiente:

• Quais ambientes não foram afetados por flash crowds?

• Quais ambientes foram afetados por flash crowds?

• Em que momento ocorre as flash crowds?

• Quantas vezes ocorrem flash crowds?

6.5 Cenários

Os cenários foram compostos pelo módulo de servidor de fluxo de vídeo

(source) com variações de dois, quatro e oito pares no módulo par. O número de

pares utilizados para a configuração dos ambientes foi escolhido de acordo com a

disponibilidade de recursos disponíveis no laboratório de testes durante as

experimentações.

O equipamento utilizado como servidor de fluxo de vídeo foi um notebook com

processador Turion 64 X2 Mobile Technology TL-64 2.2GHz equipado com 2gb de

Page 50: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

50

memória RAM utilizando sistema operacional Ubuntu Linux 8.10 "Intrepid Ibex" -

Release i386. Cada par na rede foi composto por uma estação de trabalho utilizando

processador Pentium 4 2.26GHz contendo 768mb de memória RAM com o sistema

operacional Xubuntu 8.10 "Intrepid Ibex" - Release i386.

Os parâmetros alternados nas experimentações de cada cenário foram

payload e tamanho do buffer de leitura conforme especificado no Quadro 3.

Os valores de payload foram escolhidos e ajustados durante o início das

experimentações, os valores escolhidos foram os valores que tiveram a possibilidade

de causar flash crowds e ao mesmo tempo tiveram a oportunidade de fazer a

transmissão do conteúdo multimídia. Os valores escolhidos para o tamanho do

buffer de leitura foram escolhidos durante as experimentações, não foram

encontrados nas referências deste trabalho nenhuma especificação ou valor ideal

para a utilização do tamanho de buffer, por este motivo foram escolhidos valores

com uma pequena diferença de tamanho para que se fosse possível analisar a

diferença de resultados de acordo com a mudança deste parâmetro.

Em cada cenário foram realizadas 4 experimentações, o Quadro 4 contém os

parâmetros utilizados em cada uma delas, sendo que para cada cenário (A, B e C) é

alterado o número de pares.

Quadro 4 – Parâmetros utilizados nas experimentações dos cenários

Experimentação Payload Tamanho do Buffer

1 128kb 50

2 128kb 150

3 256kb 50

4 256kb 150

Fonte: Autoria própria, 2009.

Page 51: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

51

6.5.1 Cenário A

Este cenário é composto pelo módulo Servidor de fluxo de vídeo e por duas

instâncias do módulo Par, os computadores utilizados neste cenário seguem as

especificações definidas na Seção 6.5. Este cenário foi utilizado para a realização

dos experimentos A1, A2, A3 e A4.

Os parâmetros utilizados para estas experimentações estão representados no

Quadro 4.

Todas as experimentações contêm o mesmo número de pares, com

diferentes combinações de tamanho do payload transmitido pelo servidor e tamanho

do buffer de leitura utilizado nos pares.

6.5.2 Cenário B

Este cenário foi utilizado para as experimentações B1, B2, B3 e B4, ele é

composto pelo módulo Servidor de fluxo de vídeo e por quatro instâncias do módulo

Par. Os parâmetros utilizados para cada uma das experimentações estão

especificados no Quadro 4.

Para este ambiente foi utilizado a variação do tamanho do payload enviado

pelo servidor de fluxo de vídeo entre 128kb e 256kb enquanto os pares variaram o

tamanho do buffer de leitura entre 50 e 150.

6.5.3 Cenário C

Este cenário foi composto pelo módulo Servidor de fluxo de vídeo e por oito

instâncias do módulo Par. O quadro 4 contém os parâmetros utilizados nas

experimentações deste cenário.

Nos experimentos realizados neste cenário foi aplicada a variação dos

parâmetros de payload entre 128kb e 256kb e tamanho de buffer de leitura entre 50

e 150.

Page 52: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

52

6.6 Análise e resultados

Esta Seção apresenta uma análise dos resultados obtidos nas

experimentações realizadas nos cenários especificados na Seção 6.5, inicialmente

foi feita uma análise e comparações dentro de cada um dos cenários, onde foram

identificados o melhor e o pior caso para o cenário em questão. Com o

conhecimento destes resultados, então foi feita uma comparação entre os melhores

resultados e os piores resultados de cada cenário, identificando o melhor e o pior

caso entre todos os cenários. Foi utilizado como parâmetros de comparação entre os

experimentos o número de falhas (NF) x percentual médio transmitido até a falha

(PTF) esta métrica foi utilizada para definir os melhores e os piores casos, sendo

que os melhores casos são aqueles que apresentaram NF menor do que os outros e

em caso de NF ser igual, então o melhor caso é o que apresenta o PTF maior.

Para cada uma das experimentações, foram realizadas quinze repetições pelo

motivo que os resultados das experimentações com este número de repetições eram

muito parecidos um com os outros, não apresentando uma variação muito grande

entre os resultados encontrados.

É assumido um número máximo de falhas (NM) para cada experimento, o

cálculo para encontrar o NM de cada experimento é dado pelo número de pares

(NP) multiplicado pelo número de repetições realizados no experimento, todos os

experimentos de um cenário terão o mesmo NM, o NM é pode ser calculado pela

fórmula NM = NP × NR.

Para um melhor entendimento da análise realizada neste trabalho, o quadro 5

demonstra as siglas e parâmetros que serão utilizadas durante a avaliação dos

resultados.

Page 53: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

53

Quadro 5 – Siglas e Parâmetros utilizados na avaliação

NP Número de pares utilizados.

NR Número de repetições realizadas.

NF Número de falhas ocorridas.

NM Número máximo de falhas.

PTF Percentual médio do vídeo transmitido até a falha.

PF Percentual de falhas ocorridas.

TS Tempo médio de execução do servidor.

TP Tempo médio de execução dos pares que não apresentaram falhas.

TPF Tempo médio de execução dos pares que apresentaram falhas.

MPF Média de pacotes transmitidos até a falha.

PG Total de pacotes gerados durante uma transmissão sem erros.

Fonte: Autoria própria, 2009.

6.6.1 Resultados e análise do cenário A

Neste cenário ocorreram os experimentos A1, A2, A3 e A4, em todos os

experimentos foram utilizados NP com valor 2, NR de 15 gerando NM igual a 60.

No resultado de A1, utilizando o tamanho do payload de 128kb e tamanho do

buffer de leitura de 50, foram encontrados TS igual 1,31min., TP igual 1,33min., TPF

igual a 1,17min., NF igual 2, PG igual 156239, MPF igual 78119,5 e PTF igual 50%.

A figura 12 ilustra o gráfico do percentual de pares que funcionaram sem falhas x

pares que falharam no experimento A1, ele apresenta um resultado bom pois o

número de falhas encontrados neste ambiente é pequeno.

Page 54: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

54

Figura 12 – Gráfico percentual de pares sem falhas x pares com falhas em A1 Fonte: Autoria própria, 2009.

Na experimentação A2, utilizando tamanho de payload de 128kb e tamanho

de buffer de leitura de 150, o resultado obtido foi TS igual 1,30min., TP igual

1,33min., TPF igual 1,28min., NF igual a 8, PG igual 156239, MPF igual 84402,57 e

PTF igual 54,02%. Na figura 13 é demonstrado o percentual de pares que

funcionaram sem falhas x pares que falharam durante A2, sendo que este cenário

apresenta um número de falhas maior que A1, logo este cenário teve um

desempenho pior do que A1.

Figura 13 – Gráfico percentual de pares sem falhas x pares com falhas em A2 Fonte: Autoria própria, 2009.

Page 55: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

55

Foram utilizados durante a experimentação A3 tamanho de payload de 256kb

e tamanho do buffer de leitura de 50. O resultado obtido neste experimento foi TS

igual a 1s., TP igual a 1s., TPF igual a 1s., NF igual 30, PG igual a 70039, MPF igual

84402,57 e PTF igual 0,33% com um total de 100% dos pares com falha.

O experimento A4, com tamanho do payload de 256kb e tamanho de buffer

de leitura de 150, gerou um resultado muito parecido com A3, exceto por MPF ser

igual 49,3 e PTF igual a 0,07%.

A comparação de todos os experimentos realizados neste ambiente pode ser

visualizada na figura 14, onde é demonstrada no gráfico uma relação entre PTF x NF

onde as colunas representam o PTF e a linha representa NF.

Figura 14 – Gráfico relação PTF x NF em A Fonte: Autoria própria, 2009.

Pode se observar no gráfico ilustrado na figura 14 que embora A2 tenha tido o

PTF maior que A1, A1 teve o NF menor que A2 e por este motivo é considerado o

melhor ambiente dentro do cenário A, A4 obteve o mesmo NF de A3, porém com o

PTF menor, sendo considerado o pior ambiente dentro do cenário A.

Page 56: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

56

O ambiente A4 apresentou PTF igual a zero pois em todas as repetições

realizadas em sua experimentação, ocorreram erros e não foi possível transmitir o

conteúdo.

6.6.2 Resultados e análise do cenário B

Neste cenário foram realizados os experimentos B1, B2, B3 e B4, para estes

experimentos foram utilizados NP igual 4, NR igual a 15 resultando em NM igual 60.

Em B1, foi utilizado tamanho do payload de 128kb e tamanho de buffer de

leitura de 50, foram encontrados TS igual 1,30min., TP igual 1,28min., TPF igual

44s., NF igual 17, PG igual 156239, MPF igual 57554,47 e PTF igual 47%. A figura

15 mostra o gráfico do percentual de pares que funcionaram sem falhas x pares que

falharam em B1.

Figura 15 – Gráfico percentual de pares sem falhas x pares com falhas em B1 Fonte: Autoria própria, 2009.

Para a experimentação B2 foi configurado payload de 128kb e tamanho de

buffer de leitura de 150. Os resultados encontrados foram TS igual 1,30min., TP

igual a 1,31min., TPF igual 0,31s., NF igual 10, PG igual 156239, MPF igual 35336,8

e PTF igual 22,6%. A figura 16 mostra o gráfico do percentual de pares que

funcionaram sem falhas x pares que falharam no experimento B2, este cenário

Page 57: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

57

apresentou um melhor resultado quando comparado com B1 por apresentar NF

menor do que em B1.

Figura 16 – Gráfico percentual de pares sem falhas x pares com falhas em B2 Fonte: Autoria própria, 2009.

No experimento B3 foi utilizado payload de 256kb e tamanho de buffer de 50.

Foram obtidos os seguintes resultados, TS igual 0,28s., TP igual 1,25min., TPF igual

0,0min., NF igual 54, PG igual 70039, MPF igual 1514 e PTF igual 2,16%. A figura

17 ilustra o gráfico do percentual de pares que funcionaram sem falhas x pares que

falharam durante B3, este resultado não apresentou um desempenho bom pois NF é

muito alto.

Page 58: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

58

Figura 17 – Gráfico percentual de pares sem falhas x pares com falhas em B3 Fonte: Autoria própria, 2009.

Para a experimentação B4 os parâmetros utilizados foram payload de 256kb e

tamanho de buffer de leitura de 150. Como resultados, foram obtidos TS igual

1,25min., TP igual 1,27min., TPF igual 0,02s., NF igual 45 PG igual 70039, MPF

igual 2760 e PTF igual 3,94%. A figura 18 ilustra o gráfico do percentual de pares

que funcionaram sem falhas x pares que falharam em B4, este ambiente, embora

não tenha apresentado um bom desempenho, este cenário apresentou resultados

melhores que B3 pois seu NF é menor do que o NF encontrado em B3.

Page 59: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

59

Figura 18 – Gráfico percentual de pares sem falhas x pares com falhas em B4 Fonte: Autoria própria, 2009.

Seguindo o exemplo da análise realizada no cenário A, foi realizada uma

comparação entre os experimentos realizados no cenário B, a figura 19 demonstra o

gráfico com a relação entre PTF x NF, sendo que as colunas demonstram o PTF de

cada experimentação e a linha demonstra o NF.

Page 60: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

60

Figura 19 – Gráfico relação PTF x NF em B Fonte: Autoria própria, 2009.

Para o cenário B, o melhor ambiente encontrado foi B2 como se pode

observar no gráfico apresentado na figura 19 pois este apresenta NF menor do que

os demais ambientes deste cenário, embora B2 tenha o PTF maior que B1, B2

apresenta o NF menor que B1, B3 é considerado o pior ambiente neste cenário por

apresentar PTF menor e NF maior do que todos os outros.

6.6.3 Resultados e análise do cenário C

Os experimentos C1, C2, C3 e C4 foram realizados neste ambiente, todos

eles utilizaram os seguintes parâmetros NP igual a 8, NR igual 15 e NM igual 120.

Para o experimento C1 foi utilizado payload de 128kb e tamanho de buffer de

leitura de 50. Os resultados obtidos foram TS igual 1,33min., TP igual 1,34min., TPF

igual 37s., NF igual 25 PG igual 156239, MPF igual 50369,60 e PTF igual 32,24%. A

figura 20 ilustra o gráfico do percentual de pares que funcionaram sem falhas x

pares que falharam em C1.

Page 61: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

61

Figura 20 – Gráfico percentual de pares sem falhas x pares com falhas em C1 Fonte: Autoria própria, 2009.

No experimento C2 foi utilizado payload de 128kb e tamanho de buffer de

leitura de 150. Os resultados obtidos neste experimento foram TS igual a 1,33min.,

TP igual a 1,34min., TPF igual 33s., NF igual 6 PG igual 156239, MPF igual

41502,28 e PTF igual 26,56%. O gráfico do percentual de pares que funcionaram

sem falhas x pares que falharam em C2 é demonstrado na Figura 21, este ambiente

foi o que obteve maior desempenho com apenas 5% de falhas.

Figura 21 – Gráfico percentual de pares sem falhas x pares com falhas em C2 Fonte: Autoria própria, 2009.

Page 62: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

62

Em C3 foi utilizado payload de 256kb e tamanho de buffer de leitura de 50.

Este experimento gerou os seguintes resultados, TS igual 1,26min., TP igual

1,37min., TPF igual 1s., NF igual 102 PG igual 70039, MPF igual 1599,68 e PTF

igual 2,28%. É apresentado na figura 22 o gráfico do percentual de pares que

funcionaram sem falhas x pares que falharam em C3.

Figura 22 – Gráfico percentual de pares sem falhas x pares com falhas em C3 Fonte: Autoria própria, 2009.

No ambiente C4 foi utilizado tamanho de payload de 256kb e tamanho de

buffer de leitura de 150. Os resultados encontrados neste experimento foram, TS

igual 54s., TP igual 1,29min., TPF igual 0s., NF igual 111 PG igual 70039, MPF igual

1234,79 e PTF igual 1,76%. É apresentado na figura 23 o gráfico do percentual de

pares que funcionaram sem falhas x pares que falharam no experimento C4.

Page 63: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

63

Figura 23 – Gráfico percentual de pares sem falhas x pares com falhas em C4 Fonte: Autoria própria, 2009.

Foi realizada uma comparação entre todos os experimentos realizados neste

cenário, esta comparação pode ser visualizada no gráfico demonstrado na figura 24

na relação entre PTF x NF onde as colunas representam o PTF de cada

experimento e a linha representa NF.

Page 64: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

64

Figura 24 – Gráfico relação PTF x NF em C Fonte: Autoria própria, 2009.

O melhor ambiente para este cenário, como pode ser observado na figura 24,

é C2, ele obteve NF menor do que os demais experimentos realizados neste cenário

e o pior resultado para este cenário foi C4 por obter NF maior do que todos os

experimentos deste cenário e PTF menor do que todos os experimentos realizados

no cenário C.

6.6.4 Comparação entre cenários

Esta Seção ira apresentar uma comparação dos melhores e dos piores

resultados de cada cenário. Os experimentos que apresentaram NF menor, foram

considerados como melhores cenário e os experimentos com NF maior como piores

cenários.

Os melhores resultados para cada cenário foram A1, B2 e C2, é ilustrada no

gráfico da figura 25 uma comparação entre esses cenários através do gráfico da

relação entre PTF x PF.

Page 65: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

65

Figura 25 – Gráfico relação PTF x PF dos melhores casos Fonte: Autoria própria, 2009.

De acordo com os resultados demonstrados na figura 24, o melhor resultado

de todos os cenários foi obtido em C2 por apresentar NF menor do que todos os

outros experimentos, seguido de A1 e B2.

Os piores resultados encontrados para cada cenário foram A4, B3 e C4, a

comparação entre eles é feita através do gráfico da relação entre PTF x PF

conforme é ilustrado na figura 26.

Page 66: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

66

Figura 26 – Gráfico relação PTF x PF dos piores casos Fonte: Autoria própria, 2009.

Conforme pode ser observado na figura 26, o pior caso de todos é encontrado

em A4 onde PF é maior do que os outros casos assim como PTF é menor, seguido

de B3 e C4.

Entre os melhores casos, todos os resultados obtidos foram com o payload de

128kb e entre os piores casos, todos os experimentos apresentaram payload de

256kb. Para os cenários estudados o tamanho de payload menor obteve melhores

resultados independente de NP. O tamanho de buffer de leitura teve seu

comportamento variável, tendo desempenho pior em todos os casos do cenário A

quando seu valor era de 150, um desempenho melhor em todos os casos de B com

valor de 150. Em C tamanho de buffer de leitura de 150 obteve melhor resultado

com payload de 128kb e pior resultado para payload de 256kb. O tamanho de buffer

de leitura influencia o desempenho durante flash crowds, porém ele depende de

fatores como NP e tamanho do payload para melhorar ou piorar a qualidade do

sistema.

Page 67: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

67

7 CONSIDERAÇÕES FINAIS

Durante o decorrer desta pesquisa, foram estudados vários conceitos e

definições até focar no principal problema de estudo deste trabalho que é a análise

no flash crowd para transmissão multimídia em redes par-a-par.

Levando em consideração toda fundamentação teórica analisada, foi

apresentada a proposta de um método para análise no flash crowd para transmissão

de multimídia em redes par-a-par.

7.1.1 Resultados encontrados

Em respostas aos objetivos inicialmente vistos por este trabalho é possível

destacar que todos os objetivos foram atingidos plenamente. A execução do modelo

proposto foi executada com sucesso em diversos ambientes e testada com diversos

parâmetros diferentes. Os problemas de pesquisa apresentados na seção 6.4 foram

numerados e respondidos conforme apresentados a seguir:

1. Quais ambientes não foram afetados por flash crowds? Antes de

responder esta pergunta, é importante salientar que todas as falhas de

pares ocorridas no sistema foram assumidas como falhas causadas

pelas flash crowds, todos os ambientes foram afetados pelas flash

crowds, porém alguns menos do que os outros, o ambiente menos

afetado por todos foi o ambiente C2 que sofreu apenas 5% de erros

durante sua experimentação.

2. Quais ambientes foram afetados por flash crowds? Todos ambientes

foram afetados, alguns sofrendo menos falhas e outros sofrendo falhas

Page 68: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

68

críticas ao sistema, os ambientes A3 e A4 resultaram em um total de

100% de falhas para todos os pares e para o servidor em todas suas

tentativas de execução.

3. Em que momento ocorre as flash crowds? Nos testes realizados no

cenário A1 e A2 as falhas ocorrem próximas ao tempo final de

execução, nos ambientes A3, A4, B13, C3 e C4 ocorrem falhas antes

de 1 segundo de execução do programa. Geralmente as falhas

ocorrem no início do programa, conforme foi observado em TPF.

4. Quantas vezes ocorrem flash crowds? O número de vezes que

ocorreram flash crowds durante as experimentações é apresentado

conforme segue, em A1 ocorrem duas vezes, em A2 ocorrem 8 vezes,

em A3 e A4 ocorrem 15 vezes sendo que em todas elas nenhum dos

pares conseguiu executar o programa sem falhas, em B1 ocorrem 12

vezes, em B2 ocorrem 10 vezes, em B3 ocorrem 15 vezes sendo que

em 10 delas acontece o mesmo problema de A3 e A4, em B4

acontecem 15 vezes, em C2 acontecem 5 vezes em C3 acontecem 15

vezes sendo que 1 vez apresenta os mesmos problemas de A3 e A4 e

em C4 ocorrem 15 vezes sendo 6 delas com falha em todos os pares.

Esta análise identificou que em todos ambientes o tamanho do payload menor

funciona com menos erros e que na maioria dos casos o tamanho de buffer de

leitura maior teve um melhor desempenho no sistema, porém este desempenho

varia de acordo com NP e o tamanho do payload utilizado.

7.1.2 Limitações e dificuldades encontradas

Como dificuldades se podem apontar o tempo de execução do período de

testes e a disponibilidade de ambientes para se montar os cenários. Também

existiram algumas dificuldades durante a prototipação, um dos principais fatores foi o

fato de nenhum dos sistemas apresentarem o tamanho de buffer de leitura do

sistema.

Page 69: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

69

Pelo motivo do protótipo não apresentar um sistema de re-conexões dos

pares perante as falhas, foi considerado a falha de um par no sistema como uma

falha ocasionado por flash crowd.

Outro fator considerado como limitação neste trabalho é o fato dos cenários

apresentarem um número pequeno de pares na rede e não terem sido testados em

ambiente de Internet.

O protótipo desenvolvido para testes foi baseado em algumas características

do Coolstreaming, porém este não apresenta todas as funcionalidades encontradas

no Coolstreaming original. O motivo da não utilização do próprio Coolstreaming

como sistema de fluxo de vídeo ao vivo par-a-par foi pela indisponibilidade de um

código fonte para análise do mesmo e por este sistema ter se tornado um sistema

comercial não existindo uma versão gratuita.

As experimentações realizadas não utilizaram o módulo de Bootstrap

desenvolvido no protótipo e por este motivo os experimentos realizados se limitaram

a uma topologia de rede em árvore ao invés da topologia de rede em malha

apresentado no Coolstreaming.

7.1.3 Trabalhos futuros

Esta fase inicial deste trabalho identificou alguns parâmetros que influenciam

nos sistemas durante a ocorrência de flash crowds, porém deixou em aberto uma

série de outros fatores que podem ser utilizados para complementar este estudo.

Dentre as linhas de estudo que podem ser seguidas para melhorar esta pesquisa

estão:

• Análise de delay e jitter utilizando o tempo e o número de pacotes

gerados nas análises (quantidade de pacotes gerados/seg).

• Análise utilizando tamanhos de vídeo maiores.

• Experimentação em ambientes reais como, por exemplo, a Internet.

• Implementação de melhorias no servidor de fluxo de vídeo para que

este tenha capacidade de transmitir conteúdos ao vivo capturados

diretamente de uma webcam ou de uma câmera DV.

Page 70: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

70

Implementação de melhoria nos pares para que estes possam receber conexões

de outros pares da rede e possam ser utilizados em conjunto com o módulo de

Bootstrap.

Page 71: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

REFÊRENCIAS

ADAR, E; HUBERMAN, B. A. Free riding on Gnutella . First Monday, v.5, Oct 2000. Disponível em http://firstmonday.org/issues/issue5_0/adar/index.html. Acessado em Set 2008.

ANDROUTSELLIS-THEOTOKIS, S.; SPINELLIS, D. A Survey of Peer-to-Peer Content Distribution Technologies . ACM COMPUTING SURVEYS, v.36, n.4, p.335-371, 2004.

AOL VIDEO . Site de conteúdo de video disponibilizado por streaming. 2009. Disponível em http://video.aol.com/. Acessado em Mai 2009.

APOSTOLOPOULOS, J.G.; TAN, W.T.; WEE S.J. Video streaming: Concepts, algorithms, and systems. HP, Tech. Rep. HPL-2002- 260, 2002.

Amazon . Site de conteúdo de video disponibilizado por streaming. 2009. Disponível em http://www.amazon.com/gp/video/ontv/start/ref=sv_atv_1. Acessado em Mar 2009.

BARCELLOS, M. P; GASPARY, L. P. Fundamentos, Tecnologias e Tendências rumo a Redes P2P Seguras . SBC JORNADAS DE ATUALIZAÇÃO EM INFORMÁTICA (JAI), 2006.

BISKUPSKI, B.; CUNNINGHAM, R.; MEIER, R. Improving Throughput and NodeProximity of P2P Live Video Streaming through O verlay Adaptation. NINTH IEEE INTERNATIONAL SYMPOSIUM ON MULTIMEDIA, 2007. ISM 2007, p.245-253, Dec 2007.

CLARK, David. Face-to-Face with Peer-to-Peer Networking . IEEE Computer, vol. 34, no. 1, p.18-21, Jan 2001.

CNN Pipeline . Site de conteúdo de video disponibilizado por streaming. 2009. Disponível em http://www.cnn.com/pipeline/. Acessado em Mar 2009.

DESHPANDE, M. et al. Flashback: A Peer-to-Peer Web Server for Flash Crow ds . IN ICDCS '07. 27TH INTERNATIONAL CONFERENCE DISTRIBUTED COMPUTING SYSTEMS, p.15, JUN 2007.

FODOR, V; DAN, G. Resilience in live peer-to-peer streaming. IEEE COMMUNICATIONS MAGAZINE, v.45, issue 6, p.116-123, Jun 2007.

Page 72: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

72

HEFEEDA, M. M; BHARGAVA, B. K.; YAU, D. K. Y. A hybrid architecture for cost-effective on-demand media streaming. In: The International Journal of Computer and Telecommunications Networking , v. 44, p.353–382, 2004.

HEFEEDA, M.; BHARGAVA, B. On-Demand Media Streaming Over the Internet. IN PROC. OF 9TH IEEE WORKSHOP ON FUTURE TRENDS OF DISTRIBUTED COMPUTING SYSTEMS (FTDCS'03), p.279-285, San Juan, Puerto Rico, Slides, May 2003.

HUI, K.Y.K.; LUI, J.C.S.; YAU, D.K.Y. Small world overlay P2P networks. IN TWELFTH IEEE INTERNATIONAL WORKSHOP ON QUALITY OF SERVICE, 2004. IWQOS 2004, p.201-210, Jun 2004.

Helix Server . Site da empresa real networks 2009. Disponível em http://www.realnetworks.com/products/media_delivery.html. Acessado em Mai 2009.

JUNG J.; KRISHNAMURTHY B.; RABINOVICH M. Flash crowds and denial of service attacks: characterization and implications for CDNs and web sites . IN ACM INTERNATIONAL WORLD WIDE WEB CONFERENCE ARCHIVE PROCEEDINGS OF THE 11TH INTERNATIONAL CONFERENCE ON WORLD WIDE WEB, p.293-304, 2002.

JURCA, D. et al. Enabling adaptive video streaming in p2p systems. IEEE COMMUNICATIONS MAGAZINE, v.45, issue 6, p.108-114, Jun 2007.

KAZAA . Site do programa de troca de arquivos Kazaa. 2009. Disponível em http://www.kazaa.com. Acessado em Jun 2009.

LI, B. et al. An Empirical Study of Flash Crowd Dynamics in a P2P -Based Live Video Streaming System. IEEE JOURNAL ON SELECTED AREAS IN COMMUNICATIONS, SPECIAL ISSUES ON ADVANCE IN PEER-TO-PEER STREAMING SYSTEMS, v.25, n.9, p.1627-1639, Dec 2007.

LI, B. et al. Inside the New Coolstreaming: Principles, Measureme nts and Performance Implications. IEEE INFOCOM 2008. THE 27TH CONFERENCE ON COMPUTER COMMUNICATIONS, p.1031-1039, Apr 2008.

LIAO, X. et al. Anysee: Peer-to-peer live streaming . INFOCOM 2006. 25TH IEEE INTERNATIONAL CONFERENCE ON COMPUTER COMMUNICATIONS. PROCEEDINGS, p.1-10, Apr 2006.

LIU, J. et al. Opportunities and challenges of peer-to-peer intern et video broadcast . PROCEEDINGS OF THE IEEE, v.96, issue 1, p.11-24, Jan 2008.

Page 73: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

73

LUA, E. K. et al. A survey and comparison of peer-to-peer overlay net work schemes . IEEE COMMUNICATIONS SURVEYS & TUTORIALS, v.7, issue 2, p.72-93, 2005.

MAGHAREI, N.; GUO, Y; REJAIE, R. Issues in Offering Live P2P Streaming Service to Residential Users. CONSUMER COMMUNICATIONS AND NETWORKING CONFERENCE, 4th IEEE CCNC, p.757-762, Jan 2007c.

MAGHAREI, N.; REJAIE, R.; GUO, Y. Mesh or Multiple-Tree: A Comparative Study of Live P2P Streaming Approaches. INFOCOM 2007. 26TH IEEE INTERNATIONAL CONFERENCE ON COMPUTER COMMUNICATIONS. p.1424-1432, May 2007a.

MAGHAREI, N.; REJAIE, R. PRIME: Peer-to-Peer Receiver-drIven MEsh-based Streaming . INFOCOM 2007. 26TH IEEE INTERNATIONAL CONFERENCE ON COMPUTER COMMUNICATIONS. p.1415-1423, May 2007b. Accepted to IEEE/ACM TRANSACTIONS ON NETWORKING, to appear in October 2009. Disponível em <http://mirage.cs.uoregon.edu/public.html>.

MALKHI, D.; NAOR, M.;RATAJCZAK, D. Viceroy: a scalable and dynamic emulation of the butterfly. IN PROCESSINGS OF THE ACM PODC’02, Monterey, CA, USA, p.183-192. Jul 2002

MAYMOUNKOV, P.; MAZI`ERES D. Kademlia: A peer-to-peer information system based on the xor metric . IN PROCESSINGS OF THE IPTPS, Cambridge, MA, USA, p.53-65, Feb 2002.

MOL, J.J.D. et al. Give-to-Get: An Algorithm for P2P Video-on-Demand. FIFTEENTH ANNUAL MULTIMEDIA COMPUTING AND NETWORKING CONFERENCE, Jan 2008. Disponível em <http://tv.seas.harvard.edu/give-to-get_algorithm_for_P2P_Video_on_Demand.pdf>.

MOL, J.J.D. et al. The Orchard Algorithm: Building Multicast Trees for P2P Video Multicasting Without Free-Riding. IEEE TRANSACTIONS ON MULTIMEDIA, v.9, N.8, Dec 2007.

NAPSTER. Site do serviço de download de MP3 Napster. 2009. Disponível em http://free.napster.com. Acessado em Mar 2009.

PAI, V. et al. Chainsaw: Eliminating trees from overlay multicast . IN PROC. THE 4TH INTERNATIONAL WORKSHOP ON PEER-TO-PEER SYSTEMS, 2005.

PAN, C. et al. Flash crowds alleviation via dynamic adaptive netwo rk. IN INTERNET CONFERENCE 2004, p.21-28, Tsukuba, Japan, Oct. 2004.

Page 74: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

74

PROJECT ANYSEE . Site do projeto ANYSEE. 2009. Disponível em http://grid.hust.edu.cn/qihuang/doku.php?id=anysee. Acessado em Mai 2009.

QUICKTIME. Site da empresa Apple. 2009. Disponível em http://www.apple.com/quicktime/streamingserver/. Acessado em Mai 2009.

RATNASAMY, S. et al. A scalable content addressable network . In ACM SIGCOMM 2001, p.161-172, 2001

RFC 1889. Site da IETF. 2009. Disponível em http://tools.ietf.org/html/rfc1889. Acessado em Mar 2009.

RFC 2326. Site da IETF. 2009. Disponível em http://tools.ietf.org/html/rfc2326. Acessado em Mar 2009.

RFC 2616. Site da IETF. 2009. Disponível em http://tools.ietf.org/html/rfc2616. Acessado em Mar 2009.

RFC 3550. Site da IETF. 2009. Disponível em http://tools.ietf.org/html/rfc3550. Acessado em Mar 2009.

RODENAS, Vânia R. Sávio; JANSCH-PORTO, Ingrid; BARCELLOS, Marinho P. Abordagem para obter uma rede de sobreposição coesa visando aplicações de live streaming em sistemas P2P . ESCOLA REGIONAL DE REDES DE COMPUTADORES (ERRC), 6ª ed. Outubro de 2008.

ROWSTRON, A; DRUSCHEL, P. Pastry: Scalable, distributed object location and routing for large-scale peer-to-peer systems . in PROCEEDINGS OF THE MIDDLEWARE, 2001.

RUBENSTEIN, D.; SAHU, S. Can unstructured P2P protocols survive flash crowds? IN IEEE/ACM TRANSACTIONS ON NETWORKING, v.13, issue 3, p.501-512, 2005.

SRIPANIDKULCHAI K.; MAGGS, B.; ZHANG, H. An analysis of live streaming workloads on the internet. IN PROCEEDINGS OF THE 4TH ACM SIGCOMM CONFERENCE ON INTERNET MEASUREMENT, p.41-54, 2004.

STADING, T.; MANIATIS, P.; BAKER, M. Peer-to-Peer Caching Schemes to Address Flash Crowds. IN REVISED PAPERS FROM THE FIRST INTERNATIONAL WORKSHOP ON PEER-TO-PEER SYSTEMS, Lecture Notes In Computer Science, v.2429, p.203-213, 2002.

Page 75: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

75

STAVROU, A.; RUBENSTEIN, D.; SAHU, S. A lightweight, robust P2P system to handle flash crowds . IN IEEE JOURNAL ON SELECTED AREAS IN COMMUNICATIONS, v.22, issue 1, p.6-17, 2004.

STOICA, I. et al. Chord: A scalable peer-to-peer lookup protocol for internet applications. IEEE/ACM TRANSACTIONS ON NETWORKING, v.11, n.1, p.17–32, 2003.

THOUIN, F.; COATES, M. Video-On-Demand Networks: Design Approaches and Future Challenges . In: IEEE NETWORK, v.21, Issue 2, p.42-48, March-April 2007.

Tribler Streaming Explained . 2009. Disponível em http://tribler.org/test_streaming/pub/tribler_streaming_explained.pdf

WALLACH, D. S. A survey of peer-to-peer security issues . IN INTERNATIONAL SYMPOSIUM ON SOFTWARE SECURITY, p.42–57, 2002.

XIE, S. et al. Coolstreaming: Design, theory, and practice . IEEE TRANSACTIONS ON MULTIMEDIA, v.9, issue 8, p.1661-1671, Dec 2007.

YOUTUBE. Site de conteúdo de video disponibilizado por streaming.2009. Disponível em http://www.youtube.com. Acessado em fev 2009.

ZHAO, B. Y. et al. Tapestry: A resilient global-scale overlay for serv ice deployment . IEEE JOURNAL ON SELECTED AREAS IN COMMUNICATIONS, v.22, n.1, p.41-53, Jan 2004.

Page 76: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

APÊNDICE A – Código fonte do módulo Bootstrap #!/usr/bin/python import SocketServer,sys,re,time,thread,threading,os,socket,random import struct, fcntl class Interface_ip: def set_interface(self,ifname): self.ifname = ifname def get_ip_address(self): s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) return socket.inet_ntoa(fcntl.ioctl( s.fileno(), 0x8915, # SIOCGIFADDR struct.pack('256s', self.ifname[:15]) )[20:24]) Mcache = [] class BootStrapHandler(SocketServer.BaseRequestHandler): def PadMsg(msg): while len(msg) < 1024: msg=msg+' ' return msg def server_bind(self): SocketServer.ThreadingTCPServer.server_bind(self) self.socket.setdefaulttimeout(5) self.run = True def setup(self): print 'BootStrap: ',self.client_address, ' conectou' def handle(self): try: global Mcache global McacheNode #Get command Saida=False while Saida!=True: data = self.request.recv(1024) if data.strip() != '': print 'BootStrap Recebeu: ',data.strip() else: pass if data.strip() == 'REGISTER': #Coloco o peer na lista de peers if Mcache.count(self.client_address[0]) <= 0: Mcache.append(str(self.client_address[0])) self.request.send('OK\r\n') else: pass elif data.strip() == 'REMOVE': data = self.request.recv(1024) while data.strip() != 'FINISH': print data.strip() if Mcache.count(data.strip()) > 0: Mcache.remove(data.strip()) else: print 'ERRO' data = self.request.recv(1024) elif data.strip() == 'LIST': McacheNode = Mcache[:] McacheNode.remove(self.client_address[0]) if Mcache.count(self.client_address[0]) >0: if len(McacheNode) <= 5 and len(McacheNode) > 0: for Ip in McacheNode: self.request.send(str(Ip)+'\r\n') elif len(McacheNode) > 5: peerSelect = [] while len(peerSelect) < 5: peerIp = random.choice(McacheNode) print peerIp

Page 77: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

77

if peerSelect.count(peerIp) == 0: peerSelect.append(peerIp) for Ip in peerSelect: self.request.send(str(Ip)+'\r\n') else: IpServer = Interface_ip() IpServer.set_interface('eth0') Ip = IpServer.get_ip_address() self.request.send(str(Ip)+'\r\n') else: pass elif data.strip() == 'EXIT': Saida=True elif data.strip() == '': pass else: pass except : self.finish() def finish(self): print 'BootStrap: ',self.client_address,' desconectou' print repr(McacheNode) print repr(Mcache) def open_bootstrap(): SocketServer.ThreadingTCPServer.allow_reuse_address = 1 BootStrapPort = 7187 print 'BootStrap inicializado na porta: ' + str(BootStrapPort) bootstrap = SocketServer.ThreadingTCPServer(('',BootStrapPort), BootStrapHandler) try: bootstrap.serve_forever() except KeyboardInterrupt: sys.exit(0) def Initialize(): thread.start_new_thread(open_bootstrap,()) time.sleep(1) Initialize() while 1:pass

Page 78: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

APÊNDICE B – Código fonte do módulo Servidor de flu xo de vídeo from socket import * import sys,struct,time myHost = '' myPort = 50007 param = sys.argv[1:] N_PEER,BUFFER,LOG = param print N_PEER print BUFFER sockobj = socket(AF_INET, SOCK_STREAM) sockobj.bind((myHost, myPort)) sockobj.listen(int(N_PEER)) video = open('/home/zank/Desktop/pes2009.mpg', 'r') log = open('logs/'+LOG+time.strftime('%Y%m%d%H%M%S')+'.txt','w') Saida=False count = 0 lista = [] payload = int(BUFFER)-24 while len(lista) < int(N_PEER): connection, address = sockobj.accept() print 'Server connected by', address data = connection.recv(1024) print data if data.strip() == 'PLAY': lista.append([address,connection]) else: pass while 1: stream = video.read(payload) if len(stream) == 0: break count = count+1 id = str(count) id = id.rjust(24,'0') data = struct.pack('24s'+str(payload)+'s',id,stream) for sock_obj in lista: try: sock_obj[1].send(data) log.write(str(int(id))+';') log.write(str(len(data))+';') log.write(str(sock_obj[0])+';') log.write(time.strftime('%H:%M:%S')+'\r\n') except: lista.remove(sock_obj) log.close() sockobj.close()

Page 79: ANÁLISE DE FLASH CROWD PARA TRANSMISSÕES MULTIMÍDIA … · MPEG Moving Pictures Experts Groups MPF Média de pacotes transmitidos até a falha NF Número de falhas ocorridas NM

APÊNDICE C – Código fonte do módulo Par #!/usr/bin/python import sys,time,socket,struct param = sys.argv[1:] IP,PACKAGE_SIZE,BUFFER,LOG = param Mcache = [] Buffer = [] PACKAGE_SIZE = int(PACKAGE_SIZE) PAYLOAD = PACKAGE_SIZE- 24 log = open(LOG+time.strftime('%Y%m%d%H%M%S')+'.txt','w') class csnode: sNode = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sNode.connect((IP, 50007)) sNode.send('PLAY') while 1: data = sNode.recv(PACKAGE_SIZE) dataRecv = time.strftime('%H:%M:%S') size_recv = len(data) if size_recv == PACKAGE_SIZE: id,chunk = struct.unpack('24s'+str(PAYLOAD)+'s',data) Buffer.append([id,chunk]) log.write(str(int(id))+';') log.write(str(size_recv)+';') log.write('recv'+dataRecv+';') if len(Buffer) > int(BUFFER): ID,CHUNK = Buffer.pop(0) sys.stdout.write(CHUNK) dataRead = time.strftime('%H:%M:%S') log.write('read'+dataRead+';\r\n') else: log.write('pacotePerdido;') log.write(str(size_recv)+';\r\n') break while len(Buffer) >0: ID,CHUNK = Buffer.pop(0) sys.stdout.write(CHUNK) dataReadBuffer = time.strftime('%H:%M:%S') log.write(str(int(ID))+';') log.write('readBuffer'+dataReadBuffer+';\r\n') sNode.close() node = csnode()