As Redes P2P e a Internet

Características

A seguir serão citadas algumas características das redes P2P:

Nas redes P2P, devido a um maior número de estações pertencentes a diferentes usuários e organizações, não há garantia da disponibilidade dos recursos disponíveis. Um usuário que esteja utilizando uma estação atuando como servidor pode desligá-la e interromper um certo fluxo de informações, por exemplo. Uma rede P2P bem implementada deve saber lidar com essa HETEROGENEIDADE, tornando os recursos sempre disponíveis.

Na rede P2P, não existe um hospedeiro ou nó com uma atribuição especial. O papel de cada estação se confunde entre cliente e servidor, ou seja, cada nó pode desempenhar ambos os papéis. Por causa desse fato, todos os nós presentes nesse modelo possuem a mesma importância.Apesar da maior complexidade de implementação desse modelo, essa característica define a rede peer-to-peer como DESCENTRALIZADA e a sua distribuição como HORIZONTAL.

No modelo de redes P2P, as estações podem desempenhar o papel tanto de cliente como de servidor. Por conta da "independência" dessa rede, ela possui muito mais TOLERÂNCIA a falhas ou ataques, porque não depende de um único servidor. No tradicional modelo cliente-servidor, por exemplo, se houver ataque ou falha no servidor central, todo o sistema falha, diferente das redes P2P, onde apenas um nó ficará inutilizado.

Requisitos

Para um correta implementação das redes P2P, é preciso que ela siga alguns requisitos:

  1. Escalabilidade Global
  2. Uma das propostas da rede P2P é distribuir os recursos de hardware do maior número possível de nós ou hospedeiros. Essa distribuição deve ser feita de modo que um objeto possa suportar um quantidade muito grande de acessos em muitos hospedeiros.

    Essa escalabilidade é alcançada através da colocação aleatória de objetos, com a réplica dos objetos mais utilizados.

  3. Otimização da interação entre nó vizinhos
  4. Um fato de grande importância na comunicação entre nós da rede é a distância entre eles. A conexão entre nós muitos distantes aumenta a latência e, portanto, torna essa comunicação mais lenta. Dessa forma, é necessário as aplicações priorizem a colocação de recursos para nós mais próximos.

  5. Disponibilidade
  6. Uma rede P2P pode ser formada por vários hospedeiros que estão livres para se desconectar a qualquer momento. O sistema por trás de uma rede P2P deve ser capaz que realocar os seus recursos quando há a entrada ou saída de hospedeiros, de modo que os recursos estejam sempre disponíveis da melhor forma possível.

  7. Segurança dos Dados
  8. Pelo fato de poder comportar um número muito grande de participantes de diferentes origens, uma rede P2P deve garantir a privacidade dos dados e da informação. Uma confiança em um sistema peer-to-peer deve ser garantida a partir de autenticação e criptografia dos dados.

  9. Anonimidade, negabilidade e resistência à censura
  10. Em situações que demandam resistência à censura, torna-se necessária a implementação de um sistema que garante a anonimidade do hospedeiro, assim como o poder de negar a posse e suprimento de informação. Isso pode ser alcançado por um sistema robusto, com um número muito grande de hospedeiros.

Principais Usos

