Вы находитесь на странице: 1из 22

Universidade Gama Filho

Curso de Gesto em Redes de Computadores

Aplicaes P2P
Disciplina: Redes IV Professor: Antnio

Elaborado pelos alunos: Emanuele Cristine Raphael Fidelis Renato Belo Renato Luderer

Rio de Janeiro

Outubro / 2005

SUMRIO

Resumo ........................................................................................................3 1. Introduo ................................................................................................4 2. Conceitos Bsicos ......................................................................................5 2.1 Arquitetura Cliente-Servidor...................................................................5 2.2 Arquitetura P2P.....................................................................................5 3. Aplicaes P2P............................................................................................6 3.1 Napster Modelo Centralizado ...............................................................6 3.1.1 Arquitetura....................................................................................6 3.1.2 Procedimento de Busca...................................................................7 3.1.3 Transferncia de Arquivos ..............................................................8 3.2 Gnutella Modelo de Inundao de Consultas .........................................8 3.2.1 Arquitetura ...................................................................................8 3.2.2 Procedimentos de Busca..................................................................9 3.2.3 Transferncia de Arquivos .............................................................11 3.3 Freenet .............................................................................................12 3.3.1 Arquitetura .................................................................................13 3.3.2 Procedimento de Busca.................................................................13 3.2.3 Transferncia de Arquivos .............................................................14 3.4 KaZaA Modelo Hierrquivo ................................................................14 3.4.1 Arquitetura..................................................................................15 3.4.2 Procedimento de Busca ................................................................15 3.4.3 Transferncia de Arquivos .............................................................16 4. Outras Aplicaes .....................................................................................17 4.1 eMule ................................................................................................17 4.2 BitTorrent...........................................................................................17 5. Plataformas de desenvolvimento ................................................................18 5.1 O projeto JXTA ...................................................................................18 Concluso ...................................................................................................20 Referncias Bibliogrficas ..............................................................................21

TABELAS E FIGURAS

Figura 1: Troca de mensagens Napster .............................................................7 Figura 2: Troca de mensagens Gnutella...........................................................10 Figura 3: Esquema .......................................................................................11 Figura 4: Mecanismo de replicao de arquivos do Freenet ...............................12 Figura 5: Conexo Superns .........................................................................15 Tabela 1: Etapas da adio de um elemento Gnutella .........................................9 Tabela 2: Roteamento Freenet ......................................................................13

RESUMO

O presente trabalho tem por objetivo apresentar os conceitos por trs da arquitetura de rede P2P (peer-to-peer) e exemplificar sua atual aplicabilidade tecnolgica. Ele inicia definindo os diferentes conceitos de rede P2P, classifica, analisa e compara algumas das aplicaes mais populares de P2P ( Napster, Gnutella, Freenet), bem como as aplicaes mais atuais (KaZaA, eMule, BitTorrent) enfatizando as vantagens e desvantagens de cada uma e o diferencial em relao s suas arquiteturas, protocolos de busca e transferncia utilizados por cada uma. Ao final, comentamos o estudo das tecnologias disponveis para o desenvolvimento em P2P, como o JXTA.

INTRODUO

Com o intuito de aperfeioar a utilizao dos recursos e aumentar a confiabilidade das aplicaes, a tendncia dos ltimos anos de fixar o desenvolvimento das aplicaes nos sistemas distribudos. Embora a abordagem mais utilizada para estes sistemas seja a de cliente/servidor, notvel o crescimento cada vez maior da computao colaborativa distribuda, na qual as redes de comunicao peer-to-peer (P2P) se baseiam. No incio de 2004, o compartilhamento de arquivos P2P respondia por mais trfego na Internet do que qualquer outra aplicao, incluindo a Web. Assim, exclusivamente em termos de trfego, o compartilhamento de arquivos P2P pode ser considerado uma das aplicaes mais importantes da Internet. Um dispositivo numa rede P2P pode permitir o acesso no s a msicas MP3 como a qualquer tipo de recurso que possui ao seu dispor (vdeos, documentos, programas, etc). Apesar da fama pela distribuio ilegal de arquivos com direitos de cpia e propriedade intelectual, a tecnologia P2P tem mais a oferecer do que acesso fcil msica ou vdeos. Por exemplo, para pesquisar uma informao na Internet, normalmente utilizado um mecanismo de pesquisa na Web (o Google por exemplo). Este tipo de busca na maioria das vezes exibe uma lista com milhares de resultados, sendo que muitos j expiraram, ou j no existem, uma vez que as pginas sofrem atualizaes com muito mais freqncia do que os Bancos de Dados so atualizados. O problema atual a centralizao do conhecimento e dos recursos. Alm dessas desvantagens, requererem muita infraestrutura nos servidores e toda a informao pode ficar inacessvel caso o servidor perca a ligao rede. Todos estes problemas so evitados se essa mesma busca for realizada utilizando uma aplicao P2P.

Conceitos Bsicos

