Redes P2P (Peer-to-Peer em inglês, Ponto-a-Ponto em português) é uma topologia cujas principais características são:
- Descentralização da maior parte das funções da rede, isto é,
cada nó pode realizar funções de cliente e/ou servidor.
- O principal objetivo de uma rede P2P é compartilhar dados e dispositivos.
- A informação trafega da origem ao destino, ignorando os nós intermediários,
que simplesmente servem de “ponte” entre a origem e o destino.
- As características do nó também influem na rede como um todo.
Características como: Largura de banda, fontes de determinado arquivo,
capacidade de armazenamento ou de processamento.
Uma vantagem do P2P é que, como cada nó não atua como um servidor fixo, o desligamento ou má funcionalidade de algum nó atuando como servidor não invalida a rede.
Um ponto importante de ser mencionado é que a idéia da rede P2P é de uma rede totalmente descentralizada. Porém, são raras as redes que possuem uma arquitetura 100% descentralizada (chamada P2P ‘pura’). A maior parte das redes P2P possui um nó centralizador, por mais insignificante que seja, para executar tarefas que são melhores executadas em servidores centrais, voltados para isso e não em cada nó da rede. As redes P2P sem uma centralização têm como vantagem a dificuldade de se mover um processo contra ela, já que não existe um órgão centralizador que possa ser processado. Ainda assim, os próprios usuários podem ser processados em alguns casos. Uma desvantagem desse tipo de rede é que não existe uma moderação adequada para diminuir problemas e poluição na rede, como veremos mais adiante. Para redes centralizadas, as vantagens e desvantagens são exatamente o contrário das descentralizadas. Exemplos de redes totalmente descentralizadas são Gnutella e Freenet e de redes com alguma centralização temos o Napster e alguns softwares de mensagens instantâneas como ICQ ou canais IRC. A maioria das redes é considerada híbrida: um servidor central é responsável por gerir os nós, ou seja, controlam os “pedidos” de arquivos dos usuários, verificam disponibilidade e mantém informação sobre cada nó que está na rede, mas são os nós (usuários) que armazenam as fontes e disponibilizam os arquivos na rede. Um exemplo de protocolo híbrido é o JXTA, utilizado no Soulseek, por exemplo.
Uma Rede P2P
Uma Rede Centralizada
O termo Peer-to-Peer foi inventado pela IBM em 1984 com o projeto Advanced Peer-to-Peer Networking Architecture. Porém, as redes P2P começaram a ser conhecidas em 1999, com o surgimento do Napster. Embora a idéia de P2P já tivesse sido “inventada” anteriormente, foi o Napster que a tornou famosa. O Napster foi inventado por um estudante norte-americano de 18 anos, Shawn Fanning, após deixar sua faculdade no primeiro semestre de estudos. O Napster foi o pontapé inicial para as redes P2P ficarem conhecidas mundialmente e se tornarem praticamente um padrão para compartilhamento de arquivos.
Alguns exemplos de redes ou protocolos P2P são: Ares, eDonkey, FastTrack, PDTP, Soulseek, AudioGalaxy, Kademlia, Hamachi, OverNet.