28
Escola Secundária com 3ºciclo do Fundão Prova de Aptidão Tecnológica Peer-to-Peer 2008 / 2009 Fábio Daniel Rodrigues Melro Curso Tecnológico de Informática

Peer-to-Peer - P2P

Embed Size (px)

DESCRIPTION

O meu trabalho dobre Peer-to-Peer do qual fui avaliado ao fim de 3 anos num curso de informatica

Citation preview

Page 1: Peer-to-Peer - P2P

Escola Secundária com 3ºciclo do Fundão

Prova de Aptidão Tecnológica

Peer-to-Peer

2008 / 2009

Fábio Daniel Rodrigues Melro

Curso Tecnológico de Informática

Junho 2009

Page 2: Peer-to-Peer - P2P

Prova de Aptidão Tecnológica

Peer-to-Peer

Índice1 - Introdução

1.1 - Redes virtuais........................................................................................................................................................2

2 – História do P2P........................................................................................................................................................2

3 – Distribuição Horizontal............................................................................................................................................4

4 – Características do P2P.............................................................................................................................................4

4.1 - Descentralização...................................................................................................................................................4

4.2 - Heterogeneidade...................................................................................................................................................5

5 – Sistemas Híbridos....................................................................................................................................................5

6.1 - Escalabilidade global.............................................................................................................................................6

6.2 - Balanceamento de carga.......................................................................................................................................6

6.3 - Optimização de interacções locais entre nós vizinhos...........................................................................................6

6.4 - Disponibilidade......................................................................................................................................................6

6.5 - Segurança dos dados.............................................................................................................................................7

6.6 - Anonimidade, negabilidade e resistência à censura..............................................................................................7

7 – Redes P2P estruturadas e não estruturadas............................................................................................................7

7.1 - Rede sobreposta....................................................................................................................................................7

7.2 - Arquitecturas Peer-to-peer Estruturadas...............................................................................................................9

7.3 - Arquitectura Peer-to-Peer Não estruturadas.........................................................................................................9

8 – Plataformas, Frameworks e aplicações peer-to-peer.............................................................................................10

8.1 - Frameworks P2P..................................................................................................................................................11

8.1.1 - Kademlia...........................................................................................................................................................11

8.1.2 - Overnet............................................................................................................................................................11

8.1.3 - Gnutella............................................................................................................................................................11

8.1.4 - Gnutella 2.........................................................................................................................................................11

8.1.5 - Kad Network.....................................................................................................................................................12

8.1.6 - OpenFT.............................................................................................................................................................12

8.1.7 - AudioGalaxy.....................................................................................................................................................12

8.1.8 - SoulSeek...........................................................................................................................................................12

8.1.9 - DNS...................................................................................................................................................................12

8.1.10 – BitTorrent ........................................................................................................................................13

8.2 - Redes, Protocolos e Aplicativos...........................................................................................................................13

9 – Direitos de Autor...................................................................................................................................................14

9.1 - Caso Napster e Btuga..........................................................................................................................................14

10 – Exemplo com Wireshark e SNORT.......................................................................................................................15

Page 3: Peer-to-Peer - P2P

Índice de Figuras

Imagem 1 – Rede P2P

Imagem 2 - RedeVirtual

Imagem 3 – primeiros programas P2P

Imagem 4 – Rede P2P heterogénea

Imagem 5 – Disponibilidade numa rede P2P

Imagem 6 – Rede Overlay

Imagem 7 – Arquitectura P2P estruturada

Imagem 8 – Arquitectura P2P não-estruturada

Imagem 9 – Ícones do Btuga e Napster

Page 4: Peer-to-Peer - P2P

Prova de Aptidão Tecnológica

Peer-to-Peer

1 - IntroduçãoOs serviços na Internet têm aumentado cada vez mais e isto apenas pode ser limitado pela população mundial. O sistema de P2P tem como objectivo permitir a partilha de dados e recursos numa larga escala, eliminando qualquer requisito por servidores geridos separadamente e a sua infra-estrutura associada. O propósito do P2P é suportar sistemas e aplicações distribuídas utilizando os recursos que têm, tanto de computadores pessoais como redes inteiras, tais como estações de trabalho em número crescente.

