Universidade Federal de Pernambuco Graduação em Ciência da Computação



Baixar 197.47 Kb.
Página4/7
Encontro29.07.2016
Tamanho197.47 Kb.
1   2   3   4   5   6   7

2.3 – Redes Peer-to-Peer




2.3.1 - História do Peer-to-Peer

A computação P2P (Peer-to-Peer) é um resultado da tendência natural de descentralização em engenharia de software junto com o crescimento da disponibilidade de tecnologia para a criação de redes poderosas.


Da perspectiva se quem desenvolve, a tendência das ultimas décadas foi impulsionada por necessidades como a integração de aplicações empresariais, o que impulsionou a substituição dos sistemas monolíticos por sistemas distribuídos. O crescimento da computação distribuída era inibida pela facilidade do gerenciamento de aplicações centralizadas, mas com o crescimento da Internet, seguida pela ascensão da importância de transações B2B (Business to Business), a computação distribuída acabou se tornando uma necessidade.
Da perspectiva tecnológica, surgiram redes de computadores poderosas, com milhões de usuários como a Internet, e a banda se tornou cada vez mais barata e maior. E sabe-se que para ser efetiva, a computação P2P requer a disponibilidade de inúmeros pontos interconectados, já que quanto mais recursos disponíveis, mais poderosa se torna a rede P2P.
Essas duas tendências combinadas formam um ambiente perfeito para o desenvolvimento de aplicações P2P. Mas o apelo social também foi fundamental, muito do interesse atual pela computação P2P é resultado da popularidade de produtos como o Napster, Gnutella, Kazaa, entre outros. Eles geraram aplicações que colocaram um subconjunto da tecnologia P2P ao alcance de milhares de usuários. E esta primeira experiência, mostrou todo o poder do paradigma P2P ao universo de usuários.
Mas computação P2P não é uma novidade surgida nos anos 90 como muitos pensam. O termo P2P pode ser uma coisa nova, mas a tecnologia básica vem dos tempos da USENET e da FidoNet, duas redes completamente descentralizadas que fizeram sucesso , e de sistemas como o conhecido Domain Name System (DSN).
A USENET foi criada em 1979, era uma aplicação distribuída que provia newsgroups.No começo era o trabalho de dois estudantes de graduação Tom Truscott e Jim Ellis. Na época não existia nada sobre-demanda como a Internet que conhecemos. Arquivos eram trocados em batch sobre linhas telefônicas. Conseqüentemente não existia uma forma efetiva de centralizar a função da USENET. O resultado natural foi uma aplicação distribuída extremamente descentralizada.
A outra rede de sucesso foi a FidoNet, que como a USENET era uma aplicação distribuída descentralizada para troca de mensagens. FidoNet foi criada em 1984 por Tom Jennings como forma de trocar mensagens entre usuários de diferentes sistemas BBS.
Já o DNS que foi originalmente desenvolvido para suportar em 1983 centenas de milhões de hosts na Internet, é um sistema que junta o conceito de aplicação P2P com um modelo hierárquico de informação. Os conceitos do DNS são diretamente aplicáveis nas aplicações de trocas de arquivos atuais, pois este consiste justamente de uma solução para o problema da troca de arquivos. No começo da Internet a forma de mapear um nome como “cin” a um IP, era feita através de um arquivo de texto plano “hosts.txt”, que era então copiado através da Internet periodicamente. Mas a Internet cresceu e o gerenciamento desse arquivo se tornou impossível, e dessa necessidade surgiu o DNS.
Mas foi na década de 90 que as redes P2P surgiram com toda a força, principalmente com softwares de troca de arquivos como o Napster e o Gnutella, nesse tipo de redes cada nó é conhecido como peer e estes podem atuar tanto como cliente como servidor, isso faz com que a tanto a informação quanto recursos da rede possam ser disponibilizados de forma distribuída, sem depender tanto de uma visão global. Outras características importantes de uma rede P2P é a comunicação direta entre os peers, a autonomia que cada peer possui na rede, e a escalabilidade, quanto mais peers mais a distribuição da informação se torna eficiente e mais rica em recursos é a rede.

2.3.2 - Características de Sistemas P2P

Os sistemas P2P atuais possuem algumas características em comum, que incluem:



  • O nós (peer) tem consciência da existência de outros nós da rede.

  • Esses nós criam uma rede virtual que abstrai a complexidade da interconexão entre eles, burlando firewalls, subredes e os atrasos dos serviços de rede.

  • Cada nó pode atuar como cliente ou como servidor.

  • Esse nós formam comunidades que trabalham com dados e aplicações e que podem ser descritas como peer groups.

