Curso Livre de Redes de Computadores II/Redes P2P

Introdução

editar
  Redes P2P - Peer to Peer

Shawn Fanning criador do Napster em 1999, o primeiro programa de compartilhamento de música MP3 da Internet, foi o criador desse novo tipo de conexão (P2P), dando origem a uma era de compartilhamento de conteúdo em larga escala.

O Nome se da origem pelo seu formato de disposição dos computadores interligados à rede. O P2P está por trás de softwares de compartilhamento de arquivos, documentos e informações sem a necessidade de um servidor central. Diferente da conexão cliente/servidor, a P2P não possui um servidor central, é necessário que o cliente atue como servidor também. P2P cuja tradução mais próxima em português significa "par a par", vem do inglês "peer to peer", onde o 2 é referenciado como "to" em inglês que significa "para".

Antigamente diversos programas que tinham como base o P2P eram utilizados, tais quais: Emule, Kazaa, Ares Galaxy entre outros. Hoje em dia clientes torrent são os mais comuns, onde o usuário faz o download do programa e se conecta com milhares de computadores disponíveis para o compartilhamento de determinado dado.

Vantagens

editar
  • Conexão eterna: Diferente de usuário a servidor, na qual quando o servidor cai, não se tem mais acesso ao destino, a P2P terá uma conexão infinita, pois há milhares de computadores para ela usar como servidor. Se houverem interrupções da conexão da fonte que está sendo utilizada para baixar um arquivo, o download recomeçará de onde parou a partir dos dados cedidos por outros usuários, e se mais interrupções acontecerem, o processo se repetirá até o download ser completado.[1]
  • Maiores dados em menos tempo: como os arquivos são divididos em blocos, o motor de busca garante que os arquivos sejam baixados com a maior velocidade possível, otimizando o processo ao tentar baixar diferentes partes desse arquivo em diferentes servidores. Dessa maneira, evitam-se gargalos na transmissão dos dados, e mesmo que uma pessoa possua uma conexão lenta de transferência, a mesma irá conseguir repassar seus arquivos para diversas outras pessoas.[1]
  • Perpetuação dos arquivos (perder um arquivo): É muito difícil perder um arquivo na rede p2p, o único modo seria todos os usuários apagarem o arquivo simultaneamente de seus computadores
  • Mais viável do que maioria das outras alternativas em questão de custo e manutenção.

Funcionamento e Classificações

editar

A criação de uma rede overlay sobre a infraestrutura de comunicação disponibilizada na internet é a principal característica de uma rede P2P, que é definida na camada de aplicação. Nessa forma de comunicação é necessário que os pontos se encontrem para que de fato ocorra a comunicação, ou seja um ponto é lançado e está apto para ser descoberto e receber a resposta de outros pontos.

Clientes de torrent

editar

Existem diversas opções de clientes torrent disponíveis para download na internet. Os líderes desse mercado são o uTorrent e o BitTorrent, ambos da empresa, com produtos grátis e pagos. Existem outras alternativos de softwares grátis e de código aberto, como o Transmission, qBittorrent e oDeluge, que são os mais conhecidos dessa categoria.

  1. 1,0 1,1 https://www.gta.ufrj.br/ensino/eel878/redes1-2016-1/16_1/p2p/intro.html

O BitTorrent, desenvolvido por Bran Cohen, é um protocolo P2P onde os pares fazem o download de blocos que geralmente são de 256KB. Quando um par entra em um torrent, ele inicialmente não possui blocos e acumula-os ao decorrer do tempo. Ao passo que o par possuí o arquivo todo, ele pode escolher entre sair do torrent ou continuar fazendo upload para outros pares, com liberdade de sair do torrent e depois voltar. Além disso, um torrent pode conter uma quantidade indefinida de pares simultâneos. [1]

Redes P2P não estruturadas

editar

As redes não estruturadas não representam nenhuma organização particular de nós. Todos os participantes estão em contato aleatório uns com os outros. E, a este respeito, tais sistemas são considerados resistentes à alta atividade de rotatividade de nós (ou seja, alguns nós se juntam à rede, enquanto outros a deixam).

Embora simples de construir, as redes P2P não estruturadas podem exigir uma maior utilização de CPU e RAM, pois as pesquisas são enviadas para o maior número possível de pares. Essa arquitetura tende a inundar a rede com solicitações, especialmente se um pequeno número de nós oferecer as informações desejadas. [2]

Redes P2P estruturadas

editar

Em comparação com o tipo anterior, as redes estruturadas são uma arquitetura organizada que permite aos nós pesquisar arquivos com mais eficiência, mesmo se o conteúdo não estiver amplamente disponível. Na maioria dos casos, isso é obtido por meio do uso de funções hash que facilitam a pesquisa no banco de dados.

Embora as redes estruturadas sejam altamente disponíveis e eficientes, elas tendem a ser mais centralizadas e exigentes em termos de instalação e manutenção. Além disso, essa arquitetura é menos robusta quando se trata de alta rotatividade de nós.[3]


Perigos de se usar rede Peer to Peer

editar

É inegável que a rede P2P trouxe diversos avanços e melhorias, mas navegar nelas pode não ser algo totalmente seguro, tendo algumas possíveis ameaças para seus usuários, que são:

  • Vírus: ao baixar arquivos por P2P é possível que haja contaminação por vírus.
  • Invasão: invasões de máquinas através da fragilidade em aplicações P2P.
  • Compartilhamentos indesejáveis: publicações de dados sensíveis podem ocorrer através do compartilhamento de arquivos.
  • Roubos: Invasões nas redes P2P com o objetivo de roubar o código fonte, uns dos maiores patrimônios de empresas de software.
  • Ações judiciais: Principalmente no exterior, processos judiciais vêm ocorrendo por conta de violações dos direitos autorais, através da aquisição de filmes, músicas, livros e softwares. Isso vem ocorrendo pelo fato das empresas detentoras desses direitos estarem monitorando as atividades nas redes P2P.

Distributed Hash Table (DHT)

editar

Esta classe oferece uma forma de roteamento mais estruturado de modo a obter tanto a descentralização quanto eficiência. A DHT é útil quando cria-se um banco de dados distribuídos para alcançar uma maior escalabilidade. É feito utilizando pares de chaves e valores entre os nós da rede de maneira que cada um tem possa de um pequeno subconjunto. Assim qualquer nó na rede pode realizar consultas no banco de dados com uma chave, o banco localizará os nos que possuem o par correspondente e retornar as informações para a consulta. [4]

Referencias

editar

[5]

  1. KUROSE, Jim F.; ROSS, Keith W.. Redes de computadores e a internet: uma abordagem top-down. 6. ed. São Paulo: Pearson Education, 2013.
  2. https://www.univie.ac.at/ct/stefan/hipc07.pdf
  3. https://www.researchgate.net/publication/240940588_An_Overview_of_Structured_P2P_Overlay_Networks
  4. https://www.gta.ufrj.br/ensino/eel878/redes1-2018-1/trabalhos-v1/p2p/arquitetura.html
  5. http://www2.ic.uff.br/~otton/graduacao/informaticaI/P2P.pdf