A tecnologia peer-to-peer consiste na comunicao direta entre duas mquinas, visando o compartilhamento de arquivos ou servios. Resumindo, os ns da rede devem estabelecer suas conexes de forma independente e descentralizada, de modo que cada um deles desempenhe tanto as funes de cliente como de servidor. Uma diferena fundamental em relao ao esquema cliente-servidor tradicional em relao troca de dados e responsabilidades, conforme descreveremos nos tpicos a seguir.

2.1

Arquitetura Cliente-Servidor

H uma entidade centralizadora (servidor) que a nica a prover os servios e contedo (servios providos pelo protocolo TCP/IP, por exemplo). Os softwares so diferentes, sendo que o cliente somente faz uso do contedo ou execuo de servios disponibilizados pelo servidor, sem compartilhar nenhum de seus prprios recursos. Neste caso, o servidor geralmente deve possuir maior poder de processamento que os clientes. Os ns podem atuar ou como clientes ou como servidores, mas nunca conjugar ambas as capacidades.

2.2 Arquitetura P2P


Possui uma estrutura distribuda, onde a questo da administrao dos servios de responsabilidade do protocolo que mantm o servio ativo e dos participantes da rede (ns, ou pontos) Efetua uma troca de servios simtrica. Isto quer dizer que os ns do sistema possuem softwares idnticos, com capacidades e responsabilidades semelhantes. Entretanto, dentro do conceito de arquitetura P2P existe uma subdiviso entre as com e sem uma entidade central (puras e hbridas).

Arquitetura P2P Pura: Deve ser inicialmente P2P conforme a descrio anterior e, alm disso, qualquer n da rede deve poder ser individualmente removido sem que a rede sofra quaisquer perdas em termos de servio.

Arquitetura P2P Hbrida: Deve ser inicialmente P2P conforme a descrio anterior e, alm disso, ter a necessidade de uma entidade central para prover parte dos servios da rede. importante ressaltar que, embora ambas necessitem de uma entidade central, existe uma diferena entre a arquitetura P2P hbrida e a arquitetura cliente-servidor, e esta est no papel dos clientes, que somente na arquitetura P2P hbrida,

compartilham entre si seus recursos de hardware bem como podem prover contedo e servios rede.

3
As mensagens aplicaes P2P podem

Aplicaes P2P
ser subdivididas em diversas trabalhos categorias, desde a

instantneas,

computao

distribuda,

colaborativos

compartilhamento de arquivos, uma das reas onde a tecnologia P2P tem alcanado maior sucesso. Vrias Aplicaes tm sido usadas por usurios da Internet para burlar as limitaes de largura de banda dos servidores, que em geral, impedem a transferncia de arquivos grandes, aproveitando as vantagens da infra-estrutura j existente. Neste trabalho citaremos algumas dessas aplicaes e seu funcionamento.

3.1

Napster Modelo Centralizado

Como todos se lembram, o Napster, desenvolvido por Shawn Fanning em 1999, foi o primeiro software popular que permitia aos usurios trocarem arquivos de udio sem ter que pagar coisa alguma. Ele possibilitava que qualquer par pudesse anunciar os arquivos MP3 que dispunham em sua mquina e baixar arquivos MP3 de outras mquinas conectados ao servidor Napster. Tambm possua alguns outros recursos como mensagem instantnea, salas de bate papo, grupos de amigos e informativos sobre msica. No entanto, a aplicao permitia que fossem baixados exclusivamente arquivos MP3. Sua popularidade era tanta que, no final do ano de 2000, as estatsticas de uso da aplicao apontavam nmeros como: - Cerca de 10.000 msicas trocadas por segundo; - Mais de 100 usurios tentando conectar por segundo; - Um pblico total de 75 milhes de usurios.

3.1.1 Arquitetura
O Napster definido como uma aplicao Peer-to-peer Hbrida, devido, justamente, presena do servidor (ou conjunto de servidores), o qual centraliza toda atividade existente na rede. Quando o usurio lana a aplicao de compartilhamento de arquivos P2P, ela contata o servidor de diretrio. Especificamente, a aplicao que est executando no par informa (upload) ao servidor de diretrio seu endereo IP e os nomes dos objetos que esto disponveis para compartilhamento em seu disco local, para que deste modo, o

servidor de diretrio saiba quais objetos o par tem disponveis para compartilhar. Esse procedimento realizado a cada par que fica ativo, sendo criado desta forma, um banco de dados centralizado, dinmico, que mapeia cada nome de objeto para um conjunto de endereos IP. Quando um par ativo obtm um novo objeto ou remove um objeto, informa ao servidor de diretrio, de modo que este possa atualizar seu banco de dados. Para manter seu banco de dados atualizado, o servidor de diretrio deve poder determinar quando um par se desconecta, o que pode ocorrer quando o par fecha sua aplicao P2P cliente ou simplesmente sai da Internet. Um modo de monitorar quais pares continuam conectados enviar mensagens periodicamente para verificar se eles respondem. Se o servidor de diretrio determinar que um par no esteja mais conectado, ele remove do banco de dados o endereo IP dele.

3.1.2

Procedimento de Busca

Como ilustra a figura 1, extrada do site http://150.162.90.250/teses, um usurio conectado (1) faz uma busca requisitando o contedo desejado (2). O servidor Napster responde se existe o arquivo desejado e onde est localizado (3). Caso exista, uma conexo direta estabelecida com o computador onde o arquivo est armazenado, para que seja efetuado o download (4).

Figura1: Trioca de mensagens Napster

3.1.3

Transferncia de Arquivos

Os arquivos so transferidos diretamente entre a origem e o destino utilizando o protocolo http, sem interveno do servidor. Porem nota-se facilmente que esta arquitetura no inteiramente do tipo P2P. Isto porque embora a transferncia dos arquivos ocorra de forma distribuda, as buscas so respondidas de uma forma cliente/servidor tradicional. Utilizar um diretrio centralizado para localizar contedo conceitualmente direto, mas tem vrias desvantagens. - Problema de Escalabilidade: Uma vez que requer servidores maiores quando o nmero de requisies aumenta, e mais espao para armazenamento medida que a quantidade de usurios cresce. - nico ponto de falha: Se o servidor de diretrio cair, toda a aplicao P2P cair. Mesmo utilizando um conjunto de servidores redundantes, conexes da Internet com o servidor podem falhar, o que provoca a queda da aplicao inteira. - Violao de direitos autorais: Quando uma empresa P2P tem um servidor de diretrio centralizado, pode sofrer sanes judiciais que a obriguem a fechar o servidor de diretrio, como ocorreu com o Napster. mais difcil fechar as arquiteturas mais descentralizadas. Porm existem centenas de clones circulando e sendo utilizados na internet, um dos mais famosos o Imesh.

3.2

Gnutella Modelo de Inundao de Consultas

Aproveitando a deixa do Napster, em maro de 2000 surge o projeto Gnutella, uma aplicao de compartilhamento de arquivos criada pela Nullsoft, uma subdiviso da AOL, que, aps perceber que poderia ter futuros problemas de infrao de direitos autorais, o levou a um passo mais longe, eliminando a necessidade de um servidor central para pesquisa. Gnutella localiza contedo utilizando abordagem totalmente distribuda, oposta do Napster.

3.2.1

Arquitetura

Pode-se dizer que o Gnutella um dos primeiros protocolos e aplicaes verdadeiramente P2P (arquitetura P2P pura). A rede Gnutella consiste em um sistema descentralizado onde os ns esto conectados via TCP/IP e executando um software que implementa o protocolo Gnutella. Os peers na rede Gnutella so responsveis, no s por servir arquivos, mas tambm por responder a pesquisas e encaminhar mensagens de outros peers. Embora no necessite de nenhum servidor central, para entrar na rede Gnutella necessrio saber previamente um endereo IP de outro peer que j participa da

rede. A rede Gnutella do tipo broadcast, no qual consultas so duplicadas e repetidas para os demais ns, conforme explicaremos com mais detalhes. H clientes Gnutella disponveis para diferentes plataformas, tais como: Windows, Unix, Macintosh e Linux. Alguns dos mais populares so: BearShare, WinMX, Morpheus, Gnucleus e LimeWire.

3.2.2

Procedimento de Busca

Antes de explicarmos como funciona o processo de busca em uma rede Gnutella, vamos falar sobre as etapas da conexo de um usurio rede, atravs de aplicaes clientes. Um n que deseja conectar-se a uma rede Gnutella precisa encontrar um ponto de entrada (ou acesso) para o sistema. Cada membro da rede pode servir como ponte para que outros ns se unam a uma rede de sobreposio. No processo de adio de um novo elemento (participante) ao Gnutella, o novo elemento cumprimenta um dos membros da rede e este por sua vez, apresenta o novo integrante aos seus conhecidos. A partir desse instante a rede Gnutella reconhece o novo elemento e reconhecida por ele. Abaixo, listamos as etapas do processo de adio de um novo participante rede Gnutella:

O par deve descobrir um ponto de acesso (porta de entrada) rede. OBS: Uma alternativa para resolver o problema de autocarregamento (bootstrap) o cliente 1: Gnutella manter uma lista de pares (endereos IP) que esto frequentemente ativos na rede Gnutella; alternadamente, ele pode contatar um site Gnutella que mantenha uma dessas listas. 2: Ao obter esta lista, o cliente envia uma mensagem PING ao ponto de acesso escolhido (esta mensagem contm um campo de contagem limite de pares) O ponto de acesso reconhece o pedido do novo participante e repassa seu PING 3: para seus vizinhos (o campo de contagem vai sendo decrementado at chegar ao ultimo par: 0). 4: Os ns que receberam o pedido respondem com uma mensagem PONG informando que passam a conhecer o novo integrante O novo integrante reconhece as mensagens PONG, contendo o endereo IP dos pares e monta sua lista de estaes reconhecidas.

5:

6: O elemento agregado ao Gnutella e torna-se parte ativa da topologia