Os sistemas P2P também podem ser classificados de acordo com seu objetivo mais específico, abaixo alguns tipos de sistemas P2P e seus representantes:



  • Sistemas de Troca de Arquivos: Gnutella, Kazaa, Napster.

  • Sistema de distribuição de recursos: SETI@Home, Avaki, Entropia, e projetos de Grid Computation.

  • Redes de Distribuição de conteúdo: OpenCola, Blue Falcon Networks, Konitiki.

  • Comunicadores: AOL Instant Messenger, Yahoo!Messenger, ICQ, Jabber, entre outros.



2.3.3 - Arquiteturas P2P e seus Representantes

Existem 3 tipos principais de arquitetura P2P:



Arquitetura centralizada
É considerada a primeira geração de aplicativos P2P, e utiliza um servidor central que mantém diretórios dos arquivos de cada nó. Quando um cliente loga nesse tipo de rede, seu diretório é atualizado, e qualquer mensagem de controle ou de busca é enviada ao servidor central, que cruza as referências de uma busca com o dados de seu banco de dados e envia a resposta ao cliente. A partir daí o cliente pode contactar os peers diretamente. A grande vantagem dessa abordagem é a performance nas buscas, além de ter um baixo consumo de banda já que as buscas são repassadas apenas ao servidor. O maior representante desse tipo de arquitetura foi o NAPSTER.

Fig1 – Arquitetura do Napster


Arquitetura Descentralizada ou Pura

Nessa arquitetura inexiste um ponto central de controle, os peers são autônomos e completamente interligados, podendo assim se comunicar diretamente uns com os outros.

Por não ter um servidor esse tipo de arquitetura é mais robusta que a centralizada, mas tem como desvantagem o tempo de busca que pode ser muito alto pra no fim das contas não retornar nenhum resultado. O maior grande representante desse tipo de arquitetura é o Gnutella.
Criado em março de 2000, o Gnutella foi o primeiro protocolo P2P open source. Tinha o grande atrativo de ser um protocolo pequeno, fácil e acessível o que o ajudou a se popularizar. E de uma perspectiva científica tinha a diferença de não usar nenhum tipo de controle central para organizar a rede sendo assim o representante da arquitetura puramente descentralizada.

Fig2 – Arquitetura Gnutella


Quando um peer queria descobrir algum recurso na rede enviava a requisição a todos os peers que ele tinha contato, os outros peers vão repassando da mesma forma a consulta, e aqueles que podem responder a mesma, enviam suas respostas diretamente para o peer que requisitou o recurso, para que a busca são fique prolongadamente na rede as mensagens possuem um campo time-to-live (TTL), que é decrementado no decorrer dos saltos da mensagem entre os peers, isso faz com que as mensagens sejam descartadas quando o TTL chega a zero.
Arquitetura Híbrida ou Descentralizada Controlada:
Na Arquitetura Híbrida temos a noção de Super Peer, que nada mais é do que uma forma de controle central, é um ponto global que mantém um certo controle sobre os peers que estão ligados a ele, a idéia geral é como se tivéssemos sub-redes P2P e para um peer de uma sub-rede se comunicar com o de outra essa comunicação tem que passar pelos Super Peers responsáveis por cada sub-rede.

O maior representante dessa arquitetura é o Kazaa. Devido ao volume de tráfego e o número de participantes, hoje em dia o Kazaa é uma das aplicações mais importantes na Internet. O site de medição de tráfico P2P Sandvine [5] estima que nos Estado Unidos 76% do tráfego de troca de arquivos P2P está associada ao Kazaa. Para a comunicação P2P o Kazaa usa um protocolo proprietário com encriptação chamado de FastTrack.



2.3.4 - Performance em sistemas P2P


A performance depende da aplicação, do protocolo P2P, e da topologia da rede (ou seja o arranjo dos nós, a capacidade de computação dos mesmos, e a banda passante,). Existem casos onde o protocolo ou a aplicação podem saturar a rede com o excesso de mensagens, um simples exemplo de como isso pode acontecer é numa busca, se as mensagens de busca forem propagadas por muitos nós e com um TTL (time to live) alto sem um controle eficiente a banda da rede pode ser exaurida.




1   2   3   4   5   6   7


©principo.org 2016
enviar mensagem

    Página principal