Isto tem-se mostrado um objectivo bastante sugestivo, já que a diferença da performance dos computadores pessoais e de servidores tem diminuído e as conexões da banda larga têm aumentado.

Shirky [1] definiu as aplicações P2P como "aplicações que exploram recursos disponíveis nas bordas da Internet - armazenamento, ciclos, conteúdo, presença humana". Uma rede P2P é constituída por clientes e servidores, que são considerados de nível igual e nunca com um papel fixo, apenas o que os diferencia é o que estão a fazer nesse momento, a receber ou a enviar dados.

Os dados que circulam pela rede, muitas vezes são ignorados por todos os nós, á excepção do destinatário, visto ser ele a requisitar os dados.

Os nós, servem apenas como estações intermediárias, ou seja, servem como repetidoras de informação.

Imagem 1 – Rede P2P

Page 5: Peer-to-Peer - P2P

Prova de Aptidão Tecnológica

Peer-to-Peer

As velocidades de transmissão são definidos e diferenciados:

Nas configurações locais, Capacidade de processamento, Capacidade de armazenamento, Largura de banda, Entre outras...

1.1 - Redes virtuaisEste termo é utilizado nas diferentes tecnologias que adoptam um modelo conceitual, tal como os protocolos NNTP (Usenet news), SMTP (Simple Mail Transfer Protocol), etc.

No entanto começou-se a falar mais em redes virtuais com o aparecimento de softwares em que qualquer utilizador que tenha o software instalado possa aceder à rede e aos seus recursos.

O caso tornou-se mais conhecido com Shawn Fanning, criador do Napster. Ele trouxe o termo P2P para os média principalmente por se tornar alvo de ataques jurídicos por parte das empresas fonográficas.

Imagem 2 – Rede Virtual

2 – História do P2P

O P2P é o resultado da tendência natural do desenvolvimento de engenharia de software com a disponibilidade de tecnologia para a criação de redes maiores.

A tendência das últimas décadas tem crescido com a necessidade das aplicações empresariais, o que resultou na substituição dos sistemas monolíticos por sistemas distribuídos. As redes informáticas começaram a crescer, tornando-se cada vez maiores e mais poderosas, os utilizadores começaram a ser cada vez mais, a banda larga tornou-se cada vez mais barata e poderosa, sendo fácil de aceder.

Neste campo houve a necessidade de ter a disponibilidade de pontos interligados, e quanto mais recursos houvesse, mais poderosa se tornava essa rede. A Internet foi um claro exemplo e uma explosão de utilizadores.

Page 6: Peer-to-Peer - P2P

Prova de Aptidão Tecnológica

Peer-to-Peer

Enquanto as redes cresciam, as aplicações P2P desenvolviam-se e a sociedade interessava-se pelo P2P. Aplicações como o Napster, Gnutella e Kazaa ficaram famosos, porque estas colocaram um subconjunto da tecnologia P2P que estava ao alcance de milhares de utilizadores.

Na verdade o P2P surgiu da tecnologia básica que utilizaram nos tempos da USENET e da FidoNet. Eram duas redes totalmente descentralizadas, e sistemas como o DNS.

Imagem 3 – primeiros programas P2P

No inicio eram trabalhos que dois estudantes tinham na licenciatura. Não existia muita informação sobre a partilha, nem Internet como hoje em dia. Os arquivos eram trocados em batch nas linhas telefónicas, porque os computadores eram ligados por cabos coaxiais, não tendo muito mais que 10 computadores em cada rede, ligando-se por um terminador, passando virtualmente por cada nó.

No entanto em 1979, como não havia maneira de centralizar, a USENET, era totalmente descentralizada sendo o criador Jim Ellis. (Será explicado mais á frente o que é). A FidoNet também era descentralizada, mas servia para troca de mensagens. Esta aplicação foi criada em 1984 por Tom Jennings para trocar mensagens de sistemas (BBS) diferentes.

O DNS tornou-se uma necessidade, porque em 1983 já existiam milhões de hosts na Internet. Na altura a forma de navegar na Internet era através de um ficheiro.txt, nomeado de hosts.txt. O nome “cin” era associado um determinado ip do ficheiro hosts.txt. Como a Internet cresceu, este sistema tornou-se impossível e foi então que surgiu o DNS.

