Disciplina: Redes de Computadores I
Professor: Luís Henrique M. K. Costa
Grupo 9: Matheus Fortunato Chiconi
Redes P2P (peer-to-peer) são sistemas de comunicação em que cada participante (nó) pode atuar tanto como cliente quanto como servidor, compartilhando recursos diretamente entre si, sem depender de um servidor central. Essa arquitetura permite maior descentralização, escalabilidade e resiliência.
Em sua essência, os sistemas P2P caracterizam-se pela formação de redes descentralizadas, tendo como propósito o compartilhamento de recursos computacionais. Nessa arquitetura, um "peer" representa um dispositivo computacional que integra um sistema distribuído, atuando como o ponto central. Uma característica fundamental das redes P2P é que os peers não apenas baixam conteúdo de um servidor de origem, mas também o disponibilizam para outros peers. Isso faz com que a capacidade de serviço do sistema aumente com o número de nós, tornando-o potencialmente autoescalável.
As redes P2P promovem a formação de redes virtuais entre seus participantes. A estrutura de conexão dessa rede virtual é designada como topologia overlay, a qual é construída de forma sobreposta a outra topologia existente. As conexões entre peers nessa rede overlay são lógicas, podendo necessitar de diversos enlaces físicos para seu estabelecimento.
Uma rede peer-to-peer deve ser capaz de tratar diferentes taxas de comunicação entre os peers, provendo um certo grau de autonomia em relação a servidores centrais. Qualquer peer deve estar apto a fornecer e consumir recursos e a se conectar diretamente a outro peer para proporcionar a escalabilidade da rede. Entre os diversos aspectos positivos que tornaram o P2P uma tecnologia promissora, destacam-se a facilidade no compartilhamento de recursos e a inexistência de restrições quanto à quantidade de participantes do sistema.
As redes P2P podem ser auto escaláveis, resistentes à censura, anônimas, e sua robustez atual é resultado de uma evolução incremental. O movimento P2P tem suas raízes na internet primitiva e deu origem a inúmeros protocolos e aplicações que, em casos extremos, redefiniram nossa forma de consumir entretenimento.
O movimento peer-to-peer é enraizado na internet primitiva. A fase inicial da Internet já exibia aspectos de funcionamento similares ao da comunicação peer-to-peer, permitindo a troca de pacotes entre quaisquer hosts sem o uso de mecanismos de segurança. Protocolos como TELNET (RFC 0854) e FTP (RFC 3659) representam exemplos claros dessa comunicação P2P inicial, onde qualquer host poderia atuar como cliente e servidor simultaneamente, sendo denominado SERVENT.
Com a evolução da Internet e a necessidade de segurança, a comunicação P2P direta foi reduzida. Contudo, protocolos como DNS (RFC 1035) e o próprio TELNET mantiveram seu comportamento peer-to-peer. Com a readaptação desse método de comunicação à nova realidade das redes, ele foi retomado na forma de diversas aplicações distribuídas, como serviços de compartilhamento de arquivos, sistemas de mensagens instantâneas, e trabalho colaborativo.
A área de redes peer-to-peer tem sido um tópico de intensa pesquisa, com o serviço de compartilhamento de arquivos sendo uma das áreas mais exploradas. Um dos fatores responsáveis pela popularidade do P2P é proveniente das aplicações destinadas ao compartilhamento de arquivos, que são responsáveis por uma parcela significativa do tráfego nos backbones IP.
A evolução do P2P, focando em alguns marcos históricos relevantes:
Na arquitetura cliente-servidor, um servidor centralizado permanece sempre disponível para atender pedidos de múltiplos clientes, que não se comunicam diretamente entre si. Esse modelo é comum em aplicações como web, e-mail, FTP, entre outras. O servidor tem um endereço fixo, o que facilita sua localização.
Essa abordagem favorece o controle, a segurança e a confiabilidade, mas tem desvantagens, como custo elevado, risco de sobrecarga e a presença de um ponto único de falha.
Já na arquitetura peer-to-peer (P2P), os participantes (pares) comunicam-se diretamente uns com os outros, sem depender de um servidor central. Cada nó pode fornecer e consumir recursos, agindo como cliente e servidor ao mesmo tempo.
Os pares são dispositivos comuns (PCs, notebooks) e podem entrar e sair da rede livremente, formando uma rede descentralizada e distribuída. Isso garante autoescalabilidade, reduz custos e evita gargalos, embora traga desafios quanto à segurança e consistência. A comunicação entre os nós se dá por meio de uma rede sobreposta (overlay), construída sobre a infraestrutura física da Internet.
As redes P2P podem adotar diferentes topologias, dependendo de como organizam seus nós e localizam os recursos. As três principais são:
O BitTorrent é um dos protocolos P2P mais utilizados para a distribuição eficiente de arquivos grandes. Ele se destaca pela sua autoescalabilidade, permitindo que o desempenho melhore à medida que mais usuários participam.
Cada torrent conta com um rastreador (tracker), que ajuda os pares a se encontrarem. Atualmente, muitos clientes utilizam DHTs (Distributed Hash Tables) para eliminar a necessidade de um rastreador centralizado.
Essa estrutura reduz custos com servidores, melhora a velocidade de download e evita gargalos, tornando o BitTorrent uma solução altamente eficaz para compartilhamento de arquivos.
Ambos os protocolos marcaram época ao demonstrar o potencial das redes P2P para compartilhamento de arquivos em larga escala.
O Skype foi inicialmente desenvolvido com base em uma arquitetura P2P com super-peers, aplicada à comunicação de voz, vídeo e mensagens pela Internet (VoIP).
A Internet foi originalmente projetada para um ambiente de usuários confiáveis, sem foco em segurança. Hoje, essa realidade mudou: usuários maliciosos estão por toda parte, explorando vulnerabilidades e realizando ataques diversos.
Principais ameaças em redes P2P:
Para mitigar esses riscos, são utilizados princípios de segurança:
O anonimato é uma característica valorizada em redes P2P, pois impede a identificação das entidades envolvidas. Isso ajuda a evitar censura, mas também pode comprometer a segurança, especialmente em redes locais. A gestão do anonimato deve considerar o tipo de recurso compartilhado.
A confiança, antes presumida, hoje precisa ser construída e verificada. Em sistemas como BitTorrent, a confiabilidade depende da origem do arquivo .torrent. Redes modernas usam mecanismos de reputação, verificação e recompensa para incentivar a colaboração e punir comportamentos maliciosos.
A escalabilidade é um dos principais atrativos das redes P2P. Cada nó pode atuar como cliente e servidor, conectando-se diretamente a outros peers e reduzindo o gargalo centralizado do modelo cliente-servidor.
A escalabilidade exige custos adicionais de desenvolvimento, pois os peers precisam lidar com funções complexas de rede.
Envolve um conjunto de responsabilidades para manter a rede funcional e eficiente:
O LP2P, por exemplo, gerencia comunicação e troca de dados, cuidando da autenticação, criação de sessões e atendimento de requisições.
Além dos peers, a infraestrutura de rede subjacente precisa ser gerenciada:
As soluções que utilizam tecnologias Peer-to-Peer (P2P) destacam-se por sua acessibilidade econômica, principalmente quando comparadas às alternativas construídas sobre arquiteturas cliente-servidor. Isso ocorre porque os próprios participantes fornecem os recursos computacionais e de rede, reduzindo a necessidade de infraestrutura centralizada. Além disso, esse tipo de sistema tende a apresentar alta resiliência, mantendo sua operação mesmo diante de falhas localizadas, como desastres físicos — a desconexão de um segmento da rede não compromete sua funcionalidade geral.