Tabela1: Etapas da adio de um elemento Gnutella

No momento que um par deseja uma informao, ele elabora uma mensagem de requisio e envia para os elementos prximos na rede de sobreposio montada sobre conexes TCP j existentes (aqueles pares que lhe foram apresentados).

10

Por exemplo, quando o usurio Maria quer localizar a msica Pais e filhos, seu cliente Gnutella envia a todos os seus vizinhos uma mensagem Gnutella Query que inclui as palavras chave Pais e filhos, para verificar se esta combina com algum dos arquivos compartilhados pelo par. Esses vizinhos retransmitem a mensagem a todos os seus vizinhos e assim por diante. Esse processo, mostrado na figura 2 (http://asc.di.fct.unl.pt/rc/aulas-teoricas/cap2.pdf), denominado inundao de consultas. Se houver uma compatibilidade, o par devolve Maria uma mensagem QueryHit contendo o nome e o tamanho do arquivo compatvel. A mensagem QueryHit segue o caminho inverso da mensagem Query; portanto, utiliza conexes TCP j existentes. O processo Gnutella de Maria pode receber mensagens QueryHit de mais de um par e ela pode selecionar um (ou mais) par(es) desse conjunto, por exemplo, o de Joo, para baixar Pais e Filhos. Seu processo Gnutella estabelece uma conexo TCP direta com o de Joo e envia para essa conexo uma mensagem GET http, incluindo o nome do arquivo. Ao contrrio das mensagens Query e Query Hit, as mensagens http Get e de resposta so enviadas diretamente entre os dois pares, fora da rede de sobreposio, como mostra a figura. To logo Maria receba o arquivo inteiro, a conexo TCP entre ela e Joo encerrada.

Figura2: Trioca de mensagens Gnutella

Este processo, apesar de simples e bem estruturado, pode sofrer srios problemas de escalabilidade, pois sempre que um par inicia uma consulta, ela se propaga em todos os outros pares presentes na rede de sobreposio, introduzindo uma quantidade significativa de trfego na Internet. A tentativa de soluo encontrada pelos projetistas da Gnutella foi a inundao de consultas de escopo limitado. O armazenamento de pesquisas recentes (caching) tambm usado para melhorar a escalabilidade. Entendendo a inundao de consultas de escopo limitado: O protocolo Gnutella utiliza um parmetro TTL (Time to live) no cabealho da mensagem Query para especificar o nmero mximo de vezes que a consulta pode se propagar para outros ns (no Gnutella este valor 7). A cada vez que um par recebe a

11

mensagem Query, este nmero decrementado, at que seu valor seja 0 e a consulta seja descartada. Essa peculiaridade uma das justificativas para o fato de dois elementos receberam respostas diferentes do Gnutella, lanando a mesma chave de busca. Evidentemente, a inundao de consultas de escopo limitado reduz o trfego de consultas introduzido na Internet, porm, utilizando Gnutella, pode haver alta probabilidade de voc no localizar o contedo que deseja mesmo que ele esteja presente em algum par, mas este est fora do seu escopo.

3.2.3

Transferncia de Arquivos

Uma vez que o n que realizou a busca recebe uma resposta positiva, ele sabe o endereo IP do n, ou dos ns, que atendeu, ou atenderam, a sua consulta. Sendo assim, ele abre uma conexo TCP/IP diretamente para o n que possui os arquivos. Se o n que contm os arquivos est embaixo de um firewall, o n envia uma consulta push, que diz para o n que contm os arquivos para ele enviar determinados arquivos ao solicitante. Caso as duas mquinas estejam em baixo de um firewall, outras tcnicas mais elaboradas devem ser utilizadas. Mecanismo Push: Conforme mostra a figura 3 (http://www.gta.ufrj.br/seminarios /semin2003_1/ rafael/gnu.htm), se existe um firewall entre os peers na parte inferior da figura, ser necessrio o uso do esquema de push. Isto porque o servent da esquerda inferior no pode se conectar no peer da direita inferior para transferir o arquivo desejado porque o mesmo est protegido por um firewall. O servent que realizou a busca enviar um Push que ser propagado at o servent que contm o arquivo desejado. Quando o servent que enviou o QueryHit receber o Push, o mesmo ir se conectar na porta e IP especificados na mensagem Push recebida e transferir o arquivo requisitado. O mecanismo Push uma forma de fazer com que o lado que seria respondedor atue como iniciador. Ou seja, o peer que envio ou o QueryHit e que contm o arquivo a ser transferido inicia a conexo para transferir o arquivo. OBS: A especificao no diz quando o servent dever tentar o uso deste esquema, mas uma implementao provavelmente lanar uso do push quando uma conexo direta falhar.

Figura3: Esquema Push

12

O protocolo utilizado para a transferncia de arquivos o HTTP. O servent que esta atuando como iniciador manda uma mensagem do tipo GET com a string abaixo para o servent atuando como servidor. O Gnutella vulnervel aos ns caronas aqueles que no compartilham recursos e atuam como sangue-sugas na rede, pois ele no possui mecanismos para diferenciar quais ns so responsveis no ambiente colaborativo. Os elementos caronas recebero pedidos e sempre iro repass-los frente, nunca respond-los positivamente. Essa atitude apenas aumenta o tempo de envio de uma solicitao e contribui para a degradao do desempenho do sistema em geral.

3.3

Freenet

O Freenet um sistema open-source descentralizado de distribuio de arquivos que nasceu de um projeto iniciado em 1997 por Ian Clarke na diviso de informtica da Universidade de Edinburgh. Seus principais objetivos so: permitir que pessoas distribuam recursos anonimamente, permitir consultas annimas ao conjunto de recursos e impossibilitar a retirada completa de um recurso da rede por algum rgo de censura ou entidade imprpria. Tecnicamente, o Freenet possui um mecanismo dinmico de publicao que cria rplicas dos arquivos solicitados nos peers entre o solicitante e o fornecedor. Isso possibilita otimizar buscas dinamicamente, diminuindo assim o nmero de saltos, uma vez que os peers de interesse comum tendem a estar conectados de forma direta ou prxima, conforme a Figura 4.

Figura4: Mecanismo de replicao de arquivos do Freenet

O uso extensivo de tcnicas de replicao uma das formas encontradas pelo Freenet para efetivar os seus objetivos. O Freenet constri um grande repositrio de informaes, onde cada n da rede peer-to-peer colabora com recursos e espao de armazenamento. Diferente do Gnutella que prev que cada n conhece claramente os recursos que esta compartilhando para o ambiente, no Freenet os recursos circulam entre os discos rgidos ociosos e cada elemento no possui a identificao do contedo que esta

13

guardado em seu disco em dado instante. Ele entende apenas que participa e colabora com o Freenet.

3.3.1

Arquitetura

Freenet possui uma topologia de rede similar a do Gnutella, exceto pelo fato de que o Freenet tem como objetivo principal criar um sistema global de armazenamento de informaes. O foco principal no armazenamento de arquivos. A rede Freenet no apenas rotea mensagens, ela tambm armazena vrios arquivos em mquinas que no os pertence. Sendo assim, o Freenet constri um imenso sistema de armazenamento distribudo e tolerante a falhas. Os ns so conectados via TCP/IP. Quando um novo n entra na rede ele tem que conhecer o endereo de algum outro n que pertena rede. Alm disso, o cliente deve especificar a quantidade de disco disponvel para armazenar dados de outros ns. O usurio no capaz de acessar o contedo que est armazenado pelo Freenet na sua mquina local, pois esses dados ficam codificados. Todo arquivo armazenado no Freenet identificado por uma chave nica, dessa forma necessrio saber a chave do arquivo antes de recuper-lo. Quando o download do arquivo realizado, a aplicao re-aplica o algoritmo sobre o arquivo para gerar novamente a chave e comparar com a chave original. Esse procedimento permite verificar se o arquivo foi adulterado ou no pela rede.

3.3.2

Procedimento de Busca

A busca no Freenet evita encher a rede de consultas, assim como faz a rede Gnutella. Cada n do Freenet envia uma consulta para ns prximos ao que eles acham que possui a informao. Essa deciso tomada levando em considerao uma tabela de roteamento que cada n possui. Essa tabela armazena endereos de outros ns e chaves que eles devem possuir, conforme mostramos na tabela 2, a seguir: Chave 1 2 3 4 uehskdl dksslkd dks8 kdkd Informao jdjlsjds dlsdks dslkd8ks abnalau8
Tabela2: Roteamento Freenet

Endereo tcp/endereoX tcp/endereoY tcp/endereoZ tcp/endereoW

Quando um n atende a uma consulta, eles armazenam o caminho dos ns que possuem a consulta, otimizando futuras solicitaes desse arquivo. Os ns que repassam a

14

resposta tambm podem armazenar o arquivo localmente, passando a ser fonte da informao para consultas futuras. No Freenet, quando um n recebe um pedido, ele encaminha a solicitao para apenas um n por vez na rede (unicast). Quando um n recebe uma requisio, ele extrai o identificador do recurso procurado e verifica no seu repositrio se o possui. Caso no possua, ele verifica qual de seus vizinhos possui o identificador mais prximo ao da solicitao e encaminha o pedido a esse elemento. Por isso o Freenet apresenta maior escalabilidade e menor demanda de trfego. Funciona sobre o TCP ou UDP.

3.3.3

Transferncia de Arquivos

As comunicaes dos usurios so sempre cifradas, o que torna extremamente difcil determinar quem est solicitando a informao e qual o seu contedo. Os usurios contribuem com a rede fornecendo largura de banda e espao para armazenamento dos dados. Ao contrrio das outras solues, o Freenet no deixa o usurio controlar o que armazenado no espao de dados. Ao invs disso, os arquivos so mantidos ou excludos de acordo com a freqncia de acessos: os arquivos acessados com menor freqncia so descartados. Isso ajuda a manter o contedo do espao de dados sempre atualizado. No Freenet no existe a recuperao direta de um recurso, ou seja, inexiste a comunicao Peer-to-peer entre o lanador da requisio e o detentor do recurso. O recurso, da mesma forma que a mensagem-resposta, deve percorrer ns intermedirios ate chegar ao destino. Essa particularidade refora o enfoque dado pelo Freenet ao tema anonimidade. Os ns caronas no so um problema para o ambiente Freenet. Ele resolve esse problema da seguinte maneira: os ns caronas no compartilham recursos e no respondem positivamente as solicitaes. Conseqentemente, nenhum outro n ganhara referncia ele e, para a rede Freenet, como se esse n no existisse. Porm, suas consultas seguiro sendo roteadas no Freenet e, assim, ele estar auxiliando para o consumo de largura de banda do sistema Peer-to-peer.

3.4

KaZaA Modelo Hierrquico

Enquanto o napster utiliza um servidor de diretrio centralizado localizando o contedo quando estiver presente em algum par participante e Gnutella utiliza uma arquitetura totalmente distribuda e localiza contedo somente em pares prximos da rede de sobreposio, o KaZaA, liberado pela empresa FastTrak em 2002, toma emprestadas idias do Napster e da Gnutella, resultando em um poderoso sistema de compartilhamento de arquivos P2P que, em 2004, j contribua com mais trfego na Internet do que qualquer outra aplicao. Usurios do KaZaA podem compartilhar diferentes tipos de arquivos, como vdeo, udio, softwares, etc.

15

3.4.1 Arquitetura
O KaZaA utiliza uma arquitetura semi-centralizada, em duas camadas, onde a primeira composta pelos chamados superns (mquinas que participam da rede e so mais potentes, possuindo conexo rpida, maior largura de banda) e a segunda formada por mquinas de usurios comuns. Os superns assumem um papel principal na rede, uma vez que todo usurio precisa se conectar a um supern para ter acesso ao sistema, como pode ser visto abaixo na figura 5 (http://asc.di.fct.unl.pt/rc/aulas-teoricas/cap2.pdf), abaixo:

Figura5: Conexo Superns

3.4.2

Procedimento de Busca

Quando um par lana a aplicao KaZaA, estabelece uma conexo TCP com um dos lderes do grupo (superns). Estes, que tambm se interconectam em uma conexo TCP com outros lderes, so responsveis pela busca que realizada da seguinte forma: 1. Ao se conectar a um supern, as mquinas avisam quais os nomes dos arquivos que elas dispem. Cada arquivo contm uma chave ou identificador (hash) e um descritor. Os superns mantm uma lista contendo os arquivos disponibilizados por outros usurios e o local (IP) onde eles esto armazenados. 2. O cliente envia uma query (palavra chave) para o seu lder de grupo (este processo feito automaticamente pela aplicao, sem que o usurio perceba). 3. Quando chega uma consulta, o supern retorna o resultado da busca feita localmente (para cada resultado um: metadata, hash e IP adress). 3. O supern, ento, submete a consulta a outros superns, para encontrar respostas mais precisas para a consulta do usurio. Estes respondem se a conhecem e a resposta segue o caminho reverso da solicitao. 4. Cabe ao cliente selecionar os arquivos que deseja fazer download. O projeto hierrquico permite a verificao de compatibilidade em um nmero significativamente maior de pares sem criar um trfego de consultas excessivo (Hoje a maioria do trfego no KaZaA deve-se transferncia de arquivos)

16

3.4.3

Transferncia de Arquivos

Uma vez localizado o usurio que possui o arquivo, uma conexo estabelecida diretamente entre os peers para que seja efetuado o download. O protocolo usado para transferncia de arquivos o http. Tcnicas alternativas empregadas pelo KaZaA: O KaZaA tambm emprega diversas tcnicas que melhoram seu desempenho. Algumas dessas tcnicas que podem ser empregadas em grande parte dos sistemas de compartilhamento de arquivos P2P so: Enfileiramento de requisies: O usurio pode configurar seu par, de modo a limitar o nmero de transferncias simultneas em qualquer valor. (O valor de default est na faixa de trs a sete). Se o usurio j estiver realizando o numero mximo de transferncias, quando receber uma nova requisio, ele pe esta e todas as subseqentes em uma fila local. Essas limitaes locais garantem que cada arquivo que est sendo transferido receba uma quantidade no desprezvel de largura de banda do n que est enviando o arquivo. Prioridades de incentivo: So dadas prioridade de enfileiramento a usurios que, no passado, tenham carregado mais arquivos do que baixado. Esse mecanismo proporciona a usurios um incentivo para carregar arquivos, aprimorando a escalabilidade geral do sistema KaZaA. Transferncia paralela: Diferentes pores do arquivo podem ser baixadas de diferentes pares em paralelo. Essa caracterstica permite que, em muitas circunstancias, usurios extraiam um arquivo mais rapidamente. Tm sido realizados muitos esforos de engenharia reversa para o KaZaA. Realmente, alguns projetos desenvolveram clientes KaZaA modificados que permitem ao usurio acessar a rede KaZaA sem seguir estritamente o seu protocolo. Atualmente, um cliente modificado notoriamente popular o KaZaA-Lite, que no somente elimina a propaganda embutida no KaZaA e d aos usurios a prioridade mais alta, mas tambm executa saltos de superns, isto , saltos de um lder de grupo para outro para uma nica consulta de palavra-chave.

17

Outras Aplicaes

Com o sucesso e as vantagens do sistema P2P de compartilhamento de arquivos, dezenas de aplicaes surgem com o passar dos tempos. Citamos sucintamente as que, no nosso ponto de vista, seriam as mais importantes na historia P2P. Neste captulo iremos descrever brevemente, outras aplicaes P2P do mercado atual.

4.1

eMule

Tudo comeou com o eDonkey2000, a muito tempo atrs. Uma rede P2P baseada em servidores desenvolvida pela MetaMachine. Os desenvolvedores do eDonkey2000 perceberam que uma rede P2P baseada em servidores poderia encontrar problemas ao atingir larga escala de usurios e ento decidiram criar uma verso que no precisa se conectar a um servidor para encontrar os outros usurios. Foi chamado de Overnet. Agora, a rede Overnet (no baseada em servidores) faz parte do eDonkey. Durante isso, o eMule nasceu. Um cliente baseado no eDonkey2000. eMule tornouse open-source (cdigo aberto) e todos podiam criar sua prpria verso do cliente para conectar-se a rede do eDonkey / Overnet. Essa rede se destaca das demais pela quantidade de arquivos de vdeo que elas contm. A maior parte dos arquivos disponveis so de boa qualidade. Isso se deve ao fato de que cada arquivo armazenado no sistema possui um cdigo hash, que nada mais que um resumo do arquivo, ou seja, o arquivo analisado byte a byte e criado um resumo (em forma de nmero hexadecimal) do seu contedo. Deste modo que possvel ter vrios arquivos idnticos com nomes diferentes mas com o mesmo HASH, o que permite ao eMule fazer download de todos eles como sendo (e mesmo) um nico arquivo. Baseado nisso, que o eMule pode descarregar partes diferentes do mesmo arquivo, de usurios diferentes, ao mesmo tempo, e ao final, indexar em um nico arquivo. At hoje, o eMule um dos maiores e mais confiveis clientes de partilha de arquivos peer-to-peer em todo o mundo. Graas sua orientao open-source muitos programadores contribuem para o projeto, tornando a rede mais eficiente com cada novo lanamento. Assim como o KaZaA, o eMule trabalha com sistema de prioridades (crditos), em que, o usurio que mais disponibilizar arquivos para upload, mais prioridade (crditos) ter na fila para os downloads.

4.2

BitTorrent

Trata-se de uma arquitetura peer-to-peer para compartilhamento de arquivos, mas com caractersticas especiais a ponto de ser adotada como uma das opes de download oficiais de distribuies de Linux como as brasileiras: Conectiva e Kurumin. Neste caso, a

18

estrutura de pontos de acesso centralizados, na forma de links para arquivos com a extenso .torrent nos sites oficiais das empresas, d a quem faz o download razovel grau de certeza de que no est fazendo o download de gato por lebre, como frequentemente ocorre com quem faz download de distribuies de Linux atravs de servios P2P comuns. Atravs dele possvel baixar filmes, jogos, msica, enfim qualquer tipo de arquivo que outros usurios estejam compartilhando. Ele trabalha de forma distribuda pois ao mesmo tempo em que voc est fazendo download outros Internautas puxam do seu micro as partes do arquivo que voc j recebeu. Muito interessante. O Bit Torrent realiza mltiplas conexes simultneas para upload e download. A velocidade de download proporcional a velocidade de upload. Ou seja, quanto mais gente estiver puxando partes de voc, mas rpido ser seu download. Justamente por esse motivo o incio do processo de download um pouco lento. Como no comeo do download voc no possui nenhuma parte do arquivo para compartilhar sua velocidade fica muito reduzida. medida que voc tiver um pedao maior do arquivo mais pessoas se conectaro a voc para baixar essas partes e consequentemente seu download aumentar de velocidade. Por isso o nome Bit Torrent. Ele literalmente funciona como uma torrente de bits. Comea devagar e vai acelerando progressivamente. Uma informao importante: O Bit Torrent compartilha APENAS o(s) arquivo(s) que voc est baixando. Nenhum outro arquivo do seu computador ser compartilhado quando voc utilizar o Bit Torrent. O Bit-Torrent open-source. Entre os clientes Bittorrent atuais, podemos citar: BitComet, ABC e Shareaza. A Microsoft anunciou que tambm no vai ficar de fora desse mercado e est desenvolvendo um concorrente chamado, por enquanto, de Avalanche, que est prometido para meados de 2006, e que, segundo os especialistas da empresa, ter desempenho superior ao BitTorrent.

Plataformas de Desenvolvimento 5.1 O projeto JXTA

Com toda a conversa gerada em torno do P2P comeam a aparecer plataformas para o desenvolvimento de aplicaes P2P. Com estas plataformas tambm surge o esforo da normalizao. O projeto Juxtapose, ou JXTA um exemplo destes esforos. O projeto no tem por objetivo definir o que programao P2P, mas sim definir um conjunto de normas e protocolos de suporte ao desenvolvimento de aplicaes P2P, baseado em camadas. Sendo suportado pela Sun Microsystems, possui alguns requisitos de interoperabilidade portados do Java, mas no foram o seu uso (na realidade existe uma implementao da plataforma em C a ser desenvolvida). Por outro lado, a Sun ainda precisa competir no apenas com o .NET, mas tambm com o projeto Hailstorm da

19

Microsoft. Assim como o Jxta, o Hailstorm baseado em P2P e tem a comunicao centrada no XML um formato superior ao HTML, usado para permutar informaes pela rede. O projeto JXTA da Sun foi lanado em uma comunidade de cdigo aberto com a iniciativa de que outras pessoas contribuam com solues que possam tornar o JXTA a plataforma P2P nmero um do mundo. Este foi um passo muito importante para o projeto porque afinal ser a quantidade de pessoas que decidir se a plataforma se tornou a nmero um ou no. At a presente data a Sun contabilizou mais de dezessete mil membros da comunidade e ela continuou crescendo incluindo a comunidade de cdigo aberto o que faz com que sejam desenvolvidas cada vez mais aplicaes usando a plataforma do JXTA.

20

Concluso
O conceito de arquitetura P2P pode ser julgado pelo sucesso de seus principais aplicativos, o caso Napster, que chegou a ter com 75 milhes de usurios e milhares de "clones" com milhes de outros usurios. Outros sistemas de compartilhamento de arquivo aparecerem, cada um tentando resolver um problema dos sistemas anteriores. O Gnutella, aps o processo judicial sofrido pelo Napster e os problemas de escalabilidade da arquitetura centralizada, implanta uma arquitetura distribuda e oferece capacidades de pesquisa melhoradas atravs de meta-dados. O Freenet tenta oferecer um espao de armazenamento annimo e descentralizado protegido por encriptao para maior segurana. O eMule e o KaZaA utilizam sistema de crditos, para incentivar o compartilhamento de arquivos, etc. Por isso, esperado que com o amadurecimento da tecnologia, muitos tipos novos de redes P2P devam surgir. Peer-to-peer ser, com certeza, uma tecnologia cada vez mais presente no nosso dia a dia, mesmo que de forma invisvel ao usurio. Pequenos computadores pessoais como handhelds ou PDAs, conectados em redes sem fio, trocando informaes entre si, sem a interveno de um servidor, ser uma realidade em breve. Porm, ainda existem muitos problemas em aberto, principalmente no que diz respeito a otimizar os procedimentos de buscas para uma estrutura mais eficiente que as buscas paralelas e em profundidade e questes como a segurana ainda tem que ser melhoradas, uma vez que o modelo apresenta problemas de confiabilidade, devido conectividade varivel das mquinas participantes e administrao descentralizada. Talvez a tecnologia ainda no esteja 100% pronta para alavancar todas essas mudanas imediatamente. Mas com certeza a tecnologia P2P veio para ficar, e principalmente, para mudar.

21

REFERNCIAS BIBLIOGRFICAS

[1] BRAIN; "O ano do BitTorrent" ; Disponvel em http://brlinux.org/noticias/ 002423.html, Publicado em 16 de maio de 2004. [2] "Freenet - A rede livre" Disponvel em: http://freenet.sourceforge.net/; Acessado em 17 de Outubro de 2005. [3] Jornal do Brasil; "Entrevista com Ian Clarke" Disponvel em: http://nossacasa.net/info/texto.asp?texto=34, Publicado em 24 de agosto de 2000. [4] KUROSE, James F; ROSS, Keith W; Redes de Computadores e a Internet Uma abordagem top-down" Ed. Prentice Hall, 3. ed. , 2005 [5] Seminrio, 2001.2 "Peer to Peer" Disponvel em http://www.dei.unicap.br/ ~almir /seminarios/2001.2/2no5pq/p2p/; Acessado em 13/10/2005. [6] Shirky, 2003, C. What Is P2P ... and What Isnt? Disponvel em: http://www.openp2p.com/lpt/a/472 Acessado em: 17 de Outubro de 2005. [7] SILVA, William Roger; "Introduo s Redes Peer-to-Peer (P2P)" Disponvel em http://www.gta.ufrj.br/seminarios/semin2003_1/william/index.htm; Publicado em 11 de Junho de 2003. [8] SOTIRA, Angelo; "What Is Gnutella?" Disponvel em: http://www.gnutella. com/ news/4210; Publicado em 03 de Dezembro de 2001.

22

Вам также может понравиться