O conceito de DNS é comparado às aplicações de ficheiros actuais.Mas foi na década de 90 que as redes P2P apareceram com toda a força, quando aplicações como o Napster e o Gnutella foram desenvolvidas. Cada nó neste tipo de rede é conhecido como peer, e pode servir com os mesmos direitos de cada peer da rede, serve tanto de cliente como de servidor.

Os recursos e as informações passaram a ser disponibilizados de forma mundial. Estas redes tinham características, que quantos mais peers existissem mais escabilidade e mais autonomia tinham, e a rede tornava-se mais eficiente e mais rica em recursos com a comunicação directa que os peers tinham.

Page 7: Peer-to-Peer - P2P

Prova de Aptidão Tecnológica

Peer-to-Peer

3 - Distribuição Horizontal

A organização de uma aplicação cliente-servidor numa arquitectura multi-camadas, distribui o processamento, colocando componentes logicamente diferentes em máquinas diferentes. A essa distribuição dá-se o nome de distribuição vertical. Uma distribuição vertical, facilita a gestão dos sistemas, pois divide, as funções lógica e física entre várias máquinas, onde cada máquina é responsável por um grupo específico de funções.

Uma abordagem alternativa à distribuição horizontal, bastante comum nas arquitecturas modernas, baseia-se na distribuição dos clientes e dos servidores, o que se chama de distribuição horizontal.

Nessa distribuição, um cliente ou um servidor pode estar fisicamente dividido em partes logicamente equivalentes, onde cada parte opera sobre a sua própria porção dos dados, o que balanceia a carga. Os sistemas peer-to-peer se baseiam na distribuição horizontal.

Olhando de uma perspectiva de alto nível, os processos que constituem um sistema peer-to-peer são todos iguais. Isso significa que as funções necessárias devem estar em todos os processos que constituem o sistema distribuído.

Como consequência, a maior parte da interacção entre os processos é simétrica: cada processo actua como um "cliente" e um "servidor" ao mesmo tempo. [2]

4 – Características do P2P

O sistema P2P apresenta as seguintes características:

O modo como estão os recursos, faz com que cada um contribua para o seu melhoramento;

Os direitos de cada nó na rede são iguais, o que diferencia são os recursos.

4.1 - DescentralizaçãoOs sistemas P2P não dependem de um servidor central, ou de várias administrações centralizadas.Um sistema P2P totalmente descentralizado, não há utilizadores com características especiais, são todos iguais, com poderes iguais, ou recebem dados, ou estão a enviá-los.

Page 8: Peer-to-Peer - P2P

Prova de Aptidão Tecnológica

Peer-to-Peer

4.2 - HeterogeneidadeNa construção da rede P2P, temos que nos lembrar que há preocupação em que nada é eterno, e que eventualmente poderá haver falhas de ligação.

Para que isso não aconteça, utilizamos a técnica da replicação, diminuindo assim em muito a falha ao tentar aceder aos dados.

A replicação pode também tornar o sistema mais confiável se utilizada para neutralizar a acção de nós maliciosos, que interceptam o sistema e corrompem os dados, através de técnicas de tolerância a falhas.

Imagem 4 – Rede P2P heterogénea

5 - Sistemas Híbridos

Os sistemas centralizados são simples de implementar e gerir, mas não suportam o aumento da rede.

Por outro lado os sistemas descentralizados são escaláveis e robustos, contudo, são algo complicados de implementar, principalmente nas questões de tolerância a falhas e na descoberta de recursos.

Existem sistemas que utilizam características de ambos, cliente-servidor e peer-to-peer.Estruturas híbridas implantam ambos, embora adoptem pelo sistema cliente-servidor devido a complicações de junção de ambos os sistemas.Um exemplo bem claro disso é o servidor que utiliza o BitTorrent [4].

Ao utilizarmos o MSN Messenger, e enviarmos um ficheiro, pensamos que esse ficheiro está a ser enviado directamente para o outro nó, no entanto ficamos surpresos em saber que existe uma espécie de servidor por trás, que guarda a informação, ou faz a associação entre o nome do utilizador e o ip dele, grava mensagens quando está em modo off-line, etc.

Page 9: Peer-to-Peer - P2P

Prova de Aptidão Tecnológica

Peer-to-Peer

Se fosse um sistema totalmente descentralizado, isso seria impossível na Internet de hoje. Por isso como vemos grande parte dos sistemas utilizados hoje utilizam um esquema de directório centralizado enquanto o ficheiro está a ser enviado.

6 - Os requisitos para uma aplicação P2P

Para funcionar eficientemente, os sistemas peer-to-peer devem-se preocupar com os seguintes requisitos não-funcionais [5]:

6.1 - Escalabilidade globalUm dos objectivos das aplicações peer-to-peer é explorar os recursos de hardware de um grande número de hospedeiros conectados à Internet. Assim, essas aplicações devem ser projectadas de modo a suportar o acesso a milhões de objectos em dezenas ou centenas de milhares de hospedeiros.

6.2 - Balanceamento de cargaA performance de qualquer sistema projectado para utilizar uma grande quantidade de computadores depende da distribuição balanceada de carga entre eles. Para os sistemas que consideramos, isso será alcançado através da colocação aleatória de recursos, juntamente com a utilização de réplicas dos recursos mais utilizados.

6.3 - Optimização de interacções locais entre nós vizinhosA "distância de rede" entre os nós que interagem tem um impacto substancial na latência das interacções individuais, como por exemplo, clientes requisitando acesso a recursos. A carga do tráfego da rede também é afectada por isso. As aplicações devem colocar os recursos perto dos nós que mais os utilizam.

6.4 - DisponibilidadeA maioria dos sistemas peer-to-peer são constituídos por computadores hospedeiros que são livres para se juntar ou sair do sistema em qualquer altura. Além disso, os segmentos de rede utilizados nos sistemas peer-to-peer não são administrados por qualquer autoridade; nem possuem garantias de qualidade de serviço.

Um grande desafio para os sistemas peer-to-peer é prover um sistema confiável, apesar desses factos. Quando novos hospedeiros se juntam, eles devem ser integrados ao sistema e a carga deve ser redistribuída para explorar esses novos recursos.

Quando eles saem do sistema voluntariamente ou involuntariamente, o sistema deve detectar a partida deles, e redistribuir as suas cargas e os seus recursos.

Page 10: Peer-to-Peer - P2P

Prova de Aptidão Tecnológica

Peer-to-Peer

Imagem 5 – Disponibilidade numa rede P2P

6.5 - Segurança dos dadosEm sistemas de escala global com participantes de origens diversas, a confiança deve ser construída com o uso de autenticação e mecanismos de criptografia para garantir a privacidade dos dados e da informação.

6.6 - Anonimidade, negabilidade e resistência à censuraAnonimidade é uma preocupação legítima em muitas situações que procuram resistência à censura. Um requisito relacionado é que hospedeiros que guardam dados devem ser capazes de negar plausivelmente a responsabilidade sobre a posse e o suprimento deles. A utilização de um grande número de hospedeiros em sistemas peer-to-peer pode ser útil para alcançar essas propriedades.

7 - Redes P2P estruturadas e não-estruturadas

7.1 - Rede sobrepostaUm conceito importante do paradigma P2P é a rede sobreposta, ou rede overlay.

Nesta tipo de rede, os nós são formados por processos e as ligações são representados pelos canais existentes (conexões TCP).

Em geral, um processo não se pode comunicar com outro processo arbitrário, só pode enviar mensagens através dos canais de comunicação disponíveis.

Na rede overlay, cada nó tem um vizinho, que tem outro vizinho, e assim continuamente.

Page 11: Peer-to-Peer - P2P

Prova de Aptidão Tecnológica

Peer-to-Peer

Na imagem abaixo, vemos claramente que cada nó tem dois vizinhos, que são vizinhos nessa rede, mas fisicamente não o são necessariamente.

Imagem 6 – Rede Overlay

A localização dos nós e dos ficheiros é realizado na rede overlay através de um router distribuído.Esse algoritmo é aplicado na camada de aplicação (modelo OSI), não tendo nenhuma ligação no router com a camada de rede, do modelo OSI.

Através deste processo, em que a requisição dos clientes é feita no router para um uploader que possui o ficheiro e redirecciona novamente para o ip que o solicitou.

O router garante que qualquer nó possa aceder a qualquer ficheiro da rede overlay, explorando cada "conhecimento" de cada nó.

Os sistemas modernos de peer-to-peer, armazenam múltiplas réplicas do mesmo ficheiro para que o sistema possa garantir disponibilidade. Assim o router mantém o mínimo de informação possível sobre a localização de todas as réplicas para o nó vivo mais próximo e mantém uma cópia do ficheiro.

Existem dois tipos de redes sobrepostas:

As redes estruturadas As redes não-estruturadas

Page 12: Peer-to-Peer - P2P

Prova de Aptidão Tecnológica

Peer-to-Peer

7.2 - Arquitecturas Peer-to-peer EstruturadasNuma rede estruturada, a rede sobreposta é construída através de um procedimento determinístico. O que isto significa?

O procedimento é feito através de uma tabela de hash (associa chaves de pesquisa a valores.) distribuída (DHT) organizada.

Um sistema baseado em DHT's, os dados recebem uma chave aleatória com um certo identificador, de 128 ou 160 bits [3]. Os nós da rede recebem igualmente um identificador do mesmo espaço. O problema ainda por resolver num sistema baseado em DHT's, é implementar um esquema determinístico eficiente que faça unicamente scan á chave de um ficheiro para o identificador do nó responsável pelo ficheiro.

A partir daí, é possível fazer retornar o endereço de rede do nó responsável pelo ficheiro, contactando-o directamente. Como houve várias implementações e protocolos baseados em DHT, também houve melhorias.

Alguns dos protocolos mais conhecidos é o Chord [4] e NodeWiz [5], serviços de descoberta em Grids(GIS), ou seja utiliza a estrutura de árvores para organizar os nós da rede sobreposta. Cada nó é responsável por um subespaço do espaço completo.

Assim podemos realizar consultas por faixas de valores e não por valores exactos como contrariamente acontece na DHT.

Imagem 7 – Arquitectura P2P estruturada

7.3 - Arquitectura Peer-to-Peer Não estruturadasSistemas não estruturados baseiam-se em algoritmos aleatórios.Ou seja a ideia principal é que cada vizinho tenha uma lista de vizinhos, que é construída de forma aleatória. Os dados também são colocados aleatoriamente nos nós.

Acontece que quando fazemos uma busca por um determinado ficheiro na rede, que ela fique "lagada", ou seja inunda com uma busca só [6].

Page 13: Peer-to-Peer - P2P

Prova de Aptidão Tecnológica

Peer-to-Peer

Acontece que quando o cliente e o uploader estão muito longe um do outro, que a resposta da pesquisa não seja obtida.De um ponto de vista, podemos ver que os mecanismos impedem que as mensagens se propaguem indefinidamente na rede.Para além desta desvantagem, existe outra, que é quando a busca se torna lenta porque o tráfego de sinalização é muito.

O modelo básico é que cada nó tenha uma lista de vizinhos, onde cada um dos vizinhos representa um nó escolhido aleatoriamente dentro dos nós "vivos".

Esta lista de nós pode ser chamada de visão parcial.

O BitTorrent que constrói a rede overlay de forma aleatória, poderá ser considerado como tal.

Imagem 8 – Arquitectura P2P não-estruturada

8 - Plataformas, Frameworks e Aplicaçõespeer-to-peer

No início da era P2P, as aplicações surgiram monolíticas, ou seja, o programa precisava implementar o seu próprio protocolo de comunicação peer-to-peer para permitir a interoperabilidade entre os nós constituintes do seu sistema em rede.

Este tipo de P2P não era uma boa solução, devido a que, embora com serviços iguais, o cliente tinha que ter os programas todos instalados porque os ficheiros, ou dados ficavam apenas na rede.

Kazaa, eMule e Gnutella ficaram apenas acessíveis dentro da sua própria rede.

Mas com o passar do tempo, criaram-se aplicações que "juntavam" todas estas aplicações, de forma a poderem comunicar entre elas todas.Dentro destas destacam-se o JXTA, Windows Peer-to-Peer-Networking e o XNap.

Page 14: Peer-to-Peer - P2P

Prova de Aptidão Tecnológica

Peer-to-Peer

O JXTA e o Windows P2P-Networking são especificações de protocolos peer-to-peer e de uma API para utilização dos serviços, sendo o primeiro com implementações em Java e em C.

