VII Workshop de Redes Dinâmicas e Sistemas - SBRC 2011

Transcription

VII Workshop de Redes Dinâmicas e Sistemas - SBRC 2011
ANAIS
XXIX Simpósio Brasileiro de Redes de Computadores e Sistemas
Distribuídos
30 de maio a 3 de junho de 2011
Campo Grande, MS
VII Workshop de Redes Dinâmicas
e Sistemas Peer-to-Peer (WP2P)
Editora
Sociedade Brasileira de Computação (SBC)
Organizadores
Nazareno Andrade (UFCG)
Fábio Moreira Costa (UFG)
Ronaldo Alves Ferreira (UFMS)
Realização
Faculdade de Computação
Universidade Federal de Mato Grosso do Sul (UFMS)
Promoção
Sociedade Brasileira de Computação (SBC)
Laboratório Nacional de Redes de Computadores (LARC)
ii
Anais
Copyright © 2011 da Sociedade Brasileira de Computação
Todos os direitos reservados
Capa: Venise Melo
Produção Editorial: Lucilene Vilela Gonçalves, Ronaldo Alves Ferreira
Cópias Adicionais:
Sociedade Brasileira de Computação (SBC)
Av. Bento Gonçalves, 9500 – Setor 4 – Prédio 43.412 – Sala 219
Bairro Agronomia – CEP 91.509-900 – Porto Alegre – RS
Fone: (51) 3308-6835
E-mail: [email protected]
Dados Internacionais de Catalogação na Publicação (CIP)
Workshop de Redes Dinâmicas e Sistemas Peer-to-Peer (7.: 2011 : Campo Grande,
MS).
Anais / VII Workshop de Redes Dinâmicas e Sistemas Peer-to-Peer; organizadores
Nazareno Andrade... et al. – Porto Alegre : SBC, c2011.
175 p.
ISSN 2177-496X
1. Redes de computadores. 2. Sistemas distribuídos. I. Andrade, Nazareno. II. Título.
VII Workshop de Redes Dinâmicas e Sistemas P2P
Promoção
Sociedade Brasileira de Computação (SBC)
Diretoria
Presidente
José Carlos Maldonado (USP)
Vice-Presidente
Marcelo Walter (UFRGS)
Diretor Administrativo
Luciano Paschoal Gaspary (UFRGS)
Diretor de Finanças
Paulo Cesar Masiero (USP)
Diretor de Eventos e Comissões Especiais
Lisandro Zambenedetti Granville (UFRGS)
Diretora de Educação
Mirella Moura Moro (UFMG)
Diretora de Publicações
Karin Breitman (PUC-Rio)
Diretora de Planejamento e Programas Especiais
Ana Carolina Salgado (UFPE)
Diretora de Secretarias Regionais
Thais Vasconcelos Batista (UFRN)
Diretor de Divulgação e Marketing
Altigran Soares da Silva (UFAM)
Diretor de Regulamentação da Profissão
Ricardo de Oliveira Anido (UNICAMP)
Diretor de Eventos Especiais
Carlos Eduardo Ferreira (USP)
Diretor de Cooperação com Sociedades Científicas
Marcelo Walter (UFRGS)
iii
iv
Anais
Promoção
Conselho
Mandato 2009-2013
Virgílio Almeida (UFMG)
Flávio Rech Wagner (UFRGS)
Silvio Romero de Lemos Meira (UFPE)
Itana Maria de Souza Gimenes (UEM)
Jacques Wainer (UNICAMP)
Mandato 2007-2011
Cláudia Maria Bauzer Medeiros (UNICAMP)
Roberto da Silva Bigonha (UFMG)
Cláudio Leonardo Lucchesi (UFMS)
Daltro José Nunes (UFRGS)
André Ponce de Leon F. de Carvalho (USP)
Suplentes – Mandato 2009-2011
Geraldo B. Xexeo (UFRJ)
Taisy Silva Weber (UFRGS)
Marta Lima de Queiroz Mattoso (UFRJ)
Raul Sidnei Wazlawick (PUCRS)
Renata Vieira (PUCRS)
Laboratório Nacional de Redes de Computadores (LARC)
Diretoria
Diretor do Conselho Técnico-Científico
Artur Ziviani (LNCC)
Diretor Executivo
Célio Vinicius Neves de Albuquerque (UFF)
Vice-Diretora do Conselho Técnico-Científico
Flávia Coimbra Delicato (UFRN)
Vice-Diretor Executivo
Luciano Paschoal Gaspary (UFRGS)
Membros Institucionais
CEFET-CE, CEFET-PR, IME, INPE/MCT, LNCC, PUCPR, PUC-RIO, SESU/MEC,
UECEM UERJ, UFAM, UFBA, UFC, UFCG, UFES, UFF, UFMG, UFMS, UFPA,
UFPB, UFPE, UFPR, UFRGS, UFRJ, UFRN, UFSC, UFSCAR, UNICAMP,
UNIFACS, USP
VII Workshop de Redes Dinâmicas e Sistemas P2P
Realização
Comitê de Organização
Coordenação Geral
Ronaldo Alves Ferreira (UFMS)
Coordenação do Comitê de Programa
Artur Ziviani (LNCC)
Bruno Schulze (LNCC)
Coordenação de Palestras e Tutoriais
Nelson Luis Saldanha da Fonseca (UNICAMP)
Coordenação de Painéis e Debates
José Augusto Suruagy Monteiro (UNIFACS)
Coordenação de Minicursos
Fabíola Gonçalves Pereira Greve (UFBA)
Coordenação de Workshops
Fábio Moreira Costa (UFG)
Coordenação do Salão de Ferramentas
Luis Carlos Erpen De Bona (UFPR)
Comitê Consultivo
Antônio Jorge Gomes Abelém (UFPA)
Carlos André Guimarães Ferraz (UFPE)
Francisco Vilar Brasileiro (UFCG)
Lisandro Zambenedetti Granville (UFRGS)
Luci Pirmez (UFRJ)
Luciano Paschoal Gaspary (UFRGS)
Marinho Pilla Barcellos (UFRGS)
Paulo André da Silva Gonçalves (UFPE)
Thais Vasconcelos Batista (UFRN)
v
vi
Anais
Realização
Organização Local
Brivaldo Alves da Silva Jr. (UFMS)
Edson Norberto Cáceres (UFMS)
Eduardo Carlos Souza Martins (UFMS/POP-MS)
Hana Karina Sales Rubinstejn (UFMS)
Irineu Sotoma (UFMS)
Kátia Mara França (UFMS)
Luciano Gonda (UFMS)
Lucilene Vilela Gonçalves (POP-MS)
Márcio Aparecido Inácio da Silva (UFMS)
Marcos Paulo Moro (UFGD)
Massashi Emilson Oshiro (POP-MS)
Nalvo Franco de Almeida Jr. (UFMS)
Péricles Christian Moraes Lopes (UFMS)
Renato Porfírio Ishii (UFMS)
VII Workshop de Redes Dinâmicas e Sistemas P2P
vii
Mensagem do Coordenador Geral
Sejam bem-vindos ao XXIX Simpósio Brasileiro de Redes de Computadores e Sistemas
Distribuídos (SBRC 2011) em Campo Grande, MS. É um prazer e uma distinção
organizar um simpósio de tamanha relevância para a Computação no Brasil, mais ainda
por ser a primeira vez que a Região Centro-Oeste tem o privilégio de sediá-lo. O SBRC
é um evento anual promovido pela Sociedade Brasileira de Computação (SBC) e pelo
Laboratório Nacional de Redes de Computadores (LARC). Ao longo dos seus quase
trinta anos, o S BRC tornou-se o mais importante evento científico nacional em Redes
de Computadores e Sistemas Distribuídos e um dos maiores da área de Informática no
país.
O SBRC 2011 está com uma programação bastante rica, de qualidade diferenciada e que
consiste em: 18 sessões técnicas de artigos completos que abordam o qu e há de mais
novo nas áreas de redes de computadores e sistemas distribuídos; três sessões técnicas
para apresentação de ferramentas selecionadas para o Salão de Ferramentas; cinco
minicursos, com quatro horas de duração, sobre temas atuais; três palestras e três
tutoriais com pesquisadores de alto prestígio internacional; e três painéis sobre assuntos
de interesse da comunidade. Além dessas já tradicionais atividades do simpósio,
ocorrerão em paralelo oito workshops: XVI Workshop de Gerência e Operação de
Redes e Serviços (WGRS), XII Workshop da Rede Nacional de Ensino e Pesquisa
(WRNP), XII Workshop de Testes e Tolerância a Falhas (WTF), IX Workshop em
Clouds, Grids e Aplicações (WCGA), VII Workshop de Redes Dinâmicas e Sistemas
P2P (WP2P), II Workshop de Pesquisa Experimental da Internet do Futuro (WPEIF), I
Workshop on A utonomic Distributed Systems (WoSIDA) e I Workshop de Redes de
Acesso em Banda Larga (WRA).
O desafio de organizar um evento como o SBRC só pode ser cumprido com a ajuda de
um grupo especial. Eu tive a f elicidade de contar com a co laboração de inúmeras
pessoas ao longo desta jornada. Meus sinceros agradecimentos aos membros dos
Comitês de Organização Geral e Local por realizarem um trabalho de excelente
qualidade e com muita eficiência, a qualidade da programação deste simpósio é fruto do
trabalho dedicado dessas pessoas. Sou grato a Faculdade de Computação da UFMS por
ter sido uma facilitadora ao longo de todo o pr ocesso de organização, desde a nossa
proposta inicial até o fechamento da programação. Gostaria de agradecer, também, ao
Comitê Gestor da Internet no Brasil (CGI.br), às agências governamentais de fomento e
aos patrocinadores por reconhecerem a importância do S BRC e investirem recursos
financeiros fundamentais para a realização do evento. Com o apoio financeiro recebido,
foi possível manter os custos de inscrição baixos e oferecer um programa social de alta
qualidade.
Em nome do Comitê Organizador, agradeço a todos os participantes pela presença em
mais esta edição do SBRC e d esejo uma semana produtiva, agradável e com
estabelecimento de novas parcerias e amizades.
Ronaldo Alves Ferreira
Coordenador Geral do SBRC 2011
viii
Anais
Mensagem do Coordenador de Workshops do SBRC 2011
Os workshops são uma parte tradicional do que hoje faz do SBRC o principal evento da
área no país, sendo responsáveis por atrair uma parcela cada vez mais expressiva de
participantes para o S impósio todos os anos. O SBRC 2011 pr ocurou manter essa
tradição, com a r ealização de workshops já considerados parte do circuito nacional de
divulgação científica nas várias subáreas de Redes de Computadores e S istemas
Distribuídos, como o WTF (Workshop de Testes e Tolerância a Falhas), o W CGA
(Workshop em Clouds, Grids e Aplicações), o WGRS (Workshop de Gerência e
Operação de Redes e Serviços) e o WP2P (Workshop de Redes Dinâmicas e Sistemas
P2P). Incluímos também nesta lista de iniciativas bem sucedidas o WRNP (Workshop
da Rede Nacional de Ensino e Pesquisa), que cumpre o importantíssimo papel de fazer a
ponte entre as comunidades técnica e científica da área.
Como novidade em 2011, e reconhecendo o s urgimento e o fortalecimento de novas
linhas de pesquisa de expressiva importância dentro da comunidade brasileira de Redes
e Sistemas Distribuídos, procuramos incentivar a criação de novos workshops dentro do
Simpósio. Foi com esse intuito que introduzimos pela primeira vez no SBRC a chamada
aberta de workshops, por meio da qual, membros da comunidade foram convidados a
submeter propostas de workshops inéditos para realização em conjunto com o S BRC
2011. Em resposta à chamada, recebemos nove propostas de alta qualidade, das quais
oito foram aceitas e seus respectivos proponentes convidados a organizarem os
workshops no SBRC em Campo Grande. Das oito propostas aceitas, cinco tratavam dos
workshops já tradicionais acima mencionados, e uma referia-se à segunda edição de um
workshop mais recentemente criado, mas que teve sua primeira edição realizada de
forma muito bem sucedida no S BRC 2010, o WPEIF (Workshop de Pesquisa
Experimental da Internet do Futuro). As outras duas propostas foram resultado direto da
chamada aberta de workshops e resultaram na adição de dois novos eventos ao leque do
SBRC, o WRA (Workshop de Redes de Acesso em Banda Larga) e o WoSiDA
(Workshop on A utonomic Distributed Systems), ambos com ótima aceitação pela
comunidade, a julgar pelos números de submissões de trabalhos recebidos.
Esperamos que 2011 s eja mais um ano de sucesso para os workshops do S BRC, em
particular para aqueles criados nesta edição do Simpósio, e para que eles continuem
contribuindo como importantes fatores de agregação para os avanços promovidos pela
comunidade científica da área de Redes e Sistemas Distribuídos no Brasil.
Aproveitamos para agradecer o inestimável apoio recebido de diversos membros da
comunidade e, em particular, da Organização Geral do SBRC 2011.
A todos, um excelente SBRC em Campo Grande!
Fábio M. Costa
Coordenador de Workshops do SBRC 2011
VII Workshop de Redes Dinâmicas e Sistemas P2P
ix
Mensagem do Coordenador do WP2P
O Workshop de Redes Dinâmicas e S istemas P2P é u m fórum para a ap resentação de
resultados e t rocas de experiências da comunidade brasileira da área. Em sua sétima
edição neste ano, o workshop tem se consolidado como um importante catalizador dessa
comunidade.
Neste ano, o W P2P contou com 16 s ubmissões. Cada artigo recebeu três revisões de
membros do c omitê de programa ou de revisores tutelados por estes. Ao fim do
processo, com o objetivo de maximizar as oportunidades de discussão e assim fortalecer
a área, 12 artigos foram selecionados para apresentação no w orkshop. A seleção dos
artigos é composta de uma salutar variedade de temas e ab ordagens, e cer tamente
proporcionará à comunidade bastante material para discussões produtivas.
Os méritos do W P2P são resultado dos esforços de três grupos a quem gostaria de
agradecer: os autores de todos os artigos submetidas, os membros do comitê de
programa e os organizadores do S BRC 2011, na pessoa de Ronaldo Ferreira, como
coordenador geral, e Fábio Costa, como coordenador dos workshops. Meu obrigado à
dedicação destes três grupos na feitura de um SBRC e de um WP2P de qualidade.
Um bom workshop a todos.
Nazareno Andrade
Coordenador do WP2P 2011
x
Anais
Comitê de Programa do WP2P
Alexandre Sztajnberg (UERJ)
Carlos Kamienski (UFABC)
Daniel Figueiredo (UFRJ)
Djamel Sadok (UFPE)
Eduardo de Almeida (UFPA)
Elias P. Duarte Jr. (UFPR)
Fabíola Greve (UFBA)
Francisco Brasileiro (UFCG)
Joni da Silva Fraga (UFSC)
Jussara Almeida (UFMG)
Lisandro Zambenedetti Granville (UFRGS)
Luis Carlos De Bona (UFPR)
Marinho Barcellos (UFRGS)
Nazareno Andrade (UFCG)
Paulo Andre da Silva Gonçalves (UFPE)
Ronaldo Ferreira (UFMS)
Rossana Andrade (UFC)
VII Workshop de Redes Dinâmicas e Sistemas P2P
Revisores do WP2P
Alexandre Sztajnberg (UERJ)
Amadeu Barbosa Jr. (PUC-Rio)
Carlos Kamienski (UFABC)
Daniel Figueiredo (UFRJ)
Djamel Sadok (UFPE)
Eduardo de Almeida (UFPA)
Elias P. Duarte Jr. (UFPR)
Erich Dimitry Silvestre (UFPR)
Fabíola Greve (UFBA)
Jéferson Nobre (UFRGS)
Joni da Silva Fraga (UFSC)
Jussara Almeida (UFMG)
Lesandro Ponciano (UFCG)
Lisandro Zambenedetti Granville (UFRGS)
Luis Carlos De Bona (UFPR)
Marcos Barreto (UFBA)
Marinho Barcellos (UFRGS)
Matheus Gaudencio (UFCG)
Nazareno Andrade (UFCG)
Paulo Andre da Silva Gonçalves (UFPE)
Rodrigo Brandão Mansilha (UFRGS)
Rossana Andrade (UFC)
Roverli Ziwich (UFPR)
Thiago Pereira (UFCG)
Vinicius Moll (UFSC)
xi
xii
Anais
VII Workshop de Redes Dinâmicas e Sistemas P2P
xiii
Sumário
Sessão Técnica 1 – Plataformas de Distribuição de Vídeo e Experimentos .............. 1
Análise de Desempenho no Uso de Pré-Busca para Distribuição de Vídeo Sobre
Redes P2P
Renan Manola, Magnos Martinello, Roberta Lima Gomes (UFES) e Cesar
Marcondes (UFSCar) ................................................................................................... 3
Análise de Desempenho de Redes P2P com Protocolo "Push/Pull" para
Distribuição de Vídeo na Presença de Nós Não-Cooperativos
Flávia Marinho de Lima e Alexandre Sztajnberg (UERJ).......................................... 17
PlanetMon: Um Arcabouço para Execução e Monitoração de Experimentos no
Planet-Lab
Vinicius K. Ruoso, Luis C. E. De Bona e Elias P. Duarte Jr. (UFPR)....................... 31
Sessão Técnica 2 - BitTorrent ...................................................................................... 45
Eficiência de Download em Comunidades BitTorrent
Jaindson Santana e Nazareno Andrade (UFCG) ....................................................... 47
BitPS: Um Esquema de Precificação para Sistemas Par-a-Par Baseados em
BitTorrent
Gabriel de Godoy Correa e Castro e Humberto T. Marques-Neto (PUC-Minas) ..... 57
Um Mecanismo Orientado a ISP para Escolha Tendenciosa de Pares no
BiTorrent
Alejandra Klachquin e Daniel R. Figueiredo (COPPE/UFRJ) .................................. 71
Sessão Técnica 3 – Redes Veiculares e Direções de Pesquisa ................................... 85
Análise Sobre o Impacto da Densidade, da Carga e do Padrão de Mobilidade
Sobre o Desempenho de Protocolos de Roteamento para Redes Veiculares
Bruno G. Mateus (UFC), Carina T. de Oliveira (Université Joseph Fourier) e
Rossana M. C. Andrade (UFC) .................................................................................. 87
Sobre as Deficiências na Sinergia entre BitTorrent e MANETs e Alternativas
Viáveis
Sidney Doria e Marco Aurélio Spohn (UFCG) ........................................................ 101
Redes Centradas na Informação: Uma Comparação de Abordagens
Bruno Magalhães Martins e Antônio Marcos Alberti (Inatel) ................................. 115
Sessão Técnica 4 – Segurança e Desempenho .......................................................... 129
Distribuição de Conteúdo Multimídia em Tempo Real com Transporte de Fluxos
Controlados e Não Confiáveis entre Pares
Leandro M. de Sales (UFAL), Hyggo O. de Almeida, Angelo Perkusich (UFCG) e
Rafael A. Silva (UFAL) ............................................................................................. 131
Aumentando a Segurança de um Protocolo de Distribuição de Conteúdo P2P
para MANETs
Sidney Doria e Marco Aurélio Spohn (UFCG) ........................................................ 147
Agregação de Pacotes em Ambientes com Enlaces de Baixa Capacidade de
Transmissão
P. H. Azevêdo Filho, M. F. Caetano e J. L. Bordim (UnB) ...................................... 161
Índice por Autor ......................................................................................................... 175
VII Workshop de Redes Dinâmicas e
Sistemas P2P
♦
Sessão Técnica 1
Plataformas de Distribuição de
Vídeo e Experimentos
VII Workshop de Redes Dinâmicas e Sistemas P2P
3
Análise de desempenho no uso de pré-busca para distribuição
de vídeo sobre redes P2P
Renan Manola1, Magnos Martinello1 , Roberta Lima gomes1, Cesar Marcondes2
Departamento de Informática – Universidade Federal do Espírito Santo (UFES)
Av. Fernando Ferrari, 514 – 29.075-910 – Vitória – ES – Brasil
1
Departamento de Computação (DC)
Universidade Federal de São Carlos (UFSCar) – São Carlos, SP - Brasil.
2
{rmanola, magnos, rgomes}@inf.ufes.br, [email protected]
Abstract. P2P Streaming systems have consolidated their importance in recent
years, this is mainly due to substantial gains and therefore economic savings
in terms of server`s bandwidth. In this paper, we evaluate how this technology
can boost the bandwidth gains of multimedia content distribution over the
Internet using prefetch policy, as well as the impact of this policy on the video
discontinuity perceived by customers. The main contribution of this paper is to
show, through realistic packet-level Internet-like simulations, that the use of
P2P prefetching can save the server upload from 43% up to 73%.
Resumo. Sistemas P2P VoD consolidaram sua importância nos últimos anos.
Tal consolidação é decorrente dos elevados ganhos que se pode ter em termos
de economia na banda de transmissão dos servidores. Neste artigo, avalia-se
como esta tecnologia pode potencializar os ganhos de distribuição de
conteúdo multimídia na Internet fazendo uso de política de pré-busca
(prefetching), como também, o impacto na descontinuidade dos vídeos
assistidos pelos clientes. A principal contribuição deste artigo consiste em
mostrar, por meio de simulações realísticas da Internet a nível de pacotes,
que o uso da pré-busca pode economizar o upload do servidor de 43% a 73%.
1. Introdução
A Internet está assumindo um papel cada vez maior na distribuição de conteúdo
multimídia. Youtube1 e NetFlix2 são exemplos de serviços que operam sobre a Internet
sendo responsáveis por uma proporção considerável do tráfego nos EUA [Huang, 2007].
Devido à popularidade desses serviços, a exigência de banda requerida para suportá-los,
aliado a uma tendência de crescimento na demanda e aumento na qualidade dos vídeos, a
distribuição baseada no modelo cliente-servidor tornou-se proibitiva para satisfazer tais
exigências de requisitos.
Uma forma alternativa para projetar sistemas de distribuição de vídeo em larga
escala na Internet tem sido baseada em redes P2P, tanto para vídeo ao vivo como vídeo
sob-demanda (Video on-Demand – VoD). Alguns exemplos de aplicações como
1 http://www.youtube.com
2 http://www.netflix.com
4
Anais
PPLive3, TVU4, SOPCast5 ou PPStream6 têm oferecido uma gama de canais usando P2P
para comunidades de milhares de usuários. Particularmente, a distribuição de vídeo sob
demanda auxiliada por P2P (Peer-assisted VoD, ou P2P VoD), tem mostrado ser uma
solução promissora, portanto, sendo alvo de um considerável corpo de pesquisa nos
últimos anos [Huang, 2007] [He, 2009] [Gao, 2010].
Um dos focos de investigação encontrado na literatura é a redução de banda de
transmissão nos servidores de vídeo sob demanda, no qual os pares participantes da rede
P2P auxiliam o servidor na entrega de conteúdo. No sistema P2P VoD, quando os pares
não conseguem redistribuir o vídeo entre si de forma autossuficiente, estes são
diretamente auxiliados pelo servidor. O objetivo é garantir a diferença sem degradação
na qualidade, de modo que cada par receba o vídeo na mesma taxa de codificação.
Quando os pares são capazes de satisfazer tal demanda, não apenas o servidor reduz
drasticamente sua banda de upload, mas principalmente, os pares podem efetuar prébusca (prefetch) com base na banda adicional de outros pares.
É interessante notar que geralmente, nos trabalhos existentes, se abstrai diferentes
variáveis de rede. Por exemplo, não se leva em conta atrasos e congestionamento nos
enlaces, perdas, bandas assimétricas de download/upload, o protocolo da camada de
transporte e a perspectiva do usuário [Bial, 2010] [Huang, 2007]. Neste trabalho, uma
análise baseada em simulação a nível de pacotes é apresentada permitindo compreender
diversos compromissos na distribuição de vídeo baseada em redes P2P, considerando
múltiplas variáveis de rede em uma única abordagem. Para tanto, foi implementado em
simulação um algoritmo de pré-busca abordado em [Huang, 2007], com o objetivo de
estudar o desempenho deste, não só do ponto de vista de economia de banda dos
servidores, como também na percepção da qualidade do vídeo (em termos de
continuidade e tempo de (re)inicio de reprodução) por parte dos clientes. Um dos
diferenciais desta abordagem é a simulação completa da pilha TCP/IP incluindo tráfego
de fundo (geração de congestionamento na rede), permitindo representar um cenário
mais realístico.
O artigo se organiza da seguinte forma: na Seção 2 são descritos alguns trabalhos
relacionados, discutindo-se como tais trabalhos contribuíram para as pesquisas em
distribuição de vídeo P2P. Na Seção 3 é abordado o funcionamento da arquitetura de
distribuição P2P VoD e também a política de pré-busca implementada na simulação. Na
Seção 4 são exibidas as decisões que foram tomadas na concepção do ambiente de
simulação, tal como topologia, quantidade de pares e taxas de transmissão. Em seguida,
na Seção 5, são descritas as simulações que foram realizadas e a análise dos resultados
obtidos. Por fim, conclui-se, na Seção 6, listando os principais resultados e pontos-chave
encontrados neste trabalho.
2. Trabalhos Relacionados
Os sistemas de distribuição de vídeo P2P podem ser categorizados considerando as duas
arquiteturas básicas de distribuição: árvore e malha. A principal diferença encontra-se na
forma como os pares se organizam para transmitir o vídeo [Sentinelli, 2007]. Na
arquitetura em árvore, os pares se organizam em uma ou múltiplas árvores de
distribuição, o servidor localiza-se na raiz e existe uma relação estrita de pai e filho,
3
4
5
6
http://download.pptv.com
http://www.tvunetworks.com
http://www.sopcast.com
http://www.ppstream.com
VII Workshop de Redes Dinâmicas e Sistemas P2P
5
sendo que o par-filho recebe o vídeo apenas do seu respectivo pai. Os principais
exemplos de sistemas nesta arquitetura são: Narada [Chu, 2010], NICE 7 e ZiGZag
[Tran, 2003]. Existem propostas cujas métricas de seleção de pares referem-se ao tempo
de reprodução (playback time) dos participantes [Sharma, 2005]. A ideia básica é que os
filhos estejam em pontos de reprodução anteriores em relação aos pais. No entanto,
dependendo do número e do tipo de interações, a frequência de reconstrução da árvore
pode ser alta, o que gera sobrecarga de controle e gera um impacto na continuidade de
recepção do vídeo [Moraes, 2010].
Tratando-se da arquitetura em malha, os pares se organizam em uma malha de
distribuição e compartilham os “pedaços” (chunks) de um determinado vídeo que estão
espalhados pela rede. Os pares podem tanto receber quanto encaminhar os pedaços de
um vídeo para outros pares uma vez que satisfeitas as condições impostas no algoritmo
P2P sendo usado. Nesta arquitetura, é necessário que os pares conheçam quais pedaços
de vídeo estão localizados em quais outros pares. Alguns exemplos de sistemas são:
PPLive, SopCast, PPStream e TVAnts [Sentinelli, 2007].
Outro critério de classificação comumente utilizado nos sistemas de distribuição
de vídeo P2P refere-se às estratégias de escalonamento dos dados: push-based ou pullbased [Gao et al 2010]. No caso da estratégia push-based, a continuidade de reprodução
(playback) é priorizada, no entanto, pode haver recepção de dados redundantes uma vez
que o par não solicita explicitamente que parte do vídeo irá receber. Essa característica
tende a gerar mais sobrecarga e desperdício de recursos se não for bem tratada pela
aplicação. Sistemas baseados na estratégia pull-based tendem a ser mais robustos ao
problema mencionado anteriormente, uma vez que o par especifica o que deseja receber.
Adicionalmente, os sistemas pull-based são mais resilientes aos pares dinâmicos (peerchurn) pois são capazes de identificá-los mais rapidamente do que na estratégia pushbased. Para conseguir saber qual par possui qual informação, os pares trocam mapas de
buffer entre si, esta troca pode gerar sobrecarga de controle caso os parâmetros
envolvidos não sejam bem configurados.
Há ainda outros trabalhos que abordam a pré-busca como forma de economizar
banda de upload do servidor. No trabalho de [Shen, 2009], optou-se por dividir o vídeo
em vários fluxos de qualidades iguais, com auxilio da codificação de rede, propondo-se
dois algoritmos de pré-busca: off-line e heurístico. O algoritmo offline busca mostrar o
limite teórico para minimizar a distorção entre a recepção de várias sub-streams. O
algoritmo heurístico é a implementação prática do que se objetiva obter no algoritmo
offline, sendo que se sabe menos informações a priori. No trabalho de [Biao, 2010] fezuso de uma nova topologia de distribuição com uma pré-busca contendo um buffer
máximo atribuído para cada par. Assim que o par atinge o nível do buffer, a pré-busca é
enviada para outro.
Duas políticas de pré-busca foram propostas em [Huang, 2007], a política
water-leveling, que consiste em igualar o buffer de vídeo de todos os pares, realizando
uma alusão ao que ocorre quando recipientes de água são ligados entre si pelo fundo e o
nível de todos eles cresce igualmente. A segunda política trata-se da greedy, onde os
pares enviam a pré-busca apenas aos imediatamente posteriores na ordem de chegada no
sistema. A política water-leveling foi a escolhida para ser implementada pelo fato de
considerar uma justiça coletiva ao comparar o buffer de recepção de mais de um par, e
escolher o que possui o menor buffer.
7 http://www.cs.umd.edu/projects/nice
6
Anais
O presente trabalho adota, por simplicidade de implementação, o escalonamento
de dados P2P do tipo push-based em conjunto com a política de pré-busca proposta em
[Huang, 2007]. Este trabalho distingue-se dos anteriores ao avaliar o desempenho da
pré-busca em um simulador de redes sob condições mais realistas, incluindo atrasos,
perdas nos enlaces e tráfego de fundo. Esta abordagem permite compreender
compromissos de projeto num sistema P2P de distribuição de vídeo, considerando as
perspectivas do servidor, da rede e particularmente a continuidade de reprodução de
vídeo percebido pelos usuários.
3. Fundamentação Teórica
A arquitetura P2P VoD utilizada nas simulações é descrita em [Huang, 2007] pelo nome
de no-prefetching. Nesta arquitetura, os pares que ingressam no sistema de distribuição
de vídeo são servidos pelos que ingressaram imediatamente antes deles. Caso não exista
capacidade de upload suficiente no par ingressante imediatamente anterior ao que acaba
de chegar, ou seja, o penúltimo par, o servidor auxilia enviando a diferença de taxa de
transmissão que é necessária para suprir o par que acaba de chegar (último) com uma
taxa de recepção, no mínimo, igual à taxa de codificação do vídeo. Este mecanismo pode
ser melhor compreendido pela Figura 1.
Figura 1. Rede sobreposta construída na arquitetura no-prefetching.
A Figura 1 supõe que a qualidade do vídeo é de 300Kbps e as capacidades de
upload dos pares que vão chegando, de 1 a 7, são respectivamente: 100Kbps, 200Kbps,
400Kbps, 500Kbps, 100Kbps, 400Kbps e 100Kbps. O ganho de escalabilidade no
sistema de distribuição de vídeo que se consegue obter com esta abordagem é grande se
comparada à distribuição no modelo cliente-servidor. Esta afirmação é decorrente do
fato que se fosse usado o modelo cliente-servidor, o servidor acabaria servindo uma taxa
de upload de 2100Kbps na situação final (300Kbps x 7 clientes). Como foi usado um
algoritmo P2P, o servidor gastou uma banda de upload de apenas 800Kbps na situação
final, o que representa uma economia de, aproximadamente, 62%. As setas em verde,
apontando para fora da figura, indicam banda de upload remanescente que os pares
possuem e não estão sendo usadas. Estas capacidades podem ser alocadas para enviar
conteúdo que será tocado pelos clientes no futuro. Por exemplo, os pares 3 e 5 poderiam
usar suas capacidades de upload para enviar conteúdo extra ao par 6. Com isso, o
servidor não precisaria enviar conteúdo ao par 6 quando este possuir um buffer de vídeo
razoável. Estas capacidades remanescentes também poderiam ser utilizadas quando
houvesse algum momento de intenso congestionamento e as taxas não pudessem ser
VII Workshop de Redes Dinâmicas e Sistemas P2P
7
entregues como deveriam.
Tendo uma visão geral sobre o sistema, existem três estados possíveis no que
tange a capacidade agregada do mesmo de se autossustentar. O modo surplus ocorre
quando a somatória de todas as taxas de upload (U) dos pares supera a somatória de
todas as taxas de download (D), ou seja, U/D > 1. Já no modo deficit, o sistema não
possui upload suficiente para seu autossustento, assim U/D < 1. O modo balanceado
indica que tais taxas são iguais.
As simulações realizadas abordaram estes diferentes cenários. Como será melhor
explicado na próxima seção, foram simulados pares com diferentes capacidades de
upload. Adicionalmente, fixou-se uma quantidade de pares total no sistema de
distribuição P2P e variou-se a porcentagem dos que possuem capacidades de upload
maior e menor. O objetivo de tal variação é de simular os três estados possíveis (surplus,
deficit e balanceado) em relação a capacidade agregada do sistema.
4. Ambiente de Simulação
As simulações se deram por meio de um ambiente de simulação de redes bem
conhecido, o Network Simulator 2 [NS2, 2010]. A topologia de rede adotada nas
simulações foi uma variante da topologia parking lot que denominamos com o nome de
double parking lot, tratando-se do parking lot duplicado. A parking lot é uma topologia
que permite experimentar o fenômeno de múltiplos gargalos e inter-relacionamento de
fluxos de uma direção e outra direção. Ela é considerada como sendo mais realista que
topologias como, por exemplo, a topologia dumbbell, conhecida por ter um único ponto
de congestionamento [Wei, 2005].
Figura 2. Topologia double parking lot usada nas simulações.
A topologia double parking lot tem a vantagem de simular um ambiente em que
os pacotes podem ter rotas diferentes apresentando a mesma distância em saltos. A
Figura 2 ilustra um backbone nesta topologia.
Para (i) construção da topologia, (ii) geração automática de atrasos nos links e
(iii) geração de tráfego de fundo sintético, foi usada uma ferramenta criada para este fim,
denominada TCP Suite [Shimonishi, 2007]. Ela consiste em uma série de scripts que
auxiliam, principalmente, em permitir simular diferentes algoritmos TCP em redes com
múltiplos fluxos e comportamento parecido. Os parâmetros usados nas simulações
podem ser descritos de acordo com a tabela a seguir. Vale ressaltar que os valores dos
parâmetros referentes à qualidade do vídeo e às características dos pares foram baseados
no trabalho [Huang, 2007].
Os parâmetros para os atrasos do backbone foram configurados segundo o
padrão TCP Suite, que é um valor extraído de uma distribuição exponencial com média
de 15 msecs. Ou seja, para passar pelo backbone, o atraso seria em média de 30 a 45
msecs (2 ou 3 saltos). As velocidades dos enlaces do backbone estão com 100Mbps.
8
Anais
Além disso, são usados dois tripos de tráfego de fundo, segundo o padrão TCP Suite,
para gerar um congestionamento moderado no backbone. São 120 conexões longas
caracterizadas por transferência de arquivos grandes pela rede (como DVDs), e 200
conexões curtas, caracterizadas por transferência de páginas web. O tamanho dos
arquivos segue uma distribuição de Pareto (seguindo a estatística da Internet) [Crovella,
1997] e os tempos entre chegadas de novas conexões curtas é regulado por uma
distribuição exponencial representando períodos de thinking time, quando os usuários
não estão requisitando novas páginas web.
Tipo de pares 2
Características do par tipo 1
Características do par tipo 2
Upload/Download
256Kbps/756Kbps
Upload/Download
756Kbps/2.268Mbps
Qualidade do Vídeo 512Kbps
Quantidade de pares 60
Tráfego de fundo (conexões longas) 120
Tráfego de fundo (conexões curtas) 200
Enlaces de backbone 100Mbps
Número de nós do backbone 6
Tabela 1: Descrição dos parâmetros usados nas simulações.
A Tabela 1 exibe perfis de par P2P, o de tipo 1, que possui um upload maior e o
de tipo 2 que possui um upload menor. Com relação à infraestrutura P2P colocada sobre
esta topologia e o tráfego descrito anteriormente, temos a seguinte parametrização: (i) o
intervalo entre o tempo de chegada dos pares P2P ao sistema segue uma distribuição
exponencial com λ=0,15; (ii) os pares foram posicionados no backbone de forma
aleatória, ou seja, cada par possui chance igual de ser alocado em qualquer nó de
backbone, desde que seja diferente do nó alocado para o servidor de conteúdo.
Os experimentos foram realizados com objetivo de analisar:
1. Os ganhos obtidos quando o sistema encontra-se em um estado ideal (sem
tráfego de fundo) e quando o tráfego de fundo está presente;
2. O impacto da ordem em que os pares chegam ao sistema, podendo esta ser de 4
tipos: melhor ordem, ordem média, pior ordem e ordem aleatória;
3. O impacto de diferentes protocolos de transporte, a saber: UDP e TCP.
As possibilidades de diferentes ordens de chegada podem ser melhor visualizadas
na Figura 3. A variação nesta característica é importante pois permite explicitar em quais
cenários se observa o desempenho ótimo do algoritmo de pré-busca e também
demonstrar os efeitos da ordem de chegada aleatória nos distintos cenários simulados.
Na Figura 3, os círculos escurecidos correspondem a pares do tipo 1 (upload
maior) e os círculos de fundo branco correspondem a pares do tipo 2 (upload menor).
Os números dentro dos círculos correspondem à ordem em que os mesmos chegam ao
sistema. Como em uma dada simulação existe uma quantidade de pares do tipo 1 e outra
VII Workshop de Redes Dinâmicas e Sistemas P2P
9
quantidade de pares do tipo 2, a primeira ordem de chegada a se pensar é a melhor
ordem. Na melhor ordem, os pares que possuem banda de upload maior chegam
primeiro ao sistema, dessa forma, enquanto tais pares de upload maior não terminam de
chegar, não é imposta carga no servidor. Nesta ordem, os pares de upload menor
chegam apenas depois que todos os pares de upload maior já estiverem no sistema. A
ordem média de chegada indica que os pares chegam ao sistema de forma intercalada,
esta ordem simula um caso médio onde a capacidade agregada do sistema fica variando
constantemente de surplus para deficit, e vice-versa. A pior ordem de chegada sugere
que , inicialmente, os pares de banda menor de upload chegam primeiro ao sistema,
consistindo o oposto à melhor ordem. Na pior ordem, inicialmente é imposta uma grande
demanda no servidor pois todos os pares iniciais precisarão da complementação de
banda para que o vídeo seja enviado em taxa igual a sua taxa de codificação aos novos
pares que vão chegando. Por fim, existe a ordem de chegada aleatória, que embora não
tenha sido exemplificada na Figura 3, esta indica que não existe qualquer suposição
sobre em que ordem os pares podem chegar, sendo completamente aleatório.
Figura 3: Tipos de ordens de chegada usadas nas simulações.
Nas simulações é usado por padrão o protocolo de transporte UDP nos pares
P2P, por permitir envio de fluxos com taxas contínuas, simulando um fluxo de vídeo
CBR (Constant Bit Rate) neste protocolo de transporte. A exceção ocorre nas
simulações que visam mostrar o impacto de diferentes protocolos de transporte. Por
padrão também são simuladas as conexões de fundo geradas pelo TCP Suite que usam a
versão TCP NewReno, por esta ser uma implementação amplamente empregada em
diferentes sistemas operacionais.
5. Análise dos Resultados
A metodologia de análise adotada neste trabalho baseia-se tanto no ponto de vista do
servidor, quanto na percepção de continuidade do vídeo pelo usuário. Esta abordagem
também procura investigar o impacto que as diferentes escolhas do sistema P2P podem
causar na rede. Assim, as análises são feitas considerando (i) o impacto da ordem de
chegada dos pares na economia de banda do servidor, comparando-se as políticas de
water-leveling e no-prefetching; (ii) como o tráfego de fundo pode impactar na
economia de banda; (iii) a distribuição de vídeo sobre diferentes protocolos de camada
de transporte (TCP e UDP), observando as perdas ocorridas nos enlaces de backbone;
(iv) o uso da política de pré-busca avaliando-se a descontinuidade de recepção do vídeo
nos clientes (frequência de paradas e o tempo entre paradas).
5.1. Variações na ordem de chegada dos pares
Conforme descrito previamente, os pares possuem capacidades de upload e download
10
Anais
diferentes, caracterizando uma banda assimétrica. Desta forma, mesmo quando o sistema
encontra-se em um modo surplus, a ordem de chegada pode impactar tanto positiva
quanto negativamente. É importante ressaltar que nestes experimentos houve inserção de
tráfego de fundo, afim de torná-los mais realísticos.
Nas Figuras 4 e 5, o eixo Y representa a razão entre a taxa média de upload do
servidor durante a simulação e a taxa de codificação do vídeo. O eixo X representa a
razão entre as demandas e ofertas. No caso das Figuras 4(a) e 5(a), o eixo X representa
a razão oferta sobre demanda, indicando que quando tal razão é 1 o sistema está no
modo balanceado onde existe um mesmo número de pares do tipo 1 e 2. À medida que o
eixo X aumenta de valor, representa-se casos onde os pares do tipo 1 concentram-se em
maior proporção do que os de tipo de 2, o que caracteriza o cenário surplus. Já nos
gráficos do tipo (b), o eixo X representa a razão: demanda sobre oferta, indicando que à
medida que tal razão aumenta, existem mais pares do tipo 2 do que 1, gradativamente,
caracterizando o cenário deficit.
Figura 4: Desempenhos na melhor ordem de chegada (a) modo surplus; (b)
modo deficit.
Figura 5: Desempenhos na ordem média de chegada (a) modo surplus; (b)
modo deficit.
Embora pareça contra intuitivo, na comparação entre as Figuras 4 e 5, percebe-se
que é melhor para o servidor quando os pares chegam ao sistema de forma intercalada
(ordem média), do que quando chegam na melhor ordem. Isto ocorre pois pares do tipo
1 começam mandando pré-busca aos imediatamente posteriores na ordem de chegada, os
fluxos suplementares só são transmitidos para os pares mais recentes em duas hipóteses:
VII Workshop de Redes Dinâmicas e Sistemas P2P
11
(1) quando ele termina de transferir o vídeo inteiro, (2) quando o seu ponto de tocar o
vídeo (playback point) iguala-se ao do par imediatamente anterior. Desta forma, na
melhor ordem, os pares do tipo 1 ficam um tempo inicial considerável servindo a prébusca aos imediatamente posteriores a eles, neste caso, a outros pares tipo 1 do sistema.
Com isso, sobra pouco tempo para os pares tipo 1 servirem a taxa extra aos que são de
tipo 2. Do ponto de vista do servidor, somente os pares imediatamente posteriores aos
de tipo 2 são importantes para receberem a pré-busca, pois quando os mesmos possuem
um reservatório de vídeo (buffer level) razoável, tal reservatário é usado para
economizar banda do servidor.
Já na ordem média de chegada, como o pares são intercalados, normalmente os
de tipo 2 são melhor servidos pela pré-busca. A ordem de chegada do pior caso faz com
que o desempenho do water-leveling seja igual ao no-prefetching uma vez que os pares
iniciais são sempre de tipo 2, quando só pares de tipo 1 começam a chegar, eles apenas
podem ajudar os posteriores a eles, que também serão de tipo 1, dessa forma, o ganho
desses pares não potencializa economia de banda no servidor, por serem sempre
imediatamente posteriores a pares de tipo 1 e não assistidos pelo servidor.
A Figura 4 evidencia que o desempenho do water-leveling não foi muito melhor
do que o no-prefetching, em ambos casos surplus (a) e deficit (b) pelos motivos
explicados anteriormente. Na Figura 5, percebe-se uma grande economia pelo uso da
pré-busca, os maiores ganhos são no modo balanceado e surplus (x >= 1 na Figura 5a),
o upload do servidor chega a ser até 3,8 vezes menor no caso balanceado (economia de
73%) e checou a 6,19 vezes no caso surplus (economia de 83%).
5.2. Impacto do Tráfego de Fundo
Pela Figura 6 pode-se perceber que o servidor atinge uma economia média de 35,71%
quando existe tráfego de fundo. Quando o mesmo está ausente, sua economia aumenta
para 36,82%. Pelo fato dos fluxos UDP não possuírem mecanismos de controle de
congestionamento, por mais que o tráfego de fundo tenha sido intenso, o mesmo
apresentou pouco impacto sobre a distribuição de vídeo, comparando-se com a
simulação sem o mesmo.
Figura 6: Desempenhos usando UDP na ordem de chegada aleatória com e
sem tráfego de fundo (a) modo surplus; (b) modo deficit.
Além das comparações feitas, este experimento exibe o desempenho da ordem de
chegada aleatória, usando o UDP. Analisando os gráficos percebe-se que o waterleveling apresenta uma economia máxima quando o sistema encontra-se no modo
surplus, com o upload do servidor sendo 2,7 vezes menor (economia de 63%). Já no
12
Anais
modo balanceado, o upload do servidor foi 1,7 vezes menor (economia de 42,9%).
5.3. Impacto da Camada de Transporte
Nas simulações usando o protocolo TCP, ao contrário do UDP, a aplicação não controla
a taxa de transmissão do vídeo, visto que a janela de transmissão vai ser regulada pelos
mecanismos de congestionamento e fluxo (minimo entre as janelas). Apesar disso, ainda
assim é importante avaliar o comportamento deste protocolo, dado o seu amplo uso na
Internet em sistemas tradicionais (cliente-servidor e P2P) de VoD.
Figura 7: Desempenhos usando a ordem de chegada aleatória, variando a
camada de transporte TCP e UDP no modo surplus.
O protocolo TCP apresentou um comportamento moderadamente variável. Tal
variação é devida à capacidade dos fluxos deste protocolo se ajustar a diferentes
situações de congestionamento da rede. Portanto, o tráfego de fundo causa razoável
impacto no desempenho da transmissão de vídeo por meio de TCP. Nas comparações
em modo deficit, no desempenho do TCP tanto usando no-prefetching quanto o waterleveling, se mostraram muito próximos do caso no-prefetching em UDP. Outro aspecto
relevante a ser considerado na comparação desses dois protocolos de transporte são as
perdas de pacotes. Como o UDP não é amigável com os fluxos TCP, é intuitivo pensar
que ele possa ser um causador de maiores perdas.
Figura 8: Perdas nos links do backbone usando (a) tcp e (b) udp.
A Figura 8 mostra a comparação entre as perdas relativas a simulações de dois
cenários usando TCP e UDP. As perdas referem-se aos enlaces de backbone por onde
trafegam tanto os vídeos do sistema quanto o tráfego de fundo. Para tal análise, fez-se
VII Workshop de Redes Dinâmicas e Sistemas P2P
13
uso do cenário em que espera-se haver maior tráfego de dados, ou seja, usando-se a prébusca com 55 pares de tipo 1 e 5 pares de tipo 2. Espera-se que haja maior tráfego de
dados pois neste cenário existe o maior número de pares do tipo 1 (com upload maior),
portanto, nesta situação será gerada uma quantidade maior de pré-busca em relação aos
outros cenários. Contrariamente ao esperado, os resultados demonstram que as
diferenças nas perdas foram na mesma ordem de grandeza. Neste caso, o esperado seria
uma perda de proporções maiores nos links de backbone quando se usa o UDP em
relação ao TCP, uma vez que o UDP não possui controle de fluxo e nem de
congestionamento. Apenas no link_3->4 (que na topologia parking lot é a conexão
entre o nó 3 e 4 da Figura 2), que a diferença foi 17% (400 e 450Mb) quando o UDP foi
usado na camada de transporte.
5.4. Percepção de Qualidade pelo Cliente
Neste caso, para cada par é registrada a quantidade de vezes que o vídeo parou de tocar,
representado por um diagrama de frequências. Adicionalmente, é armazenado o tempo
que o vídeo permaneceu parado, representado pelo diagrama boxplot - onde a mediana é
o centro do box, os quartis representam os contornos e os outliers ficam do lado de fora.
Figura 9: Frequência das paradas no playback do vídeo na ordem de
chegada aleatória usando UDP no modo balanceado (a) no-prefetching (b)
water-leveling.
Figura 10: Continuidade no playback do vídeo na ordem de chegada
aleatória usando UDP no modo balanceado (a) no-prefetching (b) waterleveling.
No ponto de vista do cliente, é indesejável que o playback do vídeo tenha muitas
14
Anais
interrupções, no entanto, quando as mesmas ocorrem, a ideia é que o playback retorne o
mais rápido possível (Figuras 9 à 12).
Na análise desta seção foram usados os resultados de simulações no modo
balanceado, ou seja, quando existem 30 pares com banda de upload alta e 30 pares com
banda de upload baixa. Na Figura 9, avaliamos como a política de pré-busca waterleveling pode melhorar de forma considerável a quantidade de interrupções nos pares
quando se usa o UDP. É possível afirmar que a política de pré-busca melhorou bastante
o número de interrupções no vídeo em comparação ao P2P no-prefetching (onde não há
pré-busca). Na Figura 10 é possível ver que o tempo decorrido dentre o vídeo parado até
voltar a tocar, foi em geral, muito baixo (menor que 0,2 s). Esses resultadores indicam
que quando houveram interrupções, as mesmas duraram muito pouco em ambos casos
(no-prefetching e water-leveling).
Figura 11: Continuidade no playback do vídeo na ordem de chegada aleatória
usando TCP no modo balanceado (a) no-prefetching (b) water-leveling.
Figura 12: Frequência das paradas no playback do vídeo na ordem de chegada
aleatória usando TCP no modo balanceado (a) no-prefetching (b) waterleveling.
A Figura 11 mostra como o water-leveling reduziu bastante o a quantidade de
interrupções no playback do vídeo quando a camada de transporte é o TCP, no entanto,
vários pares ainda ficaram com interrupções na ordem de grandeza em 100, o que não é
considerado aceitável. Na Figura 12, são exibidos os tempos decorridos entre uma
interrupção e a continuação da vídeo.
Também percebe-se que houve redução neste tempo com a adoção do waterleveling, no entanto, tal redução não foi muito acentuada. As reduções mais
VII Workshop de Redes Dinâmicas e Sistemas P2P
15
significativas na continuidade ocorreram em apenas 5 pares, o que representa menos de
9% de todos os pares do sistema.
6. Conclusões e Trabalhos Futuros
O presente trabalho visa investigar compromissos de projeto para um sistema P2P de
distribuição de vídeo, considerando as perspectivas do servidor, da rede e
particularmente a continuidade de reprodução de vídeo percebido pelos usuários. O
trabalho parte das políticas de pré-busca propostas em [Huang, 2007], distinguindo-se
ao avaliar o desempenho da pré-busca em um simulador de redes sob condições mais
realistas, incluindo atrasos, perdas nos enlaces, tráfego de fundo e distintos protocolos
da camada de transporte.
Do ponto de vista do servidor, os resultados obtidos nas simulações sugerem que
o maior ganho na taxa de upload do servidor proporcionado pela pré-busca foi uma
economia de 3,8 vezes (economia de 73%), no modo balanceado. No entanto, esta
economia é condicionada ao uso do UDP como protocolo de transporte e quando os
pares chegam de forma intercalada no sistema. No caso da ordem de chegada aleatória,
usando-se também UDP, a economia de banda obtida no servidor foi de praticamente
duas 2 vezes (42,9%), que corresponde a um ganho menor do que apresentado em
[Huang, 2007]. Ressalta-se ainda que a ordem de chegada aleatória tende a ser um
cenário mais próximo ao que acontece em redes P2P na Internet. O uso do TCP como
protocolo de transporte mostrou que não houve um ganho significativo no servidor
quando se usa a pré-busca. No ponto de vista da rede, as perdas ocasionadas pelo uso do
UDP não foram muito distantes das perdas ocorridas usando o TCP, portanto, concluise que é viável o uso do UDP na distribuição de vídeo sob este ponto de vista. A análise
que aborda o impacto do trafego de fundo (quando se usa UDP) também aponta para
esta mesma conclusão, ou seja, o UDP é mais recomendado neste aspecto por ter não ter
ocasionado perda de desempenho considerável na economia do servidor quando se
comparou a presença ou ausência de tráfego de fundo.
Na análise de continuidade do vídeo percebido pelos clientes, os resultados
mostram que a escolha da camada de transporte teve mais impacto do que o uso da prébusca. No entanto, por mais que as interrupções no playback do vídeo ocorridas usando
o UDP tenham durado muito pouco, as mesmas são suficientes para gerar insatisfação
do usuário. Neste contexto, pode-se concluir que o uso da pré-busca beneficia bastante
ambos o provedor de conteúdo e os clientes.
Como trabalhos futuros, um dos aspectos que pretende-se incluir na simulação é
o peer-churn, que permitirá representar modelos de entrada/saída de pares. Outro
aspecto a ser considerado é a implementação de operações de VCR, ou seja, a
capacidade de usuários que estão assistindo um vídeo avançarem e retrocederem na
reprodução.
Referências
Sharma, A., Bestavros, A. and Matta, I. (2005) “dPAM: a distributed prefetching
protocol for scalable asynchronous multicast in P2P systems”, In Proceedings of
Conference of the IEEE Computer and Communications (INFOCOM), vol. 2, pp.
1139-1150.
Sentinelli, A., Marfia, G., Gerla, M. and Kleinrock, L. (2007) “Will IPTV Ride the Peerto-Peer Stream?”In IEEE Communications Magazine.
16
Anais
Moraes, I. M. e Duarte, O. C. M. B. (2010) “Seleção de Parceiros em Sistemas Par-aPar de Vídeo sob Demanda”, Em XXVIII Simpósio Brasileiro de Redes de
Computadores (SBRC), pp. 219-232, Gramado, RS, Brasil.
Shen, Y., Liu, Z., Panwar, S., Ross, K. W. and Wang, Y. (2009) “On the design of
prefetching strategies in a peer-driven Video on-demand systems”. In Proceedings of
IEEE International conference on Multimedia and Expo.
Huang, C., Li, J. and Ross, K. W. (2007) “Peer-Assisted VoD: Making Internet Video
Distribution Cheap”, In International workshop on Peer-To-Peer Systems (IPTPS).
He, Y. and Guan, L. (2009) "Prefetching Optimization in P2P VoD Applications", In
Advances in Multimedia (MMEDIA), pp. 110-115.
Gao, L., Xie, H., Zhang, Z., Wang, R. and Lu, Y. (2010) “The Design of a P2P videoon-demand prototype system”, In Computer Science and Information Technology
(ICCSIT), pp 473-477.
Shimonishi, H., Sanadidi, M. and Murase, T. (2007) “Assessing Interactions among
Legacy and High-Speed TCP Protocols”, In Proceedings Workshop on Protocols for
Fast Long-Delay Networks (PFLDNet).
NS2, The network simulator–ns-2. http://www.isi.edu/nsnam/ns/. Página acessada em 1
de Dezembro de 2010.
Biao, C., Zhen, L. and Yaohua, L. (2010) “A Special Topology for Files Pre-Fetch in
Large Scale Video on Demand”, In Biomedical Engineering and Computer Science
(ICBECS), pp.1-4, 23-25.
Chu, Y., Rao, S. G. and Zhang, H. (2000) “A case for end system multicast”, In
Proceedings of ACM Sigmetrics.
Tran, D. A., Hua, K. A. and Do, T. (2003) “ZIGZAG: an efficient peer-to-peer scheme
for media streaming”, In Twenty-Second Annual Joint Conference of the IEEE
Computer and Communications (INFOCOM), vol.2, pp. 1283-1292.
Wei, D., Cao, P. and Low, S. (2005) “Time for a TCP benchmark Suite?”, Caltech,
Tech. Rep.
Crovella, M. E. and Bestavros, A. (1997) “Self-similarity in world wide web traffic:
Evidence and possible causes”, In IEEE/ACM Transactions on Networking,
5(6):835–846.
VII Workshop de Redes Dinâmicas e Sistemas P2P
17
Análise de desempenho de redes p2p com protocolo
“push/pull” para distribuição de vídeo na presença de nós
não-cooperativos
Flávia Marinho de Lima1, Alexandre Sztajnberg1
Programa de Pós-Graduação em Eletrônica - Universidade do Estado do Rio de Janeiro
R. S. F. Xavier, 524/5º 22550-013 - Rio de Janeiro – RJ – Brasil
1
[email protected], [email protected]
Abstract. P2P (peer to peer) architectures are being used as an infrastructure
for video stream distribution on the Internet. The idea is that the several nodes
of the overlay network should cooperate distributing and forwarding video
chunks, making available their local resources to the network. In this way, it
is important to investigate what happens to the quality of service of the video
distribution when the infrastructure provided by the P2P network is
“contaminated” with free-riding nodes, which are not willing to cooperate,
since the basis of this architecture is cooperation. In this work, we evaluate
how the presence of uncooperative nodes can affect the quality of the video
stream distribution on push-pull P2P networks. The evaluation was performed
using the PeerSim simulator.
Resumo. A arquitetura P2P (peer-to-peer) vem sendo considerada como
infraestrutura para a distribuição de fluxos de vídeo na Internet. A idéia é a
de que os vários nós integrantes da rede sobreposta distribuem e encaminham
pedaços de vídeo de forma cooperativa, dividindo as tarefas, e colocando à
disposição da rede seus recursos locais. Dentro deste contexto, é importante
investigar o que ocorre com a qualidade do serviço de distribuição de vídeo
quando a infraestrutura provida pelas redes P2P é “contaminada” por nós
que não estejam dispostos a cooperar, já que a base desta arquitetura é a
cooperação. Neste trabalho, é feito um estudo para verificar como a presença
de nós não-cooperativos pode afetar a qualidade da distribuição de fluxo de
vídeo em redes P2P com protocolo push-pull. A avaliação foi realizada
utilizando-se o simulador PeerSim.
1. Introdução
A distribuição de vídeo pela Internet traz grandes desafios, pois é um serviço que requer
(i) servidores com grande capacidade de processamento e armazenamento, e (ii) grande
largura de banda, baixo retardo e variação de retardo (jitter) e poucas perdas. É também
um serviço que apresenta requisitos de escalabilidade, pois se estima uma quantidade
grande de usuários simultâneos, e flexibilidade, uma vez que estes usuários devem
receber os fluxos de vídeo de acordo com sua capacidade de banda e recursos
computacionais para tratamento e exibição dos mesmos. Tornar disponível uma solução
que contemple todas estas características é importante para que se possa oferecer ao
usuário um serviço de qualidade, mas não é tarefa trivial, dado que a arquitetura da
Internet não foi concebida com esta finalidade.
18
Anais
Neste contexto, as redes par-a-par, ou peer to peer (P2P)1, vem sendo
consideradas como solução potencial para a distribuição de vídeo na Internet, devido às
suas características de escalabilidade e distribuição de responsabilidades. A idéia básica
é a de que os vários nós integrantes da rede P2P distribuem e encaminham pedaços de
vídeo de forma cooperativa, dividindo as tarefas, e colocando à disposição da rede seus
recursos locais. Com isso diminui-se a necessidade de canais reais com grandes bandas
e servidores com grande capacidade de processamento e armazenamento. Nesta
abordagem, quanto maior o número de nós, maior é a capacidade de distribuição de
vídeo, pois mais recursos são compartilhados, sem a dependência de um único servidor
ou federação de servidores, o que torna as redes P2P robustas para este serviço.
Entretanto, mesmo com características favoráveis, a distribuição de vídeo nas
redes P2P também apresenta desafios. É frequente que alguns nós, geralmente nós com
mais recursos que os demais, fiquem sobrecarregados porque nem todos os nós
participantes querem cooperar. De certa forma, com a existência de muitos nós com
comportamento não-cooperativo, as redes P2P passam a apresentar características de
um sistema centralizado, podendo apresentar um desempenho ainda pior, pois os nós
sobrecarregados não são necessariamente especializados para a atividade de
armazenamento e distribuição de vídeo, tornando-se gargalos.
Estudos empíricos têm mostrado que nós que atuam como parasitas na rede,
consumindo recursos, sem contribuir, são maioria em redes P2P voltadas para o
compartilhamento de arquivos [Adar e Huberman, 2000] [Saroiu, 2003], prejudicando
os usuários cooperativos. No caso da aplicação de distribuição de vídeo este
comportamento é ainda mais nocivo, uma vez que os usuários não estão em busca
apenas da disponibilidade do arquivo contendo o vídeo, mas também esperam um
mínimo de qualidade na obtenção e exibição do mesmo.
Neste trabalho analisamos o impacto causado pela ação de nós com
comportamento não-cooperativo, no desempenho da distribuição de fluxos de vídeo em
redes P2P que usam o protocolo de difusão de pedaços push/pull proposto em [Cigno,
2008]. Numa primeira etapa, simulações são realizadas aumentando-se gradativamente
o número de nós maliciosos na rede. Assim, é possível avaliar a influência da
porcentagem de nós não-cooperativos, no sistema como um todo. Os resultados
comprovam que o desempenho do protocolo push/pull diminui à medida que a
porcentagem de nós maliciosos aumenta. Numa segunda etapa introduzimos no modelo
a possibilidade de cada nó escolher os seus vizinhos na formação do grafo, baseado em
uma “reputação” inicial, considerando se o nó candidato a vizinho é ou não cooperativo.
Com isso, a escolha deixa de ser 100% aleatória, garantindo uma certa qualidade de
vizinhança. Após as simulações, uma melhora no desempenho da rede, como um todo, é
constatada e os nós cooperativos são em geral ativados mais rapidamente. Entretanto, os
nós não-cooperativos ainda são beneficiados. Diante destes resultados identificamos a
necessidade de criação de um mecanismo de incentivo à cooperação.
Este artigo está organizado da seguinte forma. A próxima seção discute os
conceitos do protocolo push/pull. A Seção 3 discute trabalhos relacionados. Na Seção 4,
apresentam-se o simulador PeerSim e as métricas usadas na simulação. A Seção 5
apresenta os resultados da primeira etapa da avaliação. Na Seção 6 o mecanismo de
controle de admissão de vizinhos é apresentado e avaliado. A Seção 7 conclui o artigo.
1 Redes sobrepostas (overlay), que executam sobre redes como a Internet, com nós virtuais, sendo
interligados por canais de comunicação também virtuais.
VII Workshop de Redes Dinâmicas e Sistemas P2P
19
2. Conceitos Básicos
Uma das formas de se transmitir arquivos ou fluxos de vídeo em redes P2P pela Internet
requer a divisão do conteúdo em pedaços, ou chunks, a fim de transmiti-los de maneira
independente uns dos outros. O BitTorrent [Hales, 2005] utiliza este método para
compartilhamento de arquivos em redes P2P, e alguns sistemas de distribuição de vídeo,
como o CoolStreaming [Xinyan, 2005], também utilizam este método, dividindo um
fluxo de vídeo em vários pedaços para então transmiti-los.
2.1. Modelos de difusão de pedaços em redes P2P
Para os sistemas que utilizam a divisão em pedaços para a transmissão do conteúdo, o
mecanismo de difusão dos pedaços entre os nós da rede P2P é ponto de relevância.
Existem três modelos de difusão de pedaços que se destacam na literatura: o modelo
push, o modelo pull, e o modelo baseado no estado de cada nó. Além disso, alguns
trabalhos propõem modelos híbridos.
No modelo push, os pedaços são enviados de um nó pai para nós filhos, sem o
nó pai questionar se os nós filhos precisam ou não daquele pedaço. Caso um nó filho,
possua mais de um nó pai, fica fácil perceber que o mesmo pedaço pode chegar várias
vezes ao mesmo nó, ao passo que um determinado pedaço pode demorar ou nunca
chegar. O método push é, portanto, mais indicado em redes estruturadas, com topologia
baseada em árvore [Tran, 2004] [Venkataraman, 2006] [Sung, 2006].
O modelo pull apresenta comportamento oposto ao do modelo push. Neste, um
nó filho faz a requisição de um pedaço ao nó pai sem saber se ele o possui. Aqui não há
problema de duplicação, mas existe o problema de starvation, pois um filho pode nunca
encontrar um nó pai que possua o pedaço que ele esteja procurando. Em geral, o modelo
pull está associado a sistemas não estruturados, onde um nó filho pode ser suprido por
vários nós pai, diminuindo assim a probabilidade de ocorrer starvation. Até onde foi
investigado, na prática é difícil existirem sistemas que utilizem exclusivamente o
modelo pull para distribuição de vídeo.
No modelo baseado no estado [Pai, 2005] [Xinyan, 2005] [Pianese, 2006], os
nós trocam informações entre si para saber o que cada nó vizinho possui, e assim pedirlhe ou enviar-lhe um determinado pedaço. Cada nó possui o seu mapa de buffer que
mantém um índice dos pedaços que o mesmo possui, e ainda uma lista dos pedaços que
estão na eminência de serem reproduzidos. Os nós fazem a troca do mapa de buffer com
os seus nós vizinhos. Como os nós têm consciência do que cada um possui, eles podem
fazer a requisição de pedaços de maneira otimizada.
Alguns trabalhos propõem modelos híbridos para a distribuição de pedaços. Um
desses modelos é o Interleave [Sanghavi, 2007] que combina os modelos push e pull, e
adiciona um mecanismo de política de seleção de pedaços, sem nenhuma troca de
informações entre os nós sobre os pedaços que cada um possui. Este modelo foi
projetado e analisado principalmente para transferência de arquivos.
O trabalho [Cigno, 2008] analisou o desempenho do modelo Interleave em
detalhe, e ampliou seu escopo para permitir redes P2P com comportamentos diversos e
para comprovar se era possível transmitir vídeo com este modelo de difusão de pedaços.
Os resultados mostraram que era possível não só ter bom desempenho para distribuição
de arquivos, como também para a distribuição de vídeo sem manter quaisquer
informações sobre os pedaços.
20
Anais
2.2. O modelo de difusão de pedaços push/pull
O modelo de rede P2P para distribuição de vídeo proposto em [Cigno, 2008] possui
apenas uma única fonte, que divide o conteúdo do vídeo em pedaços para serem
distribuídos entre os nós da rede sobreposta de forma independente. Os pedaços são
gerados a uma taxa constante pela fonte e cada pedaço possui um identificador único
que reflete a sua ordem de criação.
A rede sobreposta é do tipo não-estruturada, com topologia em malha e
simétrica, ou seja, se um nó N é vizinho de V, então V é vizinho de N. Cada nó N da
rede possui uma lista com a referência para todos os seus nós vizinhos e pode contatar
ativamente estes nós e apenas eles.
Cada nó alterna seu estado entre os modos push e pull. Apenas o nó fonte não
alterna o seu estado, ele permanece sempre com o estado push, pois o nó fonte não
precisa requisitar pedaços, ele já os possui.
Durante o estado push, um nó N realiza as seguintes atividades:
1. seleciona um vizinho V aleatoriamente, e o pedaço K com o identificador mais alto,
ou seja o k mais recente, entre os diversos pedaços recebidos dos seus vizinhos;
2. em seguida, envia uma mensagem ao vizinho V selecionado aleatoriamente,
questionando se este deseja K;
3. se o nó V não possui K e tiver banda de download disponível, o nó V envia uma
mensagem a N aceitando a oferta, e o nó N envia o pedaço K ao nó V;
4. caso contrário, o nó N aborta o processo.
Durante o estado pull, um nó N realiza as seguintes atividades:
1. envia uma mensagem de requisição de pedaço a um nó vizinho V aleatório,
solicitando o pedaço K com o identificador mais baixo que não possua;
2. se o nó V possuir o pedaço K e tiver banda de upload disponível, o nó V envia uma
mensagem ao nó N aceitando a requisição;
3. caso contrário, o nó V rejeita a requisição.
A política de seleção de pedaços é uma parte muito importante em sistemas de
distribuição de vídeos, pois cada pedaço tem um tempo máximo de retardo tolerado
para iniciar a sua reprodução. Se um pedaço de fluxo de vídeo chegar após o seu tempo
de reprodução, haverá uma descontinuidade no vídeo. Algoritmos para selecionar os
pedaços, tal qual o mais raro primeiro, não podem ser implementados apenas com
modelos push/pull, pois, como visto, é necessário conhecimento prévio do que os outros
nós possuem. O modelo sugerido por [Cigno, 2008] adotou a mesma política de seleção
de pedaços empregada em [Sanghavi, 2007]:
1. Durante o estado push, o nó N envia o pedaço com o identificador mais alto entre os
diversos pedaços recebidos via estado push de seus vizinhos.
2. Durante o estado pull, o nó N requisita o pedaço com o identificador mais baixo que
não possua. Essa política ajuda o nó N a preencher buracos na sequência de pedaços.
É possível observar que essa política de seleção não necessita de um prévio
conhecimento do que outro nó possui. Um nó muda de um estado para outro, ou depois
de uma requisição ser aceita e o pedaço correspondente terminar de ser transferido, ou
VII Workshop de Redes Dinâmicas e Sistemas P2P
21
depois de receber um número máximo de negações às suas requisições. Este
comportamento mantém o sistema rodando suavemente, e evita starvation. Além disso,
as informações trocadas pelos nós vizinhos são as mínimas possíveis, apenas mensagens
de keep-alive e mensagens de requisições e respostas do protocolo push/pull são usadas.
A maior vantagem em se utilizar um protocolo de difusão baseado nos modelos
push/pull é a sua simplicidade, relacionada ao fato deste poder trabalhar sem qualquer
suposição em relação ao comportamento de cada nó. Nenhuma sinalização é necessária
para coordenar os nós, fazendo com que este protocolo seja, em tese, adequado a redes
muito dinâmicas, ou seja, com muitas entradas e saídas de nós. Por outro lado,
protocolos baseados em estado buscam melhorar o desempenho e a eficiência,
aumentando o risco de se tornarem frágeis e propensos a falhas em redes heterogêneas e
dinâmicas, com nós com comportamento variável.
Para alguns casos, como transmissão de vídeo por difusão, onde, em geral, todos
os usuários estão interessados no mesmo recurso em um espaço curto de tempo, talvez
um protocolo mais simples seja suficiente para atender todos os requisitos do serviço de
vídeo de maneira eficiente. Para outros casos, como transmissão de vídeo sob demanda,
onde os usuários interessados no vídeo estão em diferentes momentos de reprodução do
mesmo, provavelmente um protocolo baseado em estado seja mais eficaz, pois cada
usuário saberá exatamente a quem recorrer para obter os pedaços de vídeo desejados,
sem correr o risco de pedir para um usuário que não o tenha.
3. Trabalhos relacionados
Existem vários trabalhos relacionados ao uso de redes P2P para distribuição de vídeo
[Tran, 2003] [Habib, 2004] [Xinyan, 2005] [Carlsson, 2007] [Cigno, 2008] [Moraes,
2008] [Moraes, 2009]. Nenhum deles, entretanto, faz um estudo específico sobre o
comportamento de uma rede que utilize o protocolo de difusão push/pull face a
presença de nós com comportamento não-cooperativo.
[Sanghavi, 2007] propôs o protocolo Interleave para difundir os pedaços entre os
nós da rede. Este protocolo combina os modelos push e pull, alternando os estados dos
nós entre um ou outro, e foi criado com o propósito de aumentar o desempenho de
serviço de distribuição de arquivos. O autor também adotou uma política de seleção de
pedaços, conforme mencionado na seção anterior. O trabalho comprovou que o
protocolo podia ser utilizado satisfatoriamente para serviço de distribuição de arquivos.
Alguns trabalhos propõem a combinação dos modelos push e pull, utilizando o
mecanismo push para distribuir rapidamente os pedaços, e o mecanismo pull para
preencher os “buracos” no buffer de reprodução. Não há uma alternância entre os dois
modelos, por exemplo, [Locher, 2007].
Mais próximo de nosso trabalho, [Cigno, 2008] fez um estudo do protocolo
push/pull com a finalidade de avaliar o comportamento e desempenho do mesmo na
tarefa de distribuição de fluxo de vídeo na Internet. Para atingir seus objetivos, variou
parâmetros como: quantidade de nós, quantidade de vizinhos por nó, quantidade de
pedaços a serem distribuídos e banda de upload. Os resultados foram comparados aos
obtidos em [Sanghavi, 2007] e apresentaram indícios de que era possível ter bom
desempenho para transmissão de vídeo utilizando um modelo de rede P2P que
combinasse os modelos push e pull.
Até aqui as discussões apresentadas consideraram que todos os nós atuam de
22
Anais
forma cooperativa na rede. Grande parte dos sistemas P2P conta com isto, já que
deveria ser do interesse do nó participante cooperar com os demais, pois a qualidade
dos serviços que ele utiliza depende do desempenho da rede como um todo.
Estudos mostram que em sistemas de compartilhamento de arquivos, o tempo
total para baixar arquivos e a taxa de falhas de toda a rede aumentam a medida que os
nós deixam de compartilhar seus recursos [Adar e Huberman, 2000]. Em redes sem fio
ad hoc, a latência de pacotes e a taxa de perda aumentam para todos, quando os nós se
recusam a encaminhar pacotes de controle sobre o comportamento dos outros nós
[Marti et al, 2000].
Seria natural raciocinar que é interessante para um determinado nó cooperar para
maximizar os seus resultados. Mas, isso não é o que ocorre de fato. Estudos têm
mostrado que nós que atuam como parasitas, consumindo recursos sem contribuir, são
maioria em redes P2P para compartilhamento de arquivos [Adar e Huberman, 2000]
[Saroiu et al, 2003]. Não apenas usuários egoístas ou parasitas prejudicam o
desempenho de uma rede P2P. Usuários mal intencionados, que querem realmente
degradar o serviço oferecido pela rede, ou usuários mentirosos, que querem trapacear,
também prejudicam o desempenho da rede.
Seria desejável que o desempenho das aplicações em redes P2P se mantivesse
estável, mesmo diante de nós não-cooperativos. A infraestrutura provida e os protocolos
utilizados deveriam ser robustos o suficiente para que as aplicações fossem
minimamente afetadas por nós com comportamento malicioso. Alguns trabalhos
relacionados ao uso de redes P2P para distribuição de vídeo abordam esse problema.
[Habib e Chuang, 2004] propõe um mecanismo de seleção de vizinhos baseado
em um ranking para distribuição de vídeo na Internet com nós com interesses
assimétricos. O mecanismo estimula o incentivo à cooperação através da diferenciação
de serviços. Nós cooperativos da rede são recompensados com flexibilidade e escolha
na seleção dos vizinhos, resultando em alta qualidade na reprodução do vídeo. Os nós
não-cooperativos têm limitadas opções na seleção de vizinhos, obtendo uma baixa
qualidade de vídeo. Os autores verificaram que o mecanismo pode prover qualidade de
vídeo próxima ao ótimo, quando todos os nós são cooperativos, desde que as fontes de
vídeo não estejam conectadas por enlaces no limite de sua banda. Os autores também
afirmam que o mecanismo de incentivo proposto não é necessário quando a rede está
totalmente disponível e não é efetiva quando o congestionamento é alto.
[Chu et al, 2004] propõe um modelo de taxação, onde nós com mais recursos
contribuem com mais banda no sistema. Nós com recursos limitados são subsidiados
pelo sistema. O modelo é aplicado no contexto de distribuição de vídeo onde o
distribuidor do vídeo impõe a taxação para os demais nós para obter o máximo de
cooperação de cada um. Este esquema é usado quando um número alto de usuários está
interessado em uma mesma sessão de vídeo, e estes usuário estão dispostos a cooperar
de maneira síncrona, mesmo que com alguma sobrecarga, para que a qualidade do
vídeo recebido seja satisfatória.
[Hoong e Matsuo, 2008] propõe o protocolo PALMS (P2P Unstructured Live
Media Streaming) que faz uso dos modelos push, pull e conhecimento do estado do
mapa de buffer de cada nó para difusão dos pedaços de vídeo em conjunto com um
mecanismo de incentivo à cooperação baseado na pontuação do nó. A pontuação é
função da razão entre bytes transmitidos e bytes recebidos. A seleção do vizinho
depende da pontuação do nó solicitante e do nó candidato a vizinho. Um nó solicitante
VII Workshop de Redes Dinâmicas e Sistemas P2P
23
só pode selecionar nós com pontuações menores ou iguais à dele, assim cada nó fica
estimulado a cooperar mais a fim de poder selecionar melhores parceiros para aumentar
a qualidade do vídeo reproduzido. Com este mecanismo os autores obtiveram resultados
satisfatórios, mesmo diante da existência de nós não-cooperativos na rede.
4. Ambiente da simulação
O ponto fundamental deste trabalho trata do estudo do comportamento de uma rede
sobreposta em malha que utilize o método de difusão de pedaços baseado no modelo
push/pull, diante de nós que podem ou não estarem dispostos a cooperar. O objetivo é
mensurar o quanto a presença de nós maliciosos pode prejudicar o desempenho da rede
P2P na distribuição de vídeo. Devido às dificuldades inerentes aos testes reais com
muitos nós, optou-se por simular a rede sobreposta em um simulador de rede P2P.
4.1. O simulador PeerSim
As simulações foram realizadas no simulador PeerSim [PeerSim] utilizando o módulo
P4S [P4S], desenvolvidos em Java. O PeerSim suporta dois modelos de simulação:
orientado a ciclos e o orientado a eventos. Para este trabalho foi escolhido o modelo de
simulação orientado a eventos, pois era preciso que o ambiente fosse o mais próximo
possível da realidade.
Em nossas simulações utilizamos grafos simétricos. Para isso, utilizamos a
classe peersim.dynamics.WirekOutUnd, a mesma utilizada pelo trabalho [Cigno, 2008]
para distribuição de vídeo. Esta classe cria um grafo simétrico com cada nó possuindo
um número fixo de vizinhos, e a escolha de cada vizinho é aleatória.
Para facilitar o estudo do protocolo de difusão baseado no modelo push/pull,
utilizou-se o módulo P4S, criado para simular a distribuição de arquivos e a distribuição
de vídeo em redes P2P em malha. O módulo P4S provê a classe p4s.core.Alternate que
simula um protocolo de difusão que combina os modelos push e pull.
Para introduzir as características de nós não-cooperativos na primeira etapa da
simulação foi necessário criar o código para nós com tal comportamento. Na segunda
etapa introduzimos um controle na formação das vizinhanças, limitando a quantidade de
nós não-cooperativos que um nó cooperativo poderia ter.
4.2. Infraestrutura da simulação
Para modelar um nó com comportamento não-cooperativo, modificamos a seqüência
das atividades realizadas pelo nó no estado push porque de acordo com os resultados de
[Cigno, 2008] o número de pedaços recebidos via push é ligeiramente maior do que
recebido via pull. Com isso o nó não-cooperativo nesta simulação prejudica seus
vizinhos porque não envia pedaços de forma voluntária aos mesmos, entretanto quando
é solicitado a enviar um pedaço, o nó não-cooperativo age corretamente. Pode-se dizer
então, que o nó não-cooperativo neste caso não é 100% prejudicial, não tem a finalidade
de prejudicar totalmente a rede e sim de se beneficiar em relação aos outros nós, de
certa forma age de maneira egoísta.
A diferença da seqüência original é a introdução de mais uma condição no
estado push. O nó que vai enviar voluntariamente um pedaço deve, agora, além de
possuir um número de conexões ativas menor que o número máximo de conexões
possíveis e banda de upload disponível, ser também um nó cooperativo. Caso contrário,
24
Anais
sendo um nó não-cooperativo, o mesmo passa para o estado pull diretamente, sem
enviar nenhum pedaço.
Na simulação a rede sobreposta é composta por um nó fonte que gera os pedaços
a uma taxa constante. Os nós são inicializados ao mesmo tempo e seus vizinhos são
escolhidos de forma aleatória e simétrica, conforme já explicado. Os nós entram na rede
como nós passivos, ou seja, não podem solicitar nenhum pedaço a um de seus vizinhos
até que fiquem no modo ativo, para que isso ocorra, o nó precisa receber o seu primeiro
pedaço via método push. Uma vez aceitos na rede, os nós não saem desta, ou seja, não
há churn.
Após a inicialização dos nós, o nó fonte começa a enviar pedaços para os seus
vizinhos, ativando-os. A partir daí, outros nós também são ativados e portanto ficam
aptos a pedir e enviar pedaços. A simulação chega ao fim quando todos os nós
obtiverem todos os pedaços ou o tempo limite estiver esgotado.
Dois tipos de vídeo e respectivos parâmetros, utilizados em [Costa, 2004] e em
[Moraes, 2009], foram adotados em nossas simulações. Um deles, obtido a partir da TV
UOL - entretenimento de 5 min e o outro do servidor eTeach, Univ. de Wisconsin educacional de 20 min. A Tabela 1 resume estes parâmetros.
Tabela 1. Parâmetros considerados em todas as simulações
Entretenimento
Educativo
Número de nós participantes
200
200
Tamanho do vídeo (pedaços)
30
120
Tamanho do vídeo (minutos)
5
20
Taxa de transmissão do vídeo (Kb/s)
350
350
Duração do pedaço de vídeo (s)
10
10
437,5
437,5
Tamanho do pedaço do vídeo (kB)
Além dos parâmetros da Tabela 1, definiu-se a banda de upload 600 kb/s para
todos os nós, e o número de vizinhos de cada nó igual a 12, essas escolhas foram
baseadas nos resultados de [Cigno, 2008], onde a rede tornava-se estável. Foram
realizadas 300 rodadas de simulação, variando a porcentagem de nós não-cooperativos
na rede em 0%, 5%, 10%, 15% e 20%.
4.3. Métricas escolhidas
Quatro métricas foram escolhidas para verificar o desempenho do protocolo push/pull
em presença de nós não-cooperativos durante a simulação:
Tempo máximo, tempo que o último nó a terminar de reproduzir o vídeo leva para
obter todos os pedaços.
Qualidade do sistema de vídeo, definida em [Habib, 2004] como:
T
∑ Zi
Q=
i= 1
(1)
T
onde T é o número total de pedaços envolvidos na distribuição de vídeo e Z i é a variável
que representa o fato do pedaço ter chegado ou não antes do seu tempo de reprodução.
VII Workshop de Redes Dinâmicas e Sistemas P2P
25
Caso o pedaço tenha chegado antes do seu tempo de reprodução, a variável Z i recebe 1,
do contrário Zi recebe 0, o que representa descontinuidade no vídeo.
Índice de continuidade, definido em [Moraes, 2009], representa o quanto o usuário
obteve o vídeo de forma contínua, ou seja, sem interrupções. Quando um pedaço chega
após o seu tempo de reprodução, significa que o usuário ficou provavelmente com a
imagem do último quadro congelada até a chegada deste pedaço ou que um timeout
ocorreu, gerando descontinuidade na reprodução do vídeo e desconforto ao usuário.
O tempo total em que a reprodução do vídeo fica parada aguardando o pedaço
atrasado chegar para reproduzi-lo é chamado de tempo de espera. De posse do tempo de
espera do nó é possível calcular o índice de continuidade do mesmo. Tem-se que:
c=
tr −te
tr
(2)
onde tr é o tempo total de reprodução do vídeo. Quanto maior o índice de continuidade,
mais tempo em que o usuário assistiu ao vídeo sem interrupções. Um índice igual a
100% significa que não houve interrupções na reprodução de vídeo de um dado nó.
Atraso inicial, na reprodução do vídeo. A estratégia definida para o momento certo de
inicializar a reprodução de um vídeo tem importância fundamental no sucesso da
qualidade do vídeo ao longo da reprodução. [Carlsson, 2007] apresenta algumas
políticas de como determinar o melhor momento para iniciar o vídeo.
O simulador P4S/PeerSim não possui um escalonador para a reprodução de
vídeo. Como era importante visualizar a tendência do atraso inicial e da perda de
continuidade da rede P2P em face a adição de nós não-cooperativos, definimos uma
política simples para inicializar o vídeo: aguardar a chegada dos três primeiros pedaços,
(0, 1 e 2). Esta política é aplicada aos arquivos de resultado das simulações. [Lima,
2010] oferece uma discussão ampla do problema e seus efeitos na distribuição de vídeo.
5. Avaliação do comportamento de nós maliciosos
Devido a limitação de espaço, apresentaremos apenas os gráficos referentes à simulação
do cenário com 120 pedaços. As Figuras 1(a), 1(b), 2(a) e 2(b) apresentam os gráficos
de desempenho para as métricas tempo máximo, índice de continuidade (ICO),
qualidade do sistema de vídeo (Q) e atraso inicial, respectivamente.
Tempo Máximo
Nós C
Nós NC
Tempo Máximo (min)
21,75
Índice de continuidade (ICO)
ICO
22
21,5
1
Nós C
Nós NC
0,99
0,98
21,25
0,97
21
0,96
20,75
0,95
20,5
0,94
20,25
0,93
20
0%
5%
10%
15%
20%
Nós não-cooperativos
0%
5%
10%
15%
20%
Nós não-cooperativos
Figura 1. Desempenho: (a) tempo máximo e (b) índice de continuidade
O eixo y dos gráficos das figuras 1 e 2(a) representam as médias das métricas
avaliadas obtidas pela rede com um intervalo de confiança de 90%, já o eixo x
representa a porcentagem de nós não-cooperativos na rede sobreposta. Barras cinzas
26
Anais
correspondem ao desempenho dos nós cooperativos (nós C), barras brancas
correspondem ao desempenho dos nós não-cooperativos (nós NC).
Observa-se, na Figura 1(a), que o tempo máximo dos nós cooperativos e nãocooperativos são muito próximos, com pequena vantagem para os nós não-cooperativos.
O melhor desempenho dos nós da rede ocorre quando a quantidade de nós nãocooperativos é igual a zero, e o desempenho piora a medida que a percentagem de nós
não-cooperativos na rede aumenta. No melhor caso, todos os nós terminaram em até 21
min e no pior caso em até 21 min e 21 seg, lembrando que o vídeo é de 20 min e que há
um atraso inicial para a reprodução do vídeo.
A Figura 1(b) apresenta o desempenho da rede com relação a métrica ICO.
Observa-se uma degradação do ICO à medida que a porcentagem de nós nãocooperativos aumenta. Assim como na métrica anterior, o melhor desempenho também
foi para a rede sem nós não-cooperativos. O ICO para o melhor caso é de 0,99, ou seja,
em 20 min de reprodução de vídeo houve em média 12 seg de interrupção. Já para o
pior caso, que também corresponde a rede com 20% de nós não-cooperativos, o ICO é
igual a 0,95, ou seja, média de 60 seg de interrupção. Para esta situação verifica-se uma
diferença de 4 pontos percentuais.
O melhor desempenho da métrica ICO para os nós não-cooperativos era
esperado, pois como os mesmos não perdem tempo no estado push, trocando de
imediato para o estado pull, tendem a preencher mais rapidamente os “buracos” do seu
buffer de reprodução, desde que, possuam nós cooperativos como seus vizinhos.
Tempo (seg)
Qualidade do Sistema (Q)
Q
90
0,99
Nós C
0,98
Nós NC
0,97
85
80
75
Ativação e atraso inicial
A tivação Nós C
A traso Nós C
A tivação Nós NC
A traso Nós NC
70
0,96
65
0,95
60
0,94
55
50
0,93
45
0,92
40
0,91
35
0,9
30
0%
5%
10%
15%
20%
Nós não-cooperativos
0%
5%
10%
15%
20%
Nós não-cooperativos
Figura 2. Desempenho: (a) qualidade do sistema de vídeo e (b) atraso inicial
A Figura 2(a) apresenta o desempenho da rede com relação a métrica qualidade
(Q). Percebe-se que o comportamento dos nós não-cooperativos e cooperativos ficam
praticamente iguais. Além disso, ocorre uma degradação da qualidade à medida que a
porcentagem de nós não-cooperativos aumenta, conforme ocorreu com as métricas
anteriores. O melhor Q é de 0,97, ou seja, de 120 pedaços apenas 3,6 pedaços chegaram
atrasados em cada nó. No pior caso, novamente quando a rede possui 20% de nós nãocooperativos, o Q obtido é de 0,95, isto é, de 120 pedaços em média 6 pedaços
chegaram atrasados em cada nó. Neste caso, houve uma perda de 2 pontos percentuais.
A Figura 2(b) apresenta o desempenho para o atraso inicial. Para analisar esta
métrica, decidimos inserir também o comportamento do tempo de ativação dos nós, pois
como discutido anteriormente, o nó só começa a participar da rede de forma efetiva
apenas após receber o primeiro pedaço, a partir daí o nó pode solicitar e enviar pedaços.
Por isso, acreditávamos que o tempo de ativação influenciava a métrica atraso inicial, só
não sabíamos o quanto.
VII Workshop de Redes Dinâmicas e Sistemas P2P
27
O gráfico da Figura 2(b) possui quatro grupos de barras: cinzas e brancas,
correspondem ao desempenho dos nós cooperativos e não-cooperativos com relação à
métrica ativação; barra hachuradas horizontalmente e hachuradas com ângulo de 45 o
correspondem ao desempenho dos nós cooperativos e não-cooperativos, com relação ao
atraso inicial, respectivamente.
Percebe-se que o desempenho das redes com relação a esta métrica vai se
degradando à medida que a porcentagem de nós não-cooperativos aumenta. As curvas
dos nós cooperativos e não-cooperativo são muito similares. O melhor valor para tempo
de ativação fica próximo a 40 seg. e o pior caso, com 20% de nós não-cooperativos,
próximo a 50 seg, ou seja, uma diferença de 10 seg. O melhor valor para o atraso inicial
fica próximo a 70 seg. e o pior valor próximo a 82 seg, uma diferença de 12 seg.
Pode ser notado que o tempo de ativação de um nó é responsável por mais da
metade do atraso inicial do mesmo, o que é muito representativo. Seria de interesse
estudar modificações no mecanismo de ativação do nó para otimizar o atraso inicial.
Vale a pena comentar outros dois pontos observados durante as simulações.
Com valores mais altos para porcentagem de nós não-cooperativos, como 50% por
exemplo, a simulação fica impraticável, pois vários nós sequer são ativados, além do
desempenho das redes ficar bastante degradado. Além disso, em alguns casos, ocorreu
de nós cooperativos não ativarem, o que é um ponto bastante negativo.
6. Controle de admissão
Na segunda parte das simulações introduziu-se um mecanismo de controle de admissão
de vizinhos na formação do grafo, onde nós cooperativos possam selecionar vizinhos
cooperativos e rejeitar vizinhos não-cooperativos. A idéia básica é a de criar um
mecanismo que possibilite o nó fazer sua escolha baseada em uma reputação prévia do
nó candidato a vizinho, neste caso, ou um nó cooperativo ou um nó não-cooperativo,
tornando a seleção de vizinhos menos aleatória.
No simulador utilizamos o atributo criado anteriormente que identificava se o nó
é cooperativo ou não-cooperativo. Para cada nó cooperativo foi criado um contador de
vizinhos não-cooperativos utilizado na rotina de formação do grafo. Também foi
definido um parâmetro para especificar a % máxima de nós não-cooperativos que um nó
cooperativo está disposto a aceitar. Quando este contador atinge um determinado limiar,
o nó cooperativo passa a rejeitar nós não-cooperativos como vizinhos. Repetimos as
mesmas simulações, mantendo-se os parâmetros apresentados na Tabela 1 e as métricas
usadas na primeira etapa para comparar os resultados.
6.1. Resultados
Para permitir a comparação com os resultados da primeira etapa, apenas apresentaremos
os gráficos referentes à simulação com 15% de nós não-cooperativos na rede, com
distribuição de 120 pedaços. O trabalho [Lima, 2010] apresenta os outros resultados.
O eixo y dos gráficos das Figuras de 3 a 4 representam as médias das métricas
obtidas pela rede com um intervalo de confiança de 90%, já o eixo x representa a
porcentagem máxima de nós não-cooperativos permitidos na lista de vizinhos de cada
nó cooperativo.
Cada gráfico possui quatro grupos de blocos, o grupo de blocos cinzas
corresponde ao desempenho dos nós cooperativos; já o grupo de blocos brancos
28
Anais
corresponde ao desempenho dos nós não-cooperativos ambos com o mecanismo (nós C
e nós NC - CM); os grupos com barras hachuradas horizontalmente e com barras
hachuradas com ângulo de 45 graus correspondem ao desempenho dos nós cooperativos
e não-cooperativos respectivamente, sem o mecanismo (nós C e nós NC - SM).
A Figura 3(a) apresenta o desempenho da rede com relação ao tempo máximo.
Observa-se que para uma configuração com 10% de vizinhos não-cooperativos, o tempo
máximo para nós maliciosos aumentou em comparação com as simulações anteriores
sob mesmas condições, ou seja, uma rede com 15% de nós maliciosos como um todo. O
tempo máximo ficou próximo a 24,5±1,5 min, ao passo que nas simulações sem
mecanismo o valor era próximo a 21 min. Percebeu-se, não só neste cenário, mas nos
demais também, que a variação foi pequena em termos gerais, entretanto com uma
punição considerável para os nós não-cooperativos, para limiares baixo de admissão.
Tempo Máximo
Nós C – CM
Nós C – SM
25
Nós NC – CM
Nós NC – SM
24
Tempo Máximo (min)
Índice de continuidade (ICO)
ICO
26
1,00
Nós C – CM
Nós C – SM
0,99
Nós NC – CM
Nós NC – SM
0,98
23
0,97
22
0,96
21
0,95
20
0,94
0,93
19
10%
20%
30%
10%
50%
20%
Vizinhos não-cooperativos
30%
50%
Vizinhos não-cooperativos
Figura 3. Desempenho: (a) tempo máximo e (b) índice de continuidade
No gráfico da Figura 3(b) podemos visualizar a curva da métrica ICO.
Verificam-se que os nós não-cooperativos continuaram tendo melhor desempenho em
comparação com nós cooperativos. Entretanto, podemos notar que a rede como um todo
obteve uma melhora com a adição do mecanismo de admissão.
Qualidade do sistema (Q)
Q
0,99
Nós C – CM
Nós C – SM
Nós NC – CM
Nós NC – SM
0,98
Tempo (seg)
90
Atraso inicial
Nós C – CM
Nós C – SM
Nós NC – CM
85
Nós NC – SM
80
0,97
75
70
0,96
65
0,95
60
0,94
55
0,93
50
45
0,92
40
0,91
35
0,9
30
10%
20%
30%
50%
Vizinhos não-cooperativos
10%
20%
30%
50%
Vizinhos não-cooperativos
Figura 4. Desempenho: (a) qualidade do sistema de vídeo e (b) atraso inicial
A Figura 4(a) mostra que não houve melhora substancial na qualidade de vídeo
com a adição do mecanismo de admissão. A Figura 4(b) apresenta o desempenho da
rede sob o ponto de vista da métrica atraso inicial. Aqui notamos que há momentos em
que os nós não-cooperativos são punidos e os nós cooperativos beneficiados.
VII Workshop de Redes Dinâmicas e Sistemas P2P
29
Na Figura 4(b), para porcentagem de vizinhos igual a 10%, o atraso inicial dos
nós cooperativos próximo a 77±2 seg, e dos nós não-cooperativos próximo a 85±3 seg.
Sem o mecanismo, o atraso inicial para os nós cooperativos ficou próximo a 80 seg e
para os nós não-cooperativos próximo a 78 seg, resultado que pode ser considerado uma
melhora para os nós cooperativos e uma punição para os nós não-cooperativos.
7. Conclusão
O presente trabalho investigou como nós não-cooperativos afetam a qualidade da
aplicação de distribuição de fluxos de vídeo em redes P2P que fazem uso de protocolos
de difusão de pedaços push/pull [Cigno, 2008] onde co-existem nós cooperativos e não
cooperativos. Utilizamos o simulador PeerSim e o módulo P4S, fazendo alterações e
acréscimos necessários para incluir os aspectos sendo investigados.
Os resultados comprovaram que o desempenho da aplicação tende a diminuir à
medida que a porcentagem de nós não-cooperativos aumenta. Observamos, também,
que em geral os resultados dos nós não-cooperativos foram melhores do que os
resultados dos nós cooperativos, ressaltando um outro lado do problema. Além disso,
alguns nós cooperativos não foram ativados em algumas rodadas de simulação.
Com a adição de um mecanismo de seleção inicial dos vizinhos, o desempenho
da aplicação melhorou para até 20% de nós não-cooperativos na lista de vizinhos dos
nós cooperativos. A distribuição de nós não-cooperativos tornou-se mais homogênea,
não sobrecarregando um nó cooperativo. Não se observou mais o problema de nós
cooperativos não serem ativados. Este fenômeno ocorreu apenas com os nós nãocooperativos, o que funciona como um mecanismo de punição. Entretanto, o controle de
admissão não conseguiu solucionar um problema: o fato de nós não-cooperativos
ativados continuarem tendo melhores resultados do que nós cooperativos. Este
problema está relacionado ao fato da formação do grafo ser estático. Desta forma, o
bom desempenho dos nós fica condicionado à formação inicial do grafo.
Assim, estamos trabalhando em uma proposta de mecanismo dinâmico de
atualização da lista de vizinhos de cada nó, a fim de introduzi-lo no simulador e estudar
seus efeitos. Acreditamos que este mecanismo proporcionará o efeito de justiça
desejado, introduzindo uma punição aos nós não-cooperativos que, ao longo da
execução da aplicação, vão estar ligados a menos nós cooperativos, tendo a qualidade
do vídeo recebido degradada. Isso serviria de incentivo para o nó não-cooperativo
mudar seu comportamento.
Além do trabalho iniciado, um estudo do desempenho do protocolo push/pull na
presença de nós não-cooperativos com gradações diferentes é considerado. Por
exemplo, um nó poderia ser muito, pouco ou mediamente não-cooperativo.
Adicionalmente o comportamento do estado pull ou até mesmo os dois estados ao
mesmo tempo poderiam ser modificados e avaliados. Neste último caso, um nó com
esta característica seria muito nocivo à rede, já que não contribuiria de maneira alguma.
Por fim, um outro ponto de investigação é o tamanho ideal do pedaço para
manter uma boa relação entre as métricas índice de continuidade e atraso inicial, pois
pedaços pequenos podem acarretar em atraso inicial pequeno, mas desempenho pobre
com várias pequenas interrupções. Já pedaços grandes podem acarretar em atraso inicial
alto, mas um bom desempenho ao longo da reprodução.
Agradecimento. Os autores agradecem o apoio parcial da FAPERJ.
30
Anais
Referências
ADAR, E., HUBERMAN, B.. “Free riding on Gnutella”. First Monday. Vol. 5, No.10. Outubro,
2000.
CARLSSON, N., EAGER, D. “Peer-assisted on-demand streaming of stored media using
BitTorrent-like protocols”. IFIP-Tc6, Maio, 2007.
CIGNO, R., RUSSO, A., CARRA, D. “On Some Fundamental Properties of P2P Push/Pull
Protocols”, HUT-ICCE 2008, pp. 67-73, Junho, 2008.
COSTA, C., CUNHA, I., BORGES, A. “Analyzing client interactivity in streaming media”. 13 th
ACM Int. Conf on WWW, Maio 17 - 20, 2004.
HABIB, A., CHUANG, J., “Incentive mechanism for peer-to-peer media streaming”. IWQOS
2004, pp. 171-180, Junho, 2004.
HALES, D. E., PATARIN, S. “Computacional sociology for system in the wild: the case of
BitTorrent”, IEEE Distributed Systems Online, 2005.
HOONG, P. K., MATSUO, H. “Push-Pull Incentive-based P2P Live Media Streaming System”.
WTOC 7, 33-42, Fevereiro, 2008.
LIMA, F. M, “Análise de desempenho de redes p2p com protocolo “push/pull” para distribuição
de vídeo na presença de nós não-cooperativos”, Dissert. de Mestrado, UERJ, Agosto, 2010.
LOCHER, T., MEIER, R., SCHMID, S. et all. “Push-to-Pull Peer-to-Peer Live Streaming”. 21st
Int. Symp. on Distributed Computing (DISC). Setembro, 2007.
MARTI, S., GIULI, T. J., LAI, K., BAKER, M. “Mitigating routing misbehavior in mobile ad
hoc networks”. 6th International Conference on Mobile Computing and Networking, 2000.
MORAES, I., CAMPISTA, M., MOREIRA, et al. “Distribuição de Vídeo sobre Redes Par-aPar: Arquiteturas, Mecanismos e Desafios”. Minicurso, Cap. 3, SBRC. Maio, 2008.
MORAES, I.. “Distribuição de vídeo sobre redes par-a-par”, Tese de Doutorado, COPPE
Elétrica, UFRJ. Dezembro, 2009.
P4S. “P4S: P2P 4 Streaming System”, http://www.dit.unitn.it/networking/P4S-main.html.
[04/2010].
PAI, V., KUMAR, K., TAMILMANI, K., et al. “Chainsaw: Eliminating Trees from Overlay
Multicast”. IPTPS. February, 2005.
PEERSIM. “PeerSim: A Peer-to-Peer Simulator”, http://peersim.sourceforge.net/. [04/2010]
PIANESE, F., KELLER, J., BIERSACK, W. “PULSE, a Flexible P2P Live Streaming System”.
IEEE Global Internet Symposium. Abril, 2006.
SANGHAVI, B.S., HAJEK, B., MASSOULIE, L. “Gossiping with multiple messages”. IEEE
INFOCOM 2007. Dezembro, 2007.
SAROIU, S., GUMMADI, K. P., et al, “Measuring and analyzing the characteristics of Napster
and Gnutella hosts”. Multimedia Systems, No.9, pp.170-184, Springer. Agosto, 2003.
SUNG, Y., BISHOP, M., RAO, S. “Enabling Contribution Awareness in an Overlay
Broascasting System”. SIGCOMM. Setembro, 2006.
TRAN, D. A., HUA, K. A., DO, T. T. “ZIGZAG: An efficient peer-to-peer scheme for media
streaming”. IEEE INFOCOM 2003. Vol. 2, pp. 1283-1292, 2003.
TRAN, D. A., HUA, K. A., DO, T. T. “A Peer-to-Peer Architecture for Media Streaming”.
IEEE JSAC. Vol. 22, No.1, pp. 121-133, Janeiro 2004.
VENKATARAMAN, V., FRANCIS, P. “Chunkyspread: Multi-tree Unstructured Peer-to-Peer
Multicast”. IPTPS. Fevereiro, 2006.
XINYAN, Z., JIANGCHUAN, L., et al., “CoolStreaming/DONet: A Data-driven Overlay
Network for Peer-to-Peer Live Media Streaming”. INFOCOM. Vol.3, pp.2102-2111, 2005.
VII Workshop de Redes Dinâmicas e Sistemas P2P
31
PlanetMon: Um Arcabouço para Execução e
Monitoração de Experimentos no Planet-Lab
Vinicius K. Ruoso, Luis C. E. De Bona, Elias P. Duarte Jr.
1
Departamento de Informática – Universidade Federal do Paraná (UFPR)
Caixa Postal 19.081 – 81531-980 – Curitiba – PR – Brasil
{vkr07,bona,elias}@inf.ufpr.br
Abstract. Testbeds are platforms for executing large-scale experiments. PlanetLab is one of the largest testbeds available worldwide. Executing an experiment
on Planet-Lab, and evaluating results is laborious process. In order to make
this task simpler, this paper presents a framework to configure, implement and
monitor experiments on Planet-Lab. Through a portal and a API, the researcher
can manage and monitor the experiment execution. In particular, the system has
a graphical interface that allows the virtual topology created by the application
to be visualized. Experimental results are presented, including the execution of
Pastry on nodes spread in three continents.
Resumo. Os testbeds são plataformas para experimentação de grandes projetos em desenvolvimento. O Planet-Lab é um dos maiores testbeds disponı́veis
no mundo. Realizar experimentos no Planet-Lab e analisar dados sobre sua
execução é um processo trabalhoso. Visando tornar tal tarefa mais simples, este
trabalho apresenta um arcabouço para configurar, executar e monitorar experimentos no Planet-Lab. Através de um portal e uma API, o pesquisador pode
controlar e monitorar a execução de sua aplicação. Em particular, o sistema
tem uma interface gráfica que permite visualizar a topologia virtual criada pela
aplicação. Resultados experimentais são apresentados, incluindo a execução
do Pastry em nodos de três continentes.
1. Introdução
As aplicações e sistemas baseados em rede têm uma grande importância para indivı́duos e
comunidades. A necessidade de desenvolvimento de novas tecnologias e aplicações para
redes, em particular a Internet, é constante. Para avaliar essas aplicações é necessário
realizar experimentos em uma infraestrutura de rede que reflita o ambiente real de uso. O
Planet-Lab [Peterson et al. 2002] é uma plataforma global para instalar e avaliar serviços
de redes. Ele já foi usado para avaliar uma grande diversidade de serviços de escala planetária, incluindo distribuição de conteúdos, anycast, DHTs (Distributed Hash Table),
serviços de DNS (Domain Name System) robusto, distribuição de arquivos em larga escala, diagnóstico de falhas e anomalias, e notificação de eventos.
A arquitetura do Planet-Lab baseia-se na estrutura de nodos, sites e slices
[Planet-Lab User Guide 2010]. Um nodo é um servidor dedicado que executa componentes dos serviços do Planet-Lab. Os sites são locais fı́sicos onde nodos do Planet-Lab
estão localizados, em geral universidades e grandes organizações. Um slice é um conjunto
de recursos alocados distribuı́dos pelo Planet-Lab. Para os usuário isto significa acesso
32
Anais
via um terminal virtual remoto seguro (Secure Shell - SSH [OpenSSH 2010]) a um conjunto de nodos. Estas máquinas contam com vários aplicativos padrão, porém o suporte à
compilação e à execução, por exemplo a linguagem Java, não é nativo.
Como o Planet-Lab é composto por nodos de todos os continentes, ocorrem vários
problemas, como a presença de falhas permanentes, temporárias e intermitentes nos nodos, problemas de conexão, e timeout devido à alta latência. Tendo isso em vista, fazer
o deploy da aplicação, instalar o ambiente de execução (i.e. suporte à linguagem, bibliotecas, etc.), inicializar o experimento e coletar informações, são tarefas trabalhosas. Em
particular, a maior dificuldade é realizar tais operações em centenas de nodos.
Após a realização de um experimento, o pesquisador deve coletar informações sobre sua execução e analisá-las como um todo. Fazer o cruzamento destes dados empı́ricos
não é uma tarefa simples, e é possı́vel não chegar a uma conclusão relevante ao final do
processo. Em caso de aplicações que criam um overlay sobre a rede, visualizar a topologia
virtual criada facilita o trabalho de analisar o comportamento da execução do algoritmo.
Realizar um experimento é um processo que demanda muito esforço e tempo por
parte de um pesquisador. Contornar todos os problemas encontrados e analisar os dados
de seu experimento é uma tarefa difı́cil. Visando aumentar a produtividade de um pesquisador ao realizar tais experimentos, criamos um arcabouço para execução e monitoramento de experimentos, em particular para a geração de mapas de topologias virtuais. Existem
ferramentas disponı́veis no sı́tio do Planet-Lab para realizar algumas destas tarefas, por
exemplo o [CoDeploy 2010], [Nixes 2010] e [ParallelSSH 2010], porém nenhuma delas
oferece uma solução para todos os problemas citados.
O arcabouço criado, chamado PlanetMon, permite realizar as tarefas essenciais
para a execução de um experimento no Planet-Lab, incluindo o deploy da aplicação, a
instalação do ambiente de execução e a coleta de dados. Além disso, é possı́vel monitorar o comportamento dos nodos durante a execução do experimento, visualizando a
topologia virtual criada através de um mapa. Os nodos utilizam uma API para realizar a
comunicação com um gerador de mapas de topologias. Analisar o mapa de execução de
uma aplicação de forma visual e em tempo real é mais simples do que recuperar arquivos
de logs e cruzar informações. Este mapa corresponde ao grafo que representa a topologia
virtual criada; nodos do sistema são vértices e arestas correspondem a uma interação entre os nodos. A API permite que o usuário associe sentido à uma interação entre nodos,
sendo possı́vel personalizar sua cor, opacidade e espessura. Por exemplo, uma aresta pode
significar uma conexão entre os vértices.
O arcabouço é disponibilizado como um portal que permite o pesquisador enviar
sua aplicação e configurar seus parâmetros de execução, informar qual o seu slice e em
quais nodos o experimento deve ser executado, e efetivamente executar seu experimento.
No mesmo momento que se prepara o ambiente de execução, a API do PlanetMon também
é instalada.
Para validar o sistema foi criado uma aplicação que cria uma topologia em
formato de estrela. Também, foram realizados experimentos utilizando o Pastry
[Rowstron and Druschel 2001], uma plataforma para desenvolvimento de sistemas P2P
(Peer-to-Peer).
O restante deste artigo está organizado da seguinte maneira. A seção 2 demonstra
VII Workshop de Redes Dinâmicas e Sistemas P2P
33
as caracterı́sticas do arcabouço. A seção 3 mostra o gerador de topologias virtuais em detalhes. A seção 4 apresenta os experimentos realizados para validação e testes do sistema.
Por fim, a seção 5 conclui o trabalho.
2. O Arcabouço
Com a intenção de facilitar o processo de execução de um experimento nós definimos um
arcabouço, composto por uma API e um gerador de mapas de topologias. Ele é capaz de
instalar e preparar o ambiente de execução da aplicação. Também é possı́vel controlar a
execução do experimento em cada nodo, assim como em conjuntos de nodos. Visualizar
a topologia gerada pela aplicação é outro serviço oferecido que permite a avaliação em
tempo de execução do experimento.
O arcabouço é disponibilizado na forma de um portal Web, acessı́vel em
http://planetmon.inf.ufpr.br. O portal, desenvolvido em Ruby on Rails, recebe do usuário
todas todas as informações necessárias sobre o ambiente de execução da aplicação. Além
disso, o sistema é configurado para preparar todos os nodos e disparar o experimento.
Durante a execução do experimento, o portal é responsável por coletar as informações da
topologia virtual e oferecer um mapa para sua visualização. Assim o foco de um pesquisador ao realizar testes utilizando esta plataforma é a sua própria aplicação.
Um script capaz de recuperar dados sobre o Planet-Lab é executado de tempos em
tempos para atualizar o banco de dados de sites e nodos disponı́veis. Além disso, o portal
possui um sistema de login que permite que cada pesquisador tenha acesso a um ambiente
exclusivo.
Figura 1. Visualização da página principal do portal.
A figura 1 mostra a tela principal do portal, após efetuado login. É possı́vel visualizar as abas disponı́veis, que são: Dashboard, Application, Slice, SDI Control, Map
e Settings. Algumas abas são responsáveis pela configuração do uso do portal, enquanto
outras estão ligadas ao controle de execução do experimento e visualização de resultados.
Na aba Dashboard estão algumas informações sobre o portal e sobre a quantidade
de nodos e sites disponı́veis para utilização, assim como estatı́sticas do servidor do portal
e dicas de utilização do mesmo. Por outro lado, a aba Settings permite que o usuário
configure suas informações, incluindo sua senha de acesso e endereço de email e, ou
exclua a sua conta do portal.
A aba Application requisita informações sobre a aplicação a ser executada. Para
isso é necessário descrever qual será o ambiente de execução utilizado, assim como o
modo em que a API do PlanetMon será utilizada. A API do PlanetMon é responsável por
reportar a situação da topologia virtual. Existem algumas maneiras de utilizar esta API,
34
Anais
as quais são detalhadas na subseção 3.1. Também é necessário enviar a aplicação em si,
empacotada em um arquivo tar, automaticamente extraido após o deploy em cada nodo.
Na aba Slice é necessário que o pesquisador informe o nome de seu slice, assim
como em quais nodos o experimento deve ser executado. Isso é necessário para que
o sistema possa se conectar aos nodos que fazem parte do experimento. Outro passo
importante que deve ser feito nesta aba é o download da chave pública criado para cada
usuário. Esta chave deve ser inserida no sı́tio do Planet-Lab, finalizando as configurações
necessárias para que o portal tenha possibilidade de executar o experimento.
Controlar o experimento é uma tarefa importante para o usuário, a qual pode ser
realizada na aba SDI Control. O sistema, ao ser iniciado, automaticamente instala as dependências necessárias e envia a aplicação para execução. Após isso, o usuário dispara o
processo de execução de seu experimento. Este processo pode ser interrompido a qualquer momento em qualquer nodo, eliminando toda a execução do experimento no nodo
em questão. Também é possı́vel enviar comandos para um conjunto de nodos que fazem
parte do experimento. Detalhes sobre os processos de instalação a execução do experimento podem ser vistos e controlados pelo usuário, tornando a experiência de controlar
sua execução mais simples.
O portal oferece a possibilidade de visualizar detalhes sobre a execução do experimento e do gerador de mapas de topologias virtuais. Para isso, na aba SDI Control
existe a possibilidade de observar o processo de execução do experimento, através da
visualização da página de infomações dos nodos. A figura 2 mostra esta visualização durante a execução de um experimento. As colunas Java Installation, Application deploy,
Stats e Application status correspondem ao estado da instalação do ambiente Java, ao estado da instalação da aplicação, ao estado da instalação da API do PlanetMon, e ao estado
da execução da aplicação, respectivamente.
Figura 2. Exemplo de visualização do SDI.
A visualização do resultado da utilização do gerador de mapas tolopologias virtuais fica disponı́vel na aba MAP do portal. A figura 3 apresenta um exemplo desta
visualização durante a execução de um experimento. As alterações realizadas na topologia através da API do PlanetMon são refletidas em tempo real pelo mapa disponı́vel no
portal. Os nodos são representados por pontos, e uma interação entre eles é representada
como uma reta ligando ambos. Esta reta pode ser personalizada para refletir uma situação
da aplicação, assim como a cor dos pontos dos nodos.
3. Gerador de Mapas de Topologias
O Gerador de Mapas de Topologias desenvolvido neste trabalho permite monitorar o comportamento dos nodos durante a execução de uma aplicação, através de uma mapa. Os
VII Workshop de Redes Dinâmicas e Sistemas P2P
35
Figura 3. Exemplo de visualização do mapa dentro do portal.
nodos utilizam uma API para realizar a comunicação com o gerador de mapas. O mapa
corresponde ao grafo que representa a topologia virtual criada; nodos do sistema são
vértices e arestas correspondem a uma interação entre os nodos. As arestas deste mapa
podem representar, por exemplo, conexões entre nodos. Entretanto podem ter significados
distintos para cada aplicação executada, assim como suas cores, opacidade e espessura.
A figura 4 apresenta a arquitetura adotada para o gerador de mapas de topologias
virtuais. Um servidor central, chamado monitor, monitora todos os nodos do Planet-Lab
que fazem parte de um ambiente de execução. Em cada nodo existe uma aplicação e a API
do PlanetMon sendo executados. No momento em que a API é acionada pela aplicação
do usuário, mensagens são enviadas através de uma conexão com o monitor, quer repassa
tais informações para o gerador de mapas. O gerador de mapas as processa e atualiza o
mapa propriamente dito. A cada mensagem recebida o gerador se encarrega de atualizar
as informações recebidas no mapa em si. Estas operações são realizadas sobre arquivos
XML (eXtensible Markup Language) [RFC Editor 2001] que são utilizados pela interface
de visualização.
O gerador de mapas de topologias faz a monitoração de experimentos utilizando o
Sistema de Diagnóstico Instantâneo (SDI [Ribas et al. 2009]). O SDI provê um modo de
executar scripts de diagnóstico e qualquer outro tipo de script em uma rede ou na Internet,
e cria páginas Web contendo informações sumarizadas. O SDI também é capaz de indentificar de qual nodo cada mensagem é originada, tornando as mensagens geradas pela API
mais simples. Portanto, cada mensagem é composta apenas de uma ação (adicionar, remover e atualizar), um nodo (identificado pelo seu nome ou endereço IP) e os atributos
da ligação entre eles, visto que o nodo de origem não é necessário nestas mensagens.
Além do SDI, que é utilizado em todas as comunicações que ocorrem entre o
arcabouço e os nodos do Planet-Lab, o arcabouço utiliza a API Central do Planet-Lab
[PLCAPI 2010] e a API do Google Maps [Google Maps API 2010].
A partir da API Central do Planet-Lab é possı́vel extrair certos dados sobre os
sites e nodos disponı́veis. Além disso, é possı́vel obter as coordenadas geográficas de
cada site, tornando possı́vel a visualização da rede em um mapa. De acordo com esta
API, foi possı́vel resgatar as informações de 1087 nodos em 513 sites. A distribuição dos
nodos dentre os sites, que pode ser visto na tabela 1, demonstra que a maioria dos nodos
não estão concentrados em alguns grandes sites.
36
Anais
Figura 4. Arquitetura do Gerador de Mapas de Topologias Virtuais.
Para efetivamente termos uma interface gráfica de visualização dos mapas das topologias virtuais criadas no Planet-Lab, utilizamos a API do Google Maps. Esta API oferece uma grande quantidade de recursos para criar overlays (desenhos e sı́mbolos) sobre
um mapa. Dentre eles, utilizamos pontos para representar nodos e linhas para representar
ligações, das quais é possı́vel personalizar a cor, opacidade e espessura.
Tabela 1. Distribuição dos nodos do Planet-Lab através de seus sites.
Número de nodos = N
1
2
3
4
5
6
7
9
11
14
16
17
Sites com N nodos
8
315
37
31
10
10
3
1
1
1
2
1
As aplicações utilizadas nos experimentos devem ser capazes de se comunicar
com o gerador de mapas de topologia. A API do PlanetMon foi criada para isso. Ela
provê uma interface simples de implementar em qualquer aplicação e envia mensagens
para o monitor contento tais informações.
VII Workshop de Redes Dinâmicas e Sistemas P2P
37
Tabela 2. API do PlanetMon.
Método
addnode(node)
removenode(node)
updateattrs(node,attributes)
startwave()
endwave()
Ação
Adiciona uma ligação com o nodo node.
Ex. addnode(’planetlab1.c3sl.ufpr.br’)
Remove a ligação com o nodo node.
Ex. removenode(’200.17.202.194’)
Atualiza os atributos da ligação com o nodo node.
Ex. updateattrs(’planetlab1.c3sl.ufpr.br’,
{’mycolor’: ’blue’, ’opacity’: 0.8})
Inicia uma nova onda.
Finaliza a onda atual.
3.1. API do PlanetMon
A API do PlanetMon é utilizada para interagir com o monitor dos nodos, ou seja, para
monitorar as topologias virtuais. A API provê operações para manipular todos os atributos
relacionados a uma interação entre nodos e, ainda, a inserção e exclusão de nodos de
modo dinâmico. Vale também notar que esta API é executada em cada nodo monitorado,
e cada um deles envia mensagens ao monitor relatando quais suas interações e atributos
correspondentes. A cada mensagem um nodo informa com qual nodo está interagindo,
além dos atributos desta interação. É considerado que um nodo pode ser representado
tanto pelo seu nome quanto pelo seu endereço IP.
A API funciona com base em um arquivo criado localmente. A tarefa da API é
essencialmente escrever mensagens neste arquivo. Tais modificações são enviadas para
o monitor através de sua conexão, refletindo tal operação no mapa da topologia virtual.
Existem três maneiras de utilizar a API do PlanetMon.
A primeira maneira é através de uma inclusão de biblioteca. No caso, a API foi
implementada em Python, por isso apenas programas nesta linguagem podem utilizar a
API desta maneira. Para sua utilização é necessário criar uma classe, e utilizar os métodos
definidos nela. A API se encarega de realizar quaisquer outras operações necessárias para
o funcionamento do gerador de mapas. Os métodos definidos são exibidas na tabela 2.
Outra maneira é utilizar a API é através um daemon que recebe mensagens via
sockets. Assim, qualquer linguagem que tenha suporte à sockets pode ser utilizada para
interagir com a API. Este daemon, escrito em Python, se comunica com a API através
do modo citado anteriormente. Como a utilização de sockets é especı́fica para linguagens
diferentes de Python, o formato das mensagens utilizadas é diferenciada. Este formato é
descrito na tabela 3, assim como os métodos que tais mensagens correpondem.
Ainda existe uma outra forma de utilização da API do PlanetMon: através de um
script automático de monitoração do estado das conexões da rede. Este script utiliza
o comando netstat para obter tais informações, e as repassa para a API. O netstat é o
comando padrão para mostrar informações sobre as comunicações de rede de um nodo
no Planet-Lab. Os métodos citados anteriormente permitem que o usuário tenha mais
controle sobre o que o gerador de topologias irá desenhar, o que não é o caso quando se
utiliza o monitor de conexões.
38
Anais
Tabela 3. API do PlanetMon via sockets.
Mensagem
ADD+node+
REM+node+
UPDATEATTRS+node+attributes
STARTWAVE++
ENDWAVE++
Método associado
addnode(node)
removenode(node)
updateattrs(node,attributes)
startwave()
endwave()
Ao utilizar o método updateattrs os atributos a serem atualizados devem ser passados no formato de um dicionário. As chaves aceitas são: mycolor (cor do nodo em si,
especificada em texto); color (cor da ligação entre os nodos, especificada em formato hexadecimal); opacity (opacidade da ligação entre os nodos, numérico entre 0 e 1) e weight
(grossura da ligação entre os nodos, numérico).
Não necessariamente é preciso que a API retorne informações apenas das conexões atuais dos nodos. Em termos de visualização, uma conexão é representada por
uma linha entre dois pontos, porém a semântica desta linha pode ser diferente para diferentes tipos de aplicações ou para cada estratégia de monitoramento da execução. Por
exemplo, pode-se definir que linhas azuis significam que um nodo está pedindo um arquivo para outro, e que linhas verdes signifiquem que o pedido foi aceito, entre outras
diversas possibilidades. Assim como as ligações entre os nodos, os nodos em si podem
ter suas cores alteradas, atribuindo cores para cada situação em que o nodo se encontra
(conectando, perguntando, recebendo, etc). A API é flexı́vel para permitir uma grande
possibilidade de experiências de uso.
É possı́vel utilizar a API do PlanetMon através do conceito de ondas. A figura
5 demonstra um exemplo desta utilização. Cada onda é equivalente a uma leitura de um
estado, composto por um conjunto de nodos. Na caixa “Estado 1” os nodos A,B,C,D,E
e F foram adicionados utilizando o método addnode. Estes nodos pertencem a uma onda
pois foram adicionados entre a chamada dos métodos startwave e endwave. A cada novo
nodo inserido uma mensagem é enviada para o gerador de mapas. Na caixa “Estado 2”,
correspondente a uma nova onda, os nodos A,D,E e F foram adicionados. No momento
em que o método endwave é chamado, automaticamente são geradas mensagens para
remover aqueles nodos que estavam em uma onda anterior e que não estão na onda atual.
Este comportamento é importante para aplicações que têm apenas informações sobre o
estado atual, dispensando o tratamento de caches para remoção de nodos. O script de
monitoração das conexões de rede utiliza este conceito.
4. Resultados Experimentais
Para validar o gerador de mapas de topologias virtuais foram executados experimentos
com duas aplicações: o Free Pastry, além de uma aplicação cliente-servidor que cria
uma topologia em forma de estrela. A subseção 4.1 apresenta os resultados obtidos com
a execução da aplicação que cria uma topologia em forma de estrela. Na subseção 4.2
o funcionamento e os resultados da execução do Free Pastry são mostrados. Todos os
outros componentes do arcabouço foram testados durante estes experimentos, incluindo
o deploy, a instalação e configuração do ambiente de execução. Utilizando o portal, tais
operações foram realizadas de uma maneira simples.
VII Workshop de Redes Dinâmicas e Sistemas P2P
39
Figura 5. Conceito de Ondas.
4.1. Validação do Monitor de Topologias Virtuais
A aplicação cliente-servidor desenvolvida para criar uma topologia em forma de estrela
foi escrita em Python e utiliza a API do PlanetMon incluı́da como um módulo. Um servidor aguarda conexões de candidatos a vértices da estrela, os quais enviam sua latitude e
longitude ao se conectar. Após receber cinco requisições, o servidor envia para os clientes sua posição na estrela e os endereços de cada nodo da topologia. Assim que o cliente
recebe estas informações, a API é utilizada para refletir a situação no mapa. Nodos que se
conectam ao servidor posteriormente à criação da estrela, são ignorados. O resultado da
execução deste experimento pode ser visto na figura 6. A execução ocorreu como esperado, visto que o mapa refletiu a topologia criada pela aplicação. Foram utilizados todos
os nodos disponı́veis no momento na região dos Estados Unidos da América.
Figura 6. Exemplo de execução da aplicação que gera uma topologia em forma
de estrela.
4.2. Pastry: Uma Plataforma P2P
O Pastry [Rowstron and Druschel 2001] é uma plataforma escalável para localização descentralizada de objetos e roteamento para sistemas P2P de larga escala. Uma rede P2P
pode ser caracterizada como um sistema distribuı́do no qual cada nodo tem iguais capacidades e responsabilidades. Caracterı́sticas das redes P2P incluem controle descentralizado, auto-organização, adaptação e escalabilidade. Aplicações P2P na Internet foram
popularizadas através de softwares de compartilhamento de arquivos.
Um sistema Pastry é uma rede overlay auto-organizável de nodos, onde cada nodo
faz roteamento de requisições de clientes e interage com instâncias locais de uma ou mais
40
Anais
aplicações. Cada nodo que faz parte da rede criada pelo Pastry recebe um nodeId. O
nodeId é usado para indicar a posição do nodo em um espaço de nodeIds circular. Este
identificador é atribuı́do randomicamente quando um nodo entra na rede. O Pastry assume
que este número aleatório é gerado de forma uniforme.
Assumindo uma rede de N nodos, o Pastry faz o roteamento entre eles em menos
de dlog2b N e (b é um parâmetro de execução com valor tı́pico 4) em operação normal.
Um nodo que executa o Pastry contém um neighborhood set, um leaf set e uma tabela
de roteamento. Um neighborhood set M contém os |M | nodeIds e o endereço IP dos
nodos que estão mais próximos (de acordo com a métrica de proximidade) do nodo local.
Este conjunto geralmente não é utilizado no processo de roteamento, porém ele é útil em
manter propriedades de localidade. Um leaf set L é um conjunto de nodos com os |L|/2
maiores nodeIds numericamente próximos, e os |L|/2 menores nodeIds numericamente
próximos, relativamente ao nodo atual. Este conjunto é utilizado durante o roteamento de
mensagens. Tamanhos tı́picos para |M | e |L| são 2b ou 2 × 2b .
Os experimentos realizados utilizando o Pastry não utilizam todas as caracterı́sticas e funcionalidades oferecidas pela plataforma. Uma pequena aplicação que envia
algumas mensagens foi utilizada. Isso se deve ao fato de que o foco deste trabalho é analisar a topologia criada a partir da execução de uma aplicação como o Pastry. Como critério
para definir se um nodo está conectado com outro é usado o leaf set de cada nodo do Pastry. Existe uma implementação do Pastry chamada Free Pastry [Free Pastry 2010], a qual
foi utilizada para testes em sua versão 2.1-alpha3.
Figura 7. Topologia criada pelo Free Pastry em nodos brasileiros e europeus.
Durante os experimentos envolvendo o Free Pastry a API do PlanetMon foi utilizada através de sockets, pois a plataforma utilizada é implementada em Java. Utilizando
VII Workshop de Redes Dinâmicas e Sistemas P2P
41
ondas, a cada segundo a leaf set de cada nodo é checada e as alterações são refletidas
no mapa. A figura 8 demostra os resultados desta execução em função do tempo. Foram utilizados 39 nodos em sites distindos da América do Norte. Após a execução do
experimento, o grafo correspondente à representação da topologia presente no mapa foi
extraı́do. Foi possı́vel constatar que os graus máximos obedecem o tamanho da leaf set
(por padrão, 24) e que a distância entre todos os nodos não passou de 2, o que mostra que
a propriedade de roteamento em dlog2b N e foi respeitada. A figura 7 apresenta o mesmo
experimento executado sobre 6 nodos localizados no Brasil e 25 nodos na Europa.
5. Conclusão
Excutar experimentos no Planet-Lab é uma tarefa que demanda muito esforço e tempo.
Desde o envio da aplicação até a coleta de dados, muitos problemas podem complicar o
processo. Contornar todos os problemas que podem ser encontrados é uma tarefa difı́cil.
Neste trabalho desenvolvemos um arcabouço para instalação, configuração e
execução de experimentos em um testbed, o Planet-Lab. Com a utilização do portal e
da API, é possı́vel executar um experimento e coletar seus resultados de uma maneira
simples e produtiva. A visualização das topologias criadas pelas aplicações é feita através
de um mapa global baseado no Planet-Lab.
Para validar o sistema foi criada uma aplicação que cria uma topologia em formato de estrela, e os resultados mostraram que o gerador de mapas foi executado como
esperado. Também foram realizados experimentos utilizando o Pastry, um substrato para
aplicações P2P, os quais possibilitaram a constatação das propriedades do sistema.
Trabalhos futuros podem incluir novas maneiras de visualizar aplicações em
execução, não necessariamente atreladas a um mapa. Expandir o uso da API do Google
Maps para utilizar melhor seus recursos poderia melhorar a visualização das topologias.
Além disso, suporte a injeção de falhas durante a execução de um experimento é outro
recurso útil para testar aplicações distribuı́das.
Referências
CoDeploy (2010). CoDeploy. Disponı́vel em: http://codeen.cs.princeton.
edu/codeploy/. Acesso em nov. 2010.
Free Pastry (2010). Free Pastry. Disponı́vel em: http://www.freepastry.org.
Acesso em nov. 2010.
Google Maps API (2010).
Google Maps API.
Disponı́vel em: http:
//code.google.com/intl/pt-BR/apis/maps/documentation/
javascript/v2/index.html. Acesso em nov. 2010.
Nixes (2010).
Nixes.
Disponı́vel em:
http://www.aqualab.cs.
northwestern.edu/nixes.html. Acesso em nov. 2010.
OpenSSH (2010). OpenSSH. Disponı́vel em: http://www.openssh.org/. Acesso
em nov. 2010.
ParallelSSH (2010). ParallelSSH. Disponı́vel em: http://www.theether.org/
pssh/. Acesso em nov. 2010.
42
Anais
Figura 8. Mapas gerados durante a execução do Free Pastry.
VII Workshop de Redes Dinâmicas e Sistemas P2P
43
Peterson, L., Anderson, T., Culler, D., and Roscoe, T. (2002). A blueprint for introducing
disruptive technology into the internet. HotNets-I 02.
Planet-Lab User Guide (2010). Planet-Lab User Guide. Disponı́vel em: http://www.
planet-lab.org/doc/guides/user. Acesso em nov. 2010.
PLCAPI (2010). Planet-Lab Central API documentation. Disponı́vel em: http://
www.planet-lab.org/doc/plc_api. Acesso em nov. 2010.
RFC Editor (2001). Canonical XML Version 1.0. Disponı́vel em: http://www.
rfc-editor.org/rfc/rfc3076.txt. Acesso em mar. 2010.
Ribas, B. C., Pasqualin, D. G., and Ruoso, V. K. (2009). SDI - Sistema de Diagnóstico
Instantâneo. Workshop de Software Livre.
Rowstron, A. and Druschel, P. (2001). Pastry: Scalable, distributed object location and
routing for large-scale peer-to-peer systems. IFIP/ACM International Conference on
Distributed Systems Platforms (Middleware), pages 329–350.
44
Anais
VII Workshop de Redes Dinâmicas e
Sistemas P2P
♦
Sessão Técnica 2
BitTorrent
VII Workshop de Redes Dinâmicas e Sistemas P2P
47
Eficiência de download em comunidades BitTorrent
Jaindson Santana , Nazareno Andrade
1
Laboratório de Sistemas Distribuídos
Universidade Federal de Campina Grande (UFCG)
Av. Aprígio Veloso, 882 – Bloco CO – Campina Grande – PB – Brazil
{jaindson, nazareno}@dsc.ufcg.edu.br
Resumo. Bittorrent é o sistema de compartilhamento de arquivos mais utilizado
atualmente. Uma prática comum entre os usuários deste sistema é a criação das
comunidades Bittorrent. Diversos estudos já mediram a velocidade de download dos usuários destas comunidades. No entanto, estes estudos não fornecem
evidências conclusivas sobre que características dos usuários e dos enxames
determinam os resultados observados. Trabalhos anteriores não examinaram
o efeito destas características, examinaram o efeito de apenas uma característica, ou usaram um espaço amostral pequeno de enxames e usuários. Este
artigo apresenta os resultados de um trabalho em andamento para analisar a
velocidade de download dos usuários de comunidades Bittorrent, utilizando um
espaço amostral significativamente maior que os trabalhos anteriores, e examinando o efeito de múltiplas características de enxames, usuários e comunidades
na velocidade de download.
Abstract. Nowdays, Bittorrent is the most used file sharing system. A common
behaviour among its users is the creation of Bittorrent communities. Some studies have already analyzed the download speed of these users. However, such
studies do not provide conclusive evidence about the characteristics of users
and swarms that determine the results obtained. Previous studies did not analyze the effect of these characteristics, they did analyze the effect but for only
one characteristic, or they used only a small sample of users and torrents. This
paper provides the results of an ongoing work that analyzes the download speed
of users of a Bittorrent community. The main differences between this work and
previous ones are: the size of the sample is significantly larger and multiple
characteristics of torrents, users and communities are used to study their effects
on download speed.
1. Introdução
Estudos de tráfego na Internet mostram que o BitTorrent (BT) é um dos sistemas de compartilhamento de arquivos mais utilizados e que é responsável também por parte significativa deste tráfego [Shalunov 2003] [Karagiannis et al. 2004b] [Karagiannis et al. 2004a]
[Parker 2005] [Champagne 2008] [Hendrik Schulze 2009]. O BT permite o compartilhamento de um arquivo por um grupo de usuários, formando o que se chama de enxame.
Um grupo de usuários que compartilham vários arquivos ao longo do tempo é denominado uma comunidade BT. Tipicamente, cada comunidade usa um site na Internet como
ponto de encontro de seus usuários e principal meio de comunicação ([Bitsoup.org 2009],
[etree.org 2009], [filelist.ro 2009], [easytree.org 2009], [alluvion.org 2009]).
48
Anais
Este artigo apresenta resultados de um trabalho em andamento para investigar que
características dos enxames e comunidades influenciam o download experimentado pelos
seus usuários. A velocidade de download é um dos aspectos fundamentais para definir a
qualidade de serviço num sistema de compartilhamento de arquivos. Contudo, analisar
o valor absoluto da velocidade de download não reflete necessariamente a qualidade de
serviço experimentada pelos usuários. Isso se deve ao fato da velocidade de download ser
limitada pela capacidade de download de cada usuário. Se dois usuários estão baixando
um arquivo a uma mesma velocidade, mas o primeiro está saturando a sua capacidade e
o segundo não, o primeiro experimenta a melhor qualidade de serviço que ele pode experimentar, enquanto o segundo não. Levando este problema em conta, este trabalho usa
como métrica a eficiência de download dos usuários, que consiste em medir a utilização
da banda do usuário ao longo do tempo que ele permaneceu online no sistema.
Trabalhos anteriores já se propuseram a fazer análise da velocidade se focando
em outros aspectos, como a influência de variações do protocolo BT. Outros realizaram
uma análise semelhante à que propomos, mas não utilizaram características do enxame ou
consideraram uma amostra reduzida de enxames. Este trabalho se propõe a realizar uma
análise explorando múltiplas características de enxames e utilizando um espaço amostral
maior de enxames e usuários.
Como resultado deste trabalho espera-se obter indícios de como as características
dos enxames e comunidades influenciam o download experimentado pelos usuários. A
partir disso seria possível explorar estas características de modo a melhorar a qualidade
de serviço oferecida aos usuários.
As contribuições deste artigo são: (i) proposição de um método para estudo da
velocidade de download dos usuários numa comunidade; e (ii) análise inicial de quais
características presentes nos usuários e enxames das comunidades influenciam na velocidade de download experimentada por seus usuários, utilizando uma amostra de usuários
e enxames significativamente maior que trabalhos anteriores. O artigo está organizado
da seguinte forma: na Seção 2 são apresentados os trabalhos relacionados; na Seção 3
é descrito o funcionamento do BT; na Seção 4 é abordada a metodologia utilizada neste
trabalho; nas Seções 5 e 6 são apresentados os resultados preliminares; por fim, na Seção
7 são descritas as conclusões e trabalhos futuros.
2. Trabalhos relacionados
Nesta seção serão abordados trabalhos que também fizeram uma análise da velocidade de
download dos usuários, destacando no que eles diferem do presente trabalho. Em poucas
palavras há trabalhos que exploram menos caracteristicas e enxames, enquanto outros não
tentam explicar os resultados a partir das características observadas.
Bellissimo et al. [Bellissimo et al. 2004] e Meulpolder et al. [Meulpolder et al. 2010]
expõem a velocidade de download em múltiplos enxames, mas não associam o comportamento observado a características dos enxames.
Andrade et al. [Andrade et al. 2005] e Locher et al. [Locher et al. 2006] realizaram trabalhos com constatações semelhantes. Em ambos os trabalhos foram observados o comportamento de usuários freerider1 e concluído que, em cenários onde a
1
No contexto de P2P, freerider é aquele usuário que nada contribui para o sistema ou que não contribui
VII Workshop de Redes Dinâmicas e Sistemas P2P
49
quantidade de seeders é grande, a velocidade de download experimentada pelos freeriders
se equipara ou até mesmo atinge valor maior que a velocidade obtida pelos que contribuem com o sistema. Nestes trabalhos tentou-se explicar a velocidade de download
obtida pelos usuários considerando apenas a característica deles serem freerider ou não.
Rasti et al. [Rasti and Rejaie 2007] observaram a distribuição da velocidade de
download dos usuários de três enxames, e buscaram explicar seu comportamento com
base em algumas características no nível de usuário e enxame. Como resultado foi visto
que nenhuma das características conseguiam explicar bem o comportamento observado.
Note, no entanto, que a quantidade de enxames utilizada é relativamente pequena comparada a amostra de enxames utilizada neste trabalho.
3. Funcionamento BT
Nesta seção será explicada a nomenclatura e o funcionamento do BT, conhecimentos
importantes para entender como é calculada a eficiência de download. Mais detalhes
sobre o funcionamento do BT podem ser obtidos no trabalho de Cohen [Cohen 2003].
Para uma melhor clareza na explicação, segue uma definição dos termos utilizados
[Legout et al. 2007]:
• Comunidade BT. Normas e mecanismos que determinam regras para o compartilhamento de conteúdo, além do conjunto de pessoas que se agrupam com objetivo
de compartilhar conteúdos de interesse em comum. Normalmente utilizam um
site com fórum como ponto de encontro para divulgação das normas e novos conteúdos. Geralmente estabelecem uma identificação forte2 para cada usuário da
comunidade.
• Usuário da comunidade BT. Uma pessoa que participa da comunidade BT.
• Peer. Representa um usuário da comunidade fazendo parte de um enxame.
• Enxame. Conjunto de todos os peers interessados em obter um mesmo conteúdo.
Desta forma os peers que participam de um mesmo enxame compartilham o conteúdo entre si.
• Sessão do peer. Período de tempo que o peer participa de forma ativa no enxame.
Ou seja, ele está distribuindo e/ou obtendo o conteúdo neste período. O peer pode
ter diversas sessões ao longo de sua participação no enxame.
• Tracker. Entidade centralizada responsável pelo serviço de descoberta de peers e
coleta de estatísticas relativas a participação e estado dos peers no enxame.
• Pedaços e Blocos. O arquivo sendo compartilhado é particionado em pedaços, que
por sua vez são particionadas novamente em blocos. O bloco é a menor unidade
de troca entre os peers. No entanto, os peers só podem trocar pedaços completos
entre si.
• Torrent. Consiste num arquivo de metadado contendo todas as informações necessárias para obter o arquivo: quantidade de pedaços, identificação única para
todos os pedaços (usado na verificação de integridade dos pedaços), e endereço
para contactar o tracker.
uma parcela significativa comparado com o quanto ele obteve do sistema.
2
Forma única de identificar um usuário da comunidade. Por meio dela é possível ter conhecimento da
contribuição do usuário na comunidade.
50
Anais
• Seeder. Peer que possui uma cópia completa do arquivo. Neste caso ele permanece no enxame participando de forma altruísta, ou seja, fazendo apenas upload
de blocos.
• Leecher. Peer que possui apenas uma cópia parcial do arquivo e participa do
enxame fazendo upload e download de blocos.
Quando um usuário quer compartilhar um arquivo ele deve primeiramente criar
o arquivo torrent contendo os metadados do arquivo em questão. Em seguida, deve
disponibilizá-lo para que outros usuários possam descobrí-lo e a partir disso entrar no
enxame. Inicialmente, apenas quem publicou o arquivo possui a cópia completa. Desta
forma, apenas ele envia parte do arquivo aos demais. À medida que os novos peers obtêm
partes do arquivo eles passam a compartilhar também com os demais, dividindo assim a
carga de distribuição entre todos os usuários do enxame.
4. Metodologia
O estudo do comportamento das comunidades foi feito com base em dados coletados
periodicamente contendo informações sobre o estado dos peers e dos enxames. Este conjunto de dados define o comportamento da comunidade, e com base nestas informações
é feita a reconstituição do comportamento dos usuários. A partir disto é possível saber,
por exemplo, as sessões que um usuário teve nos enxames que participou e as velocidades
de download experimentadas por ele nestas sessões. A Tabela 1 mostra a população total
de usuários, a quantidade de enxames e o período de observação da comunidade utilizada
neste trabalho.
Tabela 1. Características da comunidade
Comunidade
Bitsoup [Bitsoup.org 2009]
#Usuários
84026
#Enxames
13741
Período
29/04/2007 - 02/07/2007 (64 dias)
Conforme foi mencionado na Seção 1, para estudar a velocidade de download
dos usuários foi estabelecida a métrica eficiência de download. Esta métrica leva em
conta a quantidade de tempo que cada usuário ficou online enquanto leecher. Dado este
tempo, é analisada a razão entre a quantidade de dados de fato obtidos pelo usuário e
a quantidade de dados que poderia ter sido obtido caso o usuário experimentasse sua
velocidade máxima de download (capacidade de download do usuário).
O cálculo da eficiência utiliza portanto as seguintes informações: capacidade de
download dos usuários, velocidade de download dos usuários nas sessões que ele participou como leecher e a duração destas sessões. Além disto, a eficiência de uma comunidade pode ser analisada segundo três pontos de vista: considerando a eficiência de cada
usuário, de cada enxame ou da comunidade como um todo.
A eficiência de um usuário u, representada por M (u), é calculada da seguinte
VII Workshop de Redes Dinâmicas e Sistemas P2P
51
forma:
M (u) =
Du =
Du
Pu
X
Du,t
t∈T (u)
Du,t =
X
∆Is,u,t × Vs,u,t
s∈S(u,t)
Pu =
X
Pu,t
t∈T (u)
Pu,t =
X
∆Is,u,t × C(u)
s∈S( u,t)
Onde:
•
•
•
•
•
•
•
•
•
Du : download que o usuário u fez em todos os enxames;
Pu : download potencial de u em todos os enxames;
Du,t : download que o usuário u fez no enxame t;
Pu,t : download potencial do usuário u no enxame t;
∆Is,u,t : duração da sessão s do usuário u no enxame t;
Vs,u,t : velocidade de download do usuário u na sessão s do enxame t;
C(u): capacidade de download do usuário u;
T (u): conjunto de todos os enxames que u participou;
S(u, t): conjunto de todas as sessões do usuário u no enxame t.
Enquanto que a eficiência de um enxame t, representada por M (t), é calculada da
seguinte forma:
M (t) =
Dt =
Dt
Pt
X
Du,t
u∈U (t)
Pt =
X
Pu,t
u∈U (t)
Onde:
• Dt : download que os usuários fizeram no enxame t;
• Pt : download potencial dos usuários no enxame t;
• U (t): conjunto de todos os usuários no enxame t.
E a eficiência de uma comunidade c, representada por M (c), é calculada da seguinte
forma:
52
Anais
P
u∈U (c)
Du
u∈U (c)
Pu
M (c) = P
P
t∈T (c)
= P
t∈T (c)
Dt
Pt
Onde:
• U (c): conjunto de todos os usuários da comunidade c;
• T (c): conjunto de todos os enxames da comunidade c.
Note que no cálculo da eficiência de um usuário é levado em conta todos os enxames que ele participou, enquanto que no cálculo da eficiência de um enxame é levado em
conta todos os usuários que participaram dele. A eficiência da comunidade, por sua vez,
leva em consideração todos os usuários.
Com base nestas métricas é possível comparar comunidades entre si segundo os
três pontos de vista ou analisar comportamentos diferentes dentro de uma mesma comunidade.
Além disso, é possível examinar a relação entre os valores de eficiência obtidos e
as características dos usuários, enxames e das comunidades. Neste trabalho serão analisadas a relação com as seguintes características:
• população do enxame;
• tamanho do arquivo;
5. Estimativa da capacidade de download
Embora os dados coletados da comunidade possuam bastante informação sobre os usuários,
nele não consta suas capacidades de download. Conforme visto na Seção 4, esta é uma
informação necessária no cálculo da eficiência. Para mitigar este problema, em vez de
utilizar a capacidade real de download do usuário (informação desconhecida) é utilizada
uma estimativa dela.
Esta estimativa é calculada para cada usuário com base nas velocidade de download medidas entre coletas consecutivas. Esta velocidade consiste na razão entre a quantidade de download realizada em todos os enxames que o usuário estava participando no
período entre as duas coletas, e o tamanho da janela de tempo entre elas. O valor da
estimativa será o maior valor encontrado. A Figura 1 mostra a estimativa da capacidade
de download dos usuários da comunidade Bitsoup. A partir dela é possível observar que
80% dos usuários possuem capacidade de download máxima de 443KB/s enquanto 8%
possuem capacidade zero. Capacidade zero significa que os usuários não foram capazes
de realizar nenhum download enquanto estiveram online.
6. Análise da eficiência
Nesta seção serão abordados os resultados obtidos para eficiência dos usuários e enxames. Além disto, será mostrada uma análise inicial de como se comporta a eficiência
dos enxames em relação ao tamanho do arquivo sendo compartilhado e a população do
enxame.
VII Workshop de Redes Dinâmicas e Sistemas P2P
53
1.0
0.8
FDA
0.6
0.4
0.2
0.0
10^−2
10^0
10^2
10^4
Capacidade de download (KB/s)
Figura 1. Estimativa da capacidade de download dos usuários da comunidade
Bitsoup
A Figura 2 mostra o gráfico da função distribuição acumulada (FDA) da eficiência dos usuários e dos enxames. Os usuários com capacidade de download zero foram
removidos da análise, uma vez que sem esta informação não é possível calcular a eficiência. No geral, a partir da figura pode-se concluir que a eficiência dos usuários é melhor
que a eficiência dos enxames. Enquanto a mediana da eficiência dos usuários é de 7, 6%,
a mediana da eficiência dos enxames é de 1, 3%. No entanto, as duas métrica possuem
um valor muito baixo. No caso da eficiência dos usuários isto implica que a velocidade
média (contabilizando todo período que permaneceu online como leecher) de 50% dos
usuários é igual ou inferior a 7, 6% de sua capacidade de download.
A Figura 3 mostra o gráfico de dispersão entre a eficiência de download dos enxames e duas características: tamanho do arquivo sendo compartilhado e a população no
enxame. Rasti et al. [Rasti and Rejaie 2007] concluíram que não seria possível explicar
de forma satisfatória a velocidade de download dos usuários na amostra de enxames que
eles analisaram. A Figura 3 mostra que, nos dados analisados, tanto o tamanho do arquivo
quanto o tamanho da população possuem uma correlação positiva com a eficiência dos enxames (o coeficiente de correlação tau de Kendall na Figura 3(a) é de 0.49, enquanto na
Figura 3(b) é de 0.20). Isto é um indício de que o uso de uma amostra maior de usuários
e enxames pode fazer diferença. Note que em ambos é possível observar alguma tendência, sugerindo que há uma relação entre a eficiência dos enxames e as duas características
apresentadas.
Com base nestes resultados, os próximos passos do trabalho consistem em observar outras características que também poderiam explicar as eficiências e explorar técnicas
de análise multivariada a fim de observar a influência das características agindo em conjunto.
54
Anais
0.8
0.8
0.6
0.6
FDA
1.0
FDA
1.0
0.4
0.4
0.2
0.2
0.0
0.0
0.2
0.4
0.6
0.8
Eficiência de download
(a) Usuários
0.1
0.2
0.3
0.4
0.5
Eficiência de download
(b) Enxames
Figura 2. Gráfico da eficiência dos usuários e dos enxames
7. Conclusão e trabalhos futuros
Este trabalho propôs um método para analisar a velocidade de download de usuários de
comunidades BT que considera a influência da capacidade de download dos usuários,
resultando na criação das métricas de eficiência para comunidades, usuários e enxames.
Além disto, realizou uma análise inicial destas métricas numa comunidade. A partir de
uma análise inicial dos gráficos de dispersão entre a eficiência dos enxames e suas características foi possível observar indícios de que as características dos enxames afetam suas
eficiências. Os próximos passos deste trabalho são: uso de outras comunidades; e análise
de mais características e técnicas que possam explicar o comportamento observado com
base nas características, como uma análise multivariada.
Referências
alluvion.org (2009). alluvion.org tracker - promoting responsible use of bittorrent technology. Disponível em: http://alluvion.org/. Acesso em: Março de 2011.
Andrade, N., Mowbray, M., Lima, A., Wagner, G., and Ripeanu, M. (2005). Influences
on cooperation in bittorrent communities. In P2PECON ’05: Proceedings of the 2005
ACM SIGCOMM workshop on Economics of peer-to-peer systems, pages 111–115,
New York, NY, USA. ACM.
Bellissimo, A., Shenoy, P., and Levine, B. N. (2004). Exploring the use of BitTorrent as the basis for a large trace repository. Technical Report 04-41, Department of Computer Science, University of Massachusetts. Disponível em:
http://lass.cs.umass.edu/ lass/papers/pdf/TR04-41.pdf. Acesso em: Março de 2011.
Bitsoup.org (2009). Bitsoup.org the best site for your torrent appetite. Disponível em:
http://www.bitsoup.org/. Acesso em: Março de 2011.
Champagne, B. (2008). Disponível em: http://www.bigchampagne.com/. Acesso em:
Março de 2011.
10^−4
10^−6
Eficiência de download
10^−2
10^0
55
10^−10
10^−8
10^−2
10^−4
10^−6
10^−8
10^−10
Eficiência de download
10^0
VII Workshop de Redes Dinâmicas e Sistemas P2P
10^−4
10^−2
10^0
10^2
Tamanho do arquivo (MB)
(a) Tamanho do arquivo (MB)
10^4
10^0
10^1
10^2
10^3
10^4
População
(b) População
Figura 3. Gráfico de dispersão entre a eficiência de download dos enxames e
duas características
Cohen, B. (2003). Incentives build robustness in bittorrent. Technical report, bittorrent.org. Disponível em: http://www.bittorrent.org/bittorrentecon.pdf. Acesso em:
Março de 2011.
easytree.org (2009).
www.dimeadozen.org - eztorrent v0.6.3.
http://www.dimeadozen.org/. Acesso em: Março de 2011.
Disponível em:
etree.org (2009). bt.etree.org - community tracker. Disponível em: http://bt.etree.org/.
Acesso em: Março de 2011.
filelist.ro (2009). filelist.ro. Disponível em: http://filelist.ro/. Acesso em: Março de 2011.
Hendrik Schulze, K. M. (2009). The impact of p2p file sharing, voice over ip, instant
messaging, one-click hosting and media streaming on the internet. Disponível em:
http://www.ipoque.com/resources/internet-studies/internet-study-2008_2009. Acesso
em: Março de 2011.
Karagiannis, T., Broido, A., Brownlee, N., Claffy, K. C., and Faloutsos, M. (2004a). Is
p2p dying or just hiding? In Proceedings of the GLOBECOM 2004 Conference, Dallas,
Texas. IEEE Computer Society Press.
Karagiannis, T., Broido, A., Faloutsos, M., and Claffy, K. (2004b). Transport layer identification of p2p traffic. In IMC ’04: Proceedings of the 4th ACM SIGCOMM conference
on Internet measurement, pages 121–134, New York, NY, USA. ACM.
Legout, A., Liogkas, N., Kohler, E., and Zhang, L. (2007). Clustering and sharing incentives in bittorrent systems. In SIGMETRICS ’07: Proceedings of the 2007 ACM
SIGMETRICS international conference on Measurement and modeling of computer
systems, pages 301–312, New York, NY, USA. ACM.
Locher, T., Moor, P., Schmid, S., and Wattenhofer, R. (2006). Free riding in bittorrent
is cheap. In Fifth Workshop on Hot Topics in Networks (HotNets-V), Irvine, CA,
56
Anais
US. Disponível em: http://www.sigcomm.org/HotNets-V/program.html. Acesso em:
Março de 2011.
Meulpolder, M., D’Acunto, L., Capotă, M., Wojciechowski, M., Pouwelse, J. A., Epema,
D. H. J., and Sips, H. J. (2010). Public and private bittorrent communities: a measurement study. In Proceedings of the 9th international conference on Peer-to-peer
systems, IPTPS’10, pages 10–10, Berkeley, CA, USA. USENIX Association.
Parker, A. (2005). The true picture of peer-to-peer file-sharing, panel presentation.
Disponível em: http://2005.iwcw.org/slides/Panel/Andrewwcw2005.zip. Acesso em:
Março de 2011.
Rasti, A. and Rejaie, R. (2007). Understanding peer-level performance in bittorrent: A
measurement study. In Proceedings of 16th International Conference on Computer
Communications and Networks, pages 109–114.
Shalunov, S. (2003).
Internet2 netflow weekly reports.
Disponível em:
http://www.internet2.edu/presentations/fall-03/20031013-NetFlow-Shalunov.pdf.
Acesso em: Março de 2011.
VII Workshop de Redes Dinâmicas e Sistemas P2P
57
BitPS: um esquema de precificação para sistemas par-a-par
baseados em BitTorrent.
Gabriel de Godoy Correa e Castro1 , Humberto T. Marques-Neto1
1
Departamento de Ciência da Computação
Pontifícia Universidade Católica de Minas Gerais (PUC Minas)
30.535-901 - Belo Horizonte - Brasil
[email protected], [email protected]
Abstract. Due to peer-to-peer (P2P) architecture and its popularity, it’s expected that users seek to maximize their use over the use of other users. A kind
of these users is known as free rider, that don’t share their resources with the
system in the same proportion in which he consumes it, generating a imbalance
in the system. So this work presents a pricing scheme, named BitTorrent Pricing
Scheme (BitPS), which can foster the collaboration among users of one P2P system based on BitTorrent private tracker. In BitPS, the virtual price is variable
and depends on system workload. The usage of BitPS can reduce the problem
of free-riding and make this peer-to-peer system fairer than its default usage.
Resumo. Devido à arquitetura e popularidade dos sistemas par-a-par (P2P),
é esperado que os usuários tentem maximizar seu uso em detrimento dos outros usuários. Um tipo desses usuários é conhecido como free-rider, que não
compartilha seus recursos no sistema na mesma proporção em que consome, gerando um desequilíbrio no sistema. Assim este trabalho apresenta um esquema
de precificação denominado BitTorrent Pricing Scheme (BitPS), que pode promover a colaboração entre usuários do sistema P2P BitTorrent usando trackers
privados. Com esse esquema, usuários deverão pagar um preço virtual proporcional ao seu uso do sistema. O uso do BitPS pode reduzir o problema de
free-riding e tornar o BitTorrent um pouco mais justo que o uso normal.
1. Introdução
Estudos mostram que sistemas par-a-par (P2P) são responsáveis por mais de 60% da
carga de trabalho da Internet, o que pode corresponder a 3,3 exabytes de tráfego mensal [Ipoque 2009, Cisco 2010]. Algumas aplicações, como os softwares de mensagem eletrônica (ex.: Windows Live Messenger e Skype) e computação distribuída (ex.:
SETI@home e Folding@home) são sistemas P2P típicos. Além disso, o maior consumo de banda provém dos sistemas par-a-par de trocas de arquivo, como BitTorrent, e-Mule e Gnutella [Ipoque 2009]. Considerando a alta carga de trabalho dos sistemas P2P de troca de arquivo, estudos sobre esses sistemas são feitos para melhorar sua eficiência e tentar torná-los mais justos do ponto de vista de seus usuários
[Sirivianos et al. 2007, Feldman and Chuang 2005, Garcia and Hoepman 2004].
Sistemas P2P dependem da disponibilidade de seus usuários compartilhando seus
recursos com outros da rede, geralmente, formada por este tipo de sistema. Contudo,
58
Anais
alguns usuários não agem de maneira colaborativa, isto é, eles não compartilham seus recursos na mesma proporção com que eles utilizam os recursos do sistema, acarretando em
um desquilibrio de recursos no sistema. Este problema é denominado, na literatura, como
free-riding. Mecanismos que promovem a colaboração entre usuários P2P podem evitar
esse tipo de comportamento anormal, ou seja, podem inibir a ação free-rider. Alguns
desses mecanismos possuem características similares a modelos estudados pela Teoria
dos Jogos [Fudenberg and Tirole 1991], que são largamente utilizados na economia para
entender o relacionamento entre dois usuários que trocam bens e serviços. O tit-for-tat1
[Axelrod 1985] é um exemplo de conceito da Teoria dos Jogos aplicada em sistemas P2P
(ex.: BitTorrent [Cohen 2003]). Seguindo o princípio de “retribuição equivalente”, usuários P2P devem prover uma determinada quantidade de recursos, dependendo do quanto
eles obtiveram do sistema.
Outra forma de evitar um uso injusto do sistema P2P é a adoção de esquemas de
precificação. O uso de esquemas de precificação em sistemas par-a-par pode ser feito de
duas formas: explícita ou implícita [Mansfield and Yohe 2000]. A precificação explícita
se refere diretamente ao uso monetário de dinheiro real ou virtual. Por outro lado, a precificação implícita envolve bens intangíveis como, por exemplo, a reputação dos usuários.
Mecanismos de reputação consideram dados do histórico de transações do usuário para
determinar sua confiabilidade e permitir que outros usuários decidam se obterão recursos
daquele usuário. Existem algumas propostas de precificação em sistemas P2P que usam
protocolos de micropagamentos [Yu et al. 2004] ou que usam um sistema de pagamento
para controlar o quanto um usuário pode cobrar por um recurso [Liang and Shi 2005].
Esses e outros exemplos serão discutidos na sessão 2.4.
Este trabalho apresenta um esquema de precificação capaz de encorajar a colaboração entre usuários de trackers privados de BitTorrent. O esquema de precificação
proposto, aqui chamado BitTorrent Pricing Scheme (BitPS), é uma adaptação do Broadband Pricing Scheme (BPS) proposto em [Marques-Neto et al. 2007] e estendido em
[Marques-Neto et al. 2010]. Ambos, BPS e BitPS, são detalhados nas seções 2.2 e 3,
respectivamente. O BitPS pode ser utilizado para complementar o mecanismo de reputação já utilizado no BitTorrent, que determina a confiabilidade do usuário baseado no
seu histórico de compartilhamento de recursos. Então, o BitPS pode melhorar a eficiência do BitTorrent, oferecendo um incentivo visível para a contribuição de recursos com
o sistema P2P, atenuando o problema de free-riding. Em resumo, o objetivo desse trabalho é apresentar uma nova forma de encorajar a colaboração em trackers privados de
BitTorrent, tornando-o uma implementação mais justa que a normal, do ponto de vista
tanto dos usuários quanto do sistema. Isso é possível, uma vez que o BitPS incentiva o
usuário a agir como um usuário normal dentro do sistema que utiliza um tracker privado
de BitTorrent.
Para demonstrar as melhorias realizáveis com o uso do esquema de precificação proposto, foi utilizado o BitTorrent Simulator feito pela Microsoft Research
[Research 2005]. Esse simulador foi adaptado para utilizar o BitPS e o Dandelion
[Sirivianos et al. 2007], dada sua proximidade do BitTorrent. O Dandelion é melhor explicado na Seção 2.4. Os resultados da simulação, com e sem o uso do novo esquema
de precificação, e suas comparações com a implementação do Dandelion são analisadas
1
A regra do “Olho por olho”
VII Workshop de Redes Dinâmicas e Sistemas P2P
59
na Seção 4. Os resultados, também discutidos na Seção 4, mostram que o BitPS torna
o sistema mais justo e homogêneo. Além disso, a Seção 2 apresenta e discute trabalhos
relacionados. Finalmente, na Seção 5, as conclusões desse trabalho são apresentadas.
2. Contextualização e trabalhos relacionados
2.1. Algumas Contribuições da Economia para Sistemas P2P
A primeira contribuição da economia para sistemas P2P é o Equilíbrio de Nash, frequentemente mencionado na literatura de Teoria dos Jogos [Fudenberg and Tirole 1991]. O
Equilíbrio de Nash pode auxiliar na explicação de como um sistema P2P pode se tornar
mais estável. De acordo com a Teoria dos Jogos, nenhum dos participantes do jogo possui
algo a ganhar mudando suas estratégias, ou seja, o equilíbrio ocorre quando um vendedor não consegue ganhar mais e um comprador não consegue barganhar mais. Sistemas
P2P devem monitorar e entender o comportamento do usuário para atingir esse tipo de
equilíbrio.
Outro conceito de Teoria dos Jogos que pode ser utilizado nos sistemas par-a-par
é o Dilema do Prisioneiro. Neste dilema, dois prisioneiros têm a oportunidade de terem suas sentenças diminuídas se cooperarem em delatar o outro. Entretanto, se ambos
escolherem delatar o outro, ambas as sentenças são aumentadas e, se nenhum delatar,
eles mantêm a sentença já definida [Fudenberg and Tirole 1991]. Isso gera uma matriz de
recompensa que pode ser aplicada a sistemas P2P. Em outras palavras, se ninguém contribui, ninguém consegue o recurso. A aplicação do Dilema do prisioneiro em sistemas
P2P foi estudada e analisada por [Lai et al. 2003] e [Feldman et al. 2004].
Na economia, precificação é o processo de determinar o que um produtor ou provedor receberá por um produto ou serviço oferecido. Esse retorno deve ser suficientemente positivo para permitir que esse produtor ou provedor permaneça atuando no mercado. O estabelecimento do preço de um produto ou serviço considera a combinação de
variáveis internas como custos e margem de lucro, e variáveis externas como a disponibilidade do produto ou serviço [Mansfield and Yohe 2000]. Aplicando um esquema de
precificação em sistemas P2P, é possível interferir no controle da a carga de trabalho de
alguns recursos.
2.2. BroadBand Pricing Scheme (BPS)
O Broadband Pricing Scheme (BPS) foi proposto para prover benefícios tanto para os
usuários quanto para os provedores de acesso a Internet (ISP na sigla em inglês pata
Internet Service Provider) de banda larga [Marques-Neto et al. 2007]. No BPS, o uso da
rede possui um preço para cada tempo do dia, que é calculado proporcional ao histórico
da carga de trabalho dos servidores do ISP em um período específico. Como no BPS cada
byte trafegado é cobrado dependendo do preço da hora, seu uso pode acarretar em uma
melhor distribuição do uso da Internet durante as horas do dia.
No BPS, cada usuário possui uma quantidade de créditos, chamado budget, suficiente para usar a Internet de acordo com o limite de sua assinatura. Como o preço de
uso é diferente para cada hora do dia, o usuário pode adiar ações que demandam mais
recursos da rede, como bandwidth, por períodos em que o preço é menor. O BPS estima
a quantidade de budget que o usuário precisará até a próxima recarga do budget baseado
no seu histórico de consumo.
60
Anais
Em resumo, com o BPS existe um incentivo para que os usuários façam um uso
da Internet de banda larga em horas, historicamente, com cargas de trabalho baixa na
infraestrutura. Eventualmente, a carga de trabalho do servidor poderia ser distribuída
pelas horas do dia, permitindo que o ISP otimize o uso de seus recursos e ofereça mais
assinaturas de seus serviços para novos usuários. Considerando que usuários de sistemas
P2P, apesar de não serem maioria, correspondem por mais de 50% do uso do serviço,
o BPS é capaz de contribuir com um uso da Internet mais justo do ponto de vista dos
usuários e rentável para o ISP [Marques-Neto et al. 2007].
2.3. BitTorrent
Em um sistema par-a-par os usuários podem agir tanto como clientes quanto como servidores de um recurso. Eles provêm novas informações, ou replicam, ou entregam informações geradas por outro usuário da rede [Parameswaran et al. 2001]. O envolvimento dos
usuários como servidores de informação garante a replicação do conteúdo de uma forma
mais econômica, tornando desnecessário o uso de servidores robustos para prover a informação para muitos usuários [Karagiannis et al. 2005]. No sistema par-a-par BitTorrent
[Cohen 2003], arquivos (recursos) são trocados diretamente entre usuários e dados dos
nós conectados são organizados por uma unidade centralizadora conhecida como tracker.
O tracker pode ser público (i.e.: legaltorrents e mininova) ou privados.
A construção de um tracker de BitTorrent é, em geral, equivalente com a de
uma website. Ele pode ser feito com uma linguagem como PHP e um gerenciador de
banco de dados como MySQL. Além disso, também é possível sua alteração, restringindo
acesso para alguns clientes ou para alguns IPs específicos, permitindo a implementação
de incentivos ou realizando a manutenção da proporção de troca entre os usuários. Algumas implementações de tracker público e privado do BitTorrent são apresentadas em
[Danomac 2006] e [TBsource and YeOK 2011].
Para facilitar a troca de arquivos entre usuários de BitTorrent, eles são divididos
em pequenos pedaços, de forma que o arquivo pode ser recuperado fora da ordem, não
dependendo somente de um único usuário, que pode não possuir recursos suficientes para
responder a um grupo de demandas. No BitTorrent existem duas categorias de usuários:
seeders e leechers. Os seeders são aqueles que só realizam o upload do arquivo. Enquanto
que os leechers realizam upload e download do arquivo simultaneamente [Cohen 2003].
Apesar do protocolo do BitTorrent ser considerado tit-for-tat, não há incentivo explícito
para os seeders [Locher et al. 2006] e [Piatek et al. 2007]
O BitTorrent utiliza de um mecanismo de reputação em que usuários que realizam
mais transferências simultaneamente, que possuem velocidade de transferência baixa ou
que possuem restrições, recebem menor prioridade para utilizar o sistema. Com esse
mecanismo, é esperado que todos os usuários ofereçam recursos aos outros. Contudo
isso geralmente não ocorre e torna o sistema dependente de usuários altruístas, ou seja,
aqueles contribuem mais que requerem.
Assim, em trackers públicos, os seeders existem por puro altruísmo, isto é, eles
contribuem com recursos sem a intenção de receber algo em troca. No entanto, em trackers privados normalmente é necessário manter um equilíbrio entre o que se consegue e
o que se contribui [Salmon et al. 2008], podendo o usuário ter sua conta revogada e, portanto, ficar impossibilitado de realizar downloads. Mas, geralmente, não são oferecidos
VII Workshop de Redes Dinâmicas e Sistemas P2P
61
outros incentivos para que o usuário colabore com o sistema, o que poderia permitir que
a rede pudesse ficar ativa por mais tempo.
2.4. Trabalhos relacionados
O Dandelion é um sistema de troca de arquivos P2P similar ao BitTorrent
[Sirivianos et al. 2007]. Ele também divide os arquivos em pedaços para acelerar a transmissão. A diferença entre o BitTorrent e o Dandelion é que, no segundo, existe um banco
de crédito. No Dandelion, cada transmissão de arquivo custa uma determinada quantia de
créditos. Quando o usuário para quem é transferido não consegue oferecer mais recursos,
a quantia que ele paga pela transmissão do arquivo é transferida para o usuário de quem
ele requisitou o pedaço do arquivo. Em outras palavras, o Dandelion utiliza um híbrido de
tit-for-tat e mecanismo de micropagamento. Ele também utiliza um sistema criptográfico
para prevenir ataques ao sistema durante a validação de uma transferência. O Dandelion
será simulado e analisado na Seção 4.
Usando um esquema de precificação similar, mas propondo um mecanismo de
micropagamentos para sistemas P2P, o trabalho apresentado por [Yu et al. 2004] utiliza
um preço que depende da qualidade do serviço e da relação entre oferta e demanda da
informação buscada no sistema. O preço da informação é estimado periodicamente, dependendo de quantos usuários receberam recursos de volta no passado, o que o torna
dinâmico.
O sistema proposto em [Wongrujira and Seneviratne 2005] é um mecanismo de
precificação para sistemas P2P baseado em um mercado virtual no lugar de micropagamentos. Esse sistema utiliza um mecanismo de incentivo de troca de tokens, em que os
próprios usuários estabelecem seu preço para compartilhar seus recursos. O sistema considera regras de mercado e da economia para justificar o usuário poder estabelecer seu
próprio preço, uma vez que ele não colocará seu preço muito alto já que ninguém requererá seu recurso. Além disso, esse trabalho também utiliza um mecanismo de reputação,
dando prioridade para transferências de usuários com reputação alta.
O trabalho apresentado por [Feldman and Chuang 2005] realiza um estudo do
free-riding em que usuários não contribuem com recursos para o sistema e analisa algumas maneiras de atenuar ou eliminar tais problemas. Nesse trabalho os autores propõem
pagamentos monetários como incentivos para a contribuição dos usuários. Eles também
analisam os problemas e dificuldades da necessidade de uma unidade centralizadora confiável, o que pode aumentar o custo do sistema a um ponto impraticável. Outro ponto
discutido é sobre a reciprocidade, que seria o tit-for-tat implementado de uma maneira
mais robusta que no BitTorrent. Nessa proposta, um dos problemas dessa escolha é como
tratar um novo usuário que ainda não foi exposto pelo sistema. Como o novo usuário
ainda não contribuiu nada, ele pode ser impedido de realizar requisições.
Já em [Xia and Muppala 2010] é apresentado um método para atenuar o freeriding no BitTorrent e, assim, tornar o sistema mais justo. Esse método consiste em um
nó manter a reputação de seus vizinhos e divulgar essas reputações para que seja possível
a localização e isolamento de usuários considerados free-riders, impedindo-os de realizar
downloads. Cada peer é inicialmente tratado como um possível free-rider portanto, antes
de ser reconhecido e tratado como um usuário regular do sistema, recebe o tratamento de
um free-rider, o que pode prejudicar novos usuários.
62
Anais
Todas essas propostas de esquemas de precificação requerem a criação de um novo
e específico sistema P2P, portanto, não podem ser aplicados diretamente a uma base de
usuários já estabelecida como a do BitTorrent. Já o BitPS, o esquema de precificação
proposto nesse trabalho (vide Seção 3), utiliza a arquitetura existente do BitTorrent, que
já possui uma base de usuários estabelecida de mais de 160 milhões [BitTorrent 2011].
Desta forma, proposta apresentada neste trabalho pode utilizar o mesmo ambiente utilizado pelo BitTorrent com alguns ajustes nas configurações padrão e simples implementações. Apesar de ser possível a utilização dos programas atuais de BitTorrent, há a necessidade de configurá-los para que possam tirar proveito máximo do BitPS. A vantagem do
BitPS comparado com as outras propostas é que ele não requer a criação de um programa
completamente novo.
3. BitTorrent Pricing Scheme
3.1. Variáveis do BitPS
As variáveis usadas no BitPS são descritas na Tabela 1. Cada uma delas pode ser modificada pelo administrador do sistema sendo que algumas delas, como os limiares inferior
e superior, devem ser anunciadas pelo tracker. O budget é a quantidade de crédito que o
usuário pode gastar realizando downloads dos arquivos e é atualizado após cada processo
de transferência. Os três níveis de preço definem a quantidade que o usuário cobra pela
transferência de um byte. Esses níveis são definidos pelo administrador. Finalmente, os
dois limiares também são configurados pelo administrador e definem qual o preço cobrado
pelo usuário no momento da transferência. Cada limiar é uma porcentagem da capacidade
do que o sistema do usuário pode realizar. A variável onSale serve para, caso o usuário
não possua budget possa realizar uma transmissão, ou seja, diminuir seu preço, assim se
tornar mais competitivo no sistema.
Tabela 1. Variáveis Constituintes do BitPS
Nome
Budget
Preço Baixo
Preço Médio
Preço Alto
Limiar Inferior
Limiar Superior
onSale
Decrição
A quantidade de crédito do usuário, que é usado em
cada processo de transferência de arquivo.
A quantidade de crédito do usuário que é cobrada
pela transferência de um byte quando ele
está abaixo do Limiar Inferior.
A quantidade de crédito do usuário que é cobrada
pela transferência de um byte quando ele
está entre o Limiar Inferior e o Limiar Superior.
A quantidade de crédito do usuário que é cobrada
pela transferência de um byte quando ele
está acima do Limiar Superior.
O limite inferior de carga do sistema do usuário.
O limite superior de carga do sistema do usuário.
O percentual pela qual o usuário irá reduzir seu
preço.
VII Workshop de Redes Dinâmicas e Sistemas P2P
63
3.2. Visão geral do BitPS
O BitTorrent Pricing Scheme (BitPS) pode incentivar a colaboração entre usuários de BitTorrent o que poderia torná-lo mais justo para os usuários, fornecendo um incentivo às
suas contribuições para o sistema. Como esse esquema também torna difícil o acesso para
usuários que não contribuem, espera-se que ele iniba a presença de usuários free-riders
no sistema. O BitPS funciona com a estrutura de um tracker privado, o qual requer registro. Isso não permite que o usuário crie diversas contas para tirar proveito do sistema,
mantendo o uso do sistema equânime. Além disso, para não permitir que o usuário registre diversas vezes simultaneamente, o tracker pode utilizar métodos de verificação de
identidade como, por exemplo, o registro de um endereço de email. Ademais, também é
possível bloquear o registro por endereços de IP iguais.
Como ocorre no BPS, no BitPS cada usuário possui uma quantidade de créditos
virtuais, denominado budget. Quando um novo usuário é criado, o tracker lhe atribui
uma quantia de budget para que ele possa iniciar seu uso do sistema. O budget inicial é
calculado utilizando um fator que é a média dos tamanhos dos arquivos disponíveis no
sistema e uma quantia de créditos fixa estipulada na configuração do tracker. A cada
transmissão de arquivos (recursos do sistema) entre usuários, uma quantidade de budget é
transferida de um usuário para o outro como forma de pagamento pelo recurso adquirido.
Essa quantidade é dependente de quantos bytes foram transferidos e qual o preço utilizado
pelo transmissor no momento.
Existem três níveis de preço cobrado pela transmissão de um byte. Eles podem
ser definidos pelo administrador do tracker durante a configuração do sistema e assumem
valores entre zero e dois. Cada nível corresponde a um tipo de utilização do sistema: alta,
média e baixa. O preço cobrado do usuário pelo uso do sistema depende do uso de sua
capacidade de transmissão, de forma a manter o uso do seu sistema balanceado. Como o
preço é cobrado em função do número de bytes requisitados, o valor cobrado é a quantidade de bytes requeridos multiplicados pelo preço cobrado pelo usuário transmissor, na
hora dessa transmissão.
O tracker privado (controlador do budget do usuário) é responsável por executar as
transferências de budget entre os usuários ao fim de uma transmissão de arquivo. Apesar
de que isso pode permitir o free-riding, é possível barrar no tracker clientes desconhecidos
ou que são reconhecidamente maliciosos. Ademais, também é possível realizar um teste
periódico de verificação para, caso um usuário realize uma transmissão de um recurso,
mas não informe o fim de uma transmissão, ser caracterizado como um cliente free-rider.
Assim, o cliente de BitTorrent padrão deve ser alterado de forma que ele informe o fim de
uma transmissão para o tracker privado.
Como usuário deve possuir budget suficiente para poder requisitar um pedaço de
recurso, é possível a existência de usuários incapacitados de terminar uma transmissão.
Esse problema é diminuído pela possibilidade de um usuário reduzir seu preço, utilizando
a variável onSale, quando não possuir budget suficiente e, assim, se tornar um usuário
competitivo no sistema. Mas, se o usuário do BitPS ainda não puder finalizar a transmissão, pode realizar uma recarga do budget no tracker. Essa recarga pode ser realizada se,
após um período de tempo, o usuário possuir budget inferior ao valor inicial do sistema
e possuir uma boa reputação, determinado por seu histórico de contribuição com outros
usuários do sistema.
64
Anais
Para manter o sistema balanceado, no BitPS, os usuários requisitam o pedaço do
arquivo desejado do usuário com o qual está conectado que possuir o menor preço do
recurso. Apesar disso acrescentar um overhead na transmissão, pode também aumentar
a concorrência e tornar o sistema mais justo. Esse comportamento pode distribuir as
requisições de pedaços de arquivo, uma vez que, o preço dos recursos dos usuários é
ajustado de acordo com o uso de sua capacidade de transmissão. Os preços dos usuários
conectados são anunciados periodicamente para todos os usuários pelo tracker e cada
usuário os mantém armazenado em seus clientes.
3.3. Descrição da transferência de um arquivo
A Figura 1 mostra o processo de transferência de um arquivo no BitPS. A principal diferença para o BitTorrent comum é a informação trocada entre o tracker e o cliente. Considerando que o Cliente A possui o arquivo torrent, que tem as informações do recurso
desejado, ele requisita as informações dos peers (seeders e leechers) para o tracker. O
tracker retorna a lista com os peers disponíveis realizando download e upload do arquivo
desejado e todas as informações necessárias, como endereço e preço dos clientes, para
que o Cliente A também o faça. Então, o Cliente A localiza o Cliente B, usando os mecanismos de BitTorrent, e requisita a lista de pedaços de arquivos disponíveis. O Cliente
B envia a lista de pedaços de arquivos disponíveis, o Cliente A requisita o pedaço que
necessita e o Cliente B o transfere para o Cliente A. No fim da transferência o Cliente A
comunica ao tracker para que ele atualize a informação do budget dos clientes.
000000000
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
3, 5
4, 6
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 000 000 000 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000000000000000000000000
1,
7
1. Pedido: Informação de um Torrent
2. Resposta: Lista dos peers
3. Pedido: Lista de pedaços
4. Resposta: Anúncio dos pedaços
5. Pedido: Pedaço do arquivo
6. Transferência de um pedaço
7. Atualização de Informações .
000 000 000 000
Cliente A
2
Cliente B
000 000 000
Tracker BitPS
Figura 1. Processo de Transferência de um arquivo no BitPS.
3.4. Compatibilidade e Segurança
Para permitir o uso de clientes atuais de BitTorrent, aproveitando dessa base de usuários,
o BitPS possui um método compatível com sua utilização. Esse método é ativado pelo
tracker de forma automática, não sendo necessária alteração de configuração do usuário
ou do administrador do sistema.
Se um usuário conectar ao sistema utilizando um cliente não adaptado ao BitPS,
o sistema pode funcionar de maneira similar a um tracker privado de BitTorrent. Mas, o
budget será utilizado realizando as operações de pagamento nos intervalos de atualização
do BitTorrent com um preço fixo. Se o usuário não possuir mais budget para realizar
a transferência do arquivo, o tracker, responsável por indicar ao cliente a localização
de outros usuários, pode não indicar outros seeders, indicando somente leechers. Isto
VII Workshop de Redes Dinâmicas e Sistemas P2P
65
permite que o usuário ainda realize uploads e possa recuperar budget, mas, minimizando
as chances dele contrair mais dívidas.
Como um tracker privado cria um sistema fechado, sendo necessário registro,
ataques de replicação de usuários podem ser dificultados. Aproveitando as vantagens
do sistema BitTorrent, é possível diminuir ataques de clientes maliciosos. Também é
possível requerer que as mensagens de comunicação de fim de troca de informação, as
quais geram transferência de budget entre usuários, sejam assinadas digitalmente com
uma chave distribuída aos clientes pelo tracker no início da sessão de comunicação. Essa
assinatura deve ser acompanhada do tempo em que a transmissão foi realizada, sendo esse
tempo de ambos participantes da transmissão e cada um encriptado com sua respectiva
chave de sessão. Dessa forma é possível tornar a rede mais segura, impedindo ataques de
repetição, por exemplo.
4. Simulações e Resultados
As simulações foram realizadas com uma versão adaptada do BitTorrent Simulator da
Microsoft Research [Research 2005]. Esse simulador foi escolhido por recriar exatamente
as transferências entre usuários P2P. Outras opções, como a apresentada em [Eger 2007],
não foram escolhidas devido a seus altos níveis de complexidade para alterar e adaptar
ao contexto necessário. A adaptação do simulador da Microsoft Research foi feita para
que as transferências realizadas entre os participantes da rede considerassem o budget e
o preço como descritos na Seção 3, adicionando, portanto, o mecanismo do BitPS no
BitTorrent. O Dandelion, descrito na Seção 2.4 também foi implementado no simulador.
As simulações foram realizadas utilizando os mesmos parâmetros utilizados em
[Bharambe et al. 2006] que também utilizam o mesmo simulador da Microsoft Research.
Considera-se por simulação, a transmissão de um arquivo de 100MB em uma rede de
aproximadamente 1000 usuários. Foram realizadas 20 simulações, alterando em cada uma
o tempo que o sistema permanecia funcionando e o tempo de chegada entre cada usuário,
permanecendo com o mesmo número de usuários. O primeiro tempo de simulação é de
uma hora, e para cada simulação é acrescido uma hora. Ou seja, na ultima simulação 1000
usuários realizaram a transmissão de um arquivo de 100MB por um período de 20 horas,
sendo que cada usuário é introduzido no sistema aproximadamente um minuto após o
anterior.
Os limiares de capacidade dos usuários foram definidos como 70% e 80%, o que
significa dizer que para carga inferior a 70% foi utilizado um preço inferior e para carga
superior a 80% foi utilizado um preço superior. Os preços de transferência foram definidos como: um (1) para carga de trabalho inferior a 70%; um e meio (1.5) para carga de
trabalho entre 70% e 80% e dois (2) para carga de trabalho superior a 80%. Se o usuário
não possuísse budget suficiente, seu preço seria alterado pela variável onSale, definida
como 75% do preço atual. O budget inicial de cada usuário foi um valor atribuído entre
30% e 100% do necessário para se realizar a transferência, de forma que houvesse necessidade contínua de arrecadação de budget pelo usuário para realizar a transferência. Dos
dados produzidos pelo simulador foram utilizados o tempo de entrada e saída de cada
usuário, bem como a contribuição de cada um. Os parâmetros utilizados nessa configuração foram escolhidos após vários testes e verificou-se que estes permitiam um melhor
funcionamento do simulador no contexto desse trabalho. Cada simulação utilizando as
66
Anais
configurações descritas anteriormente foi realizada dez vezes para assegurar a integridade
dos dados.
Após as simulações realizadas os usuários foram classificados em: (i) usuários
Egoístas, que são similares a usuários free-riders, os quais contribuem com até 60% do
recurso consumido; (ii) usuários Normais, que contribuem com o sistema de uma forma
balanceada e desejável, ou seja, entre 60% e 100% do recurso consumido; (iii) usuários
Altruístas, os quais contribuem com mais do que o desejado com o sistema, que, em termos quantitativos, contribuem com mais de 100% dos recursos consumidos. Essa caracterização dos usuários foi realizada baseada na média dos valores utilizados em trackers
privados para dividir seus usuários [Salmon et al. 2008].
4.1. Análise dos usuários
A Tabela 2 mostra o percentual médio dos usuários de cada sistema simulado divididos
por classes. Em média, o percentual de usuários classificados como Egoístas diminui de
57,4% no BitTorrent para 47% no BitPS. O percentual deste tipo de usuário no Dandelion
é 56,1%, próximo ao do BitTorrent. O percentual de usuários classificados como Normais
vai de 17,2% no BitTorrent para 31,9% no BitPS. Novamente, o percentual de usuários
do Dandelion é próximo do BitTorrent, sendo de 17,5%. Esses dados indicam que há
um maior balanceamento do sistema, com mais usuários contribuindo de uma forma mais
igualitária o que consumiram. Ou seja, há uma migração de usuários para a categoria de
Normais, este fato também é verificado pela variação de usuários classificados como Altruístas: no Dandelion é 26,4%, 25,4% no BitTorrent e 21,1% no BitPS. Esses resultados
podem ser explicados pelo fato do BitPS forçar os usuários a contribuírem para realizar uma transferência de arquivo, diminuindo o número de usuários Egoístas. E assim o
sistema não depende somente de usuários contribuindo mais do que o necessário, o que
diminui também o número de usuários Altruístas.
Tabela 2. Percentual médio de usuários no sistema com desvio padrão – em %.
Categoria BitTorrent
Egoístas 57,4 (4,7)
Normais 17,2 (4,9)
Altruístas 25,4 (3,0)
BitPS
47,0 (5,2)
31,9 (3,0)
21,1 (5,1)
Dandelion
56,1 (4,6)
17,5 (4,4)
26,4 (3,1)
Figura 2. Variação do percentual de usuários Egoístas
VII Workshop de Redes Dinâmicas e Sistemas P2P
67
O gráfico da Figura 2 representa o número de usuários Egoístas durante todas
as 20 simulações. Sua análise mostra que, desde a primeira simulação, o percentual do
BitPS é inferior ao dos outros dois sistemas. Esse percentual inferior ocorre devido à
impossibilidade de um usuário receber o arquivo sem devolver parte dele caso o usuário
não possua budget suficiente. Ou seja, sua reputação no sistema é baixa, o que lhe impede
de realizar a transferência do arquivo. Como mencionado anteriormente, o Dandelion
possui uma performance similar ao BitTorrent, pois esse sistema não se preocupa se o
sistema é justo na visão do usuário.
Figura 3. Variação do percentual de usuários Normais.
No gráfico da Figura 3, o número de usuários Normais se mantêm superior durante
todas simulações no sistema BitPS, se comparados com o BitTorrent e com o Dandelion.
Tal fato acontece devido a que no BitPS, o usuário precisa contribuir caso queira terminar
sua transmissão e continuar no sistema. Já no BitTorrent e no Dandelion, os usuários não
precisam contribuir. Portanto, poucos usuários têm que contribuir para balancear contra
os que não contribuem. Em um sistema, o balanço desejado é que o número de usuários
Normais seja o mais alto possível, demonstrando uma homogeneidade do sistema.
Figura 4. Variação do percentual de usuários Altruístas.
Finalmente, no gráfico da Figura 4, que representa o número de usuários Altruístas
em todas as simulações, começa similar, mas no BitPS se torna inferior a medida que o
68
Anais
tempo de entrada de cada usuário aumenta. Contudo, nas simulações com tempo maior há
uma convergência do número de usuários, levando a uma similaridade no final. O menor
número de usuários Altruístas no BitPS pode ser explicado pelo fato de que um usuário que contribui perto de sua capacidade total possui um preço maior, sendo, portanto,
um provedor menos viável, diminuindo sua participação na rede. Isso torna o sistema
mais homogêneo, uma vez que, um número maior de usuários contribui razoavelmente,
diferente do BitTorrent e do Dandelion em que poucos usuários contribuem muito com o
sistema.
4.2. Análise do tempo
A Tabela 3 contém o tempo médio, em segundos, gasto por usuário para realizar a transferência de um arquivo em cada sistema analisado. De acordo com essa tabela, é possível
verificar que o BitPS gasta um tempo maior que o BitTorrent. Isso pode ser desfavorável
ao usuário, apesar de esperado, dado o tempo que o usuário necessita para conseguir o
budget e realizar a transferência. O Dandelion possui uma performance similar ao BitTorrent, algo também esperado pelos resultados descritos em [Sirivianos et al. 2009].
Como foi necessário que o usuário arrecadasse budget para realizar a transferência, o tempo do BitPS é substancialmente superior, mas caso o usuário já possuísse budget
suficiente a tendência seria que o tempo diminuísse, podendo se tornar equivalente ao BitTorrent.
Tabela 3. Tempo médio gasto por usuário para transferência de um arquivo – em
segundos.
Tempo
BitTorrent
1047,84
BitPS Dandelion
1462,85 1058,12
5. Conclusões
Algumas soluções para o problema de free-riding usando mecanismos de precificação em sistemas par-a-par já foram propostas na literatura [Feldman and Chuang 2005],
[Feldman et al. 2006]. Este trabalho apresenta um esquema de precificação capaz de encorajar a colaboração entre usuários de um tracker privado de BitTorrent. Esse esquema é
nomeado BitPS (BitTorrent Pricing Scheme), cujo uso pode ser feito junto com os mecanismos de reputação já aplicado no BitTorrent. Os resultados das simulações demonstram
que, com o BitPS, há uma atenuação do free-riding e um balanceamento do sistema,
tornando-o mais justo que o mecanismo padrão de reputação. Com o uso do BitPS, os
percentuais de usuários Egoístas e de usuários Altruístas diminuem e os Normais aumentam. Isso se deve ao fato de que para poder realizar uma transferência o usuário necessita
de budget e para consegui-lo ele deve contribuir com recursos no sistema, diminuindo os
usuários Egoístas. Como mais usuários contribuirão, há menos necessidade de usuários
que contribuem além do que consumiram, diminuindo, desse modo, o número de usuários
Altruístas. Por outro lado, o percentual de usuários Normais a medida que se aumenta o
tempo de simulação. Isso caracteriza um balanceamento do sistema, o que torna a rede
mais justa do ponto de vista do usuário e do sistema, apesar de ser necessário um maior
tempo médio para as transferências.
VII Workshop de Redes Dinâmicas e Sistemas P2P
69
Referências
Axelrod, R. (1985). The Evolution of Cooperation. Basic Books.
Bharambe, A. R., Herley, C., and Padmanabhan, V. N. (2006). Analyzing and improving a bittorrent networks performance mechanisms. In INFOCOM 2006. 25th IEEE
International Conference on Computer Communications., pages 1–12. IEEE.
BitTorrent
(2011).
What
is
bittorrent?
http://www.bittorrent.com/btusers/what-is-bittorrent.
|
bittorrent.
Cisco (2010). Cisco visual networking index: Forecast and methodology, 2009-2014.
http://www.cisco.com/en/US/solutions/collateral/ns341/ns525/ns537/ns705/ns827/white_paper_c11481360.html.
Cohen, B. (2003). Incentives build robustness in bittorrent. In 1st Workshop on Economics
of Peer-to-Peer Systems. Berkeley.
Danomac (2006). Phpbttracker+. http://phpbttrkplus.sourceforge.net/.
Eger, K. (2007).
Simulation of bittorrent
harburg.de/et6/research/bittorrentsim/index.html.
with
ns-2.
www.tu-
Feldman, M. and Chuang, J. (2005). Overcoming free-riding behavior in peer-to-peer
systems. ACM Sigecom Exchanges, 6.
Feldman, M., Chuang, J., Papadimitriou, C., and Stoica, I. (2006). Free-riding and whitewashing in peer-to-peer systems. IEEE Journal on Selected Areas in Communications, 24:1010–1019.
Feldman, M., Lai, K., Stoica, I., and Chuang, J. (2004). Robust incentive techniques
for peer-to-peer networks. In EC ’04: Proceedings of the 5th ACM conference on
Electronic commerce, pages 102–111, New York, NY, USA. ACM.
Fudenberg, D. and Tirole, J. (1991). Game theory. The MIT Press, Cambridge.
Garcia, F. D. and Hoepman, J.-H. (2004). Off-line karma: Towards a decentralized currency for peer-to-peer and grid applications (extended abstract). In Workshop on Secure
Multiparty Computations (SMP), Amsterdam, The Netherlands.
Ipoque (2008/2009). ipoque :: Bandwidth management with deep packet inspection.
http://www.ipoque.com/resources/internet-studies/internet-study-2008_2009.
Karagiannis, T., Rodriguez, P., and Papagiannaki, K. (2005). Should internet service
providers fear peer-assisted content distribution? In IMC ’05: Proceedings of the
5th ACM SIGCOMM conference on Internet Measurement, pages 6–6, Berkeley, CA,
USA. USENIX Association.
Lai, K., Feldman, M., Stoica, I., and Chuang, J. (2003). Incentives for cooperation in peerto-peer networks. In 1st Workshop on Economics of Peer-to-Peer Systems. Berkeley.
Liang, Z. and Shi, W. (2005). Enforcing cooperative resource sharing in untrusted p2p
computing environments. Mobile Networks and Applications, 10(6):971–983.
Locher, T., Moor, P., Schmid, S., and Wattenhofer, R. (2006). Free riding in bittorrent
is cheap. In In Proceedings of the 5th Workshop on Hot Topics in Networks (HotNets
’06).
70
Anais
Mansfield, E. and Yohe, G. (2000). Microeconomics: theory and applications. W. W.
Norton Company, New York.
Marques-Neto, H. T., Almeida, V. A. F., and Almeida, J. M. (2007). Pricing broadband
internet adaptive services. 15th International Symposium on Modeling, Analysis, and
Simulation of Computer and Telecommunication Systems, 2007. MASCOTS’07., pages
158–165.
Marques-Neto, H. T., Almeida, V. A. F., and Almeida, J. M. (2010). Precificação de
tráfego de internet de banda larga baseada no comportamento do usuário. XXVIII
Simposio Brasileiro de Redes de Computadores e Sistemas Distribuidos.
Parameswaran, M., Susarla, A., and Whinston, A. B. (2001). P2p networking: an information sharing alternative. Computer, 34:31–38.
Piatek, M., Isdal, T., Anderson, T., Krishnamurthy, A., and Venkataramani, A. (2007). Do
incentives build robustness in BitTorrent? In NSDI’07, Cambridge, MA.
Research, M. (2005).
Bittorrent simulator.
http://research.microsoft.com/enus/downloads/20d68689-9a8d-44c0-80cd-66dfa4b0504b/.
Salmon, R., Tran, J., and Abhari, A. (2008). Simulating a file sharing system based on bittorrent. In SpringSim ’08: Proceedings of the 2008 Spring simulation multiconference,
pages 1–5, San Diego, CA, USA. Society for Computer Simulation International.
Sirivianos, M., Park, J. H., Yang, X., and Jarecki, S. (2007). Dandelion: cooperative content distribution with robust incentives. In ATC’07: 2007 USENIX Annual Technical
Conference on Proceedings of the USENIX Annual Technical Conference, pages 1–14,
Berkeley, CA, USA. USENIX Association.
Sirivianos, M., Yang, X., and Jarecki, S. (2009). Robust and efficient incentives for
cooperative content distribution. IEEE/ACM Trans. Netw., 17:1766–1779.
TBsource and YeOK (2011).
Tbsource
http://sourceforge.net/projects/tbsource/.
php/mysql
bit-torrent
tracker.
Wongrujira, K. and Seneviratne, A. (2005). Monetary incentive with reputation for virtual
market-place based p2p. In CoNEXT ’05: Proceedings of the 2005 ACM conference on
Emerging network experiment and technology, pages 135–145, New York, NY, USA.
ACM.
Xia, R. L. and Muppala, J. K. (2010). Discovering free-riders before trading: A simple
approach. Parallel and Distributed Systems, International Conference on, 0:806–811.
Yu, B., Li, C., Singh, M. P., and Sycara, K. (2004). A dynamic pricing mechanisms for
p2p referral systems. In AAMAS ’04: Proceedings of the Third International Joint Conference on Autonomous Agents and Multiagent Systems, pages 1426–1427, Washington, DC, USA. IEEE Computer Society.
VII Workshop de Redes Dinâmicas e Sistemas P2P
71
Um mecanismo orientado a ISP para escolha tendenciosa de
pares no BitTorrent
Alejandra Klachquin1 , Daniel R. Figueiredo1
1
Programa de Engenharia de Sistemas e Computação – COPPE/UFRJ
Caixa Postal 68.511 – 21.941-972 – Rio de Janeiro, RJ – Brasil
[email protected], [email protected]
Abstract. BitTorrent is one of the most popular peer-to-peer (P2P) file sharing
applications used on the Internet and is responsible for a significant amount of
traffic between ISPs (Internet Service Provider) networks. A big challenge for
ISPs today is controlling traffic generated by P2P applications, whose traffic
pattern depends directly on the P2P network. Neighbor selection mechanisms
play a central role in P2P network structure as it determines with which peers a
given peer will communicate. In this work, we propose a simple biased neighbor
selection mechanism that considers the location of peers with respect to a single
ISP. A theoretical analysis and detailed BitTorrent simulations show the advantages and disadvantages of this mechanism. To mitigate its negative effects, we
propose a simple modification to the BitTorrent protocol, which impose the peers
to stay connected a small amount of time after completing the download.
Resumo. O BitTorrent é um dos aplicativos peer-to-peer (P2P) mais populares
da Internet e responsável por boa fração de tráfego nas redes dos ISPs (Internet Service Providers). Um dos grandes desafios dos ISPs está em controlar o
tráfego gerado por aplicativos P2P, cujo padrão de tráfego é influenciado diretamente pela estrutura da rede P2P. O mecanismo de seleção de vizinhos possui papel central na formação da topologia da rede, pois determina com quais
outros peers um determinado peer irá se comunicar. Neste trabalho apresentamos uma proposta simples para seleção tendenciosa de vizinhos, que leva em
consideração a localização dos peers com relação a um único ISP. Através de
uma avaliação teórica e de resultados de simulação detalhada do BitTorrent,
mostramos as vantagens e desvantagens deste mecanismo. Para mitigar seus
efeitos negativos, apresentamos uma simples modificação no protocolo BitTorrent, onde os peers passam a ser obrigados a permanecer um pequeno perı́odo
de tempo a mais conectados após concluı́rem o download.
1. Introdução
Aplicativos baseados na arquitetura peer-to-peer (P2P) vêm tendo um grande impacto
na Internet, não somente pela variedade de aplicativos e enorme número de usuários,
mas também pela grande quantidade de tráfego gerada por alguns destes aplicativos. Por
exemplo, o BitTorrent (BT) é um aplicativo para compartilhamento de arquivos usado
diariamente por milhões de usuários e responsável por uma boa fração do tráfego nas
redes dos ISPs (Internet Service Providers) [H. Schulze and K. Mochalski 2009].
Neste contexto (e.g., BT), usuários correspondem a peers que formam uma rede
e participam ativamente do processo de disseminação de conteúdo; baixando e subindo
72
Anais
blocos de um arquivo entre si. Como todos estes usuários pertencem a algum ISP (Internet
Service Provider), o tráfego gerado pelo aplicativo necessariamente atravessa as redes dos
ISPs, dando origem a um grande volume de dados.
Um dos maiores desafios enfrentados por ISPs de hoje está na redução
do tráfego P2P em suas redes, principalmente nos enlaces entre ISPs, que são
geralmente mais custosos e possuem uma maior utilização.
Diversas técnicas
vêm sendo propostas para atacar este problema e podemos dividi-las em três categorias: caching de conteúdo, shaping de tráfego, e modificação na aplicação
[Sandvine Co. 2004, Saleh and Hefeeda 2006, Shen et al. 2007, Aggarwal et al. 2007,
Bindal et al. 2006, Choffnes and Bustamante 2008, Xie et al. 2008].
A ideia de caching é armazenar conteúdo pertinente à aplicação P2P dentro do ISP
e redirecionar os pedidos dos peers internos ao ISP a este repositório. Neste caso, o ISP
deve manter e operar esta infraestrutura, que além do custo e das dificuldades técnicas,
pode acarretar em problemas legais (por exemplo, se o conteúdo armazenado for ilegal).
A ideia de shaping de tráfego é simplesmente policiar e limitar a banda para o tráfego P2P
nos enlaces entre IPSs. Por fim, a última técnica se baseia na modificação dos aplicativos
P2P para que os mesmos tenham conhecimento dos ISPs e tomem decisões neste sentido.
Parte do problema do tráfego gerado pelos aplicativos P2P é que eles não consideram o contexto ou as preferências dos ISPs em seu processo de seleção de peers para
solicitar/oferecer serviço. Por exemplo, um peer do BT pode igualmente solicitar um
bloco de dados tanto a um peer interno ao seu ISP quanto a um peer externo. Entretanto,
seria melhor para o ISP se UM peer interno fosse escolhido, reduzindo assim a quantidade
de tráfego pelo enlace entre ISPs.
Existem algumas propostas na literatura para modificação dos aplicativos de
forma a levarem em consideração a localização dos peers com relação aos ISPs
[Aggarwal et al. 2007, Bindal et al. 2006]. No caso do BT, existem propostas de
modificação apenas de uma entidade central, chamada de tracker (descrita na Seção 2)
[Bindal et al. 2006]. Esta última abordagem é bastante vantajosa pois funciona independente das muitas variações dos aplicativos BT utilizadas pelos usuários. Entretanto, tal
modificação pode trazer vantagens e desvantagens para os usuários do BT assim como
para o ISP.
Neste artigo, iremos propor uma técnica simples que modifica o comportamento
do tracker no BT com o objetivo de reduzir o tráfego entre ISPs. Nossa técnica é inspirada
na proposta de Bindal et. al [Bindal et al. 2006], porém mais fácil de ser implementada,
não sendo necessário a cooperação entre ISPs (mais detalhes na Seção 3). Avaliamos a
técnica proposta caracterizando o desempenho tanto dos usuários (i.e., tempo médio de
download), quanto do ISP (i.e., redução no tráfego inter-ISP). A avaliação é feita primeiro de forma aproximada, utilizando um modelo analı́tico simplificado, e em seguida
utilizando um simulador detalhado do BT. Nossos resultados indicam que a escolha dos
parâmetros da técnica possui um impacto fundamental em seu desempenho, podendo ser
extremamente prejudicial para os usuários em alguns casos. Em seguida, propomos uma
simples modificação no BT que oferece um desempenho superior aos usuários sem denegrir as vantagens obtidas pelo ISP.
VII Workshop de Redes Dinâmicas e Sistemas P2P
73
O restante deste artigo está organizado da seguinte maneira. Na Seção 2 descrevemos o funcionamento do BT e na Seção 3 apresentamos nossa proposta para escolha
tendenciosa de peers. Uma avaliação simplificada do processo de seleção de vizinhos é
apresentada na Seção 4. O simulador utilizado na avaliação da proposta assim como as
medidas de interesse estão descritas na Seção 5. Os resultados obtidos são apresentados
na Seção 6. A proposta de modificação no BT é apresentada na Seção 7 juntamente com
seus resultados. Finalmente, na Seção 8, apresentamos a conclusão do trabalho.
2. BitTorrent e trabalhos relacionados
Para descrever o funcionamento do BT, iremos primeiramente definir os componentes que
constituem o aplicativo e a rede que o mesmo forma para distribuir conteúdo:
1. Peer: um usuário do aplicativo BT (na verdade, seu computador).
2. Swarm: é o conjunto de peers que estão participando da distribuição de um determinado conteúdo.
3. Seed: é um peer que possui um determinado conteúdo por completo.
4. Leecher: é um peer que possui apenas parte de um conteúdo.
5. Tracker: é um servidor que mantém uma lista com todos os peers presentes no
swarm. Entre outras atribuições, o tracker deve enviar uma lista de peers que
já fazem parte do swarm a todo peer que se junta ao swarm. Além disso, os
peers periodicamente enviam informações a respeito do andamento do download
ao tracker e eventualmente podem requisitar mais peers.
6. Torrent: é um pequeno arquivo que contém metadados a respeito do conteúdo a
ser distribuı́do, além de possuir o endereço (IP ou URL) de um ou mais trackers
que irão coordenar seus respectivos swarms.
7. Pedaços: o conteúdo a ser distribuı́do é dividido em pedaços de tamanho fixo (e.g.,
128KB), que por sua vez são divididos em blocos (e.g., 16KB). Ao adquirir todos
os blocos referentes a um determinado pedaço, um peer torna-se apto a disseminálos.
Tendo em vista essa terminologia, a rede de distribuição é criada a partir de um
usuário, o seed original, que irá publicar o conteúdo na rede através do torrent. Peers
interessados no conteúdo obtém o arquivo torrent e, com isso, contactam o tracker, o qual
irá adicioná-los ao swarm e enviar-lhes uma lista contendo o endereço de no máximo
L peers participantes do mesmo swarm. Para selecionar esses peers, o tracker utiliza
uma polı́tica completamente aleatória. Em particular, a probabilidade de um determinado
peer do swarm ser escolhido é igual para todo peer, não sendo levado em consideração
nenhum fator diferenciador entre os peers. Um novo peer estabelece conexão com os
peers da lista recebida do tracker, tornando-se vizinhos. É apenas através destes vizinhos
que um peer irá obter e oferecer blocos do conteúdo sendo distribuı́do. Por fim, caso o
número de vizinhos de um peer encontre-se abaixo de um determinado valor, uma nova
lista de peers é requisitada ao tracker. Mais detalhes sobre o funcionamento do BT podem
ser encontrados na literatura.
Repare que a seleção dos vizinhos feita pelo tracker original do BT é totalmente
aleatória e não utiliza qualquer critério de localização do peer. Um dos motivos para esta
polı́tica é dar maior diversidade na rede P2P formada pelos vizinhos, deixando a rede
mais conectada. Em contrapartida, esta mesma polı́tica pode gerar grandes distorções
74
Anais
com relação aos vizinhos de um peer e seus respectivos ISPs. Por exemplo, considere
um swarm formado por peers pertencentes a apenas dois ISPs, cada um com o mesmo
número de peers. Intuitivamente, metade dos vizinhos de um peer estará localizada no
ISP diferente ao seu. Dessa forma, muitos blocos serão trocados entre os peers de ISPs
distintos, o que é ruim para os ISPs, pois aumenta o tráfego nos enlaces inter-ISPs que
são geralmente mais custosos e mais sobrecarregados.
Com o objetivo de evitar estes cenários, diversos mecanismos de seleção
de vizinhos foram propostos na literatura [Bindal et al. 2006, Aggarwal et al. 2007,
Choffnes and Bustamante 2008, Lin et al. 2010, Le-Blond et al. 2010]. Esses métodos
levam em consideração diversas informações pertinentes aos peers e aos ISPs de forma a
realizar uma escolha de vizinhos que seja mais apropriada, ou seja, que atenda aos interesses do ISP e dos usuários. Desta forma, a polı́tica de seleção deixa de ser aleatória e
passa a ser o que chamamos de tendenciosa.
Em [Lin et al. 2010], o protocolo BT é modificado de forma que um peer somente
requisita um pedaço a peers externos ao seu ISP caso seus vizinhos internos não possuam
esse pedaço. Por outro lado, [Bindal et al. 2006] e [Le-Blond et al. 2010] modificam o
tracker de forma a limitar o número de peers externos que os usuários do ISP podem
conectar-se. [Aggarwal et al. 2007] e [Choffnes and Bustamante 2008] apresentam uma
proposta similar, porém os peers são classificados através de um oráculo, que prevê, por
exemplo, a distância entre os peers. Um estudo complementar a estes mecanismos é realizado em [Wang et al. 2010], que apresenta um método para estabelecer quantos e quais
trackers devem ser modificados com maior prioridade, a fim de implementar a seleção
tendenciosa de pares com maior eficiência. Neste trabalho, apresentamos uma proposta
similar a [Bindal et al. 2006] e [Le-Blond et al. 2010], porém mais simples. Em nosso
mecanismo não é necessária a utilização de informações que escapam ao domı́nio do ISP
e tampouco requer conhecer o número de conexões entre peers internos e externos ao
ISP.
3. Proposta de um mecanismo de escolha tendenciosa
Iremos propor um mecanismo simples de escolha tendenciosa que modifica somente o
tracker que será operado pelo ISP que deseja reduzir o tráfego BT em sua rede. Nosso
mecanismo requer apenas que o tracker seja capaz de distinguir entre peers internos e
externos ao ISP, o que é bem razoável, dado que o ISP está operando o tracker (e.g., esta
distinção poderia ser feita com base na faixa de endereços IPs). Esta informação é bastante
reduzida, quando comparado a propostas que requerem que os trackers tenham conhecimento dos diferentes ISPs dos peers que participam de um swarm. Propostas que utilizam
informações mais detalhada assumem uma cooperação entre os ISPs, o que nem sempre
é viável, pois ISPs em geral não querem revelar seus interesses a outros ISPs. Por fim, repare que um ISP tem todo interesse em operar um tracker que incorpore suas preferências,
conforme sugerido em recentes trabalhos [Wang et al. 2010, Le-Blond et al. 2010], pois
isto irá reduzir a quantidade de tráfego em sua rede.
Intuitivamente, o tracker será modificado para isolar os peers internos dos peers
externos ao ISP. O objetivo é manter o tráfego P2P o máximo possı́vel entre os peers
internos. Entretanto, este isolamento nem sempre poderá ser total, por exemplo, quando o
VII Workshop de Redes Dinâmicas e Sistemas P2P
75
seed for externo ao ISP, ou quando tivermos poucos peers internos ao ISP. Assumiremos
que o tracker conhece o conjunto de peers internos e externos conectados no swarm.
No mecanismo proposto, a forma com a qual o tracker escolhe os vizinhos depende do peer ser interno ou externo. Seja L o número de vizinhos que o tracker deve
escolher para cada peer que entra no swarm. Ao ser contactado por um peer externo, o
tracker seleciona L vizinhos do conjunto de peers externos ao ISP, de forma aleatória com
distribuição uniforme. Desta forma, um peer externo nunca estabelece conexão com um
peer interno. Seja k > 0 um parâmetro do método que determina o número de vizinhos
externos que um peer interno irá receber ao solicitar uma lista de vizinhos para o tracker.
Logo, ao ser contactado por um peer interno, o tracker seleciona L − k vizinhos do conjunto de peers internos ao ISP e outros k vizinhos do conjunto dos externos. Repare que
um peer interno pode estabelecer conexão com um peer externo e eventualmente trocar
blocos com ele. Por fim, a escolha dos L − k vizinhos internos assim como a escolha
dos k vizinhos externos continuam sendo realizada de forma aleatória com distribuição
uniforme entre os peers de cada conjunto. Ou seja, todo peer interno ou externo tem igual
probabilidade de ser escolhido para compor a lista de vizinhos dado seus respectivos conjuntos.
TRACKER
TRACKER
Swarm:
Peers Externos
Swarm:
Peers Externos
p1
p2
p1
p2
k peers
L peers
p3
p3
.
.
.
.
.
.
Peers Internos
Peers Internos
L-k peers
(a) Peers internos ao ISP.
(b) Peers externos ao ISP.
Figura 1. Polı́tica de escolha de peers do BT modificado baseado na localização
dos peers com relação ao tracker (internos ou externos ao ISP).
A figura 1 ilustra o mecanismo de escolha tendenciosa proposta. Repare que a
escolha de vizinhos feita pelo tracker depende da localização do peer, sendo feita de
acordo com a figura 1(a) caso o peer seja interno, ou de acordo com a figura 1(b) caso o
peer seja externo.
4. Avaliação teórica
Faremos nesta seção uma avaliação simplificada do método de escolha de vizinhos proposto neste trabalho. Esta avaliação tem como objetivo caracterizar os vizinhos dos peers
internos e externos, assim como os vizinhos do seed. Esta avaliação servirá como base
para compreender os resultados obtidos com simulações detalhadas, que serão apresentados na Seção 5.
Seja nI o número de peers internos ao ISP, nE o número de peers externos, L
o número de vizinhos da lista de peers retornada pelo tracker, e k o número de vizinhos
externos que o tracker deve selecionar para um peer interno. Iremos assumir no que segue
que o swarm possui apenas um seed e que este peer é externo ao ISP. Considere a polı́tica
tendenciosa de seleção de vizinhos de um determinado peer e defina os seguintes eventos:
76
Anais
•
•
•
•
INS: um peer interno não possui o seed como vizinho.
ENS: um peer externo não possui o seed como vizinho.
LNS: um peer não possui o seed como vizinho.
NSSj : j-ésimo peer externo ao ISP para integrar a lista de vizinhos não é o seed.
Estamos interessados em calcular a probabilidade de um peer interno ter o seed
como vizinho, ou seja, PI ; e também a probabilidade de um peer externo ter o seed como
vizinho, ou seja, PE . Assim temos:
PI = 1 − P [INS] = 1 − (P [NSS1 ] ∩ . . . ∩ P [NSSk ]) =
k
nE
PE = 1 − P [ENS] = 1 − (P [NSS1 ] ∩ . . . ∩ P [NSSL ]) =
L
nE
A diferença entre PI e PE está no número de sorteios para peers externos, que é
quando o seed pode ser selecionado, que são respectivamente, k e L. Considerando que k
é menor do que L, temos que PI < PE . Esse resultado é intuitivo, já que, quanto menor o
valor de k, menor será o número de vizinhos externos que um peer interno irá conhecer,
diminuindo assim a probabilidade de um peer interno ter o seed como vizinho. Isto possui
implicações diretas no desempenho dos peers, uma vez que o seed possui todo o conteúdo
e divide sua banda igualmente entre seus vizinhos.
A partir de PI e PE , podemos obter o número médio de vizinhos do seed, uma
vez que a seleção de vizinhos é independente e identicamente distribuı́da entre os peers.
Desta forma, temos que o número médio de vizinhos do seed que são internos ao ISP é
dado por EI = nI PI = knnEI . De forma análoga, temos que o número médio de vizinhos
do seed que são externos ao ISP é dado por EE = nE PE = L.
Podemos ver que EE é constante, sempre igual a L. Para os externos, quanto maior
for o tamanho da lista de vizinhos, maior a chance que ela contenha o seed. Entretanto,
EI varia de acordo com os parâmetros do sistema. A quantidade de vizinhos internos do
seed depende de k e da relação entre nI e nE . Quanto mais internos houver no swarm
maior o número de internos que tem o seed como vizinho. Por outro lado, quanto mais
externos houver, menor será o número médio de internos que tem o seed como vizinho.
Novamente, isto possui implicação direta no desempenho dos peers.
Por fim, podemos somar EE e EI para obter o número médio de vizinhos do seed,
ou seja ET = L + knnEI . Iremos comparar este valor com o BT original, para caracterizar
o número de vizinhos do seed em ambos os casos.
No BT original, no qual a seleção de peers é aleatória e uniforme, todos os peers
têm a mesma probabilidade de ter o seed como vizinho. Seja PA a probabilidade de um
peer ter o seed como vizinho no BT original. De forma análoga ao desenvolvimento
L
acima, temos que PA = 1 − P [LNS] = 1 − (P [NSS1 ] ∩ . . . ∩ P [NSSL ]) = nI +n
. De
E
forma análoga, podemos obter o número médio de vizinhos do seed no BT original, que
é dado por EA = (nI + nE ) PA = L.
Ao comparar ET com EA , podemos ver claramente que o seed possui mais vizinhos quando o tracker implementa a seleção de peers tendenciosa. Intuitivamente, isto
ocorre por que peers externos só podem ter como vizinho outros peers externos, aumentando a chance do seed ser escolhido por estes.
VII Workshop de Redes Dinâmicas e Sistemas P2P
77
A partir dos resultados acima, podemos calcular a fração média de banda do seed
para todos os peers internos ao ISP no mecanismo tendencioso e original. Essa medida
de interesse é importante, pois o seed além de possuir todo o conteúdo, pode ter uma
velocidade de upload maior que dos leechers, influenciando dessa forma no tempo de
download. Como o seed divide sua banda de upload de maneira uniforme entre todos os
seus vizinhos, a fração média de banda que cada vizinho recebe é simplesmente dada pelo
inverso do número médio de vizinhos que ele possui. No caso do BT tendencioso, temos
nI
que BI = EI E1T = k nIk+L
.
nE
No BT original, a fração de vizinhos do seed que são internos é dada por nI /(nI +
nE ), já que todos os peers são tratados igualmente. Logo, o número médio de vizinhos do
seed que são internos, é dado por EA nI /(nI + nE ). Com isto, obtemos a fração média de
banda do seed para cada vizinho no BT original, dada por BA = 1/EA EA nI /(nI + nE )
I
= nI n+n
.
E
Por fim, repare que BI < BA para alguns valores de k, nI e nE , em particular,
quando k é pequeno ou quando nE > nI , que são casos de interesse. Nestes casos, a
fração de banda que os peers internos recebem do seed será sempre menor no mecanismo
tendencioso. Este fato terá impacto direto no desempenho dos peers internos, que será
refletido no aumento do tempo médio de download. A próxima seção caracteriza esta e
outras observações utilizando simulações detalhadas.
5. Simulador BT e medidas de interesse
Para avaliar o desempenho do BT original e a proposta para seleção tendenciosa de vizinhos, utilizamos um simulador do aplicativo desenvolvido com a ferramenta Tangram-II
[Rocha et al. 2009]. O simulador desenvolvido é uma fiel implementação do protocolo de
referência BT 4.0.0, contendo todos os seus mecanismos (TFT, strict priority, rarest first,
end game, optimistic unchoke, etc), assim como troca e formato de mensagens (choke,
unchoke, have, block request, interest, network exit, peer list, etc). Além disso, para este
trabalho desenvolvemos uma nova versão do tracker que implementa a seleção tendenciosa de vizinhos, conforme descrito na Seção 3.
O seguinte cenário será considerado nas simulações. O seed é um peer externo e
entra no swarm no instante de tempo zero e um determinado número de leechers internos
e externos ao ISP entram no swarm de acordo com um processo de Poisson com média
de 1/10 unidade de tempo entre chegadas. Após todas as chegadas, o tracker começa
a atender aos pedidos de listas de vizinhos de cada peer. Esta decisão foi feita para
considerar o cenário flash-crowd e permitir uma melhor avaliação do mecanismo sendo
proposto. Dessa forma, todos os pedidos de lista de vizinhos que forem requisitados ao
tracker antes da chegada de todos os peers serão ignorados. Por fim, os leechers saem
do swarm assim que completam o download do último pedaço, apenas terminando de
transferir os blocos pendentes em sua lista de uploads até o momento do término.
Consideramos o cenário sem seeds internos para avaliar o pior caso para o ISP.
Um cenário aonde há pelo menos um seed interno não é muito interessante, pois esse
seed seria capaz de servir todos os peers internos sozinho, sem a necessidade de adquirir
informação externa. Neste caso, o ISP poderia até impor uma separação total entre os
peers externos e internos, fazendo k = 0.
78
Anais
O simulador desenvolvido possui muitos parâmetros que podem ser instanciados para avaliar diferentes configurações do BT. Para a avaliação que segue, alguns
parâmetros foram fixados, enquanto outros tiveram seus valores variados. Os parâmetros
e valores utilizados estão nas Tabelas 11 e 2. É importante ressaltar que uma única rodada
de simulação com 160 peers leva em torno de 1h em uma máquina Core i5. Desta forma,
os cenários que podem ser avaliados ficam bem limitados com relação ao tamanho do
swarm, pois em geral são necessárias muitas rodadas para garantir uma boa estimativa
das medidas de interesse.
Tabela 1. Parâmetros fixos.
Parâmetros
Tamanho da lista de peers enviada pelo tracker
Número mı́nimo de vizinhos
Número máximo de vizinhos
Taxa de upload de leechers
Taxa de upload do seed
Tamanho do arquivo a ser disseminado
Subdivisão de cada pedaço
Tamanho de um bloco
Valores
20
20
80
64 Kbps
200 Kbps
100 pedaços
16 blocos
64 KB
Tabela 2. Parâmetros variados ao longo das simulações.
Parâmetros
Valores
k
1, 3, 5, 7, 10
Número de leechers no swarm
90, 120, 160
Proporção entre grupos (Externos – Internos) 50% + 1 seed –50%
5.1. Medidas de interesse
Para avaliar o desempenho do BT e do mecanismo de seleção tendenciosa tanto para os
peers quanto para os ISPs, iremos considerar as seguintes medidas de interesse:
1. Redução de tráfego: Para avaliar a redução de tráfego inter-ISPs iremos utilizar
uma métrica chamada redundância. A redundância é a média do número de vezes
que um bloco entra ou sai do ISP. Assim, teremos tanto a redundância de fora para
dentro do ISP como de dentro para fora. Note que todo bloco precisa necessariamente entrar ao menos uma vez no ISP, dado que o seed é externo ao ISP.
2. Tempo de download: Para avaliar o desempenho dos peers, iremos considerar o
tempo médio de download, que é uma medida diretamente relacionada à qualidade
de serviço do aplicativo. O tempo de download de um peer é dado pelo intervalo
de tempo entre a primeira vez que este peer demonstra interesse pelo conteúdo
(envia uma mensagem a um de seus vizinhos) e o momento em que ele consegue
adquirir o conteúdo por completo. Para estimar o tempo médio de download,
iremos utilizar apenas os 50% primeiros peers a terminarem o download. Isso é
feito porque alguns leechers podem permanecer muito tempo sem possuir algum
vizinho capaz de transmitir o último pedaço do conteúdo, ocasionando grande
variabilidade no tempo de download.
1
Como descrito em [Liogkas et al. 2006], seeds possuem habitualmente taxa de upload alta em
comparação a leechers.
VII Workshop de Redes Dinâmicas e Sistemas P2P
79
3. Fração de término: Para avaliar o desempenho percebido pelos usuários, iremos
considerar a fração de peers que terminam satisfatoriamente o download. Nem
sempre todos os peers irão concluir o download, mesmo quando temos um seed
presente no swarm. Isto pode ocorrer quando ocorre uma situação de deadlock,
que será explicada na Seção 6.3.
Para obter as medidas de interesse acima, foram realizadas 108 rodadas do simulador para cada conjunto de parâmetros. Utilizando estas rodadas, obtemos a média
amostral e o intervalo de confiança de 95%, que são reportados nos gráficos a seguir.
6. Avaliação do desempenho
Nesta seção apresentamos a avaliação do mecanismo proposto e uma comparação com o
mecanismo original. Um dos parâmetros fundamentais do mecanismo é o valor de k, que
indica o número de vizinhos externos que cada vizinho interno recebe do tracker em sua
lista de vizinhos. Os valores para k igual a zero se referem a resultados obtidos com o
BT original (sem modificações no tracker). Além disso, para cada valor de k os gráficos
apresentam os resultados para os três diferentes tamanhos de swarm considerados (90,
120 e 160 leechers).
6.1. Redução de tráfego inter-ISP
45
90
120
160
40
Redundancia - INTERNOS->EXTERNOS
Redundancia - EXTERNOS->INTERNOS
45
35
30
25
20
15
10
5
0
90
120
160
40
35
30
25
20
15
10
5
0
0
1
3
5
7
Externos permitidos (parametro k)
(a) Direção externo → interno.
10
0
1
3
5
7
10
Externos permitidos (parametro k)
(b) Direção interno → externo.
Figura 2. Redundância do tráfego no enlace inter-ISP para diferentes valores de
k e diferentes tamanhos de swarm (ponto k = 0 representa BT original).
Os gráficos na Figura 2 apresentam os resultados da redundância do tráfego BT.
Podemos notar uma grande redução na quantidade de tráfego redundante que entra e sai
do ISP quando utilizamos o mecanismo de escolha tendenciosa de pares para todos os
valores de k. Para valores pequenos, k = 1, a redução em ambos os sentidos chega a mais
de 75%, trazendo grandes benefı́cios para o ISP. Podemos observar ainda que à medida
que k aumenta, a redundância média também aumenta, o que é intuitivo, uma vez que
peers internos terão mais vizinhos que são externos. Podemos notar ainda que a redução
da redundância é maior no sentido interno → externo, ou seja mais peers internos deixam
de enviar blocos aos peers externos. Isto ocorre por que o seed é um peer externo ao ISP,
e necessariamente a informação precisa fluir nesta direção, além do seed ter uma maior
capacidade de upload que os outros leechers. Em todo o caso, os resultados ilustram a
vantagem que o mecanismo de seleção tendenciosa de vizinhos traz para os ISPs.
80
Anais
600
90
120
160
580
Tempo de download (seg) - INTERNOS
Tempo de download (seg) - EXTERNOS
600
560
540
520
500
480
460
440
90
120
160
580
560
540
520
500
480
460
440
0
1
3
5
7
Externos permitidos (parametro k)
(a) Dentre os peers externos.
10
0
1
3
5
7
Externos permitidos (parametro k)
10
(b) Dentre os peers internos.
Figura 3. Tempo médio de download dos peers em seus respectivos conjuntos
(ponto k = 0 representa BT original).
6.2. Tempo de download
Os gráficos na Figura 3 apresentam o tempo médio de download para os peers externos
e internos ao ISP. Considerando o conjunto de peers externos ao ISP (Figura 3.(a)), podemos ver que houve uma boa redução do tempo médio de download para valores de k
pequeno independente do tamanho de swarm quando comparado ao BT original. Ou seja,
o mecanismo acaba beneficiando os peers externos ao ISP. Entretanto, ao aumentarmos k,
o tempo médio de download se aproxima do BT original. Intuitivamente, isto ocorre pois
com o aumento de k o seed passa a ser mais compartilhado com peers internos, reduzindo
a banda do seed para os peers externos, conforme vimos na análise da Seção 4.
Considerando o conjunto dos peers internos (Figura 3.(b)), podemos observar um
comportamento bem diferente. Em particular, o tempo médio de download aumentou
significativamente para valores de k baixo, independente do tamanho do swarm, quando
comparado com o BT original. Para valores de k mais altos (k = 10) este aumento
é menor, mas ainda assim perceptı́vel. Este é um resultado bastante negativo, pois o
mecanismo tendencioso impõe um pior desempenho aos usuários do ISP.
Por fim, podemos observar que para k pequeno há uma inversão da relação do
tempo médio de download e o tamanho do swarm. Neste caso, o tempo médio de download é menor para swarms maiores. Intuitivamente, isto ocorre pois para k pequenos é
melhor que o grupo dos internos seja maior, pois isto aumenta as chances de um deles
estar conectado ao seed, como vimos na análise da Seção 4. Note que isto não ocorre para
o conjunto dos externos, onde um swarm maior sempre possui um maior tempo médio de
download.
6.3. Fração de término
A fração de término do download poderá ser diferente de zero caso ocorra uma situação
de deadlock. Um deadlock irá ocorrer quando os leechers formarem um componente conexo na rede de vizinhos, no qual cada um possui ao menos L vizinhos para os outros
peers, todos têm pelo menos um pedaço em comum faltando e o seed não faz parte deste
componente conexo. Nesse caso, cada peer possui o número mı́nimo de vizinhos estabelecido pelo protocolo e nenhum deles irão solicitar mais vizinhos ao tracker. Como ao
VII Workshop de Redes Dinâmicas e Sistemas P2P
81
menos um pedaço está faltando na componente conexa, após certo tempo todos os leechers ficarão aguardando em deadlock pelo pedaço que nenhum deles possui, e não irão
concluir o download. Esta situação pode ocorrer no protocolo de referência do BT e não
é tratada pelo mesmo. Na prática, muitos aplicativos são modificados para poder contornar esse problema, por exemplo, solicitando mais vizinhos ao tracker quando a taxa de
download vai à zero.
1
Fracao de termino - INTERNOS
Fracao de termino - EXTERNOS
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
90
120
160
0.1
0
0
1
3
5
7
Externos permitidos (parametro k)
(a) Dentre os peers externos.
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
90
120
160
0.1
0
10
0
1
3
5
7
Externos permitidos (parametro k)
10
(b) Dentre os peers internos.
Figura 4. Fração de peers que terminam o download com relação aos seus respectivos conjuntos (ponto k = 0 representa BT original).
Os gráficos ilustrados na Figura 4 apresentam as frações médias de término de
download para os dois conjuntos de peers (internos e externos). Primeiramente, é importante notar que a fração de término não é igual a um nem mesmo no BT original, ocorrendo um percentual significativo de peers que não termina o download (entram em deadlock). Entretanto, considerando os peers externos (Figura 4.(a)), as frações de término
obtidas mostraram-se todas aproximadamente 10% acima dos valores obtidos com o BT
original, independente do valor de k. Observamos ainda que quanto maior o tamanho
do swarm menor é a fração de término dos peers. Ou seja, o mecanismo de escolha
tendenciosa melhorou a fração de término dos peers externos.
O desempenho é bem diferente quando consideramos o conjunto dos internos (Figura 4.(b)). Neste caso, a fração de término é bem menor, chegando a apenas 20% para
k = 1. Para maiores swarms (160 peers), a fração de término dos internos é sempre pior
do que o BT original. Observamos ainda que quanto maior o swarm menor é a fração
de término, assim como no caso dos externos, mas de forma mais acentuada. Este certamente é um resultado indesejado para o para o mecanismo de escolha tendenciosa. Na
próxima seção veremos como este efeito pode ser mitigado, inclusive para o BT original.
7. Modificando o BitTorrent
Vimos na seção anterior que até mesmo o BT original possui um baixo desempenho com
relação à fração de peers que terminam o download por completo, problema que é exacerbado para peers internos quando utilizamos uma polı́tica tendenciosa para seleção de
peers. Parte do problema está em os peers saı́rem do swarm assim que terminam de baixar
o último pedaço, não dando chances deste pedaço ser servido pelo peer. Tendo em vista
esta causa, propomos uma simples modificação no protocolo que irá obrigar os peers a
permanecerem no swarm e servirem outros peers por um pequeno perı́odo de tempo antes
82
Anais
de deixarem o swarm. Nossa proposta consiste de dois simples critérios para determinar
este perı́odo:
• Timeout: Se após o tempo necessário para transmitir um pedaço completo, nenhum “novo” pedaço for solicitado ao peer, o mesmo pode sair do swarm. Um
“novo” pedaço é um pedaço que não tenha sido servido por esse peer enquanto
ele era um leecher (ou seja, antes dele completar o download do último pedaço).
Repare que este tempo é o tempo de transmissão de um pedaço.
• Após servir um novo pedaço: Caso algum novo pedaço tenha sido requisitado
ao peer antes do timeout, o mesmo poderá sair da rede assim que receber a
confirmação que este mesmo pedaço está disponı́vel em algum outro vizinho.
Neste momento, o peer pode sair do swarm. No pior caso, o peer transmite o
pedaço por inteiro.
A viabilidade técnica de implementar esta proposta está baseada em um sistema
de incentivo que o ISP pode oferecer aos seus clientes caso utilizem esta versão do protocolo, como por exemplo, incentivo econômico (redução de tarifas mensais) e incentivo
de banda, aumentando a capacidade de download e upload do peer. Dessa forma, além
de contribuir para o desempenho global do swarm, os peers poderão obter vantagens individuais, permanecendo conectados um tempo adicional muito pequeno em relação ao
tempo total de download.
Intuitivamente, o mecanismo acima dá oportunidade aos vizinhos do peer de solicitar e obter o último pedaço antes do mesmo sair do swarm, o que pode ter efeitos
drásticos. Ao adquirir um bloco que nenhum outro peer em sua vizinhança possui e permanecer no swarm por mais tempo, seus vizinhos terão tempo de demonstrar interesse
neste bloco. Os que estiverem na condição unchoke, e anteriormente não estavam recebendo blocos de outro pedaço, irão requisitar o último pedaço, por ser o mais raro. Dessa
forma, o peer irá repassar o pedaço a outros peers antes da sua saı́da, garantindo assim
ao menos mais uma réplica deste raro pedaço em sua vizinhança. Repare que estes outros
peers que adquirirem este pedaço irão contribuir para sua disseminação, passando pelo
mesmo procedimento, se este também for seu último pedaço.
Ao permitir que um peer saia do swarm assim que este adquirir um último pedaço,
seus vizinhos serão obrigados a aguardar que outro peer da vizinhança obtenha este
pedaço. Se este outro peer procede da mesma maneira, a situação se repete e o problema pode se agravar, dando origem ao deadlock descrito na Seção 6.3. Desta forma, um
fenômeno relacionado com este problema, também causado pela sincronização entre os
pedaços faltantes nos peers, foi identificado e avaliado teoricamente em um recente artigo
[Hajek and Zhu 2010].
7.1. Avaliação da proposta
Os gráficos da Figura 5 ilustram a fração de término de download dos peers quando os
mesmos implementam a modificação proposta para o protocolo. A avaliação a seguir
compara os resultados anteriores (apenas mudança do tracker) com a proposta acima, na
qual peers permanecem no swarm por um pequeno perı́odo de tempo após terminarem
o download. Podemos notar que em todos os casos, a fração de término de download
é maior, sendo a diferença notável (até 50% melhor) no caso do conjunto dos internos.
Repare que para k = 5, a fração de término de peers internos e externos já é maior do que
no próprio BT original (comparar com a Figura 4).
VII Workshop de Redes Dinâmicas e Sistemas P2P
1.1
1.1
1
Fracao de termino - INTERNOS
1
Fracao de termino - EXTERNOS
83
0.9
0.8
0.7
0.6
0.5
0.4
0.3
90
120
160
0.2
0.1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
90
120
160
0.2
0.1
0
0
0
1
3
5
7
Externos permitidos (parametro k)
(a) Dentre os peers externos.
10
0
1
3
5
7
Externos permitidos (parametro k)
10
(b) Dentre os peers internos.
Figura 5. Fração de peers que terminam o download com o BT modificado,
no qual peers permanecem no swarm um pequeno tempo após completarem o
download (ponto k = 0 representa BT original).
O tempo médio de download dos peers internos e externos quando a proposta
acima é considerada se mostrou praticamente idêntico aos obtidos sem a proposta. Entretanto, este fato era esperado uma vez que a proposta acima obriga aos peers a permanecerem no swarm por apenas um pequeno perı́odo de tempo a mais, bem menos de 1% do
tempo médio de download. A redundância média também não foi afetada pela proposta
acima, uma vez que apenas mais uns poucos blocos serão trocados pelos peers. Por falta
de espaço, não apresentamos estes resultados.
8. Conclusão
Neste trabalho propomos um mecanismo simples para escolha tendenciosa de peers que
pode ser implementado no tracker e operado pelo ISP que deseja reduzir o tráfego P2P
em seus enlaces inter-ISPs. Nossa proposta é uma variação mais realista da proposta de
Bindal et. al, pois esta última requer a cooperação entre os ISPs para ser implementada
[Bindal et al. 2006]. O mecanismo proposto utiliza apenas a distinção entre peers internos
e externos ao ISP e não requer nenhuma outra informação. Intuitivamente, o mecanismo
proposto isola parcialmente os peers internos dos peers externos.
Fazemos uma avaliação teórica simplificada do mecanismo assim como uma
avaliação usando um simulador detalhado e fiel ao protocolo BitTorrent (todos os mecanismos e mensagens do protocolo BitTorrent de referência foram implementados). Resultados da simulação mostram que o mecanismo proposto reduz significativamente o
tráfego inter-ISP gerado pelo BitTorrent, chegando a 75%, em alguns casos. Por outro
lado, os peers internos ao ISP podem ter uma perda significativa de desempenho, tanto
com relação ao tempo de download quanto à fração de término de download. Em ambos
os casos os peers internos são prejudicados com relação aos peers externos ao ISP, resultado indesejado para o ISP e seus clientes. Para mitigar este problema, propomos uma
simples modificação do protocolo BitTorrent de forma que peers permaneçam no swarm
um pequeno intervalo de tempo após completarem o download. Resultados desta proposta mostram que o desempenho dos peers melhora significativamente, principalmente
a fração de término de download, exigindo apenas que os peers permaneçam o tempo
de transmissão de um pedaço, o que é mais 10 vezes menor que o tempo de médio de
download.
84
Anais
Por fim, este trabalho ilustra como polı́ticas para seleção de vizinhos podem ser
vantajosas tanto para os ISPs, com relação à gerência do tráfego na rede, quanto para os
seus clientes, que podem continuar a terem um bom desempenho de seus aplicativos. Esta
é uma questão central a atual discussão sobre aplicativos P2P e ISPs.
Referências
Aggarwal, V., Feldmann, A., and Scheideler, C. (2007). Can ISPs and P2P users cooperate
for improved performance? ACM SIGCOMM Computer Communication Review.
Bindal, R., Cao, P., Chan, W., Medved, J., Suwala, G., Bates, T., and Zhang, A. (2006).
Improving traffic locality in BitTorrent via biased neighbor selection. In IEEE International Conference on Distributed Computing Systems.
Choffnes, D. R. and Bustamante, F. E. (2008). Taming the torrent: A practical approach
to reducing cross-ISP traffic in P2P systems. In ACM SIGCOMM.
H. Schulze and K. Mochalski (2009). Internet Study 2008/2009. Technical report, Ipoque.
URL http://www.ipoque.com/resources/internet-studies/internet-study-2008 2009.
Hajek, B. and Zhu, J. (2010). The missing piece syndrome in peer-to-peer communication. CoRR, abs/1002.3493.
Le-Blond, S., Legout, A., and Dabbous, W. (2010). Pushing bittorrent locality to the limit.
CoRR, abs/1011.1892.
Lin, M., Lui, J. C. S., and Chiu, D.-M. (2010). An isp-friendly file distribution protocol:
Analysis, design, and implementation. IEEE Trans. on Par. and Dist. Sys.
Liogkas, N., Nelson, R., Kohler, E., and Zhang, L. (2006). Exploiting BitTorrent for Fun
(But Not Profit) IPTPS - International workshop on Peer-To-Peer Systems
Rocha, A., Jaime, G., Murai, F., Alves, B., Figueiredo, D., Leão, R. M. M., and de Souza e
Silva, E. A. (2009). Novas evoluções integradas à ferramenta Tangram-II v3.1. In Salão
de Ferramentas / XXVII Simpósio Brasileiro de Redes de Computadores.
Saleh, O. and Hefeeda, M. (2006). Modeling and caching of peer-to-peer traffic. In IEEE
International Conference on Network Protocols.
Sandvine Co. (2004). Meeting the challenge of today’s evasive P2P traffic. Technical
report, Waterloo, Canada. An Industry Whitepaper.
Shen, G., Wang, Y., Xiong, Y., Zhao, B. Y., and Zhang, Z.-L. (2007). HPTP: Relieving
the tension between ISPs and P2P. In Int. Workshop on Peer-To-Peer Systems (IPTPS).
Wang, H., Liu, J., Chen, B., Xu, K., and Ma, Z. (2010). On tracker selection for peer-topeer traffic locality. In Peer-to-Peer Computing’10
Xie, H., Yang, Y. R., Krishnamurthy, A., Liu, Y., and Silberschatz, A. (2008). P4P:
provider portal for applications. In ACM SIGCOMM.
VII Workshop de Redes Dinâmicas e
Sistemas P2P
♦
Sessão Técnica 3
Redes Veiculares e
Direções de Pesquisa
VII Workshop de Redes Dinâmicas e Sistemas P2P
87
Análise sobre o impacto da densidade, da carga e do padrão de
mobilidade sobre o desempenho de protocolos de roteamento
para Redes Veiculares
Bruno G. Mateus1 , Carina T. de Oliveira2 , Rossana M. C. Andrade1
1
Grupo de Redes Sistemas e Engenharia de Software (GREAT)
Universidade Federal do Ceará (UFC)
2
CNRS Laboratoire d’Informatique de Grenoble UMR 5217
Université Joseph Fourier (UJF)
Abstract. Advances in mobile computing and wireless communications have led
to the development of the Intelligent Transportation Systems, which include the
vehicular networks. In these networks, routing is a challenging task due to the
high mobility of nodes, the instability of wireless links and the diversity of scenarios. For this reason, several routing protocols have been designed with the
goal of solving one or more specific problems of each scenario. In this paper,
we analyze through simulations the impact of density, load and mobility pattern
in the performance of routing protocols in vehicular networks. The main contribution of this work is, thus, that our results can provide new directions for
designing efficient vehicular network routing protocols, able to adapt to different scenarios. To achieve this goal, four protocols are evaluated in urban and
highway scenarios.
Resumo. Os avanços alcançados na computação móvel e na comunicação sem
fio levaram ao desenvolvimento dos Sistemas Inteligentes de Transporte, onde
pode-se destacar as redes veiculares. Nestas redes, o roteamento é uma tarefa desafiadora devido à alta mobilidade dos nós, à instabilidade dos enlaces
sem-fio e a diversidade de cenários. Por essa razão, diversos protocolos de roteamento foram projetados com o objetivo de solucionar um ou mais problemas
especı́ficos de cada cenário. Neste artigo, analisamos através de simulações o
impacto da densidade, da carga e do padrão de mobilidade no desempenho do
roteamento em redes veiculares. A principal contribuição deste trabalho é que
os resultados alcançados forneçam diretrizes para os projetistas de redes veiculares desenvolverem protocolos de roteamento eficientes, capazes de se adaptar
aos mais diversos cenários. Para alcançar esse objetivo, quatro protocolos são
avaliados nos cenários urbano e de rodovia.
1. Introdução
É cada vez mais clara a importância da Tecnologia da Informação (TI) no desenvolvimento social, econômico e cultural de uma nação. Neste contexto, existe uma
demanda crescente do usuário de permanecer conectado onde quer que esteja e a qualquer momento, até mesmo quando está em movimento. As redes sem fio desempenham
um papel fundamental nessa tarefa, possibilitando que o usuário se conecte em sua casa,
no trabalho, no shopping e, até mesmo, no veı́culo. Este último cenário vem recebendo
88
Anais
bastante atenção dos pesquisadores e da indústria automobilı́stica, que estudam soluções
de redes capazes de integrar a nova geração de redes sem fio em veı́culos automotores. O
objetivo é desenvolver um Sistema de Transporte Inteligente (Intelligent Transportation
Systems - ITS) capaz de integrar diferentes veı́culos e possibilitar que aplicações com diferentes requisitos sejam atendidas satisfatoriamente. Para alcançar este objetivo foram
criadas as redes veiculares [Hartenstein and Laberteaux 2008].
Em um cenário de redes veiculares existem dois tipos de nós: veı́culo automotor
e infra-estrutura fixa [Bernsen and Manivannan 2008]. Os veı́culos automotores são nós
móveis como carros, caminhões e ônibus equipados com um dispositivo de comunicação
sem fio. A infra-estrutura fixa é fornecida pelos pontos de acesso posicionados nas margens de ruas e estradas. Os veı́culos automotores podem se comunicar entre si, veı́culoveı́culo (Vehicle-to-Vehicle - V2V), ou com pontos de acesso fixos, veı́culo-infra-estrutura
(Vehicle-to-Infrastructure - V2I). Neste trabalho, foca-se nos desafios das redes V2V.
Por ser uma tecnologia emergente, muitas aplicações já foram desenvolvidas para
ambientes de redes veiculares. Grande parte dessas aplicações sugere a existência de
uma comunicação de múltiplos saltos. Por isso, surge a necessidade de um protocolo
de roteamento eficiente capaz de lidar com a topologia altamente dinâmica da rede e as
frequentes desconexões. Além disso, outra caracterı́stica inerente das redes veiculares
que contribui para tornar ainda mais desafiador o desenvolvimento de um protocolo de
roteamento é a variedade de cenários, tais como: urbano, rodovia e rural.
Em redes veiculares, o cenário é uma caracterı́stica que influencia diretamente
a mobilidade dos nós. Logo, independentemente do cenário onde um dado veı́culo
esteja presente, é necessário que o protocolo de roteamento opere de forma satisfatória [Bernsen and Manivannan 2008], devendo ser inclusive tolerante às mudanças de
cenário. Devido à grande variedade de cenários, diversos protocolos de roteamento foram
projetados com objetivo de solucionar um ou mais problemas especı́ficos de cada cenário.
Por exemplo, Zhang et al. voltaram suas atenções para o cenário rural, caracterizado por
redes esparsas, com pouca densidade e muita mobilidade. Já em [Lochert et al. 2003]
e [Tian et al. 2003], o foco é o cenário urbano com cruzamentos e sinalizações. Em
cenários de rodovia, muitos trabalhos propõem mecanismos para utilizar de melhor maneira o curto tempo de contato entre os veı́culos [Cavalcanti et al. 2010].
Devido ao caráter especı́fico dos protocolos que hoje são encontrados na literatura, faz-se necessário novos protocolos de roteamento capazes de apresentar um desempenho satisfatório nos mais diversos tipos de cenários de redes veiculares, por essa razão,
vários esforços vêm sendo realizados para desenvolver um protocolo para todos esses
cenários [Jin et al. 2009]. Contudo, apesar de existirem várias soluções propostas para o
problema do roteamento em redes veiculares, ainda não está claro que caracterı́sticas
especı́ficas os protocolos devem levar em consideração na tomada de decisão, já que
nenhuma das soluções propostas alcançou um desempenho satisfatório em mais de um
cenário [Boban et al. 2008].
Como ponto inicial em direção à compreensão dos principais fatores que devem
ser considerados ao se projetar um protocolo de roteamento eficiente para redes veiculares, neste trabalho é proposta a identificação e análise através de simulações do impacto
da densidade veicular, da carga da rede e da mobilidade no desempenho de um protocolo
VII Workshop de Redes Dinâmicas e Sistemas P2P
89
de roteamento. Neste trabalho nós focamos na análise dos cenários urbano e de rodovia já
que em escala global esses dois cenários concentram a maior parte do tráfego de veı́culos.
O restante do artigo está organizado da seguinte forma: a Seção 2 discute os trabalhos relacionados. Na Seção 3 apresentamos o ambiente utilizado nas simulações, bem
como a modelagem dos cenários utilizados. Os resultados são analisados na Seção 4. Por
fim, são apresentadas as conclusões e os trabalhos futuros na Seção 5.
2. Trabalhos Relacionados
O protocolo MURU (Multi-hop Routing Protocol for Urban Vanets) [Mo et al. 2006] utiliza a métrica EDD (Expected Disconnection Degree) para
a escolha das rotas com menor probabilidade de sofrer uma quebra de enlace em um
determinado perı́odo de tempo. O EDD é calculado através das informações sobre
velocidade e trajetória de cada veı́culo aliadas a uma função de predição de movimento.
Para isso, é assumida a existência de um serviço de localização (GPS), assim como
o conhecimento prévio da topologia da rede através de mapas digitais. De posse da
posição do destino, o protocolo calcula o menor caminho fı́sico até o destino baseado nas
informações obtidas dos mapas. A partir desse momento, inicia-se o envio de mensagens
de requisição de rotas (RREQ), que são limitadas por uma área retangular que varia
em função da posição dos nós de origem e destino e do comprimento do quarteirão.
Quando um nó recebe uma mensagem RREQ, ele determina o EDD entre ele e o nó que
enviou a mensagem. Em seguida, ele atualiza a métrica EDD no pacote. Enquanto ele
espera um tempo proporcional ao EDD (backoff time), ele escuta as mensagens RREQ
de outros vizinhos. Se o nó não descartar a mensagem RREQ durante esse tempo, ele
irá retransmitir dentro de uma área retangular menor do que a do nó anterior. Segundo o
protocolo, um nó descarta uma mensagem RREQ se ele receber uma nova RREQ com
valor menor no campo EDD. Depois que o destino recebe algumas mensagens RREQ de
diferentes rotas, ele escolhe a rota com o menor EDD acumulado e envia uma resposta
para a origem contendo o caminho escolhido. Os autores apresentam que o MURU é
livre de ciclos e que escolhe os caminhos com o menor EDD.
O ROMSGP (Receive On Most Stable Group-Path) [Sakhaee et al. 2007] é um
protocolo que agrupa os veı́culos utilizando informações de velocidade e direção do movimento. O protocolo procura garantir que os caminhos escolhidos sejam compostos por
veı́culos que estão se movendo juntos (direção e velocidade semelhantes). Logo, rotas
que envolvam veı́culos de um mesmo grupo são consideradas estáveis. Dado um conjunto de rotas possı́veis, o protocolo escolhe o caminho com o maior tempo de expiração
do enlace, representado pela métrica LET (Link Expiration Time). Para por em prática o
agrupamento de veı́culos, é assumido que cada veı́culo possui um GPS e que sua posição
é verificada a cada segundo. As informações sobre o grupo são incluı́das nas mensagens
de requisição de rotas. Dessa forma, quando um veı́culo recebe um RREQ, ele compara
o identificador do seu grupo com o identificador do veı́culo que originou a mensagem.
Se eles estiverem em grupos diferentes, o enlace entre eles é penalizado, sendo marcado
como instável, e a mensagem RREQ é descartada. Dessa forma, o mecanismo evita a
retransmissão de pacotes que podem tornar os enlaces instáveis. O ROMSGP diminui
a sobrecarga da rede evitando o envio de mensagens de controle, requisições de rotas e
mensagens de erros dos enlaces instáveis.
Outras propostas de roteamento podem ser encontradas na literatura.
Al-
90
Anais
gumas utilizam informações sobre o tráfego [Seet et al. 2004] e densidade da
via [Azarmi et al. 2008] para escolher o melhor caminho. Outros trabalhos optam por não utilizar serviço de localização e mapas para realizar o roteamento [Naumov and Gross 2007].
Em [Perkins et al. 2001], os autores comparam através de simulação dois protocolos importantes da redes móveis ad
hoc, o AODV [Perkins and Royer 1999] e o DSR [Johnson et al. 2001].
Já
em [Naumov et al. 2006] os autores comparam e analisam o desempenho dos protocolos AODV e GPSR [Karp and Kung 2000] no ambiente veicular. Ao final da análise, são
propostas algumas melhorias para ambos protocolos.
3. Ambiente de simulação
Para aproximar ao máximo a avaliação dos resultados em simuladores com
o mundo real, neste trabalho são utilizados mapas do formato OpenStreetMap
(OSM) [openstreetmap 2009]. O OSM é um formato de mapa livre e editável que possibilita o uso de dados geográficos de qualquer lugar do mundo de maneira colaborativa. Os
mapas do formato OSM aqui utilizados são baseados em mapas reais e estão disponı́veis
no site da OpenStreetMap, onde o usuário pode exportar um mapa real de qualquer cidade
do mundo, desde que seu mapa tenha sido descrito no formato OSM. Neste trabalho, dois
mapas são utilizados: um para representar o cenário urbano e outro para representar o
cenário de rodovia. Para o cenário urbano é utilizado o mapa do centro de Ottawa. Este
mapa engloba uma área de um quilômetro quadrado, contendo aproximadamente vinte
ruas, algumas de mão dupla outras de sentido único. O mapa contém cerca de oitenta
cruzamentos, dos quais cerca de cinquenta possuem semáforos. Para o cenário de rodovia
é utilizada uma rodovia de oito quilômetros de comprimento e oito faixas de veı́culos,
quatro para cada sentido.
Para tornar os dois cenários mais realı́sticos, representamos no simulador de
tráfego SUMO [SUMO 2009] alguns perfis de motoristas através das definição de tipos
de veı́culos, apresentados na Tabela 1. Como não se pode definir ao certo quantos perfis
de motoristas existem, optamos por utilizar três perfis: motoristas lentos, motoristas em
velocidade média e motoristas rápidos, os quais são distribuı́dos aleatoriamente em cada
rodada de simulação. Para isso, nos baseamos na velocidade máxima das vias urbanas de
trânsito rápido brasileiras que é 80 km/h. A partir desse valor definimos um perfil para
veı́culos que trafegam abaixo desse valor e um perfil que representa motoristas infratores,
que podem alcançar até 120 km/h.
Tipo
Velocidade máxima
Aceleração
Desaceleração
Tipo 1
Tipo 2
Tipo 3
120 km/h
80 km/h
60 km/h
9.7 km/h2
9 km/h2
7.7 km/h2
4.5 km/h2
4.5 km/h2
4.5 km/h2
Tabela 1. Tipos de veı́culos.
Neste trabalho, o simulador de rede escolhido foi o Network Simulator 2 (versão
2.33) [McCanne and Floyd ] por ser um simulador amplamente utilizado na literatura para
simulações de redes móveis ad hoc, por ser um programa de código aberto e, principalmente, pela compatibilidade com o SUMO. Os parâmetros utilizados no NS-2 estão listados na Tabela 2. Para nossos experimentos, consideramos as aplicações dos nós como
geradoras de dados CBR transmitidos em intervalos constantes de tempo. Os valores
apresentados nos gráficos da seção de resultados são valores médios de 30 amostras ob-
VII Workshop de Redes Dinâmicas e Sistemas P2P
91
tidas por meio de repetições das simulações. Todos os gráficos são apresentados com
intervalo de confiança calculado com um nı́vel de confiança de 95%.
No simulador NS-2 foram implementados os protocolos MURU e ROMSGP. Apesar de utilizarem métricas diferentes, o MURU e o ROMSGP compartilham algumas caracterı́sticas comuns. Primeiramente, ambos os protocolos são reativos e baseados em
posição, utilizando informações sobre a mobilidade dos nós durante o roteamento. Outra
caracterı́stica comum é o uso de GPS, útil para calcular a posição atual dos veı́culos. Além
disso, para evitar o congestionamento da rede, o MURU e o ROMSGP implementam mecanismos que minimizam o número de pacotes de controle. Apesar das semelhanças, o
MURU e o ROMSGP também apresentam algumas diferenças. Enquanto o MURU necessita de mapas externos para calcular sua métrica principal, o ROMSGP agrupa os veı́culos
baseado na direção do movimento. O MURU e o ROMSGP também foram comparados
com dois protocolos legados de redes ad hoc, o AODV e o DSR, por seus resultados
significativos em cenários de mobilidade.
Parâmetro
Valor
Aplicação
Protocolos MAC/Fı́sico
Dimensão do cenário
Raio de transmissão
Modelo de propagação
Modelo de mobilidade
Tempo de simulação
Quantidade de nós
Quantidade de nós fontes
Intervalo entre envios
Tráfego CBR
IEEE 802.11
1 km x 1 km
400 m
TwoRayGround
Kraussβ car-following
200 s
100 - 500
10% - 60%
0.5 s
Tabela 2. Parâmetros de simulação no NS-2.
4. Resultados
Analisamos o impacto de três diferentes condições de rede sobre o desempenho
dos protocolos simulados: Densidade - variação da quantidade de veı́culos por unidade de
área; Carga - variação do número de veı́culos fonte (geradores de tráfego); e Mobilidade
- variação do tipo de cenário (urbano ou rodovia). Os resultados são apresentados nas
próximas seções em função dos Pacotes de Controle - número médio de pacotes de
controle utilizados para manter o funcionamento da rede; e da Taxa de Entrega - razão
média entre o número de dados entregues ao destino com relação ao número de dados que
são enviados pelo nó de origem.
4.1. Pacotes de Controle
Os pacotes de controle, apesar de indispensáveis para manter o correto funcionamento da rede, são os principais responsáveis pela sobrecarga da rede. À medida que a
quantidade de pacotes de controle enviados cresce, as chances da rede ficar congestionada
aumentam e, consequentemente, as perdas de pacotes passam a ser mais frequentes. Entretanto, a sobrecarga da rede pode ser amenizada se o protocolo de roteamento utilizar
um mecanismo para controlar o envio e/ou propagação desses pacotes.
A Figura 1 apresenta a quantidade de pacotes de controle enviados por cada protocolo de roteamento em função da densidade de veı́culos nos cenários urbano e rodovia.
Conforme pode ser visto nas Figuras 1(a) e 1(c), o DSR é o protocolo que mais envia
pacotes de controle no cenário urbano. Ao comparar o desempenho do DSR com o do
92
Anais
AODV, pode-se observar que o AODV envia menos pacotes de controle. Isso deve-se aos
diferentes mecanismos de roteamento utilizados por eles. Como o DSR realiza o roteamento baseado na origem, quando um enlace quebra, a não existência de um caminho
alternativo no cache faz com que um novo procedimento de descoberta de rota seja executado pelo nó de origem. Por outro lado, no AODV qualquer nó pode obter rotas novas
para o destino, logo, quando um enlace quebra, um nó intermediário pode iniciar o procedimento de rota, diminuindo assim o número de mensagens de controle para restabelecer
o caminho quebrado.
A variação da densidade veicular não influencia da mesma forma os diversos
cenários urbano e de rodovia. Em cenários urbanos, os cruzamentos com semáforos tendem a concentrar um maior número de veı́culos, enquanto regiões sem sinalização apresentam maior fluidez do tráfego. Já em cenários de rodovia, os veı́culos são distribuı́dos
quase que uniformemente ao longo das vias devido a ausência de regiões concentradoras
de veı́culos, permitindo maior fluidez do tráfego nas vias. Por essa razão, o aumento da
densidade de veı́culos afeta de maneira mais suave o envio de pacotes de controle, como
apresenta as Figuras 1(b) e 1(d). Pode-se observar no cenário de rodovia que quando a
rede é esparsa, o desempenho dos protocolos MURU e ROMSGP é semelhante. Além
disso, a diferença entre o número de pacotes enviados é bem menor se comparada com
uma rede nas mesmas condições no cenário urbano. Isso ocorre devido ao padrão de mobilidade do cenário de rodovia somado às caracterı́sticas dos mecanismos de controle de
sobrecarga utilizados pelos protocolos. No cenário de rodovia em uma rede esparsa, o
mecanismo utilizado pelo MURU (baseado na área de broadcast) se torna menos restritivo que o utilizado pelo ROMSGP, já que alguns caminhos formados por nós que estão
se movimentando no sentido contrário ao movimento do nó fonte serão propagados devido à proximidade das vias, enquanto no ROMSGP apenas caminhos compostos por nós
que se movimentam no mesmo sentido serão propagados. Entretanto, quando a densidade da rede aumenta, a área de broadcast passa a ser mais restritiva que o agrupamento
de veı́culos realizado pelo ROMGSP, já que devido ao aumento do número de veı́culos,
o número de caminhos de ambos os sentidos também aumenta. Assim, como a única
restrição imposta pelo ROMSGP para utilizar um caminho é que os nós que o compõe
estejam se movimentando na mesma direção, boa parte dos novos caminhos poderão ser
utilizados.
A Figura 2 apresenta a quantidade de pacotes de controle de acordo com o tipo de
pacote de controle (RERR, RREP e RREQ) em função do cenário e para cada protocolo
de roteamento. No cenário de rodovia, mais mensagens de reply são enviadas, logo mais
caminhos são estabelecidos. Contudo, devido ao elevado número de mensagens de erro,
pode-se concluir que grande parte desses caminhos quebram durante a transmissão das
mensagens de dados. Além disso, podemos verificar que em redes esparsas a mudança
de cenário é uma caracterı́stica determinante para o desempenho dos mecanismos de controle de sobrecarga do MURU e do ROMSGP. Enquanto no cenário urbano o MURU
envia menos pacotes de controle, no cenário de rodovia o ROMSGP é quem envia menos
pacotes de controle.
Em relação à sobrecarga da rede, os protocolos desenvolvidos para redes veiculares obtiveram melhor desempenho em ambos os cenários devido aos mecanismos de
controle de carga da rede implementados por eles, já que ao utilizar parâmetros de mobi-
VII Workshop de Redes Dinâmicas e Sistemas P2P
(a) Cenário Urbano: 10% de nós fonte
(b) Cenário de Rodovia: 10% de nós fonte
(c) Cenário urbano: 30% de nós fonte
(d) Cenário de Rodovia: 30% de nós fonte
93
Figura 1. Quantidade de pacotes de controle enviados por cada protocolo de roteamento em função
da densidade de veı́culos nos cenários simulados.
Figura 2. Quantidade de pacotes de controle enviados em função do tipo de pacote de controle, do
cenário e do protocolo de roteamento. Rede composta por 100 veı́culos e 50% de nós fonte.
lidade eles conseguem evitar o envio desnecessário de mensagens de pacotes de controle,
principalmente quando a rede é muita densa. Para melhor entender o impacto da carga da
rede no desempenho dos protocolos foram realizadas simulações variando o número de
veı́culos fonte presente nos cenários. A quantidade de veı́culos fonte foi variada de 10%
a 60% do total de veı́culos. A Figura 3 demonstra o impacto do aumento do número de
94
Anais
nós fonte na quantidade de pacotes de controle necessária para manter a rede em funcionamento. Quando a carga da rede aumenta, o número de pacotes de controle enviados
aumenta. Isso ocorre devido ao maior número de pacotes de dados enviados. Como os
quatro protocolos simulados utilizam a estratégia reativa, é natural que a medida que o
número de fontes aumente, a quantidade de pacotes de controle enviados cresça também.
A Figura 3(a) mostra o desempenho dos protocolos em uma rede com 100
veı́culos. Como a rede representada nesse cenário é esparsa, os protocolos sofrem com a
escassez de caminhos para a realização do roteamento. Por essa razão, várias mensagens
de requisição de rotas são enviadas pelos protocolos, em especial o AODV, o que resulta
na maior quantidade de envio de pacotes de controle. O mesmo problema não ocorre
com o ROMSGP e o MURU devido ao mecanismo de controle de sobrecarga utilizado
por eles, que limita o encaminhamento de mensagens de requisição. Apesar do protocolo
DSR não ser eficiente em cenários com alta mobilidade, nesse cenário ele se sobressaiu
em relação ao AODV devido ao mecanismo de cache utilizado por ele. A Figura 3(c)
demonstra comportamentos similares dos protocolos simulados, ou seja, à medida que
o número de fontes aumenta, os protocolos sobrecarregam mais a rede. Conforme dito
anteriormente, os protocolos ROMSGP e MURU sofrem menos com o aumento da carga
da rede graças aos mecanismos de controle que utilizam. Nesse contexto, devido à dinamicidade da rede e ao maior número de caminhos existentes, o DSR foi o protocolo que
mais sobrecarregou a rede.
Em relação aos resultados obtidos na simulação dos cenários de rodovia (Figuras 3(b) e 3(d)), pode-se observar um comportamento distinto dos protocolos AODV e
DSR se compararmos aos resultados alcançados no cenário urbano. Em relação ao desempenho do DSR no cenário de rodovia, nós podemos observar que o aumento da carga
da rede não resulta em um crescimento acentuado do número de pacotes de controles enviados, mantendo-se praticamente constante. Isso ocorre porque no cenário de rodovia o
DSR consegue utilizar de maneira mais eficiente os caminhos alternativos armazenados
em cache. Por essa razão, quando a carga da rede é grande, o AODV é o protocolo que
mais envia pacotes de controle.
4.2. Taxa de Entrega
A Figura 4 demonstra o impacto da densidade da rede na taxa de entrega para
os cenários urbano e de rodovia. No cenário urbano, o aumento da densidade afeta a
taxa de entrega de duas formas distintas (Figuras 4(a) e 4(c)). Em redes esparsas, o
aumento da densidade determina uma maior quantidade de caminhos possı́veis de serem
utilizados no roteamento, o que consequentemente resulta em taxas de entrega melhores.
Contudo, quando a rede torna-se muito densa a taxa de entrega passa a ser prejudicada e,
a partir desse ponto, o aumento da densidade passa a afetar de forma negativa a taxa de
entrega. Destaca-se que o comportamento da taxa de entrega não é determinado apenas
pela densidade da rede, mas também pela quantidade de nós fontes. Nesse caso, quanto
maior a quantidade de nós fonte, maior o número de pacotes de controle necessário para
manter a rede funcionando. Contudo, à medida que a carga da rede aumenta, perdas de
pacotes passam a ser mais frequentes, degradando assim a taxa de entrega.
Nas Figuras 4(a) e 4(b) a carga da rede é pequena (10% de nós fonte). Por essa
razão, os protocolos AODV e DSR apresentam-se mais eficientes quando a densidade é
baixa, enquanto o MURU e ROMSGP sofrem para entregar os pacotes devido ao me-
VII Workshop de Redes Dinâmicas e Sistemas P2P
(a) Cenário Urbano: 100 veı́culos
(b) Cenário de Rodovia: 100 veı́culos
(c) Cenário Urbano: 300 veı́culos
(d) Cenário de Rodovia: 300 veı́culos
95
Figura 3. Quantidade de pacotes de controle enviados por cada protocolo de roteamento em função
do número de fontes nos cenários simulados.
canismo implementado por eles para evitar a sobrecarga da rede, que é responsável por
filtrar os caminhos existentes elegendo os que podem ser utilizados. À medida que a
rede se torna mais densa, os protocolos passam a sofrer mais com a sobrecarga da rede.
Contudo, os protocolos MURU e ROMSGP conseguem lidar melhor com esse problema,
amenizando assim o impacto sobre a taxa de entrega. Já os protocolos DSR e AODV
têm seus desempenhos consideravelmente afetados pelo envio excessivo de pacotes de
controle, podendo ser observada uma queda acentuada da taxa de entrega. Comparando a
melhor taxa de entrega alcançada pelos protocolos com a taxa atingida com a rede mais
densa, pode-se perceber de maneira mais clara o quão eficientes são os protocolos de
roteamento para redes veiculares.
A Tabela 3 mostra que os protocolos MURU e ROMSGP lidam melhor com o
aumento da carga da rede obtendo a menor variação da taxa de entrega nas condições
extremas em ambos os cenários. No cenário urbano, a variação medida da taxa de entrega
dos protocolos MURU e ROMSGP foi de 10% e no cenário de rodovia foi de 5% para o
MURU e 15% para o ROMSGP. Além disso, no cenário urbano esses protocolos atingiram
uma maior taxa de entrega quando comparados com os resultados obtidos no cenário de
rodovia. Apesar do AODV e DSR sofrerem as maiores variações da taxa de entrega em
ambos os cenários, esses protocolos alcançaram a melhor taxa de entrega. No cenário
urbano, o DSR entregou 95% dos pacotes enquanto o AODV entregou 90%. No cenário
96
Anais
(a) Cenário urbano: 10% de nós fonte
(b) Cenário de rodovia: 10% de nós fonte
(c) Cenário urbano: 30% de nós fonte
(d) Cenário de rodovia: 30% de nós fonte
Figura 4. Taxa de entrega para cada protocolo de roteamento em função da densidade de veı́culos
nos cenários simulados.
de rodovia, o DSR entregou cerca de 90% dos pacotes, enquanto o AODV conseguiu
entregar cerca de 85%. No entanto, quando a densidade da rede é máxima, o ROMSGP
torna-se o protocolo mais eficiente, seguido respectivamente pelo AODV, MURU e DSR.
As Figuras 4(c) e 4(d) mostram o desempenho dos protocolos em uma rede com
30% de nós fonte. Uma maior quantidade de nós gerando mensagens só acelera o processo observado no cenário anterior: a degradação da taxa de entrega devido ao aumento
da densidade e da carga da rede. Como pode ser visto, quando a densidade da rede é
baixa, os protocolos AODV e DSR são mais eficientes pelas mesmas razões abordadas
anteriormente. Contudo, quando a densidade passa a ser de duzentos veı́culos, podemos
observar no cenário urbano um comportamento diferente em relação ao cenário anterior:
o protocolo que alcança a melhor taxa de entrega é o ROMSGP e não o AODV, devido
a sobrecarga da rede gerada pelo pacotes de controle enviados. Por sua vez, no cenário
de rodovia, o protocolo ROMSGP passar a ser o mais eficiente após a densidade veicular
ultrapassar trezentos veı́culos, já que no cenário de rodovia o aumento da densidade afeta
de maneira mais sutil o envio de pacotes de controle e, consequentemente, a sobrecarga
da rede.
A Tabela 3 mostra novamente que o DSR é o protocolo que mais sofre com o
aumento da densidade e carga da rede. Por outro lado, o MURU é novamente o protocolo
VII Workshop de Redes Dinâmicas e Sistemas P2P
Porcentagem
de veı́culos
fontes
10%
30%
Protocolo
DSR
AODV
MURU
ROMSGP
DSR
AODV
MURU
ROMSGP
Melhor taxa de entrega
alcançada
Urbano
Rodovia
95%
90%
55%
70%
90%
95%
55%
70%
90%
85%
40%
60%
57%
77%
40%
55%
Taxa de entrega
alcançada com
densidade máxima da
rede
Urbano
Rodovia
20%
47%
45%
60%
10%
20%
35%
35%
15%
55%
35%
45%
5%
27%
30%
35%
97
Variação das taxas
alcançadas em
condições extremas
Urbano
Rodovia
75%
43%
10%
10%
80%
75%
20%
35%
75%
30%
5%
15%
52%
50%
10%
20%
Tabela 3. Comparação das taxas de entrega alcançadas em situações extremas da rede com 10% e
30% de nós fonte nos cenários simulados.
que apresentou a menor variação da taxa de entrega: 20% no cenário urbano e 10% no
cenário de rodovia. No cenário de rodovia, o AODV foi o protocolo que alcançou a maior
taxa de entrega, entregando 77% quando a rede possuı́a cem veı́culos. No cenário urbano,
o AODV também foi o protocolo que alcançou a melhor taxa de entrega, entretanto, com
o aumento da densidade ele teve seu desempenho rapidamente degradado. Comparando o
desempenho do ROMSGP nos cenários simulados, nós podemos perceber que no cenário
de rodovia o seu desempenho diminui suavemente com o aumento da densidade devido
ao menor impacto do aumento da densidade na quantidade de pacotes de controle enviados e, consequentemente, no aumento da sobrecarga da rede. Devido ao mecanismo de
controle de sobrecarga implementado pelo MURU, este foi o protocolo menos afetado
pelo aumento da densidade nos cenários simulados.
A Figura 5 apresenta o impacto do aumento da carga na taxa de entrega dos nós, no
cenário urbano e de rodovia. As Figuras 5(a) e 5(b) ilustram o desempenho dos protocolos
simulados quando aplicados em uma rede esparsa, mais especificamente com cem nós.
Como se trata de uma rede esparsa, ou seja, com poucos caminhos possı́veis de serem
utilizados no roteamento, os protocolos MURU e ROMSGP não superam os protocolos
tı́picos de MANETs, pois eles implementam mecanismos para evitar a sobrecarga da rede
que, por sua vez, acabam impedindo o roteamento através de caminhos que, apesar de não
serem estáveis, permitem a entrega dos pacotes de dados.
Perkins et al. [Perkins et al. 2001] demonstram através de simulações que o protocolo DSR é mais eficiente em redes que possuem baixa carga e/ou seus nós possuem baixa
mobilidade. Já o AODV é mais eficiente em redes com maior carga e maior mobilidade
dos nós. A Figura 5(a) comprova exatamente esse comportamento. A princı́pio, quando
a carga da rede é baixa, o protocolo DSR entrega mais pacotes que o AODV. Contudo, à
medida que a carga da rede aumenta, o desempenho do DSR diminui, chegando ao ponto
do AODV ultrapassar o DSR em relação a taxa de entrega. O mesmo comportamento
pode ser observado na Figura 5(b).
As Figuras 5(d) e 5(c), ilustram comportamentos semelhantes. Em todas elas,
à medida que a carga da rede aumenta, a taxa de entrega dos protocolos diminui. No
entanto, notam-se pequenas diferenças. Nas Figuras 5(d) e 5(c), quando a carga da rede é
mı́nima, o AODV é o protocolo com a melhor taxa de entrega. Com o aumento do número
de nós fonte, mais pacotes de dados são enviados, por isso mais pacotes de controle são
necessários para garantir a entrega dos dados, gerando, assim, uma sobrecarga da rede.
98
Anais
(a) Cenário urbano: 100 veı́culos
(b) Cenário de rodovia: 100 veı́culos
(c) Cenário urbano: 300 veı́culos
(d) Cenário de rodovia: 300 veı́culos
Figura 5. Taxa de entrega para cada protocolo de roteamento em função do número de fontes nos
cenários simulados.
Por essa razão, protocolos como o AODV e o DSR, que não implementam mecanismos
de controle de sobrecargas eficientes, têm seus desempenhos mais afetados. Por outro
lado, protocolos como o MURU e o ROMSGP, que implementam mecanismo de controle
de sobrecarga, têm seus desempenhos afetados suavemente. Por essa razão, quando a
carga da rede é máxima, os protocolos com melhores taxas de entrega são o MURU e o
ROMSGP.
A Tabela 4 mostra o resumo dos resultados obtidos em relação a taxa de entrega
nos cenários simulados. Pode-se perceber que os protocolos para redes móveis ad hoc
alcançam as melhores taxas de entrega, porém isso acontece apenas quando a rede é
esparsa. Quando a rede atinge sua densidade máxima, nós podemos perceber que os
protocolos para redes veiculares se sobressaem perante os protocolos desenvolvidos para
redes móveis ad hoc. Em condições nas quais a sobrecarga da rede é alta devido ao
aumento do número de veı́culos fonte, verifica-se que o protocolo MURU tem o melhor
desempenho dentre os protocolos simulados. Além disso, o protocolo MURU sempre
alcança a menor variação das taxas de entrega. Através da Tabela 4, pode-se constatar
que no cenário de rodovia os protocolos que alcançaram as melhores taxas de entregas
foram os protocolos para redes móveis ad hoc. Entretanto, diferentemente do observado
no cenário urbano, o protocolo AODV alcançou a melhor taxa de entrega mesmo quando
a densidade da rede era máxima, em redes com 10% de nós fonte. Contudo, os protocolos
VII Workshop de Redes Dinâmicas e Sistemas P2P
99
de redes veiculares foram os que apresentaram a menor variação das taxas de entrega.
Condições
10% de fontes
Urbano
Rodovia
Melhor taxa de entrega
DSR
DSR
Melhor taxa de entrega com
densidade máxima
AODV
AODV
Menor variação das taxas de
entrega
MURU
e
ROMSGP
MURU
30% de fontes
Urbano
Rodovia
50% de fontes
Urbano
Rodovia
AODV
MURU
e
ROMSGP
AODV
MURU
AODV
ROMSGP
MURU
MURU
MURU
AODV
MURU
e
ROMSGP
MURU
Tabela 4. Resumo dos resultados obtidos em relação a taxa de entrega nos cenários simulados.
5. Conclusões e Trabalhos Futuros
Neste artigo, são apresentados os resultados obtidos por meio de simulações de
dois protocolos para redes veiculares, MURU e ROMSGP, em diferentes cenários e
condições de operação da rede. Foram realizadas comparações com protocolos tı́picos
das redes móveis ad hoc, AODV e DSR. Através dos resultados alcançados conclui-se
que os protocolos de roteamento ainda precisam evoluir para alcançar um desempenho
satisfatório. Contudo, alguns pontos relevantes relacionados à deficiência dos protocolos foram observados. Primeiramente, destacamos a necessidade do uso de métricas que
utilizem informações presentes nos mais variados cenários. Também destacamos a necessidade de um mecanismo de controle de sobrecarga capaz de adaptar seu comportamento
de acordo com a densidade da rede, já que, conforme os resultados apresentados, os mecanismos avaliados não alcançam um bom desempenho em redes pouco densas devido
ao alto número de pacotes descartados, enquanto em redes densas o desempenho é satisfatório.
Como trabalho futuro, propõe-se o desenvolvimento de um protocolo de roteamento adaptativo que leve em consideração as diretrizes apontadas por esse trabalho.
Portanto, espera-se desenvolver um protocolo que se adapte às condições da rede, tais
como a densidade, o padrão de mobilidade, o tipo de cenário (urbano, rodovia e rural), o
raio de transmissão, dentre outros.
Referências
Azarmi, M., Sabaei, M., and Pedram, H. (2008). Adaptive routing protocols for vehicular
ad hoc networks. In International Symposium on Telecommunications (IST).
Bernsen, J. and Manivannan, D. (2008). Routing protocols for vehicular ad hoc networks
that ensure quality of service. In International Conference on Wireless and Mobile
Communications (ICWMC).
Boban, M., Misek, G., and Tonguz, O. (2008). What is the best achievable qos for unicast
routing in vanets? In IEEE GLOBECOM Workshops.
Cavalcanti, S. R., Campista, M. E. M., Abdesslem, F. B., Costa, L. H. M. K., Amorim,
M. D., and Duarte, O. C. M. B. (2010). Veer: A trajectory-based peer selection algorithm for networks of vehicles. In IFIP Annual Mediterranean Ad Hoc Networking
Workshop (Med-Hoc-Net).
Hartenstein, H. and Laberteaux, K. (2008). A tutorial survey on vehicular ad hoc
networks. IEEE Communications Magazine, 46(6):164–175.
100
Anais
Jin, Z., Yan, N., and Bing, L. (2009). Reliable on-demand geographic routing protocol
resolving network disconnection for vanet. In International Conference on Wireless
Communications, Networking and Mobile Computing (WiCom).
Johnson, D. B., Maltz, D. A., and Broch, J. (2001). DSR: The dynamic source routing
protocol for multi-hop wireless ad hoc networks. In Ad Hoc Networking. AddisonWesley.
Karp, B. and Kung, H. T. (2000). GPSR: greedy perimeter stateless routing for wireless
networks. In International Conference on Mobile computing and networking, (MobiCom). ACM.
Lochert, C., Hartenstein, H., Tian, J., Fussler, H., Hermann, D., and Mauve, M. (2003). A
routing strategy for vehicular ad hoc networks in city environments. In IEEE Intelligent
Vehicles Symposium.
McCanne, S. and Floyd, S. Ns-2 network simulator. http://www.isi.edu/nsnam/ns/. Acessado em 23 de Abril de 2011.
Mo, Z., Zhu, H., Makki, K., and Pissinou, N. (2006). MURU: A multi-hop routing
protocol for urban vehicular ad hoc networks. In International Conference on Mobile
and Ubiquitous Systems - Workshops.
Naumov, V., Baumann, R., and Gross, T. (2006). An evaluation of inter-vehicle ad hoc
networks based on realistic vehicular traces. In ACM International Symposium on
Mobile Ad Hoc Networking and Computing (MobiHoc).
Naumov, V. and Gross, T. (2007). Connectivity-aware routing (CAR) in vehicular ad-hoc
networks. In IEEE International Conference on Computer Communications (INFOCOM).
openstreetmap (2009). Openstreetmap foundation. http://www.osmfoundation.org. Acessado em 06 de Janeiro de 2011.
Perkins, C. and Royer, E. (1999). Ad-hoc on-demand distance vector routing. In IEEE
Workshop on Mobile Computing Systems and Applications (WMCSA).
Perkins, C., Royer, E., Das, S., and Marina, M. (2001). Performance comparison of two
on-demand routing protocols for ad hoc networks. IEEE Personal Communications,
8(1):16–28.
Sakhaee, E., Taleb, T., Jamalipour, A., Kato, N., and Nemoto, Y. (2007). A novel scheme
to reduce control overhead and increase link duration in highly mobile ad hoc networks.
In IEEE Wireless Communications and Networking Conference (WCNC).
Seet, B., Liu, G., Lee, B., Foh, C., Wong, K., and Lee, K. (2004). A-star: A mobile ad
hoc routing strategy for metropolis vehicular communications. NETWORKING, pages
989–999.
SUMO (2009). Sumo. http://sumo.sourceforge.net/. Acessado em 03 de Janeiro de 2011.
Tian, J., Han, L., and Rothermel, K. (2003). Spatially aware packet routing for mobile
ad hoc inter-vehicle radio networks. In IEEE Intelligent Transportation Systems, volume 2, pages 1546–1551.
VII Workshop de Redes Dinâmicas e Sistemas P2P
101
Sobre as Deficiências na Sinergia entre BitTorrent e MANETs
e Alternativas Viáveis
Sidney Doria, Marco Aurélio Spohn
1
Departamento de Sistemas e Computação
Universidade Federal de Campina Grande – UFCG
Campina Grande – PB
{sidney, maspohn}@dsc.ufcg.edu.br
Abstract. BitTorrent is well known as efficient in the Internet and has been the
default protocol in researchs on the synergy among P2P networks and MANETs.
This paper (i) analyzes the characteristics of BitTorrent and the adaptations
for MANETs, proposed by previous works, to incentive discussion about the
fact that BitTorrent might not be the optimal protocol to share contents among
peers in MANETs. Moreover, we present (ii) our efforts to improve P2MAN, our
proof-of-concept P2P sharing protocol, with a performance comparison with
BitHoc, using NS-2 network simulator, with results showing that P2MAN nodes
download contents faster than BitHoc nodes.
Resumo. BitTorrent é reconhecidamente eficiente na Internet e tem sido o protocolo referência em pesquisas sobre sinergia entre redes P2P e MANETs. Este
artigo (i) analisa as caracterı́sticas do BitTorrent e os trabalhos anteriores
que propõem sua adaptação para MANETs, com o intuito de fomentar a discussão sobre a adequação do BitTorrent para distribuição de conteúdos em
MANETs. Além disso, são apresentados (ii) os resultados dos nossos esforços
para avançar tecnicamente o P2MAN, nosso protocolo de compartilhamento
para prova de conceito e (iii) é apresentado um comparativo do P2MAN com o
BitHoc, no simulador NS-2, cujos resultados indicam que, nos cenários apresentados, os nós P2MAN realizam downloads em menos tempo que os nós BitHoc.
1. Introdução
As Redes Entre-Pares (Peer to Peer (P2P), em inglês) e as Redes Ad Hoc Móveis (Mobile
Ad Hoc Networks (MANETs), em inglês) apresentam um desafio em comum: manter
esforços colaborativos para prover comunicação de forma descentralizada em ambiente
dinâmico. Tal similaridade sugere uma potencial sinergia entre as duas redes, de modo a
produzir uma infra-estrutura de comunicação com a facilidade de instalação das MANETs
combinada à resiliência das redes P2P.
Particularmente, BitTorrent [Cohen 2003] tem sido o protocolo alvo de pesquisas recentes sobre sinergia entre redes P2P e MANETs [Rajagopalan et al. 2006,
Sbai et al. 2008, Souza and Nogueira 2008, Krifa et al. 2009a, Ko and Kim 2009,
Quental and Gonçalves 2010]. Note-se que, embora BitTorrent seja conhecido pela sua
eficiência e popularidade na Internet, há uma série de problemas de adaptação quando
sobreposto a MANETs. Defende-se uma linha de pensamento em que a solução enfatiza
os aspectos das MANETs sobre os aspectos P2P do problema.
102
Anais
Atualmente, estamos desenvolvendo o protocolo Peer-to-MANET (P2MAN) de
distribuição de conteúdo P2P para MANETs. P2MAN adota uma abordagem multicast
em malha de baixa sobrecarga, e um único grupo multicast para simplificar as operações
de controle e reduzir sobrecarga. Além disso, foi projetado em uma abordagem holı́stica,
que considera as restrições das MANETs, e que tenta se valer de suas peculiaridades
(e.g., escala e propósito restritos, roteamento multicast em malha). Os primeiros resultados [Doria and Spohn 2009] indicaram que P2MAN distribui conteúdos em MANETs
de forma escalável e eficiente. Entretanto, seu desempenho foi mensurado isoladamente,
sem comparativo um direto com as abordagens BitTorrent existentes na literatura.
Este trabalho traz três contribuições, a saber: (i) uma análise sobre os problemas de adaptação do BitTorrent sobre MANETs, com o intuito de apresentar uma discussão sobre a adequação do BitTorrent como protocolo de distribuição de conteúdos
para MANETs; (ii) os resultados dos nossos esforços para o avanço técnico do protocolo P2MAN [Doria and Spohn 2009], nosso protocolo para compartilhamento de
conteúdos em MANETs e (iii) um comparativo de desempenho entre o P2MAN e o
BitHoc [Sbai et al. 2008], então expoente do BitTorrent para MANETs.
O restante do trabalho está organizado como segue. A Seção 2 detalha os trabalhos relacionados à sinergia entre redes P2P e MANETs, distribuição de conteúdo P2P
e BitTorrent. A Seção 3 discute a viabilidade da sinergia entre BitTorrent e MANETs.
A Seção 4 versa sobre o P2MAN e seus avanços técnicos recentes e a Seção 5 traz os
resultados de um comparativo de desempenho entre o P2MAN e o BitHoc. Finalmente, a
Seção 6 conclui este trabalho.
2. Trabalhos Relacionados
A literatura já trata de sinergia entre redes P2P e MANETs há quase uma década. As
primeiras pesquisas tiveram por objetivo analisar o comportamento de protocolos relevantes de distribuição de conteúdo P2P, originalmente projetados para redes cabeadas tradicionais, sobre MANETs. Os resultados indicaram baixo desempenho das adaptações,
principalmente devido às caracterı́sticas mais dinâmicas das MANETs (e.g., mudanças de
topologia, falhas de enlace).
Em [Kortuem et al. 2001] os autores tratam sobre a colaboração entre redes P2P
e MANETs. [Klemm et al. 2003] e [Ding and Bhargava 2004] versam sobre protocolos
de distribuição P2P para MANETs. Os autores de [Gerla et al. 2005] discutem em profundidade o futuro da sinergia entre as duas redes e listam problemas em aberto. Em
[Oliveira et al. 2005] os autores argumentam que as duas redes são complementares, visto
que as MANETs são formadas tipicamente por nós de recursos computacionais limitados
e as redes P2P eliminam a necessidade de servidores com recursos abundantes no sistema.
Para contornar o problema de desempenho, novas pesquisas vêm tentando abordagens entre camadas, que estabelecem comunicação direta entre a camada de aplicação
e as camadas inferiores, ao custo de contrariar o propósito das modelagens por camadas.
Em [Y. Charlie Hu and Pucha 2003] os autores propõem um protocolo de roteamento que
se apóia em uma rede P2P auxiliar sobreposta, de modo que as descobertas de rotas ficam
limitadas a O(logN ). Os autores em [Conti et al. 2004] criaram uma camada adicional que se comunica com as demais camadas de rede, que consolida informações sobre
o status da rede. Além disso, conjecturam não ser possı́vel realizar certas operações
VII Workshop de Redes Dinâmicas e Sistemas P2P
103
em MANETs com eficiência (e.g., economia de energia nas transmissões) com o paradigma de camadas independentes, mas não reuniram provas para embasar tal afirmação.
Em [Kozat et al. 2004] os autores também projetaram uma camada adicional que coleta
informações da rede.
Mais recentemente, outros trabalhos utilizaram abordagens entre camadas,
de redes P2P sobrepostas, para alcançar resultados otimizados para tarefas como
roteamento unicast e multicast e distribuição de conteúdos [Passarella et al. 2006,
Delmastro et al. 2008, Lee et al. 2006, Sbai and Barakat 2009].
2.1. Adaptações do BitTorrent
Particularmente, o protocolo BitTorrent tem sido alvo freqüente de pesquisas recentes
sobre sinergia entre redes P2P e MANETs. A literatura já abriga diversos trabalhos que
tentam modificar o BitTorrent para otimizá-lo sobre MANETs.
O BitTorrent for MANETs (BTM) [Rajagopalan et al. 2006] usa uma camada
especial que aglutina informações e operações de diversas camadas de rede, dando ciência
à camada de aplicação sobre a topologia da rede, o que pode ser vantajoso. Tal camada
de suporte é então co-responsável por rotear pacotes, solicitar arquivos e descobrir pares.
O Network-Aware P2P (NAP) [Ko and Kim 2009] modifica a estratégia de
seleção de pares e a estratégia de seleção de pedaços, considerando a topologia e as
condições de tráfego. Para obter tais informações, foi utilizada uma versão modificada
do OLSR, onde cada nó troca com seus vizinhos, até dois saltos, como foi o tráfego transmitido em um perı́odo de tempo. Assim, a banda disponı́vel é informada aos vizinhos
através dos pacotes HELLO. Em outra modificação, os nós podem calcular o custo de envio de pacotes, através da combinação de distância e tráfego entre nós. Essa informação
auxilia na seleção de nós para rotas menos congestionadas. Tal estratégia é então combinada à seleção de vizinhos com os pedaços mais raros.
O Social Network based P2P File Sharing System (SNP) baseia-se em estudos
que relacionam o comportamento social de indivı́duos e seus movimentos em redes P2P
móveis. O SNP agrupa nós em comunidades com interesses em comum, valendo-se de
palavras-chave que são trocadas pelos nós para esse fim. As comunidades são criadas
a partir de uma função que verifica a similaridade entre as palavras-chave. Através da
diferenciação entre os nós, são atribuı́das funções especiais a determinados nós, de modo
a facilitar a transferência de arquivos entre membros das comunidades.
O BitHoc [Sbai and Barakat 2009] é um expoente da literatura e já foi implementado tanto no simulador NS-2 [NS-2 2010] quanto em dispositivos pervasivos reais.
BitHoc não utiliza tecnologia entre camadas. Sua modificação está na escolha dos pares
aos quais os nós devem solicitar um arquivo. Sua estratégia geral é manter uma lista seletiva de pares, ordenada pela proximidade em saltos. Mantendo uma lista de nós próximos,
o BitHoc busca reduzir a sobrecarga de roteamento e minimizar os bem conhecidos problemas relacionados ao TCP nas MANETs [Holland and Vaidya 1999, Lee et al. 2001,
Wang and Zhang 2002, Wang and Zhang 2002]. Os autores do BitHoc também advogam
pela manutenção da redundância, através de mecanismos próprios de incentivo, para uma
distribuição de conteudos mais justa entre os pares.
104
Anais
3. Sobre a Viabilidade da Sinergia entre BitTorrent e MANETs
O propósito desta Seção é discutir a viabilidade do uso do BitTorrent como mecanismo
de distribuição de conteúdos entre pares em MANETs. O objetivo é fomentar a discussão
cientı́fica sobre o tema, de maneira que se produzam idéias e propostas alternativas para
o problema de distribuição eficiente de conteúdos em MANETs.
São muitos os argumentos e suposições utilizados na literatura para uso do
BitTorrent como referência para distribuição de conteúdos P2P em MANETs. Por exemplo:
• Eficiência comprovada na Internet
BitTorrent é eficiente em distribuir conteúdos na Internet, provendo uma entrega
rápida em uma escala impressionante. A suposição então é que tal eficiência possa
ser reproduzida em uma rede com escala tı́pica muito menor.
• Popularidade
É razoável supor que o uso de um protocolo popular como o BitTorrent em uma
MANET pode reduzir o tempo gasto com treinamento dos usuários, visto que
há uma boa chance de que alguns desses usuários já tenham experimentado o
protocolo na Internet.
• Arquitetura
A arquitetura do BitTorrent seria supostamente favorável às MANETs, já que
amortiza o custo de servir o arquivo pela rede móvel e é possı́vel reiniciar as transferências após desconexões de rede. Além disso, um nó pode servir pedaços de
um conteúdo, enquanto esse conteúdo ainda está sendo descarregado. Isso pode
ser vantajoso em uma MANET, cujo propósito tipicamente restrito sugere que os
nós têm interesses similares.
Note-se que o problema de fato a ser resolvido é como fazer distribuição eficiente
de conteúdos em MANETs, independentemente do protocolo a ser usado, e que alguns
desses argumentos não válidos exclusivamente para o BitTorrent. Com exceção da popularidade, outros protocolos de distribuição de conteúdo também podem ser valorizados
por tais argumentos. Essa observação leva a uma questão sobre o interesse assı́duo dos
pesquisadores em aplicar o BitTorrent nas MANETs:
Qual é o fator técnico preponderante, pelo qual o BitTorrent está sendo escolhido
de forma recorrente em pesquisas sobre sinergia com MANETs?
Tal questão se refere à hipótese de que os esforços para que o BitTorrent seja
usado de forma eficiente em MANETs sejam, sobremaneira, motivados pela sua popularidade. Essa hipótese se evidencia quando são estudados os problemas de adaptação
entre BitTorrent e MANETs, juntamente com as modificações propostas pela literatura ao
longo da última década.
3.1. Problemas de Adaptação entre BitTorrent e MANETs
Distribuir conteúdos de forma eficiente entre pares sobre MANETs é um problema difı́cil,
principalmente por conta das dissonâncias entre as duas redes. Por exemplo, as redes
populares de compartilhamento de conteúdo P2P foram originalmente projetadas para a
Internet (i.e., escala global, milhões de nós) e as MANETs tı́picas têm escala de dezenas
de nós. Tais protocolos P2P geralmente são de camada de aplicação, usam unicast para
VII Workshop de Redes Dinâmicas e Sistemas P2P
105
disseminar os dados, valem-se de nós estáticos e adotam a suposição de que os vizinhos
estão a apenas um salto de distância. Em oposição, as MANETs utilizam broadcasts
fı́sicos não confiáveis em um meio compartilhado e seus nós são móveis, com enlaces
de comunicação estabelecidos dinamicamente em roteamento salto a salto. A literatura
comunica um conjunto de dificuldades de adaptação que podem ocorrer ao se tentar empregar BitTorrent em MANETs, tais como:
• Transmissões unicast
BitTorrent emprega transmissões unicast para enviar mensagens de controle e para
entregar os pedaços dos conteúdos, o que é custoso sobre MANETs, devido à sobrecarga provocada pelos handshakes em camadas mais baixas. O uso de unicast
portanto pode degradar o desempenho do sistema de distribuição de conteúdos.
• Mecanismo de Incentivo
Com o mecanismo de incentivo tit-for-tat do BitTorrent, múltiplos nós são incentivados a compartilhar e a transmitir pedaços de seus conteúdos, de forma a elevar
progressivamente a vazão do sistema, possivelmente ao limite da capacidade da
rede. De fato, manter os nós colaborando na transmissão é a razão fundamental
para os mecanismos de incentivo das redes P2P e um ponto fundamental de sua
otimização. Entretanto, em uma MANET, tal abordagem pode levar a colisões excessivas devido à disputa pela ocupação do meio compartilhado, possivelmente até
o colapso, produzindo um efeito oposto ao esperado [Grossglauser and Tse 2002].
Portanto, o incentivo a múltiplas transmissões unicast pode degradar o desempenho do sistema de distribuição de conteúdos.
• TCP
BitTorrent originalmente requer TCP como protocolo de transporte. Os problemas de desempenho do TCP em MANETs já foram demonstrados exaustivamente na literatura [Holland and Vaidya 1999]. O uso do TCP nas transmissões
pode portanto degradar o desempenho do sistema de distribuição de conteúdos.
Em atenção a esse problema, Anastasi et al. desenvolveram recentemente o
TPA [Anastasi et al. 2009], um protocolo de transporte confiável mais eficiente
do que o TCP em MANETs, que adota uma abordagem entre camadas. Mesmo
considerando tais avanços recentes com protocolos de transporte para MANETs,
ainda haveria a necessidade de adaptar o BitTorrent ou uma variante do protocolo
para o TPA.
• Tracker
A arquitetura do BitTorrent prevê os Trackers, que são nós fixos na rede que
endereçam os conteúdos. MANETs são totalmente dinâmicas, o que requer uma
adaptação do modelo com Trackers para um modelo totalmente distribuı́do. Há
também a hipótese de eliminação do Tracker no BitTorrent e a utilização de outras
formas de localização de conteúdo na rede, como a difusão.
• Distância entre Vizinhos
O BitTorrent considera vazão de transmissão como métrica para reputação e
seleção de pares. Na arquitetura original do BitTorrent assume-se que os vizinhos
são nós estáticos que estão a um salto de distância. Portanto, não são consideradas
as caracterı́sticas de mobilidade e de roteamento salto a salto das MANETs. O
desconhecimento da distância entre os pares pode levar o BitTorrent a provocar
excesso de colisões numa MANET, mesmo com poucas transmissões ativas, visto
106
Anais
que elas podem ocorrer entre nós diametralmente opostos na rede, o que recrutaria vários nós intermediários a repassar os dados, ocupando o meio compartilhado.
Portanto, tal suposição do BitTorrent pode degradar o desempenho de distribuição
de conteúdos.
• Segurança
Na Internet, o protocolo BitTorrent tipicamente realiza comunicação entre pares
em enlaces independentes. Entretanto, em MANETs, o uso de meio fı́sico compartilhado para as transmissões pode aumentar os riscos de segurança na entrega
dos arquivos.
Para relativizar a viabilidade do uso de BitTorrent em MANETs, ponderam-se os
problemas de adaptação citados e o fato de que a literatura demonstra não haver ainda uma
adaptação do BitTorrent completamente otimizada para MANETs. Ademais, trabalhos
anteriores utilizam cenários com restrições, visando permitir as análises de desempenho
em ambiente controlado. Entretanto, tais cenários podem ser considerados pouco realistas
por se afastarem em demasia da tipificação de uma MANET. Por exemplo, o cenário utilizado em [Krifa et al. 2009a, Souza and Nogueira 2008, Quental and Gonçalves 2010]
considera apenas 40 nós, dispostos em formato de malha equidistante, sem mobilidade
(i.e., nós estáticos), com alcance de rádio reduzido para 50m e transmitindo um único
arquivo de tamanho reduzido, inicialmente a partir de uma única origem. É possı́vel
ainda visualizar que, considerando o conhecimento cientı́fico atual, se fossem aplicadas as adaptações mais bem sucedidas da literatura no protocolo BitTorrent, de forma
a adequá-lo ao máximo para MANETs, haveria uma considerável descaracterização do
protocolo.
Diante do exposto, pondera-se que o BitTorrent pode não ser a melhor escolha
para distribuir conteúdos em MANETs. Defende-se que uma relação sinérgica otimizada
entre redes P2P e MANETs pode requerer esforços que vão além da adaptação direta de
uma arquitetura P2P de sucesso das redes cabeadas de larga escala (i.e., Internet), mesmo
com as modernas adaptações entre camadas já propostas na literatura.
Para contribuir com novas formas de se obter vantagem dos conceitos P2P em
MANETs, estamos desenvolvendo um protocolo nativo de distribuição de conteúdo para
MANETs, denominado Peer-to-MANET (P2MAN). O objetivo é dar mais prioridade aos
aspectos MANET em vez dos aspectos P2P do problema. A Seção 4.2 explica de forma
sucinta o funcionamento do P2MAN.
4. P2MAN: Uma Alternativa para Distribuição de Conteúdos em MANETs
Peer-to-MANET (P2MAN) [Doria and Spohn 2009] é um protocolo de distribuição de
conteúdos entre pares para MANETs, que implementa conceitos bem sucedidos das redes
P2P populares, mas com uma abordagem que considera plenamente as restrições e as
dificuldades inerentes às MANETs.
4.1. Considerações Prévias
Neste trabalho considera-se o caso geral em que uma MANET não é formada para um
propósito geral, mas para a comunicação de um grupo de indivı́duos inter-relacionados
de alguma forma (e.g., campo de batalha, solução de desastres, operações de resgate,
laboratórios provisórios). Sendo assim, é razoável assumir que a informação fluirá em
VII Workshop de Redes Dinâmicas e Sistemas P2P
107
algum momento de um indivı́duo para um grupo de indivı́duos correlatos, especialmente
fluxos de informações.
No escopo deste trabalho, a comunicação de dados significa compartilhamento
de arquivos digitais, como os que são compartilhados na Internet através das redes P2P
mais populares. Apesar dos bons resultados iniciais do P2MAN em grupos maiores de
nós (e.g., 100 nós), e em mobilidades mais altas (e.g., 30 m/s), assume-se que os nós
não se movem rápido e continuamente a tal ponto de que a única comunicação possı́vel
seria a inundação de pacotes. Assume-se que há ausência total de nós isolados, visto
que o objetivo é verificar quão bem P2MAN pode distribuir conteúdos a todos os nós
destinatários conectados.
Assume-se que não há nós erráticos na rede. Em particular, cada nó da rede deve
cooperar repassando os pacotes que lhe foram solicitados. Neste trabalho não foram exploradas questões de segurança em quaisquer camadas. Entretanto, há um trabalho em
andamento sobre segurança no P2MAN. Empregamos uma versão modificada da Rede
de Favores como solução para reduzir o problema de drenagem maliciosa de recursos,
provocada por nós maliciosos. Tais resultados serão objeto de outro trabalho.
4.2. Arquitetura do P2MAN
O objetivo desta Seção é explicar de forma sucinta o funcionamento do P2MAN. Uma
explicação detalhada consta em [Doria and Spohn 2009].
P2MAN é um protocolo multicast, que emprega grupos multicast distintos para
entregar conteúdos e um grupo multicast especial, denominado Canal Público, para todas as operações de controle. Quando um nó P2MAN inicia, junta-se ao Canal Público
(CP) para poder trocar mensagens de controle. Todos os nós que desejam compartilhar conteúdo devem ser membros do CP. Não há nós servidores com informações para
localização de conteúdos nem tais informações são copiadas (i.e., mantidas em cache)
pelos nós na rede. Em vez disso, para localizar um conteúdo, um nó consulta o Canal
Público sem a necessidade de inundar a rede com mensagens de controle. Caso algum nó
ativo tenha o conteúdo, este será alcançado em algum momento através do CP e a resposta
retorna também via CP. A resposta traz consigo metadados gerados pelo nó proprietário
do conteúdo, com informações detalhadas sobre o conteúdo.
Como em muitas redes P2P, P2MAN fraciona o conteúdo para a entrega. O nó
proprietário decide como o objeto será dividido em pedaços e faz uma representação do
conteúdo através de um mapa de bits (em que cada bit representa um pedaço do conteúdo).
O proprietário também decide que grupo multicast será usado para transmitir o conteúdo.
Os metadados são criados pelo nó proprietário, contendo as informações necessárias para
guiar os nós solicitantes. Após receber a resposta, o nó solicitante junta-se ao grupo
multicast anunciado pela fonte e envia uma mensagem de autorização ao Canal Público.
Ao receber uma mensagem de autorização, o proprietário do conteúdo pode iniciar a
transmissão.
Note-se que a maioria das redes P2P de distribuição de conteúdo emprega algum tipo de mecanismo de incentivo. Entretanto, múltiplas transmissões unicast podem
produzir colisões em excesso devido à disputa pelo meio compartilhado. A abordagem
multicast do P2MAN contorna esse problema, visto que apenas um nó transmissor é necessário para distribuir um conteúdo a todos os nós solicitantes. Por isso, outra finalidade
108
Anais
do processo de autorização é assegurar que apenas um nó seja o transmissor multicast do
conteúdo para os membros do grupo multicast. Por outro lado, a diversidade necessária é
obtida durante a seleção dos nós transmissores.
Assumindo-se a adoção de um protocolo de roteamento multicast sem entrega
confiável (e sem um protocolo de transporte multicast, a garantia de entrega é realizada
na camada de aplicação, através de um mecanismo de retransmissão denominado Modo
de Reparação. No modo de reparação, um nó pode solicitar os pedaços que ainda não recebeu. O proprietário então retransmite os pedaços que faltam. Enquanto houver pedaços
faltando, novos pedidos e retransmissões ocorrerão, até que o nó solicitante receba todos
os pedaços.
4.3. Avanços Recentes do P2MAN
Ao final do desenvolvimento da primeira versão do P2MAN, foram realizadas
avaliações de desempenho no simulador NS-2 e os resultados constam na literatura [Doria and Spohn 2009]. Desde então o P2MAN passou por algumas refatorações,
correções e recentemente alguns aspectos do seu design foram modificados para efeito de
otimização. O objetivo desta Seção é comunicar as alterações mais relevantes do P2MAN
desde a sua publicação original.
4.3.1. Proteção contra Tempestade de Requisições
Na versão mais recente do P2MAN, após transmitir um conteúdo, o nó proprietário inicia um temporizador denominado Proteção contra Tempestade de Requisições. O valor
deste temporizador pode ser definido pelo usuário. O objetivo deste temporizador é evitar um efeito fase que pode ocorrer logo após o envio de muitos pedaços. Devido à
intensa retransmissão de pacotes salto a salto até os nós solicitantes, alguns nós podem
requisitar mais de uma vez pedaços que já foram enviados, pois ficam temporariamente
impedidos de ouvir as respostas de suas requisições. A Proteção contra Tempestade de
Requisições possibilita que os nós requisitantes ouçam as respostas do nó proprietário no
canal público, sem que uma nova inundação de pacotes ocorra imediatamente.
4.3.2. Multiplas Entregas Simultâneas
No P2MAN original ainda não era possı́vel entregar múltiplos arquivos simultaneamente. Tal funcionalidade foi adicionada e foram realizadas novas simulações para
medir o impacto das várias transmissões no tempo de entrega, no cenário de rede proposto no trabalho original. A figura 1 mostra os resultados da avaliação do P2MAN
em processo de múltiplas entregas simultâneas de arquivos. As configurações utilizadas,
definições de cenário, número de nós e demais parâmetros de simulação estão detalhados
em [Doria and Spohn 2009]:
VII Workshop de Redes Dinâmicas e Sistemas P2P
109
Figura 1. Tempo Total de Entrega x Entregas Concorrentes.
4.3.3. Novo Modo de Reparação
No P2MAN, se um nó aguardar a chegada de um pedaço por mais tempo do que reza um
temporizador programado, ele entrará em Modo de Reparação. De forma simplificada,
quando um nó entra em modo de reparação o download é reiniciado, mas dessa vez o
nó informa aos proprietários os pedaços que já possui, através de um mapa de bits. Ao
receber respostas de nós proprietários, um nó requisitante envia uma autorização de envio
de pedaços ao nó proprietário escolhido.
No P2MAN original, uma vez iniciado o processo de reparação ele não pára,
mesmo que durante este processo ocorra a chegada de um pedaço da transmissão anterior. Uma situação assim nem sempre ocorre quando a transmissão é interrompida.
Podem ocorrer dificuldades transientes na transmissão (e.g., colisões, interferências, congestionamento). Nesse caso, há um trade off entre aumentar o valor do temporizador
de espera ou procurar um novo nó proprietário (i.e., seeder) imediatamente. Valores de
temporização maiores são mais adequados a eventos transientes e novas escolhas de proprietários são melhores em ambientes mais dinâmicos, considerando que novas seleções
sempre retornem os melhores nós proprietários para o nó solicitante.
Para resolver este problema na nova versão do P2MAN, optou-se por adicionar
a possibilidade de abortar o processo de Reparação se um novo pedaço chegar antes do
envio da autorização ao remetente. Assim, atualmente um nó pode entrar no Modo de
Reparação e abortá-lo em tempo, caso perceba a chegada de um novo pedaço da transmissão original. O momento limı́trofe para a interrupção do Modo de Reparação é antes
do envio da autorização ao remetente. Considerando-se que a requisição de reparação
pode solicitar a retransmissão de muitos pedaços, optou-se por uma rede que gera menos
tráfego, o que assegura um bom desempenho do protocolo em ambientes com tráfego
mais intenso.
110
Anais
5. Um Comparativo de Desempenho entre P2MAN e BitHoc
BitHoc é de facto um expoente da literatura sobre a sinergia entre BitTorrent e MANETs.
Seus autores já produziram diversas publicações relacionadas, sendo a mais recente sobre
sua implementação em dispositivos pervasivos reais [Krifa et al. 2009b]. Uma dificuldade
encontrada para comparar P2MAN com o estado da arte foi obter os códigos dos protocolos de trabalhos relacionados. Ao limite dos nossos esforços, tentamos sem sucesso obter
o código do BitHoc para reproduzir os experimentos dos autores no NS-2. Entretanto,
foi possı́vel realizar um comparativo do P2MAN com o BitHoc através do detalhamento
do cenário disposto no artigo original do BitHoc [Krifa et al. 2009a], comparando tais
resultados do BitHoc com os resultados do P2MAN no mesmo cenário.
5.1. Cenário de Simulação
O cenário proposto pelos autores do BitHoc é composto de 40 nós estáticos dispostos em
forma de grande em um plano, como na figura 2. A distância entre dois nós foi definida
em 40m para um alcance de transmissão de 50m. Os autores justificam tal cenário como
sendo ideal para garantir conectividade e reduzir interferências.
Figura 2. Topologia da Simulação [Krifa et al. 2009a].
O nó 0, no canto superior esquerdo, é o nó proprietário do conteúdo a ser distribuı́do e os demais nós são receptores. O tamanho do arquivo foi ajustado para
10M bytes. Todos os nós iniciam o download simultaneamente no tempo t = 1500s.
A simulação encerra quando todos os nós recebem o arquivo. Quando um nó recebe um
arquivo, imediatamente o disponibiliza para compartilhamento. Todos os nós utilizam o
protocolo MAC 802.11 com o mecanismo RTS/CTSData/ACK e enlace de 1 M bps. O
protocolo de rede é o DSDV e o de transporte é o TCP. Os parâmetros usados no BitHoc
constam na tabela 0(a) e os parâmetros do P2MAN constam na tabela 0(b).
(a) BitHoc
Parâmetro
Protocolo de Transporte
Protocolo de Roteamento unicast
block size
max upload num
choking period
choking best neighbors num
received bytes reset interval
(b) P2MAN
Descrição
TCP
DSDV
1 KB
4
40 s
3
80 s
Parâmetro
Protocolo de Transporte
Protocolo de Roteamento Multicast
Tamanho do Pedaço
Temporizador de Reparação
Tabela 1. Parâmetros de Simulação.
Descrição
UDP
PUMA
1 KB
600 ms
VII Workshop de Redes Dinâmicas e Sistemas P2P
111
A métrica geral adotada para a comparação entre os protocolos foi o Tempo
Médio de Entrega. Os resultados representam uma média de 20 execuções e intervalo
de confiança de 95%.
A Figura 3 mostra os tempos médios de entrega dos nós BitHoc (b) e P2MAN (c),
como função do número de saltos para o nó 0. Note-se que neste cenário a maior distância
para o nó 0 é de 12 saltos. Na Figura (b), o quantum q é um parâmetro do BitHoc que
define a razão entre o número de fatias de tempo em que um nó servirá aos vizinhos
próximos, e tempo em que servirá a vizinhos mais distantes.
(a) BitTorrent Padrão: Tempo Médio de Entrega
(b) BitHoc: Tempo Médio de Entrega
(c) P2MAN: Tempo Médio de Entrega
Figura 3. Tempo Médio de Entrega.
Como esperado, o tempo de entrega aumenta a medida que se observa nós mais
afastados da origem dos dados. É possı́vel perceber que os nós P2MAN têm um tempo
de término mais curto cerca de 14% (a um salto) a 60% (a 4 saltos), com melhor êxito
em toda a extensão do gráfico, quando comparado ao BitHoc utilizando o quantum mais
eficiente para este cenário. Comparando-se o desempenho dos P2MAN ao BitTorrent
padrão, com o TTL sem modificações (i.e., valor máximo), os nós P2MAN chegam a
realizar o download em um tempo até 140% (a 12 saltos) mais curto.
112
Anais
6. Conclusão
Este trabalho apresentou uma análise das caracterı́sticas do BitTorrent e de algumas
adaptações do BitTorrent para MANETs, constantes na literatura, com o intuito de relativizar e fomentar a discussão sobre a viabilidade sinérgica entre o BitTorrent e as
MANETs. Através da análise das caracterı́sticas do BitTorrent e das dissonâncias entre BitTorrent e as MANETs, manifestadas através de problemas de adaptação destacados
na literatura, ponderou-se que o BitTorrent pode não ser a opção mais eficiente de compartilhamento entre pares para MANETs.
Também foram apresentados os resultados dos nossos esforços para avançar tecnicamente o P2MAN, nosso protocolo de distribuição de conteúdo entre pares. Foram apresentados o temporizador de Proteção contra Tempestade de Requisições, a implementação
de Multiplas Entregas Simultâneas, cujo desempenho foi apresentado em gráfico, estendendo o artigo original do P2MAN [Doria and Spohn 2009], e o Novo Modo de
Reparação que permite que nós P2MAN possam abortar o processo de autorização de envio na hipótese de chegada de pacotes com atraso superior ao temporizador de reparação.
Por fim, foi apresentado um comparativo do P2MAN com o BitHoc, no simulador NS-2. Os resultados indicaram que os nós P2MAN obtiveram desempenho superior aos nós BitHoc de 14% e 60%, e de até 140% quando o P2MAN é comparado ao
BitTorrent padrão. Como trabalhos futuros, duas novas idéias estão em andamento: (i)
estão sendo testadas versões do P2MAN que transmitem conteúdos em grupos associados
a canais de rádio especı́ficos, por conteúdo, de forma a priorizar transmissões ortogonais
dos conteúdos para reduzir congestionamentos e incentivar o paralelismo. E, (ii) PUMA
e P2MAN estão sendo implementados em dispositivos reais, com versões para Linux, de
modo a ser possı́vel testar seus desempenhos em uma bancada para testes reais.
Referências
Anastasi, G., Ancillotti, E., Conti, M., and Passarella, A. (2009). Design and performance
evaluation of a transport protocol for ad hoc networks. The Computer Journal Advance,
52:186–209.
Cohen, B. (2003). Incentives build robustness in bittorrent. In Workshop on Economics
of Peer-to-Peer Systems, Berkeley, CA, EUA.
Conti, M., Gregori, E., and Turi, G. (2004). Towards scalable p2p computing for mobile
ad hoc networks. In Proceedings of the Second IEEE Annual Conference on Pervasive
Computing and Communications Workshops, page 109.
Delmastro, F., Passarella, A., and Conti, M. (2008). P2p multicast for pervasive ad hoc
networks. Pervasive and Mobile Computing, 4(1):62 – 91.
Ding, G. and Bhargava, B. (2004). Peer-to-peer file-sharing over mobile ad hoc networks.
In Proceedings of the Second IEEE Annual Conference on Pervasive Computing and
Communications Workshops, page 104.
Doria, S. and Spohn, M. A. (2009). A multicast approach for peer-to-peer content distribution in mobile ad hoc networks. In IEEE Wireless Communications and Networking
Conference (WCNC), pages 1–6.
VII Workshop de Redes Dinâmicas e Sistemas P2P
113
Gerla, M., Lindemann, C., and Rowstron, A. (2005). P2P manet’s - new research issues.
In Perspectives Workshop: Peer-to-Peer Mobile Ad Hoc Networks - New Research
Issues, number 05152 in Dagstuhl Seminar Proceedings, Dagstuhl, Germany.
Grossglauser, M. and Tse, D. N. C. (2002). Mobility increases the capacity of ad hoc
wireless networks. IEEE/ACM Trans. Netw., 10:477–486.
Holland, G. and Vaidya, N. (1999). Analysis of tcp performance over mobile ad hoc
networks. In Proceedings of the 5th Annual ACM/IEEE International Conference on
Mobile Computing and Networking, pages 219–230.
Klemm, A., Lindemann, C., and Waldhorst, O. (2003). A special-purpose peer-to-peer
file sharing system for mobile ad hoc networks. IEEE 58th Vehicular Technology Conference, 4:2758–2763.
Ko, S. K. and Kim, Y. H. (2009). Network-aware p2p content sharing over manet. In
Tenth International Conference on Mobile Data Management: Systems, Services and
Middleware (MDM), pages 661–65.
Kortuem, G., Schneider, J., Preuitt, D., Thompson, T., Fickas, S., and Segall, Z. (2001).
When peer-to-peer comes face-to-face: Collaborative peer-to-peer computing in mobile ad hoc networks. In Proceedings of the First International Conference on Peer-toPeer Computing, page 75.
Kozat, U., Koutsopoulos, I., and Tassiulas, L. (2004). A framework for cross-layer design of energy-efficient communication with qos provisioning in multi-hop wireless
networks. In Twenty-third AnnualJoint Conference of the IEEE Computer and Communications Societies, volume 2, pages 1446–1456.
Krifa, A., Sbai, M. K., Barakat, C., and Turletti, T. (2009a). Bithoc: A content sharing
application for wireless ad hoc networks. Pervasive Computing and Communications,
IEEE International Conference on, 0:1–3.
Krifa, A., Sbai, M. K., Barakat, C., and Turletti, T. (2009b). A standalone content sharing application for spontaneous communities of mobile handhelds. In MobiHeld ’09:
Proceedings of the 1st ACM workshop on Networking, systems, and applications for
mobile handhelds, pages 77–78, New York, NY, USA. ACM.
Lee, S.-B., Ahn, G.-S., and Campbell, A. (2001). Improving udp and tcp performance in
mobile ad hoc networks with insignia. IEEE Communication Magazine.
Lee, U., Park, J.-S., Yeh, J., Pau, G., and Gerla, M. (2006). Code torrent: content distribution using network coding in vanet. In MobiShare ’06: Proceedings of the 1st
international workshop on Decentralized resource sharing in mobile computing and
networking, pages 1–5, New York, NY, USA. ACM.
NS-2 (2010). The network simulator. http://www.isi.edu/nsnam/ns.
Oliveira, L., Siqueira, I., and Loureiro, A. (2005). On the performance of ad hoc routing protocols under a peer-to-peer application. Journal on Parallel and Distributed
Computing, 65(11):1337–1347.
Passarella, A., Delmastro, F., and Conti, M. (2006). Xscribe: a stateless, cross-layer
approach to p2p multicast in multi-hop ad hoc networks. In MobiShare ’06: Procee-
114
Anais
dings of the 1st international workshop on Decentralized resource sharing in mobile
computing and networking, pages 6–11, New York, NY, USA. ACM.
Quental, N. C. and Gonçalves, P. A. (2010). Cds-bittorrent: Um sistema de disseminação
de conteúdo para a melhoria do desempenho de aplicações bittorrent sobre manets. In
VI Workshop de Redes Dinâmicas e Sistemas Peer-to-Peer (WP2P).
Rajagopalan, Sundaram, Shen, and Chien-Chung (2006). A cross-layer decentralized
bittorrent for mobile ad hoc networks. In Third Annual International Conference on
Mobile and Ubiquitous Systems: Networking & Services, pages 1–10.
Sbai, M. K. and Barakat, C. (2009). Revisiting p2p content sharing in wireless ad hoc
networks. Lecture Notes in Computer Science, 5918:13–25.
Sbai, M. K., Barakat, C., Choi, J., Hamra, A. A., and Turletti, T. (2008). Adapting
BitTorrent to Wireless Ad Hoc Networks, volume 5198, pages 189–203. Springer Berlin
/ Heidelberg.
Souza, C. and Nogueira, J. M. (2008). Um estudo do bittorrent em redes ad hoc sem
fio crı́ticas com localidade espaço-temporal. In XXV Simpósio Brasileiro de Redes de
Computadores e Sistemas Distribuı́dos, pages 329–342.
Wang, F. and Zhang, Y. (2002). Improving tcp performance over mobile ad hoc networks
ith out-of-order detection and response. In Proceedings of the 3rd ACM International
Symposium on Mobile Ad Hoc Networking & Computing, pages 217–225.
Y. Charlie Hu, S. D. and Pucha, H. (2003). Exploiting the synergy between peer-to-peer
and mobile ad hoc networks. In 9th Workshop on Hot Topics in Operating Systems,
pages 37–42, Lihue, HI, USA.
VII Workshop de Redes Dinâmicas e Sistemas P2P
115
Redes Centradas na Informação: Uma Comparação de
Abordagens
Bruno Magalhães Martins & Antônio Marcos Alberti
Instituto Nacional de Telecomunicações - Inatel
Santa Rita do Sapucaí - MG - Brazil
[email protected], [email protected]
Abstract. The current Internet was designed using the host-centric principle,
which put host connectivity on the center of its original design. As a result, the
network evolved to provide hosts communication through IP routing. Complex
functions were moved from network core to end hosts. Recent surveys suggest that
a significant portion of the current Internet traffic is related to content exchange,
instead of original Internet applications. New communication models, such as
peer-to-peer, appeared to improve content distribution and sharing on the
Internet. However, in recent years the host-centric model began to be questioned
and a new paradigm emerged: the information-centric. Since the Internet today is
basically a content exchanging network, why not to focus on this aspect of its
evolution? In this paper, we discuss NetInf, CCN e PSIRP information-centric
approaches, presenting their characteristics and providing a comparing of them.
The aim is to critically review some of the existing proposals and determine
opportunities and challenges for future research.
Resumo. A Internet atual foi projetada utilizando o paradigma host-centric, que
colocou os terminais da rede no centro do projeto original. Como resultado, a
rede evoluiu para conectar hosts através do roteamento IP. Funções complexas
foram retiradas do núcleo da rede e movidas para os terminais. Levantamentos
recentes sugerem que parte significativa do tráfego atual da Internet é voltada à
transferência de conteúdos, e não mais para as aplicações originais da rede.
Novos modelos de comunicação, dentre eles o peer-to-peer, surgiram para
melhorar a distribuição e a troca de conteúdos na Internet. Entretanto, nos
últimos anos o modelo host-centric começou a ser questionado e um novo
paradigma apareceu: o information-centric (ou redes centradas na informação).
Já que a Internet hoje basicamente é uma rede de transferência de conteúdos e
informações, porque não centrar sua evolução neste aspecto, ao invés da
conectividade de terminais? Neste artigo, discutiremos as propostas de redes
centradas na informação NetInf, CCN e PSIRP, apresentado suas características
e comparado-as. O objetivo é analisar criticamente algumas das propostas
existentes e determinar oportunidades e desafios para pesquisa futura.
1. Introdução
Diante da disseminação do uso da Internet e o aumento da acessibilidade aos
dispositivos de criação e modificação de mídia e informação, hoje as redes de
comunicação passam por uma fase em que grande parte dos usuários conectados está
deixando de ser um mero consumidor de conteúdos, para se tornar produtor. A maioria
destes conteúdos (fotos, vídeos, posts, etc.) é disponibilizada na rede e o grande
problema é que na arquitetura atual, toda a preocupação é centrada nos hosts, não nos
conteúdos gerados e armazenados por estes hosts. Em outras palavras, os usuários se
116
Anais
importam com o conteúdo que a rede possui, enquanto a Internet atual é focada na
localização do armazenamento deste conteúdo. Há uma série de problemas oriundos
desta incompatibilidade de modelos, tais como disponibilidade de conteúdo, segurança
e dependência de localização. Para Van Jacobson1 [Jacobson et al. 2009], a forma direta
e unificada de resolver estes problemas é substituir o “onde” pelo “o que” em relação ao
conteúdo.
Nas redes atuais, o endereço IP é sobrecarregado ao se responsabilizar pela
dupla funcionalidade de identificação e localização dos hosts. Ou seja, a mobilidade na
rede muitas vezes leva a troca do endereço IP, o que pode levar indiretamente a troca de
identificação na rede. É como se você trocasse de identificação ao se mover. Por isto é
tão difícil identificar o originador de um ataque em uma rede IP. O desacoplamento da
identificação e localização existente no endereço IP permite a melhoria do suporte a
segurança, mobilidade, multihoming2. Além disto, a amarração das informações na web
ao URL (Uniform Resource Locator) e ao endereço do domínio e do host onde elas se
encontram, exige o conhecimento prévio da localização da informação para que o
acesso a mesma possa ser feito.
Nas redes orientadas/centradas em informação/conteúdo o fluxo de mensagens é
dirigido para os nós que manifestam o seu interesse através de identificadores de nomes
da informação, em vez de nomes de interfaces de hosts [Rothenberg et al. 2008]. Elas
possuem como funcionalidade principal a interconexão dos produtores de conteúdo aos
consumidores, independente das localizações dos hosts envolvidos na comunicação.
Desta forma, consegue-se um aumento da eficiência na disponibilidade e disseminação
da informação, já que a recuperação dos conteúdos pode ser beneficiada ao utilizar
cópias ao longo da rede. Assim, do ponto de vista do usuário, toda informação terá um
identificador único e esta informação poderá ser recuperada de forma mais eficiente já
que a informação pode ser encontrada em um local mais próximo ou até mesmo no seu
ambiente local, além do aumento do desempenho e facilidade no acesso a estas
informações. Ou seja, o grande desafio destas redes é, portanto, estabelecer um padrão
para nomeação da informação de forma consistente e eficiente, além de fornecer
soluções para roteamento das informações baseadas em informações nomeadas.
O restante deste artigo é dividido da seguinte forma. Na Seção 2 serão
apresentadas três importantes abordagens de redes centradas na informação: NetInf
[Niebert et al. 2008], CCN (Content-Centric Network) [Palo Alto Research Center
2010] e PSIRP (Publish/Subscribe Internetworking Routing Paradigm) [Ain et al.
2008]. Na Seção 3, estas abordagens são comparadas. Isto também é feito por [Ahlgren
et al. 2010]. Finalmente, na Seção 4 são apresentadas as conclusões do artigo.
2. Abordagens de Redes Centradas na Informação
Nas seções seguintes apresentaremos uma visão geral das abordagens NetInf, CCN e
PSIRP, bem como algumas comparações de características mais relevantes destas
abordagens. É importante salientar que apesar das particularidades, os três projetos a
1
Van Jacobson é o autor do cabeçalho TCP/IP e trabalha atualmente como pesquisador do PARC (Palo Alto Research Center Incorporated)
no programa de investigação de redes centrados em conteúdo. Seu ponto de vista é preservar as decisões de design do TCP/IP: simplicidade,
robustez e escalabilidade [Jacobson et al. 2009][Palo Alto Research Center 2010].
2
O termo multihoming significa que existem múltiplas possibilidades de conexões para o acesso à Internet através de uma rede ou de uma
estação. Ou seja, significa ter múltiplas interfaces com múltiplos localizadores para um mesmo host, ao mesmo tempo.
VII Workshop de Redes Dinâmicas e Sistemas P2P
117
serem citados adotam o modelo de comunicação publica/assina (publish/subscribe), na
qual o interessado em uma determinada informação deve solicitá-la a rede.
Publicar significa disponibilizar qualquer conjunto de dados na rede, enquanto a
assinatura de um conteúdo corresponde a uma porção de dados solicitada por algum
interessado na informação. O modelo de
comunicação
publica/assina
(publish/subscribe) visa trazer ao receptor o controle do fluxo de comunicação, saindo,
portanto do modelo atual “receptor aceita tudo”. Os termos “centrado no conteúdo” e
“orientado à informação” são aplicados essencialmente da mesma forma para indicar
redes nas quais os objetos de informação são em si o foco principal do projeto. A seguir,
portanto, os termos informação e conteúdo serão utilizados de forma equivalente.
2.1. 4WARD NetInf
O 4WARD (Architecture and Design for the Future Internet) é um projeto de nova
Internet que tem o apoio do FP7 (EU Framework Programme 7) e visa criar uma nova
arquitetura de rede baseada na abordagem clean slate. O projeto 4WARD é dividido em
seis grupos de trabalho incluindo o NetInf [Niebert et al. 2008]. A ideia principal do
NetInf [Dannewitz 2008][Ahlgren et al. 2010][Dannewitz et al. 2008][Ahlgren et al.
2008] é obter um sistema para recuperação de informação baseado em um identificador
único desta informação. Para tal, é necessário um mecanismo de resolução de nomes
que faça o mapeamento de um identificador para um localizador desta informação. A
proposta considera que este mecanismo deve ser persistente e independente de cópia ou
localização. Em outras palavras, a identificação da informação não pode mudar ao se
relacionar com uma cópia ou com uma localização diferente da informação.
Além disso, o mecanismo de resolução de nomes para identificadores de
informação do NetInf é concebido de forma plana, ou seja, não hierárquico. Assim, este
mecanismo plano é incompatível com a concepção hierárquica do DNS (Domain Name
System) atual. Apesar do mecanismo plano não ser legível a humanos, este mecanismo
suporta melhores mecanismos de segurança e privacidade e não exige entidades
centralizadas de gerenciamento de nomes. Para [Dannewitz 2008], o NetInf estende o
conceito de desacoplamento da identificação e localização com outro nível de indireção,
visando desacoplar os objetos de informação de seus locais de armazenamento, ou seja,
criar acesso à informação independente do local de armazenamento e se beneficiar de
cópias distribuídas ao longo da rede.
O modelo de informação do NetInf é baseado em dois objetos: o objeto de
informação (IO – Information Object) e o objeto de dados (DO – Data Object). Os IOs
são objetos que representam a informação propriamente dita. Eles podem representar
uma imagem, um arquivo de som, um conteúdo de vídeo, páginas Web e assim por
diante. Já os DOs são um tipo especial de IO que representam um objeto no seu nível de
bit. Um DO aponta, por exemplo, para um arquivo, uma seqüência binária resultante da
codificação de mídia, tal como um arquivo com codificação MP3, ou para um texto. A
partir deste modelo de informação do NetInf, a pesquisa e recuperação da informação
pode se desenvolver de forma mais eficiente. Uma pesquisa baseada em um IO, por
exemplo, pode referir-se uma música específica sem especificar a codificação desta música
ou a orquestra que a executa, dado que muitas vezes estas informações não são relevantes
ao usuário. Os IOs, portanto, possibilitam que os usuários localizem o conteúdo interessado
independentemente de sua representação específica ou outras características, que a
princípio, não são interessantes a este usuário.
118
Anais
Segundo [Dannewitz 2008], a pesquisa de objetos de informação do NetInf é
feita através de um mecanismo de busca integrado na arquitetura NetInf, ou
alternativamente, através de um mecanismos de busca externa. Ambos, porém, devem
incluir novos tipos de funcionalidades baseadas em atributos do mundo real de
entidades físicas, tais como posição GPS (Global Positioning System) ou etiquetas de
RFID (Radio Frequency Identification).
O paradigma publica/assina (publish/subscribe) do NetInf é implementado a
partir da publicação de um objeto de informação. Esta publicação é feita ao registrar o
nome de determinado objeto de informação em um sistema de resolução de nomes, e a
assinatura por sua vez, é feita quando algum interessado solicita ao sistema de resolução
de nomes algum objeto publicado. A localização e assinatura de um objeto de
informação no NetInf só é possível, portanto, depois que este for publicado.
Para que se tenha segurança e confiança no conteúdo a ser disseminado na rede,
o NetInf propõe que a informação seja auto-certificável, ou seja, a confiança deve ser
nativa do conteúdo, ao contrário das redes de hoje em que a confiança na informação é
baseada no host que enviou esta informação. A integridade do conteúdo é garantida
através de uma ligação criptográfica entre o objeto de informação e o nome deste objeto
e a autenticidade é garantida a partir da aplicação de uma função hash de chave pública
como parte do nome auto-certificável. A verificação da autenticidade, portanto,
necessita de uma relação com uma entidade externa.
Os nomes da arquitetura NetInf são constituídos de três campos: um campo Tipo
responsável por definir o formato do nome, que especifica por exemplo, o algoritmo
hash utilizado no processo de auto-certificação; o campo Autenticador, responsável por
fazer a ligação entre o identificador do IO à chave pública; e finalmente, o campo
Rótulo, responsável por fazer a identificação do objeto individual. A combinação do
Autenticador com o Rótulo necessita ser único globalmente.
A arquitetura NetInf faz o uso de DHTs (Distributed Hash Tables) para o
roteamento dos conteúdos. Segundo [Cirani e Veltri 2007], as DHTs são uma classe de
sistemas distribuídos descentralizados que prestam um serviço de pesquisa semelhante a
uma tabela hash. Pares <chave, valor> são armazenados na DHT, e qualquer nó pode
participar recuperando o valor associado a uma dada chave. A responsabilidade por
manter o mapeamento entre as chaves e valores é distribuída entre os nós participantes
da topologia virtual DHT. Isso permite as DHTs escalarem um número extremamente
grande de nós e lidar com as chegadas e partidas contínuas de nós. As DHT formam
uma infra-estrutura que pode ser usada para criar serviços mais complexos, tais como
sistemas de arquivos distribuídos, compartilhamento de arquivos peer-to-peer e sistemas
de distribuição de conteúdo, web caching cooperativo, multicast, anycast, serviços de nome
de domínio e mensagens instantâneas.
A recuperação e entrega do conteúdo em NetInf se resume na combinação de
dois processos: o de resolução de nomes, que se responsabiliza por prover a localização
para um determinado identificador de objeto através de consulta em uma DHT; e o
processo de roteamento, que se responsabiliza por encaminhar a requisição para a
localização do armazenamento e retornar o conteúdo associado.
No NetInf existem duas abordagens para lidar com estes dois processos citados:
a primeira alternativa separa a fase de resolução de nomes da fase de roteamento, como
usado tradicionalmente nos esquemas de roteamento baseado em topologia, tais como o
VII Workshop de Redes Dinâmicas e Sistemas P2P
119
OSPF (Open Shortest Path First) e o BGP (Border Gateway Protocol); a segunda
alternativa seria um esquema integrado de roteamento baseado em nomes de conteúdos
(LLC – Late Locator Construction), que combina o caminho de resolução e o caminho
de recuperação em um processo único. Segundo [Ahlgren et al. 2010], este último
esquema executa o roteamento através do mapeamento direto entre o identificador do
objeto de dados e a rota, o que diminui a latência e resulta, provavelmente, em melhor
desempenho. Ou seja, no roteamento LLC o localizador de um objeto é construído
dinamicamente baseado no caminho seguido pelos primeiros pacotes de sinalização
enviados. O assinante consulta o localizador do nó publicador no sistema de resolução
de nomes e envia pacotes de controle para o publicador, a fim de levantar informações
atualizadas da topologia da rede. A localização do objeto é construída no último
momento antes de enviar os pacotes de dados, daí a origem do termo Late Locator
Construction.
2.2. CCN – Content-Centric Network
CCN é um projeto do PARC (Palo Alto Research Center) que visa transformar a forma
como as redes de comunicação de dados atuais operam, através de uma mudança na
arquitetura de rede que faça a recuperação do conteúdo pelo seu nome, e não pela sua
localização. Neste contexto, a principal motivação das CCNs é melhorar a eficiência da
utilização da Internet atual, direcionando o foco da rede para a distribuição de conteúdo.
Desta forma, as CCNs propõem um novo mecanismo de distribuição de
conteúdo com os mesmos princípios de engenharia do IP, porém, utiliza a nomeação de
conteúdo, em vez de identificadores de hosts como foco principal. Segundo Van
Jacobson em [Palo Alto Research Center 2010], a visão das CCNs é reutilizar os
elementos bem sucedidos do TCP/IP, e construir uma nova rede, substituindo o modelo
IP centrado em hosts por um modelo orientado a conteúdo, para ser utilizado como o
protocolo central de interconexão de redes.
Conforme [Jacobson et al. 2009], nas CCNs existem dois tipos de pacotes: o de
interesse e o de dados. Um consumidor envia por broadcast a requisição do conteúdo
interessado através de um pacote de interesse. Esta informação fica armazenada em uma
tabela de interesses pendentes - PIT (Pending Interest Table). Uma base de informação
de encaminhamento - FIB (Forwarding Information Base) é utilizada para encaminhar
pacotes de interesse da tabela PIT, em busca de uma potencial fonte (nó publicador ou
cache) para a informação desejada. Qualquer nó que tenha o conteúdo de mesmo nome
do pacote de interesse enviado pelo consumidor pode responder com um pacote de
dados. Para que uma potencial fonte consiga identificar e localizar o assinante do conteúdo,
os pacotes de interesse deixam, figurativamente falando, “migalhas de pão” ao longo do
caminho, para que os pacotes de informação retornem pelo sentido reverso do caminho.
Desta forma, é possível maximizar o compartilhamento de informações na rede, já que cada
pacote enviado pode ser recuperado por vários consumidores interessados. Esta
característica reduz os custos de operação, pois uma única cópia pode ser compartilhada por
vários assinantes [Jacobson et al. 2009].
O controle de fluxo nas CCNs é baseado numa regra simples na qual um pacote
de interesse pode recuperar no máximo um pacote de dados. Em outras palavras,
pacotes de dados e de interesse utilizam uma razão de um para um, o que mantém o
controle de fluxo balanceado. Um controle de fluxo semelhante é utilizado no TCP,
entre o pacote de dados e o pacote de reconhecimento (Ack - Acknowledge). Os pacotes
120
Anais
de interesse têm o mesmo papel do anúncio da janela deslizante do TCP, ou seja, o
tamanho da janela do transmissor pode variar a partir da quantidade de pacotes de
interesse enviados [Jacobson et al. 2009]. Esta regra básica garante que o controle de
fluxo seja mantido e permite a comunicação de forma eficiente entre várias máquinas
sobre diversas redes heterogêneas.
A segurança nas CCNs é nativa do conteúdo, ou seja, a proteção e a confiança
“viajam” com o próprio conteúdo, evitando assim, várias das vulnerabilidades das redes
IP atuais. Ao contrário do NetInf, nas CCNs os nomes são tipicamente hierárquicos. No
contexto das redes centradas na informação, os mecanismos para resolução de nomes de
forma hierárquica podem criar nomes legíveis a humanos, além de fornecerem “dicas”
para a resolução de localizadores.
Ainda segundo Jacobson [Jacobson et al., 2009], nas CCNs, a relação de
confiança com o publicador é feita através do prefixo do nome do conteúdo, já que cada
pacote enviado contém a assinatura do publicador explícita no seu nome. A assinatura é
feita em cada pacote através do seu respectivo nome e estas assinaturas são padrões de
chaves públicas fornecidas por uma PKI (Public Key Infrastructure). A verificação do
nome com o conteúdo é feita através da respectiva chave privada, pertencente ao
requisitante do conteúdo. A confiança na chave de assinatura e a integridade dos dados
devem ser fornecidas através de mecanismos adicionais. Por exemplo, através de um
certificado baseado em alguma PKI. O paradigma publica/assina (publish/subscribe)
nas CCNs se dá quando um nó anuncia o nome de determinado conteúdo ao roteador. É
assim que a informação é publicada. A assinatura é feita quando um nó interessado no
conteúdo envia um pacote de interesse em busca de um potencial publicador. Os
pacotes de interesse são enviados por broadcast e a escolha de um dado publicador é
feita a partir da análise do maior prefixo correspondente ao nome especificado no
pacote de interesse. Os pacotes de dados seguem o caminho reverso até alcançar o
emitente do pacote de interesse (nó assinante).
2.3. PSIRP – Publish/Subscribe Internetworking Routing Paradigm
O PSIRP [Ain et al. 2008] é um projeto Europeu financiado pelo FP7 que começou em
janeiro de 2008 e tem previsão de término em 2010. O paradigma de roteamento
publica/assina (publish/subscribe) visa a troca do atual modelo de comunicação da
Internet “receptor aceita tudo que lhe for enviado” por um paradigma de comunicação
consensual ou autorizada e controlada totalmente pelo receptor (ou assinante). O PSIRP
propõe o projeto e análise de protocolos criptográficos focados apenas em publicar e
assinar o conteúdo, em vez do paradigma enviar e receber da Internet atual. Publicar
significa tornar um conjunto de dados disponível na rede, enquanto a assinatura de um
conteúdo corresponde a uma porção de dados solicitada por algum interessado na
informação publicada.
Para [Wong et al. 2008], o paradigma de roteamento publica/assina
(publish/subscribe) é um mecanismo atraente para a localização e recuperação de
conteúdo, uma vez que tal mecanismo trata de forma independente os publicadores e os
assinantes de conteúdo. No PSIRP, as mensagens não são dirigidas a qualquer nome de
receptor, já que não existem nomes de receptor ou transmissor fornecidos por redes.
Desta forma, o roteamento da requisição e do próprio conteúdo no PSIRP é dividido em
dois processos: um para o encontro do solicitante (assinante) com uma potencial fonte
VII Workshop de Redes Dinâmicas e Sistemas P2P
121
(publicadora) do conteúdo, e outro destinado à entrega dos pacotes de conteúdo ao
assinante.
Quando um nó publica algum dado, a transferência da informação propriamente
dita não ocorre. O que ocorre é a publicação da disponibilidade desta informação em um
sistema chamado de rendezvous ou ponto de encontro. O rendezvous é responsável pelo
encontro entre o publicador e o assinante de determinada informação. Em outras
palavras, quando um nó se inscreve para determinada informação, a rede encontra a
publicação de interesse e cria o caminho de entrega entre o publicador e o assinante
desta informação.
A arquitetura RTFM (Rendezvous, Topology, Forwarding and Mediation) do
PSIRP é composta por quatro funções [Rothenberg et al. 2008][Zahemzky et al. 2010]:
ponto de encontro (rendezvous), gerenciamento de topologia, encaminhamento e
mediação. O rendezvous é responsável por fazer a ligação de um interessado em um
conteúdo com uma ou mais potenciais fontes para este conteúdo. O gerenciamento de
topologia constrói e mantém caminhos entre diferentes redes de transmissão baseadas
no paradigma publica/assina. O encaminhamento realiza a entrega de pacotes baseada
em técnicas de comutação por rótulos. E finalmente, a mediação refere-se à transmissão
física de dados entre dois nós.
Conforme [Ain et al. 2008], a arquitetura do PSIRP possui ainda um mecanismo
de escopo, utilizado para limitar o alcance de uma informação publicada. Com base em
políticas de governança, um usuário pode construir uma relação de confiança e
privacidade entre as entidades participantes na comunicação (publicadores, assinantes e
a própria informação). Uma determinada publicação pode estar disponível em diversos
escopos e pode ser inserida em um escopo a partir do interesse de um publicador ou de
um assinante.
Ainda segundo [Ain et al. 2008], os identificadores de aplicação (AIds –
Application Identifiers) são utilizados por publicadores e assinantes para classificar,
distinguir e rastrear entidades como dispositivos, produtos, pessoas, títulos de conteúdos
(músicas, endereços de páginas web), serviços (endereço de serviços web ou de email,
número de telefone), etc. Estes identificadores, diferente dos outros identificadores a
serem apresentados, são definidos usando a semântica da aplicação e contextos
específicos.
Os identificadores de Rendezvous (RIds – Rendezvous Identifiers) são utilizados
para ligar os identificadores de nível superior (identificadores de aplicações) com os
identificadores das camadas inferiores (identificadores de encaminhamento). Os RIds
podem ainda incluir operações como autenticação de rede, controle de acesso de
publicadores e de assinantes interessados em participar de um determinado encontro,
além de permitir o encaminhamento de solicitações de conteúdo para um determinado
publicador [Zahemzky et al. 2010].
Os identificadores de encontro podem ser criados por um emissor ou um
receptor de dados a fim de estabelecer uma conexão. Em outras palavras, o publicador
pode adquirir um identificador e enviar para o assinante, ou um assinante pode
selecionar um identificador para o encontro e informar a um potencial publicador.
Existe ainda uma terceira opção para a escolha de identificadores, onde uma aplicação
ou um serviço necessita de um identificador de encontro para estabelecer a
comunicação.
122
Anais
Os identificadores de escopo (SIds – Scope Identifiers) são utilizados para
delimitar a acessibilidade do conteúdo publicado. Os SIds são implementados pelos
RIds para limitar a distribuição de conteúdo a regiões específicas e definir a rota para a
entrega dos pacotes de dados, ao definir o FId (Forwarding Identifiers). Um dos
desafios do PSIRP é gerenciar a escalabilidade relacionada às estruturas de escopos, já
que para estabelecer um determinado ponto de encontro, precisa-se dimensionar
corretamente o escopo relacionado.
Ainda segundo [Ain et al. 2008], um par (RId, SId) é usado pelo sistema de
encontro para determinar o conjunto apropriado de identificadores de encaminhamento
para a entrega dos dados para um conjunto de assinantes. Um único RId pode ser
associado a um conjunto de SIds. Em outras palavras, uma publicação de dados pode
ser associada a um ponto de encontro estabelecido pelo publicador, e ao mesmo tempo,
estar ligada a diferentes escopos de acessibilidade. Resumidamente, existe pelo menos
um ponto de encontro por escopo. O publicador de uma informação deve publicá-la
dentro de um escopo específico, identificando-o durante a operação de publicação.
Os identificadores de encaminhamento (Fids) são utilizados para o transporte
das publicações através das redes. Cada par ativo (RId, SId) possui um mapeamento de
pelo menos um identificador de encaminhamento. As árvores de transmissão
identificadas por um FId podem ser compartilhadas para finalidades de escalabilidade
[Ain et al. 2008].
Para questões de segurança, é esperado que os identificadores sejam concebidos
de maneira semelhante à utilizada pelo HIP, ou seja, utilizando o identificador baseado
em uma chave pública cuja a correspondente chave privada é de posse do publicador.
Isso permite que o host publicador escolha um identificador que possa ser usado por
assinantes para autenticar os dados e verificar se eles foram enviados de fato pelo
publicador que possui a associada chave privada.
Em PSIRP, as propriedades de segurança para mensagens de controle mais
importantes são a proteção da integridade e a autenticação. A proteção da integridade
pode verificar, por exemplo, se o pacote foi modificado, e a autenticação garante que o
publicador possui a permissão do escopo para publicar uma informação com um
determinado par (RId, SId) [Zahemzky et al. 2010].
Conforme [Zahemzky et al. 2010], o PSIRP possui ainda uma autenticação a
nível de pacote (PLA - Packet Level Authentication). A PLA é uma função para prover
segurança aos hosts finais através de uma assinatura criptográfica feita individualmente
em cada pacote. Ela permite ainda, que os nós ao longo do caminho de entrega
verifiquem os pacotes sem que existam associações de confiança pré-estabelecidas com
o publicador. Em PSIRP, a PLA é utilizada geralmente para segurança de mensagens de
controle (mensagens publica/assina), podendo ser ampliada para a sua utilização em
todo o tráfego.
O PSIRP possui ainda um mecanismo anexado aos pacotes para melhorar o
desempenho do encaminhamento de dados, denominado de filtros de Bloom [Ahlgren et
al. 2010]. Os filtros de Bloom são uma simples estrutura de dados aleatória com o
propósito de consultar e selecionar elementos de forma eficiente em um dado conjunto
de participantes, como por exemplo, a escolha de uma rota em um conjunto de rotas. A
desvantagem dos filtros de Bloom é que estes permitem falsos positivos, em
contrapartida, a economia de espaço muitas vezes compensa essa desvantagem quando
VII Workshop de Redes Dinâmicas e Sistemas P2P
123
a probabilidade de um erro é controlada ou é suportada por alguma aplicação [Ahlgren
et al. 2010].
3. Comparações entre NetInf, CCN e PSIRP
Nesta seção são comparadas e discutidas características e opções de projeto mais
relevantes entre as arquiteturas apresentadas.
3.1. Nomeação da Informação
Em qualquer projeto de redes centradas na informação, deve ser possível se referir à
própria informação, independentemente das redes em que ela se encontra. Um esquema
de nomeação para objetos de informação é, portanto, talvez a parte mais importante do
projeto [Ahlgren et al. 2010].
A princípio, os nomes NetInf e PSIRP são semelhantes por usarem um esquema
de nomeação plano, e divergem pelo fato do NetInf utilizar um único namespace,
enquanto o PSIRP utiliza dois namespaces, um para o encontro e outro para o
encaminhamento. O namespace especificado pelo NetInf é semelhante ao do PSIRP
destinado ao encontro. Por outro lado, o NetInf não possui o namespace destinado ao
encaminhamento, pois este namespace é parte do protocolo particular da camada de
rede. Já o esquema de nomeação da CCN utiliza a concepção hierárquica. A estrutura de
nomes para a informação é concebida em forma de árvore, sendo que a raiz da estrutura
representa o prefixo do nome da informação. Isto torna este prefixo único e exclusivo a
um determinado publicador.
Os esquemas de nomeação hierárquicos têm a vantagem de estabelecer nomes
legíveis a humanos e aptos à interação através de um browser. Outra vantagem dos
sistemas hierárquicos é que estes permitem a agregação de estado de roteamento –
routing state – além do fato que, o conteúdo CCN pode ser criado dinamicamente em
resposta a uma solicitação. Esta peculiaridade das CCNs só é possível devido à sua
estrutura de nomes hierárquicos concebidos de forma significativa. Em contrapartida, os
nomes planos possuem melhores propriedades de segurança, já que não dependem de
entidades centralizadas de resolução de nomes para desenvolver esta atividade,
permitindo a auto-identificação das informações. Esta última peculiaridade é bastante
atraente às aplicações que necessitam gerar informações com identificadores de forma
autônoma. A questão mais importante, portanto, seria como fazer a ligação entre o
esquema de nomeação de forma plana e um sistema de resolução de nomes para
endereços como o DNS atual, já que este último é baseado em identificadores
hierárquicos e, portanto, inapropriado para identificadores planos. Ou ainda, no caso de
soluções clean-slate, como relacionar os nomes planos a localização e posterior
encaminhamento.
Existem outras propostas de encaminhamento de conteúdo e consulta a sistemas
de cache baseado em nomes planos na literatura como o SPSwitch baseado em filtros de
Bloom [Rothenberg et al. 2008]; consulta para roteamento de conteúdo baseado em
DHTs [Ahlgren et al. 2010][Liu et al. 2008]; além do roteamento baseado em rótulos
planos (ROFL – Routing on Flat Labels) [Campista 2010].
124
Anais
3.2. Questões de Segurança
O fato de que nas redes centradas em conteúdos, as mensagens enviadas contêm
controles relacionados apenas ao conteúdo cria um isolamento natural entre informação
e os hosts da rede, tornando estes menos vulneráveis, já que usuários mal-intencionados
terão mais dificuldade em acessar estes hosts usando apenas informação fraudulenta. As
abordagens baseadas em nomes planos estão fortemente ligadas às relações de
confiança, já que os nomes possuem ligações com o conteúdo através de criptografia de
chave pública.
A integridade dos objetos de dados do NetInf é feita através do campo
autenticador, que faz a ligação direta com o publicador dos dados. “Se o campo de
rótulo contiver um valor de hash criptográfico calculado sobre o objeto de dados, o
nome também conterá uma ligação direta com o conteúdo, que fornece, assim, a autocertificação da integridade do objeto de dados” [Ahlgren et al. 2010]. Nas CCNs, a
relação com o publicador é feita através do seu prefixo único explícito em cada pacote
de dados enviado. A assinatura é feita em cada pacote através do respectivo nome e
estas assinaturas são padrões de chave pública. A verificação do nome com o conteúdo
é feita através da respectiva chave privada. A confiança na chave de assinatura e a
integridade dos dados devem ser fornecidas através de mecanismos adicionais. Por
exemplo, um certificado baseado em PKI. Para o PSIRP a segurança é garantida através
dos identificadores de encontro e escopo construídos a partir do hash do conteúdo, além
de possuir um mecanismo de segurança indireto através do hash de chave pública
adicionado ao rótulo. Mais ainda, o PSIRP dispõe da autenticação em nível de pacote
(PLA – Packet-Level Authentication) adicionada para o encaminhamento de pacotes, a
fim de combater ataques DoS [Ahlgren et al. 2010].
3.3. Roteamento
Nas CCNs o pacote de interesse é roteado por broadcast para uma potencial fonte que
contenha os dados desejados. O publicador escolhido será o que possuir o maior prefixo
correspondente ao nome especificado no pacote de interesse, daí mais uma
peculiaridade dos nomes hierárquicos nesta abordagem. Os pacotes de dados seguem o
caminho inverso até alcançar o solicitante. Além disso, segundo [Jacobson et al. 2009],
as CCNs podem utilizar os protocolos de roteamento convencionais, já que elas são
compatíveis com as redes IP. Já no NetInf e no PSIRP o roteamento é dividido em dois
processos: um para o encontro do solicitante com uma potencial fonte, e outro destinado
à entrega dos pacotes propriamente dita. O PSIRP possui ainda um mecanismo de
encaminhamento de dados baseados em filtros de Bloom anexado aos pacotes. Já o
NetInf possui o mecanismo de roteamento baseado em nomes (LLC), que integra os
caminhos de resolução e recuperação, e que segundo [Ahlgren et al. 2008] pode resultar
em melhor desempenho.
3.4. Aspectos de Caching
Um dos princípios das redes centradas na informação é que os usuários podem se beneficiar
de cópias de conteúdos espalhados ao longo da rede, permitindo otimizar a disseminação
global da informação. O cache de objetos de informação, portanto, é parte crucial de todas
as três abordagens de redes centrada em informações. Na
arquitetura
NetInf,
o
conteúdo em cache também pode ser encontrado através de busca local ou ser encontrado
através do sistema de resolução de nomes se, neste caso, existir uma cópia em cache neste
VII Workshop de Redes Dinâmicas e Sistemas P2P
125
local. Há também a possibilidade do transporte NetInf encontrar cópias em cache no
caminho para a localização de uma cópia do objeto. Já no PSIRP, o cache de conteúdo se
limita ao escopo e ao ponto de encontro. Nas CCNs, o conteúdo em cache pode ser
localizado através de um mecanismo de pesquisa local ou ao longo do caminho do pacote
de interesse até a potencial fonte. Questões de caching são indispensáveis até quando se fala
nos seus aspectos legais e contratuais. Por exemplo, quem se responsabiliza pelos conteúdos
em cache ao longo da rede, os desenvolvedores do conteúdo ou os proprietários do cache?
Quais são os direitos e obrigações dos usuários que fornecem o cache para operadoras de
serviços?
3.5. Relação entre o Publicador e o Assinante
Como citado anteriormente, nas CCNs, apenas quando um nó anuncia um prefixo de
determinado conteúdo ao roteador a informação é publicada. A assinatura é feita quando um
nó interessado no conteúdo envia um pacote de interesse em busca de um potencial
publicador. Já no NetInf, a publicação é feita ao registrar o nome de determinado objeto de
informação em um sistema de resolução de nomes e a assinatura é feita a partir da
solicitação do objeto publicado ao sistema de resolução de nomes. No PSIRP, o contato
entre o publicador e o assinante é feito através do processo de rendezvous.
3.6. Encontro entre o Emissor e o Receptor
No NetInf e no PSIRP, o ponto de encontro entre o emissor e o receptor é estabelecido
apenas depois que os identificadores são registrados em um sistema de resolução de
nomes. Já nas CCNs, o publicador pode criar o conteúdo dinamicamente a partir de uma
solicitação. Em outras palavras, um interessado pode construir um nome para
determinado conteúdo que ainda não exista, e o remetente cria dados em resposta,
completando o encontro.
3.7. Escalabilidade
Um novo projeto de arquitetura de rede que aspira tornar-se uma verdadeira rede
mundial deve ser escalável ao extremo, permitindo que trilhões de nós e terminais sejam
conectados a rede. Além disso, os projetos devem ser capazes de transportar os exabytes
de informação mensal Internet atual e futura, e ainda ser economicamente viável
[MINTS 2010]. Os roteadores das CCNs têm dois desafios ao lidarem com a escala: o
gerenciamento do número de prefixos de nomes e o armazenamento de informações de
estado por pacote (Per-Packet State). As informações de estado são necessárias ao
longo do caminho fim a fim, o que representa uma desvantagem do ponto de vista da
escalabilidade. Já para o PSIRP, o desafio é gerenciar a escalabilidade relacionada às
estruturas de escopos, já que para estabelecer um determinado ponto de encontro,
precisa-se dimensionar corretamente o escopo relacionado. Outro desafio é o
gerenciamento do encaminhamento baseado no filtro de Bloom, que se torna um
problema quando usado com grandes grupos de destinatários. O desafio de
escalabilidade enfrentado pela arquitetura NetInf é que cada objeto de informação deve
ser representado por uma entrada no sistema de resolução de nomes global.
3.8. Outros Aspectos
As abordagens de redes centradas no conteúdo devem suportar a mobilidade tanto dos
objetos de informação, quanto de hosts e redes [Martins e Alberti 2011]. Para o NetInf e
o PSIRP, a mobilidade da informação é garantida pela persistência de nomes e pelo
126
Anais
desacoplamento entre a identificação e a localização da informação. Enquanto a
mobilidade de entidades físicas (nós e redes) é suportada por mecanismos adicionais de
desacoplamento da identificação e localização de hosts, semelhantes ao Mobile IP
[Perkins 2002] (acrescentando o care-of-address) e ao HIP [Moskowitz e Nikander
2006] (conceito de rendezvous), para o NetInf e PSIRP, respectivamente. Dado que
a localização do objeto de informação influência semanticamente nos nomes
CCNs, estas redes não desacoplam a identificação e a localização da informação em um
dado domínio. O desacoplamento não acontece também para entidades físicas, como
hosts e redes. Segundo [Jacobson et al. 2009], as CCNs endereçam conteúdo e não
hosts, não existindo a necessidade de mapear um endereço a partir de um identificador.
Neste caso, quando uma conexão é interrompida devido a um evento de mobilidade,
esta conexão pode ser restabelecida logo que exista uma conectividade disponível. A
Tabela 1 é uma versão modificada e ampliada da tabela contida em [Ahlgren et al.
2010] e resume as comparações feitas entre as abordagens de redes centradas no
conteúdo.
Tabela 1. Resumo das comparações em Redes Centradas na Informação
NetInf
CCN
PSIRP
Esquema de Nomeação
Um namespace plano.
Hierárquico.
Nomes
Nomes persistentes, opacos e não
agregáveis.
Ligação direta do nome com a chave
pública.
Nomes persistentes, legíveis e
agregáveis.
Ligação com o publicador através do
prefixo do nome.
Dois namespaces planos. Um para o
rendezvous e outro para o transporte.
Nomes persistentes, opacos e não
agregáveis.
Hash de conteúdo + hash chave
pública + autenticação a nível de
pacote.
Dois roteamentos: Um para
encontro, outro para transporte +
filtro de Bloom.
Limitado ao escopo do ponto de
encontro.
Segurança
Roteamento
Dois roteamentos: um para encontro, Broadcast do pacote de interesse para
outro para transporte + LLC.
fonte, dados caminho reverso.
Caching
Localizado pelo mecanismo de
resolução de nomes; pesquisa local ou
transp.
Pub: Objeto de Informação
As: Consulta NRS. Encontro necessita
do registro prévio do nome junto ao
NRS.
Uma entrada no NRS por objeto;
agregação de publicação.
Semelhante ao Mobile
IP – Home Address e
Care-of Address.
Desacopla –
Persistência de nomes.
Relação entre o
Publicador e o Assinante
Escalabilidade
Desacoplamento ID/Loc
Hosts
Desacoplamento
ID/LOC
Informação
Localizado por pesquisa local ou no
caminho para o publicador.
Pub: Prefixo de nome
As: Envia o interesse. O encontro pode
ser criado dinamicamente em resposta a
um interesse.
Nº de prefixos; estado de encam. por
pacote.
Mapeamento ID/LOC
considerado
desnecessário.
Não desacopla
Localização influencia
semanticamente no nome.
Pub: Estabelece o ponto de encontro
As: Estabelece contato.
Encontro desenvolvido no
rendezvous.
Confusa – depende das estruturas de
escopos.
Semelhante ao HIP Rendezvous.
Desacopla –
Persistência de nomes.
4. Conclusões
As abordagens de redes centradas na informação propõem o desenvolvimento de uma
rede com o foco na informação propriamente dita em vez de hosts, se preocupando,
sobretudo com a segurança, escalabilidade, eficiência, qualidade e suporte a
comunicação em tempo real. Tais abordagens podem ser classificadas como clean slate,
uma vez que redesenham do zero a forma como trocamos informação na Internet. Estas
redes têm como principal função a interligação em grande escala dos desenvolvedores e
consumidores de conteúdo aumentando a eficiência no acesso e na disseminação da
informação.
O grande desafio das redes centradas na informação é estabelecer um padrão
para nomeação da informação de forma consistente e eficiente, além de soluções para
localização e roteamento das informações baseadas nas informações nomeadas. Assim
sendo, a principal diferença entre as três abordagens é o sistema de resolução de nomes,
VII Workshop de Redes Dinâmicas e Sistemas P2P
127
já que os demais desafios como roteamento, segurança e escalabilidade estão fortemente
ligados ao esquema de nomeação escolhido. A arquitetura NetInf e o PSIRP utilizam o
esquema de resolução de nomes na forma plana e a CCN utilizam o esquema de
nomeação de forma hierárquica. Ainda, os sistemas com nomeação plana sofrem com a
incompatibilidade com o DNS atual e, portanto, necessitam de um mecanismo que
interopere com o DNS ou a concepção de um sistema de resolução de nomes para
nomes planos que seja escalável. Em contrapartida, estes sistemas planos possuem uma
ligação mais próxima com os requisitos de segurança.
Outro desafio para a utilização de nomes planos é que estes nomes são opacos e
livres de semântica. Em outras palavras, um nome plano é representado por uma
seqüência de bits, a qual não traz informações legíveis e interpretáveis a usuários. A
arquitetura NetInf faz o uso de DHTs. Para nomes planos, sistemas baseados em DHTs
são uma abordagem promissora [Ahlgren et al. 2010]. Entretanto, ao contrário das
CCNs, estes sistemas requerem que o conteúdo seja publicado explicitamente para
informar à DHT a sua localização antes que a informação possa ser recuperada.
Referências
Jacobson, V., Smetters, D. K., Thornton, J. D., Plass, M., Briggs, N., Braynard, R.,
Networking Named Content, ACM CoNEXT 2009, Italy.
Palo Alto Research Center Incorporated. Focus Area. Disponível em 24/06/2010 no
endereço http://www.parc.com/work/focus-area/networking/.
Rothenberg, C., Verdi, L., Magalhães, F., Towards a New Generation of InformationOriented Internetworking Architectures, ACM CoNEXT 2008, EUA.
Niebert, N., Lundgren, L e Abramowicz, H., 4WARD Deliverable 0.1, Dissemination
and Exploitation Plan, 2008.
Dannewitz, C., NetInf: An Information-Centric Design for the Future Internet, 2008.
Ahlgren, B., D’ambrosio, M, Dannewitz, C., et al., Second NetInf Architecture
Description. Deliverable 6.2. 2010. Último acesso em 20/04/2010 no endereço
http://tools.ietf.org/html/draft-ietf-lisp-06/.
Dannewitz, C., Pentikousis, K., Rembarz, R., Renault, É., Strandberg, O., Ubillos, J.,
Scenarios and Research Issues for a Network of Information, MobiMedia 2008,
Finland.
Ahlgren, B., D’ambrosio, M, Marsh, I., Marchisio, M., Strandberg, O., Design
Considerations for a Network of Information, ACM CoNEXT 2008, EUA.
Cirani, S., Veltri, L., Implementation of a Framework for a DHT-based Distributed
Location Service, SoftCOM 2008, Itália.
Zahemzky, A., Borislava, G., Rothenberg., C.E., Experimentally Driven Research in
Publish/Subscribe Information Centric Internetworking, Tridentcom 2010,
Alemanha.
Nikander, P., Marias, G., Towards Understanding Pure Publish/Subscribe
Cryptographic Protocols, Cambridge Security Protocols Workshop (SPW 2008),
2008.
128
Anais
Liu, S., Bi, J., Wang, Y., A DHTs-Based Mapping System for Identifier and Locator
Separation Network, First International Conference on Advances in Future Internet,
2009, EUA.
Campista, M. E., et al., Interconexão de Redes na Internet do Futuro: Desafios e
Soluções.
2010.
Disponível
em
15
set.
2010
no
endereço
http://www.gta.ufrj.br/ftp/gta/TechReports/CFM10.pdf.
Minnesota Internet Traffic Studies (MINTS), The Exabyte Era, Acessado em 20 de
setembro de 2010 no endereço http://www.dtc.umn.edu/mints/references.html.
Perkins, C., IP Mobility Support for IPv4, RFC3344, 2002.
Moskowitz, R., Nikander, P., Host Identity Protocol (HIP) Architecture, RFC4423,
2006.
Ain, M., et al., PSIRP Publish-Subscribe Internet Routing Paradigm Deliverable 2.2:
Conceptual Architecture of PSIRP Including Subcomponent Descriptions, 2008.
Wong, W., Verdi, F., Magalhães, M. F., A Security Plane for Pub-Sub Based Content
Oriented Networks, ACM CoNEXT Conference, 2008.
Martins, B. M., Alberti, A. M., Host Identification and Location Decoupling: A
Comparison of Approaches, International Workshop on Telecommunications (IWT
2011), 2011, Brasil.
VII Workshop de Redes Dinâmicas e
Sistemas P2P
♦
Sessão Técnica 4
Segurança e Desempenho
VII Workshop de Redes Dinâmicas e Sistemas P2P
131
Distribuição de Conteúdo Multimı́dia em Tempo Real com
Transporte de Fluxos Controlados e Não Confiáveis entre
Pares
Leandro M. de Sales1 , Hyggo O. de Almeida2 , Angelo Perkusich2 , Rafael A. Silva1
1
Instituto de Computação
Universidade Federal de Alagoas (UFAL)
57.072-970 – Maceió – AL – Brasil
2
Centro de Engenharia Elétrica e Informática
Universidade Federal de Campina Grande (UFCG)
58.429-140 – Campina Grande – PB – Brasil
{leandro,rafaelsilva}@ic.ufal.br, [email protected], [email protected]
Resumo. A transmissão de conteúdo multimı́dia em tempo real através da Internet é de fundamental importância para as diversas aplicações atuais como voz
sobre IP, videoconferência, jogos e TV pela Web. Os protocolos de transporte
mais conhecidos - TCP e UDP - não são efetivos quando se deseja transmitir
dados destas aplicações. Neste sentido, a IETF tem trabalhado em novos protocolos de transporte que aumentem a qualidade destas aplicações multimı́dia.
Dentre estes novos protocolos, o DCCP (RFC 4340) é efetivo em transmissões
de conteúdo multimı́dia através da Internet. Todavia, o DCCP não é efetivo em
cenários onde existam muitos nós receptores e apenas um nó transmissor. Portanto, este artigo propõe o MU-DCCP, uma extensão do protocolo DCCP capaz
de permitir transmissões de dados multimı́dia de 1 para muitos nós e controle
de congestionamento de tráfego não confiável. O MU-DCCP utiliza multicast
quando disponı́vel ou um fluxo unicast por cada rede de destino e compartilhamento de dados entre os nós receptores. Com o uso do MU-DCCP, constata-se
uma redução considerável de congestionamento na rede.
1. Introdução
A transmissão de conteúdos multimı́dia em tempo real através da Internet tornou-se uma
necessidade em aplicações como Voz sobre IP (VoIP), Videoconferência, Jogos e WebTV.
Aplicações deste tipo implementam mecanismos sofisticados para melhorar a qualidade
dos fluxos de dados e utilizar de forma eficiente os recursos disponı́veis da rede. Na
prática, tais mecanismos são implementados em forma de protocolos de rede com o intuito de: (i) reduzir altos nı́veis de congestionamento na rede; (ii) manter a eqüidade entre
diferentes fluxos transmitidos por diferentes sistemas finais conectados à rede; e (iii) garantir nı́veis mı́nimos de qualidade do conteúdo multimı́dia sendo transmitido.
Aplicações como as supracitadas estão ganhando cada vez mais espaço no que
diz respeito a adeptos em suas utilizações, principalmente na Internet. Para se ter uma
idéia deste crescimento, recentemente a empresa Cisco publicou um artigo [Leavitt 2010]
onde apresentou uma previsão de que em 2014 o tráfego de video será maior do que o
tráfego P2P em 2009, o que correspondeu a 39 % do tráfego naquele ano. A empresa
prevê também que em 2014, o tráfego de VoIP, vı́deo e jogos na Internet alcançará a
marca de 40 Exabytes/mês, quase 50 % do tráfego de dados total na Internet previsto para
2014. Embora já se saiba o potencial do modelo de serviço P2P, esta previsão demonstra o nı́vel de aceitação dos usuários em compartilhar seus arquivos e obter mais dados
disponibilizados por outros usuários. Recentemente, a Paramount Pictures publicou uma
nota [Freak 2011] informando que passará a transmitir filmes através de grandes redes
P2P, tais como o BitTorrent. A própria empresa BitTorrent anunciou que está trabalhando
em uma aplicação P2P para transmissão de conteúdos multimı́dia em tempo real. Por
132
Anais
último, no final de março/2011, a Amazon anúnciou [Amazon 2011] que também entrará
na disputa por uma fatia deste tipo de serviço. A empresa disponibilizará um reprodutor
de conteúdo multimı́dia completamente online, onde as pessoas poderão comprar músicas
e vı́deos online e em seguida reproduzi-los em tempo real, com os dados armazenados na
infra-estrutura de computação nas nuvens da empresa.
Diante deste cenário, desenvolver protocolos de rede para dar suporte a estas novas formas de fornecer serviços multimı́dia através da Internet tem se tornado uma tarefa
ainda mais complexa, pois exige-se uma harmonia entre os requisitos mencionados anteriormente em meio às mudanças no consumo e disponibilidade de recursos da rede.
Os protocolos para a Internet precisam ser projetados para inferir o estado da rede e ao
mesmo tempo tomar decisões de acordo com as mudanças detectadas de forma rápida.
Do ponto de vista da camada de transporte da pilha TCP/IP, protocolos tradicionais de
transporte como o UDP e o TCP não foram projetados para tal, sendo deixado a cargo dos
desenvolvedores das aplicações implementarem seus próprios mecanismos para controle
de congestionamento e de fluxos de dados sem garantia de entrega, particularmente no
caso do uso do UDP, adotado na maior parte das aplicações multimı́dia. Nos casos em
que se tentam utilizar TCP em aplicações multimı́dia em tempo real, o mesmo não apresenta um desempenho satisfatório porque se implementa controle de congestionamento e
garantia de entrega de uma forma não adequada para aplicações multimı́dia com transmissão de dados em tempo real.
Visando melhorar este cenário, novos protocolos de transporte de dados para a Internet foram padronizados pela IETF, onde os principais foram o protocolo DCCP (Datagram Congestion Control Protocol) [Kohler et al. 2006b] [Kohler et al. 2006c] e o SCTP
(Stream Control Transmission Protocol) [Jungmaier 2003]. No contexto deste trabalho, o
foco da pesquisa está no protocolo DCCP e, por este motivo, discussões acerca de outros
novos protocolos de transporte, como o SCTP, serão omitidas.
1.1. Cenário de aplicação e escopo do trabalho
Neste trabalho, o cenário de aplicação analisado envolve a transmissão de dados multimı́dia em tempo real e o uso de algoritmos de controle de congestionamento durante a
transmissão de dados visando compartilhar o canal de transmissão de forma equilibrada
entre todos os nós presentes na rede. Este cenário geralmente envolve diversos desafios,
tais como: (i) permitir que fluxos multimı́dia convivam com fluxos de dados de aplicações
elásticas sem que estes últimos sejam degradados pelos primeiros – vasta utilização do
protocolo TCP; e (ii) evitar perdas excessivas de dados por parte das aplicações multimı́dia em questão, pois, neste caso, não faz sentido retransmitir dados quando estes são
perdidos.
Existem diversos exemplos de aplicações que podem ser aplicados no cenário investigado, principalmente quando se utiliza o modelo de serviço P2P, tais como:
• Aplicações para transmissão de conteúdo multimı́dia em tempo real de um nó
da rede para um outro, ou para um conjunto de outros nós. Por exemplo, sites
durante a transmissão de dados, online como o livestream.tv e streamtheworld.com
permitem que um usuário transmita conteúdos multimı́dia do seu computador para
milhares de outros usuários conectados à Internet;
• Aplicações de telefonia IP, tais como o Skype, principalmente considerando o
modo de conversa em grupo;
• TV Online, por exemplo, transmissões através da Internet de jogos da copa do
mundo ou do campeonato brasileiro de futebol; e
• Jogos, videoconferência 1-para-muitos e rádios online. Para estes exemplos, existem muitos usuários interessados por um mesmo conteúdo, porém poucos dados
individualizados. Ou seja, nada muda em termos dos dados que cada nó receptor
receberá do nó transmissor.
VII Workshop de Redes Dinâmicas e Sistemas P2P
133
Uma caracterı́stica fundamental compartilhada por todos os exemplos supracitados é que na transmissão de dados sempre existe um nó gerador do conteúdo e milhares
de nós receptores (1 → N). Quando se projeta um protocolo de rede para este fim, deve-se
levar em consideração esta caracterı́stica da aplicação para que se possa obter resultados
significativos na qualidade do fluxo de dados multimı́dia sendo transmitido e na efetiva
utilização dos recursos da rede.
Neste contexto, as duas grandes questões que surgem são: (i) como fazer isto de
forma padronizada e assim evitar que cada desenvolvedor de aplicação tenha que implementar este tipo de mecanismo na sua própria aplicação, o que aumentaria a sua complexidade e o seu gerenciamento do ciclo de vida; e (ii) o que pode ser aproveitado do que
está disponı́vel para atingir o objetivo da primeira pergunta.
A seguir, será abordada uma discussão geral acerca da utilização dos protocolos de
transportes da pilha TCP/IP quanto utilizados para transmissão de fluxos multimı́dia em
tempo real, assim como detalhes e problemas do protocolo DCCP em transmissões multimı́dia em tempo real. Na Seção 3, será apresentada discussões sobre o problema tratado
neste trabalho. Na Seção 4, será apresentado o MU-DCCP, uma versão multi(uni)cast do
protocolo DCCP para distribuição de conteúdos multimı́dia em tempo real e com suporte
a controle de congestionamento e compartilhamento de fluxos multimı́dia entre pares. Na
Seção 5 será apresentada a metodologia utilizada nesta pesquisa e os resultados obtidos
com discussões relacionadas. Por fim, na Seção 6 serão apresentadas as conclusões desta
pesquisa.
2. Visão geral do TCP, UDP e DCCP em cenários de aplicações multimı́dia
em tempo real
O protocolo UDP tem sido largamente utilizado em aplicações multimı́dia em tempo real
por ser um protocolo leve, fazendo uso apenas do serviço de melhor esforço do IP para
transmitir dados na Internet. Com o passar dos anos e antes do DCCP, o UDP se tornou
a primeira e única opção para transmissão de dados multimı́dia em tempo real, porém
gerando diversos efeitos colaterais nas grandes redes, os quais são vastamente discutidos
na literatura[Floyd et al. 2006, de Sales et al. 2008b, de Sales et al. 2008a].
Para se ter uma idéia dos efeitos colaterais gerados na rede com o uso do UDP,
observa-se o gráfico vazão × tempo ilustrado na Figura 1. Este gráfico corresponde a
um experimento realizado com a transmissão de 1 fluxo TCP competindo com 3 fluxos
de áudio UDP em uma rede Ethernet de 100 Mbps. Observe que o UDP sempre ocupa
o máximo da largura de banda disponı́vel na rede ao passo que não oferece chances para
outros fluxos utilizarem o canal, como é o caso do TCP. Por este motivo, o UDP sempre se
apresenta com altas taxas de perda de pacotes, sobretudo quando há congestionamento na
rede. No caso deste experimento, nos primeiros 50 s, quando não disputava com nenhum
outro fluxo, o fluxo TCP utilizou a rede de forma satisfatória, alcançando uma vazão em
torno de 20 Mbps. Entretanto, após esta fase, quando os três fluxos UDP foram transmitidos na rede, a vazão do fluxo TCP reduziu praticamente para 0, permanecendo assim até
o final do experimento.
O protocolo TCP, por sua vez, atende de forma satisfatória as aplicações que toleram atrasos na entrega de dados e que exigem que estes sejam todos entregues corretamente e em ordem (aplicações elásticas). Porém, em se tratando de transporte de dados
multimı́dia em tempo real, o TCP se torna o protocolo menos apropriado para este fim,
pelo menos comparando-o com o UDP e o DCCP. Nas aplicações de fluxo multimı́dia
em tempo real, é preferı́vel manter o fluxo de dados e reproduzir o conteúdo que chega
a esperar do que a informação perdida ser retransmitida, mesmo diante do fato de que
parte dos dados da aplicação terem sido perdidos. Ao utilizar o TCP, isto não é possı́vel.
O principal motivo é que o TCP implementa uma entrega confiável de dados adotando a
abordagem de retransmitir qualquer pacote perdido quando: (i) nenhuma confirmação de
recepção (ACK) de pacote for recebida dentro do intervalo de tempo de um temporiza-
134
Anais
25
TCP
UDP−1
UDP−2
UDP−3
Vazão (Mbits/s)
20
15
10
5
0
0
50
100
150
200 250
Tempo (s)
300
350
400
Figura 1. TCP × UDP. Após 50 s do inı́cio do experimento, o fluxo UDP ocupa
toda a largura de banda disponı́vel na rede.
dor de retransmissão (RTO); e (ii) pela recepção de três pacotes contendo a confirmação
de recepção do último pacote recebido corretamente. Esta estratégia acarreta em atrasos
indesejáveis quando se trata de transmissão de dados multimı́dia em tempo real.
Em condições de congestionamento na rede, o atraso fim a fim aumenta e conseqüentemente degrada a qualidade do conteúdo multimı́dia sendo transmitido. Esta
situação é agravada com a retransmissão de pacotes perdidos e que podem não fazer mais
sentido à aplicação receptora devido ao comportamento transiente dos fluxos multimı́dias.
Neste caso, se os pacotes de dados retransmitidos não alcançarem o receptor até um determinado instante, estes serão descartados. A conseqüência disso é o desperdı́cio no uso
dos recursos da rede, pois buffers dos roteadores são alocados para processar e repassar
pacotes que, nestes casos, terminam sendo inúteis às aplicações.
O comportamento do TCP para situações como a mencionada anteriormente pode
ser observado no gráfico ilustrado na Figura 2. No experimento realizado, transmitiu-se
um áudio com duração de 100 s, armazenado no destino e em seguida comparado com
o original. Neste caso, constatou-se que apenas 30 % do áudio alcançou o destino, fato
ocorrido devido ao excesso de retransmissões de pacotes que foram perdidos na rede
quando considerado fluxos TCP disputando com fluxos UDP.
2.1. O Protocolo DCCP
Com apenas essas duas opções para transporte de dados na Internet e objetivando promover melhorias nos serviços oferecidos pelas aplicações multimı́dia, a IETF aprovou
a especificação do protocolo DCCP para transporte de dados multimı́dia para Internet.
Trata-se de um protocolo de rede localizado na camada de transporte da pilha TCP/IP, tal
como o TCP e o UDP. É um protocolo orientado à conexão, não garante entrega e nem
ordenação dos dados transmitidos. Todavia implementa controle de congestionamento
para transmissão não-confiável de fluxo de dados [de Sales et al. 2008b].
Sendo assim, o DCCP herda do TCP as caracterı́sticas de ser orientado à conexão e
fornecer controle de congestionamento. Do UDP, o DCCP herda as caracterı́sticas de não
garantir entrega e nem ordenação dos dados transmitidos. Além destas caracterı́sticas, o
DCCP também adiciona dois conceitos novos: a escolha tardia de dados e um arcabouço
para gerenciamento dos algoritmos de controle de congestionamento de forma modular.
A escolha tardia de dados permite a mudança de dados de um pacote mesmo depois
que o mesmo já tenha sido enviado para a camada de transporte e ainda não tenha sido
VII Workshop de Redes Dinâmicas e Sistemas P2P
135
TCP−Reno x UDP
Original
Audio TCP
−8
RMS (dB)
−10
−12
−14
−16
−18
−20
0
20
40
60
80
100
Tempo (s)
Figura 2. TCP Reno × UDP, sendo o TCP enviando um arquivo de áudio.
enviado através da rede. Já o arcabouço de gerenciamento de algoritmos de controle de
congestionamento permite adicionar novos algoritmos de controle de congestionamento
à aplicação e utilizá-los mesmo que uma conexão DCCP já tenha sido estabelecida.
Para entender as melhorias providas pelo protocolo DCCP, considere o gráfico
vazão × tempo apresentado na Figura 3. Neste gráfico, ilustra-se os comportamentos
dos protocolos TCP e DCCP quando utilizados para transmissão de um arquivo e de um
conteúdo multimı́dia, respectivamente. A partir do gráfico, é possı́vel constatar que os
protocolos TCP e DCCP compartilham entre si a largura de banda disponı́vel, onde cada
fluxo consegue transmitir dados na rede. Note que o comportamento do protocolo TCP
para os 50 s iniciais foi similar ao confronto TCP × UDP (Figura 1). Porém, diferentemente do que ocorreu naquele caso, após os primeiros 50 s dos confrontos TCP × DCCP,
a vazão do protocolo TCP continuou sendo satisfatória.
2.1.1. Arcabouço Modularizado de Algoritmos de Controle de Congestionamento
O DCCP oferece três algoritmos de controle de congestionamento, chamados CCIDs
(Congestion Control IDentifiers). Os CCIDs são os componentes responsáveis por oferecer o controle de congestionamento em conexões DCCP. No Linux, os CCIDs são
módulos do kernel que funcionam sobre o núcleo da implementação do DCCP. Como tal,
podem ser carregados e descarregados a qualquer momento, e as aplicações podem selecionar um CCID adequado para um determinado padrão de fluxo multimı́dia. Por exemplo, aplicações VoIP são caracterizadas pela transmissão de rajadas de pequenos pacotes
seguidas de perı́odos de silêncio, enquanto aplicações de vı́deo sob demanda geralmente
transmitem conteúdo multimı́dia a taxas constantes. Nesse caso, para uma aplicação VoIP
é melhor usar uma técnica de controle de congestionamento criada para VoIP. Esta idéia
não se aplica em protocolos como o TCP e o UDP.
Os CCIDs padronizados são:
CCID-2 [Kohler et al. 2006a], CCID3 [Kohler and Handley 2006] e o CCID-4 [Kohler et al. 2007]. O CCID-2 (RFC
136
Anais
25
TCP
DCCP−1
DCCP−2
DCCP−3
Vazão (Mbits/s)
20
15
10
5
0
0
50
100
150
200 250
Tempo (s)
300
350
400
Figura 3. TCP × DCCP. Ambos os protocolos conseguem transmitir dados na
rede.
4341) é melhor para aplicações que usam toda a banda de rede disponı́vel e se adaptam a
alterações súbitas de banda. Assemelha-se ao controle de congestionamento do TCP, que
se baseia no conceito de janela de congestionamento. O tamanho dessa janela determina
quantos pacotes o remetente tem permissão para enviar pela rede. Isso significa que
quanto maior for a janela de congestionamento, mais pacotes o DCCP está autorizado a
enviar dados pela rede.
Quando o CCID-2 detecta que um pacote foi perdido, ele diminui pela metade a
janela de congestionamento. Tal ação caracteriza uma mudança abrupta na taxa de transmissão, principalmente para aplicações multimı́dia. No estado inicial de transmissão, a
janela de congestionamento aumenta de forma exponencial conforme os pacotes enviados são confirmados, até alcançar a fase de contenção do congestionamento. Na fase de
contenção, a taxa de transmissão aumenta linearmente até que aconteça o primeiro evento
de perda de pacote.
O CCID-3 (RFC 4342) implementa um algoritmo de controle de congestionamento baseado no receptor, que controla a taxa do remetente. Periodicamente, o receptor
envia ao remetente pacotes de informação relatando eventos de perda e outras estatı́sticas
de conexão que são inseridas na equação do TFRC (TCP-Friendly Rate Control) (RFC
3448). O resultado desta equação corresponde à taxa de transmissão que o DCCP deverá
utilizar para os próximos envios de pacotes.
Por último, a IETF recentemente publicou a RFC do CCID-4 (RFC 5622), própria
para aplicações que enviam rajadas de pacotes pequenos intercalados por intervalos de
silêncio. A escrita da especificação do CCID-4 também foi uma contribuição no contexto
deste projeto, sendo as principais: melhoria do texto e implementação da especificação
no kernel do Linux.
Para transmissões de dados multimı́dia em redes de computadores, onde satisfazer
os requisitos de tempo pode definir o nı́vel de qualidade da transmissão multimı́dia, o
DCCP pode melhorar a qualidade do fluxo multimı́dia e ainda resolver diversos problemas
de congestionamento da rede, como os causados por retransmissões desnecessárias de
pacotes feitas pelo protocolo TCP ou por problemas de excessiva perda de pacotes quando
se utiliza o protocolo UDP.
Sendo assim, a motivação do DCCP está relacionada com as caracterı́sticas
intrı́nsecas das aplicações com restrição de tempo de resposta e no fato de que grande parte
VII Workshop de Redes Dinâmicas e Sistemas P2P
137
desse tipo de aplicação utiliza o UDP. Considerando os problemas e limitações dos protocolos TCP e UDP discutidos até aqui, o DCCP surgiu como uma das possı́veis soluções
para o seguinte problema-chave: de um lado apresenta-se o protocolo UDP, adotado por
diversas aplicações com restrição de tempo e que não realizam controle de congestionamento. Por outro lado apresenta-se o protocolo TCP, cujas aplicações podem se tornar
inutilizáveis devido ao congestionamento causado pelo UDP, além de realizarem retransmissões para garantir a entrega de dados.
Neste trabalho, apresenta-se o protocolo DCCP como uma opção efetiva a ser
adotada para transmissão de dados multimı́dia, principalmente por ter um comportamento similar ao protocolo TCP e por ser um protocolo padronizado. Acredita-se que
sua utilização trará diversas vantagens, pois melhora o uso dos recursos da rede, como é
apontado nos gráficos apresentados. Todavia, ainda possui falhas crı́ticas e que precisam
ser corrigidas quando utilizados em larga escala.
3. O Problema do DCCP em Transmissões de Dados Multimı́dia em Tempo
Real
Como foi possı́vel observar, com o DCCP, obtém-se resultados animadores no ponto de
vista de transmissão de dados multimı́dia e melhor utilização dos recursos de rede, resolvendo a maior parte dos problemas aparentes do TCP e do UDP nesse contexto. O problema se apresenta quando o protocolo DCCP é utilizado para distribuição de conteúdo
multimı́dia sendo transmitido a partir de um nó da rede para vários nós localizados em
redes distintas (1 → N).
Não é possı́vel utilizar facilmente o protocolo DCCP para realizar esse tipo de
transmissão, pois o DCCP é um protocolo orientado à conexão e portanto para cada novo
usuário interessado em receber um fluxo multimı́dia transmitido com DCCP, uma nova
conexão se faz necessária. As conseqüências desta limitação do DCCP são desastrosas,
tornando-o um protocolo paradoxal para o que ele se propõe: resolver os problemas de
congestionamento de rede gerados pelo protocolo UDP em cenários de aplicações multimı́dia. Entretanto, quando o protocolo é utilizado em larga escala, simplesmente não é
efetivo. Este fato pode ser explicado pelos seguintes motivos:
1. Excessivo consumo de recurso computacional: para cada nova conexão, o nó
transmissor deve alocar recursos computacionais (memória e processamento) para
poder tratar cada nova conexão. Em cenários como os considerados nesta pesquisa, se muitos nós estão conectados em um único servidor, então isto elevará
sobremaneira o consumo de recurso computacional do nó transmissor proporcionalmente a quantidade de nós receptores interessados pelo fluxo multimı́dia transmitido por um único nó na rede. Além disso, embora o conteúdo transmitido por
um nó seja de interesse de muitos outros nós, os fluxos são enviados independentemente uns dos outros, o que gera duplicações desnecessárias e conseqüentemente
desperdı́cio de recursos de rede;
2. A taxa de transmissão individualmente tenderá a 0: O protocolo DCCP realiza
controle de congestionamento utilizando uma equação matemática para definir a
taxa de transmissão de uma conexão. À medida que mais nós se conectam a um nó
transmissor, menor será a taxa de transmissão do nó transmissor para cada um dos
nós receptores conectados a ele. Para a rede, esta estratégia é justa e evita que a
mesma entre em colapso de congestionamento, mas para cada fluxo de dados isto é
ruim. Este fenômeno é vastamente descrito na literatura e denominado de tragédia
dos comuns [Hardin 1968]. A tragédia dos comuns ocorre neste caso porque se
a taxa de transmissão de um determinado fluxo for muito pequena, pode ser que
ela não seja suficiente para a recepção de um conteúdo multimı́dia em tempo real,
que geralmente exige uma taxa de transmissão mı́nima para que a transmissão
ocorra efetivamente. Estatisticamente, a taxa de transmissão de cada fluxo DCCP
convergirá para um ponto de equilı́brio. Todavia, este ponto será mı́nimo, não
138
Anais
suficiente em aplicações consideradas neste trabalho, muito embora todos terão
direitos iguais sobre o uso do canal. Este problema pode ser descrito matematicamente utilizando como base a Equação 1, que define cada taxa de transmissão
Xi calculada pelo DCCP CCID-3. Nesta equação, Xi é a taxa de transmissão em
bytes/segundo, s é o tamanho do pacote em bytes, R é o RTT em segundos, p é
a taxa de ocorrência de perdas, entre 0 e 1, RTO é o valor do timeout de retransmissão do TCP em segundos e b é igual a 1 e representa o número máximo de
pacotes confirmados por um único ACK. Considere-se o problema descrito anteriormente e que oP
uso total do canal para uma quantidade N de fluxos DCCP é
definido por B = N
i=1 Xi . Em condições severas de congestionamentos na rede,
o valor de B é equivalente à largura de banda do canal de transmissão. Quando
isto ocorre, tem-se que N atingiu um valor maior do que a rede suporta, fazendo
com que os valores de p e R na Equação 1 também aumentem, e portanto tem-se
B
= 0.
que lim
N →∞ N
s
q
q
Xi =
(1)
p
R × 2 × b × 3 + (RT O × 3 3 × b × p8 × p × (1 + 32 × p2 )
Neste contexto, foram realizadas pesquisas em busca de evidências mais contundentes de que este fato ocorre na prática. Por limitações de recursos computacionais
para a realização de experimentos acerca do problema descrito, realizou-se simulações
utilizando o NS-2 a fim de explorar os cenários estudados aqui. Foram executados 10
cenários de simulações de rede cuja topologia foi definida como uma árvore binária, onde
cada ramo da árvore representava um roteador e cada roteador tinha 10 nós DCCP conectados a ele. Cada um dos 10 cenários foram repetidos n vezes até ser alcançado uma
média com nı́vel de confiança de 95%. Em cada cenário, aumentava-se o nı́vel da árvore
binária que definia a topologia da rede em 1. Por exemplo, o primeiro cenário tinha 10 nós
receptores e 1 roteador, no cenário seguinte 30 nós e três roteadores, no seguinte 70 nós
e 7 roteadores e assim por diante. O resultado das simulações estão resumidos no gráfico
ilustrado na Figura 4. O eixo X do gráfico representa o número de nós receptores à medida
que as simulações eram executadas, ao passo que o eixo Y é a taxa de transmissão média
conseguida por cada conexão DCCP. A transmissão ocorreu da seguinte forma: um nó
localizado na raiz árvore transmitiu o mesmo conteúdo multimı́dia para todos os outros
nós conectados à rede, simulando uma tı́pica transmissão multimı́dia 1 → N e um tráfego
de comportamento equivalente a VoIP.
É possı́vel observar no gráfico da Figura 4 que a vazão média de cada fluxo DCCP
transmitido aos receptores tende a zero à medida que o número de receptores aumenta,
sendo possı́vel concluir que o protocolo DCCP não escala quando utilizado para transmissão de dados multimı́dia em cenários de aplicações com um transmissor transmitindo
para vários receptores (1 → N).
Uma questão intrigante neste aspecto é que o protocolo DCCP funciona perfeitamente em cenários simplórios, mas sofre claramente de um problema de escalabilidade,
o que é crı́tico para aplicações consideradas neste trabalho. Isto torna o protocolo DCCP
inútil para cenários de distribuição de conteúdo multimı́dia, fazendo com que os desenvolvedores continuem sem motivações para efetivamente utilizar o protocolo DCCP em
suas aplicações.
Sendo assim, o protocolo DCCP apresenta-se como uma alternativa ao UDP em
cenários simplórios de transmissão multimı́dia, mas em situações de cenários reais de
aplicações multimı́dia como costuma-se encontrar na Internet, o protocolo DCCP, pelo
menos da forma que atualmente é empregado, não apresenta qualquer possibilidade de ser
utilizado em cenários de aplicações multimı́dia mais complexos. Obviamente, é possı́vel
observar através do gráfico apresentado que quanto mais nós receptores forem adicionados na rede, mais acentuada será a perda de dados, causando a diminuição da vazão
VII Workshop de Redes Dinâmicas e Sistemas P2P
139
Number of Nodes vs. Throughput
25
25
DCCP
Tree level 1 (< 1% of loss per flow)
Throughput (Mbps)
20
20
15
15
Tree level 2 (~ 15% of loss per flow)
10
10
Tree level 3 (~ 44% of loss per flow)
5
5
Tree level 4 (~ 69% of loss per flow)
Tree level 5..10 (> 87% of loss per flow)
0
10
30
70
150
310
630
1270
2550
5110
0
10230
Number of Nodes
Figura 4. Gráfico de uma transmissão DCCP com um transmissor enviando dados de áudio VoIP utilizando o protocolo DCCP para X receptores. A vazão média
de cada fluxo tende a zero à medida que o número de receptores aumenta.
média alcançada por cada fluxo DCCP. Note que apenas fluxos DCCP foram transmitidos
nesta simulação, os quais já foram necessários para causar o problema apresentado. Em
situações mais realistas, o problema se torna ainda mais grave, pois o protocolo DCCP
disputará o canal não apenas com outros fluxos DCCP, mas também com fluxos TCP e
ainda com fluxos UDP.
Sendo assim, para cenários como este, os desenvolvedores de aplicações multimı́dia não tem outra opção a não ser continuar utilizando o protocolo UDP, porém ao
custo do que já foi discutido na seção anterior; além disso, TCP não é aplicável neste
cenário por diversas questões também já discutidas. Quanto aos desenvolvedores de
aplicações multimı́dia em tempo real que decidem utilizar UDP e que desejam implementar um mecanismo de controle de congestionamento, estes atualmente se deparam
com dois problemas:
1. Desenvolvimento de pelo menos um algoritmo de controle de congestionamento
na camada de aplicação, o que aumenta na complexidade da aplicação;
2. Falta de padronização, cada desenvolvedor implementará seu algoritmo da forma
que desejar.
Diante deste problema, utilizar UDP não parece ser a solução apropriada, porém é
a que se utiliza atualmente. Uma abordagem neste sentido e vastamente considerada pelos pesquisadores para atender aos requisitos das aplicações consideradas neste trabalho
é utilizar um modo de transmissão multicast. Nestes casos, todos os usuários passam a
receber o mesmo conteúdo do fluxo de dados sendo transmitido ao custo de ser necessário
apenas uma única transmissão de dados por parte do nó transmissor. Porém, a complexidade aumenta, no ponto de vista do desenvolvimento da aplicação, quando se implementa
mecanismos de controle de congestionamento na camada de aplicação, além de quebrar a
filosofia dos protocolos em camadas considerada pelo modelo de serviços TCP/IP. Neste
caso, cada camada deve oferecer serviços para sua camada superior e, conseqüentemente,
140
Anais
usufruir de serviços da camada inferior. Sendo assim, o serviço de controle de congestionamento deve ser implementado na camada de transporte e não na camada de aplicação.
Portanto, embora o DCCP seja um protocolo promissor para transporte de fluxos multimı́dia, os desenvolvedores não têm motivos para passarem a utilizá-lo devido a
falta de qualquer função deste protocolo que permita o desenvolvimento de uma solução
sub-ótima para distribuição de conteúdos multimı́dia em tempo real não proporcional a
transmissão de um novo fluxo para cada novo nó interessado em recebê-lo.
4. O Multi(Uni)cast DCCP
O Multi(Uni)cast Datagram Congestion Control Protocol (MU-DCCP) é uma extensão
do protocolo DCCP para transmissão de fluxos de dados multimı́dia em cenários de um
nó transmissor com muitos nós receptores. O MU-DCCP permite a transmissão de pacotes de dados com suporte ao controle de congestionamento de fluxos não confiáveis. O
MU-DCCP pode operar em dois modos de transmissão: (i) multicast; e (ii) multi-unicast.
Para cada um dos modos de transmissão providos pelo MU-DCCP, a aplicação primeiramente seleciona o modo desejado e um algoritmo especı́fico é utilizado para realizar
o estabelecimento de conexão e transmissão de dados entre os receptores envolvidos. O
modo multicast é utilizado geralmente em redes locais, e o modo unicast é utilizado para
que um nó, localizado na rede local, estabeleça uma conexão com um nó transmissor e
distribua o conteúdo na sua rede local.
4.1. Visão Geral do MU-DCCP
Quando uma aplicação inicia um socket DCCP correspondente a conexão desejada, a
mesma envia um pacote do tipo DCCP-MREQUEST com o campo TTL da camada de
rede igual a 1. Este pacote é enviado em modo multicast para o endereço 239.255.255.251
e a porta 1900 (este socket é chamado de canal de controle do MU-DCCP). No cabeçalho
do pacote DCCP-MREQUEST existem dois campos, um para especificar o endereço IP
(32bits) do nó transmissor e o outro para especificar a porta (16bits) do nó transmissor,
do qual o nó receptor deseja receber o conteúdo multimı́dia. Como o pacote é transmitido
na rede local com TTL=1, isto significa que o pacote não será roteado para a rede externa
e apenas o nós da sua rede local o receberá. Para facilitar a explicação, considere-se o
endereço 200.200.211.5 e porta 8900 como sendo o socket do nó transmissor o qual o nó
receptor tem interesse de se conectar. Neste caso, o nó receptor envia uma mensagem
multicast do pacote DCCP-MREQUEST para o endereço multicast especificado anteriormente e com os campos IP e porta do pacote DCCP-MREQUEST preenchidos com os
dados do socket do nó transmissor.
Por outro lado, todos os outros nós DCCP existentes na rede local devem,
ao implementarem a extensão MU-DCCP, iniciar um socket multicast no endereço
IP 239.255.255.251 e na porta 1900. Isto permitirá a recepção de pacotes DCCPMREQUEST transmitidos por qualquer nó na rede. Sendo assim, caso um nó na rede
local já esteja recebendo um fluxo multimı́dia DCCP vindo de 200.200.211.5 na porta
8900, quando receber um DCCP-MREQUEST responderá para o nó interessado um pacote do tipo DCCP-MRESPONSE, o que deve ocorrer em modo unicast. Ao responder
com o DCCP-MRESPONSE, o nó receptor do fluxo original, passa a funcionar como um
nó relay (DCCP Relay), retransmitindo na rede local os pacotes que estão recebendo do
nó transmissor. No cabeçalho do DCCP-MRESPONSE, o nó especificará em qual modo
ele repassará os pacotes para a rede local, se no modo multicast ou no modo unicast.
Note que, caso não exista nenhum nó do tipo DCCP Relay na rede local, o nó interessado em receber o fluxo pode enviar um pacote do tipo DCCP-MREQUEST, porém
com TTL=2. Caso o roteador da rede local esteja roteando pacotes multicast no endereço
IP e porta do canal de controle do MU-DCCP, é possı́vel que um DCCP Relay responda
com um pacote do tipo DCCP-MRESPONSE da forma que foi explicado anteriormente.
VII Workshop de Redes Dinâmicas e Sistemas P2P
141
Caso o nó que enviar o DCCP-MREQUEST não receba nenhum pacote do tipo DCCPMRESPONSE, o mesmo poderá tomar duas decisões, configurável via parâmetro de
configuração da aplicação (setado via setsockopt(), por exemplo): (1) Enviar outro pacote
do tipo DCCP-MREQUEST com o valor de TTL incrementado em 1; ou (2) iniciar uma
conexão unicast com o nó transmissor. Caso ocorra a segunda opção, o nó MU-DCCP
que iniciar uma conexão unicast com um nó transmissor qualquer deve se auto eleger para
ser um DCCP Relay em pedidos de conexão através do pacote DCCP-MREQUEST que
este venha a receber via o canal de controle do MU-DCCP.
4.2. Modos de Transmissão do MU-DCCP
A mensagem de resposta de conexão enviada por um nó MU-DCCP, contém três campos:
(i) o campo multicast (1 bit), se ativado o nó transmitirá os dados em modo multicast; (ii)
o campo endereço IP, que especificará qual endereço IP (32 bits) o DCCP Relay passará a
transmitir os dados; e (iii) o campo porta (16 bits), que especificará a porta que o DCCP
Relay passará a transmitir os dados.
Note que um DCCP Relay pode decidir alterar o modo de sua transmissão a qualquer momento, bastando para isso enviar um pacote do tipo DCCP-MSYNC, via multicast, para o canal de controle do MU-DCCP, contendo a modificação desejada. Ao
receber um DCCP-MSYNC, os nós envolvidos na recepção dos dados devem realizar as
devidas modificações em seu modo de recepção. O formato do DCCP-MSYNC é igual
ao formato do pacote DCCP-MRESPONSE.
4.3. Controle de congestionamento com DCCP em modo multicast
O MU-DCCP suporta transmissão de dados tanto unicast quanto em modo multicast. Algoritmos de controle de congestionamento em modo multicast são mais complexos porque geralmente estes utilizam o feedback dos receptores para tomar decisões na definição
da sua taxa de transmissão. Neste caso, nenhum CCID existente para DCCP foi projetado
para funcionar neste modo, sendo necessário trabalhar em um novo CCID capaz de tratar
todas as caracterı́sticas de transmissão de dados de fluxo não confiável em modo multicast. No contexto deste trabalho, definiu-se o CCID-5, um algoritmo para controle de
congestionamento de fluxos de dados não confiável em transmissões multicast utilizando
o protocolo DCCP.
O foco principalmente de funcionamento do CCID-5 é fazê-lo capaz de ser executado em um DCCP Relay que esteja transmitindo em modo multicast. O CCID-5 determina uma nova taxa de transmissão baseado em relatórios enviados pelos nós receptores
da sua rede local. Note que, como estão sendo tratados fluxos de dados não confiáveis,
a solução para o CCID-5 pode fazer uso deste tipo de transmissão para reduzir a necessidade de confirmação de todos os pacotes recebidos pelos nós receptores. Como estão
sendo considerados cenários onde existem apenas um nó transmissor dos dados e diversos nós receptores, receber confirmação de recepção de todos os nós receptores poderia
inundar o nó transmissor de pacotes de controle, com confirmação de recepção de pacotes
de dados por parte dos receptores.
Assim, foi possı́vel desenvolver o CCID-5 como um algoritmo de controle de congestionamento que não precisa necessariamente receber um relatório de recepção de todos
os nós receptores, mas sim de um sub-grupo de nós receptores, reduzindo de tal forma a
quantidade de dados de controle transmitidos na rede em direção ao nó transmissor dos
dados. É importante salientar que nem sempre o nó transmissor dos dados será aquele
que gera o conteúdo, mas sim um nó transmissor que poderá executar o CCID-5 pode
ser um nó do tipo DCCP Relay. Dado isto, desenvolveu-se um algoritmo para permitir
a eleição de nós DCCP Relays e nós DCCP Reporters, responsáveis por relatar a um nó
transmissor qualquer sua taxa de recepção de dados via multicast. Ao receber relatórios
enviados pelos DCCP Reporters, os nós DCCP Relays ajustarão sua taxa de transmissão
de acordo com estes relatórios, o que pode ser feito utilizando uma equação de cálculo de
taxa de transmissão, como por exemplo a própria Equação 1.
142
Anais
4.4. Eleição de Nós DCCP Relays e de DCCP Reporters
Os nós DCCP Relays são selecionados de duas formas: (i) serão DCCP Relays aqueles
que iniciarem a primeira conexão unicast com um nó DCCP gerador dos dados, ou seja,
o nó transmissor original; (ii) serão DCCP Relays aqueles que negociarem com algum
outro nó DCCP Relay sua promoção para nó DCCP Relay. Note-se que este caso o nó
que conceder a promoção de um nó DCCP Relay para outro deverá se rebaixar para um nó
MU-DCCP normal. Além disso, quando um DCCP Relay conceder este status, o mesmo
poderá se desconectar do nó DCCP gerador dos dados enviando um DCCP-MRESET,
que conterá o endereço do novo nó DCCP Relay. É possı́vel também que um nó DCCP
Relay eleja outros nós DCCP Relays secundários, localizados na sua própria rede local.
Esta funcionalidade é importante porque caso o atual DCCP Relay perca sua conexão
ou desconecte do nó transmissor gerador dos dados, qualquer DCCP Relay secundário
poderá assumir o papel de DCCP Relay primário. Neste caso, o nó que passar a assumir
este papel deverá enviar um pacote do tipo DCCP-MELECT informando que assumirá a
transmissão de dados outrora provida pelo nó DCCP Relay antigo.
Com relação aos nós DCCP Reporters, o processo de eleição funciona de forma
similar, porém qualquer nó pode se tornar um DCCP Reporter. O processo funciona da seguinte forma: à medida que um DCCP Relay receber pacotes do tipo DCCP-MREQUEST,
no pacote DCCP-MRESPONSE o nó DCCP Relay pode ativar a flag desse pacote informando que aquele nó deverá enviar relatórios de confirmação de pacotes. Desta forma, o
DCCP Relay poderá limitar a quantidade de DCCP Reporters e assim receber relatórios
apenas de um sub-conjunto de nós da rede. Como a transmissão é multicast e local, é
possı́vel ter poucos nós DCCP Reporters e continuar sendo efetivo no ponto de vista de
determinar a melhor taxa de transmissão. No contexto deste trabalho, não realizou-se muitos experimentos na tentativa de se é possı́vel determinar qual é a quantidade necessária
de DCCP Reporters para se obter taxas de transmissões justas.
4.5. Adaptação de Fluxo Multimı́dia
Uma funcionalidade peculiar do MU-DCCP é a capacidade que ele tem de fazer adaptação
de fluxos multimı́dia de forma distribuı́da. A maioria das soluções para transmissão de dados multimı́dia, além de realizarem controle de congestionamento no nı́vel de aplicação,
realizam adaptação de fluxo multimı́dia na fonte geradora dos dados. Uma solução para
adaptação de fluxo multimı́dia é transmitir os dados em diferentes canais, sendo que em
cada canal transmite-se fluxos multimı́dia com uma determinada qualidade. Dependendo
da qualidade desejada pelo nó receptor, ele solicita a transmissão em um determinado canal. O problema dessa abordagem é que o nó transmissor, necessariamente deve transmitir
os dados em múltiplos canais, o que aumenta a complexidade da aplicação e a quantidade
de fluxos de dados sendo transmitidos a partir do servidor. No MU-DCCP, é possı́vel realizar a adaptação de fluxo de dados de forma distribuı́da, na prática, em cada DCCP Relay.
Suponhe-se que existem duas redes adjacentes, rede 1 e rede 2. Considere que existe um
nó DCCP Relay na rede 1 e entre esta e o nó transmissor a largura de banda disponı́vel é
de 100 Mbps. Caso a largura de banda disponı́vel na rede 2 seja de no máximo 10 Mbps,
um nó receptor na rede 2 teria que solicitar um fluxo multimı́dia em um canal diferente,
considerando a solução supracitada. No caso do MU-DCCP é possı́vel que um nó na
rede 2 obtenha o fluxo multimı́dia através do DCCP Relay presente na rede 1, bastante,
neste caso, que o DCCP Relay presente na rede 1 adapte o fluxo para o nó que esteja na
rede 2. Desta forma, pode-se diminuir o tráfego na rede do nó transmissor e ainda sim
permitir que nós em redes com baixa largura de banda consigam obter o fluxo multimı́dia
adaptado.
5. Resultados e Discussões
Nesta seção são apresentados os resultados e discussões sobre um conjunto de simulações
realizadas no contexto desta pesquisa utilizando o MU-DCCP. Nas simulações realizadas,
VII Workshop de Redes Dinâmicas e Sistemas P2P
143
utilizou-se uma topologia de rede ilustrada na Figura 5 e a metodologia de execução das
simulações igual a que foi descrita na Seção 3. A topologia da rede simulada segue a
estrutura de uma árvore binária, onde as folhas de cada nó pai representam outras redes e
assim sucessivamente. Os parâmetros de configuração de toda a rede foram definidos da
seguinte forma:
Legend:
Sender
100M
Receivers
bps
Tree Level 1
1ms
25
m
s
Routers
30
0M
bp
s
Tree Level 2
Tree Level 3
...
...
...
...
...
...
...
...
Tree Level n
Figura 5. Topologia da rede definida para as simulações realizadas. Cada rede é
representada por um roteador e com 10 nós em cada rede.
•
•
•
•
•
•
•
Número de computadores receptores por rede: 10
Largura de banda da rede local: 100Mbps
Latência da rede local: 1ms
Largura de banda do backbone: 300Mbps
Latência do backbone: 25ms
Tamanho da fila dos roteadores do backbone: 3000 pacotes
Duração da simulação: 900s
5.1. Discussões sobre os resultados
No gráfico ilustrado na Figura 6, apresenta-se o resultado das transmissões simuladas
utilizando o NS-2 e o protocolo DCCP com a extensão MU-DCCP habilitada. Transmitiuse o mesmo padrão de tráfego VoIP utilizado na Seção 3. É possı́vel observar claramente
que, quando se compara o gráfico da Figura 4 com o gráfico da Figura 6, o uso do MUDCCP melhorou sobremaneira a taxa efetiva de recepção de dados por parte dos nós
receptores.
Como está sendo considerada a taxa efetiva de recepção, constatou-se uma
redução de mais de 90 % da taxa média de perda de pacotes por cada nó receptor, além de
permitir uma distribuição adequada de fluxos de dados multimı́dia. É possı́vel observar
também que, mesmo aumentando a quantidade de usuários receptores, por exemplo, entre
N=150 e N=2550, a taxa média de recepção continuou sendo satisfatória, sendo crescente
à medida que o valor de N aumentou. Isso pode ser justificado pelo fato de que quanto
mais nós DCCP na rede, aumentam-se as chances de se tornarem nós DCCP Relays, o
que conseqüentemente aumentam as chances de existirem mais nós receptores recebendo
fluxos de dados via multicast e não somente via unicast.
6. Considerações Finais e Trabalhos Futuros
Neste artigo, apresentou-se os resultados da pesquisa sobre o MU-DCCP, uma versão
modificada do protocolo DCCP com suporte a transmissão de dados multimı́dia em modo
144
Anais
Throughput (Mbps)
Number of Nodes vs. Throughput
25
25
20
20
DCCP
MU-DCCP
15
15
10
10
5
5
0
10
30
70
150
310
630
1270
2550
5110
0
10230
Number of Nodes
Figura 6. Gráfico de uma transmissão DCCP com um transmissor enviando dados de áudio VoIP utilizando o protocolo DCCP e a extensão MU-DCCP para X
receptores.
multicast quando possı́vel ou multi-unicast quando multicast não for possı́vel. Após os
estudos realizados durante o desenvolvimento deste trabalho, algumas conclusões puderam ser obtidas acerca do uso do protocolo DCCP em transmissão de dados em cenários
1 → N: (i) o protocolo DCCP não se apresenta de forma satisfatória quando utilizado
em cenários de aplicações em larga escala, por exemplo, em aplicações de distribuição
de conteúdo multimı́dia partindo de um nó transmissor para diversos nós receptores; (ii)
Fez-se necessárias soluções a fim de resolver este problema do protocolo DCCP e o MUDCCP foi a resposta para isto. Após a definição e implementação do MU-DCCP, diversas simulações foram realizadas com o MU-DCCP, sendo os principais resultados e
discussões apresentados neste artigo. No contexto do MU-DCCP também foi desenvolvido o CCID-5, um algoritmo de controle de congestionamento para transmissão de dados
multimı́dia com suporte a multicast. De acordo com os resultados obtidos, observou-se
uma melhoria significativa do uso do MU-DCCP em cenários de aplicações multimı́dia
em tempo real.
Com estes resultados obtidos, o atual trabalho está sendo a escrita de um Internet
Draft para posterior submissão como RFC promovida pela IETF. Como os resultados tem
sido bastante animadores, espera-se que o MU-DCCP venha a ser adotado pelas principais aplicações multimı́dia no futuro. A proposta do MU-DCCP é importante porque ela
abstrai toda a complexidade de transmissão de dados multimı́dia com suporte a controle
de congestionamento e com suporte ao modo multicast, caracterı́stica ausente na versão
original do protocolo DCCP.
Como trabalhos futuros, pretende-se evoluir o MU-DCCP no sentido de melhorar o algoritmo de eleição de DCCP Relays e de DCCP Reporters. A melhoria desses
algoritmos esta vinculada a execução de mais simulações em cenários diferentes do que
o estudado e apresentado neste trabalho. Além disso, pretende-se executar simulações do
MU-DCCP em transmissões de dados com outros padrões de tráfego, tais como vı́deo e
jogos e realizar um estudo mais aprofundado a respeito do atraso gerado à medida que os
VII Workshop de Redes Dinâmicas e Sistemas P2P
145
nós receptores estão mais distantes do nó transmissor. Pretende-se ainda implementar o
MU-DCCP no kernel do Linux e executar experimentos a fim de estudar o comportamento
do MU-DCCP em cenários reais de rede.
Referências
Amazon (2011). Introducing Amazon Cloud Player for Web & Android. Online
publication in Amazon.com. http://www.amazon.com/b?ie=UTF8&node=
2658409011.
de Sales, L. M., Almeida, H. O., Perkusich, A., and Jr., M. S. (2008a). An Experimental
Evaluation of DCCP Transport Protocol: A Focus on the Fairness and Hand-off over
802.11g Networks. In In Proceedings of the 5th IEEE Consumer Communications and
Networking Conference, pages 1149–1153.
de Sales, L. M., Almeida, H. O., Perkusich, A., and Jr., M. S. (2008b). On the Performance
of TCP, UDP and DCCP over 802.11g Networks. In In Proceedings of the SAC 2008
23rd ACM Symposium on Applied Computing Fortaleza, CE, pages 2074–2080.
Floyd, S., Handley, M., and Kohler, E. (2006). Problem Statement for the datagram
congestion control protocol (DCCP). http://www.ietf.org/rfc/rfc4336.
txt. Ultimo acesso: 12/04/2011.
Freak, T. (2011). Paramount Pictures to Release Film on Bittorrent. Online publication in the Torrent Freak Website.
http://torrentfreak.com/
paramount-pictures-partner-with-bittorrent-release-movie-110317/.
Hardin, G. (1968). The Tragedy of the Commons. Science, 162(3859):1243 – 1248.
Jungmaier, A. (2003). SCTP for Beginners. Computer Network Tecnology Group, 1
edition.
Kohler, E. and Handley, M. (2006). Profile for Datagram Congestion Control Protocol
(DCCP) Congestion Control ID 3: TCP-Friendly Rate Control (TFRC). http://
www.ietf.org/rfc/rfc4342.txt. Ultimo acesso: 12/04/2011.
Kohler, E., Handley, M., and Floyd (2006a). Profile for Datagram Congestion Control
Protocol (DCCP) Congestion Control ID 2: TCP-like Congestion Control. In IETF
Online RFC. http://www.ietf.org/rfc/rfc4341.txt. Ultimo acesso:
12/04/2011.
Kohler, E., Handley, M., and Floyd, S. (2006b). Datagram Congestion Control Protocol (DCCP). http://www.ietf.org/rfc/rfc4340.txt. Ultimo acesso:
12/04/2011.
Kohler, E., Handley, M., and Floyd, S. (2006c). Designing DCCP: Congestion Control
Without Reliability. In SIGCOMM ’06: Proceedings of the 2006 conference on Applications, technologies, architectures, and protocols for computer communications,
pages 27–38, New York, NY, USA. ACM Press.
Kohler, E., Handley, M., and Floyd, S. (2007). Profile for Datagram Congestion Control
Protocol (DCCP) Congestion Control ID 4: TCP-Friendly Rate Control for Small Packets (TFRC-SP). http://www.ietf.org/rfc/rfc5622.txt. Ultimo acesso:
6 de maio de 2011.
Leavitt, N. (2010). Network-Usage Changes Push Internet Traffic to the Edge. Computer,
43(10):13 –15.
146
Anais
VII Workshop de Redes Dinâmicas e Sistemas P2P
147
Aumentando a Segurança de Um Protocolo de Distribuição de
Conteúdo P2P para MANETs
Sidney Doria, Marco Aurélio Spohn
1
Departamento de Sistemas e Computação
Universidade Federal de Campina Grande – UFCG
Campina Grande – PB
{sidney, maspohn}@dsc.ufcg.edu.br
Abstract. Rogue peers are a concern because they decrease the utility of the
resource-sharing systems, potentially towards to the system collapse. We are
currently deploying Peer-to-MANET, a multicast peer-to-peer approach to distribute contents on mobile ad hoc networks. This work presents our efforts to
improve trust, avoiding rogue and selfish peers in Peer-to-MANET. We employ a
modified version of the Network of Favors as a decentralized reputation system
to punish rogue peers activities. Through simulations in NS-2, we show that our
solution minimizes download success rate by rogue peers, avoiding that maliciously peers cause resource depletion of other peers.
Resumo. Nós desonestos são indesejáveis pois eles diminuem a utilidade dos
sistemas de compartilhamento P2P, possivelmente até seu colapso. Atualmente estamos desenvolvendo o Peer-to-MANET (P2MAN), um protocolo de
distribuição de conteúdo para MANETs. Este trabalho apresenta nossos
esforços para aumentar a segurança do P2MAN, evitando nós desonestos e nós
caroneiros. Empregou-se uma versão modificada da Rede de Favores, como
sistema de reputação descentralizado, para punir atividades desonestas de nós.
Através de simulações no NS-2, demonstramos que a solução proposta reduz a
taxa de sucesso de download dos nós desonestos e evita que pares maliciosos
tentem o esgotamento de recursos de outros pares.
1. Introdução
A Internet é definida como um grupo global de redes de dispositivos computacionais interconectadas (e.g., redes domésticas, redes corporativas). Recentemente os usuários têm
se valido de avanços nas tecnologias computacionais móveis e no aumento dos serviços
móveis, de tal forma que o padrão de uso tem mudado e é possı́vel vislumbrar um futuro
onde a Internet será ubı́qua, através da interconexão de muitos dispositivos computacionais pervasivos. Nessa trilha, os serviços celulares e as redes móveis são consideradas o
futuro das infra-estruturas de rede [Stuckmann and Zimmermann 2009].
Uma rede móvel ad hoc (MANET) consiste em um conjunto de pares que desejam
se conectar sem fio, mas sem se valer de nenhuma estrutura fixa de comunicação. A natureza móvel dos nós implica que eles podem agir como roteadores para outros nós, quando
dois nós comunicantes estiverem a mais de um salto de distância. Defende-se na literatura que aplicativos que estejam sendo executados em uma MANET são essencialmente
entre pares (P2P) por natureza. Provavelmente o problema das redes P2P mais discutido
148
Anais
é a distribuição de conteúdos entre os pares. Trabalhos recentes mostram os esforços
para adaptar protocolos P2P populares, especialmente o BitTorrent [Cohen 2003], para
o compartilhamento de dados em MANETs. Embora o BitTorrent e outros protocolos
sejam conhecidos por eficiência na Internet, ele têm problemas de adaptação conhecidos quando funcionando sobre MANETs. Os protocolos P2P geralmente funcionam na
camada de aplicação, empregando transmissões unicast, sem ciência da mobilidade dos
nós. Por outro lado, MANETs geralmente fazem uso de transmissões por difusão não
confiável, sobre um canal de rádio compartilhado, onde os nós são livres para se movimentar. Tais contrastes têm desafiado as pesquisas para otimização das redes P2P sobre
as MANETs.
Atualmente, estamos desenvolvendo o protocolo Peer-to-MANET (P2MAN) de
distribuição de conteúdo P2P para MANETs. P2MAN é um protocolo nativo, cuja
inovação central está na abordagem multicast em malha de baixa sobrecarga, e por adotar um único grupo multicast para simplificar as operações de controle e reduzir sobrecarga. Além disso, foi projetado em uma abordagem holı́stica, considerando as restrições
tı́picas das MANETs, ao mesmo tempo que tenta se valer das suas peculiaridades (e.g.,
escala e propósito restritos, roteamento multicast em malha). Os primeiros resultados [Doria and Spohn 2009] do P2MAN são animadores, pois indicaram que P2MAN
distribui conteúdos em MANETs de forma escalável e eficiente
Apesar dos potenciais benfı́cios do uso de redes P2P como o P2MAN, os nós
desonestos são uma procupação, visto que eles podem degradar o desempenho do sistema, potencialmente até o colapso. Este trabalho visa aumentar a segurança do P2MAN,
desencorajando as atividades de nós desonestos que tentam reduzir o desempenho do sistema de distribuição de conteúdo da seguinte maneira: (a) enviando pedaços de conteúdos
falsos para outros nós, (b) com comportamento egoı́sta, sendo caroneiros. Propõe-se uma
modificação da Rede de Favores [Andrade et al. 2004] (NoF), que originalmente foi projetada para redes P2P de compartilhamento de CPU em grades computacionais, como
um mecanismo de reputação descentralizado para o P2MAN. Através de simulações no
NS-2 [NS-2 2010], demonstra-se que a solução proposta minimiza as atividades dos nós
maliciosos citados.
O restante deste artigo está organizado como segue. Na Seção 2 confronta-se o
estado da arte com esta abordagem. Na Seção 3 a solução é detalhada. Na Seção 4 é
detalhado o estudo baseado em simulações e os resultados são apresentads. Por fim, a
Seção 5 conclui este trabalho e apresenta trabalhos futuros.
2. Trabalhos Relacionados
2.1. Distribuição de Conteúdo P2P sobre MANETs
Distribuir conteúdos com eficiência em MANETs é um problema difı́cil. Já foram
empregados diversos protocolos P2P para realizar a distribuição de conteúdos. Trabalhos
anteriores adaptaram algoritmos P2P populares em MANETs [Kortuem et al. 2001,
Klemm et al. 2003, Androutsellis-Theotokis and Spinellis 2004].
Particularmente,
destacam-se os esforços para adaptar o BitTorrent sobre MANETs [Krifa et al. 2009a,
Krifa et al. 2009b, Sbai et al. 2008, Rajagopalan et al. 2006, Sbai and Barakat 2009,
Souza and Nogueira 2008, Quental and Gonçalves 2010]. Um protocolo popular na
Internet como o BitTorrent pode ter uma melhor aceitação dos usuário de MANETs, visto
VII Workshop de Redes Dinâmicas e Sistemas P2P
149
que seu tempo de treinamento seria menor, considerando que há uma maior probabilidade
de que alguns usuários já tenham experiência prévia com o protocolo. Entretanto, muitos
protocolos de distribuição de conteúdo P2P apresentam problemas técnicos de adaptação
quando executando sobre MANETs, como explicado a seguir.
Por exemplo, as redes populares de compartilhamento de conteúdo P2P foram originalmente projetadas para a Internet (i.e., escala global, milhões de nós) e as
MANETs tı́picas têm escala de dezenas de nós. Em atenção à escala, alguns trabalhos [Ding and Bhargava 2004, Y. Charlie Hu and Pucha 2003] adaptaram a Distributed
Hash Table (DHT) e outras tecnologias de localização das redes P2P para as MANETs.
Também, as MANETs têm problemas intrı́secos de infra-estrutura que os sistemas P2P
não têm como preocupação. Por exemplo, o BitTorrent emprega unicast, o que é custoso
para uma MANET devido à sobrecarga gerada por handshakes em camadas inferiores.
Ademais, protocolos P2P como o BitTorrent adotam o TCP como protocolo de
transporte. Os problemas de desempenho do TCP em MANETs já foram demonstrados
exaustivamente na literatura [Holland and Vaidya 1999] (e.g., o TCP interpreta as perdas
de pacotes no enlace sem fio como contenção e reduz a velocidade da transmissão). O uso
do TCP nas transmissões pode portanto degradar o desempenho do sistema de distribuição
de conteúdos. Em atenção a esse problema, Anastasi et al. desenvolveram recentemente o
TPA [Anastasi et al. 2009], um protocolo de transporte confiável mais eficiente do que o
TCP em MANETs, que adota uma abordagem entre camadas. Mesmo considerando tais
avanços recentes com protocolos de transporte para MANETs, ainda haveria a necessidade de adaptar o BitTorrent ou uma variante do protocolo para o TPA.
De fato, para contornar problemas de desempenho, novas pesquisas vêm tentando abordagens entre camadas, que estabelecem comunicação direta entre a camada
de aplicação e as camadas inferiores, ao custo de contrariar o propósito das modelagens
por camadas. Por exemplo, em [Y. Charlie Hu and Pucha 2003] os autores propõem um
protocolo de roteamento que se apóia em uma rede P2P auxiliar sobreposta, de modo que
as descobertas de rotas ficam limitadas a O(logN ). Os autores em [Conti et al. 2004]
criaram uma camada adicional que se comunica com as demais camadas de rede, que
consolida informações sobre o status da rede. Além disso, conjecturam não ser possı́vel
realizar certas operações em MANETs com eficiência (e.g., economia de energia nas
transmissões) com o paradigma de camadas independentes, mas não reuniram provas
para embasar tal afirmação. Em [Kozat et al. 2004] os autores também projetaram uma
camada adicional que coleta informações da rede.
Mais recentemente, outros trabalhos utilizaram abordagens entre camadas,
de redes P2P sobrepostas, para alcançar resultados otimizados para tarefas como
roteamento unicast e multicast e distribuição de conteúdos [Passarella et al. 2006,
Delmastro et al. 2008, Lee et al. 2006, Sbai and Barakat 2009]. Para preservar o modelo
de camadas, optou-se por não utilizar uma abordagem entre camadas no desenvolvimento
do P2MAN.
150
Anais
2.1.1. Peer-to-MANET
Peer-to-MANET (P2MAN) é um protocolo baseado em multicast para distribuição de
conteúdo entre-pares em redes ad hoc móveis. Foi projetado para mitigar as limitações das
MANETs e obter vantagem dos conceitos das redes P2P. P2MAN usa grupos multicast
para entregar conteúdos e um grupo multicast especial, denominado Canal Público, para
todas as operações de controle.
Quando um nó P2MAN inicia, junta-se ao Canal Público (CP) para poder trocar
mensagens de controle. Todos os nós que desejam compartilhar conteúdo devem ser
membros do CP. Não há servidor com informações para localização de conteúdos nem tais
informações são copiadas (i.e., mantidas em cache) pelos nós na rede. Em vez disso, para
localizar um conteúdo, um nó consulta o Canal Público sem a necessidade de inundar
a rede com mensagens de controle. Caso algum nó ativo tenha o conteúdo, este será
alcançado através do CP e uma resposta será retornada também via CP. A resposta também
traz metadados gerados pelo nó proprietário do conteúdo, com informações detalhadas
sobre o conteúdo.
Como em muitas redes P2P, P2MAN fraciona o conteúdo para a entrega. O nó
proprietário decide como o objeto será dividido em pedaços e faz uma representação do
conteúdo através de um mapa de bits (em que cada bit representa um pedaço do conteúdo).
O proprietário também decide que grupo multicast será usado para transmitir o conteúdo.
Os metadados são criados pelo nó proprietário, contendo as informações necessárias para
guiar os nós solicitantes. Após receber a resposta, o nó solicitante junta-se ao grupo
multicast anunciado pela fonte e envia uma mensagem de autorização ao Canal Público.
Ao receber uma mensagem de autorização, o proprietário do conteúdo pode iniciar a
transmissão.
Assumindo-se a adoção de um protocolo de roteamento multicast sem entrega
confiável (e sem um protocolo de transporte multicast), a garantia de entrega é realizada
na camada de aplicação, através de um mecanismo de retransmissão denominado Modo
de Reparação. No modo de reparação, um nó pode solicitar os pedaços que ainda não recebeu. O proprietário então retransmite os pedaços que faltam. Enquanto houver pedaços
faltando, novos pedidos e retransmissões ocorrerão, até que o nó solicitante receba todos
os pedaços. A Tabela 1 resume as escolhas de projeto do P2MAN, confrontando-as com
as abordagens comuns da literatura e mostrando as vantages esperadas.
2.1.2. Protocol for Unified Multicasting through Announcements (PUMA): uma
breve descrição
Há uma preocupação da comunidade cientı́fica a respeito da sobrecarga gerada para se
manter uma malha multicast em uma MANET, especialmente na presença de particionamentos de rede ou alta mobilidade. Esta procupação é a razão principal da escolha do protocolo multicast Protocol for Unified Multicasting through Announcements
(PUMA) [Vaishampayan and Garcia-Luna-Aceves 2004] para este trabalho. PUMA foi
escolhido como protocolo de roteamento para o P2MAN porque demonstrou-se que o
PUMA tem baixa sobrecarga e manutenção rápida da malha, além de superar o desempenho dos protocolos multicast mais representativos.
VII Workshop de Redes Dinâmicas e Sistemas P2P
151
Tabela 1. P2MAN: Escolhas de Projeto.
Literatura
DHT adaptada
ou inundação
Unicast
com
mecanismo de
incentivo
TCP
TCP
P2MAN
Canal Público
Multicast
UDP
Modo de Reparação
Vantagens
Nativo, pouca sobrecarga, bem adaptado à
escala
Nativo, simples, sem necessidade de mecanismo de incentivo, menor sobrecarga de
handshakes
Menos sobrecarga, desempenho máximo
do transporte (menor degradação)
Menos sobrecarga, confiabilidade por
reparação oportunı́stica
PUMA é um protocolo de roteamento multicast baseado em malha, com a montagem da malha orientada aos receptores. Por padrão, o primeiro receptor de um grupo
multicast se torna o lı́der do grupo (i.e., core). Caso múltiplos nós se juntem simultaneamente a um mesmo grupo, o nó com o maior endereço IP será eleito o lı́der do grupo.
O que faz o PUMA simples e muito eficiente é sua baixa sobrecarga de pacotes de controle. Um único pacote de controle, denominado anúncio multicast, é usado para manter
a malha. Além disso, na ocorrência de múltiplos grupos e múltiplas malhas, os pacotes
de controle podem ser agrupados em um único anúncio. PUMA não requer quaisquer
protocolos unicast para funcionar. Todas as transmissões são feitas por difusão. Apesar
de usar difusões não confiáveis, a malha formada pelo PUMA introduz uma redundância
aceitável. No PUMA, a malha inclui apenas membros do grupo multicast e os nós que
interconectam os seus membros. Assim, as difusões ficam limitadas ao escopo da malha.
À medida que anúncios se propagam pela malha, os nós aprendem o caminho mais
curto até o lı́der. Desta forma, pacotes de dados podem ser roteados rapidamente para o
lı́der. No caminho para o lı́der, duas coisas podem acontecer a um pacote de dados: (a)
o pacote percorre a rede até que alcance finalmente o lı́der, ou (b) pode alcançar um nó
membro da malha antes do lı́der. De qualquer forma, quando um pacote chega até um
membro da malha, será difundido apenas dentro da malha. O lı́der não é um ponto único
de falha porque, em caso de falha, ocorre uma rápida eleição através de um algoritmo
distribuı́do muito eficiente.
2.2. Mecanismos de Reputação Entre Pares
Um mecanismo de reputação para sistemas entre pares é uma técnica para guardar o comportamento prévio de pares para ser usado como guia para outros pares da rede. Um
desafio que tais mecanismos têm de enfrentar é reaver as informações coletadas sobre
os nós de forma confiável, visto que nós maliciosos podem adulterar as informações que
armazenam. Em [Aberer and Despotovic 2001], de forma antecipada, os autores apresentam um mecanismo de reputação especificamente projetado para redes P2P. O algoritmo
Eigen [Kamvar et al. 2003] mantém uma pontuação global para cada par i, computada
através da pontuação de i dada por todos os outros pares, aplicado o peso das próprias
pontuações globais de tais pares. Alguns pares especiais computam, armazenam e replicam os valores globais de reputação para um par. Os pares especiais encontram os pares
152
Anais
para os quais devem manter a pontuação, e são encontrados por pares que necessitam
dessa informação, através de uma tabela hash distribuı́da.
Entretanto, essas abordagens são sucetı́veis aos ataques em conluio que podem acontecer. Nós desonestos podem conspirar para reduzir a reputação de nós honestos da rede. Chun et al. propuseram uma arquitetura [Chun et al. 2003] para aumentar a segurança de trocas entre nós baseada em troca de tickets. Esta arquitetura, porém, assume uma infra-estrutura de chaves criptográficas e o estabelecimento
de relações de confiança entre os pares para que seja possı́vel o acesso aos recursos.
Em P2PRep [Cornelli et al. 2002], cada par armazena informação sobre suas próprias
interações com outros pares. Para assegurar a confiabilidade dessa informação, P2PRep
lança mão de votação para obtenção de opiniões sobre a reputação de um par. Também,
P2PRep usa heurı́sticas para encontrar blocos de potenciais pares maliciosos e uma infraestrutura de chaves criptográficas para verificar as identidades de pares envolvidos numa
transação.
2.2.1. A Rede de Favores
A idéia central da Rede de Favores (NoF) é que os usuários que são os maiores colaboradores de recursos da rede devem receber maior prioridade de acesso aos recursos
disponı́veis na rede. Esse princı́pio segue como um guia para a distribuição balanceada dos recursos disponı́veis entre os usuários e, portanto, como um incentivo para a
colaboração. A NoF contorna a necessidade de prover confiabilidade dos dados coletados, visto que não agrega valores globais de reputação a um par. Em vez disso, pares
somente usam as informações de reputação envolvendo suas próprias interações entre pares. Essa informação é armazenada localmente no nó. Estratégias maliciosas baseadas em
mentiras sobre o comportamento de nós terceiros (e.g., ataques em conluio) não podem
ser aplicadas.
Na NoF, alocar um recurso a um par que o requisita é prestar um favor, e o valor do
favor é o valor do trabalho realizado para compartilhar o recurso ao par solicitante. Cada
par mantém um registro local do total de favores prestados a e recebidos de cada par com
quem tenha realizado transações no passado. Cada vez que um par presta um favor ou
recebe um favor, ele atualiza o número apropriado. Um par calcula a reputação local de
outro par baseando-se nesses números, de forma que um par que tem lhe prestado muitos
favores e recebido poucos terá uma reputação maior. Um par usa a reputação atual para
decidir para que outros pares ele prestará favores, quando tiver de arbitrar entre mais de
um solicitante de recurso. Portanto, sempre que houver contenção de recursos, os pares
com maior reputação terão prioridade.
Seja v(A, B) o valor total de recursos doados do nó A para o nó B no passado do
sistema, o nó A calcula rA (B), a reputação do nó B, usando a Equação 1:
rA (B) = max{0, v(B, A) − v(A, B) + log(v(B, A))}
(1)
Usando 1, o nó A calcula a reputação do nó B com o número de favores que A
recebeu de B, menos o número de favores que B recebeu de A. Usando uma função
de reputação não-negativa é possı́vel evitar a priorização de nós que maliciosamente tro-
VII Workshop de Redes Dinâmicas e Sistemas P2P
153
cam de identidade para se beneficiar daqueles nós que consumiram mais recursos do que
contribuiram. O termo sub linear log(v(B, A)) foi introduzido na equação para que se
possa distinguir entre nós que trocam de identidade maliciosamente e que nunca doaram
quaisquer recursos de um nó B que colaborou para A no passado, mas recebeu o mesmo
montante de favores que doou para A. Também, é possı́vel identificar um colaborador
mesmo se o colaborador tenha consumido mais recursos do que tenha doado, visto que
ele já doou recursos no passado.
3. Aumentando a Segurança no P2MAN
Para aumentar a segurança do P2MAN, adotou-se uma versão modificada da Rede de
Favores para computar a pontuação de reputação dos nós, baseada na interação entre esses
nós, para identificar e desencorajar as atividades de nós desonestos. Foram combinados o
mecanismo de pontuação da NoF, um mecanismo de Lista Negra e o mecanismo de envio
de conteúdos do P2MAN para aumentar a robustez do sistema, sistematicamente evitando
que nós maliciosos recebam pedaços de conteúdo dos seus vizinhos.
Como em trabalhos anteriores, assumindo-se que se o sistema possui algum mecanismo pelo qual seja possı́vel ao nó identificar nós colaboradores com precisão suficiente,
e que os colaboradores reconhecidos recebam prioridade nos recursos, então o nós pagarão para serem colaboradores. Como uma conseqüência esperada, os nós modificarão
suas estratégias de colaboração e o sistema evoluirá para um estado em que não haverá
nós desonestos. A abordagem usada neste trabalho é detalhada a seguir.
3.1. Adaptando a Rede de Favores ao P2MAN
De forma similar à NoF, um nó P2MAN atribui uma pontuação para cada nó vizinho com
o qual ele interage, e armazena essa informação localmente, de acordo com os favores
que o nó recebe ou doa. No P2MAN, transmitir um pedaço de um conteúdo requisitado é prestar um favor. Entretanto, um nó proprietário P2MAN deve decidir se vai ou
não responder a requisições de conteúdo. Essa decisão é baseada num fator denominado
Saúde. A Saúde é uma metáfora que representa a noção intuitiva de disponibilidade de
uma coleção de recursos do nó. Por exemplo, como os nós móveis possuem recursos de
energia limitados, deve-se poupar a energia disponı́vel. Sendo assim, as transmissões são
consideradas custosas. Para um nó que tenha a sua fonte de energia a plena carga é mais
conveniente transmitir conteúdos do que para um nó com uma fonte de energia próxima
da exaustão.
Seja ρ ∈ < : 0 ≤ ρ ≤ 1 a probabilidade de que um nó proprietário A compartilhará seus conteúdos quando requisitado, θA seja o limiar de saúde do nó A e rA (max) a
máxima reputação de nós armazenada no nó A, define-se ρ na Equação 2, como a seguir.
ρ = min(1, (θA + θA .
rA (B)
)) : 0 ≤ θ ≤ 1
rA (max)
(2)
Assumindo que os nós P2MAN sabem medir seu estado interno, de forma a poder
computar sua saúde, quando um nó P2MAN A estiver plenamente saudável, θA será 1.
Da mesma forma, quando A tiver exaurido seus recursos, θA será 0. O segundo termo na
Equação foi introduzido para comparar a reputação de um nó solicitante com a melhor
154
Anais
reputação armazenada no nó A. O objetivo deste segundo termo é aumentar a probabilidade de que um bom colaborador receba pedaços de conteúdo. Assim, quando um nó
iniciante (i.e., com reputação nula) requisita um conteúdo ao nó A, a probabilidade de
o nó A atender à requisição depende somente do seu limiar de saúde (i.e., θA ). Se em
algum momento o nó A estiver plenamente saudável, ele atenderá às requisições de compartilhamento de conteúdo, mesmo a nós iniciantes na rede. Entretanto, quando o melhor
colaborador (i.e., rA(max)) requisitar um conteúdo ao nó A, a probabilidade de o nó A
atender a sua requisição será duas vezes maior do que a probabilidade de A atender um
nó iniciante (i.e., max(1, 2θA ). Essa abordagem captura a idéia de esforço de um nó para
garantir a reciprocidade de favores aos seus colaboradores.
A NoF original não resolve o problema de ataques maliciosos por nós desonestos
que desejam reduzir o desempenho do sistema através do envio de pedaços falsos de
conteúdo para os vizinhos que solicitam. Destaca-se que o impacto da transmissão de
pedaços falsos para pares de uma rede P2P de distribuição de conteúdo pode ser ordens
de magnitude pior se a rede P2P estiver sobre uma MANET. Isso se deve ao fato de que
as MANETs utilizam roteamento salto a salto em ambiente dinâmico. A medida que
um pedaço falso atravessa uma MANET, muitos nós podem ser requisitados a repassar
os pacotes que compõem o pedaço, desde o nó proprietário até o destino. No caso de
um ataque em conluio, uns poucos nós desonestos podem saturar uma MANET inteira,
enviando pedaços falsos para nós diametralmente opostos na rede.
Para contornar esse problema, foi feita uma modificação na NoF, adicionando um
mecanismo de Lista Negra. O objetivo da lista negra é punir imediatamente quaisquer
nós P2MAN que enviem pedaços falsos para os nós solicitantes. Dessa forma, assim
que um pedaço falso é recebido por um nó solicitante, ele incorpora o nó em sua lista
negra, evitando responder às requisições futuras de tal nó (e.g., resposta a requisições de
conteúdo, envio de pedaços) por um perı́odo programado. O perı́odo programado pode
ser ajustado convenientemente pelo usuário do sistema. Para calcular rA (B), assume-se
que um nó P2MAN tem informações confiáveis sobre v(B, A) e v(A, B).
Particularmente, assume-se que um nó P2MAN genérico é capaz de: (i) medir o
número de favores providos por outro nó P2MAN, e (ii) verificar se o favor prestado é
válido ou não (i.e., que os dados enviados são válidos).
3.2. Coibindo Atividades de Nós Desonestos
Por se tratar de um protocolo P2P multicast para MANETs, uma estratégia do P2MAN
é evitar as múltiplas transmissões de conteúdo um para um, o que reduz a saturação da
transmissão. Em vez disso, P2MAN reforça a seleção de únicos nós transmissores para
cada conteúdo, por um processo de seleção de nós proprietários. Note-se que, como parte
da implementação do P2MAN, uma requisição de conteúdo deve ser realizada através de
uma mensagem para o Canal Público (i.e., grupo multicast especial).
Ao receber uma mensagem de solicitação, um nó proprietário pode responder ao
Canal Público, se desejar, informando que possui o conteúdo e enviando os metadados
com detalhes do conteúdo (e.g., fracionamento, grupo multicast). Todos os nós proprietários podem responder às solicitações no Canal Público. Após analisar as múltiplas
opções, o nó solicitante autoriza um único nó proprietário a enviar pedaços, através de
uma mensagem especı́fica. Particularmente, o processo de seleção e envio de pedaços é
VII Workshop de Redes Dinâmicas e Sistemas P2P
155
relevante para evitar atividades maliciosas no P2MAN, como explicado a seguir.
Supondo que um nó desonesto deseja enviar pedaços falsos para obter vantagem
desonesta na rede, ou para reduzir o desempenho do sistema, ele pode responder positivamente a quaisquer requisições de conteúdo na rede. Para completar o ataque, o nó
malicioso deve aguardar por uma autorização, visto que pedaços enviados por nós não
autorizados são ignorados pelo solicitante, que nem estará associado ao grupo multicast
correto. Quando receber uma autorização, o nó poderá enviar os pedaços falsos ao grupo
multicast alvo. Quando o primeiro pedaço falso for recebido pelos nós solicitantes do
grupo, o remetente será incluı́do nas listas negras dos participantes, que se desconectarão
imediatamente do grupo multicast indicado pelo nó malicioso.
Por um perı́odo programado, os nós atacados vão ignorar as comunicações seguintes do nó atacante incluı́do na lista negra. Defende-se que esta abordagem é suficiente
para minimizar as atividades maliciosas de nós desonestos, evitando que haja transmissão
de pedaços para esses nós desonestos. A atividade dos nós caroneiros (free riders) será
minimizada também, visto que tais nós terão baixa reputação na rede, como explicado a
seguir.
Supondo agora que um nó desonesto deseja ser um caroneiro, não respondendo a
quaisquer solicitações. A partir daı́, sua reputação não aumentará com o tempo. Mesmo
no caso de um ataque de mudança de identidades, o nó desonesto permanecerá com a
reputação nula, exatamente como um nó iniciante.
4. Avaliação
Nesta Seção o desempenho da solução proposta é medido, apresentando-se os resultados de simulações que mostram que as modificações aplicadas à Rede de Favores são
suficientes para evitar que nós maliciosos tenham êxito e levem um sistema P2MAN ao
colapso.
4.1. Cenário de Simulação
Foram realizadas simulações em um cenário tı́pico de MANETs, no simulador Network
Simulator 2.34. Foi modelada uma rede com 100 nó móveis homogêneos. No modelo
proposto, é possı́vel ajustar o perı́odo programado de penalidade, o número de pares que
enviam pedaços falsos, e o número de pares caroneiros. Os resultados são representados
por uma média de 20 rodadas de simulação, com um intervalo de confiança de 95%.
Os nós estão espalhados aleatoriamente sobre o terreno e movem-se de acordo
com o modelo de mobilidade Random Waypoint (excluindo-se a velocidade mı́nima
zero). Os conteúdos compartilhados são fracionados em pedaços de 1000 Bytes, de
acordo com as recomendações de tamanho de pacote UDP de Lee et al. [Lee et al. 2002].
O tamanho do conteúdo é de 100 KBytes. Foram considerados 70 nós solicitantes. Desses, 25 nós são caroneiros, 25 nós são desonestos e enviarão pedaços falsos, e 20 nós são
honestos. A Tabela 2 mostra os parâmetros de configuração do P2MAN.
Quando a simulação inicia, todos os nós têm zero favores e, em algum momento,
os nós solicitantes iniciam a descoberta de conteúdos na rede. Quando o primeiro nó
honesto inicia solicitações, os respectivos nós proprietários respondem, se estiverem com
saúde suficiente. Então, nós proprietários saudáveis e autorizados enviam pedaços para
156
Anais
Tabela 2. Parâmetros de Simulação do P2MAN.
Parâmetro
Simulador
Número de Rodadas
Tamanho do Terreno
Modelo de Mobilidade
Tempo de Pausa
Alcance de Rádio
Largura de Banda
Protocolo de Enlace
Velocidade Máxima
Tamanho do Pedaço
Tamanho do Conteúdo
Perı́odo de Penalidade
Limiar de Saúde (θ)
Número de Nós
Número de Nós Proprietários
Número de Nós Solicitantes
Número de Caroneiros (i.e., não colaboram)
Número de Nós Desonestos (i.e., enviam pedaços falsos)
Número de Nós Honestos (i.e., colaboradores)
Descrição
2.34
20
1000x1000
Random Waypoint
0s
250 m
2 M bps
802.11DCF M ode
5 m/s
1000 Bytes
100 KBytes
300 s
0.8
100
30
70
25
25
20
os solicitantes. Ao receber e validar os pedaços, os solicitantes então incrementam suas
tabelas de reputação. De forma similar, quando o primeiro nó solicita conteúdos, nós
proprietários saudáveis também respondem, visto ser impossı́vel determinar quais nós
são caroneiros ou maliciosos antes das interações. Portanto, o resultado esperado é que
ambos nós honestos e maliciosos recebam pedaços nas primeiras interações e, após um
perı́odo de tempo, os colaboradores serão pontuados e conseqüentemente privilegiados.
Nós maliciosos permanecerão com reputação nula. Quando nós maliciosos iniciarem as
respostas com conteúdos falsos, todos os solicitantes envolvidos devem incluı́-lo em suas
listas negras. Dessa forma, o resultado esperado é que, em um perı́odo curto de tempo,
os nós desonestos sejam incapazes de enviar pedaços falsos com êxito e suas reputações
permaneçam nulas para todo o sistema, visto que eles não colaboram.
A duração das simulações é de 5000s. Um nó solicitante pede um conteúdo por
vez e quando recebe integralmente um conteúdo, uma nova requisição é feita imediatamente, de forma que o sistema está em constante atividade. A Figura 1 mostra os resultados das simulações, com a taxa de sucesso de download dos nós honestos, nós desonestos
e nós caroneiros, coletados a cada 500s de simulação. Assume-se que os nós não mudam
de estratégia, de forma que um nó honesto permanece honesto durante toda a simulação.
Note-se que, mesmo entre nós honestos, a taxa de sucesso de download não é máxima,
visto que o download de alguns pedaços pode falhar.
A Figura 1 mostra uma redução substancial na taxa de sucesso dos nós desonestos. Também, os nós caroneiros têm suas atividades minimizadas após um perı́odo. Nas
simulações foram usados conteúdos pequenos para download. Ressalte-se que, quando o
download de um conteúdo é concluı́do, um novo download inicia. Portanto, para novos
VII Workshop de Redes Dinâmicas e Sistemas P2P
157
Figura 1. Taxa de Sucesso de Download de Nós Honestos, Nós Desonestos, e
Nós Caroneiros.
conteúdos, potencialmente novos proprietários são requisitados e os nós caroneiros podem se beneficiar recebendo alguns pedaços desses novos nós proprietários, o que explica
a inclinação mais suave no decaimento do gráfico, até serem finalmente detectados por
uma quantidade suficiente de nós para serem coibidos.
5. Conclusão
Este trabalho tratou do problema de aumentar a segurança do P2MAN, que é um protocolo de distribuição de conteúdo P2P para MANETs, minimizando as atividades de nós
caroneiros e nós desonestos. A abordagem utilizada foi uma adaptação da Rede de Favores como mecanismo de reputação distribuı́do. Na versão modificada foi incorporada
uma funcionalidade de lista negra para auxiliar a NoF a combater os nós desonestos no
P2MAN. Também, foi definido o conceito de saúde do nó, em um esforço para modelar as
restrições de recursos dos nós móveis sem fio no contexto de distribuição das MANETs.
Com essa modelagem foi possı́vel evitar o problema de drenagem maliciosa de recursos
por nós desonestos.
Através do simulador NS-2, foi demonstrado que a abordagem proposta é suficiente para minimizar as atividades de nós maliciosos, reduzindo a taxa de sucesso de
download dos nós desonestos a quase zero.
Pretende-se estender este trabalho, incluindo a informação de energia e outras
restrições de recursos nas simulações e realizando análises mais completas para medir o
impacto da saúde do nó na habilidade do P2MAN de distribuir conteúdos em MANETs.
158
Anais
Referências
Aberer, K. and Despotovic, Z. (2001). Managing trust in a peer-2-peer information system. In Proceedings of the tenth international conference on Information and knowledge management, pages 310–317, New York, NY, USA. ACM.
Anastasi, G., Ancillotti, E., Conti, M., and Passarella, A. (2009). Design and performance
evaluation of a transport protocol for ad hoc networks. The Computer Journal Advance,
52:186–209.
Andrade, N., Brasileiro, F., Cirne, W., and Mowbray, M. (2004). Discouraging free riding in a peer-to-peer cpu-sharing grid. High-Performance Distributed Computing,
International Symposium on, 0:129–137.
Androutsellis-Theotokis, S. and Spinellis, D. (2004). A survey of peer-to-peer content
distribution technologies. ACM Computer Surveys, 36(4):335–371.
Chun, B., Fu, Y., and Vahdat, A. (2003). Bootstrapping a distributed computational economy with peer-to- peer bartering. In 1st Workshop on Economics of Peer-to-Peer
Systems.
Cohen, B. (2003). Incentives build robustness in bittorrent. In Workshop on Economics
of Peer-to-Peer Systems, Berkeley, CA, EUA.
Conti, M., Gregori, E., and Turi, G. (2004). Towards scalable p2p computing for mobile
ad hoc networks. In Proceedings of the Second IEEE Annual Conference on Pervasive
Computing and Communications Workshops, page 109.
Cornelli, F., Damiani, E., di Vimercati, S. D. C., Paraboschi, S., and Samarati, P. (2002).
Choosing reputable servents in a p2p network. In Proceedings of the 11th international
conference on World Wide Web, pages 376–386, New York, NY, USA. ACM.
Delmastro, F., Passarella, A., and Conti, M. (2008). P2p multicast for pervasive ad hoc
networks. Pervasive and Mobile Computing, 4(1):62 – 91.
Ding, G. and Bhargava, B. (2004). Peer-to-peer file-sharing over mobile ad hoc networks.
In Proceedings of the Second IEEE Annual Conference on Pervasive Computing and
Communications Workshops, page 104.
Doria, S. and Spohn, M. A. (2009). A multicast approach for peer-to-peer content distribution in mobile ad hoc networks. In IEEE Wireless Communications and Networking
Conference (WCNC), pages 1–6.
Holland, G. and Vaidya, N. (1999). Analysis of tcp performance over mobile ad hoc
networks. In Proceedings of the 5th Annual ACM/IEEE International Conference on
Mobile Computing and Networking, pages 219–230.
Kamvar, S. D., Schlosser, M. T., and Garcia-Molina, H. (2003). The eigentrust algorithm
for reputation management in p2p networks. In Proceedings of the 12th international
conference on World Wide Web, pages 640–651, New York, NY, USA. ACM.
Klemm, A., Lindemann, C., and Waldhorst, O. (2003). A special-purpose peer-to-peer
file sharing system for mobile ad hoc networks. IEEE 58th Vehicular Technology Conference, 4:2758–2763.
VII Workshop de Redes Dinâmicas e Sistemas P2P
159
Kortuem, G., Schneider, J., Preuitt, D., Thompson, T., Fickas, S., and Segall, Z. (2001).
When peer-to-peer comes face-to-face: Collaborative peer-to-peer computing in mobile ad hoc networks. In Proceedings of the First International Conference on Peer-toPeer Computing, page 75.
Kozat, U., Koutsopoulos, I., and Tassiulas, L. (2004). A framework for cross-layer design of energy-efficient communication with qos provisioning in multi-hop wireless
networks. In Twenty-third AnnualJoint Conference of the IEEE Computer and Communications Societies, volume 2, pages 1446–1456.
Krifa, A., Sbai, M. K., Barakat, C., and Turletti, T. (2009a). Bithoc: A content sharing
application for wireless ad hoc networks. Pervasive Computing and Communications,
IEEE International Conference on, 0:1–3.
Krifa, A., Sbai, M. K., Barakat, C., and Turletti, T. (2009b). A standalone content sharing application for spontaneous communities of mobile handhelds. In MobiHeld ’09:
Proceedings of the 1st ACM workshop on Networking, systems, and applications for
mobile handhelds, pages 77–78, New York, NY, USA. ACM.
Lee, J., Kim, G., and Park, S. (2002). Optimum udp packet sizes in ad hoc networks.
In Workshop on High Performance Switching and Routing. Merging Optical and IP
Technologies, pages 214–218, Seoul, South Korea.
Lee, U., Park, J.-S., Yeh, J., Pau, G., and Gerla, M. (2006). Code torrent: content distribution using network coding in vanet. In MobiShare ’06: Proceedings of the 1st
international workshop on Decentralized resource sharing in mobile computing and
networking, pages 1–5, New York, NY, USA. ACM.
NS-2 (2010). The network simulator. http://www.isi.edu/nsnam/ns.
Passarella, A., Delmastro, F., and Conti, M. (2006). Xscribe: a stateless, cross-layer
approach to p2p multicast in multi-hop ad hoc networks. In MobiShare ’06: Proceedings of the 1st international workshop on Decentralized resource sharing in mobile
computing and networking, pages 6–11, New York, NY, USA. ACM.
Quental, N. C. and Gonçalves, P. A. (2010). Cds-bittorrent: Um sistema de disseminação
de conteúdo para a melhoria do desempenho de aplicações bittorrent sobre manets. In
VI Workshop de Redes Dinâmicas e Sistemas Peer-to-Peer (WP2P).
Rajagopalan, Sundaram, Shen, and Chien-Chung (2006). A cross-layer decentralized
bittorrent for mobile ad hoc networks. In Third Annual International Conference on
Mobile and Ubiquitous Systems: Networking & Services, pages 1–10.
Sbai, M. K. and Barakat, C. (2009). Revisiting p2p content sharing in wireless ad hoc
networks. Lecture Notes in Computer Science, 5918:13–25.
Sbai, M. K., Barakat, C., Choi, J., Hamra, A. A., and Turletti, T. (2008). Adapting
BitTorrent to Wireless Ad Hoc Networks, volume 5198, pages 189–203. Springer Berlin
/ Heidelberg.
Souza, C. and Nogueira, J. M. (2008). Um estudo do bittorrent em redes ad hoc sem
fio crı́ticas com localidade espaço-temporal. In XXV Simpósio Brasileiro de Redes de
Computadores e Sistemas Distribuı́dos, pages 329–342.
160
Anais
Stuckmann, P. and Zimmermann, R. (2009). European research on future internet design.
IEEE Wireless Communications, 16:14–22.
Vaishampayan, R. and Garcia-Luna-Aceves, J. J. (2004). Efficient and robust multicast
routing in mobile ad hoc networks. IEEE International Conference on Mobile Ad-hoc
and Sensor Systems, pages 304–313.
Y. Charlie Hu, S. D. and Pucha, H. (2003). Exploiting the synergy between peer-to-peer
and mobile ad hoc networks. In 9th Workshop on Hot Topics in Operating Systems,
pages 37–42, Lihue, HI, USA.
VII Workshop de Redes Dinâmicas e Sistemas P2P
161
Agregação de Pacotes em Ambientes com Enlaces de Baixa
Capacidade de Transmissão
P. H. Azevêdo Filho1 , M. F. Caetano2 , J. L. Bordim1
1
Departamento de Ciência da Computação – Universidade de Brasília (UnB)
Caixa postal 4466 – 70910-900 – Brasília – DF – Brasil
2
Departamento de Engenharia Elétrica – Universidade de Brasília (UnB)
Caixa postal 4386 – 70910-900 – Brasília – DF – Brasil
[email protected], [email protected], [email protected]
Abstract. This work presents a new technique for improving the capacity of saturated wireless networks of hosting real time voice conversations, without degrading the quality provided to users. To reach this goal, a packet aggregation
protocol was tailored to work in the IP layer of the networking stack, in order to reduce the number of wireless transmissions and decrease the volume of
headers sent. This technique, called MAPAS, was compared to a state-of-the-art
packet aggregation policy and to a non-aggregating network, and a significant
improvement in supporting the traffic was noticed in the network that used MAPAS.
Resumo. A principal contribuição deste trabalho é propor um mecanismo de
agregação de pacotes voltado para ambientes de rede sem fio onde a capacidade dos enlaces não é homogénea. O mecanismo proposto, caracteriza-se
pela utilização de estimativas de tempo para realizar a entrega dos dados permitindo a agregação dos pacotes e mantendo o atraso máximo dentro dos limites da aplicação. O mecanismo proposto, denominado MAPAS (Mecanismo
de Agregação de Pacotes em Ambientes Saturados), foi implementado e comparação com outras políticas de agregação de pacotes. Os resultados mostram
que mecanismo proposto permite uma maior agregação de dados mantendo os
requisitos de temporização e atrasos de aplicações sensíveis como o de tráfego
de voz.
1. Introdução
A popularização da Internet acelerou a corrida por novas tecnologias e impulsionou o processo de convergência de serviços com base no protocolo IP. Esta convergência fomentou
o surgimento de novas tendências e serviços. Um exemplo desta tendência é a tecnologia
de tráfego de Voz sobre IP (Voice over IP - VoIP). Ao longo dos últimos anos, o VoIP
tem ganhado adeptos tanto no setor privado como no setor público. O Governo Federal,
por exemplo, há algum tempo vem buscando formas de reduzir custos com telefonia nos
órgãos públicos. Esta iniciativa ganhou força com o projeto VoIP4All que vem sendo
executado junto à RNP [Oliveira 2007]. Dentre os principais fatores de sucesso do VoIP
estão a possibilidade de integração ao sistema de telefonia pública e redução dos custos
em chamadas telefônicas [Correio Popular Online 2005].
162
Anais
Em um contexto diferente, mas ao mesmo tempo, a utilização de tecnologias de
comunicação sem fio foi impulsionada pelo avanço dos componentes eletrônicos e das
comunicações pessoais sem fio. De forma a permitir a sua padronização, o IEEE (The
Institute of Electrical and Electronics Engineers ) iniciou estudos para a elaboração de
um padrão para redes sem fio locais e metropolitanas. Deste trabalho surgiu o padrão
IEEE 802.11 (ou WiFi), cujo objetivo era permitir a conectividade sem fio entre equipamentos em uma área local [IEEE 2007]. Devido a sua simplicidade de instalação, configuração, baixo consumo de energia e custos atrativos, criou-se um cenário favorável para
a utilização do WiFi nos mais diversos ambientes. O padrão IEEE802.11 permite dois
modos de operação, com e sem infra-estrutura. No primeiro modo, a comunicação entre
os dispositivos se dá através um elemento central, ou ponto de acesso. No segundo modo,
também chamado modo ad hoc, a comunicação entre os dispositivos é viável mesmo sem
a presença de uma infra-estrutura pré-existente. Atualmente, as redes ad hoc encontram
aplicações em inúmeros cenários, desde em operações de busca e resgate até a simples
troca de arquivos entre dois dispositivos adjacentes.
O baixo custo e sua ampla utilização fazem do padrão IEEE 802.11 uma alternativa natural para se agregar mobilidade às aplicações de VoIP. No entanto, as redes sem
fios não oferecem o mesmo desempenho das redes cabeadas, por serem mais suscetíveis
a interferências e colisões. Além disso, o tráfego de voz exige que a rede tenha uma boa
capacidade de enviar pacotes de maneira contínua e com pequena variação do atraso para
que se possa garantir a qualidade do serviço (Quality of Service - QoS).
O uso de longos cabeçalhos na camada física e os mecanismos de contenção
de acesso ao meio fazem com que as redes sem fio tenham maior dificuldade para suportar aplicações VoIP. Para minimizar estes problemas, a comunidade científica vem
buscando alternativas de forma a atender os requisitos destas aplicações. Entre as técnicas exploradas, a agregação de pacotes tem apresentado resultados interessantes, em
especial para o tráfego de voz [Petrović et al. 2003, Katti et al. 2006, Castro et al. 2007,
Raghavendra et al. 2006]. A Figura 1 mostra um exemplo onde há o envio de diversos
pacotes de voz unidos em um único pacote. Esta técnica permite que os pacotes de vários emissores sejam agregados em um ponto comum, o que permite uma diluição no
overhead imposto pelos protocolos de comunicação sem fio utilizados. Estas e outras
questões serão abordadas com maior nível de detalhe nas próximas sub-seções. Para prover tal comportamento, mecanismos de multiplexação e demultiplexação dos pacotes de
voz precisam ser bem definidos para que esta técnica produza os benefícios desejados.
1.1. Trabalhos Relacionados
Em [Petrović et al. 2003] é apresentada uma proposta de um algoritmo de roteamento,
compressão e agregação de pacotes para redes de sensores. Os resultados mostram ganhos significativos em termos de redução de custo de roteamento. No entanto, esta abordagem não atende aos requisitos de QoS para tráfego de voz. Em [Katti et al. 2006], os
autores propõem uma combinação linear entre os dados estão sendo transmitidos, considerando para isso, que os dispositivos da rede possuem vários pacotes armazenados.
Este método exige mudanças profundas na pilha TCP/IP. A proposta denominada IPAC
[Raghavendra et al. 2006] define mecanismos para reter os dados na origem de forma a
agregá-los em um pacote maior e então transmiti-los. Os resultados mostram que em
certos cenários é possível obter ganhos significativos. No entanto, o uso dessa técnica
VII Workshop de Redes Dinâmicas e Sistemas P2P
163
Figura 1. Representação de vários pacotes sendo agregados em um só, com a
adição de cabeçalhos extras para controlar o início dos pacotes.
pode desperdiçar oportunidades de agregação em outros pontos da rede. Outro problema
é a dificuldade de estimar o volume de dados que podem ser retidos na origem sem degradar o serviço. Uma evolução desta proposta é apresentada em [Castro et al. 2007],
onde os autores propõem que pacotes sejam agregados ao longo do caminho. No entanto,
as estimativas de tempo de agregação são determinadas de forma fixa, o que pode gerar
atrasos excessivos e descarte de pacotes, especialmente, em ambientes onde os enlaces
possuem diferenças de capacidade, ou desperdiçar oportunidades de agregação, quando
as condições do canal forem boas.
Este trabalho apresenta um mecanismo de agregação de pacotes para suporte a
aplicações VoIP sobre redes sem fio. O mecanismo proposto permite a redução do número
transmissões bem como do overhead dos cabeçalhos envolvidos no processo de agregação. Diferente dos demais trabalhos, nossa proposta realiza a avaliação local e dinâmica
do comportamento do fluxo de dados o que permite a aplicação da solução mesmo para
redes com enlaces heterogêneos. Os requisitos de tempo impostos pela aplicação são respeitados e o trabalho de agregação é realizado de forma adaptativa. Os resultados obtidos
através de simulações demonstram que o mecanismo proposto permite ganhos significativos quando comparados com os de outras técnicas semelhantes propostas. Em média, foi
possível reduzir em 50% o número de transmissões e manter o mesmo volume de dados
transmitidos.
O restante deste documento está organizado da seguinte forma: A Seção 2 introduz conceitos relacionados com o processo de agregação de pacotes. A Seção 3 uma nova
proposta de agregação de pacotes será apresentada. Na Seção 4 os experimentos realizados serão descritos e seus resultados apresentados e discutidos. Por fim, na Seção 5 serão
apresentadas as conclusões e trabalhos futuros.
2. Agregação de Pacotes
O foco da agregação de pacotes em redes sem fio é minimizar o overhead introduzido
pelos temporizadores e pacotes de controle que fazem parte dos protocolos de comunicação sem fio. No caso do WiFi, estes temporizadores fixos independem da carga útil do
164
Anais
pacote sendo transmitido [IEEE 2007]. Dentre os temporizadores fixos podemos citar o
SIFS (Short Interframe Space), DIFS (DCF Interframe Space) e preâmbulo. Os pacotes
RTS (Request To Send) e CTS (Clear To Send) podem ser considerados como fixos, tendo
em vista que os mesmos são transmitidos a uma taxa de transmissão fixa, independente
da qualidade e capacidade do canal. Por outro lado, o tempo de contenção depende de
vários fatores, entre eles o número transmissores. Neste contexto, a agregação de pacotes
tenta minimizar os efeitos de overhead descritos através da união da carga útil dos pacotes
a serem transmitidos. Um melhor detalhamento sobre os diversos temporizadores, bem
como, a relação entre o overhead e a carga útil dos pacotes, em uma rede sem fio, pode
ser verificado em [Bordim et al. 2010].
Os trabalhos relacionados, apresentados na seção anterior, consideram um ambiente em que as conexões entre os nós adjacentes possuem as mesmas características em
termos de capacidade de transmissão e temporização. No entanto, dada a dinâmica das
redes móveis e as características do meio aéreo, as condições do canal em um nó ni podem ser bastante diferentes daquelas observadas pelo nó nj , mesmo no caso em que ni e
nj sejam adjacentes (para 0 < i < j < N , e N representa o número de nós da rede em
questão). Em outras palavras, as condições do enlace entre dois nós adjacentes, ni e nj ,
em uma rede sem fio, pode variar ao longo do tempo e estão sujeitas a interferências, colisões e contenção. Esta, por exemplo, está diretamente associada ao número de vizinhos e
suas respectivas ações, tais como volume de pacotes enviados, recebidos ou mesmo roteados através destes nós. Portanto, um mecanismo de agregação de pacotes deve levar em
conta estas questões, de forma a prover um nível de QoS aceitável para esses ambientes.
É importante ressaltar que a temporização é um fator crítico que interfere diretamente na
qualidade do serviço percebido pelo usuário.
Para melhor ilustrar como a agregação de pacotes pode ser utilizada em uma rede
ad hoc, considere o cenário ilustrado na Figura 2. Na figura, quatro nós estão representados. Suponha que os nós na e nb possuam dados a serem encaminhados para o nó nd .
Assuma que ambos os nós na e nb estejam transmitido seus pacotes a uma taxa constante. Considerando o codec iLBC, teremos 38 bytes a cada 20 ms sendo gerados, na
Camada de Aplicação, pelos nós na e nb [Página do Codec iLBC 2010]. Estes pacotes
serão entregues ao nó nc , que irá repassá-los ao destinatário. Como é possível perceber,
existe a oportunidade para o nó nc em combinar os pacotes recebidos de na e nb antes de
repassar para o destino nd . A agregação de pacotes permite ao nó nc reduzir o número de
transmissões para o nó nd . No entanto, para que este processo seja viável, o tempo gasto
neste processo deve estar dentro dos limites aceitáveis pela aplicação. Isto é, o nó nc deve
possuir mecanismos para poder estimar o tempo gasto para o encaminhamento do pacote
da origem até o nó nc e o tempo necessário para encaminha-lo do nó nc até o destino final
que, em nosso exemplo, é o nó nd . Vale ressaltar que para comunicação VoIP, o tempo
total para transmitir uma mensagem da origem ao destino não pode superar 150ms, de
forma a ser possível garantir um nível aceitável de QoS [ITU-T 1996].
Até o momento, as técnicas de agregação de pacotes consideram o tempo para
transpor cada enlace como sendo constante, o que facilita esta estimativa. Por outro lado,
esta restrição não é realista. Seguindo o exemplo da Figura 2, o enlace entre os nós nc e nd
pode ter uma capacidade inferior à dos outros dois enlaces da rede. Isso faz com que uma
estimativa global de tempo possa acarretar em desperdício de oportunidade de agregação
VII Workshop de Redes Dinâmicas e Sistemas P2P
165
Figura 2. Topologia de rede contendo enlaces com capacidades diferenciadas.
ou, ainda, no descarte de pacotes. Na próxima seção serão apresentados os detalhes do
mecanismo de agregação proposto neste trabalho. O referido mecanismo visa atender aos
requisitos descritos, de forma a realizar a agregação de pacotes mesmo em cenários em
que os enlaces apresentam características distintas.
3. MAPAS
Esse mecanismo tem seu foco no tráfego de dados com taxas constantes de transmissão,
como o VoIP, por exemplo. O mecanismo proposto é denominado Mecanismo de Agregação de Pacotes em Ambientes Saturados - MAPAS. O ponto central desta proposta consiste
em estimar o tempo máximo (tpk ) que um dado pacote pk pode ser retido em determinado
em nó na rota até o seu destino, onde k (0 ≤ k ≤ R), representa o identificador do pacote
e R o total de pacotes da rede.
3.1. Estimando o Tempo de Retenção
O princípio básico que rege o MAPAS, diferente dos demais trabalhos, em vez de esperar
um valor fixo para que cheguem mais pacotes agregáveis, é o de esperar o maior tempo
possível sem que haja prejuízos para a aplicação. Para tanto, é preciso que cada nó da
rede possua de antemão uma estimativa do tempo necessário para o pacote chegar ao
seu destino. Este tipo de informação pode ser obtida a partir da análise das informações
contidas nos protocolos de comunicação atualmente disponíveis para redes ad hoc.
Os protocolos de roteamento para redes ad hoc em geral requererem que os nós
guardem informações sobre o caminho para um nó específico com o qual haja comunicação. Essa informação pode ser o próximo nó pelo qual o pacote deve passar (next hop),
como no caso dos protocolos DSDV (Destination-Sequenced Distance-Vector Routing) e
AODV (Ad hoc On Demand Distance Vector), ou mesmo a rota inteira, como no protocolo DSR (Destination Source Routing), que pode chegar a gravar várias rotas completas
para um mesmo destino [Johnson et al. 2007].
Durante a fase de descoberta da rota, por exemplo no DSR, é possível estimar o
tempo necessário para chegar ao destino. Definimos Tr,d como a estimativa de tempo para
chegar ao nó de destino d, a partir do nó r, onde r representa um nó no caminho entre
a origem e o destino do pacote em questão. Esta estimativa pode ser realizada para cada
salto ao longo da rota. Para ilustrar o funcionamento, considere a Figura 2. Suponha que o
nó na envie um pacote de descoberta de rota para o nó nd . Este pacote irá chegar ao nó nc
e será encaminhado ao nó nd o qual irá responder como um pacote de confirmação de rota.
Note que neste caso, os nós na e nc podem estimar o tempo Ta,d e Tc,d , respectivamente,
durante o envio da solicitação de rota e o seu respectivo retorno. Esse valor de tempo
servirá de base na definição de quanto tempo um pacote pode aguardar a cada salto.
166
Anais
Ressalta-se que outros autores utilizam mecanismos semelhantes em outros contextos para estimar o tempo de travessia de uma rota [Bordim et al. 2004]. As variações
nos enlaces podem ser capturadas através do envio constante pacotes de manutenção da
rota. Esta técnica é de fato é utilizada por vários protocolos de roteamento. Uma vez
que a estimativa de tempo de retenção dos pacotes esteja disponível, a próxima tarefa é
permitir a agregação dos pacotes. Esta tarefa será detalhada na seção subsequente.
3.2. Cabeçalho de Agregação
Para melhor controlar os dados transmitidos com agregação, mas sem aumentar significativamente o tamanho dos cabeçalhos, foi desenvolvido um formato de cabeçalho de
agregação para a camada de rede. O cabeçalho é detalhado na Tabela 1. Como o funcionaTabela 1. Composição do cabeçalho do pacote de agregação proposto.
Tamanho (bytes)
1
2
4
4
Nome
eT ime
size
source
dest
Conteúdo
Tempo de vida do pacote, em milissegundos
Tamanho, em bytes, daquela parte agregada
Endereço IP da origem do pacote
Endereço IP do destino final do pacote
mento ocorre na camada IP, para separar o conteúdo dos pacotes agregados, basta remover
os cabeçalhos MAC (feito na camada inferior) e IP (feito na própria camada IP). O valor
do campo protocol do cabeçalho IP indicará se este pacote é um pacote de agregação ou
não, da mesma maneira que em [Castro et al. 2007]. Em caso afirmativo, os primeiros 11
bytes após o cabeçalho IP serão de um cabeçalho de agregação. O campo eT ime indica o
tempo decorrido desde a geração do pacote. Note que cada nó é responsável por atualizar
este campo antes de encaminhar o pacote para o próximo nó no caminho até o destino. O
campo size indicará o volume (em bytes que pertencem ao pacote agregado em questão.
Após esse número de bytes, poderá haver outro cabeçalho de agregação, e assim sucessivamente, até o limite de total length do cabeçalho IP, indicando que não há mais pacotes
agregados.
3.3. Funcionamento do MAPAS
Uma vez que o tempo necessário para um pacote percorrer o caminho da origem até o
destino está disponível, é possível verificar se um dado pacote pode ou não aguardar por
uma oportunidade de agregação com outros pacotes. Esta estimativa é obtida através dos
valores contidos em eT ime e Tr,d . A título de exemplo, considere o cenário da Figura
2, onde o nó nc está no caminho entre os nós na e nd . Quanto um pacote pi , oriundo de
na , é recebido por nc , o campo eT ime conterá o tempo gasto pelo pacote pi para chegar
ao nó nc . O tempo Tc,d contém a estimativa de tempo para pi chegar até o nó nd . Com
base nestes valores, o nó nc poderá estimar o tempo de retenção para o pacote pi . Neste
caso, o nó nc utiliza Equação 1 para estimar o tempo de retenção tpk para o pacote pk . Na
Equação 1, Amax representa o atraso máximo permitido pela aplicação. No caso do VoIP,
Amax = 150ms.
tpk = Amax − (eT ime + Tr,d ).
(1)
Quando maior o valor de tpk , maior será o tempo de retenção permitido para este pacote e,
consequentemente, maior serão as oportunidades de agregação. O protocolo de agregação
VII Workshop de Redes Dinâmicas e Sistemas P2P
167
proposto neste trabalho utiliza os mecanismos descritos acima para estimar o tempo em
que um pacote poderá ser retido e agregado durante o seu percurso até o nó de destino. Os
detalhes do MAPAS são apresentados no Protocolo 1. No Protocolo MAPAS, P denota
Algoritmo 1 Protocolo MAPAS
Entrada Pacote P
1: Ptransp ← desencapsula(P )
2: P ← P − Ptransp
3: se Ptransp 6= ∅ então
4:
envia_camada_transporte(Ptransp )
5: fim se
6: S ← separa(P )
7: enf ilera(S)
8: para toda fila Q 6= ∅ faça
9:
se lim_tempo(Q) || lim_tamanho(Q) então
10:
envia_camada_enlace(f rente(Q))
11:
fim se
12: fim para
um pacote agregador e |P | representa o número total de pacotes agregados em P . Um
pacote agregador P pode conter dois ou mais pacotes agregados, isto é |P | ≥ 2; S representa subconjunto de pacotes de P (isto é, S ⊂ P ) e Q é uma lista de pacotes ordenada,
de forma crescente, por tpk . Desta forma, a cabeça da fila Q possui o pacote com menor
tempo de retenção. Este critério é utilizado para definir a prioridade de transmissão de
cada pacote.
Suponha que o ni (0 < i < N ) receba um pacote P . Ao executar as linhas 1 a 5
do MAPAS, ni irá desencapsular os dados em P e verificar quais pacotes pk , 0 < k < R,
contidos em P são destinados a ele. As linhas 6 e 7 permitem a ni agregar os pacotes
em S que deverão ser encaminhados para seus respectivos destinos. Em outras palavras,
os pacotes são agregados de acordo com o seu próximo salto (next hop), de forma que
os pacotes com o mesmo destino são colocados na mesma fila Q. As linhas 8 a 12 são
responsáveis por verificar quais filas possuem pacotes cujo tempo de retenção esgotou ou
cujo tamanho da fila esteja acima de um certo limite. Em ambos os casos, estes pacotes
serão encaminhados para o respectivo (next hop).
A próxima seção apresenta os cenários e os resultados da simulações da proposta
de agregação apresentada.
4. Simulações e Resultados
Esta seção tem como objetivo avaliar o desempenho do mecanismo de agregação proposto. Para este fim, um simulador em C++ foi desenvolvido de forma a incorporar as
características do MAPAS e de uma rede sem fio utilizando o padrão IEEE802.11. Além
do MAPAS, o mecanismo proposto [Castro et al. 2007] também foi implementado e será
utilizado como base para comparação. Três cenários foram escolhidos para a simulação,
um contendo um enlace com baixa capacidade de transmissão, um segundo cenário contendo um gargalo de comunicação, e um terceiro cenário onde os nós estão dispostos em
168
Anais
uma estrutura hierárquica. Os detalhes da simulação e seus parâmetros serão detalhados
juntamente com o cenário em questão nas subseções abaixo.
4.1. Primeiro cenário: Enlace de Baixa Capacidade
O objetivo deste primeiro cenário é permitir uma avaliação do mecanismo de temporização do MAPAS em um cenário onde os enlaces não possuem a mesma capacidade de
transmissão. A topologia utilizada é semelhante a apresentada na Figura 2. Na simulação,
os nós A e B estão ligados ao nó C por dois enlaces de 100kBps cada. O enlace entre os
nós C e D terá uma variação de capacidade e assumirá valores entre 10 a 100kBps. Os
nós A e B geram um tráfego de dez mil pacotes de voz cada um, com intervalos de 20ms
entre os pacotes (semelhante ao iLBC). Estes pacotes são repassados ao nó C e então
encaminhados ao nó de destino (nó D).
Total de Transmissoes
Cabecalhos transportados
50000
4e+06
MAPAS
Castro et al.
Sem agregar
MAPAS
Castro et al.
Sem agregar
3.5e+06
40000
Cabecalhos (bytes)
Numero de Transmissoes
3e+06
30000
20000
2.5e+06
2e+06
1.5e+06
1e+06
10000
500000
0
0
20
40
60
Capacidade do enlace (em Kbps)
80
100
20
40
60
Capacidade do enlace (em Kbps)
80
100
Figura 3. Indicadores de uso eficiente da rede: (i) Número de transmissões necessárias para transportar os dados gerados; e, (ii) Quantidade total de cabeçalhos transmitidos na rede
A Figura 3 apresenta o número de transmissões necessárias para transportar os
dados e a quantidade total de cabeçalhos transmitidos. Como pode ser visto na figura, o
MAPAS permite reduzir significativamente o número de transmissões quando comparados com o método proposto em [Castro et al. 2007]. De fato, o MAPAS consegue agregar
de duas a quatro vezes mais pacotes em comparação com os métodos avaliados. Por sua
vez, a redução no volume de pacotes trafegados permite ao MAPAS uma economia significativa em termos do volume de bytes de cabeçalhos necessários para realizar o transporte
dos dados. Nota-se que mesmo com um cabeçalho de agregação e informações de temporização, o MAPAS ainda permite uma redução significativa no volume total de bytes
de controle trafegados. Esta economia representa uma redução superior a 55% quando
comparado com o mecanismo proposto em [Castro et al. 2007].
A Figura 4 apresenta os resultados em termos de número de pacotes descartados pela aplicação e atraso máximo. Como pode observado, quando a capacidade
do último enlace é de 10kBps, apenas o MAPAS permite a entrega total dos pacotes.
Neste caso, mais de 40% dos pacotes são descartados quando se utiliza a proposta de
[Castro et al. 2007]. A ausência de mecanismos de estimativa de tempo de retenção inviabiliza a agregação dos pacotes e eventualmente acarreta no descarte devido a atrasos
excessivos quando há uma variação mais significativa na capacidade do enlace. Essa situação torna-se clara quando o enlace é limitado a 10kBps. O mecanismo de estimativa
VII Workshop de Redes Dinâmicas e Sistemas P2P
Pacotes Descartados
169
Atraso Maximo
60
MAPAS
Castro et al.
Sem agregar
MAPAS
Castro et al.
Sem agregar
50
Atraso Maximo (ms)
Pacotes Descartados (%)
150
40
30
20
100
50
10
0
0
20
40
60
80
100
Capacidade do enlace (em Kbps)
20
40
60
80
100
Capacidade do enlace (em Kbps)
Figura 4. Indicadores de QoS: (i) Pacotes descartados; e (ii) Atraso máximo.
Figura 5. Topologia de rede contendo um gateway comum para um conjunto de
nós.
retenção do MAPAS possibilita uma melhor gerência do tempo de retenção dos pacotes,
permitindo que estes cheguem ao destino dentro dos limites estabelecidos pela aplicação.
4.2. Segundo Cenário: Rede Multiplexada
A característica deste cenário mostra um conjunto de nós que possui um gateway comum
(o nó 9 na Figura 5). O intuito deste teste é verificar até que ponto o MAPAS consegue
garantir a temporização dado as característica de um enlace compartilhado entre vários
nós que desejam rotear seus dados através de um mesmo nó intermediário. Neste cenário,
cada um dos oito nós estão conectados a um único nó através de enlaces com capacidade
100kBps. Cada um deste nós enviará dez mil pacotes ao nó 10 em intervalos de 20ms,
totalizando 80 mil pacotes. Novamente, variamos a capacidade do último enlace, isto é,
entre os nós 9 e 10. A Tabela 2 apresenta os resultados da simulação para o caso em que
a capacidade do último enlace é fixa em 50kBps.
Como pode ser visto na Tabela 2, qualitativamente os resultados são similares
aos obtidos no primeiro cenário. Nota-se que o MAPAS permite a entrega dos dados
dentro dos limites estabelecidos pela aplicação, não gerando atrasos e evitando descarte.
Por este motivo, a vazão obtida pelo MAPAS é maior do que das outras propostas. O
mecanismo de agregação do MAPAS permite reduzir o volume de pacotes enviados, e
consequentemente, o volume de cabeçalhos e dados de controle trafegados. A redução
obtida pelo MAPAS em termos de volume de cabeçalhos corresponde a uma redução de
mais de 55% se comparado com um mecanismo convencional. O atraso ( delay) máximo
introduzido pelo MAPAS é menor que das outras propostas e está dentro dos limites de
170
Anais
Tabela 2. Resultados obtidos para o segundo cenário simulado.
Número de transmissões
Cabeçalhos enviados (bytes)
Throughput (kBps)
Overhead induzido (%)
Perda de pacotes (%)
Delay máximo (ms)
Jitter (ms)
Máximo de pacotes agregados
Média de pacotes agregados
Sem agregar
160.000
12.160.000
51,45
66,67
40,94
150
60
1
1
Castro et al.
100.000
10.400.000
57,34
63,11
40,96
150
48
4
1,33
MAPAS
31.669
6.733.454
64,04
52,55
0
145
19
16
4,44
Figura 6. Topologia hierárquica composta de 15 nós.
uma aplicação VoIP. Além disso, o MAPAS apresenta a menor variação de atraso ( jitter
) entre as propostas apresentadas.
4.3. Terceiro Cenário: Rede Hierárquica
O último cenário estudado é apresentado na Figura 6, onde a topologia tem o formato de
árvore invertida. Neste cenário, todos os enlaces possuem a mesma capacidade. O intuito
é verificar o desempenho do MAPAS em um cenário em que ele não se beneficiasse da
diferença de velocidade dos enlaces.
Nesse cenário, há 15 nós ligados de maneira hierárquica, com cada um dos nós da
base (folhas) enviando dez mil pacotes ao nó do topo (raiz). Novamente, cada pacote é
gerado a um intervalo constante de 20ms, totalizando 80 mil pacotes.
Tabela 3. Resultados obtidos para o terceiro cenário de rede simulado.
Número de transmissões
Cabeçalhos enviados (bytes)
Throughput (kBps)
Overhead induzido (%)
Perda de pacotes (%)
Delay máximo (ms)
Jitter (ms)
Máximo de pacotes agregados
Média de pacotes agregados
Sem agregar
240.000
18.240.000
99,5
66,67
15,37
150
32
1
1
Castro et al.
147.768
16.163.916
126,4
63,93
0
134
20
2,88
1,55
MAPAS
108.572
12.639.984
108,7
58,09
0
145
19
14
3,57
VII Workshop de Redes Dinâmicas e Sistemas P2P
171
É possível perceber que em um cenário mais homogêneo com relação aos enlaces,
tanto o MAPAS quanto o método proposto [Castro et al. 2007] são eficazes. Conforme
mostra a Tabela 3, ambas as propostas entregam todos os pacotes nos tempos corretos
(atraso máximo e frequência de chegada, representada pelo jitter). Quando avaliamos os
métodos propostos em função do número de transmissões necessárias para transmitir os
dados gerados, nota-se que o MAPAS é mais eficiente, obtendo redução de aproximadamente 36%. Isso se dá pelo fato do MAPAS possuir um mecanismo mais elaborado para
reter os pacotes, permitindo assim melhores condição para a agregação. A redução no
volume de dados de controle trafegados também são menores no MAPAS.
4.4. Resultados consolidados
Figura 7. Comparativo gráfico do número de transmissões realizado em cada
cenário usando as três abordagens implementadas.
A Figura 7 apresenta os dados consolidados dos cenários apresentados anteriormente. Neste gráfico é possível comparar o número de transmissões ocorrido em cada
cenário. Nota-se que o MAPAS apresenta o menor custo de transmissão em relação as outras abordagens. Em geral, o MAPAS consegue entregar o mesmo volume de dados com
uma redução de aproximadamente 50% no volume de transmissões nos cenários avaliados. A Figura 8 apresenta o volume total dos dados trafegados (payload) e o respectivo
volume de dados de cabeçalhos (overhead) gerado para mover os dados da origem ao destino em cada cenário simulado. Lembramos que o volume de payload é igual para cada
cenário, independente da abordagem utilizada. Nota-se que o MAPAS transfere o mesmo
volume de dados das outras abordagens possibilitando realizar as transmissões com um
custo menor em termos de número de pacotes gerados.
5. Conclusões e Trabalhos Futuros
A principal contribuição deste trabalho foi propor um mecanismo de agregação de pacotes
voltado para ambientes de redes sem fio. O mecanismo proposto, denominado MAPAS,
172
Anais
Figura 8. Comparativo gráfico do volume em bytes transmitido em cada cenário
usando as três abordagens implementadas.
caracteriza-se pela utilização de estimativas de tempo para realizar a entrega dos dados
de forma a permitir a agregação dos pacotes e manter o atraso máximo dentro dos limites
da aplicação. O mecanismo de agregação proposto foi avaliado através de simulações e
os resultados comparados com mais duas propostas: o método convencional onde não há
agregação e outro método que utiliza agregação. Os resultados mostram que o MAPAS
permite uma maior agregação de dados quando comparado com outros mecanismos, em
especial em ambientes onde os enlaces não possuem as mesmas capacidades. Vale ressaltar que em ambientes reais, a capacidade do enlace sem fio pode variar por diversos
fatores, a distância entre os nós sendo uma delas.
O mecanismo proposto pelo MAPAS permite manter a variação do atraso e atraso
total dentro dos limites aceitáveis pela aplicação. Para os cenários apontados, foi possível
validar o desempenho obtido. Como os resultados foram bastante positivos, é possível ver
essa nova técnica como uma alternativa na otimização do uso de redes sem fios, em especial daquelas em que o tráfego predominante é o de aplicações de tempo real, como VoIP.
Como trabalhos futuros, pretende-se realizar uma avaliação do desempenho do MAPAS
sob a óptica da camada de enlace, tendo em vista a redução do volume de dados trafegados, o que implica diretamente no custo de bateria e contenção pelo meio. Estes dados
devem apontar para uma melhoria ainda mais significativa do MAPAS em relação a outros
mecanismos.
Referências
[Bordim et al. 2010] Bordim, J. L., Caetano, M. F., Barreto, P. S., and Barbosa, A. V. (2010).
Theoretical maximum throughput of IEEE 802.11g networks.
[Bordim et al. 2004] Bordim, J. L., Kosuga, M., Tanaka, S., Haq, M., and Matsumoto, M.
(2004). Admission control and simple class based QoS provisioning for mobile ad
VII Workshop de Redes Dinâmicas e Sistemas P2P
173
hoc networks. In Proceedings of the IEEE 60th Vehicular Technology Conference,
volume 2, pages 1533–1548.
[Castro et al. 2007] Castro, M. C., Dely, P., Karlsson, J., and Kassler, A. (2007). Capacity
increase for voice over IP traffic through packet aggregation in wireless multihop mesh
networks. International workshop on Wireless Ad Hoc, Mesh and Sensor Networks.
[Correio Popular Online 2005] Correio Popular Online (2005). Tecnologia voip revoluciona
a comunicação nas empresas. Caderno Economia.
[IEEE 2007] IEEE (2007). Part 11: Wireless lan medium access control (mac) and physical
layer (phy) specifications. Technical report, IEEE Std 802.11.
[ITU-T 1996] ITU-T (1996). General characteristics of international telephone connections
and international telephone circuits one-way transmission time.
[Johnson et al. 2007] Johnson, D. et al. (2007). The Dynamic Source Routing Protocol
(DSR) for Mobile Ad Hoc Networks for IPv4. RFC 4728.
[Katti et al. 2006] Katti, S., Rahul, H., Hu, W., Katabi, D., Medard, M., and Crowcroft, J.
(2006). XORs in the air: Practical wireless network coding. In ACM SIGCOMM,
volume 36, pages 243–254.
[Oliveira 2007] Oliveira, C. X. (2007). Implantação de um laboratório de voz sobre ip na
unb. Monografia de Graduação em Ciência da Computação na Universidade de Brasília.
[Página do Codec iLBC 2010] Página do Codec iLBC (2010). www.ilbcfreeware.
org.
[Petrović et al. 2003] Petrović, D., Shah, R. C., Ramchandran, K., and Rabaey, J. (2003).
Data funneling: Routing with aggregation and compression for wireless sensor
networks. In ICC 2003 International Conference on Communications, pages 156–162.
[Raghavendra et al. 2006] Raghavendra, R., Jardosh, A. P., Belding-Royer, E. M., and
Zheng, H. (2006). IPAC: IP-based adaptive packet concatenation for multihop wireless networks. In 40th Asilomar conference on signals, systems and computers, pages
2147–2153.
174
Anais
VII Workshop de Redes Dinâmicas e Sistemas P2P
175
Índice por Autor
A
Alberti, A. M. ...................................115
Andrade, N. ........................................47
Andrade, R. M. C. ..............................87
B
Bordim, J. L. .....................................161
C
Caetano, M. F. ..................................161
Castro, G. de G. C. .............................57
D
de Almeida, H. O. .............................131
de Bona, L. C. E. ................................31
de Lima, F. M. ....................................17
de Oliveira, C. T. ................................87
de Sales, L. M. ..................................131
Doria, S. ....................................101, 147
F
Figueiredo, D. R. ................................71
Filho, P. H. A. ...................................161
G
Gomes, R. L. .........................................3
J
Junior, E. P. D. ................................... 31
K
Klachquin, A. ..................................... 71
M
Manola, R. ........................................... 3
Marcondes, C. ...................................... 3
Marques-Neto, H. T. .......................... 57
Martinello, M. ...................................... 3
Martins, B. M. .................................. 115
Mateus, B. G. ..................................... 87
P
Perkusich, A. .................................... 131
R
Ruoso, V. K. ...................................... 31
S
Santana, J. .......................................... 47
Silva, R. A........................................ 131
Spohn, M. A. ............................ 101, 147
Sztajnberg, A. .................................... 17
ISSN 2177-496X
9 772177 496009
Patrocínios: