Download PDF
ads:
Universidade Federal do Maranh˜ao
Centro de Ciˆencias Exatas e Tecnologia
Programa de os-Gradua¸ao em Engenharia de Eletricidade
DEFINIC¸
˜
AO DE UMA ARQUITETURA P2P
BASEADA EM REPUTAC¸
˜
AO E
ORIENTADA A SERVIC¸OS
Fl´avio Marc´ılio Paiva Ramos
ao Lu´ıs
2009
ads:
Livros Grátis
http://www.livrosgratis.com.br
Milhares de livros grátis para download.
Universidade Federal do Maranh˜ao
Centro de Ciˆencias Exatas e Tecnologia
Programa de os-Gradua¸ao em Engenharia de Eletricidade
DEFINIC¸
˜
AO DE UMA ARQUITETURA P2P
BASEADA EM REPUTAC¸
˜
AO E
ORIENTADA A SERVIC¸OS
Fl´avio Marc´ılio Paiva Ramos
Disserta¸ao apresentada ao Programa de os-Gradua¸ao
em Engenharia de Eletricidade da Universidade Federal do
Maranh˜ao, como parte dos requisitos necess´arios para
obten¸ao do grau de Mestre em Engenharia de Eletricidade.
ao Lu´ıs
2009
ads:
Ramos, Fl´avio Marc´ılio Paiva
Defini¸ao de uma Arquitetur a P2P Baseada em Reputa¸ao e Orien-
tada a Servi¸cos / Fl´avio Marc´ılio Paiva Ramos. - ao Lu´ıs, 2009.
144f.:il.
Disserta¸ao (Mestrado em Engenharia de Eletricidade) - Centro de
Ciˆencias Exatas e Tecnologia, Universidade Federal do Maranh˜ao,
2009.
1. Redes Peer-to-Peer. 2. Computa¸ao Orientada a Servi¸cos. 3.
Protocolos. 4. Reputa¸ao. I.T´ıtulo.
CDU 004.722.2
“Quando uma porta se fecha outra se abre;
mas os quase sempre olhamos tanto e de
maneira ao arrependida para a que se fechou,
que ao vemos aquelas que foram abertas para os”.
Alexander Graham Bell
`
A minha esposa e filhos.
`
A minha ae, meu pai e minha irm˜a.
Agradecimentos
A Deus pelo milagre da vida.
`
A minha ae Zulmira por seu amor e sacrif´ıcios para proporcionar-me,
atraes da educa¸ao, a b usca do conhecimento.
A meu pai Anonio pelos seus exemplos de supera¸ao.
`
A minha esposa Gabryela pelo seu amor e apoio incondicional em todas as
horas.
Aos meus filhos Jo˜ao Gabriel e Pedro Fl´avio que aceitaram meus momentos
de ausˆencia.
`
A minha irm˜a Cl´audia e minha sobrinha Lisa, que apesar da distˆancia, sem-
pre estiveram torcendo por mim.
`
A meus sogros Gilmar e Concei¸ao pelo reconhecimento do meu esfor¸co.
`
A minha o Rosa (in memoriam) que deve estar muito feliz onde quer que
ela esteja.
Ao meu orientador, professor Zair Abdelouhab por acreditar na minha ca-
pacidade e por seus valiosos ensinamentos.
Ao meu co-orientador, professor ario Meireles, por suas importantes opini˜oes,
cr´ıticas e pelas horas em que esteve dispon´ıvel para guiar-me neste trabalho.
Ao Coordenador do Programa de os-Gradua¸ao de Engenharia de Eletrici-
dade, Sebastian Yuri Catunda, pela oportunidade.
Aos professores Miguel Franklin e Omar Cortes por aceitarem participar
desta banca.
A professora Maria da Guia pelos conselhos dados para maior empenho na
conclus˜ao deste mestrado.
Aos professores Anselmo, Auxiliadora, Alexandre, Arist´ofanes, Carlos Sales,
Francisco Silva e Ivo; Rosa, Lucinete (“Baixinha”) e todos que comp˜oem o Depar-
tamento de Inform´atica da UFMA, com os quais tive oportunidade de trabalhar na
´area docente, como professor substituto.
A todos os colegas de mestrado, Aline, Helaine, Johneth, Falkner e Gilberto,
pela amizade, for¸ca, incentivo e uni˜ao durante todo o tempo que passamos juntos,
al´em dos momentos de confraterniza¸ao que realizamos.
A todos os colegas do LAWS (Laboratory of Advanced Web Systems) pela
contribui¸ao para este trabalho.
A Alcides por sua aten¸ao dispensada a todos os alunos do programa de
mestrado.
Aos colegas de trabalho (TRT - 16
a
Regi˜ao) pelo incentivo e apoio para que
esta meta fosse atingida.
E a todos que direta e ind iretamente contribu´ıram nesta importante jornada.
2
Resumo
As redes peer-to-peer (P2P) ao muito populares atualmente, principalmente
quando se deseja buscar ou compartilhar uma grande quantidade de informa¸oes e
recursos entre os seus participantes. Uma das grandes dificuldades desse tipo de tec-
nologia ´e evitar que esses participantes mantenham, ao mesmo temp o, um n´umero
consider´avel de arquivos compartilhados, e ainda garantir que esses arquivos ao se-
jam conte´udo polu´ıdo ou corrompido. Outro problema bem comum nas redes P2P,
´e a falta de interoperabilidade entre as diversas redes existentes, principalmente de-
vido `as incompatibilidades dos metadados e das interfaces das opera¸oes utilizadas
na comunica¸ao entre os os. Este trabalho descreve o P2PWSRep, um protocolo
de gerenciamento de reputa¸ao para identificar os que ao desejam cooperar ou
que podem prejudicar o desempenho da rede pelo compartilhamento de arquivos
corrompidos, infectados ou inexistentes. A infraestrutura da rede do P2PWSRep
foi baseada em servi¸cos web para contornar problemas de interoperabilidade e fa-
cilitar sua extensibilidade, tornand o-o acil de ser utilizado por diversas aplica¸oes
de redes P2P. O protocolo P2PWSRep possui um alculo de reputa¸ao distribu´ıdo,
utilizando-se uma m´edia ponderada exponencial, que considera o valor da reputa¸ao
anterior do o e o valor atual, obtido dos demais os da rede, e regulado por um
parˆametro de ajuste, para obter a reputa¸ao final, de forma que o hist´orico do com-
portamento do o seja considerado. O protocolo P2PWSRep ´e validado por meio
de simula¸ao e os resultados obtidos mostram que o mesmo ´e capaz de apontar os
os ou recursos mais confi´aveis da rede, ao mesmo tempo em que isola aqueles os
que ao ao ´ıntegros ou pouco cooperativos, al´em de ao impor uma sobrecarga
desnecess´aria `a rede P2PWS.
Palavras-Chave: Redes Peer-to-peer. Servi¸cos Web. Proto colos. Reputa¸ao.
Abstract
Nowadays, peer-to-peer networks are very popular mainly, when we wish to search
or share a considerable amount of information and resources among various partici-
pants. One of the main difficulties of this technology is how to avoid that those par-
ticipants maintain, at the same time, a considerable number of shared resources and
to guarantee that those resources are not corrupted or polluted content. Another
problem commonly found in P2P networks is the lack of interoperability among
existing P2P solutions especially because the inconsistencies of metadata and ope-
ration interfaces used in node communication. This work describes P2PWSRep, a
reputation management protocol that identifies non-cooperative nodes or that can
hinder network performance by sharing corrupted, infected or non-existent files.
P2PWSRep infrastructure was based on web services in order to tackle interopera-
bility problems and to facilitate its extensibility, making it feasible to be accessed
by several other P2P applications. The P2PWSRep protocol employs a distributed
reputation computation using an exponentially weighted average that takes into
account the current and previous node reputation and which is tuned by an adjust-
ment parameter in order to obtain the final reputation, thus considering the node’s
behavior. The P2PWSRep protocol is validated by means of simulation and our
results show that it is able to point out the more trustable nodes in the network as
well as to insulate those which are not reliable or cooperative. Besides, the protocol
does not unnecessarily impacts on the network load P2PWS.
Keywords: Peer-to-peer Networks. Web Services. Protocols. Reputation.
Lista de Figuras
1.1 Cen´ario da Internet na ecada de 80. (Computer Museum History) 12
2.1 Arquitetura SOA. (W3C, 2008) . . . . . . . . . . . . . . . . . . . . 21
2.2 Linguagem XML como base de servi¸cos web. (W3C, 2008) . . . . . 23
2.3 Estrutura da mensagem SOAP. (W3C, 2008) . . . . . . . . . . . . . 27
2.4 Estrutura do documento WSDL. (W3C, 2008) . . . . . . . . . . . . 31
3.1 Exemplo de uma rede P2P. . . . . . . . . . . . . . . . . . . . . . . . 36
3.2 Tafego das redes P2P entre 1993 e 2006. (CacheLogic Reseach, 2006) 37
3.3 Rede overlay. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.4 Rede P2P descentralizada versus centralizada. (Addison, 2002) . . 42
3.5 Arquiteturas de redes P2P: (a) Centralizada com busca centraliza-
da; (b) Descentralizada com busca desestruturada; (c) H´ıbrida com
busca descentralizada estruturada (Barcellos and Gaspary, 2006). . 43
3.6 Travessia de firewall com HTTP Tunneling. . . . . . . . . . . . . . 49
3.7 Rede Gnutella. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.8 Arquitetura do Napster (Addison, 2002). . . . . . . . . . . . . . . . 55
4.1 Reputa¸ao de um vendedor do site Mercado Livre. . . . . . . . . . . 58
4.2 Mecanismo de alculo de reputa¸ao do eBay. . . . . . . . . . . . . . 59
4.3 Fases do protocolo XREP. . . . . . . . . . . . . . . . . . . . . . . . 70
5.1 Caso de uso de ingresso na rede . . . . . . . . . . . . . . . . . . . . 77
5.2 Caso de uso de busca de recursos . . . . . . . . . . . . . . . . . . . 78
5.3 Roteamento das mensagens na rede P2PWS. . . . . . . . . . . . . . 79
1
5.4 Obten¸ao da reputa¸ao de um o da rede. . . . . . . . . . . . . . . 80
5.5 Download realizado diretamente do o escolhido . . . . . . . . . . . 81
5.6 Caso de uso de gerenciamento de reputa¸ao . . . . . . . . . . . . . 81
5.7 Influˆencia do parˆametro alfa no alculo da reputa¸ao . . . . . . . . 89
5.8 Diagrama de sequˆencia do protocolo P2PWSRep . . . . . . . . . . . 95
6.1 Exemplo da topologia da rede P2PWS. . . . . . . . . . . . . . . . . 99
6.2 Gr´afico de varia¸ao da reputa¸ao. . . . . . . . . . . . . . . . . . . . 110
6.3 Gr´afico de varia¸ao da reputa¸ao de um o da rede. . . . . . . . . . 113
6.4 Gr´afico do n´umero de requisi¸oes de arquivos corrompidos. . . . . . 115
6.5 Gr´afico do tr´afego de mensagens versus alcance de busca. . . . . . . 117
6.6 Gr´afico do n´umero de respostas de reputa¸ao versus temp o. . . . . . 118
Lista de Tabelas
5.1 Tabela de os. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
5.2 Tabela de reputa¸ao dos os. . . . . . . . . . . . . . . . . . . . . . . 83
5.3 Tabela de configura¸ao do o. . . . . . . . . . . . . . . . . . . . . . 83
5.4 Tabela de recursos. . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
5.5 Tabela de reputa¸ao de recursos. . . . . . . . . . . . . . . . . . . . 85
5.6 Opera¸oes do protocolo P2PWSRep . . . . . . . . . . . . . . . . . . 92
Lista de Listagens
2.1 Exemplo de mensagem SOAP . . . . . . . . . . . . . . . . . . . . . 28
6.1 Trecho da classe P2PWSRepNode . . . . . . . . . . . . . . . . . . . 99
6.2 Classe SMessage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
6.3 Classe GnutellaProtocol . . . . . . . . . . . . . . . . . . . . . . . . 105
A.1 Arquivo de configura¸ao da simula¸ao . . . . . . . . . . . . . . . . . 131
A.2 Log de sa´ıda da simula¸ao da rede P2PWS . . . . . . . . . . . . . . 132
Lista de Abreviaturas
ATC Approximate Trust Computation
ATM Asynchronous Transfer Mode
BFS Breath First Search
DDoS Distributed Denial of Service
DHT Distributed Hash Table
DTD Document Type Definitions
DTM Dynamic Trust Computation
FTP File Transfer Protocol
GPL General Public License
HTTP Hypertext Transfer Protocol
IP Internet Protocolo
IPS Intrusion Prevent System
IRTF Internet Research Task Force
LAN Local Area Network
MPLS Multiprotocol Label Switching
NAT Network Address Translation
OASIS Organization for the Advancement of Structured
Information Standards
P2P Peer-to-peer
P2PWSRep Peer-to-peer Web Service Reputation Protocol
RPC Remote Procedure Call
SGML Standard Gen eralized Markup L anguage
SHA Secure Hash Algorithm
SMS Short Message Service
SMTP Simple Mail Transfer Protocol
SOA Service Oriented Architecture
SOAP Simple Object Access Protocol
TTL Time to Live
5
UDDI Universal Description, Discovery and Integration
URI Uniform Resource Identifiers
URL Universal Resource Locators
W3C World Wide Web Consortium
WSDL Web Services Definition Language
WWW World Wide Web
XML Extensible Markup Language
6
Sum´ario
1 Introdu¸ao 11
1.1 Motivao e Justificativa . . . . . . . . . . . . . . . . . . . . . . . . 13
1.2 Objetivo Geral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3 Objetivos Espec´ıficos . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.4 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.5 Estrutura da Disserta¸ao . . . . . . . . . . . . . . . . . . . . . . . . 17
2 Servi¸cos Web 18
2.1 Introdu¸ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.2 Servi¸co . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.3 Arquitetura Orientada a Servi¸cos . . . . . . . . . . . . . . . . . . . 20
2.4 Linguagem XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.4.1 Document Type Definitions (DTD) . . . . . . . . . . . . . . 24
2.4.2 XML Schemas . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.5 Simple Object Access Protocol (SOAP) . . . . . . . . . . . . . . . . 25
2.5.1 Mensagem SOAP . . . . . . . . . . . . . . . . . . . . . . . . 26
2.5.2 Modelo de Processamento SOAP . . . . . . . . . . . . . . . 28
2.5.3 SOAP sobre Protocolos de Transporte . . . . . . . . . . . . 29
2.6 Web Services Description Language (WSDL) . . . . . . . . . . . . . 30
2.6.1 Estrutura do Do cumento WSDL . . . . . . . . . . . . . . . . 31
2.7 Universal Description, Discovery and Integration (UDDI) . . . . . . 32
2.7.1 Registro UDDI . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.8 Considera¸oes Finais . . . . . . . . . . . . . . . . . . . . . . . . . . 34
7
3 Redes P2P 35
3.1 Introdu¸ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.2 Evolu¸ao das Redes P2P . . . . . . . . . . . . . . . . . . . . . . . . 35
3.3 Caracter´ısticas das Redes P2P . . . . . . . . . . . . . . . . . . . . . 37
3.4 Aplica¸oes P2P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.4.1 Compartilhamento de Arquivos . . . . . . . . . . . . . . . . 38
3.4.2 Computa¸ao Distribu´ıda . . . . . . . . . . . . . . . . . . . . 39
3.4.3 Troca de Mensagens . . . . . . . . . . . . . . . . . . . . . . 39
3.4.4 Transmiss˜ao de Dados . . . . . . . . . . . . . . . . . . . . . 40
3.5 Redes P2P versus Redes Overlay . . . . . . . . . . . . . . . . . . . 40
3.6 Arquitetura das Redes P2P . . . . . . . . . . . . . . . . . . . . . . 40
3.6.1 Redes P2P Centralizadas . . . . . . . . . . . . . . . . . . . . 41
3.6.2 Redes P2P Descentralizadas . . . . . . . . . . . . . . . . . . 44
3.6.3 Redes P2P com Supern´os . . . . . . . . . . . . . . . . . . . 45
3.7 Tipos de Busca em Redes P2P . . . . . . . . . . . . . . . . . . . . . 46
3.7.1 Busca Centralizada . . . . . . . . . . . . . . . . . . . . . . . 46
3.7.2 Busca Descentralizada Desestruturada . . . . . . . . . . . . 47
3.7.3 Busca Descentralizada Estruturada . . . . . . . . . . . . . . 47
3.8 Firewalls versus Redes P2P . . . . . . . . . . . . . . . . . . . . . 48
3.9 Seguran¸ca em Redes P2P com Reputa¸ao . . . . . . . . . . . . . . . 49
3.10 Solu¸oes de Redes P2P . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.10.1 Gnutella . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.10.2 Napster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.11 Considera¸oes Finais . . . . . . . . . . . . . . . . . . . . . . . . . . 56
4 Reputa¸ao em Redes P2P 57
4.1 Introdu¸ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
4.2 Tipos de Reputa¸ao . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
4.2.1 Reputa¸ao de os . . . . . . . . . . . . . . . . . . . . . . . . 57
4.2.2 Reputa¸ao de Recursos . . . . . . . . . . . . . . . . . . . . . 61
4.3 Sistemas Baseados em Com´ercio e Reputa¸ao . . . . . . . . . . . . 63
8
4.3.1 PPay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.3.2 Sistemas de Escambo . . . . . . . . . . . . . . . . . . . . . . 64
4.3.3 EigenTrust . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
4.3.4 XRep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.3.5 PeerTrust . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
4.4 Considera¸oes Finais . . . . . . . . . . . . . . . . . . . . . . . . . . 72
5 Protocolo de Reputa¸ao P2PWSRep 73
5.1 Introdu¸ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
5.2 Descri¸ao da Arquitetura P2PWSRep . . . . . . . . . . . . . . . . . 76
5.2.1 Modelagem dos Casos de Uso . . . . . . . . . . . . . . . . . 76
5.3 Metadados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
5.3.1 Metadados de os . . . . . . . . . . . . . . . . . . . . . . . 82
5.3.2 Metadados de Recursos . . . . . . . . . . . . . . . . . . . . . 84
5.4 O Protocolo P2PWSRep . . . . . . . . . . . . . . . . . . . . . . . . 84
5.5 Descri¸ao das Interfaces dos Servi¸cos do Protocolo P2PWSRep . . . 91
5.6 Considera¸oes Finais . . . . . . . . . . . . . . . . . . . . . . . . . . 96
6 Simula¸ao do Protocolo P2PWSRep 97
6.1 Introdu¸ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
6.2 Descri¸ao do Ambiente de Simula¸ao . . . . . . . . . . . . . . . . . 98
6.3 Cen´ario 1 - An´alise do Protocolo de Reputa¸ao dos os . . . . . . . 108
6.3.1 Descri¸ao do Cen´ario . . . . . . . . . . . . . . . . . . . . . . 109
6.3.2 Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
6.3.3 An´alise dos Resultados . . . . . . . . . . . . . . . . . . . . . 112
6.4 Cen´ario 2 - An´alise do Protocolo de Reputa¸ao dos Recursos . . . . 113
6.4.1 Descri¸ao do Cen´ario . . . . . . . . . . . . . . . . . . . . . . 114
6.4.2 Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
6.4.3 An´alise dos Resultados . . . . . . . . . . . . . . . . . . . . . 115
6.5 Cen´ario 3 - An´alise do Protocolo quanto `a Carga na Rede . . . . . . 116
6.5.1 Descri¸ao do Cen´ario . . . . . . . . . . . . . . . . . . . . . . 116
9
6.5.2 Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
6.5.3 An´alise dos Resultados . . . . . . . . . . . . . . . . . . . . . 118
6.6 Considera¸oes Finais . . . . . . . . . . . . . . . . . . . . . . . . . . 119
7 Conclus˜ao 121
7.1 Contribui¸oes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
7.2 Trabalhos Futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
A 131
A.1 Anexo 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
A.2 Anexo 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
Cap
´
ıtulo 1
Introdu¸ao
A Internet ´e o resultado do desenvolvimento de uma filosofia de interliga¸ao
de redes de computadores, cuja caracter´ıstica mais relevante ´e a total transparˆencia
aos usu´arios dos detalhes relativos `as tecnologias e a forma como a interliga¸ao
e comunica¸ao ´e feita (Chiozzotto and Mauro, 1999). No final da ecada de 90,
milh˜oes de usu´arios a utilizavam a rede mundial de computadores, sendo que, no
princ´ıpio, o modelo de intera¸ao era atraes de uma divis˜ao hier´arquica clara, onde
os servi¸cos ficavam dispon´ıveis em aquinas chamadas de servidores e os clientes,
para acess´a-los, ut ilizavam conex˜oes ainda bem lentas e de baixa qualidade. Esse
modelo, bem conhecido e utilizado at´e hoje, ´e chamado de Modelo Cliente/Servi-
dor.
´
E um modelo hier´arquico, sendo que a claramente a divis˜ao de pap´eis entre
os elementos da rede, onde quem fornece o servi¸co ´e o elemento servidor e quem
consome o servi¸co ´e o elemento cliente. Com o crescimento acelerado da Internet,
logo surgiram preocupa¸oes a respeito de sua infraestrutura, a que os mais pes-
simistas apostavam no seu colapso, afirmando que esta ao suportaria a demanda
de milhares de computadores que ingressavam na rede por dia, enquanto outros
ao concordavam com as restri¸oes de provedores para armazenamento ou troca de
arquivos e estavam em busca de alguma tecnologia que possibilitasse uma intera¸ao
ad-hoc, sem dependˆencia de uma entidade ou elemento de rede centralizado. A
Figura 1.1 mostra o cen´ario, ainda na d´ecada de 80, da Internet. Percebe-se que
a havia uma cobertura bem grande no territ´orio americano e conex˜oes com outros
11
CAP
´
ITULO 1. INTRODUC¸
˜
AO 12
continentes.
Figura 1.1: Cen´ario da Internet na d´ecada de 80. (Computer Museum History)
Na ecada de 90, os usu´arios da Internet a contavam com aquinas que
possu´ıam recursos que a uma ecada eram inexistentes e a um custo relativa-
mente baixo, assim estavam em busca de se livrar das restri¸oes dos provedores,
como mencionado anteriormente. Foi ent˜ao que um novo modelo de troca de in-
forma¸oes surgiu na Internet: as redes de conex˜ao ponto-a-ponto (pee-to-peer). As
redes P2P distinguiam-se do modelo Cliente/Servidor por utilizar uma comunica¸ao
ao hier´arquica, onde as partes que constituem o grupo podem se comunicar livre-
mente umas com as outras, numa comunica¸ao ad-hoc, compartilhando seus recur-
sos e utilizando os dos demais, isto ´e, ao a rotula¸ao de pap´eis do tipo cliente ou
servidor dentro da rede. Nessas redes, os integrantes ao chamados de os (peers) e
interagem diretamente, sem necessidade de um elemento para intermediar a comu-
nica¸ao, da´ı a denomina¸ao dessa rede de peer-to-peer.
As redes P2P alcan¸caram seu auge por volta do ano 2000, com um servi¸co
chamado de Napster (Napster, 2008), que no seu melhor momento, teve mais de 50
CAP
´
ITULO 1. INTRODUC¸
˜
AO 13
milh˜oes de usu´arios trocando arquivos de m´usicas, o que representou a maior vio-
la¸ao de direitos autorais em toda a hist´oria da ind´ustria fonogr´afica. As empresas
fonogr´aficas ent˜ao se reuniram e come¸caram uma batalha judicial para por fim ao
Napster, e finalmente conseguiram. Mas, logo ap´os a interrup¸ao do funcionamento
do Napster, surgiram outras redes P2P, ao necessariamente para compartilhar
m´usicas, mas qualquer tipo de arquivo, sendo que as novas redes criadas surgi-
ram com a preocupa¸ao de preservar o anonimato de cada integrante e garantir a
descentraliza¸ao das informa¸oes e r ecursos compartilhados na rede. Atualmente,
al´em de compartilhamento de arquivos e recursos, as redes P2P est˜ao presentes
nas mais diversas ´areas, tais como, jogos on-line, comunica¸ao instantˆanea, sites de
relacionamento, telefonia sobre Internet, etc.
1.1 Motivao e Justificativa
As redes P2P ao o meio mais utilizado atualmente quando se deseja compar-
tilhar uma grande quantidade de informa¸oes e recursos, a que ´e dif´ıcil concentrar o
mesmo volume de dados em poucos servidores de arquivos. A principal dificuldade ´e
preservar o desempenho da rede, sem a utiliza¸ao de um elemento que centralize as
informa¸oes a respeito dos os que integram a rede ou a qualidade e confiabilidade
do que ´e compartilhado entre mesmos. A inser¸ao de elementos moderadores, sejam
eles autˆonomos ou controlados, facilita o gerenciamento da rede, mas tamb´em in-
troduz outros problemas, tais como confiabilidade, desempenho e seguran¸ca, a que
este elemento representa um ponto de falha e sua capacidade depende diretamente
do n´umero de os que o utilizam, tornando-se um alvo acil a ataques direcionados.
A designa¸ao de um o da rede para executar opera¸oes de gerenciamento (supern´o)
tamem induz o usu´ario a retirar-se da rede ou alterar o protocolo a fim de evitar
ter qualquer sobrecarga em sua aquina.
A baixa interoperabilidade entre as diversas redes existentes tamem afeta
as redes P2P, principalmente devido `as incompatibilidades dos metadados e das
interfaces das opera¸oes utilizadas na comunica¸ao entre os os. Os usu´arios, `as
CAP
´
ITULO 1. INTRODUC¸
˜
AO 14
vezes, em em suas aquinas arios clientes de rede P2P, o que muitas vezes os
for¸cam a ter arias opias do mesmo arquivo armazenado em seu disco, devido a
configura¸oes exigidas para cada rede. Este problema de interoperabilidade pode ser
resolvido colocando-se entre as redes elementos chamados de gateways, que fazem
interconex˜ao entre redes P2P diferentes. Mas ´e bom lembrar que esses elementos
podem impor limita¸oes de desempenho e escalabilidade.
Como mencionado anteriormente, as redes P2P visam o compartilhamento
e troca de arquivos entre seus integrantes. Nesta curta defini¸ao do seu objetivo,
identificam-se dois elementos cruciais, o primeiro deles, ao os arquivos (ou recursos,
como ao chamados nas redes P2P), principal alvo ou meio de ataque `a rede e
aos seus integrantes. O segundo ao os usu´arios, que podem agir de duas formas,
sendo uma menos prejudicial em termos de seguran¸ca, mas que afeta diretamente
desempenho da rede, a que eles ao costumam compartilhar os dados que obtˆem
dos demais; e outra mais prejudicial, onde os mesmos utilizam a rede para distribuir
arquivos contaminados por v´ırus e outros odigos maliciosos, disponibilizar arquivos
corrompidos e espalhar na rede informa¸oes inconsistentes.
A justificativa para realiza¸ao deste trabalho ´e propor um protocolo de re-
puta¸ao que seja aplicado a qualquer rede P2P e que possa, de forma eficiente,
identificar os usu´arios que tentam prejudicar o desempenho e conte´udo das mesmas.
Al´em disso, apresentar a defini¸ao da infraestrutura orientada a servi¸cos de uma
rede P2P para proporcionar interoperabilidade, em n´ıvel de opera¸oes e de recursos
disponibilizados, incluindo o protocolo de reputa¸ao.
1.2 Objetivo Geral
Apesar de muitos pensarem que as redes P2P a esgotaram seus temas
de pesquisa, ainda a in ´umeros pr oblemas a serem solucionados. Este trabalho
trata da identifica¸ao de os mal intencionados e a interoperabilidade entre redes
P2P, atrav´es da utiliza¸ao de um protocolo de gerenciamento de reputa¸ao para
identificar quais os melhores e piores os da rede, ao necessariamente por etricas
CAP
´
ITULO 1. INTRODUC¸
˜
AO 15
a consideradas ineficazes, tais como, largura de banda, tempo de conex˜ao do o,
n´umero de recursos, volume de dados armazenados, etc., pois essas m´etricas ao
caracter´ısticas obtidas diretamente do o, sem nenhuma participa¸ao dos demais.
O gerenciamento de reputa¸ao atrav´es do protocolo P2PWSRep pretende diminuir
o n´umero de os que possam comprometer o desempenho da rede, bem como, o
conte´udo corrompido. A interoperabilidade ´e tratada atrav´es da defini¸ao de uma
arquitetura orientada a servi¸cos, que est´a presente na infraestrutura asica da rede
e em opera¸oes como ingresso n a rede, busca de recursos, anota¸ao dos dados,
gerenciamento de reputa¸ao e transferˆencia de arquivos.
1.3 Objetivos Espec´ıficos
Este trabalho tem dois objetivos bem definidos. Decerto, ´e sabido que o
gerenciamento de repu ta¸ao traz a grande contribui¸ao para as tecnologias de redes
P2P, mas a busca de uma interoperabilidade perfeita tamem ´e muito importante.
Para atingir os dois objetivos gerais deste trabalho, alguns objetivos espec´ıficos
tiveram que ser atingidos:
Estudo da viabilidade de utiliza¸ao de tecnologias de servi¸cos web na cons-
tru¸ao de infraestruturas P 2P, para possibilitar as intera¸oes entre os compo-
nentes da rede;
Defini¸ao das interfaces servidor e cliente de cada o, incluindo a defini¸ao
dos dados contidos nas intera¸oes entre os servi¸cos;
Defini¸ao de reposit´orios de metadados para anota¸ao dos os, recursos e
outras informa¸oes armazenadas nos mesmos;
Defini¸ao dos mecanismos de busca de os e recursos na rede;
Estudo de algoritmos de reputa¸ao aplicados em redes P2P;
Defini¸ao de um protocolo de reputa¸ao apto a tratar os problemas de polui¸ao
e interoperabilidade na rede;
CAP
´
ITULO 1. INTRODUC¸
˜
AO 16
Estudo comparativo do protocolo proposto com outros protocolos existentes;
Simula¸ao e valida¸ao do protocolo de reputa¸ao.
1.4 Metodologia
Este trabalho foi realizado em trˆes etapas, baseadas nos procedimentos me-
todol´ogicos que orientam a realiza¸ao de uma p esquisa cient´ıfica. A primeira etapa
consistiu no levantamento bibliogr´afico, atrav´es da leitura artigos, disserta¸oes,
livros e sites da web, a fim de obter conhecimento das ´areas que foram estudadas
durante a pesquisa. As seguintes ´areas foram destacadas como importantes para o
trabalho:
Arquiteturas Orientadas a Servi¸cos;
Servi¸cos Web;
Redes Peer-to-Peer;
Reputa¸ao;
Ferramentas de Simula¸ao de Redes.
A segunda etapa do trabalho consistiu na defini¸ao do protocolo de repu-
ta¸ao P2PWSRep, com uma infraestrutura orientada a servi¸cos, para identificar a
reputa¸ao de os e recursos na rede P2P, baseando-se em informa¸oes fornecidas
pelos demais os da rede e utilizando-se de valores anteriores da reputa¸ao dos os
procurados. Nesta etapa, foram realizados estudos dos protocolos de reputa¸ao bem
aceitos pela comunidade cient´ıfica. A terceira etapa abordou a valida¸ao d o proto-
colo atraes de um modelo de simula¸ao, onde foram estudadas arias ferramentas
de simula¸ao, de tal forma que se pudesse utilizar uma que fosse mais adequada ao
prop´osito do trabalho. A ´ultima etapa concentrou-se em definir uma rede orientada
a servi¸cos utilizando o protocolo de reputa¸ao P2PWSRep, definindo as interfaces
dos servi¸cos, m´etodos, estruturas de dados para armazenamento e manipula¸ao dos
dados e outros detalhes da arquitetura.
CAP
´
ITULO 1. INTRODUC¸
˜
AO 17
1.5 Estrutura da Disserta¸ao
Esta disserta¸ao esta organizada em 7 cap´ıtulos. O Cap´ıtulo 1 traz uma
vis˜ao geral do trabalho e est´a dividido em contextualiza¸ao, motivao, objetivos,
justificativa e metodologia. O Cap´ıtulo 2 apresenta os conceitos relacionados com
servi¸cos web, apresentando o embasamento te´orico importante para o entendimento
deste trabalho, onde ao descritos, a arquitetura orientada a servi¸cos e seus compo-
nentes asicos. O Cap´ıtulo 3 traz os conceitos referentes `as redes P2P, aplica¸oes
de redes P2P, suas arquiteturas, t ipos de busca, seguran¸ca e exemplos de redes
P2P, sendo apresentados neste trabalho, o Gnutella e Napster. No Cap´ıtulo 4 ao
apresentados os conceitos de reputa¸ao e apresentados trabalhos relacionados, abor-
dando vantagens e problemas encontrados em cada um deles. O Cap´ıtulo 5 apre-
senta o protocolo de reputa¸ao P2PWSRep, resultado deste trabalho de mestrado,
onde ´e descrita a sua arquitetura e algoritmo. O Cap´ıtulo 6 descreve a valida¸ao
do protocolo P2PWSRep por simula¸ao, onde ´e apresentado cada experimento e
an´alise dos resultados obtidos. O Cap´ıtulo 7 apresenta as conclus˜oes do presente
estudo e trabalhos futuros que podem ser desenvolvidos a partir do mesmo.
Cap
´
ıtulo 2
Servi¸cos Web
Neste cap´ıtulo ao apresentados os conceitos da Arquitetura Orientada a
Servi¸cos (SOA) e do elemento essencial dessa arquitetura, o servi¸co. Al´em de apre-
sentar uma vis˜ao geral sobre servi¸cos web e das tecnologias fundamentais formadoras
de sua base, XML, SOAP, WSDL e UDDI.
2.1 Introdu¸ao
As organiza¸oes est˜ao adotando cada vez mais a Arquitetura Orientada a
Servi¸cos com a finalidade d e suportar suas aplica¸oes. SOA (Service Oriented Ar-
chitecture) ´e um paradigma computacional que emergiu como consequˆencia direta
da necessidade de colabora¸ao e integra¸ao de componentes funcionais, disponi-
bilizados nesse contexto como servi¸cos, entre empresas, de forma interoper´avel e
com fraco acoplamento. Servi¸cos web ao uma implementa¸ao poderosa dessa ar-
quitetura, que podem ser basicamente definidos como uma interface para recursos
computacionais, acess´ıvel atrav´es da troca d e mensagens baseadas em XML (Ex-
tensible Markup Language) e constru´ıda com a utiliza¸ao de protocolos padr˜oes da
Internet.
Segundo a defini¸ao do W3C (World Wide Web Consortium), Servi¸co Web
´e um sistema de software projetado para suportar interoperabilidade aquina a
aquina atraes de intera¸oes sobre uma rede de computadores. Sua interface ´e
18
CAP
´
ITULO 2. SERVIC¸ OS WEB 19
descrita em um formato que ´e processado em ambos os lados, especificamente em
WSDL (Web Services Definition Language). As bases para a constru¸ao de um
servi¸co web ao os padr˜oes XML e SOAP (Simple Object Access Protocol).
O SOAP ´e um protocolo leve para troca de informa¸ao estruturada em um
ambiente descentralizado e distribu´ıdo.
´
E baseado na linguagem XML e consiste
em trˆes partes: um envelope, isto ´e, seu cabcalho, que descreve a mensagem, seu
conte´udo e como process´a-la, um conjunto de regras para codificar instˆancias de
tipos de dados da aplica¸ao e uma conven¸ao para representar chamadas de proce-
dimentos remotos e suas respostas. O transporte dos dados ´e realizado normalmente
via protocolo HTTP (Hypertext Transfer Protocol), mas tamb´em podem ser utiliza-
dos outros protocolos, tais como SMTP (Simple Mail Transfer Protocol) e FTP
(File Transfer Protocol). Os dados ao transferidos no formato XML, encapsulados
pelo protocolo SOAP.
Um servi¸co web ´e uma solu¸ao utilizada na integra¸ao de sistemas e na co-
munica¸ao entre aplica¸oes diferentes. Com esta tecnologia, ´e poss´ıvel que novas
aplica¸oes possam interagir com aquelas a existentes e que sistemas desenvolvi-
dos em plataformas diferentes sejam integrados. Em uma defini¸ao mais objetiva,
servi¸cos web ao componentes que permitem as aplica¸oes enviar e receber dados em
formato XML. Cada aplica¸ao pode ter a sua pr´opria linguagem, que ´e traduzida
para uma linguagem universal, o formato XML. O processo de publica¸ao, pesquisa
e descoberta de servi¸cos web utiliza o protocolo UDDI (Universal Description, Dis-
covery and Integration).
2.2 Servi¸co
Um servi¸co est´a dispon´ıvel em um ponto particular de uma rede de com-
putadores, recebendo e enviando mensagens; e comporta-se de acordo com sua es-
pecifica¸ao. Os aspectos funcionais de um servi¸co ao descritos usando metadados,
e as limita¸oes e condi¸oes que est˜ao associadas com o uso do servi¸co ao especi-
ficadas atrav´es de pol´ıticas que podem ser adicionadas a esses metadados. Inter-
CAP
´
ITULO 2. SERVIC¸ OS WEB 20
faces e pol´ıticas que descrevem os termos e as condi¸oes que guiam a utiliza¸ao do
servi¸co ao publicadas de forma que os usu´arios possam descobrir e receber toda
a informa¸ao de que eles precisam para se associar, muitas vezes dinamicamente,
`aquele servi¸co.
A informa¸ao que ´e publicada sobre o servi¸co fornece detalhes daquilo que o
servi¸co oferece. O servi¸co tamb´em oferece toda a informa¸ao necess´aria, para que,
no ambiente onde est´a hospedado, um cliente do servi¸co possa acess´a-lo e interagir
com ele de forma bem-sucedida. Embora o ambiente precise dessa informa¸ao, o
cliente ao necessita ficar ciente desse tipo de informa¸ao de acesso, a que ao est´a
interessado em entender os detalhes sobre a implementa¸ao do servi¸co. Al´em de p er-
mitir que um consumidor potencial concentre-se especificamente na funcionalidade
que est´a sendo ofertada, outra vantagem do modelo de servi¸co est´a na capacidade de
cria¸ao de novos servi¸cos a partir daqueles a existentes sem abandonar o paradigma
(W3C, 2008).
2.3 Arquitetura Orientada a Servi¸cos
A Arquitetura Orientada a Servi¸cos (SOA) ´e um paradigma para orga-
niza¸ao e utiliza¸ao de competˆencias distribu´ıdas que est˜ao sob controle de diferen-
tes dom´ınios p ropriet´arios. A SOA utiliza servi¸cos como elementos fundamentais
para desenvolver aplica¸oes ou solu¸oes (OASIS, 2008).
Na arquitetura SOA, todos os componentes de software ao modelados como
servi¸cos, possibilitando que processos de neg´ocio sejam projetados para serem uti-
lizados remotamente e acessados atraes de protocolos Internet. A Figura 2.1 mostra
os pap´eis e as prin cipais opera¸oes desta arquitetura. Qualquer servi¸co conem trˆes
pap´eis principais: o servi¸co requisitante (service requestor), o provedor do servi¸co
(service provider) e um registro de servi¸cos (service registry) (Ferris and Farrell,
2003).
Um provedor de servi¸co ´e compar´avel com o “servidor” do modelo clien-
te/servidor. Ele ´e respons´avel por criar uma descri¸ao do servi¸co, disponibilizando-o
CAP
´
ITULO 2. SERVIC¸ OS WEB 21
Figura 2.1: Arquitetura SOA. (W3C, 2008)
no ambiente distribu´ıdo e tornando-o acess´ıvel por outras entidades da rede. Ele
tamem ´e respons´avel por publicar o servi¸co em um ou mais servi¸co de registros
(UDDI) e receber requisi¸oes de um ou mais servi¸cos requisitantes, encaminhando-
as para o servi¸co adequado de acordo com a descri¸ao contida na requisi¸ao. Assim,
pode-se visualizar o provedor de servi¸cos como uma entidade que disponibiliza seus
servi¸cos na Internet.
O servi¸co requisitante ´e compar´avel com a figura do “cliente da arquitetura
cliente-servidor. Ele ´e respons´avel por achar um servi¸co atrav´es de uma descri¸ao,
que submetida a um registro de servi¸cos retorna sua localiza¸ao. Uma vez localizado
o servi¸co, ele faz a requisi¸ao ao servi¸co hospedado no provedor de servi¸cos. O regis-
tro de servi¸cos ´e respons´avel por manter as descri¸oes dos servi¸cos publicados pelos
provedores de servi¸cos e por permitir que requisitantes de servi¸cos pesquisem em
sua cole¸ao de servi¸cos publicados. A pesquisa e publica¸ao dos servi¸cos no cat´alogo
de servi¸cos ao ´e obrigat´oria, pois o provedor pode dar a descri¸ao dos servi¸cos que
oferece diretamente ao requisitante, desde que este ´ultimo saiba a localiza¸ao do
provedor.
As opera¸oes SOA ao:
Publica¸ao (publish) -
´
E a ao da publica¸ao, pelo provedor de servi¸cos,
dos seus servi¸cos em um registro;
CAP
´
ITULO 2. SERVIC¸ OS WEB 22
Busca (find) -
´
E a ao de pesquisar em um registro quais provedores de
servi¸cos oferecem determinados servi¸cos, de acordo com a descri¸ao fornecida;
Intera¸ao (bind) -
´
E a opera¸ao de comunica¸ao entre o requisitante (cliente)
e o provedor do servi¸co (servidor).
2.4 Linguagem XML
Servi¸cos web ´e uma das concep¸oes mais bem sucedidas da arquitetura
orientada a servi¸cos. Podem ser definidos como u m etodo de integra¸ao de dados
e aplica¸oes via padr˜oes XML atrav´es de plataformas computacionais e sistemas
operacionais (Benz and Durant, 2003). Aplica¸oes habilitadas para servi¸cos web
fazem chamadas e enviam respostas umas `as outras por meio de um formato XML
chamado de SOAP. Servi¸cos web ao descritos aos clientes e a outras aplica¸oes
servidoras atrav´es do uso de outro formato XML chamado de WSDL. Informa¸ao
de registro e localiza¸ao de um servi¸co web pode ser publicada em um diret´orio
UDDI.
O XML desempenha papel vital no n´ucleo da tecnologia, por ser facilmente
transport´avel, compat´ıvel e comum com a camada de transp orte pela qual ´e trans-
mitida em todos os formatos de comunica¸ao. A Figura 2.2 ilustra como XML
posiciona-se na base dos trˆes principais padr˜oes adotados para formar a tecnologia
de servi¸co web. Outros padr˜oes tamem compat´ıveis com servi¸co web empregam
XML como sua linguagem asica.
A Linguagem XML ´e derivado da SGML (Standard Generalized Markup Lan-
guage) (ISO 8879), um padr˜ao internacional para definir documentos eletrˆonicos.
SGML ´e uma linguagem de defini¸ao de documentos auto-explicativos usada para
descrever os mais variados tipos de documentos. Ela especifica formas de como
descrever por¸oes de um documento com marcadores de identifica¸ao. XML ´e
uma vers˜ao especializada de SGML usada para descrever documentos eletrˆonicos
dispon´ıveis na Internet. Ela ao ´e na pr´atica uma linguagem, mas uma metalin-
guagem para definir novas linguagens. A defini¸ao de XML ´e independente de
CAP
´
ITULO 2. SERVIC¸ OS WEB 23
Figura 2.2: Linguagem XML como base
de servi¸cos web. (W3C, 2008)
plataforma e ´e especificada usando Unicode, permitindo-a representar conte´udo de
arias linguagens naturais. Devido a estes fatores e d o largo suporte de XML por
parte da maioria dos fornecedores de software, XML tem se tornado o formato de
fato para a troca de dados entre entidades diferentes.
XML descreve a estrutura de documentos ao esp ecificar marcadores que iden-
tificam e delimitam por¸oes de documentos. Cada uma dessas por¸oes ´e chamada de
elemento. Elementos podem aparecer aninhados, sendo que o elemento mais externo
´e chamado de elemento raiz, e os contidos no elemento raiz ao seus elementos filhos.
Cada um desses elementos podem, por sua vez, ter seus pr´oprios elementos filhos.
Al´em disso, XML fornece uma forma de associar pares nome e valor, chamados de
atributos, junto aos elementos.
Elementos XML come¸cam com um marcador inicial e terminam com um
marcador final. Cada tipo de documento possui um conjunto de marcadores alidos.
Marcadores iniciais consistem de um nome colocado entre os sinais de menor e maior,
CAP
´
ITULO 2. SERVIC¸ OS WEB 24
como em < inicio >. O marcador final correspondente ´e similar ao marcador inicial,
o diferenciando deste pelo acr´escimo da barra (/) depois do sinal de menor, como
em < /inicio >. Atributos podem ser usados para caracterizar elementos entre os
marcadores inicial e final. As restri¸oes sint´aticas, por exemplo, a exigˆencia de que
um marcador final complemente um marcador inicial, ´e definido por XML. Essas
restri¸oes capacitam o uso de analisadores sint´aticos (parsers) de XML, que devem
ser flex´ıveis o bastante para trabalhar com qualquer documento especificado por
XML.
Uma propriedade importante dos documentos XML ´e a capacidade de serem
unidos para criar um novo documento, resultado da combina¸ao de elementos e
atributos de diversas fontes, cada uma trabalhando ind ependentemente das outras.
Essa capacidade de reutiliza¸ao d e documentos XML para comp or n ovos documen-
tos produz dois problemas: reconhecimento e conflito. O problema de reconheci-
mento diz respeito `a possibilidade do processador XML reconhecer e separar quais
elementos do novo documento pertencem aos documentos que o originaram. O
problema do conflito o corre quando existem elementos repetidos e recorrentes em
mais de um documento usado para construir o documento final.
2.4.1 Document Type Definitions (DTD)
Na maioria das aplica¸oes que utilizam documentos XML, o fato de ser bem
formado ao garante que os mesmos possam ser processados e cumpram a fun¸ao
para a qual foram criados. Nesse contexto, tem-se a no¸ao de validade. O DTD
(W3C, 2008) constitui-se em mecanismo declarativo que pode automatizar a vali-
da¸ao de conte´udos XML quando est es ao processados por analisadores sinaticos.
Para manipular a checagem de valida¸ao, o mecanismo DTD pode implementar
regras nos seguintes aspectos d e um documento XML: identifica¸ao de elementos
que podem ou devem estar presentes em um documento, identifica¸ao da ordem e
da rela¸ao entre elementos e identifica¸ao de atributos de todos os elementos, al´em
da determina¸ao de quais destes atributos ao obrigat´orios ou opcionais.
Apesar de representarem um significativo avan¸co na valida¸ao de documentos
CAP
´
ITULO 2. SERVIC¸ OS WEB 25
XML, deficiˆencias podem ser encontradas em DTDs, o que limita sua utiliza¸ao em
um grande umero de aplica¸oes, principalmente naquelas orientadas a dados. Entre
estas limita¸oes pode-se citar: os arquivos de valida¸ao DTDs ao ao escritos em
XML, tornando sua manipula¸ao e processamento complexos; DTDs foram proje-
tados antes dos XML Namespaces, que ao fundamentais para aplica¸oes orientadas
a dados; DTDs ao comportam no¸oes sobre tipos de dados, o que impossibilita a
representa¸ao de estruturas de dados provenientes de linguagens de programa¸ao.
2.4.2 XML Schemas
XML Schema (W3C, 2008) ´e uma metalinguagem usada com especifica¸oes
XML para descrever estrutura de dados, limita¸oes sobre o conte´udo, e tipos de
dados. Foi desenvolvido para fornecer um controle mais poderoso sobre os dados
do que aquele proporcionado por DTDs. Diferentemente dos DTDs, XML Schema
´e expresso em XML, o que elimina a necessidade dos analisadores sinaticos ma-
nipularem outra sintaxe, al´em de produzir o ganho do poder de XML. O pr´oprio
vocabul´ario do XML Schema tamem ´e autodefinido empregando XML.
Al´em de especificar estruturas XML, XML Schema define um conjunto de
tipos de d ados simples que pode ser usado para estabelecer valores para atributos e
elementos, e construtores recursivos de tipo, para definir arbitrariamente estruturas
complexas de tipo. Uma vez que o esquema tenha sido definido, processadores
de esquema ao capazes de validar um do cu mento para assegurar que o mesmo
corresponda `a estrutura do esquema e aos valores permitidos. Essa verifica¸ao pode
eliminar a origem de arias das vulnerabilidades que prejudicam sistemas baseados
na Web.
2.5 Simple Object Access Protocol (SOAP)
Na arquitetura de servi¸cos web, o protocolo padr˜ao de fato para comu-
nica¸ao entre duas partes ´e o S OAP. SOAP ´e um p rotocolo baseado em XML que
fornece um mecanismo simples para a troca de informa¸ao tipada e estruturada
CAP
´
ITULO 2. SERVIC¸ OS WEB 26
entre servi¸cos. Foi projetado para reduzir o custo e a complexidade de se integrar
aplica¸oes constru´ıdas em diferentes plataformas de hardware e software.
Uma das caracter´ısticas mais importantes do SOAP ´e a separa¸ao entre o
formato do dado a ser transmitido e o protocolo de n´ıvel inferior que ir´a transportar
o dado, garantindo a independˆencia de plataforma e linguagem, pois emprega-se
XML para descrever os dados e protocolos bem estabelecidos na Internet, como
HTTP, para transportar as mensagens (Abinaer and Lins, 2006). Geralmente, os
dados transportados em uma mensagem SOAP representam chamadas remotas de
procedimentos (RPC) que invocam procedimentos espec´ıficos em um provedor de
servi¸co. A especifica¸ao do protocolo SOAP limita-se em formalizar quest˜oes asicas
que informam precisamente como aplica¸oes diferentes, estabelecidas em ambientes
de comunica¸ao distintos, devem proceder para trocar mensagens SOAP. Projetado
para manter a compatibilidade, a capacidade de expans˜ao e adequa¸ao ao ambiente
da Internet, SOAP pode expandir-se para acomodar tecnologias e padr˜oes emer-
gentes, bem como acomodar padr˜oes a estabelecidos.
2.5.1 Mensagem SOAP
Uma mensagem SOAP ´e a unidade asica de comunica¸ao entre os SOAP,
representada por um documento XML bem formado que conem trˆes elementos
distintos: um envelop e (Envelope), um cabcalho (Header) e um corpo (Body). A
Figura 2.3 mostra como os trˆes principais elementos de uma mensagem SOAP ao
estruturados. Al´em destes elementos, o protocolo SOAP define o elemento Fault
para manipula¸ao de erros que devem ser reportados ao emissor da mensagem.
O elemento envelop e funciona como container para os elementos cabcalho
e corpo.
´
E o elemento raiz da mensagem SOAP, sua fun¸ao principal ´e indicar
ao receptor da mensagem onde come¸ca e termina a mensagem. Ao encontrar o
marcador < Envelope >, o receptor sabe que pode processar a mensagem de acordo
com a especifica¸ao SOAP.
Opcionalmente, uma mensagem SOAP pode conter um cabcalho, designa-
do pelo marcador < Header >. Caso esteja presente na mensagem, ele deve ser
CAP
´
ITULO 2. SERVIC¸ OS WEB 27
Figura 2.3: Estrutura da men-
sagem SOAP. (W3C, 2008)
o primeiro imediatamente ap´os o elemento envelope. O elemento cabcalho possi-
bilita uma se¸ao na qual podem ser adicionados metadados relativos ao conte´udo do
elemento corpo e/ou instru¸oes para processamento espec´ıfico da mensagem SOAP.
Apesar de ao obrigat´orio, o cabcalho constitui-se no mecanismo chave para
a capacidade de expans˜ao do protocolo SOAP, a que com a adi¸ao apropriada de
entradas no cabcalho, os de processamento ao instru´ıdos a se comportarem de
modo espec´ıfico em determinados contextos como autentica¸ao, autoriza¸ao, rotea-
mento, etc. Ao receber a mensagem SOAP com este atributo, o o dever´a executar
o que determina a entrada ou, em caso de falha, enviar uma mensagem padr˜ao de
erro.
O elemento corpo, indicado pelo marcador < Body >, deve obrigatoriamente
estar presente em todas as mensagens SOAP. Este elemento carrega a carga ´util des-
tinada ao receptor final da mensagem. A carga ´util pode conter uma chamada RPC,
uma resposta RPC ou docum entos XML. O elemento < F aul t > ´e um mecanismo
sofisticado e preciso para informar ao emissor a ocorrˆencia de algum erro ou falha
no processamento de mensagens, tamb´em pode aparecer no corpo da mensagem.
CAP
´
ITULO 2. SERVIC¸ OS WEB 28
O odigo apresentado n a Listagem 2.1 mostra uma mensagem SOAP simples com
alguns elementos poss´ıveis: envelope, cabcalho e corpo.
Listagem 2.1: Exemplo de mensagem SOAP
1 <?xml version="1.0" enconding="uft -8"?>
2 <SOAPENV:Envelope x m l n s : x s i="http: // www.w3.org /2001/XMLSchema -
3 instance" xmlns:xsd="http: // www .w3.org /2001/ XMLSchema"
4 xmlns:SOAPENV="http: // schemas . xmlsoap . org/soap / envelope">
5 <SOAPENV:Header>
6 < a : a u t h e t i c a t i o n xmln s :a="http:// www.wrox .com/soap/authetication"
7 SOAPENV:mustUnderstand="1">
8 <a:username>u s u a r i o</ a:username>
9 <a :pas s word>senha</ a:p assw o rd>
10 < a : a u t h e t i c a t i o n>
11 </SOAPENV:Header>
12 <SOAPENV:Body>
13 <cmd:processReboot xmlns:cmd="http: // www.wrox .com/soap/cmd">
14 <i p x s i : t y p e=" xsd:string "> 1 9 2 . 1 6 8 . 1 . 3</ ip>
15 </ cmd:processReboot>
16 </SOAPENV:Body>
17 </SOAPENV:Envelope>
2.5.2 Modelo de Processamento SOAP
O comportamento de um o SOAP, ao manusear mensagens SOAP, ´e de-
terminado pelo modelo de processamento. Um o SOAP ´e uma implementa¸ao
das regras de processamento descritas na especifica¸ao SOAP e pode enviar, re-
ceber e processar mensagens SOAP. Trˆes categorias de os de processamento ao
definidas por SOAP, emissor, receptor e intermedi´ario. Se um o SOAP envia uma
mensagem, ele ´e chamado de emissor SOAP. Diferentemente do receptor SOAP, res-
pons´avel por receber uma mensagem. Alguns os se situam entre o consumidor e o
provedor do servi¸co, atuando tanto como emissor quanto como receptor. Nesse caso,
eles ao chamados de intermedi´arios. Geralmente, um o intermedi´ario tamb´em ´e
um servi¸co web capaz de adicionar funcionalidades `as transa¸oes que passam por
CAP
´
ITULO 2. SERVIC¸ OS WEB 29
ele.
Uma mensagem SOAP pode destinar cabcalhos para os espec´ıficos, de
modo a garantir que a mensagem seja roteada passo a passo, obedecendo `a sequˆencia
de processamento pr´e-estabelecida. Cada entrada no cabcalho deve conter o nome
do o a qual se destina, informa¸ao identificada atraes do atributo actor na entrada
do cabcalho.
Essa sequˆencia de processamento faz com que uma mensagem SOAP em
algumas ocasi˜oes atravesse arios os SOAP. Um emissor SOAP inicial cria a men-
sagem; a mensagem por sua vez passa por arios intermedi´arios antes de chegar
ao receptor SOAP final, cuja fun¸ao principal ´e processar a carga ´util do corpo
da mensagem. Esse conjunto de os SOAP ´e chamado de caminho da mensagem
SOAP.
2.5.3 SOAP sobre Protocolos de Transporte
Uma mensagem SOAP pode ser transmitida sobre diferentes protocolos de
transporte: HTTP, protocolo de correio eletrˆonico (SMTP) ou at´e mesmo protoco-
los propriet´arios de transporte. O protocolo selecionado talvez forne¸ca recursos adi-
cionais como garantia de entrega, correla¸ao de u ma resposta para uma solicita¸ao,
ou detec¸ao e corre¸ao de erro, mecanismos esses que estendem as funcionalidades
asicas oferecidas pelo protocolo SOAP. Al´em disso, o protocolo base de transmiss˜ao
talvez suporte padr˜oes de troca de mensagem mais complexos do que a troca de
mensagem em sentido ´unico especificada por SOAP.
Devido a sua grande utiliza¸ao na Internet, HTTP ´e de longe o protocolo de
transporte mais utilizado na troca de mensagens SOAP. At´e mesmo a especifica¸ao
SOAP oferece tratamento especial para HTTP, descrevendo com detalhes como a
semˆantica do modelo de troca de mensagens SOAP ´e mapeado para HTTP. SOAP
sobre HTTP ´e naturalmente compat´ıvel com as conven¸oes RPC do SOAP (so-
licita¸ao/resposta), a que HTTP ´e um protocolo baseado neste modelo. Uma men-
sagem de solicita¸ao SOAP ´e enviada a um servidor HTTP junto a u ma solicita¸ao
HTTP, e o servidor retorna a mensagem de resposta SOAP em uma resposta HTTP.
CAP
´
ITULO 2. SERVIC¸ OS WEB 30
2.6 Web Services Description Language (WSDL)
WSDL ´e um formato XML para descrever servi¸cos de rede como um conjunto
de pontos de acesso que funcionam atraes de mensagens contendo informa¸ao ori-
entada ao documento ou orientada ao procedimento. As opera¸oes e as mensagens
ao descritas de forma abstrata e ligadas ao protocolo de transporte e ao formato
da mensagem para definir um ponto de acesso. WSDL ´e extens´ıvel para permitir
que a descri¸ao de pontos de acesso e suas mensagens ao levem em considera¸ao
quais formatos de mensagem ou protocolos de transporte est˜ao sendo usados na
comunica¸ao (Weerawarana et al, 2005).
O provedor de um servi¸co web utiliza a WSDL para construir um documento
que descreve detalhes necess´arios na invoca¸ao do servi¸co por um cliente. Deta-
lhes como: a interface do servi¸co, quais etodos est˜ao dispon´ıveis, as assinaturas
dos etodos e os valores retornados, o endere¸co onde o servi¸co est´a localizado e
o protocolo que o servi¸co ´e capaz de processar para efetuar a comunica¸ao, ao
disponibilizados para a captura independente de plataforma e linguagem. O uso da
WSDL proporciona algumas vantagens:
Torna mais acil a cria¸ao e a manuten¸ao de servi¸cos atrav´es do fornecimento
de uma abordagem mais estruturada para definir interfaces de servi¸cos web;
Facilita o consumo de servi¸cos web ao reduzir a quantidade de odigo (e erros
potenciais) que uma aplica¸ao cliente p recisa implementar;
Facilita a implementa¸ao de mudan¸cas que provavelmente ser˜ao menos im-
pactantes `as aplica¸oes clientes SOAP. A descoberta dinˆamica de descri¸oes
WSDL permite que tais mudan¸cas sejam repassadas automaticamente aos
clientes que estejam usando WSDL, de forma que modifica¸oes custosas no
odigo do cliente ao tenham que ser feitas a cada vez que uma mudan¸ca
ocorra.
CAP
´
ITULO 2. SERVIC¸ OS WEB 31
2.6.1 Estrutura do Documento WSDL
Um documento WSDL organiza-se em duas se¸oes ogicas: uma descri¸ao
abstrata e uma descri¸ao concreta. A parte abstrata, composta pelos elementos
< types >, < message > e < portT ype >, descreve o comportamento de um
servi¸co web em rela¸ao `as mensagens que ele consome e produz. A parte concreta
se ocupa em informar como e onde acessar a implementa¸ao de um servi¸co. Essas
informa¸oes ao cobertas pelos elementos < binding > e < service >. A estrutura
sinatica do documento WSDL ´e mostrada na Figura 2.4.
Figura 2.4: Estrutura
do documento WSDL.
(W3C, 2008)
Arquivos WSDL iniciam com um elemento raiz < definitions >, que cont´em
geralmente atributos definindo namespaces que descrevem quais XML Schemas ao
usados ao longo do documento WSDL. O elemento < types > engloba a defini¸ao
dos t ipos de dados relevantes para as mensagens trocadas entre o servi¸co e o cliente.
CAP
´
ITULO 2. SERVIC¸ OS WEB 32
To d as as mensagens que possam vir a ser trocadas entre o consumidor do
servi¸co e o servi¸co ao listadas no documento WSDL, atrav´es do emprego do ele-
mento < message >. Esse elemento ´e respons´avel por definir de forma abstrata
o conte´udo das mensagens. O elemento < portT ype > define um conjunto de
opera¸oes relacionadas que um servi¸co web suporta. Uma opera¸ao ´e um agrupa-
mento das mensagens que podem ser t rocadas em uma intera¸ao particular com o
servi¸co e ´e indicado pelo elemento < operation >. Quatro tipos de opera¸oes ao
suportados:
Unidirecional - Uma mensagem chega ao servi¸co e ao ´e produzido nada
como resposta;
Solicita¸ao/Resposta - Uma mensagem chega ao servi¸co e ´e produzida uma
mensagem como resposta;
Pedido/Resposta - O servi¸co envia uma mensagem e obt´em uma resposta
de volta;
Notifica¸ao - O servi¸co envia uma mensagem e ao recebe nada como res-
posta.
O protocolo usado para transportar as mensagens ´e especificado na descri¸ao
concreta pelo elemento < binding >. Esse elemento associa um protocolo espec´ıfico
(SOAP, HTTP, SMTP, etc) a um elemento < portT ype > particular. O elemento
< service > ´e a parte final da descri¸ao de um servi¸co. Atrav´es de seu elemento
filho < port > ele indica o endere¸co de rede onde o servi¸co web est´a localizado,
aguardando para ser acessado.
2.7 Universal Description, Discovery and Inte-
gration (UDDI)
Um cons´orcio de companhias, incluindo Ariba, IBM e Microsoft, come¸cou o
desenvolvimento do conceito d e um diret´orio de neg´ocios na Internet. Esse desen-
CAP
´
ITULO 2. SERVIC¸ OS WEB 33
volvimento produziu como resultado o projeto UDDI, uma infraestrutura integrada
para descri¸ao, publica¸ao e descoberta de informa¸oes sobre servi¸cos web ofere-
cidos na Internet. Como se trata de uma iniciativa aberta da ind´ustria para ofe-
recer u m servi¸co de diret´orio, UDDI foi estabelecido como um mecanismo aberto,
padronizado e independente de plataforma, cujo foco ´e facilitar a localiza¸ao de
servi¸cos dispon´ıveis.
Basicamente, UDDI disponibiliza uma forma estruturada de descrever uma
organiza¸ao, os servi¸cos que ao oferecidos por essa organiza¸ao e uma interface
para os servi¸cos. A necessidade do uso de UDDI justifica-se cada vez mais `a medida
que o n´umero de servi¸cos web considerados para a escolha e utiliza¸ao cresce muito.
Nesse cen´ario, UDDI garante que pelo menos grande parte dos potenciais parceiros
que oferecem servi¸cos web, aderentes aos requisitos procurados, fossem realmente
considerados nessa escolha.
Antes do aparecimento do projeto UDDI, ao havia na ind´ust ria uma forma
padronizada de oferecer a clientes e p arceiros maiores informa¸oes sobre servi¸cos
web disponibilizados pelas organiza¸oes. ao havia etodo uniforme e padr˜ao que
detalhasse como integrar os sistemas e processos a estabelecidos e dispon´ıveis, e
como esta integra¸ao se daria entre parceiros de neg´ocios que se interessassem pelos
servi¸cos web oferecidos.
2.7.1 Registro UDDI
Um registro UDDI ´e um reposit´orio de dados sobre os neg´ocios e os servi¸cos
oferecidos por eles. Possibilita a qualquer um recuperar dados UDDI existentes,
bem como a qualquer empresa registrar-se a si pr´opria e seus respectivos servi¸cos.
A implementa¸ao do registro UDDI ´e semelhante a uma lista telefˆonica constitu´ıda
de aginas brancas, amarelas e verdes.
Nas aginas brancas est˜ao dispon´ıveis informa¸oes sobre contato e identifi-
cadores da empresa, incluind o nome da empresa, endere¸co, n´umeros de telefone,
al´em de outras informa¸oes sobre a empresa. A fun¸ao das aginas brancas ´e per-
mitir a descoberta de servi¸cos web oferecidos atrav´es da identifica¸ao de cada em-
CAP
´
ITULO 2. SERVIC¸ OS WEB 34
presa. As aginas amarelas descrevem servi¸cos web usando diferentes categorias,
permitindo sua descoberta, segund o um grupo, uma classifica¸ao que re´une servi¸cos
similares. As aginas verdes ao usadas para indicar os servi¸cos web oferecidos pelas
empresas, incluindo todas as informa¸oes t´ecnicas necess´arias na intera¸ao com o
servi¸co, ou com sua utiliza¸ao, como parˆametros, localiza¸ao e outras.
2.8 Considera¸oes Finais
Nos ´ultimos anos, os servi¸cos web em chamado a aten¸ao de muitas em-
presas e pesquisadores que buscam solu¸oes para criar e integrar aplica¸oes sem
altos investimentos, utilizando-se de padr˜oes da Internet. Servi¸cos web foram cria-
dos para construir aplica¸oes deste tipo ou possibilitar tal integra¸ao. A facilidade
que servi¸cos web trouxeram para desenvolvedores, devido `a utiliza¸cao de documen-
tos XML para troca de informa¸oes, os tornam independente de plataforma, sendo
poss´ıvel que novas aplica¸oes possam interagir com aquelas a existentes e que sis-
temas desenvolvidos em plataformas diferentes sejam compat´ıveis. Cada aplica¸ao
pode ter a sua pr´opria “linguagem”, que ´e traduzida para um a linguagem universal,
o formato XML. Assim, servi¸cos web, atualmente, se apresentam como a melhor
escolha para integrar e desenvolver solu¸oes.
Cap
´
ıtulo 3
Redes P2P
3.1 Introdu¸ao
A rede mundial de computadores sempre teve como proposta principal pro-
mover a liberdade, que deve se traduzir no acesso irrestrito a todos os recursos da
rede, de qualquer lugar e a qualquer hora. Apesar disso, a Web ainda est´a presa
ao modelo cliente/servidor, no qual servidores centralizados executam tarefas para
clientes distribu´ıdos, ou seja, a maior parte das aquinas participam da Web apenas
como coadjuvantes, acessando recursos providos pela minoria (Rocha et al., 2004).
A tecnologia P2P (peer-to-peer) surge para mudar o paradigma existente, `a
medida que ao depende de uma organiza¸ao central ou hier´arquica, al´em d e dispor
aos seus integrantes as mesmas capacidades e responsabilidades (Parameswaran et
al., 2001). Atraes dessa tecnologia qualquer dispositivo pode acessar diretamente
os recursos de outro, sem nenhum controle centralizado.
3.2 Evolu¸ao das Redes P2P
As redes P2P ao sistemas que est˜ao emergindo como uma nova forma de
computa¸ao distribu´ıda, principalmente quando se fala de uma organiza¸ao inde-
pendente de restri¸oes, estrutura descentralizada, autˆonoma e com participa¸ao ir-
restrita dos integrantes (Ting and Deters, 2003). Essa evolu¸ao come¸cou na ecada
35
CAP
´
ITULO 3. REDES P2P 36
de 90, com o ganho de capacidade de computadores desktop e a desmotivao de
usu´arios da Internet com as restri¸oes para troca e armazenamento de dados nos
provedores de acesso. O surgimento d as redes P2P representou a primeira ex-
periˆencia de uma rede totalmente livre de cl´ausulas contratuais e restri¸oes tec-
nol´ogicas impostas pelos provedores. Esse surgimento se deu com a populariza¸ao
da Internet, melhores equipamentos e aumento da largura de banda das conex˜oes
de acesso. A Figura 3.1 mostra o modelo asico de uma rede P2P. Percebe-se que
todos os os podem ser interconectados entre si. Cada participamente tem um
identificador ´unico dentro da rede e as mesmas funcionalidades est˜ao presentes em
todos os os.
Figura 3.1: Exemplo de uma rede P2P.
As redes P2P ao tidas como sistemas colaborativos (GT-P2P, 2008) que
emergiram a partir de 2000, principalmente com as aplica¸oes para distribui¸ao
de arquivos. Os os conectados ao sistema colaborativo formam uma rede virtual
sobre a rede de dados subjacente, baseada n o protocolo IP, no caso da Internet.
Os sistemas P2P trazem a conectividade para as bordas da rede, permitindo que
qualquer equipamento conectado se comunique e colabore com os demais (Sadok,
2003).
Segundo (Loo, 2003), o modelo de rede P2P colaborativo tem sido apontado
como uma das maiores transforma¸oes da Internet nos ´ultimos anos e com tendˆencia
de expans˜ao. Esse modelo ´e atrativo por arias raz˜oes: os sistemas P2P oferecem
CAP
´
ITULO 3. REDES P2P 37
meios para agregar e utilizar recursos geograficamente distribu´ıdos; o custo para a
cria¸ao dos ambientes colaborativos ´e baixo e ao requer investimento maci¸co em
equipamentos; a natureza descentralizada desses sistemas torna-os inerentemente
resistentes a falhas ou ataques intencionais; e, alta escalabilidade para tratar do
crescimento de elementos que se juntam `a rede P2P (Righi et al., 2004).
Atualmente, as redes P2P respondem pela maior parte do tr´afego da Internet.
Considerando que muitas das trocas de recursos ao falhas, deve-se empregar cada
vez mais mecanismos para evitar que isto ocorra, possibilitando melhor desempenho
das redes P2P e por sua vez, da Internet. A Figura 3.2 mostra um gr´afico do aumento
do tr´afego das aplica¸oes P2P na Internet de 1993 a 2006. Percebe-se que o tr´afego
de dados gerado pelas redes P2P, em 2006, a superava o dos demais protocolos,
como o FTP, HTTP (Web) e o SMTP (e-mail). Isto mostra que estes protocolos a
ao ao ao utilizados para troca de dados como outrora.
Figura 3.2: Tafego das redes P2P entre 1993 e 2006. (Cache-
Logic Reseach, 2006)
3.3 Caracter´ısticas das Redes P2P
Redes P2P ao redes virtuais que funcionam sobre a infraestrutura da In-
ternet com o objetivo de compartilhar recursos entre seus participantes, sendo que
CAP
´
ITULO 3. REDES P2P 38
por princ´ıpio ao a diferencia¸ao entre os mesmos. O grupo de pesquisa sobre
redes P2P da Internet Research Task Force (IRTF-P2P-GROUP, 2008) as define
como compartilhamento de recursos e servi¸cos compu tacionais diretamente entre
sistemas. Em geral, ´e aceito pela comunidade que sistemas P2P devem sup ortar os
seguintes requisitos:
os podem estar localizados nas bord as da red e;
os com conectividade vari´avel ou tempor´aria e endere¸cos tamem tempor´arios;
A capacidade de lidar com diferentes taxas de transmiss˜ao entre os;
os com autonomia parcial ou total com rela¸ao a um servidor centralizado;
Assegurar que os os possuam capacidades iguais de fornecer e consumir re-
cursos de seus os;
A rede deve ser escal´avel;
A capacidade dos os se comunicarem diretamente uns com os outros.
Tendo todas estas caracter´ısticas, uma rede pod e ser dita P2P, mesmo que
algumas das fun¸oes de controle da rede estejam localizadas em um servidor central.
3.4 Aplica¸oes P2P
As redes P2P em se colocado como a melhor solu¸ao para muitas aplica¸oes
que necessitam de uma ampla participa¸ao e intera¸ao dos usu´arios no seu funciona-
mento. Nesta se¸ao ser˜ao apresentadas as principais aplica¸oes que fazem uso deste
tipo de rede (Da Silva, 2007).
3.4.1 Compartilhamento de Arquivos
ao as aplica¸oes mais populares e foram respons´aveis pelo cen´ario atual das
redes P2P. Normalmente ao a restri¸oes de publica¸ao e obten¸ao do conte´udo
CAP
´
ITULO 3. REDES P2P 39
disponibilizado. Por´em, essas redes tˆem sido um dos principais motivos d e estudos
para melhoria do desempenho, a que elas ao respons´aveis por grande parte do
conte´udo que trafega na Internet. As redes P2P deste tipo mais populares ao Naps-
ter (Napster, 2008), Gnutella (Gnutella, 2008), eDonkey (eDonkey, 2008), Kazaa
(Kazaa, 2008) e BitTorrent (BitTorrent, 2008).
3.4.2 Computa¸ao Distribu´ıda
ao aplica¸oes que visam utilizar os recursos de milhares de computadores
para prover um poder de processamento intensivo atrav´es da forma¸ao de uma grade.
Recentes projetos em estimulado o interesse, o projeto SETI@home (Seti@Home,
2008), por exemplo, possui um poder computacional de aproximadamente 25 TFlo-
ps/s (trilh˜oes de opera¸oes de ponto flutuante por segundo), coletado de mais de
trˆes milh˜oes de computadores conectados `a Internet. Esse projeto visa utilizar essa
grande capacidade de processamento para analisar os sinais obtidos a partir do
adio-telesc´opio d o observat´orio de Arecibo `a procura de algum sinal inteligente
de vida extraterrestre. Outros exemplos ao o OurGrid (Andrade et al., 2008),
InteGrade (InteGrade, 2008) e Genome@Home (Genome@Home, 2008).
3.4.3 Troca de Mensagens
A necessidade de troca de mensagens instantˆaneas ´e muito grande atual-
mente. Muitos sistemas P2P de compartilhamento de arquivos tamem possuem
o recurso dos usu´arios se comunicarem, mesmo ao sabendo sua identidade. Ou-
tros sistemas permitem mensagens de voz, v´ıdeo, troca de arquivos e integra¸ao
dos sistemas com sistemas de mensagens SMS (Short Message Service). Exem-
plos de aplica¸oes desse tipo ao MSN Messenge r Live ( MSN, 2008), Google Talk
(GoogleTalk, 2008), Yahoo Messenger (YahooMessenger, 2008), Jabber (Jabber,
2008), ICQ (ICQ, 2008), Skype (Skype, 2008) e LawsTalk (LawsTalk, 2008).
CAP
´
ITULO 3. REDES P2P 40
3.4.4 Transmiss˜ao de Dados
Tamem conhecidos como sistemas overlay multicast, formam uma infraestru-
tura de comunica¸ao baseada em multicast em n´ıvel de aplica¸ao. Possibilitam que
conte´udo seja distribu´ıdo a um n´umero potencialmente grande de os disp ersos
geograficamente. Normalmente essa tecnologia ´e empregada para a transmiss˜ao
de eventos ao vivo (live streaming). Pode-se citar como exemplo o End System
Multicast (ESM, 2008).
3.5 Redes P2P versus Redes Overlay
Uma rede overlay ´e uma rede “virtual” criada sobre u ma rede existente, por
exemplo, a Internet. A rede overlay cria uma arquitetura com n´ıvel mais alto de
abstra¸ao, de modo a poder solucionar arios problemas que, em geral, ao dif´ıceis
de serem tr atados no n´ıvel dos roteadores da rede subjacente (Andersen et al.,
2001). A pr´opria Internet pratica o paradigma overlay quando usa o protocolo IP
como solu¸ao de internetworking sobre tecnologias de r edes de arias tecnologias,
tais como ATM (Asynchronous Transfer Mode), Frame Relay, MPLS (Multiprotocol
Label Switching), Ethernet, etc.
Numa perspectiva de alto n´ıvel, uma rede P2P pode ser considerada uma rede
overlay, uma vez que funciona como uma rede virtual, formada pela interconex˜ao
dos os, executando sobre a infraestrutura de uma rede f´ısica. A Figura 3.3 mostra
a top ologia de uma Rede Overlay. Percebe-se que as conex˜oes entre os os da rede
Overlay sobrep˜oem as interconex˜oes da rede IP, onde a simples comunica¸ao direta
entre dois os, ´e viabilizada por um complexo mecanismo de roteamento IP.
3.6 Arquitetura das Redes P2P
As redes P2P p odem ser organizadas sob diversos asp ectos, e embora todas
elas possuam problemas de seguran¸ca em comum, cada arquitetura possui seus
pr´oprios problemas. Aqui ao apresentados os modelos arquiteturais comuns das
CAP
´
ITULO 3. REDES P2P 41
Figura 3.3: Rede overlay.
redes P2P, mostrando as vantagens e os problemas normalmente encontrados. Esses
tipos de redes podem ser divididos basicamente de duas formas: com rela¸ao `a
centraliza¸ao ou ao da rede, e com rela¸ao `a est rutur a¸ao da busca de recursos
(Do Carmo et al., 2004).
Com rela¸ao `a sua distribui¸ao, podem ser organizadas em trˆes tipos: cen-
tralizadas, descentralizadas ou descentralizadas com uso de supern´os. As redes
centralizadas possuem um o central que realiza alguma fun¸ao especial, como con-
trole de acesso ou busca de recursos. Redes descentralizadas ao as chamadas redes
P2P puras, nas quais cada o tem exatamente as mesmas funcionalidades que os
outros, isto ´e, tem um papel de cliente e servidor. As redes com supern´os possuem
os com maior capacidade de armazenamento e processamento, que ao eleitos para
realizar fun¸oes especiais, como reposit´orio para busca de recursos. A diferen¸ca em
rela¸ao `as redes centralizadas ´e que esses os podem se tornar supern´os somente por
um determinado per´ıodo de tempo e a rede deve ser capaz de funcionar mesmo que
nenhum supern´o esteja presente. A Figura 3.4 ilustra bem essas redes. Veem-se os
conectados diretamente e os conectados e gerenciados por um ou mais os centrais.
3.6.1 Redes P2P Centralizadas
Do ponto de vista de seguran¸ca, as redes P2P centralizadas ao as que
possuem melhores condi¸oes de se tornarem seguras. Isto porque a entidade cen-
tralizadora se responsabiliza pela maior parte da seguran¸ca da rede. Embora possa
parecer que redes P2P centralizadas ao possuam riscos grandes `a seguran¸ca, alguns
pontos devem ser observados para que se obtenha uma rede P2P segura.
CAP
´
ITULO 3. REDES P2P 42
Figura 3.4: Rede P2P descentralizada versus centralizada.
(Addison, 2002)
Normalmente, uma rede P2P centralizada pressup˜oe um o central que ´e res-
pons´avel p or algumas funcionalidades ausentes nos outros os, sendo assim, redes
centralizadas possuem uma organiza¸ao hier´arquica onde todos os os dependem
de um ou mais servidores. Por exemplo, no caso do Napster, a rede possui um o
central que realiza as buscas de conte´udo, controle de ingresso e conex˜ao `a rede.
Sem esse o, a rede ao funciona.
´
E interessante destacar que o o central pode ser
representado por um ou mais servidores em cluster. O o central ´e o ponto alto da
hierarquia do sistema, sendo todas as pesquisas feitas ao servidor central, por´em os
recursos ficam presentes nos os. Assim, o servidor passa a referˆencia de onde est´a
o recurso e o o requisitante se conecta diretamente para fazer a transferˆencia. A
Figura 3.5 (a) mostra esta estrutura.
Em redes P2P, o o central ´e respons´avel pela distribui¸ao de identificadores
´unicos, distribui¸ao de chaves p´ublicas, alculo de reputa¸ao de os, entre outros
servi¸cos que ajudam a tornar a rede segura. Entretanto, um o central ao pode
assegurar algumas quest˜oes, como garantir a inexistˆencia de conte´udo malicioso con-
tido em informa¸oes supostamente confi´aveis. Como as informa¸oes ao trafegam
pelo servidor, ele ao ´e capaz de garantir a qualidade dos dados. Por´em, apesar
da maior seguran¸ca em redes P2P centralizadas, o fator que mais dificulta o cresci-
mento dessa arquitetura ´e sua escalabilidade, a que a rede fica restrita `a capacidade
do o central. Al´em disso, a rede fica totalmente dependente da operabilidade desse
CAP
´
ITULO 3. REDES P2P 43
Figura 3.5: Arquiteturas de redes P2P: (a) Centralizada com busca
centralizada; (b) Descentralizada com busca desestruturada; (c)
H´ıbrida com busca descentralizada estruturada (Barcellos and Gas-
pary, 2006).
o. Mesmo que os auxiliares do o central sejam implantados, a rede ainda ter´a
problemas s´erios de escalabilidade, a que a capacidade de provimento de recursos
de um o ´e limitada. Com arios os auxiliares a rede se descaracteriza e deixa de
ser considerada uma rede centralizada. A utiliza¸ao de cluster de servidores, como
no Napster, ´e uma ´otima solu¸ao, mas torna a estrutura cara e com necessidade de
uma equipe para administr´a-los.
CAP
´
ITULO 3. REDES P2P 44
3.6.2 Redes P2P Descentralizadas
Redes P2P descentralizadas ao devem possuir nenhum o com qualquer
diferen¸ca de funcionalidade dos demais, ou seja, cada o ´e igual ao outro do ponto
de vista de suas fun¸oes no sistema. Este fato ajuda na escalabilidade do sistema,
que ao necessita de pontos realizando fun¸oes especiais como controle de acesso
ou busca de recursos. Outro ponto positivo ´e a tolerˆancia a falhas que esse modelo
possui, a que nenhum o ´e essencial ao sistema. Pode-se notar nesse esquema que
ao a qualquer forma de hierarquia entre os os, a que um modelo hier´arquico
pressup˜oe controle dos os inferiores pelos os superiores. Modelos hier´arquicos
normalmente possuem facilidades de seguran¸ca. Em modelos hier´arquicos, os pontos
superiores realizam certas funcionalidades de seguran¸ca respons´aveis p or garantir
a seguran¸ca de toda a rede. Al´em disso, os os superiores podem monitorar as
oes dos os inferiores para que eles se comportem de maneira aceit´avel dentro do
sistema. As redes P2P descentralizadas tˆem sua seguran¸ca muito mais complexa
que redes hier´arquicas, a que, nessas redes, nenhum o pode ser capaz de garantir
a seguran¸ca. Esse mo delo ´e chamado de rede P2P pura. A Figura 3.5 (b) mostra
este tipo de arquitetura.
Podem-se destacar dois modelos de seguran¸ca para redes P2P descentrali-
zadas. No primeiro, a rede como um todo tenta se manter segura com a ajuda de
todos os os colaborando. Esse ´e um bom modelo, desde que a rede consiga mini-
mizar oes de os que, porventura, tentem corromper ou desvirtuar esse trabalho,
ou seja, esse modelo normalmente ´e vulner´avel a ataques internos, promovidos prin-
cipalmente por os inseridos na rede com o odigo do protocolo alterado para gerar
diversos ataques, tais como, inunda¸ao de requisi¸oes, respostas falsas, adultera¸ao
de pacotes para que eles percorram mais os, etc. Para que o modelo de seguran¸ca
funcione, a rede deve ser capaz de identificar e ignorar os internos maliciosos. a
contra ataques externos `a rede, esse modelo funciona bem, a que ataques `a segu-
ran¸ca de um ´unico o na rede deve notificar tod a a rede contra a amea¸ca.
Outro modelo para seguran¸ca de redes P2P descentralizadas ´e quando cada
o tem sua pr´opria pol´ıtica de seguran¸ca. Um bom exemplo disso ´e o trabalho
CAP
´
ITULO 3. REDES P2P 45
(Kamvar et al., 2003). Nesse trabalho, cada o define o quanto pode e deseja
confiar nos outros os. Esse o o ser´a afetado por um problema de seguran¸ca se
confiar em um o malicioso. O problema desse modelo com rela¸ao ao anterior ´e
que ele ´e menos eficiente contra ataques externos, embora seja bem mais eficiente
contra ataques internos.
3.6.3 Redes P2P com Supern´os
Supern´os podem ser uma solu¸ao ao problema da escalabilidade das redes
P2P centralizadas. Se forem usados diversos supern´os em pontos est rat´egicos, uma
rede P2P pode crescer sem maiores problemas de escalabilidade. Apesar disso ser
um ponto positivo, existem fatores que comprometem esse modelo. Um fator im-
portante com rela¸ao ao uso de supern´os ´e o controle d esse uso. Na rede Kazaa,
qualquer o pode se tornar um supern´o. Essa liberdade dada aos os da rede tem
diversas consequˆencias, tanto positivas quanto negativas. Um ponto positivo ´e que
os os se tornam mais autˆonomos para decidir sobre suas obriga¸oes com a rede.
Outra vantagem ´e um ganho de desempenho no sentido de que, se existe controle,
necessariamente deve existir tamb´em uma troca de mensagens para que o controle
funcione. a um ponto negativo ´e que alguns os pouco capazes podem en carregar-
se de obriga¸oes e diminuir o desempenho da rede, pois os com pouco poder de
processamento ao conseguiriam atender `as obriga¸oes em um tempo aceit´avel.
Quando existe um controle de acesso ao grupo de supern´os, uma erie de oes
devem ser tomadas. Uma delas ´e estabelecer as condi¸oes que ao submetidas aos
os para se tornar um supern´o. Isso demanda troca de mensagens entre os os,
consequentemente aumentando o tr´afego da rede. Outro ponto que pode ser levado
em conta ´e a localiza¸ao geogr´afica dos os. Se o controle levar em conta esse fator,
a estar´a em vantagem em rela¸ao ao modelo anterior, pois se os os se tornam
supern´os por uma simples autoproclama¸ao, podem ocorrer regi˜oes da rede que es-
tejam superlotadas de supern´os e outras sem nenhum supern´o ao redor. A Figura
3.5 (c) ilustra este tipo de rede.
CAP
´
ITULO 3. REDES P2P 46
3.7 Tipos de Busca em Redes P2P
A busca de recursos nas redes P2P pode ser feita de trˆes modos (Gupta,
2003). No primeiro, a busca centralizada, acontece quando um o central realiza
as buscas e armazena os dados necess´arios. Este modelo ao existe em redes P2P
puras. O segundo ´e a desestruturada, a qual um o que busca determinado recurso
faz uma pergunta aos os mais pr´oximos e estes ou respondem afirmativamente
ou repassam a pergunta a outros os. Nesse modelo a busca ´e mais simp les de
ser implementada, por´em pode se tornar menos efetiva e mais lenta, a que os
muito distantes tˆem dificuldades de se comunicarem. O outro modelo, chamado de
estruturado, ocorre quando uma rede P2P como um todo mant´em uma tabela hash
distribu´ıda, ou DHT (Distributed Hash Table), com a localidade dos recursos. Nessa
arquitetura, cada o armazena uma parte da DHT. Os os tamem ao respons´aveis
por manter a DHT atualizada. Essa arquitetura ´e mais elaborada e exige maiores
cuidados com seguran¸ca. Apesar disso, se for bem utilizada, leva a uma melhor
utiliza¸ao dos recursos d e uma rede P2P, caso ao exceda na utiliza¸ao da largura
de banda para opera¸oes de manuten¸ao da tabela.
3.7.1 Busca Centralizada
A busca centralizada caracteriza-se pela existˆencia de um o respons´avel
pelas buscas de todo o sistema. Quando algum o da rede deseja procurar por
um recurso ele encaminha um pedido de busca ao o central e este pesquisa se o
recurso existe e onde se encontra o recurso.
´
E importante diferenciar esse modelo de
busca com a arquitetura centralizada. Na arquitetura centralizada o o central ao
´e respons´avel apenas por realizar as buscas do sistema. Por exemplo, em uma rede
P2P centralizada o o central presente pode realizar o controle de acesso ao sistema
e a rede pode realizar uma busca desestruturada. Nesse exemplo, a arquitetura ´e
centralizada, mas a busca ao. Um exemplo de rede P 2P que utiliza este mecanismo
de busca ´e o Napster.
CAP
´
ITULO 3. REDES P2P 47
3.7.2 Busca Descentralizada Desestruturada
A busca descentralizada desestruturada se caracteriza por, quando algum
ponto do sistema deseja procurar algum dado na rede, o o faz uma pergunta a seus
os vizinhos. Se algum deles tiver o dado, responde ao requisitante. Se ao tiver, os
os repassam a requisi¸ao a outros os, sendo que esse pedido tem um valor finito de
os que deve percorrer. Esse valor finito serve para ao propagar indefinidamente
pedidos pela rede. Como uma rede P2P descentralizada normalmente ao ´e capaz
de saber seu tamanho e organiza¸ao estrutural, esse valor finito ´e necess´ario. Por´em,
isto acarreta numa perda de funcionalidade, pois dois os podem estar separados por
um valor muito alto de saltos que se tornam inalcan¸aveis um ao outro. Exemplo
de rede que utiliza esse tipo de busca ´e Gnutella v0.4.
3.7.3 Busca Descentralizada Estruturada
O outro tipo de b usca descentralizada ´e a busca estruturada, feita pelo uso
de uma tabela hash distribu´ıda. Essa tabela hash ´e dividida pela rede de forma
que, cada o, dependendo de sua coloca¸ao no sistema e de seu identificador, fica
respons´avel por uma parte dessa tabela. Quando um determinado recurso deve ser
colocado na tabela, o o possuidor do recurso deve notificar o o respons´avel por
armazenar a posi¸ao em que esse recurso deve ser indexado. Se algum outro o
deseja requisitar o recurso, ele faz uma pesquisa na DHT para saber quem possui
o recurso. Como o algoritmo de busca na DHT ´e conhecido por todos os n ´os, ´e
mais apido para o requisitante encontrar o o que armazena a por¸ao da DHT na
qual se deve encontrar as informa¸oes do possuidor do recurso, a que a busca ´e
direcionada. Assim, o o requisitante d escobre onde est´a localizada a informa¸ao
que deseja dentro da DHT. Este modelo tem a vantagem de proporcionar uma
busca direcionada aos r ecursos de uma rede P2P. Apesar disso, deve haver uma
colabora¸ao total de cada o d a rede para o bom funcionamento do sistema. Se,
por exemplo, um o se recusa a responder `as requisi¸oes sobre sua parte cab´ıvel da
DHT, os recursos nela listados estar˜ao inalcan¸aveis mesmo para os os vizinhos
ao detentor da informa¸ao. O uso de DHT pode ser tamem encontrado em redes
CAP
´
ITULO 3. REDES P2P 48
P2P desestruturadas com supern´os. Os supern´os seriam respons´aveis pela DHT,
enquanto que os outros os apenas se encarregam de enviar as informa¸oes `a DHT
e a utilizarem para buscas. Embora o uso de supern´os diminua a quantidade de os
em que a DHT est´a presente, isso ao acarreta na mudan¸ca da pol´ıtica de seguran¸ca
da DHT. A rede eDonkey, Gnutella v0.6 e Kazaa utilizam este mecanismo de busca.
3.8 Firewalls versus Redes P2P
A escolha de servi¸cos web para o prot´otipo da rede P2PWSRep foi motivada
por dos fatores. O primeiro ´e a facilidade de implementar a interoperabilidade
com outras redes P2P, al´em de facilitar a extensibilidade do protocolo, sem muitos
impactos em vers˜oes anteriores. O segundo ´e o fato das redes P2P utilizando servi¸cos
web poderem atravessar elementos de prote¸ao como Firewalls e Proxies. Um o
em uma rede interna ao pode ser acessado por um o da rede externa. Para isso, as
conex˜oes tˆem que ser criadas de dentro para fora da intranet, devido `a necessidade
de realiza¸ao de NAT (Network Address Translation) para que os pacotes gerados
por esses os acessem a Internet. Assim, o uso combinado d e firewalls e NAT acaba
resultando em uma especial dificuldade para a comunica¸ao P2P. Segundo (Wilson,
2004), na maioria das redes internas, o protocolo HTTP ´e geralmente habilitado para
iniciar conex˜oes. Infelizmente, cada conex˜ao HTTP envia um pedido e aguarda a
resposta, sendo assim quando uma conex˜ao faz um pedido inicial de comunica¸ao
ter´a que ficar aberta at´e receber uma resposta. Embora o HTTP possa prover
mecanismos para enviar pedidos da rede interna, ao provˆe a capacidade para os
os externos cruzarem o limite dos firewalls.
A ´unica forma que um o dentro de uma LAN (Local Area Network) possui
para resolver alguns destes problemas ´e sua capacidade para criar conex˜oes de rede
em um o fora da prote¸ao de firewalls. os podem usar protocolos permitidos pelo
firewall para criar um t´unel para a rede externa (HTTP Tunneling). Por´em, se um
firewall ´e confi gurado para negar todas as conex˜oes que partem da rede interna, a
comunica¸ao do o se torna imposs´ıvel, mas, com um protocolo de rede que usa a
CAP
´
ITULO 3. REDES P2P 49
porta 80, a que um firewall, por padr˜ao, ao tem como fazer o bloqueio.
Para solucionar este problema, um o de rota, como ´e chamado, dentro de
uma rede interna protegido por um firewall utiliza um o localizado fora da prote¸ao
do mesmo, como mostrado na Figura 3.6. Qualquer o da Internet ao tentar se
comunicar com um o da LAN ao conseguir´a, por restri¸oes do firewall. Para
resolver o problema, o o 1 faz uma conex˜ao ao o 4, para manter uma conex˜ao.
Assim, as requisi¸oes pod em ser enviadas para qualquer o da LAN utilizando o o
1 como rota de entrada e todas as mensagens direcionadas para os os internos ao
liberadas para comunica¸ao.
Figura 3.6: Travessia de firewall com HTTP Tunneling.
3.9 Seguran¸ca em Redes P2P com Reputa¸ao
Nesta se¸ao, trataremos de alguns ataques a que as redes P2P ao suscet´ıveis.
O primeiro ataque ´e conhecido como whitewashing e apenas ocorre quando os
podem trocar sua identidade facilmente, o que ´e o caso de muitas redes P2P. Um o
pode deixar a rede e voltar em seguida com uma nova identidade, em uma tentativa
de se livrar de qualquer reputa¸ao ruim que ele tenha acumulado. Se um o ao
consegue distinguir um novo o de um antigo, ent˜ao whitewhashers podem causar
o colapso do sistema se nenhuma contramedida for tomada (Feldman et al., 2004).
Al´em disso, o o pode adquirir m´ultiplos identificadores para si, caracterizando
CAP
´
ITULO 3. REDES P2P 50
um segundo tipo de ataque, chamado de Sybil, conforme (Douceur, 2002). Isso
possibilita o o utilizar as arias identidades para agir de acordo com seus interesses.
O terceiro tipo de ataque ´e o de conluio contra sistemas de reputa¸ao. Este
tipo de ataque ´e frequentemente efetivo, porque em sistemas de reputa¸ao t´ıpicos,
um o deve consultar outros os sobre a reputa¸ao de um terceiro. Se muitos os
est˜ao comprometidos, enao este grupo pode fornecer falso testemunho, no sentido
de aumentar a reputa¸ao de um o malicioso ou de atacar um o ´ıntegro, diminuindo
a sua reputa¸ao.
O quarto tipo de ataque ´e o de o traidor (Marti and Garcia-Molina, 2006).
Em tal ataque, um o se comporta adequadamente por um tempo de forma a
construir uma boa reputa¸ao, e enao explora o sistema valendo-se da mesma. Este
ataque ´e especialmente efetivo quando os os ganham privil´egios `a medida que
conquistam reputa¸ao. Um exemplo do ataque de traidor ´e quando um usu´ario no
eBay (eBay, 2006) constr´oi uma reputa¸ao com muitas transa¸oes de pequeno valor,
e enao lesa algu´em em uma transa¸ao de grande valor. Em termos sistˆemicos, um
o traidor pode surgir ao de uma mudan¸ca comportamental de um usu´ario, mas
de uma mudan¸ca no ambiente: por exemplo, uma aquina cliente perfeitamente
correta pode ser infectada com um v´ırus estilo Cavalo de Toia, que enao poderia
aleatoriamente abusar da boa reputa¸ao do o. A resistˆencia a esse tipo de ataque
pode ser aumentada usando a an´alise da hist´oria recente de um o (Feldman et al.,
2004).
Por fim, a reputa¸ao de um o ´e tipicamente usada na pol´ıtica de sele¸ao
de um o com quem interagir. Segundo (Dumitriu et al., 2005), ´e caracterizado o
impacto de pol´ıticas de sele¸ao entre respostas adotadas por os P2P que originam
buscas. ao identificadas diversas pol´ıticas, dentre as quais incluem-se escolher o o
que anuncia a melhor capacidade. Sob o ponto de vista de ataques, a pior pol´ıtica
de escolha de um o ´e aquela que seleciona o o que se anuncia como o melhor. Por
exemplo, se uma informa¸ao de desempenho ´e facilmente falsific´avel, uma busca o
ter´a sucesso quando nenhuma resposta for de um o malicioso, pois um o malicioso
sempre ser´a escolhido. Sistemas de reputa¸ao ao conseguem resolver esse problema
CAP
´
ITULO 3. REDES P2P 51
mesmo quando os erros do sistema de reputa¸ao ao m´ınimos. T´ecnicas baseadas
em aleatoriedade ao efetivas para aumentar a resistˆencia de um sistema P2P a
ataques. Entretanto, aleatoriedade imp acta negativamente no desempenho quando
atacantes ao est˜ao presentes.
3.10 Solu¸oes de Redes P2P
Nas pr´oximas se¸oes ser˜ao apresentadas duas redes P2P bem populares que
re´unem as p rincipais caracter´ısticas dos opicos abordados nas se¸oes anteriores:
a rede Gnutella, que at´e hoje serve como base para a cria¸ao de outras redes que
desejam caracter´ısticas de redes P2P puras, e a rede Napster, que atingiu uma marca
de milh˜oes de usu´arios no 2000.
3.10.1 Gnutella
´
E um sistema de compartilhamento de arquivos de topologia ad-hoc. Sua ar-
quitetura ´e descentralizada, isto ´e, pura. Seu mecanismo de busca ´e descentralizado
e desestruturado, sendo todos os os funcionalmente idˆenticos. Os os nessas redes
tamem ao chamados serv ents, porque ao servidores e clientes ao mesmo tempo e
as buscas por arquivos ao realizadas atraes d e uma inunda¸ao de escopo limitado,
utilizando um campo no cabcalho, chamado de TTL, que limita o n´umero de vezes
que o pacote ´e encaminhado (Buford et al., 2009). Os os que possuem o arquivo
solicitado respondem ao o que encaminhou a solicita¸ao, sendo que a resposta `a
busca tamb´em segue o mesmo caminho da solicita¸ao. O o requisitante enao es-
colhe um dos os que retornaram a resposta e faz o download diretamente deste o.
O Gnutella, pelo seu bom desempenho, e apesar de utilizar mecanismos de busca
por inunda¸ao, consegue atender satisfatoriamente `as caracter´ısticas de desempen ho
das redes que seguem este modelo, considerando-se o tempo de resposta das buscas
de recursos.
A Figura 3.7 mostra um exemplo de arquitetura Gnutella, onde um o faz
uma inunda¸ao para localizar um arquivo. Os os que ao possuem a informa¸ao
CAP
´
ITULO 3. REDES P2P 52
Figura 3.7: Rede Gnutella.
buscada reencaminh am a busca para seus vizinhos. Perceba que a setas com uma
barra, representando que a busca a atingiu a profundidade especificada. Uma vez
encontrado o recurso, o o requisitante faz download diretamente de um dos os
que responderam positivamente.
Vis˜ao Geral do Protocolo Gnutella v0.4
Um o X estabelece uma conex˜ao com o o Y , que a est´a conectado `a
rede. A conex˜ao se a da seguinte forma, o o X envia uma requisi¸ao contendo a
string “GNUTELLA CONNECT/0.4/n/n” p ara estabelecer uma conex˜ao com o o
Y . O o Y pode aceitar a conex˜ao, enviando para o o X a string “GNUTELLA
OK/n/n”, ou recusar a conex˜ao, enviando qualquer resposta que ao seja a que con-
tenha a string de aceita¸ao de conex˜ao. Uma vez que o o X est´a conectado a rede,
ele pode se comunicar com outros os enviando e recebendo mensagens gnutella,
tamem chamadas de descritores. Cada descritor possui 22 bytes de cabcalho con-
sistindo dos seguintes campos: Descriptor ID (byte 0 a 15), Payload Descriptor (byte
16), TTL (byte 17), Hops (byte 18) e Payload Length (byte 19 a 22). O descriptor
ID ´e um identificador ´unico da mensagem na rede e tipicamente criado usando um
gerador randˆomico. O time to live (TTL) ´e o n´umero de vezes que a mensagem
ser´a encaminhada pelos os antes de ser exclu´ıda. Hops representa o n´umero de
vezes que a mensagem ser´a encaminhada entre os os. Cada vez que a mensagem ´e
encaminhada o TTL da mensagem ´e decrementado em um e o hops ´e incrementado
CAP
´
ITULO 3. REDES P2P 53
em um. O payload descriptor cont´em o odigo do tipo da mensagem. Os odigo
ao 0x00 para Ping message, 0x01 para Pong message, 0x40 para Push message,
0x80 para Query message, 0x81 para Query Hit message. O payload length conem
o tamanho da mensagem que segue o cabcalho, isto ´e a carga ´util. Ent˜ao, o total
da mensagem ´e 22 bytes + o payload length.
Um o pode descobrir a informa¸ao (endere¸co IP e n´umero de porta, n´umero
de recursos, etc.) sobre os outros os enviando uma mensagem Ping. Uma men-
sagem Pin g tem um payload length zero. Ao receber uma Ping message, um o ir´a
encaminh´a-la para todos os os diretamente ligados a ele, exceto o o que enviou a
mensagem. Ao mesmo tempo o o ir´a enviar uma mensagem Pong, com o mesmo
descriptor ID correspondente `a men sagem Ping, em resposta ao o que enviou a
mensagem. A mensagem Pong tem como conte´udo o n´umero de arquivos compar-
tilhados, o n´umero de kilobytes compartilhados, o end ere¸co IP e o n´umero da porta
de conex˜ao.
Enquanto as mensagens Ping e Pong ao usadas para descobrir outros os
na rede, mensagens Query e Query
Hit ao usadas para localizar recursos. Para
localizar um recurso, um o envia uma mensagem Query que cont´em como conte´udo
a velocidade de rede m´ınima exigida dos os, que possam conter o recurso e a string
que descreve o recurso requisitado. Similar ao processo de mensagem Ping, uma
mensagem Query ´e recebida por um o ´e encaminhada em broadcasting para todos
os os conectados diretamente a ele, exceto ao o que enviou a mensagem. As
mensagens Query ao tamb´em sujeitas ao incremento do hop e decremento do TTL
para limitar a profundidade da busca. Cada mensagem ser´a replicada e p ropagada
na rede at´e que um o atenda a requisi¸ao ou que o valor do TTL seja excedido
para todos os pacotes. Os os que ao capazes de oferecer o recurso respondem com
a mensagem Query Hit. A mensagem Query Hit cont´em a informa¸ao sobre o o
que compartilha o recurso buscado.
Mensagens Pong e mensagens Query Hit ao roteadas pelo mesmo caminho
de volta por onde as mensagens Ping e Query passaram. Isto ´e feito atrav´es de um
registro mantido nos os por onde essas mensagens passaram atrav´es do descriptor
CAP
´
ITULO 3. REDES P2P 54
ID da mensagem e o payload descriptor do cabcalho correspondente. Quando
um o recebe uma mensagem de resposta, ele ir´a checar se ela foi gerada de um
Ping ou Query que ele encaminhou. S e o n ´o ao ´e o destino, ele ir´a checar se foi
encaminhado um Ping ou Query que tem o descriptor ID. Se ao houve um Ping
ou Query passando por ele, a mensagem ´e exclu´ıda, sen˜ao ela ser´a enviada para o
destino. Uma vez que um o destino recebe uma mensagem Query
Hit, gerada por
outro o, em resposta a sua mensagem Query, ele ir´a acessar o recurso usando o
protocolo HTTP.
3.10.2 Napster
Precursor em termos de compartilhamento de arquivos, o Napster foi a rede
P2P mais conhecida, principalmente devido a problemas legais, sendo que at´e hoje
´e tido como o principal disseminador do ideal das redes P2P. Apesar disso, o Naps-
ter vai contra os princ´ıpios das redes P2P pura, porque depende de um servidor
central para seu funcionamento. O Napster obteve enorme sucesso ao permitir o
compartilhamento de arquivos de m´usica, por´em o conte´udo publicado no Napster
era protegido por copyright e ao poderia ser copiado por outros usu´arios, sendo
este o principal motivo de interrup¸ao da sua rede P2P de uso aberto. Usu´arios que
ingressam na rede Napster oferecem conte´udo enviando informa¸oes sobre arquivos
locais ao servidor central; opera¸oes de busca ao resolvidas no servidor, que re-
torna ao o requisitante uma lista de endere¸cos dos os disponibilizando o arquivo
procurado. O download do arquivo ent˜ao se a diretamente entre os os envolvidos,
sem sobrecarregar o servidor. A arquitetura do Napster est´a ilustrada na Figura
3.8 (Addison, 2002). Computadores d e usu´arios buscam informa¸oes sobre arquivos
no diret´orio central e enao se comunicam com outros os diretamente para obter
os arquivos desejados. De acordo com estudos, a rede Napster chegou a contar com
mais de 50 milh˜oes de usu´arios em 2001 (OpenNap, 2008).
A arquitetura da rede Napster, apesar de usar um modelo centralizado, de-
monstrou que ´e poss´ıvel atingir um grau de escalabilidade grande, comprovado pelo
grande n´umero de usu´arios que a rede atingiu. Isso se deve principalmente ao tipo
CAP
´
ITULO 3. REDES P2P 55
Figura 3.8: Arquitetura do Napster (Addison, 2002).
de infraestrutura tecnol´ogica adotada na parte que se refere ao servidor central. Na
verdade o Napster possu´ıa arios servidores, configurados em cluster. Isso a ao
usu´ario a impress˜ao que existe uma ´unica entidade servidora, mas na verdade as
requisi¸oes ao distribu´ıdas para um dos membros do cluster. Isso torna um modelo
de rede P2P complexo de administrar e consideravelmente caro. Por´em, mostra a
simplicidade do protocolo de registro de os, de busca de recursos e download de
arquivos.
O funcionamento da rede Napster ´e bem simples. Tudo come¸ca com o registro
do o na rede. O registro ´e feito em um dos servidores de metadados. Cada servidor
tem capacidade para atender at´e 15.000 os simultaneamente. O o, ao se registrar
no servidor, recebe uma identidade e passa os dados dos recursos que compartilha
para o servidor. Cada vez que o cliente entra na rede, ele se conecta ao ser vidor e
atualiza arios dados, tais como, os recursos dispon´ıveis e o endere¸co IP corrente.
Um o quando necessita de um recurso, abre uma conex˜ao com o ser vidor e informa o
nome do recurso que est´a buscando. O servidor varre suas tabelas de metadados em
busca do recurso, acha os os que disp˜oem do mesmo e responde ao o requisitante.
O o recebe os dados que identificam os os que contˆem o recurso e os endere¸cos
IP correspondentes, ent˜ao se conecta diretamente ao o destino e faz o download
do arquivo. As redes P2P com este tipo de arquitetura em uma baixa latˆencia
nas buscas, no caso do Napster o tempo de resposta dificilmente ultrapassava 15
segundos (Addison, 2002).
CAP
´
ITULO 3. REDES P2P 56
3.11 Considera¸oes Finais
O pontencial das redes P2P foi revelado nos ´ultimos anos pela grande de-
manda a esta tecnologia, principalmente na ´area de compartilhamento de recursos.
Esse sucesso se deve a diversas formas de projetar uma rede P2P, pela variedade de
arquiteturas, mecanismos de busca, transmiss˜ao de dados e aplica¸oes que se ade-
quam a este modelo, permitindo que uma rede P2P seja desenvolvida considerando
as caracter´ısticas da aplica¸ao. O crescimento e populariza¸ao dessas redes gera
um tr´afego intenso na rede mundial de computadores ou nas redes lo cais onde elas
est˜ao presentes, e como qualquer sistema que se sobressai, desperta para cria¸ao de
outras tecnologias que buscam prejudicar o funcionamento natural para o qual foi
proposto, seja para tirar maior vantagem ou simplesmente causar um desequil´ıbrio,
explorando falhas e criando mecanismos avan¸cados de ataques. Por´em, as redes
P2P em evolu´ıdo para superar estes problemas. Assim, projetar sistemas que te-
nham como base as redes P2P exige que sejam revistas arias caractar´ısticas destas
redes e inseridos novos mecanismos que possam torn´a-las mais seguras e confi´aveis,
mantendo seu desempenho.
Cap
´
ıtulo 4
Reputa¸ao em Redes P2P
4.1 Introdu¸ao
Estudos (Adar and Huberman, 2000) demonstraram que 70% dos usu´arios
integrantes de redes P2P o est˜ao interessados em utilizar o sistema sem cooperar,
isto ´e, ao compartilham os recursos que possuem ou que obtiveram na rede. Outro
dado que foi mostrado na pesquisa ´e que 50% das respostas `as buscas ao retornadas
por apenas 1% dos os integrantes da rede. Estudos tamb´em recentes de (Liang et
al., 2005) mostraram que 50% dos arquivos mais populares disponibilizados na rede
FastTrack (FastTrack, 2008) ao corrompidos. Esses dados demonstram que devem
existir mecanismos que possam ajudar a manter um n´ıvel de colabora¸ao entre os
os participantes da rede e informa¸oes sobre os recursos que est˜ao disponibilizados
pelos mesmos.
4.2 Tipos de Reputa¸ao
4.2.1 Reputa¸ao de os
Os mecanismos de reputa¸ao aumentam a confiabilidade das redes P2P
porque permitem que os os possam avaliar o comportamento dos demais e enao
definir de onde obter informa¸oes confi´aveis. Os mecanismos propostos na lite-
57
CAP
´
ITULO 4. REPUTAC¸
˜
AO EM REDES P2P 58
ratura sugerem construir e manter a reputa¸ao de um o atrav´es de avalia¸oes
enviadas por outros os `a medida que o mesmo interage na rede, bem como validar
a informa¸ao para saber se a mesma ´e integra. Este tipo de reputa¸ao ´e muito
semelhante `a utilizada para classifica¸ao de usu´arios de sites de com´ercio eletrˆonico
como eBay (Ebay, 2008) e Mercado Livre (MercadoLivre, 2008), onde os membros
ao classificados levando em considera¸ao o n´umero de produtos vendidos, n´umero
de produtos comprados, prazo de entrega, qualifica¸ao dos compradores, qualidade
dos produtos, etc. Todos os membros podem ser vendedores e compradores, sendo
que as transa¸oes ao feitas diretamente entre eles. O sistema gera um percentual
que permite aos clientes escolherem os vendedores pelo escore, mas mesmo assim
ficam livres para negociar com novos vendedores, fazendo com que estes vendedores
elevem seus escores. Os vendedores tamb´em podem, com base na reputa¸ao do
comprador, rejeitar o pedido de transa¸ao de compra devido a uma reputa¸ao ne-
gativa. A Figura 4.1 mostra a reputa¸ao utilizada pelo site Mercado Livre. Perceba
que existem arias m´etricas para avaliar um vendedor: o n´umero de transa¸oes,
qualifica¸oes positivas e negativas e tempo que o vendedor ´e membro do sistema.
Tamem ao utilizados estere´otipos para permitir que os usu´arios assimilem visual-
mente e rapidamente a reputa¸ao de um vendedor.
Figura 4.1: Reputa¸ao de um vendedor do site Mercado
Livre.
O site de vendas americano eBay tem um mecanismo igual ao do site brasileiro
Mercado Livre. Ao final de uma transa¸ao de compra e venda ao realizadas
avalia¸oes das partes. O produto tamb´em pode ser avaliado da mesma forma que o
vendedor e comprador. A Figura 4.2 mostra como ´e realizado o alculo de repu ta¸ao
do eBay. O umero de transa¸oes positivas ´e dividido pelo somat´orio de todas as
transa¸oes ocorridas em um per´ıodo de um ano, desconsiderando-se as avalia¸oes de
CAP
´
ITULO 4. REPUTAC¸
˜
AO EM REDES P2P 59
um mesmo membro na mesma semana. O resultado em percentual ´e a reputa¸ao
do participante.
Figura 4.2: Mecanismo de alculo de reputa¸ao do eBay.
A reputa¸ao de os em uma rede P2P pode ser gerenciada de trˆes formas. A
primeira ´e com os os executando o algoritmo de reputa¸ao e mantendo as m´etricas
de todos os outros os que ele a interagiu ou pretende interagir. Esse modelo ´e
descentralizado. A segunda abordagem ´e atraes de um elemento central mantendo
uma base de informa¸ao de todos os os. Os os individualmente enviam seus dados
para este servidor e o mesmo executa um algoritmo para identificar a reputa¸ao do
o. A terceira e ´ultima abordagem ´e um modelo h´ıbrido, onde as informa¸oes
ao processadas e armazenadas localmente. Neste caso, o servidor central tamem
recebe dados dos os e os disponibiliza.
´
E um modelo mais complexo, pois envolve
uma gerˆencia de reputa¸ao tanto nos os, quanto em um servidor central, havendo
a necessidade de manter uma integridade dos dados em ambos os locais.
Os sistemas de reputa¸ao permitem manter um hist´orico de transa¸oes pra-
ticadas por ou com um o da rede P2P. Esse hist´orico possibilita que o o possa
manter um grau de confian¸ca no o com o qual deseja interagir e que possa responder
as requisi¸oes de reputa¸ao a respeito deste o com base na sua experiˆencia. Sabe-se
que a maioria dos os que integram uma rede P2P usufruem mais dos recursos do
que os disponibilizam. os de uma rede P2P que ao colab oram podem ser divididos
em ego´ıstas e maliciosos. O objetivo de ego´ıstas ´e usufruir o aximo do sistema
P2P contribuindo com o m´ınimo de recursos compartilhados. Esse comportamento ´e
CAP
´
ITULO 4. REPUTAC¸
˜
AO EM REDES P2P 60
muito comum nas redes P2P que ao tˆem uma gerˆencia de reputa¸ao. Em contraste,
o objetivo dos maliciosos ´e causar mal a um dos os ou ao sistema como um todo.
os maliciosos est˜ao dispostos a empregar recursos para ataque, tal como injetar
arquivos corrompidos, o que ao ocorre com os ego´ıstas, responder requisi¸oes
com adultera¸ao da resposta original, simular juntamente com outros os, atraes
de intera¸oes que ao existiram, uma reputa¸ao forjada, dentre muitas outras.
Existem diferentes abordagens para se incentivar os a colaborarem. Desta-
cam-se duas classes gerais de mecanismos de incentivo. O primeiro ao os baseados
em confian¸ca e reputa¸ao, amparados na reciprocidade, isto ´e, cada o possui uma
reputa¸ao associada, que parte de um estado inicial e ´e constru´ıda ao longo da
vida do mesmo, com base em suas intera¸oes com os outros. Essa informa¸ao de
reputa¸ao pode influenciar a decis˜ao de um o sobre os parceiros de sua pr´oxima
intera¸ao, buscando reciprocidade. Por exemplo, um o pode preferir solicitar um
servi¸co a outro que t em lhe respondido correta e eficientemente as ´ultimas requi-
si¸oes, desconsiderando certos os que em lhe retornado arquivos com conte´udo
corrompido. Reciprocidade ´e obtida em um sistema P2P atraes de um sistema de
gerenciamento de reputa¸ao. Os termos reputa¸ao e confian¸ca est˜ao intimamente
ligados (Grandison and Sloman, 2000).
Confian¸ca ´e a base para permitir que um o use ou manipule recursos do
outro. O grau de confian¸ca em uma opera¸ao tem rela¸ao inversamente proporcional
ao seu risco. Sobre a rela¸ao entre os termos, um sistema de gerˆencia de reputa¸ao
determina a reputa¸ao de os baseado no hist´orico das oes dos mesmos e permite
que sejam formadas opini˜oes sobre o grau de confian¸ca acerca de outros. As rela¸oes
de confian¸ca podem ser de um para outro (confiar em um o para troca de recursos),
de um para arios (confiar em um conjunto de os com os quais recursos podem
seguramente ser trocados), de arios para um (nesse caso, todos os os d evem
se reportar a um o o, em que confiam) e de arios para arios (quando um
grupo confia em outro). Uma das propriedades mais importantes de confian¸ca ´e a
transitividade: se A confia em B e B confia em C, ent˜ao ´e poss´ıvel que A confie
(pelo menos limitadamente) em C.
CAP
´
ITULO 4. REPUTAC¸
˜
AO EM REDES P2P 61
A confian¸ca de um o em outro ´e baseada, naturalmente, na vis˜ao do o
sobre a reputa¸ao do outro. Os sistemas de reputa¸ao em em comum trˆes partes
principais: coleta de informa¸oes, determina¸ao de escore e ranqueamento e oes
de resposta (Marti and Garcia-Molina, 2006). A coleta de informa¸oes est´a rela-
cionada ao esquema de identifica¸ao usado, `as fontes de informa¸ao, `a agrega¸ao de
informa¸oes e `a pol´ıtica adotada para os que ingressam no sistema sem hist´orico
associado. Um dos problemas fundamentais de sistemas de reputa¸ao ´e garantir
a validade das informa¸oes prestadas por outros os. Portanto, ´e natural que na
determina¸ao do escore de reputa¸ao de um estranho, experiˆencias anteriores do
pr´oprio o sejam valorizadas em rela¸ao `a opini˜ao de outros.
O segundo esquema de incentivo, baseado em com´ercio, inclui mecanismos
de micropagamento e esquemas de troca de recursos. Para isso, os os, para obter
recursos compartilhados, em que pagar por eles atrav´es de uma moeda virtual que
existe na rede P2P ou oferecer seus recursos em troca dos que ele obteve ou pretende
obter, isto ´e, uma esp´ecie de escambo (Righi et al., 2004).
4.2.2 Reputa¸ao de Recursos
Com o objetivo de minimizar as oes dos os ego´ıstas e de os maliciosos
nas redes P2P, ser´a ab ordado outro pr oblema mais relacionado aos arquivos com-
partilhados pelos os. Para um o, quando um recurso ´e encontrado e baixado, ´e
feita uma verifica¸ao do seu conte´udo. Se ao houve detec¸ao de altera¸ao no hash
do arquivo, enao ele ´e dado como ´ıntegro e a reputa¸ao do o que disponibilizou
o arquivo ´e incrementada. Por´em, este arquivo pode conter conte´udo perigoso, tal
como spyware, cavalo de tr´oia ou outros tipos de amea¸cas. Assim, a reputa¸ao apli-
cada somente a os da rede P2P ao ´e totalmente segura, o ideal ´e fazer o uso de
reputa¸ao tanto em n´ıvel dos os quanto dos recursos presentes na rede. Esse pro-
blema relacionado aos recursos ´e conhecido por dissemina¸ao de conte´udo polu´ıdo
em redes P2P. Fazendo uma compara¸ao com sistemas reais, utilizados nos sites de
com´ercio eletrˆonico, isso equivale `a avalia¸ao do produto pelos compradores. Assim,
antes de fechar a compra, o interessado pode fazer u ma verifica¸ao se a opini˜oes
CAP
´
ITULO 4. REPUTAC¸
˜
AO EM REDES P2P 62
negativas sobre o produto que o mesmo est´a pretendendo comprar. A presen¸ca
de recursos corrompidos nas redes P2P causa um grande desperd´ıcio de largura de
banda, a que atualmente o tr´afego gerado pelos sistemas P2P responde por grande
parte do tr´afego na Internet.
Cada um dos arios sistemas P2P utilizados atualmente possui um determi-
nado n´ıvel de polui¸ao de recursos. Esses n´ıveis podem levar essas redes ao desuso,
assim como aconteceu com muitas outras que foram substitu´ıdas por redes P2P que
ofereciam melhores resultados na obten¸ao de recu rsos ´ıntegros. No trabalho de
(Costa et al., 2005) foram avaliados d ois tipos de redes: moderadas e ao mode-
radas. Nas redes moderadas, existe a presen¸ca de um agente moderador humano
capaz de interferir nos arquivos que est˜ao sendo compartilhados na rede, como no
caso da rede BitTorrent (BitTorrent, 2008). As redes ao moderadas constituem os
demais tipos de redes. Al´em disso, foi avaliado qual o efeito da polui¸ao da rede,
no espalhamento, quando os usu´arios do sistema recebem incentivos para apagar
arquivos polu´ıdos.
A rede BitTorrent ´e uma das redes P2P moderadas mais utilizadas atual-
mente. Percebe-se que quando uma rede P2P tem a participa¸ao dos usu´arios para
identificar os recursos corrompidos, a mesma mant´em um n´ıvel de polui¸ao aceit´avel
pelos usu´arios. Por´em, nota-se que a maioria dos usu´arios ao negligentes, pois ape-
sar de detectar os recursos corrompidos, ao os apagam. Isso acaba contribuindo
para a queda do desempenho da rede. O mecanismo utilizado pelo BitTorrent con-
siste na publica¸ao de informa¸oes sobre os arquivos disponibilizados na rede. Os
usu´arios que decidem obter este arquivo receber˜ao peda¸cos uns dos outros, seguindo
uma pol´ıtica “olho por olho, dente por dente” (tit-for-tat), o que implica que os os
o ir˜ao ceder recursos para outros os que em tendˆencia a cooperar. Os moderado-
res consistem de usu´arios que disponibilizam o arquivo de metadados que conem
informa¸oes suficientes para um participamente da rede obter o arquivo buscado.
Esse moderador pode apagar o metadado caso perceba que aquele arquivo est´a cor-
rompido (Costa et al., 2005). Existem sites na Internet que disponibilizam arquivos
bem recentes de metadados para fontes (peda¸cos) de arquivos disponibilizados na
CAP
´
ITULO 4. REPUTAC¸
˜
AO EM REDES P2P 63
rede BitTorrent.
4.3 Sistemas Baseados em Com´ercio e Reputa¸ao
Neste trabalho, ser˜ao apresentadas cinco abordagens para diminuir proble-
mas das redes P2P segundo ( Barcellos and Gaspary, 2006). arios desses trabalhos
foram utilizados como base para a defini¸ao do protocolo P2PWSRep. Os dois
primeiros ao baseados em com´ercio, o sistema PPay e redes de Escambo. Por´em,
esses trabalhos diminuem apenas o alastramento de os caronas (freeriders), mas
ao evitam que a qualidade dos recursos trocados seja considerada no que se refere
`a corru p¸ao de dados e infec¸ao por v´ırus. Os trˆes ´ultimos trabalhos ao baseados
em reputa¸ao. ao os sistemas EingenTrust, XRep e PeerTrust. Esses sistemas
utilizam algoritmos que controlam o grau de confian¸ca de um o ou recurso com-
partilhado atrav´es de m´etricas baseadas nas transa¸oes dos os, que refletem seu
comportamento.
4.3.1 PPay
Sistemas baseados em com´ercio tamb´em podem ser chamados de modelo
de micropagamentos. ao respons´aveis por controlar o fluxo de recursos entre os
participantes da rede P2P. Baseiam-se na ideia de compra de recursos, onde um o
apenas adquire acesso aos recursos que deseja, se pagar por ele. Para isso, existe
uma esp´ecie de moeda, um “dinheiro virtual” adquirido pelos participantes da red e
P2P. Essa moeda tem um ´unico motivo: evitar que os caronas possam usufruir dos
recursos dispon´ıveis sem pagar p or eles. Isso estimula os que ao queiram investir
a deixar a rede. Os recursos podem ter valores diferentes, dependendo do tipo e at´e
mesmo do o que o hospeda. Por´em, isso pode gerar uma “infla¸ao virtual”, quando
poucos os possuem o recurso e passam a cobrar caro por eles. Percebe-se que ao a
uma preocupa¸ao em determinar a qualidade do recurso compartilhado e tamb´em
ao a como o participante que adquiriu um recurso reclamar ou divulgar uma
negocia¸ao frustrada, afim d e evitar que outros participantes possam ser v´ıtimas de
CAP
´
ITULO 4. REPUTAC¸
˜
AO EM REDES P2P 64
novos “golpes”.
Muitos esquemas de micropagamentos se baseiam em confian¸ca e ao geren-
ciados por um o central, chamado de intermedi´ario. Ele ´e respons´avel por gerenciar
contas de usu´arios, distribuir e trocar dinheiro envolvido nas transa¸oes e manter a
seguran¸ca do sistema. Al´em disso, para que os pagamentos ocorram, o intermedi´ario
dever´a estar dispon´ıvel para participar em cada transa¸ao. A desvantagem desse
esquema ´e a limita¸ao que este o pode impor ao sistema, comprometendo sua esca-
labilidade e desempenho, no caso de grande n´umero de participantes e transa¸oes.
O proto colo PPay (Yang and Garcia-Molina, 2003) tem um esquema de mi-
cropagamento onde os usu´arios obt´em “dinheiro virtual” para utilizar em transa¸oes
com outros participantes da rede. Cada recurso que um o deseja adquirir tem um
valor estipulado por seu propriet´ario. O PPay requer somente um intermedi´ario
envolvido quando os desejam abrir ou fechar suas contas, e em alguns casos, para
realizar opera¸oes em nome de outros os. Neste protocolo, os os ao respons´aveis
pelo seu pr´oprio dinheiro, sem necessidade do intermedi´ario.
Para garantir a seguran¸ca, o sistema utiliza certificados associados ao di-
nheiro virtual. Esses certificados ao obtidos quando um usu´ario obt´em um cr´edito
virtual e limitam quanto de dinheiro ele est´a autorizado a utilizar. O esquema de
micropagamento consiste em que as transa¸oes sejam sustentadas por baixos valo-
res trocados por usu´arios bem intencionados, mas, se um u su´ario mal-intencionado
desejar fazer um ataque, por mais que ele possa ter adquirido cr´editos de forma
normal, ele gastar´a rapidamente seu dinheiro virtual, no caso de um ataque de
DDoS (Distributed Denial of Service), por exemplo.
4.3.2 Sistemas de Escambo
Os sistemas baseados em Escambo, assim como o modelo de micropagamen-
tos, tamb´em ao respons´aveis por controlar o fluxo de recursos entre os participantes
da rede P2P, por´em ele se baseia na ideia de troca de recursos, onde um o apenas
adquire acesso aos recursos que deseja se possuir outros recursos para disponibilizar
no ambiente colaborativo. Dessa forma, participantes que ao parasitas (aqueles que
CAP
´
ITULO 4. REPUTAC¸
˜
AO EM REDES P2P 65
ao colaboram com os demais) ter˜ao acesso restrito `as vantagens que a rede propor-
ciona e, ent˜ao, ao encorajados a sa´ırem da condi¸ao de caronas para desfrutarem
integralmente a comunidade P2P.
A diminui¸ao dos os caronas propiciada pelo Escambo gera uma erie de
vantagens aos sistemas colaborativos. O n´umero reduzido de os caronas possibilita
uma melhor distribui¸ao do tr´afego da rede, p ois os recursos ficam mais espalhados
na topologia. A disponibilidade dos recursos na rede melhora, a que um maior
n´umero de informa¸oes est´a dispon´ıvel para os usu´arios leg´ıtimos. Em alguns pro-
tocolos P2P, ob tˆem-se vantagens tamb´em no tempo de resposta das solicita¸oes.
Al´em desses benef´ıcios ecnicos, o baixo n´umero de participantes caronas consegue
tornar a comunidade P2P mais justa e harmoniosa, colaborando socialmente para
o progresso do sistema.
O modelo de escambo modifica a estrutura normal das redes P2P para al-
can¸car os seus objetivos. Nele, um o que recebe uma solicita¸ao por um recurso
que det´em, deve antes de permitir o acesso, verificar se o o requisitante tamb´em
disp˜oe de recursos na rede P2P. O Escambo deve oferecer uma sistem´atica que pos-
sibilite reconhecer quais os ao caronas e quais ao o ao. A pol´ıtica de controle
de acesso aos recursos informa quais as condi¸oes que o o cliente deve suprir para
acessar os recursos do o servidor. Divide-se em trˆes categorias:
Tamanho total dos recursos compartilhados (medido em bytes);
N´umero de arquivos oferecidos;
Tipo de recursos disponibilizados.
O Escambo utiliza um modo simplificado de micropagamento. O micropaga-
mento introduz o conceito de pagamento pelo acesso a um recurso ou pedido de
atividade. Esse pagamento pode ser de dois tipos:
O o servidor ao recebe nenhum valor e o cliente paga-o geralmente com
trabalho (c´alculo de uma tarefa computacional complexa);
O cliente utiliza algum sistema de pagamento, por exemplo, d inheiro virtual,
para pagar o detentor dos recursos, o qual tem acesso ao montante recebido.
CAP
´
ITULO 4. REPUTAC¸
˜
AO EM REDES P2P 66
No caso espec´ıfico do Escambo, o o cliente paga o servidor atrav´es da oferta
de recursos na rede P2P. A reputa¸ao nos sistemas colaborativos P2P tradicionais
informa quais participantes da rede ao honestos ou bons servidores de recursos.
A reputa¸ao dos os ´e adquirida atrav´es das experiˆencias dos p r´oprios membros
da rede e das trocas de informa¸oes de reputa¸ao entre os pares que confiam um
no outro (Damiani et al., 2002). O conceito de reputa¸ao encontrado no Escambo
distancia-se do mencionado anteriormente, pois a reputa¸ao de cada o est´a asso-
ciada `a quantidade e qualidade do material que ele disponibiliza na rede P2P e ao
depende da opini˜ao de outros participantes do sistema (o o ´e o ´unico respons´avel
por sua reputa¸ao). As arquiteturas P2P, e nesse caso, especialmente o Escambo,
devem possuir mecanismos para evitar que o sistema de reputa¸ao seja en ganado. O
Escambo deve estar precavido contra usu´arios que alteram as mensagens passadas
entre os os em benef´ıcio pr´oprio.
4.3.3 EigenTrust
EigenTrust (Kamvar et al., 2003) ´e um algoritmo para gerˆencia de repu-
ta¸ao para sistemas de compartilhamento de arquivos. Cada o possui associada
uma reputa¸ao global, que ´e baseada no hist´orico de uploads de arquivos. A repu-
ta¸ao global de um o i ´e calculada com base nos ´ındices de reputa¸ao atribu´ıdos
localmente a i por cada o j , k, l , etc. e pesados de acordo com a pr´opria reputa¸ao
daqueles os. No estudo realizado, a abordagem ajudou a reduzir o n´umero de
arquivos corrompidos compartilhados. Os valores de confian¸ca atribu´ıdos por um
o ao normalizados. Isso ´e necess´ario para evitar que um o subverta o sistema
atribuindo reputa¸oes arbitrariamente altas a outros os maliciosos, influenciando
o valor de reputa¸ao global em um ataque combinado. Em um o i, a reputa¸ao do
o j ´e normalizada dividindo-se o valor de reputa¸ao de j em i pelo somat´orio de
todos os valores de reputa¸ao que i mant´em. Ou seja, todos os valores de reputa¸ao
atribu´ıdos por um o situam-se entre 0 e 1. As desvantagens dessa normaliza¸ao
ao duas. Primeiro, n ˜ao a distin¸ao entre os novos e a reputa¸ao. Segundo, os
valores ao relativos e, portanto, ao podem ser interpretados de forma absoluta.
CAP
´
ITULO 4. REPUTAC¸
˜
AO EM REDES P2P 67
Por exemplo, se em i dois os j e k possuem o mesmo valor de reputa¸ao r, ent˜ao
se sabe que aos olhos de i , j e k ao igualmente reput´aveis, mas ao se sabe se
ambos tˆem boa ou a reputa¸ao. Para agregar os valores normalizados computados
por cada n ´o, um o i pergunta aos seus os vizinhos, contidos em sua tabela de
os, sobre os valores de reputa¸ao que eles atribu´ıram a um o k , e usa uma edia
ponderada com as reputa¸oes deles p ara calcular a confian¸ca de i em k .
Para aumentar o conhecimento, um o pode pedir a opini˜ao dos vizinhos
dos vizinhos, e assim por diante, recursivamente, at´e atingir a rede inteira. ao ´e
poss´ıvel permitir que cada o seja respons´avel por calcular e reportar sua pr´opria
reputa¸ao. Portanto, a reputa¸ao de um o ´e calculada por mais de um o na rede,
e armazenada em outro o. M´ultiplos os computam o escore de um o, e uma
pesquisa DHT ´e usada para encontrar tais os. O algoritmo proposto evita que um
o saiba a identidade do o para o qual ele est´a calculando a confian¸ca, de forma
que um o malicioso ao possa aumentar artificialmente a reputa¸ao de outro o
malicioso. os que entram no sistema ao podem escolher qual a posi¸ao em que
entram no espa¸co de IDs, evitando que um o retorne exatamente na posi¸ao do
o respons´avel por calcular a sua reputa¸ao.
Valores globais de reputa¸ao podem ser usados ent˜ao para isolamento de
os maliciosos. Um o usa a reputa¸ao dos candidatos como pol´ıtica de sele¸ao
de onde ir´a baixar um arquivo. Entretanto, uma escolha desse tipo concentra as
requisi¸oes nos os com reputa¸ao mais alta e ao permite que outros os corretos
adquiram reputa¸ao. A proposta ´e usar um esquema onde o o ´e selecionado de
forma semi-aleat´oria, com influˆencia da reputa¸ao. Segundo (Marti and Garcia-
Molina, 2006), EigenTrust oferece uma solu¸ao puramente descentralizada, mas usa
uma identidade fraca, tornando-o suscet´ıvel a ataques de whitewashing, que ´e um
tipo de artif´ıcio de que um o se utiliza, saindo da rede e entrando novamente
para obter um novo identificador, pois isso permite que a a reputa¸ao anterior
seja perdida. Al´em disso, (Cheng and Friedman, 2005) indicam que EigenTrust ´e
suscet´ıvel ao ataque Sybil (Douceur, 2002), uma vez que um o malicioso pode criar
uma subpor¸ao inteira do grafo da rede. O ataque Sybil permite que um ´unico o
CAP
´
ITULO 4. REPUTAC¸
˜
AO EM REDES P2P 68
falsifique a existˆencia de arias identidades dentro da rede. Este tipo de ataque ´e
complexo de ser resolvido em um sistema amplamente distribu´ıdo, mas pode ser
controlado atrav´es da existˆencia de autoridades certificadoras.
4.3.4 XRep
Em (Damiani et al., 2002), prop˜oe-se um esquema para gerˆencia de repu-
ta¸ao para a rede Gnutella. Diferentemente de outras abordagens, a reputa¸ao de
os ´e combinada com a reputa¸ao de recursos, aumentando a resistˆencia contra
ataques do tipo Sybil. Reputa¸oes ao cooperativamente gerenciadas atrav´es de um
algoritmo distribu´ıdo de polling de maneira a refletir a vis˜ao da comunidade sobre o
risco de download e uso de um recurso. O protocolo proposto pelos autores estende
o p rotocolo de bu sca do Gnutella com passos e mensagens adicionais, facilitando
a atrib ui¸ao, o compartilhamento e a combina¸ao de reputa¸oes de os e recursos.
O princ´ıpio asico do esquema ´e o protocolo XRep, uma extens˜ao ao protocolo
de busca do Gnutella. No Gnutella, um o inicia uma busca enviando mensagens
(QUERY ) aos seus vizinhos; todos os os que encontram o objeto requisitado re-
tornam mensagens de resposta atrav´es do mesmo caminho pelo qual vieram. Ap´os
receber m´ultiplas respostas positivas (mensagens QUERY
HIT ), o o pergunta a
outros os opini˜oes sobre os os que ofereceram o recu rso buscado. O processo de
polling ´e composto de cinco fases, mostradas na Figura 4.3 e descritas abaixo:
1. Busca de recursos - Nesta fase, nas mensagens QUERY HIT que ao re-
tornadas pelos os que detˆem um ou mais objetos que satisfazem a busca,
acrescenta-se um digest para cada objeto referenciado na mensagem;
2. Sele¸ao de recurso e voto por polling - O o requisitante escolhe o melhor
o dentre aqueles que parecem satisfazer sua busca (ou seja, que responderam).
Para tanto, o o envia uma mensagem a seus vizinhos contendo uma requisi¸ao
de voto sobre a reputa¸ao dos objetos oferecidos e dos os que os oferecem.
Estas mensagens ao implementadas usando mensagens convencionais QUERY
e contˆem uma chave p´ublica a ser usada na cifragem da resposta, para proteger
CAP
´
ITULO 4. REPUTAC¸
˜
AO EM REDES P2P 69
a integridade e a confidencialidade das respostas. os que recebem a pergunta
verificam seus reposit´orios de experiˆencia e respond em;
3. Avalia¸ao dos votos - O o descarta mensagens adulteradas e os autores
indicam que um o faz tamem um agrupamento e combina¸ao de votos que
ao oriundos de um mesmo o para evitar ataques Sybil. Ap´os o descarte, o
o seleciona um conjunto de votantes e envia uma outra mensagem de polling
(TRUEVOTE) direto a cada um para que respondam confirmando seus votos,
obrigando os atacantes a usarem IPs reais;
4. Verifica¸ao de melhor o - O o mais confi´avel ´e contactado para verificar
se ele realmente disp˜oe do recurso;
5. Download do recurso - O n ´o requisitante contacta o o que disp˜oe do
recurso e solicita o download do mesmo, depois disso ele verifica a integridade
do recurso recebido atrav´es do digest e atualiza seu reposit´orio de experiˆencias.
4.3.5 PeerTrust
PeerTrust (Xiong and Liu, 2004) ´e um framework de reputa¸ao que inclui
um modelo de confian¸ca adaptativo para quantificar e comparar a confian¸ca de
os baseado em um sistema de transa¸oes com feedback, e uma implementa¸ao
descentralizada de tal modelo em uma rede P2P. As d uas caracter´ısticas principais
do PeerTrust ao a defini¸ao de trˆes parˆametros asicos de confian¸ca e dois fatores
adaptativos na computa¸ao do grau de confian¸ca em um o e a defini¸ao de uma
m´etrica geral de confian¸ca para combinar esses parˆametros. Os fatores que um o
leva em considera¸ao no alculo de n´ıvel de confian¸ca no PeerTrust ao:
Feedback recebido de out ros os, n a forma d e um valor;
Escopo do feedback, tal como o n´umero de transa¸oes que um o possui com
outro;
CAP
´
ITULO 4. REPUTAC¸
˜
AO EM REDES P2P 70
Figura 4.3: Fases do protocolo XREP.
Fator de credibilidade para um o que forneceu o feedback, diferenciando a
qualidade do feedback recebido de outros os de acordo com a confian¸ca nos
mesmos;
Fator de contexto de transa¸ao para diferenciar as mais importantes das menos
importantes, associando pesos `as transa¸oes;
CAP
´
ITULO 4. REPUTAC¸
˜
AO EM REDES P2P 71
Fator de contexto da comunidade para tratar caracter´ısticas relacionadas `a
comunidade e vulnerabilidades peculiares, por exemplo, criar um incentivo `a
submiss˜ao de feedback sobre outros os.
Para implementa¸ao desse modelo de confian¸ca, cada o possui um gerente
de confian¸ca e um localizador de dados. O primeiro ´e respons´avel pela submiss˜ao de
feedback e avalia¸ao de confian¸ca atrav´es de um banco de dados com um segmento
da base global. a o localizador de dados serve para aloca¸ao e localiza¸ao de dados
de confian¸ca na rede P2P (overlay) .
O gerente executa duas fun¸oes principais. A primeira ´e a submiss˜ao do
feedback para rede atrav´es do localizador, que roteia a informa¸ao para outros os.
A segunda fun¸ao ´e a avalia¸ao do n´ıvel de confian¸ca de um determinado o, que
´e executado em dois passos. Primeiro, ele coleta informa¸oes de confian¸ca sobre o
o em quest˜ao atrav´es do localizador, e ent˜ao calcula o valor de confian¸ca. Dois
m´etodos ao p ropostos para alculo do n´ıvel de confian¸ca: alculo dinˆamico de
confian¸ca (DTM, Dynamic Trust Computation), que emprega informa¸oes recentes
obtidas sob demanda de todos os outros os da rede e a computa¸ao aproximada
de confian¸ca (ATC, Approximate Trust Computation), que ´e mais eficiente, por´em
menos precisa, pois calcula a confian¸ca por informa¸oes presentes em uma cache.
Cada o mant´em uma cache contendo os valores de confian¸ca fornecidos por outros
os com que ele recentemente se comunicou, sendo que isso o ´e preciso quando
ele ao encontra um o em sua cache. Essa ´e uma caracter´ıstica interessante do
protoloco PeerTrust, pois diminui bastante o tr´afego de requisi¸oes na rede.
Quando a reputa¸ao de um o ´e baseada na m´edia cumulativa de suas
transa¸oes de seu tempo de vida, e um o adquiriu uma olida reputa¸ao, as
transa¸oes atuais tˆem pouco impacto na reput a¸ao e, portanto um o possui menor
incentivo para se comportar de forma honesta. Um o pode, mesmo assim, oscilar
entre um comportamento honesto e desonesto de forma a manter uma reputa¸ao
razo´avel, apesar de agir incorretamente em determinadas transa¸oes. Os aut ores
prop˜oem um algoritmo simples de janela de tempo deslizante. Os valores de con-
fian¸ca ao computados de forma global e recente, e ent˜ao ao comparados. A ideia
CAP
´
ITULO 4. REPUTAC¸
˜
AO EM REDES P2P 72
´e que uma boa reputa¸ao seja dif´ıcil de atingir, leve tempo para constru ir, por´em
possa ser destru´ıda rapidamente ap´os poucas transa¸oes incorretas. Para evitar
problemas de seguran¸ca relativos ao armazenamento e transmiss˜ao das informa¸oes
de confian¸ca, o PeerTrust emprega criptografia com chaves p´ublicas e privadas.
Cada o ´e obrigado a ter um par de chaves e assinar suas mensagens de feedback
com sua chave privada, e fornecer a chave p´ublica, garantido a integridade e au-
tenticidade. O identificador de cada o ´e um digest de sua chave p´ublica, ou sua
pr´opria chave p´ublica.
4.4 Considera¸oes Finais
Neste cap´ıtulo, foram apresentados os conceitos asicos de reputa¸ao em
redes P2P e os principais sistemas que aplicam essas ecnicas. Sabe-se que quanto
mais ao criados sistemas refinados para controle de reputa¸ao, mais os atacantes
se adaptam a estes ambientes. Reunir todas as solu¸oes que possam tornar a rede
segura e garantir recursos ´ıntegros ´e um grande desafio, al´em de adicionar risco no
comprometimento do desempenho da rede com excesso de execu¸ao de mecanismos
de controle. Apesar das contribui¸oes apresentadas por cada um dos sistemas serem
validas, a an´alise da natureza da aplica¸ao no qual ser˜ao aplicadados tamem deve
ser consideradas.
Cap
´
ıtulo 5
Protocolo de Reputa¸ao
P2PWSRep
Os protocolos de reputa¸ao em redes P2P em um papel importante na
seguran¸ca da rede. Esses protocolos ao respons´aveis por auxiliar os os a encontrar
a fonte mais confi´avel de um determinado recurso que desejam obter. Normalmente
os protocolos baseiam-se em experiˆen cias anteriores para calcular um valor num´erico
que represente um valor de confian¸ca com rela¸ao a um determinado o possuidor
do recurso ou ao pr´oprio recurso. Dentro da rede, o protocolo P2PWSRep, proposto
neste trabalho, far´a o gerenciamento de reputa¸ao de os e recursos, sendo projetado
com a tecnologia de servi¸cos web para possibilitar uma melhor integra¸ao com outras
tecnologias e a extensibilidade do seu odigo, al´em de permitir que o tr´afego da rede
P2P possa passar por firewalls e outros elementos de prote¸ao.
5.1 Introdu¸ao
O P2PWSRep ´e um protocolo de gerenciamento de reputa¸ao dos os da
rede P2PWS
1
e de seus recursos compartilhados. Os recursos podem ser de diversos
1
Neste trabalho, o termo P2PWS refere-se `a rede que segue a defini¸ao da arquitetura de
servi¸cos web para redes P2P e o termo P2PWSRep ´e referente ao protocolo de reputa¸ao utilizado
por redes P2P, orientadas a servi¸cos ou ao.
73
CAP
´
ITULO 5. PROTOCOLO DE REPUTAC¸
˜
AO P2PWSREP 74
tipos, depen dendo da natureza da aplica¸ao P2P. Assim, para uma rede de comparti-
lhamento de arquivos, existem arquivos de dados, m´usicas, v´ıdeos; para uma rede
de relacionamento, existe o perfil do integrante; para uma grade de computadores,
tem-se a capacidade de processamento, etc. O P2PWSRep ser´a capaz de controlar
qualquer um destes recursos, devido ao seu projeto permitir sua extensibilidade e
portabilidade para diversas aplica¸oes P2P.
O P2PWSRep tem uma arquitetura descentralizada, isto ´e, ao a um servi-
dor central para autenticar usu´arios ou auxiliar na busca de recursos na rede. Essas
duas caracter´ısticas adicionam dois problemas, que ao: como um o ir´a ingressar
na rede e como um recurso compartilhado ser´a localizado. O primeiro problema ´e
causado pela caracter´ıstica dinˆamica das redes P2P, a que os os entram e saem da
rede overlay de forma ao previs´ıvel e pode ser solucionado por uma estrat´egia de
pong caching, onde uma resposta ao Ping leva consigo uma lista de os vizinhos com
endere¸cos pr´e-configurados para que o o possa ingressar na rede com um conheci-
mento m´ınimo de alguns os. O segundo problema pode ser contornado utilizando
uma estrat´egia chamada cega, onde a consulta ´e encaminhada para o maior n´umero
de os poss´ıveis, sem levar em considera¸ao consultas pr´evias.
O protocolo P2PWSRep se baseia no protocolo Gnutella vers˜ao 0.4, mas suas
interfaces foram definidas para funcionar em qualquer arquitetura de rede P2P. O
motivo desta escolha ´e validar seu funcionamento em uma arquitetura totalmente
desestruturada, sem qualquer mecanismo de otimiza¸ao de ingresso e busca de re-
cursos. Assim, pode-se observar como o protocolo ir´a funcionar com problemas
a conhecidos dessas redes, tais como, comprometimento da largura de banda e
escalabilidade, quando a rede possui milhares de os.
O mecanismo de roteamento das mensagens ´e similar ao Gnutella, conhecido
como inunda¸ao, onde uma mensagem ´e enviada para todos os vizinhos exceto o que
originou a mensagem. Esta forma de encaminhamento ´e chamada de cega e gera um
itenso tr´afego na rede. O n´umero de vezes que as mensagens ser˜ao encaminhadas
depende do valor de um campo de cabe¸calho TTL (time to live), que impede que
uma mensagem seja encaminhada na rede indefinidamente. Em uma estrat´egia
CAP
´
ITULO 5. PROTOCOLO DE REPUTAC¸
˜
AO P2PWSREP 75
guiada uma consulta ´e encaminhada com base em similaridade, isto ´e, toda vez que
uma mensagem for enviada, o o analisa e procura todos os os que a responde-
ram a consultas parecidas, enao envia a mensagem para estes os. Esta est rat´egia
apresenta uma redu¸ao consider´avel do n´umero de mensagens na rede.
A p roposta de definir um protocolo de reputa¸ao para redes P2P foi motivado
pelo fato da maioria das redes P2P existentes ao possu´ırem mecanismos efetivos
para evitar a presen¸ca de os ego´ıstas e maliciosos, bem como restri¸oes para barrar
ou detectar a inser¸ao de conte´udo corrompido. A elimina¸ao desses problemas e
controle de uma erie de ataques, que foram mencionados neste trabalho, sendo os
mais comuns o whitewashing, sybil e ataque do traidor, al´em de incompatibilidades
de opera¸oes e metadados dessas redes, fez com que o prot´otipo da rede P2PWSRep
fosse totalmente port´avel para todas as aplica¸oes que desejem integr´a-lo. Por
exemplo, caso um site de vendas queira utilizar o controle de reputa¸ao do protocolo
P2PWSRep, ent˜ao poder´a, atrav´es da interface de servi¸cos web do protocolo fazˆe-lo,
a que o protocolo ao ´e voltado especificamente ao conte´udo que ´e disponibilizado,
mas `a qualidade de quem oferece e do que ´e oferecido. Para possibilitar que o
protocolo possa ser facilmente adaptado para suportar novos ataques, e utilizado
por diversos tipos de aplica¸oes P2P, a tecnologia de servi¸cos web foi utilizada para
facilitar tal integra¸ao.
A incompatibilidade refere-se aos metadados das diferentes redes P2P, difi-
cultando a reutiliza¸ao d e recursos, e por vezes, a comunica¸ao entre estas redes.
Por isso, os metadados foram propostos de tal forma que facilitem a integra¸ao,
sem necessidade de elementos intermedi´arios, como gateways, diminuindo assim o
volume de arquivos duplicados na rede, mas mantendo os identificadores de cada
um, a que utilizam mecanismos diferentes de gera¸ao de identificadores.
Dois fatores contribu´ıram para a escolha de uma infraestrutura baseada em
servi¸cos web: o crescente n´umero de aplica¸oes que utilizam essa tecnologia, fa-
cilidade de configura¸ao sem que haja muitas interven¸oes por parte dos admi-
nistradores de rede, a que o tr´afego das requisi¸oes passa atraes de elementos de
prote¸ao, tais como firewalls, proxies, IPS (Intrusion Prevent System), etc., pois
CAP
´
ITULO 5. PROTOCOLO DE REPUTAC¸
˜
AO P2PWSREP 76
os pacotes HTTP est˜ao liberados na maioria dos mesmos, al´em da simplicidade da
infraestrutura orientada a servi¸cos e de suas requisi¸oes. Al´em disso, a utiliza¸ao
desta tecnologia proporciona a interoperabilidade com outros servi¸cos, oferecendo
portabilidade para a aplica¸ao e uma flexibilidade para que a mesma seja esten-
dida, apenas agregando-se novos servi¸cos web. Os metadados da infraestrutura
ser˜ao escritos em XML. Isso facilitar´a a integra¸ao com outras ferramentas de com-
partilhamento e at´e mesmo com outras infraestruturas orientadas a servi¸cos.
5.2 Descri¸ao da Arquitetura P2PWSRep
5.2.1 Modelagem dos Casos de Uso
As funcionalidades asicas do protocolo P2PWSRep est˜ao representadas
nos casos de uso que se seguem. Atrav´es dos mesmos, tem-se uma vis˜ao geral do
funcionamento e o papel desempenhado por cada o no sistema. Os casos de uso
est˜ao divididos em trˆes categorias: Caso de Uso Ingressar na Rede, Caso de Uso
Realizar Pesquisa de Recursos, Caso de Uso de Atualizar Reputa¸ao.
O primeiro caso de uso, Ingressar na Rede P2P, est´a apresentado na Figura
5.1. Nota-se que ele executa trˆes outros casos de u so para realizar toda a opera¸ao.
Tudo come¸ca com um o que pretende entrar na rede. Assim, ele deve contactar um
o que a faz parte da mesma, chamado de anfitri˜ao, passando seus dados. Os dados
podem incluir informa¸oes d e capacidade (que ser˜ao verificadas), disponibilidade de
recursos compartilhados, como quantidade e volume em kilobytes.
Ao receber os dados do o interessado em participar da rede, ´e gerado um
identificador atrav´es de um algoritmo de gera¸ao de n´umeros randˆomicos, SHA-1
(Secure Hash Algorithm). O identificador ´e chamado de peerID e passa a servir como
uma identidade ´unica do o em toda rede. O identificador ´e transferido para o novo
o, juntamente com a tabela de os vizinhos do o anfitri˜ao. A tabela ´e chamada
de TabPeer e seus campos ao basicamente o identificador de cada o conhecido e
seu endere¸co corrente. Como ao utilizados servi¸cos web para comunica¸ao, enao
este endere¸co ´e representado por uma url para o servi¸co. Ao peerID ´e associado um
CAP
´
ITULO 5. PROTOCOLO DE REPUTAC¸
˜
AO P2PWSREP 77
carimbo de tempo para permitir que se conhe¸ca quando o o ingressou na rede. Ao
final das etapas, o o a faz parte da red e P2P e todas as vezes que o o se conectar
`a rede, ele envia para seus vizinhos seu peerID para infomar que est´a ativo. Isso
possibilita a seus vizinhos medir disponibilidade do o. Segundo (Stallings, 2007), a
possibilidade de duplica¸ao de um identificador gerado por um algoritmo de umeros
aleat´orios com chave de 160 bits ´e muito improv´avel, sendo suficientemente seguro
para uma rede P2P.
Figura 5.1: Caso de uso de ingresso na rede
O Caso de Uso Realizar Pesquisa de Recursos ´e o que executa mais opera-
¸oes, e ´e mostrado na Figura 5.2. Inicialmente, o o interessado em um recurso
faz uma pesquisa na rede P2P. A pesquisa ´e enviada para todos os os vizinhos
contidos em sua TabPeer que est˜ao on-line, atraes de uma mensagem que cont´em
a descri¸ao do recurso buscado (string) em seu cabcalho, al´em de outros dados do
protocolo que ser˜ao detalhados nas pr´oximas se¸oes.
A Figura 5.3 mostra o roteamento das men sagens da rede P2PWS. As setas
CAP
´
ITULO 5. PROTOCOLO DE REPUTAC¸
˜
AO P2PWSREP 78
Figura 5.2: Caso de uso de busca de recursos
cont´ınuas representam as requisi¸oes de busca e as setas tracejadas a resposta da
requisi¸ao de busca. O o E inicia uma busca pelo arquivo rock. Uma mensagem ´e
gerada com a string de busca e TTL igual a 3, al´em de identifica¸ao do o de origem,
timestamp, id da mensagem e outras informa¸oes. A mensagem ´e enviada a todos os
os ligados diretamente a ele. Os os B e C respondem positivamente. Note-se que
o o B envia a mensagem de resposta pelo mesmo caminho que recebeu a requisi¸ao,
isto ´e, atraes do o A. As mensagens de A-D, C-D e D-B ao descartadas por opia
duplicada.
CAP
´
ITULO 5. PROTOCOLO DE REPUTAC¸
˜
AO P2PWSREP 79
Figura 5.3: Roteamento das mensagens na rede P2PWS.
Ao receber a resposta dos os que contˆem os recursos, o o que iniciou a busca
tamem iniciar´a a obten¸ao da reputa¸ao dos os e recursos dispon´ıveis. Ap´os ter
a reputa¸ao dos os e dos recursos, ´e realizado um ranqueamento dos recursos en-
contrados, o qual ´e mostrado ao usu´ario, como se vˆe na Figura 5.4. O usu´ario, ao
escolher o recurso que pretende fazer o download, ´e feita uma verifica¸ao de capaci-
dade do o fornecedor. Essa verifica¸ao tem como objetivo avaliar a disponibilidade
do o em atender a requisi¸ao, para que ao venha a sobrecarreg´a-lo. O o estando
apto a atender, o download do arquivo ent˜ao ´e iniciado. Percebe-se, no Caso de Uso
da Figura 5.2, que a um estere´otipo << extend >> mostrando que nem sempre
o download ´e realizado por problemas de capacidade do o fornecedor, no entanto,
estat´egias de enfileiramento podem ser empregadas para diminuir a sobrecarga do
fornecedor e atender futuramente a requisi¸ao.
Por ´ultimo, ap´os o download do recurso, ´e realizado o Caso de Uso Atualizar
Reputa¸ao, apresentado na Figura 5.6. A atualiza¸ao ´e realizada positivamente caso
o download ocorra com sucesso, isto ´e, sem interrup¸ao, mas mesmo que o arquivo
baixado ao tenha tido problemas na transmiss˜ao, ´e verificada a integridade do
arquivo. Para isso, ´e gerado um hash do mesmo e iniciada uma consulta `a rede,
CAP
´
ITULO 5. PROTOCOLO DE REPUTAC¸
˜
AO P2PWSREP 80
Figura 5.4: Obten¸ao da reputa¸ao de um o da rede.
similar `a busca de reputa¸ao de n ´os e recursos. Logo os os que conhecem o recurso,
ir˜ao responder com o odigo do arquivo para aquele o. A Figura 5.5 mostra o
download sendo realizado diretamente do o escolhido. Por´em, antes do download
´e realizada uma requisi¸ao ao o, que verifica sua capacidade de atendimento da
requisi¸ao.
Existe uma tabela espec´ıfica para reputa¸ao dos recursos (tabResourceRepu-
tation). Isso possibilita que nas pr´oximas buscas de reputa¸ao do recurso, o mesmo
seja identificado como conte´udo polu´ıdo. Para cada entrada desta tabela, ir´a existir
o identificador do o, o identificador do recurso e o odigo de erro. Esse odigo de
erro informa se o arquivo ´e corrompido, ao autˆentico, com v´ırus ou verme, etc.
Uma notifica¸ao ´e enviada ao o que forneceu o arquivo para que ele possa remover
o arquivo de seu reposit´orio de arquivos compartilhados. A reputa¸ao do o que
forneceu o recurso tamem ´e decrementada, a que o mesmo foi negligente em deixar
um recurso ao ´ıntegro na rede.
Ae o momento, a identifica¸ao dos recursos ao havia sido mencionada.
Cada recurso possui um identificador ´unico, chamado resourceID, gerado por um
algoritmo de hash, SHA-1, com um tamanho de chave 160 bits. O mecanismo de
gera¸ao ´e o mesmo utilizado para gerar o peerID.
CAP
´
ITULO 5. PROTOCOLO DE REPUTAC¸
˜
AO P2PWSREP 81
Figura 5.5: Download realizado diretamente do o escolhido
Figura 5.6: Caso de uso de gerenciamento de reputa¸ao
5.3 Metadados
Para a realiza¸ao do gerenciamento de reputa¸ao, dados referentes aos os,
recursos e outras informa¸oes ao necess´arios. Agora, ser´a apresentada a modelagem
CAP
´
ITULO 5. PROTOCOLO DE REPUTAC¸
˜
AO P2PWSREP 82
dos dados necess´arios ao funcionamento do p rotocolo P2PWSRep. Cada o cont´em
cinco tabelas, sendo duas para controle dos os e recursos compartilhados, duas
para controle da reputa¸ao dos os e controle da reputa¸ao dos recursos presentes
na rede e uma quinta tabela ´e u sada para guardar informa¸oes pertinentes ao o, tais
como seu identificador, descri¸ao, localiza¸ao, informa¸oes para controle de valor de
hops adaptativo, reputa¸ao conhecida atraes de outros os na rede, localiza¸ao dos
metadados de os e recursos, data do ingresso na rede, etc.
5.3.1 Metadados de os
Os metadados dos os ao informa¸oes para controle dos os e da reputa¸ao.
ao tabelas que ao possuem um n´umero muito grande de dados, somente de seus
vizinhos, para que as buscas realizadas localmente pelo o nestas tabelas ao possam
comprometer o desempenho do protocolo. ao trˆes as tabelas que armazenam dados
dos os. A Tabela 5.1 - Tabela de os (tabPeer), armazena informa¸oes sobre os
os vizinhos, isto ´e, os os que se ligam diretamente ao pr opriet´ario da tabela.
Nome do Campo Descri¸ao
peerID Identificador gerado por uma fun¸ao hash. O algoritmo
utilizado para gera¸ao da chave ´e o SHA-1, com
um hash de 160 bits.
peerUrl Endere¸co de conex˜ao do servi¸co.
´
E dado atraes do
IP corrente e o port type do servi¸co. O endere¸co IP
utiliza a vers˜ao IPv4.
joiningDate Data do ingresso na rede. Utilizado para verificar
desde quando o o est´a presente na rede.
´
E importante para determina¸ao da confiabilidade do o,
bem como sua disponibilidade.
protoVersion Vers˜ao do protocolo P2PWSRep.
Tabela 5.1: Tabela de os.
A Tabela 5.2, Tabela de Reputa¸ao de os, ´e referente aos metadados dos
CAP
´
ITULO 5. PROTOCOLO DE REPUTAC¸
˜
AO P2PWSREP 83
os, ´e chamada de tabPeerReputation, armazena as informa¸oes necess´arias para
controle de reputa¸ao dos os presentes na rede. A tabela conem apenas os que
a interagiram com o propriet´ario da tabela. Cada o possui sua tabela de reputa¸ao.
Nome do Campo Descri¸ao
peerID Identificador do o conhecido.
satTrans N´umero de transa¸oes satisfat´orias com este o.
unsatTrans N´umero de transa¸oes insatisfat´orias com este o.
previousRep Valor da reputa¸ao, para o o buscado, obtida
anteriormente. Isto possibilita que este valor
seja utilizado para considerar a evolu¸ao do
o com rela¸ao `a reputa¸ao atual.
Tabela 5.2: Tabela de reputa¸ao dos os.
A Tabela 5.3, Tabela de Configura¸oes (tabSettings), armazena as informa¸oes
de configura¸ao dos os, contendo dados importantes para o funcionamento dos
mesmos e da pr´opria rede.
Nome do Campo Descri¸ao
peerID Identificador do o.
nodeName Nome do o (32 caracteres).
description Descri¸ao do o. (64 caracteres).
location localiza¸ao do o (pa´ıs).
reputation Reputa¸ao recente do o. Este dado ´e obtido de outros
os e ao pode ser atribu´ıdo ou calculado pelo pr´oprio o.
Tabela 5.3: Tabela de configura¸ao do o.
O campo reputation tem como finalidade fazer com que o usu´ario conhe¸ca
sua rep uta¸ao na rede. O processo de obten¸ao da reputa¸ao para o pr´oprio o ´e
o mesmo que ´e realizado para busca de reputa¸ao de qualquer outro o, podendo
este valor ser atualizado toda vez que o o se conecta na rede ou periodicamente.
CAP
´
ITULO 5. PROTOCOLO DE REPUTAC¸
˜
AO P2PWSREP 84
5.3.2 Metadados de Recursos
Os metadados dos recursos, assim como dos os, armazenam dados referentes
aos recuros compartilhados na rede e dados necess´arios para controle da reputa¸ao
pelo protocolo P2PWSRep. ao duas as tabelas, a primeira ´e a tabResource, que
armazena informa¸oes sobre os recursos que o o compartilha, sendo sua apresentada
na Tabela 5.4.
Nome do Campo Descri¸ao
resourceID Identificador do recurso gerado por uma fun¸ao hash.
O tamanho do hash ´e de 160 bits, gerado atrav´es do
algoritmo SHA-1.
name Nome do recurso na rede.
description Descri¸ao do recurso.
resourceCount Contador de acesso para o recurso. Pode ser utilizado
para fornecer estat´ısticas dos recursos mais buscados na
rede.
Tabela 5.4: Tabela de recursos.
A Tabela 5.5 - Tabela de Reputa¸ao de Recursos (tabResourceReputation)
armazena a reputa¸ao dos recursos. Ela ´e semelhante a uma lista negra de recur-
sos presentes na rede, o que de forma descentralizada, onde cada o manem a
reputa¸ao de recursos.
´
E importante salientar que o protocolo P2PWSRep ´e distribu´ıdo, assim o
gerenciamento da reputa¸ao de os e recursos ´e realizado por cada o, tendo em
suas tabelas valores que ao necessariamente ao iguais em toda rede, pois ao a
uma sincroniza¸ao de dados das tabelas entre os os.
5.4 O Protocolo P2PWSRep
Nesta se¸ao ser´a descrito o protocolo P2PWSRep, com detalhes do rotea-
mento de mensagens e do alculo de reputa¸ao. Cada o possui uma tabela do
CAP
´
ITULO 5. PROTOCOLO DE REPUTAC¸
˜
AO P2PWSREP 85
Nome do Campo Descri¸ao
resourceID Identificador do recurso.
peerID Identificador do o que cont´em o recurso.
errorType Tipo de erro do recurso:
1 - recurso corrompido;
2 - recurso conem v´ırus ou verme;
3 - recurso adulterado;
4 - recurso inexistente na origem.
Tabela 5.5: Tabela de reputa¸ao de recursos.
hist´orico das transa¸oes satisfat´orias (satTrans) e insatisfat´orias (unsatTrans) com
os demais os. Na infraestrutura proposta, a tabela armazena apenas o somat´orio
dessas transa¸oes, sendo que ao a informa¸ao temporal de cada uma delas. Para
que o comportamento da reputa¸ao do o com rela¸ao ao tempo seja considerado,
ser´a armazenada para cada o a ´ultima reputa¸ao obtida. Esse valor ser´a impor-
tante para o m´etodo que ser´a aplicado para o alculo da reputa¸ao, a que ser´a
utilizada uma s´erie temporal, a m´edia ponderada exponencial.
A Tabela 5.2 (Reputa¸ao de os) ´e chamada de tabPeerReputation. Cada
linha da tabela mostra o o que a forneceu dados compartilhados e o umero de
transa¸oes que foram completadas com sucesso e as que falharam por diversos mo-
tivos, tais como: interrup¸ao da conex˜ao, baixa qualidade de conex˜ao, arquivo ao
encontrado, etc. O proto colo P2PWSRep ao considera o contexto da transa¸ao,
apenas avalia se ela foi completada ou ao. Para cada o tamb´em ´e guardado o
valor da ´ultima reputa¸ao obtida da rede, no campo previousRep. Esse dado ´e in-
teressante no alculo da reputa¸ao atual em rela¸ao com sua m´edia hist´orica. Caso
ao exista este valor, isto ´e, o o nunca teve troca de dados com o requisitante,
enao ele ao ser´a considerado no alculo.
Quando um o faz a pesquisa de um recurso, recebe a listagem de todos os
os que cont´em o recurso e sua localiza¸ao. A rede segue o princ´ıpio do anonimato
dos os, a que ´e utilizado um identificador espec´ıfico, que ao revela quem ´e quem
CAP
´
ITULO 5. PROTOCOLO DE REPUTAC¸
˜
AO P2PWSREP 86
dentro da rede. Essa identifica¸ao ´e feita atrav´es do identificador peerID, obtido
uma ´unica vez, no momento do ingresso na rede.
´
E interessante destacar que o
anonimato do o ao ´e real, sendo tamb´em chamado de pseudoanonimato, a que
alguns dados ao imposs´ıveis de ocultar. Um exemplo ´e o endere¸co IP que o o est´a
utilizando na conex˜ao.
A busca ´e desestruturada, sendo baseada no protocolo Gnutella v0.4. As
requisi¸oes de buscas ao enviadas para todos os vizinhos. Cada requisi¸ao leva
consigo uma string com a descri¸ao do recurso buscado e um n´umero de vezes que
a requisi¸ao deve ser encaminhada. Em cada o que a requisi¸ao chega, este valor
´e decrementado e, quando atingir o valor zero, a requisi¸ao ´e removida da rede. A
resposta ´e enviada pelo mesmo caminho que a requisi¸ao de busca percorreu. Isto
´e poss´ıvel devido a forma de roteamento das mensagens, que ´e realizada da mesma
forma do protocolo Gnutella v0.4. Cada o gu arda o identificador da requisi¸ao
de busca. Quando uma resposta chega ao o, ele verifica se houve a passagem
dessa requisi¸ao; se houve, a requisi¸ao ´e encaminhada ao pr´oximo o em dire¸ao
ao destino, caso contr´ario ela ´e exclu´ıda. Isso evita que requisi¸oes falsas sejam
inseridas na rede e que haja um aumento do umero de respostas devido `a inunda¸ao
natural de redes com estrat´egia cega.
Localizados os recursos, o pr´oximo passo ´e obter a reputa¸ao dos os que
possuem os recursos. Assim, o o requisitante envia para todos os os que ele
possui na sua tabela de os uma requisi¸ao da reputa¸ao dos os que possuem o
recurso desejado. Essa requisi¸ao ´e encaminhada para todos os os em profundidade
e por inunda¸ao. O n´umero de encaminhamentos ´e controlado atrav´es dos campos
hops e TTL, contidos no cabcalho da requisi¸ao.
Uma alternativa para o mecanismo de envio de mensagens do protocolo
P2PWSRep ´e fazer com que o valor TTL seja adaptativo. Para isso baseou-se
no protocolo de inicializa¸ao lenta (slow start) (Jacobson, 1988). Assim, a men-
sagem de busca ´e enviada com um valor de TTL baixo, se ao existir nenhuma
resposta `a busca, ent˜ao o valor do TTL ´e incrementado em 1. Ser´a estabelecida
uma janela de tempo para a espera axima das respostas. Caso as respostas `as
CAP
´
ITULO 5. PROTOCOLO DE REPUTAC¸
˜
AO P2PWSREP 87
buscas estejam demorando muito, isso pode significar que a profundidade ´e grande
demais para causar uma latˆencia na rede. Este valor fica armazenado temporaria-
mente, at´e que o o se desconecte, para que nas pr´oximas mensagens de busca seja
utilizado o melhor valor de profundidade de busca.
Antes de enviar o resultado, ´e feito o alculo da reputa¸ao. O alculo ´e
realizado pela ormula 5.1:
reputation
i,j
=
sat (i, j) unsat (i, j)
sat (i, j)
O alculo da reputa¸ao ´e realizado em todos os os que receberam o pe-
dido de reputa¸ao sobre um determinado o, sendo i o o local e j o o que est´a
sendo pesquisada a reputa¸ao. Ent˜ao sat(i,j ) corresponde ao n´umero de transa¸oes
satisfat´orias que ocorreram entre i e j e unsat(i, j ) corresponde ao n´umero de
transa¸oes insatisfat´orias que ocorreram entre i e j . O valor obtido atraes da
ormula ´e enviado ao o que solicitou a reputa¸ao de j . Os os que obtiverem como
valor de reputa¸ao para o o j igual a zero ao necessitam enviar a resposta da
requisi¸ao para o o requisitante. Isso faz com que ocorra uma redu¸ao do n´umero
de requisi¸oes desnecess´arias na rede, principalmente quando o o pesquisado ´e um
o novo.
As respostas, ao chegarem ao n ´o requisitante, todas as requisi¸oes prove-
nientes dos os consultados acerca da reputa¸ao do o j , ao armazenadas para que
a reputa¸ao global seja calculada. Este armazenamento ´e realizado em uma fila de
mensagens, que ser´a processada ao fim da janela de tempo. O alculo ´e realizado
da seguinte forma: todos os valores ao somados e ´e feita uma edia aritm´etica. O
valor da edia dos valores de reputa¸ao recebidos dos k os consultados na rede a
respeito do o j , ´e chamado de reputa¸ao atual para j (currentRep). A ormula
5.2 mostra este alculo:
currentRep
i,j
=
Reputation
k,j
totalResponses
Com a reputa¸ao atual e a reputa¸ao anterior do o, outrora obtida e contida
na tabPeer, ser´a feita uma m´edia ponderada exponencial. Dessa forma, o protocolo
CAP
´
ITULO 5. PROTOCOLO DE REPUTAC¸
˜
AO P2PWSREP 88
P2PWSRep considera que dados pontuais mais recentes tˆem maior peso, com este
peso declinando exponencialmente `a medida que esses dados tornam-se ultrapassa-
dos.
A constante alfa de ajuste aplicada determinar´a o n´ıvel de ajuste e a veloci-
dade de transi¸ao da reputa¸ao, para a diferen¸ca entre as previs˜oes e as ocorrˆencias
reais. A determina¸ao da constante pode at´e ser arbitr´aria, mas de acordo com
simula¸oes realizadas neste trabalho, optou-se por utilizar o valor de alfa como 0.4.
Analisando a F ´ormula 5.3, pode-se observar que quanto maior o valor de alfa, a
uma valoriza¸ao da reputa¸ao anterior (o hist´orico da reputa¸ao). Caso o alfa esteja
tendendo a um valor mais baixo, enao a uma valoriza¸ao da reputa¸ao atual. A
considera¸ao para a escolha desse valor ´e que a reputa¸ao atual tem um maior peso,
muito embora o reflexo da reputa¸ao anterior ´e tamem considerado. Al´em disso,
defini¸ao do valor de alfa, leva a entender que a reputa¸ao pode ser facilmente ser
modificada em poucas intera¸oes, mas isso se deve a necessidade de obter um co-
nhecimento do comportamento dos os da rede na simula¸ao, com uma quantidade
de ciclos menores.
Ao fazer o alculo da reputa¸ao dos os que conem os recursos, ent˜ao os
mesmos ao mostrados em ordem da maior reputa¸ao. Por enquanto, ao est˜ao
sendo inclu´ıdos outros dados para fazer o ranqueamento dos recursos encontrados,
somente o valor da reputa¸ao. A obten¸ao da reputa¸ao se a pela ormula 5.3:
reputation = (1 α) · currentRep + previousRep · α
O gr´afico da Figura 5.7 p ode mostrar melhor o que foi considerado. Nesta
simula¸ao, o o possu´ıa uma reputa¸ao de 0.8, armazenado na tabPeer d o o inte-
ressado. Ap´os consultados os os na rede, o resultado da reputa¸ao atual para o o
foi de 0.655. Isto significa que o o n ˜ao cometeu muitas transa¸oes insatisfat´orias na
rede. O protocolo de P2PWSRep ao implica em que a reputa¸ao seja considerada
sem que sejam levado em considera¸ao o fator temporal. A partir do gr´afico, pode-se
ver como o alfa influencia na reputa¸ao final. Para alfa igual a 1, a reputa¸ao atual
ao afeta o valor anterior, o que ao ´e interessante para o protocolo. Para alfa igual
CAP
´
ITULO 5. PROTOCOLO DE REPUTAC¸
˜
AO P2PWSREP 89
Figura 5.7: Influˆencia do parˆametro alfa no alculo da reputa¸ao
a zero, o valor da reputa¸ao anterior ao ´e considerado na reputa¸ao final. Para
alfa igual a 0.5, o valor da reputa¸ao sofre uma queda para o valor de 0.7275, uma
perda de 9,06% da reputa¸ao. Para o valor de alfa de 0.4, o valor final da reputa¸ao
sofre uma queda para 0.713, uma perda de 10,87%, o requerido para o protocolo. O
protocolo foi projetado para que as perdas ao sejam ao abruptas, a que o o pode
ser prejudicado por fatores em que ele ao esteja envolvido diretamente, tal como,
falhas na rede. Imagine um cliente de um banco h ´a 10 anos, que nunca deixou de
pagar suas contas em d ia, mas, por um problema de comunica¸ao entre sua empresa
empregadora e o banco, seu sal´ario ao foi creditado, assim todas as opera¸oes de
d´ebito autom´atico foram recusadas e cheques foram devolvidos. Este cliente ficaria
prejudicado se perdesse sua reputa¸ao abruptamente. O protocolo P2PWSRep tenta
contornar esse tipo de problema, num cen´ario de compartilhamento de recursos em
redes P2P.
Quando todos os valores de reputa¸ao finais ao obtidos para os os que
possuem o recurso buscado, o o requisitante iniciar´a a busca da reputa¸ao desses
recursos. O processo ´e muito semelhante `a busca de reputa¸ao de os. Para isso, o
requisitante envia para seus vizinhos uma mensagem que cont´em a lista dos recursos
CAP
´
ITULO 5. PROTOCOLO DE REPUTAC¸
˜
AO P2PWSREP 90
pesquisados e os os que os compartilham. Os os recebem a requisi¸ao e respondem
ao requisitante com a reputa¸ao dos recursos, enviando uma lista, com o peerID,
resourceID e o odigo de erro (errorType). O mecanismo de roteamento, controle de
mensagens duplicadas, TTL adaptativo e janela de processamento das respostas ao
os mesmos para busca de reputa¸ao de os. Ap´os o t´ermino da busca da reputa¸ao
dos recursos, uma lista ´e exibida ao usu´ario com os recursos dispon´ıveis, ranqueados
de acordo com os dados da reputa¸ao de os e recursos. O usu´ario fica livre para
escolher qualquer recurso para fazer o download.
Ao escolher a fonte, o o que possui o recurso ir´a fazer testes de capacidade
de atendimento da requisi¸ao e retornar ao o que est´a solicitando uma resposta,
que pode ser uma requisi¸ao aceita, requisi¸ao recusada ou requisi¸ao enfileirada.
Isso evita que um o de alta reputa¸ao e com um grande n´umero de recursos com-
partilhados seja sobrecarregado, pois ser´a natural que o mesmo sempre seja bem
ranqueado nas buscas. Caso ocorram falhas de conex˜ao, queda de conex˜ao ou outro
problema de comunica¸ao, o n´umero de transa¸oes insatisfat´orias (unsatTrans) ´e
incrementado em 1 (um).
Para gerenciar a reputa¸ao dos recursos, cada recurso tem um identificador
´unico gerado atraes de uma fun¸ao hash. Isso possibilita que os recursos compar-
tilhados, por mais que tenham nomes diferentes, sejam identificados de forma ´unica
dentro da rede P2P. Isso possibilita a utiliza¸ao de reputa¸ao para os recursos ou
uso de blacklist de recursos maliciosos ou ao ´ıntegros.
Ap´os o ermino da transmiss˜ao do recurso, o mesmo ´e avaliado atraes de
uma fun¸ao de verifica¸ao de integridade. Caso o arquivo seja ´ıntegro, enao o
n´umero de transa¸oes satisfat´orias com o o fornecedor do recurso ´e incrementado
em 1 (um); caso contr´ario, o n´umero de transa¸oes insatisfat´orias ´e incrementado
em 1 (um) e tamem ´e atu alizada a tabela de reputa¸ao de recursos tabResource-
Reputation, informando o identificador do o, o identificador do recurso e o odigo
de erro do recurso. Nas pr´oximas consultas de reputa¸ao do recurso, este dado ser´a
repassado para os requisitantes.
Al´em disso, em melhorias futuras do protocolo, pode-se colocar como peso,
CAP
´
ITULO 5. PROTOCOLO DE REPUTAC¸
˜
AO P2PWSREP 91
dados a respeito da velocidade da conex˜ao e largura de banda real do o fornecedor.
Nesse caso, o valor de incremento ao ser´a um valor 1, mas seguindo um intervalo
entre 0 e 1, a que o peso ir´a influenciar na opini˜ao do requisitante.
5.5 Descri¸ao das Interfaces dos Servi¸cos do Pro-
tocolo P2PWSRep
A arquitetura da rede P2PWS ´e baseada na rede Gnutella, sendo descentra-
lizada, com mecanismo de busca realizado atr av´es de encaminhamentos sucessivos.
O protocolo P2PWSRep insere mecanismos de otimiza¸ao da busca e diminui¸ao de
sobrecarga de mensagens geradas na rede. As mensagens enviadas entre os os em
roteamento semelhante a da rede Gnutella, mas ao realizadas por meio de servi¸cos
web. As requisi¸oes aos servi¸cos ao realizadas utilizando chamadas s´ıncronas ou
ass´ıncronas (callback), o que significa que o o ao ficar´a bloqueado esperando a
resposta.
A Tabela 5.6 mostra as principais opera¸oes d o protocolo P2PWSRep. No
nome d a opera¸ao, ´e destacado o tipo de mensagem, que pode ser s´ıncrona ou
ass´ıncrona. Na descri¸ao, ao detalhadas as funcionalidades das opera¸oes.
Al´em das opera¸oes mostradas na Tabela 5.6, os os executam algumas
opera¸oes durante o processamento das mensagens. As opera¸oes ao implemen-
tadas na interface cliente ou servidor dos os, atraes de m´etodos que ao invocados
ou controlados por meio de threads. O diagrama de sequˆencia da Figura 5.8 mostra
as intera¸oes das opera¸oes do protocolo P2PWSRep.
Gera¸ao do identificador ´unico do o - Cada o da rede P2PWSRep
tem um indentificador ´unico, chamado de peerID. Este identificador ´e gerado
atraes do etodo GeneratePeerID(), da interface servidor, que utiliza uma
fun¸ao SHA-1 para gera¸ao de hash.
Busca de recursos - Quan do um o recebe uma requisi¸ao, a string de con-
sulta, contida na carga ´util da requisi¸ao, ´e usada para pesquisar no reposit´orio
CAP
´
ITULO 5. PROTOCOLO DE REPUTAC¸
˜
AO P2PWSREP 92
Nome da Opera¸ao Descri¸ao
Login Solicita ingresso na rede P2P. O o
(S´ıncrona) anfitri˜ao gera um peerID e o envia
junto com a sua tabela de os para o novo o.
Connect Opera¸ao realizada cada vez que o o se
(S´ıncrona) conecta `a rede. Ele atualiza seu IP corrente na
rede e faz a verifica¸ao do seu peerID.
QueryResource Envia a descri¸ao do recurso (string) a ser
(Ass´ıncrona) pesquisado na rede.
QueryResourceHit Resposta para um QueryResource. Traz consigo
(Ass´ıncrona) os endere¸cos (urls) dos recursos pesquisados.
QueryPeerReputation Busca a r eputa¸ao dos os que possuem o recurso,
(Ass´ıncrona) atraes QueryResourceHit.
QueryPeerReputationHit Resposta para o QueryPeerReputation. Traz como
(Ass´ıncrona) resultado os valores de reputa¸ao dos os, obtidos
dos demais os da rede.
QueryResourceReputation Busca da reputa¸ao dos recursos encontrados
(Ass´ıncrona) nos os.
QueryResourceReputationHit Resposta para o QueryResourceReputation,
(Ass´ıncrona) trazendo como resultado a reputa¸ao dos recursos.
Download (S´ıncrona) Solicita¸ao do download do recurso.
QueryMyReputation O o faz uma busca de como est´a sua
(Ass´ıncrona) reputa¸ao na rede.
NotifyDeletion Informa ao o que conem um recurso corrompido,
(Ass´ıncrona) que o mesmo deve ser removido do seu reposit´orio.
Tabela 5.6: Opera¸oes do protocolo P2PWSRep
CAP
´
ITULO 5. PROTOCOLO DE REPUTAC¸
˜
AO P2PWSREP 93
de dados do o. O etodo SearchRepository(), da interface servidor, ´e uti-
lizado para obter os recursos que o o conem. A opera¸ao QueryResourceHit
envia a resposta ao o requisitante.
Verifica¸ao do n´umero de hops - A cada o que a mensagem ´e encami-
nhada, o n´umero de hops ´e decrementado, quando o valor chega a zero, a
mensagem ´e removida da rede. Isto possibilita que as mensagens ao fiquem
trafegando indefinidamente na rede. Os m´etodos que realizam estes controles
ao o Foward() e o DropMessage(), da interface servidor.
Verifica¸ao de mensagem duplicada - Cada mensagem possui em seu
cabcalho um identificador e um timestamp, al´em do peerID do o que a gerou,
que possibilita que a mensagem, ao passar por um o, tenha seus dados grava-
dos em uma tabela. Caso uma outra mensagem chegue ao o, ele pesquisa
na tabela, se encontrar, ent˜ao ´e uma mensagem que a foi roteada, sendo a
mesma removida da rede. Esse processo de verifica¸ao de mensagens dupli-
cadas ´e realizado pelo etodo VerifyDuplicateMessage() e DropMessage(), da
interface do servidor.
Controle do TTL adaptativo - O valor do TTL inicia baixo (com valor
2) e vai sendo incrementado (at´e o valor 6) quando as buscas de recursos
ou reputa¸ao `a rede ao retornam resultados dentro da janela de tempo. Isso
possibilita uma diminui¸ao do n´umero de mensagens na rede e uma adapta¸ao
dinˆamica do valor do TTL. O etodo que realiza esse mecanismo ´e o Adap-
tativeTTL(), da interface do cliente.
Controle da janela para processamento de mensagens - Este mecanis-
mo ´e realizado pela interface cliente, em arios etodos, tais como, Process-
ResourceList(), CalculateCurrentRep(), CalculateReputation() e ProcessRepu-
tationResource(). Quando uma pesquisa ´e iniciada, uma janela de tempo ´e
criada, controlada por uma thread, sendo as mensagens que chegam dentro
da janela enfileiradas. Ao fim da janela, as mensagens ao processadas. As
mensagens que chegam fora da janela ao descartadas.
CAP
´
ITULO 5. PROTOCOLO DE REPUTAC¸
˜
AO P2PWSREP 94
alculo da reputa¸ao - Existem trˆes m´etodos para processamento de dados
de reputa¸ao. O primeiro etodo ´e realizado pela interface servidor, Cal-
culateReputation(), que alcula a reputa¸ao de um o, pelo seu hist´orico de
transa¸oes satifat´orias e insatisfat´orias. O valor obtido ´e transferido para o o
requisitante atrav´es da opera¸ao QueryPeerReputationHit. O segundo e ter-
ceiro m´etodo, CalculateCurrentRep() e CalculateReputation(), ao realizados
pela interface cliente, com os dados de reputa¸ao recebidos dos os.
Ranqueamento dos recursos - Ap´os obter os dados da reputa¸ao dos os
e dos recursos, ´e realizado um ranqueamento dos melhores recursos para que
o usu´ario possa escolher para download. O etodo Ranking() da interface
cliente realiza est´a tarefa.
Teste da capacidade de atendimento do download - Quando o usu´ario
seleciona um recurso para ser baixado, o o destino, que compartilha o re-
curso, faz uma verifica¸ao de capacidade para atendimento do o. O m´etodo
respons´avel por este teste ´e o TestDownload(), da interface servidor. Caso,
esteja com uma sobrecarga de conex˜oes, o o pode negar a requisi¸ao ou en-
fileirar, para atendˆe-la mais tarde.
Verifica¸ao de integridade do recurso - Ao baixar um recurso, o o rea-
liza uma verifica¸ao de integridade do mesmo, aplicando uma fun¸ao hash,
para saber se o hash obtido condiz com o original. Esta fun¸ao ´e realizada
pelo etodo VerifyResourceHash(), da interface cliente. Caso o recurso esteja
corrompido, adulterado ou infectado por v´ırus, o o usa a opera¸ao Notify-
Deletion para informar o o de origem. Al´em de adicionar o recurso na tabela
tabResourceReputation, com o odigo de erro obtido pela fun¸ao de valida¸ao.
Atribui¸ao valor de transa¸ao - Ao final da transa¸ao, um valor de reputa-
¸ao ´e atribu´ıdo `a mesma. Se foi satisfat´oria, o campo satTrans do o, na tabela
tabPeer ´e incrementado, caso contr´ario o campo unsatTrans ´e incrementado.
Esta fun¸ao ´e realizada pelo etodo SetReputation(), da interface cliente.
CAP
´
ITULO 5. PROTOCOLO DE REPUTAC¸
˜
AO P2PWSREP 95
Figura 5.8: Diagrama de sequˆencia do protocolo P2PWSRep
No diagrama de sequˆencia da Figura 5.8, est˜ao representados apenas trˆes
os. Cada o possui uma interface para as opera¸oes do cliente e servidor. As
opera¸oes ao realizadas atrav´es de servi¸cos web. A opera¸ao se inicia com um o
ingressando na rede. Para isto, existe uma opera¸ao chamada de Login(), onde
o o solicita a um o a conectado a rede, chamado de anfitri˜ao, o seu ingresso.
Ao receber a solicita¸ao, o o anfitri˜ao gera um peerID para o novo o e o envia
juntamente com sua tabela de os vizinhos. Isto possibilita que o novo o passe
a conhecer seus vizinhos. Todas as vezes que o o ingressar na rede, ele executa
a opera¸ao Connect(), passando seu peerID e seu endere¸co IP atual, a que pelo
fator dinˆamico das redes P2P, a necessidade de identifica¸ao do o apenas pelo seu
CAP
´
ITULO 5. PROTOCOLO DE REPUTAC¸
˜
AO P2PWSREP 96
peerID, preservando seu anonimato. Por´em a necessidade de atualizar o endere¸co
atual utilizado pelo n ´o. Todas as opera¸oes est˜ao detalhadas na Tabela 5.6 e os
principais m´etodos foram descritos nesta se¸ao.
5.6 Considera¸oes Finais
Neste cap´ıtulo, foram apresentadas as principais caracter´ısticas do projeto
do protocolo P2PWSRep, incluindo a arquitetura desta rede P2P, topologia e me-
canismo de roteamento de mensagens. Seu mecanismo de controle de repu ta¸ao ´e
baseado nos protocolos de reputa¸ao apresentados neste trabalho, adicionando-se
mecanismos para torn´a-lo simples e sem sobrecargas de processamento nos os. A
principal finalidade deste protocolo ´e controlar a reputa¸ao dos os presentes na
rede e dos recursos compartilhados de forma distribu´ıda, sem depender de nenhum
elemento central, utilizando como base a tecnologia de servi¸cos web para possibilitar
a interoperabilidade com outras redes P2P e extensibilidade de odigo para suportar
adi¸oes de melhorias e contornar problemas de desempenho e seguran¸ca da rede.
Cap
´
ıtulo 6
Simula¸ao do Protocolo
P2PWSRep
6.1 Introdu¸ao
As aplica¸oes que utilizam servi¸cos web em um desempenho dito inferior
em rela¸ao `as tecnologias convencionais de desenvolvimento de software distribu´ıdo.
Assim, ad icionar mecanismos complexos de controle de seguran¸ca a essas redes as
deixam mais lentas. O P2PWSRep ´e um protocolo sem excessos de mecanismos de
seguran¸ca, mas que ofere¸ce meios de combater as principais vulnerabilidades das
redes P2P, contribuindo para que ocorra a adi¸ao de sucessivas melhorias, por este
ser extens´ıvel e port´avel. A etapa de simula¸ao foi importante para este trabalho,
por comprovar que o protocolo P2PWSRep pode ser vi´avel para boa parte das
aplica¸oes de redes P2P, orientadas ou ao a servi¸cos.
A simula¸ao do protocolo P2PWSRep se ateve ao mecanismo de reputa¸ao
aqui proposto, independentemente da forma com que as mensagens ao trans-
portadas, at´e porque o n´ucleo do protocolo pode ser utilizado por qualquer outra
rede, mesmo que ao seja orientada a servi¸cos. A ferramenta de simula¸ao utilizada
neste trabalho foi o PeerSim (PeerSim, 2009), desenvolvido e mantido pelo Projeto
BISON d a Universidade de Bolonha, na It´alia. Alguns crit´erios foram emprega-
dos na escolha do simulador, tais como, atividade atual do p rojeto, documenta¸ao
97
CAP
´
ITULO 6. SIMULAC¸
˜
AO DO PROTOCOLO P2PWSREP 98
dispon´ıvel, linguagem em que o simulador foi escrito e tipo de licenciamento. O
projeto PeerSim est´a atualmente ativo e tem uma vasta documenta¸ao dispon´ıvel,
com arios exemplos de cen´arios de simula¸ao. Seu odigo ´e escrito em Java e tem
licen¸ca GPL (General Public License).
Outro fator prepoderante na escolha do simulador foi a possibilidade de fazer
simula¸oes para uma grande quantidade de os, bem como utilizar tanto uma ar-
quitetura de simula¸ao estruturada, como desestruturada. O PeerSim possui esca-
labilidade, podendo chegar a 1 milh˜ao de os, sendo que na simula¸ao do protocolo
P2PWSRep foram utilizados 10 mil os para obten¸ao dos resultados. Al´em disso,
o PeerSim possibilita implenta¸ao de simula¸ao dirigida a ciclos (cycle-based model)
e dirigida a eventos (event-based model), sendo necess´aria a utiliza¸ao dos dois tipos
de simula¸ao para a valida¸ao deste trabalho, especialmente devido `as particulari-
dades do protocolo P2PWSRep.
6.2 Descri¸ao do Ambiente de Simula¸ao
Para facilitar o entendimento da rede simulada, ´e apresentada uma pequena
rede P2P com apenas 10 os, baseada na topologia do P2PWSRep simulada com
10.000 os. O objetivo de mostrar esta pequena rede ´e fazer com que se possa
visualizar a forma com que os os se interligam, isto ´e, a topologia da rede.
Na topologia ilustrada na Figura 6.1, percebem-se algumas caracter´ısticas do
projeto P2PWSRep. Ele ´e baseado na rede Gnutella vers˜ao 0.4, assim ao existem
os que centralizam fun¸oes espec´ıficas da rede, tais como ingresso na rede, busca
de recursos e controle de reputa¸ao; e todas as intera¸oes entre os os ao realizadas
por meio de encaminhamentos sucessivos.
Para configurar o ambiente de simula¸ao no PeerSim, foram implementadas
as classes base do protocolo P2PWSRep. O elemento principal d a simula¸ao ´e o o
(peer), ao qual est˜ao associadas todas as opera¸oes, recursos que o o compartilha
e informa¸oes de reputa¸ao dos pr´oprios os e recursos. O simulador PeerSim tem
uma interface chamada Node que ´e implementada pela classe GeneralNode, ambas
CAP
´
ITULO 6. SIMULAC¸
˜
AO DO PROTOCOLO P2PWSREP 99
Figura 6.1: Exemplo
da topologia da rede
P2PWS.
do pacote peersim.core, que cont´em as principais opera¸oes para simular uma rede
P2P, tais como: cria¸ao do o, obten¸ao de identificador, ingresso e sa´ıda de os
da rede e implenta¸ao do protocolo n´ucleo da rede simulada. O o do protocolo
P2PWSRep foi criado extendendo-se a classe GeneralNode, sendo a classe resultante
a P2PWSRepNode. A seguir, na Listagem 6.1, ´e mostrada uma parte do odigo da
classe escrito em linguagem Java:
Listagem 6.1: Trecho da classe P2PWSRepNode
1 package p2pwsrep ;
2
3 import j ava . u t i l . Hashtab l e ;
4 import pe ersim . c o r e . GeneralNode ;
5
6 public c l a s s P2PWSRepNode extends GeneralNode {
7 / i d e n t i f i c a d o r do n´o /
CAP
´
ITULO 6. SIMULAC¸
˜
AO DO PROTOCOLO P2PWSREP 100
8 private long pe er Id ;
9 private boolean s tr o ng ;
10
11 / t a b e l a de nos /
12 private Hashtable tabPeer ;
13 / t a b e l a de r ec u r so s /
14 private Hashtable tabReso u rce ;
15 / t a b e l a de r epu tac ao de nos /
16 private Hashtable tabPe erReputation ;
17 / t a b e l a de r epu tac ao de r e cu rs o /
18 private Hashtable tab Resource Reputat i on ;
19 / t a b e l a de c o nf i gu r ac a o /
20 private Hashtable t a b S e t t i ng s ;
21
22 / usado em re d es e s t r u t u r a d a s /
23 private boolean supernode = f a l s e ;
24
25 / Co nst ruc to r /
26 / Cria uma nova i n s t a n c i a de P2PWSRepNode /
27 public P2PWSRepNode( S t r i n g p r e f i x ) {
28 super ( p r e f i x ) ;
29 supernode = f a l s e ;
30
31 tabPeer = new Hashtable ( ) ;
32 tabResour c e = new Hashtable ( ) ;
33 tabPeer Reputation = new Hashtable ( ) ;
34 tabR esourceR eputati o n = new Hashtable ( ) ;
35 t a b S et t i n g s = new Ha shtable ( ) ;
36 }
37 [ . . . ]
No odigo, pode-se notar que cada o tem como principais atributos seu
identificador (peerID) e as tabelas de os vizinhos (tabPeer), tabela de recursos
(tabResource), tabela de reputa¸ao de os (tabPeerReputation) e de recursos (tabRe-
sourceReputation) e uma tabela que cont´em os dados de configura¸ao do o (tabSet-
tings). Essas tabelas em os campos descritos na se¸ao de metadados, apresentada
CAP
´
ITULO 6. SIMULAC¸
˜
AO DO PROTOCOLO P2PWSREP 101
no Cap´ıtulo 5. Fisicamente, os dados ao armazenadas em arquivos XML e ao
manipulados por classes que fazem o parsing destes arquivos.
Outra parte fundamental para a simula¸ao ´e a defini¸ao da estrutura da
mensagem. O simulador oferece uma classe chamada de SMessage. Esta classe
implementa a interface cloneable, que permite criar m´ultiplas opias das mensagens.
A seguir, na Listagem 6.2, a uma parte do odigo da classe SMessage, a com as
adi¸oes referentes ao protocolo P2PWSRep.
Listagem 6.2: Classe SMessage
1 package p2pwsrep ;
2
3 import j ava . s q l . Timestamp ;
4
5 import pe ersim . cdsim . CDState ;
6 import pe ersim . c o r e . Node ;
7
8 public c l a s s SMessage implements C l one able {
9 / d e f i n i c a o dos t i p o s de mensagens do p r o t o c o lo de re put aca o /
10 public s t a t i c f i n a l i n t QRY = 0;
11 public s t a t i c f i n a l i n t FWD = 1 ;
12 public s t a t i c f i n a l i n t HIT = 2 ;
13
14 / busca da r epu tac ao do nos que contem o re cu r so /
15 public s t a t i c f i n a l i n t QRYREP = 3 ;
16 / r e s p o s t a da busca da r epu tac ao /
17 public s t a t i c f i n a l i n t HITREP = 4;
18 / busca da r epu tac ao do r ec u r s o en c ontrado /
19 public s t a t i c f i n a l i n t QRYREPRESOURCE = 5 ;
20 / r e s p o s t a da busca da r epu tac ao do r e cu rs o /
21 public s t a t i c f i n a l i n t HITREPRESOURCE = 6;
22
23 private s t a t ic int s e q
g e n e r a t o r = 0 ;
24
25 public int hops , type , seq , s t a r t ;
26 public Node o r i g i n a t o r ;
27 public S t r in g payload ; / arr ay de s t r i n g s /
CAP
´
ITULO 6. SIMULAC¸
˜
AO DO PROTOCOLO P2PWSREP 102
28 public Timestamp time ;
29
30 public SMessage ( Node o r i g i n a t o r , i n t type , int hops , Timestamp
timestamp , S t r i n g payload ) {
31 th i s . o r i g i n a t o r = o r i g i n a t o r ;
32 th i s . type = type ;
33 th i s . hops = hops ;
34 th i s . timestamp = timestamp ;
35 th i s . payload = payload ;
36 th i s . s eq = ++s e q
g e n e r a t o r ;
37 th i s . s t a r t = CDState . ge tCy cle ( ) ;
38 }
39 [ . . . ]
Destacam-se no odigo alguns pontos importantes, tais como os atributos
hops, type e timestamp. O campo TTL indica o n´umero de vezes que a mensagem
ser´a encaminhada antes de ser removida da rede; a cada o por onde a mensagem
passa, o valor de TTL ´e decrementado em 1 e o hops ´e incrementado em 1. Quando
o valor chega a zero, a mensagem ´e descartada da rede. O Campo type determina
o tipo de mensagem, podendo ser uma mensagem de pesquisa de recurso, pesquisa
de reputa¸ao de o, pesquisa de reputa¸ao do recurso, mensagem de resposta de
busca a recursos, resposta de busca da reputa¸ao de um o ou resposta de busca
de reputa¸cao de um recurso. O campo timestamp armazena uma marca de tempo,
indicando o exato momento em que a men sagem foi gerada. O timestamp permite
controlar o momento em que as mensagens chegam ao destino. Existe um intervalo
aximo de espera das respostas pelas mensagens de busca, chamado de intervalo de
janela. Caso as mensagens cheguem fora da janela de tempo, isto ´e, ap´os o intervalo
de espera, elas ser˜ao descartadas pelo o que iniciou a busca. Caso contr´ario, ao
armazenadas em uma fila para posterior processamento, ou seja, quando a janela
de tempo se esgotar.
O n´ucleo do protocolo P2PWSRep foi implementado no simulador na classe
P2PWSRepProtocol a partir de trˆes interfaces. A CDProtocol (Cycle Driven), que
possibilita a simula¸ao de opera¸oes que devem se repetir a cada ciclo de execu¸ao
CAP
´
ITULO 6. SIMULAC¸
˜
AO DO PROTOCOLO P2PWSREP 103
do simulador, de acordo com a configura¸ao do experimento, realizada por meio
de um arquivo de entrada de dados. O EDProtocol (Event Driven) utilizado por
opera¸oes simuladas a partir da gera¸ao d e um evento, tal como o recebimento de
uma mensagem, solicita¸ao de um download, etc.; e, por ´ultimo a Linkable que ´e
respons´avel por controlar as conex˜oes entre o o e seus vizinhos. Alguns m´etodos
desta classe ao destacados a seguir:
send(Node n, SMessage mes ) - Ao iniciar uma busca, uma mensagem
com a string de busca para o recurso ´e gerada e enviada atrav´es do m´etodo
send(). Uma fila ´e utilizada para controlar as buscas pendentes. Assim, para
cada busca iniciada, ´e adicionada, em uma tabela, seu identificador. Essa
tabela ´e implementada atraes de uma hashtable, tendo como campos chave o
identificador da busca e seu timestamp. A cada mensagem que chega, o tipo da
mensagem ´e checado e ´e verificado na tabela se a busca foi realizada pelo o.
Para cada tipo de mensagem, existe uma tabela espec´ıfica para que ao ocorra
uma sobrecarga de processamento caso todas as mensagens estivessem em uma
o tabela. Se a busca foi iniciada pelo o, enao a r esposta ´e enfileirada em u ma
tabela, aguardando o ermino da janela de tempo. Quando a janela de tempo
se esgota, todas as mensagens ao processadas. Uma thread fica respons´avel
por notificar o momento do processamento das mensagens enfileiradas. Todas
as mensagens que chegarem ap´os o fim da janela de tempo ao descartadas.
O tamanho da janela ´e associado ao TTL: para um TTL maior, uma janela
maior; caso contr´ario, uma janela menor ´e utilizada. Este controle ´e realizado
no o que iniciou a busca de recursos e busca de reputa¸ao. As mensagens
de resposta ao possuem o controle de janela de tempo. Assim, quando um
o responde a uma requisi¸ao, seja ela qual for, a mensagem com o conte´udo
da resposta ´e colocada no campo payload e o valor do campo hops ´e utilizado
dependendo da profundidade em que este o se encontra.
updateRoutingTable(Node n, SMessage mes) - A cada mensagem que
´e enviada ou recebida, a tabela de roteamento ´e atualizada. Em cada o,
existe uma hashtable que controla o roteamento das mensanges seguindo o
CAP
´
ITULO 6. SIMULAC¸
˜
AO DO PROTOCOLO P2PWSREP 104
mecanismo de roteamento do Gnutella, isto ´e, quando uma mensagem ´e en-
viada ou encaminhada, seu identificador ´e armazenado em uma tabela para
que, quando uma mensagem de reposta chegue, seja feita uma verifica¸ao se
o o participou do envio ou encaminhamento da mesma.
forward(Node n, Smessage mes) - Caso a mensagem tenha passado pelo
o, ele opia (clona) a mensagem e a encaminha, atraes deste m´etodo, para
seus vizinhos, exceto para o vizinho que lhe enviou. Caso contr´ario, a men-
sagem ´e descartada. Esse mecanismo permite que as men sagens retornem
pelo mesmo caminho que percorreram para atingir um alvo. Ao clonar a
mensagem, ´e realizada a altera¸ao do valor do campo TTL e hops.
process(SMessage mes) - Ao esgotar a janela de tempo, as mensagens ao
processadas atrav´es deste m´etodo. No processamento, ´e verificado o tipo de
mensagem e, de acordo com o tipo, a mensagem ´e enviada para o etodo
espec´ıfico de processamento, seja para uma simples pesquisa a um recurso ou
para uma busca de reputa¸ao. No caso da busca de recursos, o o que recebe
a mensagem extrai a string e pesquisa, em seu reposit´orio de arquivos com-
partilhados, se a algum arquivo que possua a string buscada. Caso encontre,
ele responde para o o que originou a busca, enviando a mensagem por en-
caminhamento sucessivos. Caso a mensagem seja uma busca de reputa¸ao,
enao o o que recebeu o pedido verifica em sua tabela de reputa¸ao de os se
ele conhece o o procurado. Caso seja u m o com que ele a interagiu, enao
re´une as informa¸oes para o alculo da reputa¸ao local, que ao o n´umero de
transa¸oes satisfat´orias e o n´umero de transa¸oes insatisfat´orias, realizando o
alculo de acordo com a ormula 5.1. Ent˜ao, o resultado ´e enviado para o
o interessado. Caso a reputa¸ao do o procurado seja zero, a resposta ao ´e
enviada.
A topologia e o mecanismo de roteamento das mensagens foram implemen-
tadas na classe ´e GnutellaProtocol, mostrada na Listagem 6.3, que implementa o
protocolo Gnutella vers˜ao 0.4.
CAP
´
ITULO 6. SIMULAC¸
˜
AO DO PROTOCOLO P2PWSREP 105
Listagem 6.3: Classe GnutellaProtocol
1 public c l a s s G nu t el l a P ro t oc ol extends P2PWSRepProtocol{
2 / Cr eate s a ne w i n s t an c e o f G nu t e ll a P r o t o c ol /
3 public G nu te l la Pr o to c ol ( S t r in g p r e f i x ) {
4 super ( p r e f i x ) ;
5 }
6
7 public void nex tCycle ( Node node , i n t p ro t oc ol ID ) {
8 super . nextCycl e ( node , p r o t oc ol ID ) ;
9 / I f we have t o produce a query /
10 S t r i n g data = t h i s . pickQueryData ( ) ;
11 i f ( data != nul l ) {
12
13 SMessage m = new SMessage ( node , SMessage .QRY, 0 , new Timestamp
( System . c ur r en t T im e Mi l l i s () ) , data ) ;
14
15 / This node a l r ea d y i s knows /
16 i f ( ! th i s . match (m) ) {
17 // I f I don t
18 for ( int i = 0 ; i < t h i s . view . s i z e ( ) &&
19 i < t h i s . de gre e ( ) ; i ++){
20 System . out . p r i n t l n ( "Node : "+node . getID ( )+" sending to "+
21 ( ( Node ) t h i s . getNeig hbor ( i ) ) . getID ( ) ");
22 this.send (( Node) this . getNeighbor (i) , m);}
23 } else {
24 /* I know this node , so I don t need to propagate */
25 this . messageTable .put(m, new Integer (0) );
26 [...]
27 }
28 }
29 [...]
To d as as mensagens ao armazenadas em uma tabela quando chegam no o
que solicitou a reputa¸ao, esperando pelo fim da janela de tempo. Quando o tempo
se esgota, todas as mensagens ao processadas.
´
E realizado um alculo com todos os
valores recebidos, aplicando uma m´edia aritm´etica para obter a reputa¸ao recebida
CAP
´
ITULO 6. SIMULAC¸
˜
AO DO PROTOCOLO P2PWSREP 106
da rede, pela ormula 5.2. Com este valor, ´e realizado outro alculo, utilizando a
ormula 5.3 para se obter a reputa¸ao final. O novo valor ser´a armazenado no campo
previousRep, sobrescrevendo o valor anterior, contido na tabela tabReputation do
o que iniciou a busca.
A pr´oxima etapa do protocolo ´e a busca da reputa¸ao dos recursos. Esta
opera¸ao ´e mais apida, pois ao envolve alculo distribu´ıdo. Somente ´e realizada
uma consulta na rede para verificar se o recurso tem alguma restri¸ao no o em
que ele est´a dispon´ıvel. Assim, ´e realizada uma consulta aos os da rede atrav´es
de uma mensagem QUERYREPRESOURCE, contendo na sua carga ´util uma lista
dos recursos a serem pesquisados, para que os que a obtiveram o arquivo do o
possam fornecer a informa¸ao sobr e os recursos. Isso ´e importante para diminuir o
n´umero de mensagens do proto colo P2PWSRep na rede, caso fosse utilizada uma
mensagem para consultar a reputa¸ao de cada recurso.
Ao final deste processo, os recursos ao ranqueados de acordo com a repu-
ta¸ao dos os que os compartilham e a lista ´e exibida ao usu´ario, excluindo-se os
recursos com reputa¸ao duvidosa. Havendo empate, ´e considerado o o com maior
n´umero de transa¸oes satisfat´orias. Caso persista o empate, o o mais antigo na
rede ´e melhor ranqueado. Cada o possui uma tabela de reputa¸ao de recursos,
sendo que a estrutura da tabela ´e o identificador do recurso, identificador do o e
um array de odigos de reputa¸ao do recurso. Para a tabela ao crescer muito e
comprometer o desempenho do protocolo, somente ao armazenados os odigos de
recursos corrompidos, infectados ou inexistentes. Outros odigos podem ser criados
e inclu´ıdos no protocolo.
To d os os processos acima ao iniciados pelo m´etodo main() da classe Simu-
lator. Para carregar os dados dos metadados de arquivos e reputa¸ao, ao utilizadas
classes de inicializa¸ao, para fornecer a carga de trabalho da simula¸ao e os dados
iniciais para configura¸ao de toda a rede P2P.
P2PWSRepInitializerFiles - Instancia aleatoriamente um conjunto de ar-
quivos para os os da rede.
P2PWSRepInitializerReputation - Atribui valores de reputa¸ao aos os
CAP
´
ITULO 6. SIMULAC¸
˜
AO DO PROTOCOLO P2PWSREP 107
da rede.
P2PWSRepInitializerReputationFiles - Atribui valores aleat´orios de re-
puta¸ao aos recursos, de forma que se possa ter parte dos arquivos da rede
´ıntegros, corrompidos, infectados ou inexistentes, de acordo com um per-
centual estabelecido no cen´ario do experimento.
P2PWSRepInitializer - Faz a inicializa¸ao da simula¸ao, onde ´e definida a
arquitetura da rede, n ´umero de os, protocolo da rede e execu¸ao dos exp eri-
mentos.
A primeira inicializa¸ao dos dados ´e o preenchimento aleat´orio da tabela
de recursos, realizada pela classe P2PWSRepInitializerReputationFiles. A segunda
inicializa¸ao ´e a de reputa¸ao, onde valores de reputa¸ao ao atribu´ıdos aleato-
riamente aos os. Esses valores dividem os os em basicamente quatro grupos:
´otimos, bons, regulares, ruins e essimos, sendo que os grupos est˜ao nos seguintes
intervalos, respectivamente, 1 e 0.8; 0.79 e 0.6; 0,59 e 4, 0.39 e 2; 0.19 e 0. Os
valores atribu´ıdos aos os ao transa¸oes satisfat´orias, insatisfat´orias e ´ultima re-
puta¸ao conhecida do o previousRep. A classe respons´avel por esta inicializa¸ao
´e a P2PWSRepInitializerReputation. A terceira inicializa¸ao ´e a da reputa¸ao dos
arquivos, implementada pela classe P2PWSRepInitializerReputationFiles, caracte-
rizando os arquivos somente por valores associados a um status: 1 - corrompido, 2
- infectado, 3 - adulterado, 4 - inexistente.
To d as as inicializa¸oes ao realizadas durante a pr´opria inicializa¸ao do si-
mulador. Cada o da rede ´e instanciado com base em uma classe padr˜ao para o
o. A arquitetura P2PWSRep d efine um o que ´e instanciado na inicializa¸ao.
Esse o recebe um identificador e ´e inserido aleatoriamente na rede atraes de uma
distribui¸ao bayes´ıana para liga¸ao com os demais os da rede. A classe que define
um o da rede P2PWS ´e P2PWSRepNode.
A configura¸ao do ambiente de simula¸ao, tais como, tamanho da rede, ini-
cializa¸ao, logs de sa´ıda ´e realizada pelo arquivo de configura¸ao do simulador,
mostrado no Anexo 1.
CAP
´
ITULO 6. SIMULAC¸
˜
AO DO PROTOCOLO P2PWSREP 108
Para que se possa visualizar o mecanismo de inicializa¸ao da simula¸ao e
encaminhamento d as mensagens, ´e apresentado um trecho do log de sa´ıda de uma
simula¸ao, no Anexo 2.
Na sa´ıda mostrada no Anexo 2, foram omitidos os pacotes referentes `as buscas
de reputa¸ao. Pela caracter´ıstica do protocolo Gnutella, as mensagens ser˜ao enca-
minhadas para os os vizinhos at´e que seu TTL seja esgotado. Para as mensagens
de reputa¸ao, bem como outros tipos de mensagens, ´e verificado se a mensagem a
passou pelo o. O teste sendo positivo, a mesma ao ser´a processada, nem enca-
minhada novamente. Isso conseguiu reduzir o n´umero de mensagens de reputa¸ao
trafegando na rede.
A valida¸ao do protocolo P2PWSRep foi realizada em arios cen´arios, para
que fossem obtidos resultados que demonstrem o comportamento do protocolo em
apontar corretamente a reputa¸ao de um o ou recurso e o impacto do protocolo no
gera¸ao de tr´afego na rede. Nas pr´oximas se¸oes ao apresentados os resultados para
cen´arios distintos. ao eles: An´alise do Protocolo de Reputa¸ao dos os, An´alise
do Protocolo de Reputa¸ao dos Recursos e An´alise do Protocolo Quanto `a Carga
na Rede.
6.3 Cen´ario 1 - An´alise do Protocolo de Reputa-
¸ao dos os
O objetivo da simula¸ao para o protocolo P2PWSRep, em rela¸ao a rep uta-
¸ao dos os, ´e validar seu mecanismo de obten¸ao de dados e alculo da reputa¸ao,
sem que haja comprometimento do funcionamento da rede. A importˆancia da re-
puta¸ao na rede P2PWS ´e fazer com que os novos ou de baixa reputa¸ao possam
melhorar sua reputa¸ao caso cooperem de forma satisfat´oria na rede, isto ´e, com-
partilhando seus recursos e mantendo somente recursos ´ıntegros em seu reposit´orio.
Al´em disso, mostrar que, quando um o tem boa reputa¸ao, para mane-la o mesmo
tem que continuar cooperando de forma positiva, caso contr´ario sua rep uta¸ao ser´a
decrementada pelo protocolo P2PWSRep.
CAP
´
ITULO 6. SIMULAC¸
˜
AO DO PROTOCOLO P2PWSREP 109
6.3.1 Descri¸ao do Cen´ario
Neste cen´ario, uma rede com 10.000 os foi “povoada” com recursos ´ıntegros
e corrompidos e com valores de reputa¸ao aleat´orios. Estes dados foram inseridos
nas tabelas de reputa¸ao de os e recursos. Foram elaborados para este primeiro
cen´ario quatro experimentos, onde um o i ser´a o o observador, isto ´e, o o
que far´a as requisi¸oes de reputa¸ao ao o observado, chamado de j . Os demais
os da rede fornecer˜ao dados relativos aos valores de reputa¸ao de j, baseando-se
nas transa¸oes satisfat´orias e insatisfat´orias ocorridas com o o j , contidas em sua
tabela de reputa¸ao. O o i tem um valor de reputa¸ao do o j , em sua tabela de
reputa¸ao, no campo previousRep, igual a 0.8. O valor da reputa¸ao do o j obtido
da rede foi de 0.655.
Foi considerado alfa igual a 0.4 para o protocolo P2PWSRep, o que possibilita
que haja um ganho de reputa¸ao e uma perda gradual, fazendo com que a curva de
perda seja mais suave, valorizando mais as transa¸oes recentes. Cada situa¸ao foi
simulada de forma independente, sendo os resultados apresentados em um mesmo
gr´afico (Figura 6.2) para que se possa fazer u ma compara¸ao entre as trˆes abordagens
e verificar como o protocolo funciona e age em diferentes situa¸oes na rede P2P. A
ferramenta utilizada para construir os gr´aficos foi o GnuPlot
1
.
6.3.2 Resultados
Na primeira simula¸ao, um o ao ir´a cooperar na rede, assim ele ao ter´a
realizado ao final da simula¸ao transa¸oes satisfat´orias ou insatisfat´orias. O ob-
jetivo deste primeiro cen´ario ´e mostrar que, um o que ao realize os dois tipos
de transa¸oes citados anteriormente, ao pode manter sua reputa¸ao atual, a que
este comportamento caracteriza um o carona ou ego´ısta, um o que o consome
os recursos da rede, mas ao compartilha seus recursos com os demais. O proto-
colo de reputa¸ao P2PWSRep age nesse o reduzindo sua reputa¸ao, por´em mais
lentamente que a de um o com um hist´orico negativo. Percebe-se que a reputa¸ao,
ap´os arias consultas diminuem, isso retrata que um o que ao ´e muito acessado
1
agina Inicial: http://www.gnuplot.info
CAP
´
ITULO 6. SIMULAC¸
˜
AO DO PROTOCOLO P2PWSREP 110
perde reputa¸ao. Este comportamento ´e mostrado no gr´afico da Figura 6.2, onde se
percebe que, ao final da simula¸ao, que durou 100 ciclos, o valor da reputa¸ao ´e igual
a 0.653, que representa o valor do campo previousRep do o observado para o o
que finalizou esta simula¸ao em busca da reputa¸ao. Isso representa uma perda de
reputa¸ao em termos percentuais de 18.37%. Em termos reais, a simula¸ao equivale
a estressar o o pelo umero de transa¸oes. O resultado da simula¸ao equivale ao
esperado na defini¸ao do protocolo P2PWSRep, a que, em rela¸ao a reputa¸ao,
houve uma queda de 0.655 para 0.653. Isto mostra que apesar de ao existir uma
centraliza¸ao das informa¸oes de reputa¸ao na rede, os valores de reputa¸ao sempre
ao bem pr´oximos quando consideramos uma amostragem geral da reputa¸ao de
um o qualquer na rede, validando a id´eia do protocolo P2PWSRep, que, mesmo
descentralizado, pode apontar para um valor de reputa¸ao que seja bem semelhante
em toda a rede.
Figura 6.2: Gr´afico de varia¸ao da reputa¸ao.
A segunda simula¸ao, utilizou a mesma caracteriza¸ao da carga de trabalho,
10.000 os na rede e valor de alfa de 0.4, tamb´em com uma reputa¸ao inicial de 0.8
CAP
´
ITULO 6. SIMULAC¸
˜
AO DO PROTOCOLO P2PWSREP 111
para o o observado. O comportamento atribu´ıdo para o o ´e que o diferencia n este
cen´ario, onde o o realizar´a arias transa¸oes positivas, enquanto sua reputa¸ao
´e pesquisada na rede pelo o observador. Neste caso, espera-se que, ao final da
simula¸ao, a reputa¸ao apresente um ganho. Por´em, teremos que considerar o peso
de sua reputa¸ao obtida na rede. O o interessado pela reputa¸ao pode ter um valor
no seu campo previousRep que ao caracterize o comportamento do o ultimamente,
isso o pode ser obtido na rede atrav´es de uma consulta `a reputa¸ao. Ap´os a busca,
o o obteve uma reputa¸ao de 0.655.
Observando o gr´afico da Figura 6.2 em rela¸ao `a curva que mostra a varia¸ao
das transa¸oes positivas consecutivas, faz-se com que a baixa reputa¸ao do o obtida
da rede provoque uma queda na primeira metade da simula¸ao, fazendo com que na
segunda metade, a partir do ciclo 50 a reputa¸ao come¸ce a ter um ganho, finalizando
em 0.721, o que representou um acr´escimo de 9.87%. Pode parecer estranho que um
o realizando somente transa¸oes satisfat´orias tenha uma queda de reputa¸ao no
in´ıcio da simula¸ao, mas isto ´e justificado pela natureza do protocolo de reputa¸ao
P2PWSRep, que leva em considera¸ao as experiˆencias anteriores dos demais os da
rede com este o, bem como a experiˆencia anterior do o que est´a negociando uma
troca de recursos com ele. O que era esperado como resultado ao fim d a simula¸ao,
pela concep¸ao do projeto P2PWSRep, foi obtido.
O pr´oximo experimento considera o o j , o o observado, realizando transa-
¸oes insatisfat´orias durante a simula¸ao, onde o o i faz sucessivas requisi¸oes de sua
reputa¸ao. Considerando que transa¸oes insatisfat´orias ao prejudiciais `a reputa¸ao
de um o, o gr´afico da Figura 6.2 deixa bem claro que o protocolo P2PWSRep
penaliza o o com um decr´escimo de reputa¸ao consider´avel, como mostrado na
curva de reputa¸ao mais acentuada ap´os estas transa¸oes insatisfat´orias ao final dos
100 ciclos de simula¸ao. Assim, tendo a reputa¸ao de j de 0.8 na tabela de reputa¸ao
do o i, ao final da reputa¸ao seu valor equivale a 0.512, representando um a perda
de reputa¸ao de 36% em rela¸ao `a sua reputa¸ao inicial. Ap´os a ocorrˆencia de arias
transa¸oes negativas, a reputa¸ao do o cai, influenciada pela reputa¸ao anterior,
tamem baixa, e pelo comportamento negativo do o na rede P2P.
CAP
´
ITULO 6. SIMULAC¸
˜
AO DO PROTOCOLO P2PWSREP 112
6.3.3 An´alise dos Resultados
Os resultados mostrados no gr´afico da Figura 6.2 demonstram que o proto-
colo P2PWSRep conseguiu apresentar valores esperados para o comportamento dos
os, sendo que seria interessante considerar que o usu´ario pode ter em sua interface
gr´aficos gerados pelo protocolo P2PWSRep que mostram o risco ou benef´ıcio de in-
teragir com determinados os na rede.
´
E bom ressaltar que o P2PWSRep ao toma
decis˜oes autˆonomas para restringir o acesso a um o que tenha baixa reputa¸ao,
at´e porque uma caracter´ıstica de redes que utilizam mecanismos de reputa¸ao ´e que
os os novos tenham reputa¸ao mais baixa que os os mais velhos, e para ganhar
reputa¸ao devem oferecer recursos. O protocolo P2PWSRep mant´em associado ao
peerID `a idade do o. Assim, quando o usu´ario tomar conhecimento da reputa¸ao
de um o, poder´a identificar se ele ´e um o antigo ou novo na rede. Controlar a
reputa¸ao dos os pode ser algo inclusive independente do controle de reputa¸ao de
recursos. Por´em, desaconselha-se que a reputa¸ao de os e recursos do protocolo
P2PWSRep sejam trabalhadas de forma independente, pois a defini¸ao do protocolo
considera mais segura a aplica¸ao das duas abordagens.
Para ajudar na compreens˜ao do proto colo de reputa¸ao P2PWSRep, o gr´afico
da Figura 6.3 apresenta a evolu¸ao da reputa¸ao de um o na rede. Este o foi ob-
servado na simula¸ao enquanto as transa¸oes satisfat´orias e insatisfat´orias ocorriam
aleatoriamente com arios os da rede, que interagiam com ele em busca de seus
recursos. Alguns recursos do n ´o foram assinalados como corrompidos para que nas
requisi¸oes sejam geradas oes negativas e possam reflitir a reputa¸ao do o. Em
vinte ciclos de simula¸ao, o o parte de uma reputa¸ao de 0.8 para 0.51, perdendo
36.25% de sua reputa¸ao inicial. Percebe-se no gr´afico que, nos momentos em que
o o realiza intera¸oes positivas, ele come¸ca a ganhar reputa¸ao, como observado
entre os ciclos 9 e 11, por´em as transa¸oes insatisfat´orias se tornam novamente a
maioria, fazendo com que a reputa¸ao descres¸ca novamente.
CAP
´
ITULO 6. SIMULAC¸
˜
AO DO PROTOCOLO P2PWSREP 113
Figura 6.3: Gr´afico de varia¸ao da reputa¸ao de um o da rede.
6.4 Cen´ario 2 - An´alise do Protocolo de Reputa-
¸ao dos Recursos
O objetivo da simula¸ao aplicada nesta se¸ao ´e comprovar a eficiˆencia do
protocolo P2PWSRep em rela¸ao ao controle de recursos corrompidos, infectados
ou com altera¸oes de metadados a fim de indisponibilizar o acesso aos mesmos na
rede P2P. O p rotocolo P2PWSRep foi elaborado com o objetivo de fazer tamb´em o
controle da reputa¸ao dos recursos, a que o preju´ızo provocado por um o ego´ısta ´e
o desperd´ıcio de banda e intera¸oes na rede, tornando-a mais lenta, por´em o preju´ızo
causado por recursos corrompidos na rede ´e bem maior, pois as taxas de transmiss˜ao
desperdi¸cadas por arquivos corrompidos ao bem maiores que os causados por n ´os
ego´ıstas, sendo isso uma amea¸ca `a rede. Al´em disso, um arquivo infectado ´e uma
amea¸ca ao o participante da rede, e por conseguinte, `a rede. Evitar que estes
recursos permane¸cam na rede ou apontar para os os que os compartilham ´e um
dos objetivos do protocolo P2PWSRep.
CAP
´
ITULO 6. SIMULAC¸
˜
AO DO PROTOCOLO P2PWSREP 114
6.4.1 Descri¸ao do Cen´ario
Neste cen´ario, uma rede com 10.000 os foi populada com recursos ´ıntegros
e corrompidos. Os arquivos corrompidos foram disponibilizados em diversos os da
rede. arios os foram utilizados para fazer requisi¸oes aos recursos contidos nestes
os que compartilham estes arquivos, e foi observada a evolu¸ao das requisi¸oes aos
os que possuem estes arquivos danificados. A simula¸ao durou 25 ciclos e foram
iniciadas as requisi¸oes em n´umero de mil por ciclo. A cada requisi¸ao, o mecanis-
mo de obten¸ao de reputa¸ao de recurso foi utilizado, fazendo com que os os da
rede obtivessem os valores da reputa¸ao dos recursos. Os mesmos recursos foram
espalhados na rede de forma que uma parte seja corrompida e outra parte, seja
´ıntegra. Para realiza¸ao da simula¸ao foi utilizado um mecanismo de inicializa¸ao
de recursos aleatoriamente na rede, onde os os recebem recursos que podem ser
´ıntegros ou ao. Alguns os que possuem recursos corrompidos foram assinalados
para serem observados durante a simula¸ao. Apesar do protocolo P2PWSRep pos-
suir um mecanismo adaptativo para controle de TTL, nesta simula¸ao utilizou-se
um valor fixo de 4.
6.4.2 Resultados
Os resultados da simula¸ao ao apresentados no gr´afico da Figura 6.4, onde se
percebe que inicialmente o n´umero de requisi¸oes era de 997 requisi¸oes por ciclo aos
os observados. A cada ciclo, dos 25 considerados, os os executaram o algoritmo de
reputa¸ao para detec¸ao dos arquivos corrompidos. Quando uma reputa¸ao obtida
esta “corrompida”, o identificador do recurso e do o ao adicionados `a tabela de
reputa¸ao do o que iniciou a busca. Isso permite que, nas pr´oximas pesquisas de
busca na rede, da reputa¸ao deste recurso, seja notificado ao o requisitante sobre a
reputa¸ao ruim, fazendo que o mesmo busque outra fonte. O protocolo P2PWSRep
tamem notifica o o que possui o recurso corrompido para que o mesmo seja
apagado, al´em de incrementar o n´umero de transa¸oes insatisfat´orias com o o,
pois o mesmo est´a disponibilizando conte´udo polu´ıdo na rede.
CAP
´
ITULO 6. SIMULAC¸
˜
AO DO PROTOCOLO P2PWSREP 115
Figura 6.4: Gr´afico do n´umero de requisi¸oes de arquivos corrompidos.
6.4.3 An´alise dos Resultados
O gr´afico da Figura 6.4 mostra que, no final da simula¸ao, os n´umeros
de requisi¸oes aos os que possuem os recursos corrompidos diminuiram para 603
requisi¸oes por ciclo, o que comprova que a reputa¸ao dos recursos corrompidos
foi propagada na rede e contribuiu para redu¸ao do tr´afego da rede e aumento da
seguran¸ca, a que fez com que as fontes de arquivos corrompidos fossem identificadas
e que, requisi¸oes que seriam realizadas para estas fontes fossem redirecionadas a ou-
tros os. Uma op¸ao do protocolo P2PWSRep ´e apagar o arquivo da origem. Por´em,
isso abre para um novo tipo de ataque. O que pode ser feito ´e uma pr´e-negocia¸ao da
remo¸ao do arquivo, fazendo com que o o, mesmo com o arquivo corrompido, tenha
um ganho de reputa¸ao por contribuir na elimina¸ao do conte´udo polu´ıdo da rede
P2P. A redu¸ao de requisi¸oes a arquivos corrompidos foi consider´avel, 39.51%, em
uma simula¸ao de 25 ciclos. Claro que deve ser considerado o volume de conte´udo
polu´ıdo, sendo que o mesmo p er maneceu constante durante a simula¸ao, ao tendo
sido injetados novos arquivos corrompidos.
CAP
´
ITULO 6. SIMULAC¸
˜
AO DO PROTOCOLO P2PWSREP 116
6.5 Cen´ario 3 - An´alise do Protocolo quanto `a
Carga na Rede
A an´alise do protocolo P2PWSRep em rela¸ao `a carga gerada na rede tem
como objetivo ter conhecimento e comprovar que ´e vi´avel utilizar o protocolo, sem
que seja adicionado um n´umero grande de intera¸oes que possam aumentar o fluxo
de dados de controle na rede, al´em de aumentar o tempo de resposta das opera¸oes,
como busca de recursos, download de recursos, dentre outros, a que essas opera¸oes
envolvem a ativao do algoritmo de reputa¸ao.
6.5.1 Descri¸ao do Cen´ario
Na simula¸ao, foi utilizada uma rede de 10.000 os, no mesmo ambiente
computacional das simula¸oes anteriores. Os dados observados na simula¸ao foram
o n´umero de mensagens trafegando na rede, considerando a varia¸ao do TTL para
verificar o alcan¸ce da busca, isto ´e, o n´umero de os consultados na rede. Foram
injetadas arias consultas na rede, geradas por os que fizeram opera¸oes de buscas
de arquivos, de reputa¸ao de os e de recursos. Medir o tempo de resposta das
opera¸oes e o n´umero de os consultados na rede e os os que efetivamente res-
ponderam por alguma das requisi¸oes foram os pontos principais observados nesta
simula¸ao.
6.5.2 Resultados
O primeiro gr´afico, ilustrado na Figura 6.5, mostra que, para um TTL de
valor 1 e 2, o alcance da rede ´e muito pequeno em rela¸ao ao tamanho da mesma. O
valor d e TTL a p artir de 3 mostrou- se bom, a que se tem como resultado quase 50%
de os da rede consultados. Para o TTL igual 4, o n´umero de mensagem na rede
gerado foi de 12.053, sendo que o n´umero de os que foram consultados foi de 7.807,
representando 78% dos os da rede. Para o TTL igual a 5, o n´umero de mensagens
teve um aumento de pouco mais de 5.000 mensagens, para um aumento de alcance
de pouco mais de 1.600 os. Nos TTLs 6 e 7, o alcance ´e praticamente total na
CAP
´
ITULO 6. SIMULAC¸
˜
AO DO PROTOCOLO P2PWSREP 117
rede, por´em o n´umero de mensagens geradas gira em torno de 20.000 trafegando na
rede, com a quantidade de os consultados bem pr´oxima de 10.000, isto ´e, quase a
totalidade da rede.
Figura 6.5: Gr´afico do tr´afego de mensagens versus alcance de busca.
A Figura 6.6 traz os resultados de uma simula¸ao para o tempo de resposta
de consultas de reputa¸ao. Os dados avaliados foram o n´umero de mensagens de
reputa¸ao recebidas como resposta, o n´umero de os consultados, de um total de
100 os que possuem informa¸ao de reputa¸ao para o o buscado e o tempo de
resposta. Os 100 os foram assinalados na inicializa¸ao do experimento. No gr´afico,
vˆe-se uma an´alise mais espec´ıfica do tempo de resposta de uma consulta de reputa¸ao
versus a quantidade de os que respondem, dependendo do valor do TTL associado
`a consulta. A simula¸ao aqui considerada populou 100 os da rede em rela¸ao `a
reputa¸ao de um o que ser´a pesquisada. O tamanh o da rede ´e de 10.000 os. Para
TTL 1 ao houve resposta em rela¸ao a reputa¸ao do o buscado. Isso significa que
a profundidade da busca foi pequena demais para obter dados de reputa¸ao. Com
TTL 2 e 3, o volume de os que responderam foi suficiente para que o protocolo
P2PWSRep tivesse dados para o alculo da reputa¸ao, com um tempo de resposta
bom e dentro do esperado, entre 3 e 5 segundos. Para TTL 4 e 5, o n´umero de os
CAP
´
ITULO 6. SIMULAC¸
˜
AO DO PROTOCOLO P2PWSREP 118
consultados foi bem pr´oximo: 69 e 72 os responderam, respectivamente, ao pedido
de reputa¸ao. Por´em, o tempo de resposta foi alto, entre 8 e 11 segundos. Para
TTL 6 e 7, houve um aumento significativo no tempo de reposta, chegando a ser
quase o dobro em rela¸ao aos TTLs desses valores, por´em a resposta dos os foi
quase 100% dos os que tˆem dados de reputa¸ao a respeito do o pesquisado.
Figura 6.6: Gr´afico do n´umero de respostas de reputa¸ao versus tempo.
6.5.3 An´alise dos Resultados
Diante dos dados, pode-se verificar que quanto maior o TTL, maior a pr o-
fundidade da consulta. Por´em, o volume de m ensagens trafegando na rede pode
sobrecarregar os os, a que os mecanismos de processamento de roteamento e re-
puta¸ao utilizam filas (tabelas hashtable) para fazer esses controles, acarretando
em um n´umero muito grande de mensagens armazenadas nas filas e um n´umero
muito grande de r´eplicas trafegando na rede. O TTL usual para a rede P2PWS
´e 3. O pr otocolo P2PWSRep possui um mecanismo adaptativo que ajusta o TTL
para um n´umero de respostas que pode ser aceito pelo protocolo ou usu´ario. Assim,
o protocolo P2PWSRep pode variar seu alcance de 2 a 6, fazendo que a maioria
das consultas possa obter respostas sem u ma profundidade muito grande, logo nos
CAP
´
ITULO 6. SIMULAC¸
˜
AO DO PROTOCOLO P2PWSREP 119
primeiros valores de TTL.
Isso nos permite avaliar que o atraso na resposta da reputa¸ao pode ser
prejudicial pelo tamanho da janela de tempo definida no o que iniciou a busca.
O protocolo P2PWSRep utiliza um mecanismo adaptativo para regular o TTL, de
forma que isso possa ser de acordo com a posi¸ao do o na rede e dos recursos que
ele b usca, mas isso ao significa que haja uma limita¸ao da profundidade da rede,
mas sim uma diminui¸ao do n´umero de mensagens devido `a obten¸ao de recursos e
dados de reputa¸ao em fontes mais pr´oximas. O valor da janela de tempo para a
pesquisa, ent˜ao, ser´a regulada de acordo com o TTL. Assim, o protocolo fica livre
para fazer controle de TTL adaptativo at´e o TTL de valor 6, sendo que o valor
m´ınimo que o protocolo P2PWSRep tr abalha ´e 2.
6.6 Considera¸oes Finais
Pelos resultados apresentados nos trˆes cen´arios de simula¸ao realizados,
conclui-se que o protocolo P2PWSRep teve um comportamento esperado para o
que foi proposto e, em compara¸ao a outros protocolos, um desempenho bastante
razo´avel, a que foi definido em uma arquitetura descentralizada e sem qualquer
mecanismo de otimiza¸ao de buscas e consultas na rede. O umero de mensagens
geradas na rede foi melhorado pela janela de tempo estabelecida no o requisitante,
de buscas a recursos e reputa¸ao, pelo TTL adaptativo que possibilita uma redu¸ao
no n´umero de requisi¸oes para TTLs menores e pela forma com que a reputa¸ao de
os e recursos ´e consultada, isto ´e, ao a uma mensagem de consulta para cada o
ou recurso, mas uma mensagem que cont´em um array de os ou recursos que ser˜ao
consultados.
O tempo de resposta em rela¸ao `as consultas de reputa¸ao tamb´em mostrou
que o protocolo tem um mecanismo de alculo simples, sem envolver um n´umero
muito grande de intera¸oes ou controles mais seguros de troca de mensagens, uti-
lizando criptografia, como ocorre em outros protocolos.
O protocolo P2PWSRep foi p rojetado para controlar a reputa¸ao de os e
CAP
´
ITULO 6. SIMULAC¸
˜
AO DO PROTOCOLO P2PWSREP 120
recursos, sendo que os dados obtidos da reputa¸ao mostraram que o n´umero de
requisi¸oes a arquivos corrompidos foi reduzido em 40%, levando `a conclus˜ao que o
protocolo consegue eliminar da rede as intera¸oes com os que detˆem estes recursos
esp´urios. A evolu¸ao da reputa¸ao de os tamb´em foi como esperada, onde no gr´afico
da Figura 6.2 ao mostradas trˆes curvas de varia¸ao de reputa¸ao, que permitem
visualizar um comportamento de reputa¸ao bem comum em redes sociais ou P2P.
Uma an´alise geral do resultado da aplica¸ao do protocolo P2PWSRep mostra
que o o que ao compartilha seus dados perde reputa¸ao naturalmente, devido `a
influˆencia hist´orica de sua reputa¸ao ser inferior `a atual, al´em do que o alculo da
reputa¸ao u tilizado pelo protocolo P2PWSRep preza pela reputa¸ao mais recente,
dada a parametriza¸ao escolhida. Quanto `a reputa¸ao de recursos, a diminui¸ao do
n´umero de requisi¸oes a fontes comprometidas mostra mais um ponto positivo no
protocolo, al´em dos mecanismos inseridos para ajuste de busca na rede, diminuindo
o grau de inunda¸ao, n´umero de mensagens e tempos de reposta.
Cap
´
ıtulo 7
Conclus˜ao
A defini¸ao do protocolo de reputa¸ao P2PWSRep possibilita o emprego de
t´ecnicas para identificar e evitar que os mal-intencionados prejudiquem o desem-
penho da infraestrutura da r ede P2P, bem como a diminui¸ao do conte´udo polu´ıdo
nessas redes. O trabalho tamem busca demonstrar que a interoperabilidade e
extensibilidade das redes P2P ´e vi´avel, com a utiliza¸ao de servi¸cos web.
7.1 Contribui¸oes
Reduzir o n´umero de os mal-intencionados e conte´udo polu´ıdo das redes
P2P ao ´e uma tarefa trivial, principalmente devido `as particularidades dessas redes,
que prezam por anonimato e uma independˆencia em rela¸ao a elementos moderado-
res. Propor um protocolo de reputa¸ao e apresentar um modelo baseado em servi¸cos
foi um desafio, pois a alta escalabilidade das redes P2P e o volume do tr´afego gerado
por esse tipo de rede exige que as intera¸oes do protocolo ao adicionem sobrecargas
`a r ede. O protocolo P2PWSRep prezou, desde sua concep¸ao, pela defini¸ao de
mecanismos para redu¸ao do overhead de processamento de mensagens, mas sem
deixar de lado a seguran¸ca contra os principais ataques a que estas r edes est˜ao
suscept´ıveis. Dentre as contribui¸oes deste trabalho, podemos enumerar:
Arquitetura simples e que proporciona escalabilidade, uma vez que utiliza
uma arquitetur a de redes descentralizada e um modelo orientado a servi¸cos,
121
CAP
´
ITULO 7. CONCLUS
˜
AO 122
que reduz as limita¸oes impostas por firewalls, proxies, IPS e outros tipos
de ferramentas de seguran¸ca de redes, a que as mensagens trafegam sobre o
protocolo HTTP;
Protocolo gen´erico, que pode ser utilizado por arios tipos de aplica¸oes, pois
o mesmo faz a avalia¸ao da repu ta¸ao em rela¸ao a um recurso qualquer,
considerando caracter´ısticas da aplica¸ao e ao do recurso compartilhado;
alculo de reputa¸ao distribu´ıdo realizado em trˆes etapas. A primeira ´e a
obten¸ao da reputa¸ao do o (F´ormula 5.1) atraes de uma busca na rede.
Na segunda etapa, ´e realizada uma edia aritm´etica (F´ormula 5.2) no o
que busca a reputa¸ao a fim de normalizar os valores obtidos da rede. Por
´ultimo, ´e realizado o alculo da reputa¸ao utilizando uma edia ponderada
exponencial (F´ormula 5.3), considerando o ´ultimo valor da reputa¸ao obtido
da rede, contido no campo previousRep e o valor atual obtido. O parˆametro
alfa da ormula 5.3, da edia ponderada exponencial ´e utilizado para dar
mais ˆenfase `a reputa¸ao atual ou a anterior. No caso do P2PWSRep, o valor
de alfa escolhido foi de 0.4, dando mais ˆenfase `a reputa¸ao atual, por´em sem
desconsiderar a reputa¸ao anterior do pr´oprio n ´o, a que considerar somente
a reputa¸ao dada por outros os poderia comprometer a transa¸ao;
Proporciona interoperabilidade e extensibilidade ao seguir a metodologia de
orienta¸ao a servi¸cos e a defini¸ao de metadados em formato XML. A defini¸ao
de suas interfaces possibilita o protocolo ser extens´ıvel, podendo ser utilizado
por arios tipos de aplica¸oes de redes P2P, tais como, compartilhamento
de arquivos, grades de computadores que compartilham recursos, sites de
vendas de mercadorias, an´alise de risco de mercado financeiro, sites de rela-
cionamentos, dentre muitas outras. A extensibilidade possibilita a adi¸ao de
mecanismos de seguran¸ca, altera¸oes de mecanismos de b usca ou at´e mesmo
a topologia da rede, d e forma mais simples e modular, al´em da possibilidade
de integra¸ao com redes P2P a existentes, pela defini¸ao de gateways.
Redu¸ao na gera¸ao do n´umero de mensagens, em rela¸ao a outros protocolos,
CAP
´
ITULO 7. CONCLUS
˜
AO 123
utilizando arios mecanismos. O primeiro deles ´e a busca de reputa¸ao de os
e recursos utilizando um array com arios os ou recursos a serem consultados,
ao inv´es de gerar uma mensagem para cada o ou recurso pesquisado. O array
para as buscas ´e bem estruturado, contendo somente o identificador de cada
o ou recurso. A resposta adiciona um campo ao array que ´e o valor de repu-
ta¸ao para os os ou odigo de avalia¸ao do recurso. O segundo mecanismo
´e o TTL adaptativo associado a uma janela de tempo para processamento
das mensagens, que possibilita que as buscas utilizem uma profundidade de
acordo com a localiza¸ao dos os na rede, em rela¸ao aos recursos ou reputa-
¸oes buscadas. Esses mecanismos contribuem diretamente para a redu¸ao do
n´umero de mensagens na rede, apresentando um bom desempenho e tempo
de resposta, como mostrado nas simula¸oes realizadas, mesmo para uma rede
P2P descentralizada como a aqui proposta.
7.2 Trabalhos Futuros
As redes P2P em sido muito utilizadas em diversos tipos de aplica¸oes.
Contudo, um fator negativo em rela¸ao ao seu crescimento ´e o surgimento de novas
t´ecnicas para comprometer o funcionamento das mesmas. Algoritmos de reputa¸ao
tˆem sido uma boa solu¸ao para diminuir o impacto desses ataques e reduzir o umero
de os mal-intencionados e a polui¸ao dessas redes, causadas pelo grande volume de
recursos corrompidos ou infectados. Todavia, as redes P2P n ˜ao est˜ao livres desses
ataques, pois muitos deles trabalham abaixo da camada do protocolo de reputa¸ao,
atingindo o mecanismo de ingresso na rede, gera¸ao de identificadores, roteamento
de mensagens, etc. Assim, durante a elabora¸ao do protocolo P2PWSRep foram
identificados algumas contribui¸oes que podem ser adicionadas por trabalhos fu-
turos, tais como:
Adi¸ao de mecanismos de seguran¸ca ao protocolo, atraes da utiliza¸ao de
criptografia segundo o padr˜ao WS-Security (OASIS), proporcionando suporte
`a integridade e confidencialidade das mensagens, ao permitir que os integrantes
CAP
´
ITULO 7. CONCLUS
˜
AO 124
da rede se comuniquem trocando mensagens criptografadas e assinadas digital-
mente. Al´em disso, valida¸ao de identificadores de os e recursos para evitar
ataques do tipo sybil ou whitewashing;
A implementa¸ao do prot´otipo em si, da rede P2PWSRep, pois foram definidos
o modelo de servi¸cos e realizadas simula¸oes do algoritmo de reputa¸ao. Obter
resultados de uma aplica¸ao real ser´a muito interessante para consolidar o
protocolo P2PWSRep como uma boa solu¸ao para aplica¸oes P2P;
Adapta¸ao do protocolo P2PWSRep para utilizar uma arquitetura centrali-
zada ou com supern´os;
Introdu¸ao de mecanismos de resposta autom´atica a ataques, tais como de-
tec¸ao e remo¸ao de os da rede identificados como maliciosos e detec¸ao e
remo¸ao de recursos da rede corrompidos ou infectados;
Utiliza¸ao de outras m´etricas, tais como volume de dados compartilhados,
n´umero de respostas a buscas de reputa¸ao de os e recursos, diponibilidade
do o, etc., para avaliar a reputa¸ao dos os, al´em de transa¸oes efetivamente
conclu´ıdas.
Referˆencias Bibliogr´aficas
[Abinader and Lins] , Abinader, Jorge Ab´ılio; Lins, Rafael Dueire. Web Services
em Java. Rio de Janeiro. Brazport, 2006.
[Adar and Huberman, 2000] , E. Adar e B. Huberman, Free Riding on Gnutella.
Xerox Palo Alto Research Center, Technical Report, August - 2000. Dispon´ıvel:
http://citeseer.ist.psu.edu/adar00free.html.
[Addison, 2002] , Addison Wesley, Peer to Peer: Collaboration and Sharing over
the Internet, 2002.
[Andersen et al., 2001] , Andersen, D., Balakrishnan, H., Kaashoek, F. Morris, R.,
Resilient Overlay Networks, 18th ACM Symposium on Operating Systems Prin-
ciples, Banff/Canada, Outubro de 2001.
[Andrade et al., 2008] , Andrade, N., Brasileiro, F., Cirne, W., and Mowbray, M.
(2004). Discouraging free riding in a peer-to-peer cpu-sharing grid. In 13th IEEE
Symposium on High Performance Distributed Computing (HPDC’04).
[Barcellos and Gaspary, 2006] , Seguran¸ca e m Redes P2P: Princ´ıpios, Tecnologias
e Desafios, 2006.
[Benz and Durant, 2003] , Benz, Brian., Durant, John R., XML Programming
Bible, 2003.
[BitTorrent, 2008] , BitTorrent. http://bitconjurer.org/bittorrent/.
[Buford et al., 2009] , Bu ford, John F., Yu, Heather., Lua, Eng Keong. P2P Net-
working and Applications, Morgan Kaufmann, 2009.
125
REFER
ˆ
ENCIAS BIBLIOGR
´
AFICAS 126
[CacheLogic Reseach, 2006] , http://www.cachelogic.com/research., 2006.
[Cheng and Friedman, 2005] , Cheng, A. and Friedman, E. (2005). Sybilproof repu-
tation mechanisms. In P2PECON ’05: Proceeding of the 2005 ACM SIGCOMM
workshop on Economics of peer-to-peer systems, pages 128-132, New York, NY,
USA. ACM Press.
[Costa et al., 2005] , Costa, Cristiano., Soares, Vanessa., Benevenuto, Fabricio.,
Vasconcelos, Marisa., Almeida, Jussara., Almeida, Virgilio., Mowbray, Miranda.
Dissemina¸ao de Conte´udo Polu´ıdo em redes P2P, UFMG, 2005.
[Chiozzotto and Silva, 1999] , Chiozzotto, Mauro., Silva, Lu´ıs Antonio Pinto da.
TCP/IP: tecnologia e implementa¸ao, Ed.
´
Erica, ao Paulo, 1999.
[Da Silva, 2007] , Da Silva, Juliano Freitas., etodos para Conten¸ao de Polui¸ao
em Redes P2P, UNISINOS, 2007.
[Damiani et al., 2002] , Damiani, E., Vimercati, S. C., Paraboschi, S., Samarati,
P. and Violante, F. (2002). A Reputation-Based Approach for Choosing Reliable
Resources in Peer-to-Peer Networks. In: Computer and Communications Security
(CCS’02), November 18-22, Washington DC, USA.
[Do Carmo et al., 2006] , Do Carmo, S. B., Barbar, G. S., Coelho, Barbosa, J. F.,
A New Classification for Peer-to-peer Networks Architectures. IEEE, 2006.
[Douceur, 2002] , Douceur, J. R. (2002). The sybil attack. In 1st International Work-
shop on Peer-to-Peer Systems.
[Dumitriu et al., 2005] , Dumitriu, D., Knightly, E., Kuzmanovic, A., Stoica, I., and
Zwaenepoel, W. (2005). Denial-of-service resilience in peer-to-peer file sharing
systems. In ACM SIGMETRICS, 2005.
[eBay, 2008] , eBay (2008). Ebay website. http://www.ebay.com/.
[eDonkey, 2008] , eDonkey Overnet(2008). http://edonkey2000.com/.
[ESM, 2008] , ESM (2008), End System Multicast. http://esm.cs.cmu.edu/.
REFER
ˆ
ENCIAS BIBLIOGR
´
AFICAS 127
[FastTrack, 2008] , Fasttrack. http://www.fasttrack.com.
[Feldman et al., 2004] , Feldman, M., Lai, K., Stoica, I., and Chuang, J. . Robust
incentive techniques for peer-to-peer networks. Proceed ings of the 5th ACM con-
ference on Electronic commerce, pages 102 111, New York, NY, USA. ACM Press,
2004.
[Ferris and Farrell, 2003] , What are Web Services?, Communications of the ACM,
Vol. 46, No. 62003, June 2003.
[Genome@Home, 2008] , Genome (2006). Genome@home.
http://genomeathome.stanford.edu/.
[Gnutella, 2008] , Gnutella (2008). Gnutella website. http://www.gnutella.com/.
[GoogleTalk, 2008] , Google Inc. (2008), www.google.com/talk/intl/pt-BR/.
[Grandison and Sloman, 2000] , Grandison, T. and Sloman, M. (2000). A survey of
trust in internet applications. IEEE Communications Surveys, 3(4):2-16.
[GT-P2P, 2008] , Grupo de Trabalho em Computa¸ao Colaborativa (GT-P2P) -
RNP, www.gprt.ufpe.br/gtp2p, 2008.
[Gupta, 2003] , Gupta, M., Judge, P., and Ammar, M. (2003). A Reputation System
for Peer-to-peer Networks. In NOSSDAV ’03: Proceedings of the 13th interna-
tional workshop on Network and operating systems support for digital audio and
video, pages 144-152, New York, NY, USA. ACM Press.
[ICQ, 2008] , ICQ (2008). ICQ.com website. http://www.icq.com/.
[InteGrade, 2008] , Integrade, www.integrade.org.br, 2008.
[IRTF-P2P-GROUP, 2008] , Peer-to-Peer Research Group.
http://www.irtf.org/charters/p2prg.html.
[Jabber, 2008] , Jabber (2008). Jabber: Open instant messaging and a whole lot
more, powered by xmpp. http://www.jabber.org/.
REFER
ˆ
ENCIAS BIBLIOGR
´
AFICAS 128
[Jacobson, 1988] , Jacobson. Congestion avoidance and control, 1988.
[(Kamvar et al., 2003] , 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 (WWW
’03), pages 640-651, New York, NY, USA. ACM Press.
[Kazaa, 2008] , Kazaa (2008). Kazza web site. http://www.kazaa.com.
[LawsTalk, 2008] , Lawstalk, http://laws.deinf.ufma.br, 2008.
[Liang et al., 2005] , Liang, J., Kumar, R., Xi, Y., and Ross, K. W. (2005). Pollution
in p2p file sharing systems. In Proc. of IEEE Infocom, Miami, FL, USA.
[Loo, 2003] , A. W. Loo, The Future of The Peer-to-Peer Computing, Communica-
tions of the ACM, 46(9), pp.57-61, 2003.
[Marti and Garcia-Molina, 2006] , Marti, S. and Garcia-Molina, H. (2006). Taxon-
omy of trust: Categorizing p2p reputation systems. Comput er Networks, 50(4):472
484.
[MercadoLivre, 2008] , Mercado Livre web si te. http://www.mercadolivre.com.br.
[MSN, 2008] , MSN (2008). MSN.com website. http://www.msn.com/.
[Napster, 2008] , Napster, www.napster.com/., 2008.
[Oasis, 2008] , Modelo de Referˆencia para Arquitetura Orientada a Servi¸co 1.0. OA-
SIS Committee Specification Business Transaction Protocol, Vers˜ao 1.0, Julho
2006.
[OpenNap, 2008] , OpenNap (2006). OpenNap: Open Source Napster Server web-
site. http://opennap.sourceforge.net/.
[PeerSim, 2009] , Jelasity., ark , Montresor., Alberto , Jesi, Gian Paolo., Voul-
garis., Spyros. The PeerSim Simulator. http://peersim.sf.net/.
REFER
ˆ
ENCIAS BIBLIOGR
´
AFICAS 129
[Parameswaran et al., 2001] , Parameswaran, M., Susarla, A., Whinston, A., P2P
Networking: An Information-S haring Alternative. IEEE Computer, Julho de
2001.
[Righi et al., 2004] , RIGHI, Rafael R., Pellissari, Felipe R., Westphall, Carla M.
Escambo: Um Modelo de Reputa¸ao e Micropagamentos para Sistemas Peer-to-
Peer, CBComp. 2004.
[Rocha et al., 2004] , Peer-to-Peer: Computa¸ao Colaborativa na Internet. Mini-
curso, SBRC, 2004.
[Sadok, 2003] , Computa¸ao Colaborativa (P2P), Technical Work, Gru po
de Trabalho da Rede Nacional de Pesquisa - mar¸co 2003. Dispon´ıvel:
http://www.rnp.br/arquivo/gt/2003/p2p.pdf.
[Seti@Home, 2008] , SETI (2006). SETI@home website.
http://setiathome.ssl.berkeley.edu/.
[Skype, 2008] , Skype (2008). Skype. http://www.skype.com/.
[Stallings, 2007] , Stallings, William., Criptografia e Seguran¸ca de Redes: Princ´ıpios
e Pr´aticas. Prentice-Hall, 2007.
[Ting and Deters, 2003] , Ting, Nyik San, Deters, Ralph. A Generic Peer-to-Peer
Network Simulator, technical report, Department of Computer Science, Univer-
sity of Saskatchewan, Junho de 2003.
[W3C, 2008] , Web services definition from W 3C Web S ervices Architecture Work-
ing Group, Web Services Architecture Requirements, W3C Working Draft, ( Aug.
19, 2002); www.w3.org/TR/2002/WD-wsa-reqs-20020819
[Weerawarana et al, 2005] , Weerawarana, Sanjiva; Curbera, Francisco; Leymann,
Frank; Storey, Tony; Ferguson, Donald F. Web Services Platform Architecture:
SOAP, WSDL, W S-Policy, WS-Addressing, WS-BPEL, WS-Reliable Messaging,
and More. Prentice Hall, 2005.
REFER
ˆ
ENCIAS BIBLIOGR
´
AFICAS 130
[Wilson, 2004] , Brendon J. Project Jxta book, Vancouver, Canada, 2004.
[Xiong and Liu, 2004] , L. Xiong and L. Liu. Peertrust: Supporting reputation-based
trust for peer-to-peer electronic communities. IEEE TKDE,16(7):843-857, July
2004.
[YahooMessenger, 2008] , Yahoo Inc., http://br.messenger.yahoo.com, 2008.
[Yang and Molina, 2003] , B. Yang e H. Garcia-Molina, Ppay: Micropayments for
Peer-to-Peer Systems, in Proc. 2003 CCS, pp. 27-31.
Apˆen d iceAn exos
Ap
ˆ
endice A
Listagens de odigos de arquivos fontes e arquivos de configura¸ao do ambiente de
simula¸ao.
A.1 Anexo 1
Este anexo mostra o arquivo utilizado para configura¸ao do simulador PeerSim.
Listagem A.1: Arquivo de configura¸ao da simula¸ao
1 s i m ul a t io n . c y c l e s 200
2 s i m ul a t io n . ex per imen ts 1
3
4 c o n t r o l . 0 p eersim . cdsim . S h u f f l e
5
6 network . s i z e 10000
7 network . maxSize 15000
8 network . node P2PWSRepNode
9
10 i n c l u d e . p r o t o c o l gnu
11
12 p r o t o c ol . gnu p2pwsrep . Gn u t e ll a Pr ot o co l
13 p r o t o c ol . gnu . t t l 4
14
15 i n i t . 0 peers im . dynamics . WireScaleFreeBA
16 i n i t . 0 . p r o t o c o l gnu
17 i n i t . 0 . k 2
18 i n i t . 0 . und ir
131
AP
ˆ
ENDICE A. 132
19
20 i n i t . 1 p2pwsrep . P 2P WS Re pI n it ia li ze rF ile s
21 i n i t . 2 p2pwsrep . P2PWSRep I nitializerReputa t ion
22 i n i t . 3 p2pwsrep . P 2PW SR epI ni tia li z er Rep ut ati on F il es
23
24 i n i t . 4 p2pwsrep . P2PWSRepInitializer
25 i n i t . 4 . p r o t o c o l gnu
26 i n i t . 4 . keyword rock
27 i n i t . 4 . que ry
nod es 1
28 i n i t . 4 . q u e r y
i n t e r v a l 4
29 i n i t . 4 . max
que rie s 1
30
31 c o n t r o l . 0 p eersim . r e p o r t s . GraphStats
32 c o n t r o l . 0 . p r o t o c o l p2pwsrep
33 c o n t r o l . 0 . undi r
34 c o n t r o l . 0 . n l 1
35 c o n t r o l . 0 . nc 1
36
37 c o n t r o l . 1 p2pwsrep . P2PWSRepGraphStats
38 c o n t r o l . 1 . p r o t o c o l p2pwsrep
39 c o n t r o l . 1 . o u tf graphs t a t s
40 c o n t r o l . 1 . o n ly o n e c y c l e
41 c o n t r o l . 1 . from 0
A.2 Anexo 2
Este anexo mostra um log de sa´ıda de uma simula¸ao.
Listagem A.2: Log de sa´ıda da simula¸ao da rede P2PWS
1 Sim ulat or : lo ad i n g c o n f i g u r a t i o n
2 C o n f i gP r o p e r t i e s : F i l e temp late /p2wspreps im u la t or . tx t loa d ed .
3 Sim ulat or : Number o f ex p eri ment s 1
4 Sim ulat or : s t a r t i n g experiment 0 in vo ki ng pe ersim . cdsim . CDSimulator
5 Random see d : 123456789
6 CDSimulator : r e s e t t i n g
7 tamanho da red e : 10
AP
ˆ
ENDICE A. 133
8 CDSimulator : r u n ning i n i t i a l i z e r s
9 C o n f ig u ra t io n f i l e s to nodes
10 The s i m ul a t io n w i l l se a rc h f o r : rock
11 Running i n i t i a l i z e r i n i t . 0 : cl a ss pee rsim . dynamics . WireScaleFreeBA
12 Running i n i t i a l i z e r i n i t . 1 : cl a ss p2pwsrep . P2P WS Re pI ni t ia li ze rF il e s
13 <<< F i l e c r e a t e in node 8 >>>
14 <<< F i l e c r e a t e in node 3 >>>
15 Running i n i t i a l i z e r i n i t . 2 : cl a ss p2pwsrep .
P2PWSRepIn i tializerReputatio n
16 Running i n i t i a l i z e r i n i t . 4 : cl a ss p2pwsrep . P2PWSRepInitializer
17 CDSimulator : s t a r t i n g s im u l at i o n
18 I t s searching in nodeId : 0
19 Node : 0 sending to: 2
20 It s s e a r ch i n g in nodeId : 2
21 2 f or wa r di ng to node : 8 t t l : 1 type : 0
22 2 f or wa r di ng to node : 3 t t l : 1 type : 0
23 2 f or wa r di ng to node : 4 t t l : 1 type : 0
24 2 f or wa r di ng to node : 1 t t l : 1 type : 0
25 I t s searching in nodeId : 3
26 File found in nodeId 3 ---> File name: rock music
27 It s s e a r ch i n g in nodeId : 4
28 4 f or wa r di ng to node : 1 t t l : 2 type : 0
29 4 f or wa r di ng to node : 5 t t l : 2 type : 0
30 5 f or wa r di ng to node : 9 t t l : 1 type : 3
31 5 f or wa r di ng to node : 6 t t l : 1 type : 3
32 5 f or wa r di ng to node : 7 t t l : 1 type : 3
33 5 f or wa r di ng to node : 8 t t l : 1 type : 3
34 [ . . . ]
35
36 7 f or wa r di ng to node : 9 t t l : 2 type : 3
37 7 f or wa r di ng to node : 1 t t l : 2 type : 3
38 I t s searching in nodeId : 7
39 7 forwarding to node: 9 ttl: 4 type: 0
40 7 forwarding to node: 1 ttl: 4 type: 0
41 It s s e a r ch i n g in nodeId : 8
42 F i l e found i n nodeId 8 > F i l e name : rock music
43 8 f or wa r di ng to node : 2 t t l : 1 type : 4
AP
ˆ
ENDICE A. 134
44 8 f or wa r di ng to node : 2 t t l : 2 type : 3
45 I t s searching in nodeId : 9
46 9 forwarding to node: 5 ttl: 1 type: 4
47 It s s e a r ch i n g in nodeId : 1
48 1 f or wa r di ng to node : 3 t t l : 2 type : 0
49 1 f or wa r di ng to node : 4 t t l : 1 type : 3
50 1 f or wa r di ng to node : 2 t t l : 1 type : 3
51 [ . . . ]
Livros Grátis
( http://www.livrosgratis.com.br )
Milhares de Livros para Download:
Baixar livros de Administração
Baixar livros de Agronomia
Baixar livros de Arquitetura
Baixar livros de Artes
Baixar livros de Astronomia
Baixar livros de Biologia Geral
Baixar livros de Ciência da Computação
Baixar livros de Ciência da Informação
Baixar livros de Ciência Política
Baixar livros de Ciências da Saúde
Baixar livros de Comunicação
Baixar livros do Conselho Nacional de Educação - CNE
Baixar livros de Defesa civil
Baixar livros de Direito
Baixar livros de Direitos humanos
Baixar livros de Economia
Baixar livros de Economia Doméstica
Baixar livros de Educação
Baixar livros de Educação - Trânsito
Baixar livros de Educação Física
Baixar livros de Engenharia Aeroespacial
Baixar livros de Farmácia
Baixar livros de Filosofia
Baixar livros de Física
Baixar livros de Geociências
Baixar livros de Geografia
Baixar livros de História
Baixar livros de Línguas
Baixar livros de Literatura
Baixar livros de Literatura de Cordel
Baixar livros de Literatura Infantil
Baixar livros de Matemática
Baixar livros de Medicina
Baixar livros de Medicina Veterinária
Baixar livros de Meio Ambiente
Baixar livros de Meteorologia
Baixar Monografias e TCC
Baixar livros Multidisciplinar
Baixar livros de Música
Baixar livros de Psicologia
Baixar livros de Química
Baixar livros de Saúde Coletiva
Baixar livros de Serviço Social
Baixar livros de Sociologia
Baixar livros de Teologia
Baixar livros de Trabalho
Baixar livros de Turismo