O XNap provê, além de uma API de serviços peer-to-peer, também um Framework para desenvolvimento das aplicações em si, incluindo recursos de interface gráfica com o usuário. Um Framework peer-to-peer, portanto, vai além de uma plataforma para comunicação peer-to-peer, provendo serviços adicionais não necessariamente relacionados com a comunicação em si, mas indispensáveis para o desenvolvimento rápido de aplicações baseadas nesta arquitectura.

8.1 - Frameworks P2PApresenta-se de seguida as frameworks P2P mais utilizadas:

8.1.1 - KademliaKademlia é um conceito de rede altamente descentralizada baseada em "nós" de rede. Os próprios utilizadores constituem a estrutura da rede dispensando servidores. Várias redes utilizam o conceito Kademlia.

8.1.2 - OvernetA rede Overnet é uma espécie de eDonkey "paga". É preciso adquirir o programa da empresa que a desenvolveu. É uma variante do eDonkey totalmente descentralizada e mais rápida seguindo o conceito Kademlia e foi a primeira implementação da mesma.

8.1.3 - GnutellaRede open-source surgida no final de 2000, utilizada inicialmente por utilizadores do sistema Linux. Possui uma estrutura altamente descentralizada não havendo mesmo nenhum servidor central sequer. Os utilizadores constituem a estrutura da própria rede. Entre os programas que a utilizam, estão o BearShare , LimeWire, Azureus e agora o Shareaza.

8.1.4 - Gnutella 2Segundo projecto da rede Gnutella, mas agora com servidores centrais optimizando buscas e o desempenho geral da rede. É conhecida principalmente no programa Shareaza. Recebeu críticas quando foi criada pelos criadores da Gnutella original.

Page 15: Peer-to-Peer - P2P

Prova de Aptidão Tecnológica

Peer-to-Peer

8.1.5 - Kad NetworkRede paralela do programa eMule introduzida pelo autor deste em 2004; é uma implementação fiel ao conceito Kademlia. Essa rede tinha por objectivo inicial oferecer mais fontes aos utilizadores do programa e mais tarde tornar-se uma rede P2P completa.

8.1.6 - OpenFTOpenFT é um protocolo desenvolvido pelo projecto giFT. O nome "OpenFT" significa "Open FastTrack". Entretanto, o OpenFT é um protocolo completamente novo, apenas alguns protocolos vieram do pouco que se sabia sobre a FastTrack quando o OpenFT foi desenvolvido. Assim como a FastTrack, o OpenFT é uma rede onde nós que enviam listas de arquivos compartilhados para outros nós. Isso reduz o consumo de banda necessário para a pesquisa, entretanto, consumindo no entanto mais recursos do processador e memória nos nós.

8.1.7 - AudioGalaxyProjecto antigo da empresa com mesmo nome, o Audiogalaxy centralizava tudo, indexando-o para o seu site oficial. Foi facilmente fechada por um processo judicial na Inglaterra. Era uma implementação de FTP’s sendo mais superficial ao utilizador.

8.1.8 - SoulSeekRede introduzida para trocas de músicas em 2000. Utiliza o programa com o mesmo nome. Caracteriza-se pelo facto de ter um grande número de arquivos raros, e principalmente música alternativa. O programa cliente tem uma interface simplificada, e permite a adição de utilizadores numa hotlist, ou seja, uma lista de contactos que permite saber quando um utilizador que tem arquivos relevantes está conectado à rede. Também há na rede SoulSeek um serviço de chat parecido com o IRC, que possibilita uma melhor interacção entre os utilizadores, que também podem criar seus próprios canais de chat.

8.1.9 - DNSO DNS (Domain Name System) é um exemplo de sistema que mistura os conceitos de rede peer-to-peer com um modelo hierárquico de posse da informação. O mais incrível do DNS é quão bem ele tem escalado, dos poucos milhares de hospedeiros que ele foi projectado para suportar, em 1983, para as centenas de milhões de hospedeiros actualmente na Internet.

Os problemas encontrados pelas aplicações P2P actuais, tais como partilha de arquivos, são os mesmos problemas que foram resolvidos pelo DNS há 10 ou 15 anos atrás. Assim, vários elementos-chave no projecto do DNS são replicados nos sistemas distribuídos actuais. Um elemento é que o hospedeiro pode operar tanto como cliente como servidor.

Page 16: Peer-to-Peer - P2P