Muitas aplicações utilizam redes peer-to-peer e muitos usuários sequer sabem o que se passa por trás de uma simples transferência de arquivos. Alguns exemplos são:

  1. Gnutella

  2. 8.Logo Gnutella

    Gnutella é uma verdadeira rede P2P (opera sem um servidor central) usada principalmente para troca de música, filmes e softwares. O software cliente Gnutella se conecta à rede de compartilhamento de arquivos e está disponível em diversas plataformas. Hoje, Gnutella é a segunda rede de troca de arquivos mais popular da internet, perdendo apenas para o eDonkey 2000.

    Gnutella nasceu como uma alternativa completamente distribuída para os sistemas centralizados ou semi centralizados que existiam naquele momento, tais como KaZaA e Napster. Esse último contribuiu para o crescimento do Gnutella devido à ameaça legal de morte do Napster no início de 2001.

    Um dos diferenciais dessa rede é, ao invés de tratar todo usuário como cliente e servidor, alguns usuários passaram a ser tratados como "ultrapeers", direcionando requisições de busca e respostas para usuários conectados a eles. Esse diferencial permitiu à rede crescer em popularidade e hoje existem diversos clientes compatíveis com o protocolo conhecido como Gnutella, que hoje continua ainda a evoluir.

    Na prática, porém, uma procura na rede Gnutella é pouco confiável, visto que os "nós" estão constantemente se conectando e desconectando, o que faz com que a rede nunca fique completamente estável e a maioria das buscas nunca atinja mais de 50% da rede. O real benefício da total descentralização da rede Gnutella é fazer com que seja muito difícil da rede cair, diferentemente das que dependem de um servidor central.

    Gnutella opera em um protocolo de fluxo de pedidos. A versão Gnutella 0.4, já ultrapassada, utiliza cinco tipos de pacotes diferentes, chamados:

    ping
    Descobre servidores na rede.
    pong
    Resposta ao ping.
    query
    Procura por um arquivo.
    query hit
    Resposta ao query.
    push
    Solicitação de download para um nó protegido por firewall.

    O padrão Gnutella 0.4 ainda é a última especificação do protocolo, já que todas as extensões existem apenas como propostas, porém, está desatualizado, por isso é quase impossível conectar hoje com o padrão 0.4. O protocolo Gnutella continua em desenvolvimento e ainda existem tentativas de limpar toda a complexidade do Gnutella 0.4 em prol de uma nova arquitetura (tal como Gnutella2). Apesar de tudo isso, ainda é um dos protocolos de compartilhamento de arquivos mais bem sucedidos até hoje.

  3. Napster

  4. 9.Logo Napster

    Napster foi o nome dado a dois serviços online de música. Esse serviço é considerado pioneiro na utilização de redes P2P para transferencia de arquivos pela internet e focava na distribuição de arquivos de áudio, principalmente música, em formato MP3. A companhia original que detinha os direitos sobre o Napster passou por muitas dificuldades perante a lei no que se refere a infrações de copyright.

    Apesar de já existirem serviços de compartilhamento de arquivos P2P na internet quando nasceu o Napster, seu diferencial foi a ênfase em arquivos MP3 musicais em uma interface amigável ao usuário. Em seu pico, o Napster possuía em torno de 80 milhões de usuários registrados, já que tornou simples a entusiastas de música conseguir copias de músicas que de outra forma seriam extremamente difíceis de obter, como antiguidades ou gravações não oficialmente lançadas.

    A facilidade criada pelo Napster para a transferência de material protegido por leis de copyright despertou a ira da RIAA (Recording Industry Association of America), que no final de 1999 abriu um processo contra o serviço. Isso, porém, foi uma enorme publicidade para o serviço que ganhou mais alguns milhões de usuários. Apesar das tentativas dos responsáveis pelo Napster de cumprir com as ordens judiciais e desenvolver sistemas para evitar o compartilhamento de pirataria em sua rede, as exigências duras da indústria musical e as próprias dificuldades criadas pela natureza descentralizada do serviço fizeram com que este acabasse por fechar completamente sua rede em Julho de 2001.

    Após isso diversas tentativas foram feitas para transformar o Napster em um serviço por assinatura, mas sem sucesso, atualmente, o Napster foi comprado pela Best Buy e fundido com o Rhapsody.

  5. Torrent

  6. 10.Logo Torrent

    Aplicativos de download de arquivos que utilizam o torrent também são bons exemplos de rede P2P. O BitTorrent, por exemplo, é um aplicativo que trabalha com pedaços de arquivo e é altamente colaborativo. Diferente dos outros sistemas em que um usuário somente baixa o arquivo, no BitTorrent o usuário colabora provendo conteúdo para outro usuário no momento em que recebe um pedaço de arquivo.

  7. Bit Torrent

  8. 11.Logo Bit Torrent

    BitTorrent é um dos protocolos mais comuns para transferência de grandes arquivos através de redes P2P, esse protocolo é tão importante e largamente difundido que em Novembro de 2004, BitTorrent foi responsável por 25% de todo o tráfico de internet.

    Para enviar e receber arquivos o usuário deve possuir um cliente BitTorrent, um software que implemente o protocolo P2P, existem diversos serviços para esse fim. Esses softwares permitem então que o usuário encontre “peeis”que sejam “seeds” do arquivo desejado.

    Um usuário que queira fazer upload de um arquivo deve primeiramente criar um pequeno arquivo “torrent descriptor” que pode ser distribuído por qualquer meio convencional. Já que se trata de um arquivo muito pequeno, ele pode ser transferido sem problemas utilizando outros meios. O usuário que criou o torrent transforma então seu nó BitTorrent em um “seed” do arquivo original e outros usuários podem utilizar o “torrent descritor” para transformar seus próprios nós bitTorrent em “leechers”, baixando o arquivo ao conectar-se ao “sede” ou a outros “peers”.

    De forma a facilitar a transferência, o arquivo que está sendo distribuído é dividido em segmentos menores que são baixados do “seed” que o possuir e estiver disponível no momento. Esse sistema também se mostra eficiente já que um usuário que ainda está baixando partes do arquivo pode se tornar um “seed” das partes que já possui para quantos usuários sua banda permitir.

    Como medida de segurança, cada torrent é protegido por um hash criptográfico dentro do “torrent descriptor”, isso impede que qualquer modificação acidental ou maliciosa de qualquer dos pedaços do arquivo seja automaticamente detectada. Se um nó iniciar com um cópia autêntica do “torrent descriptor”, o software é capaz de verificar a autenticidade de todo o arquivo.

    As peças normalmente são baixadas de maneira não sequencial e o cliente BitTorrent as organiza na ordem correta, monitorando quais pedaços ainda são necessários e quais podem ser distribuídos. Em um mesmo download, todos os pedaços devem possuir o mesmo tamanho. Essas características trazem alguns benefícios ao sistema, por exemplo, qualquer download pode ser parado a qualquer momento sem perda do que já foi baixado e permite ao cliente baixar automaticamente pedaços disponíveis, ao invés de parar o download e aguardar a disponibilidade da próxima peça na fila.

    Apesar de se tratar da transferência de arquivos através de uma rede, um download BitTorrent difere de um download normal em alguns quesitos fundamentais:

    • BitTorrent faz diversos requerimentos de pequenos pacotes por diferentes conexões IP para diferentes máquinas, enquanto os downloads clássicos são feitos através de uma única conexão TCP para uma máquina.
    • BitTorrent baixa os pedaços de forma randômica ou buscando o mais raro primeiro. Esse método permite alta disponibilidade, enquanto downloads clássicos são sequenciais.

    Essas diferenças permitem que uma rede BitTorrent tenha um custo muito mais baixo para o gerador de conteúdo, muito mais redundância e uma resistência muito maior da rede e dos arquivos.

Arquiteturas

As duas pricnipais arquiteturas numa rede peer-to-peer são:

  1. Arquitetura peer-to-peer estruturada
  2. Nesse tipo de arquitetura, os dados são organizados através de uma tabela hash distríbuida (DHT) que mapeia o item ao hospedeiro. São fornecidos identificadores de 128 ou 160 bits tanto para o item quanto para o hospedeiro. Dessa forma, ao fazer a busca por um item específico, são mapeados para o usuário todos os hospedeiros que possuem o item.

  3. Arquitetura peer-to-peer não estruturada
  4. Nessa arquitetura, os nós possuem uma rede de vizinhos que é construída ao acaso. Ao fazer uma busca por um certo item, um nó consulta primeiro seus vizinhos, depois os viznhos dos vizinhos e assim por diante. Em suma, toda a rede é inundada por essa busca, que causa um grande tráfego de sinalização e torna a rede lenta. Destaca-se também da possibilidade de um cliente não conseguir se comunicar com um hospedeiro se este estiver muito distante por causa de mecanismos que impedem que mensagens se propaguem indefinidamente na rede.

Menu