Prova de Aptidão Tecnológica

Peer-to-Peer

O segundo elemento é um método natural de propagar as requisições de dados pela rede. A carga é naturalmente distribuída pela rede, tanto que qualquer servidor individual de nomes só precisa servir as solicitações dos seus clientes e o espaço de nomes que ele gere.

8.1.10 – BitTorrent BitTorrent é um sistema de download de arquivos P2P. A ideia básica é que quando um utilizador procura por um arquivo, ele saca "pedaços" do arquivo de outros utilizadores até que o arquivo fique completo. Um objectivo importante do projecto foi garantir colaboração. Na maioria dos sistemas de partilha de arquivos, uma fracção significante dos utilizadores somente saca os arquivos, não contribuindo para o objectivo da colaboração [8] [9] [10]. Para isso, um arquivo pode ser sacado somente quando o cliente que está sacando, também está a disponibilizar ficheiros para alguém.

8.2 - Redes, Protocolos e AplicativosSão apresentadas de seguida as redes, protocolos e aperitivos que utilizam o P2P: (Informação retirada do Wikipédia)

Ares: Ares Galaxy, Warez P2P, AlterGalaxyBitTorrent: AllPeers, ABC [Yet Another BitTorrent Client], Azureus, BitComet, BitSpirit, BitTornado, BitLord, Burst!, G3 Torrent, KTorrent, mlMac, MLDonkey, QTorrent, Shareaza, Transmission,Tribler, µTorrentCSpace: Uma rede peer-to-peer baseda em sistemas de comunicações

Direct Connect: DC++, NeoModus Direct Connect, BCDC++, ApexDC++, StrongDC++

Domain Name System

eDonkey: aMule, eDonkey2000 (parado), eMule, DreaMule, LMule, MLDonkey, mlMac, Shareaza, xMule, iMeshFastTrack: AlterGalaxy, giFT, Grokster, iMesh, iMesh Light, Kazaa, Kazaa Lite (sem adwe), KCeasy, Mammoth, MLDonkey, mlMac, Poisoned

Freenet: Entropy, Freenet

GNUnet: GNUnet, (GNUnet-gtk)Gnutella: AlterGalaxy, Acquisition, BearShare, Cabos, Gnucleus, Grokster, iMesh, gtk-gnutella, Kiwi Alpha, LimeWire, FrostWire, MLDonkey, mlMac, Morpheus, Phex, Poisoned, Swapper, Shareaza, XoloX

Gnutella2: Adagio, Caribou, Gnucleus, iMesh, Kiwi Alpha, MLDonkey, mlMac, Morpheus, Shareaza, TrustyFilesKad (rede) (usando o protocolo Kademlia): aMule, eMule, MLDonkeyMANOLITO/MP2P: Blubster, PioletMFPnet: AmicimaNapster: Napigator, OpenNap, WinMXP2PTV type networks: TVUPlayer, CoolStreaming, Cybersky-TV, TVants

Page 17: Peer-to-Peer - P2P

Prova de Aptidão Tecnológica

Peer-to-Peer

Peercasting type networks: PeerCast, IceShare, FreeCastSoulSeek: SoulSeek, NicotineUsenetWPNP: WinMXZPoC

9 - Direitos de autor

As redes P2P são acusadas mundialmente de ir contra os direitos de autor, por

disponibilizar ou partilhar arquivos sem a autorização do copyright.

Muitos utilizadores das redes P2P, defendem que a ausência de lucro na reprodução do copyright não deveria ser considerada crime.

9.1 - Caso Napster e Btuga

Imagem 9 – Ícones do Btuga e Napster

Embora os administradores do Napster e Btuga defendam que apenas disponibilizassem os servidores e não copiassem ficheiros para o servidor e que os utilizadores é que copiavam os arquivos para lá, os servidores foram confiscados.

Os endereços eram localizados e conhecidos e foi com isso que não se mantiveram anónimos.

Qualquer que seja a visão que alguém tenha sobre a legitimidade de cópia de arquivos para o propósito de partilha de material protegido por direitos de autor, existe uma legítima justificativa social e política para a anonimidade de clientes e servidores em alguns contextos de aplicações.

A justificativa mais persuasiva é usada quando a anonimidade é utilizada para superar a censura e manter a liberdade de expressão para indivíduos em sociedades e organizações opressivas [7].

10 – Exemplo com Wireshark e SNORTUtilizei o wireshark para analisar os pacotes que são enviados e recebidos.

Page 18: Peer-to-Peer - P2P

Prova de Aptidão Tecnológica

Peer-to-Peer

Fui a um site através do browser e começou a fazer a transferência do servidor para a minha máquina. Houve contacto com o ip 66.197.10.114 e foram fazendo reconhecimento das máquinas. Não houve impedimento nem regras do SNORT para restringir o tráfego.

Visto que não houve mais nós nesta transferência, coloquei um arquivo do site http://mininova.org na aplicação utorrent. Tal como esperado, houve cerca de 30 nós que estavam a receber e/ou a enviar arquivos.

Analisei cada pacote que estava na transferência capturada e todos os pacotes capturados que já estavam a ser enviados por outros nós, dos quais o wireshark deu erro e passou esses pacotes à frente. Houve transferências de vários países, reconhecimento de ip’s que enviavam e/ou recebiam dados do meu nó e ainda houve protocolos e portas virtuais abertas especiais que foram abertas pelos protocolos da transferência.

Para além da análise dos pacotes com o wireshark utilizei uma aplicação para poder restringir esses pacotes. Nos pacotes analisados a partir do browser capturei o ip do servidor e bloqueei esse ip, porque poderia tratar-se de uma ligação não segura.

Nos pacotes que analisei com o ut

Page 19: Peer-to-Peer - P2P

Prova de Aptidão Tecnológica

Peer-to-Peer

ConclusãoO tema Peer-to-Peer hoje em dia é um dos mais falados e mais criticados por motivos de leis e direitos de autor. Mas como tal como apresentei, este tema ainda é um tema que cada vez mais é explorado e que não se poderá parar, visto que existem arquitecturas que são impossíveis de parar.

As arquitecturas foram explicadas junto com vários frameworks e aplicações que fizeram esclarecer melhor como as redes informáticas Peer-to-Peer funcionam e como se relacionam connosco hoje em dia.

Page 20: Peer-to-Peer - P2P

Prova de Aptidão Tecnológica

Peer-to-Peer

Referências[1]# Shirky, C. (2000) What's P2P and What's not, 24/11/2000. Internet Publication.

[2]# Tanenbaum, A. S.(2005), Steen, M. V. - Distributed Systems : Concepts and Design. 4th Edition.

[3]# Fábio Melro(2009), P2P model, application and alternative solution

[4]# Stoica, I., Morris, R., Liben-Nowell, D., Karger, D. R., Kaashoek, M.F., Dabek, F., e Balakrishnan, H.: "Chord: A Scalable Peer-to-peer Lookup Protocol for Internet Applications." IEEE/ACM Trans. Netw., (11)1:17-32, Feb. 2003

[5]# Basu, S., Banerjee, S., Sharma, P., and Lee, S. 2005. NodeWiz: peer-to-peer resource discovery for grids. In Proceedings of the Fifth IEEE international Symposium on Cluster Computing and the Grid (Ccgrid'05) - Volume 1 - Volume 01 (May 09 - 12, 2005). CCGRID. IEEE Computer Society, Washington, DC, 213-220.

[6]# Risson, J. and Moors, T.: "Survery of Research towards Roubust Peer-to-Peer Netwroks: Search Methods." Comp. Netw., (50), 2006.

[7]# Coulouris, G., Dollimore, J., Kindberg, T. Distributed Systems : Concepts and Design. 4th Edition (2005).

[8]# Adar, E. and Huberman, B.A.: "Free Riding on Gnutella." Hewlett Packart, Information Dynamics Lab, Jan.2000. [9]# Saroiu, S., Gummadi, P.K., and Gribble, S.D.: "Measuring and Analyzing the Characteristics of Napster and Gnutella Hosts." ACM Multimedia Syst., (9)2:170-184, Aug. 2003. [10]# Yang B. and Garcia-Molina, H.: "An Empirical Study of Free-Riding Behavior in the Maze P2P File-Sharing System" Proc. Fourth Int'l Workshop on Peer-to-pEer Systems, Lect. Notes Comp. Sc., (Ithaca, NY). Berlin: Springer-Verlag, 2005