O P2P, Peer-to-Peer (do inglês: Par-a-Par), rede linear, rede distribuída ou rede não hierárquica é uma topologia de redes caracterizada pela descentralização das funções na rede, onde cada terminal realiza tanto funções de servidor quanto de cliente.

Geralmente, uma rede Peer-to-Peer é constituída por computadores ou outros tipos de unidades de processamento que não possuem um papel fixo de cliente ou servidor, pelo contrário, costumam ser considerados de igual nível e assumem o papel de cliente ou de servidor dependendo da transação sendo iniciada ou recebida de um outro par da mesma rede.

Uma rede Peer-to-Peer, diferentemente de uma rede em estrela, é criada com o intuito de compartilhar dispositivos e dados, e não serviços. Como não existe gerenciamento central, a informação trafega por todos ou muitos dos nós da rede, desde sua origem até o destino, sendo ignorada por todos os nós exceto o destinatário. As estações intermediárias atuam simplesmente como repetidoras da informação.

Os nós da rede Peer-to-Peer podem diferir em termos de configuração local, capacidade de processamento, capacidade de armazenamento, largura de banda, entre outras características particulares. O primeiro uso da expressão Peer-to-Peer foi em 1984, com o desenvolvimento do projeto Advanced Peer-to-Peer Networking Architecture na IBM.

Tráfego de dados


Uma vez estabelecida a conexão entre dois nós, a transmissão de dados entre eles ocorre da mesma forma que em uma linha dedicada. No caso de redes Peer-to-Peer virtuais, uma vez estabelecida a conexão, o tráfego percorre um caminho fixo pela rede, de forma análoga ao que ocorre numa linha telefônica de serviço telefônico fixo comutado.

Redes virtuais


O termo é utilizado em diferentes tecnologias que adotam um modelo conceitual Peer-to-Peer (em Portugal, conhecido como par-a-par), tal como o protocolo NNTP (para Usenet News), SMTP (para envio de mensagens eletrônicas - e-mail), e sistemas de troca de mensagens instantâneas (ICQ, MSN). Porém, o termo tornou-se popular com o surgimento de aplicações de compartilhamento de arquivo, em outras palavras, programas que possibilitam a distribuição de arquivos em rede, permitindo o acesso de qualquer usuário dessa rede a este recurso. Outros tipos de recursos podem ser compartilhados em redes Par-a-Par, tal como capacidade de processamento de máquinas, espaço de armazenamento de arquivos, serviços de programas (software, em inglês) - analogamente aos Web Services, entre outros.

Em 1999, Shawn Fanning criou o Napster, para compartilhamento de arquivos de música (principalmente MP3), e trouxe o conceito de Par-a-Par para a mídia, principalmente após tornar-se alvo de ataques jurídicos por parte das companhias fonográficas.

Após o Napster, dezenas de outras aplicações Par-a-Par foram lançadas: DreaMule, Ares, LimeWire, iMesh, WinMX, AudioGalaxy, Kazaa, Gnutella, Freenet, Shareaza, eDonkey, eMule, aMule, Bearshare, ANts P2P, entre outros.

Arquitetura


O Napster e outras aplicações intituladas Peer-to-Peer, tais como o IRC e o ICQ, são baseadas em uma arquitetura cliente/servidor, pelo menos para algumas tarefas críticas, como indexação de informação. Por outro lado, redes como Gnutella e Freenet usam uma arquitetura Peer-to-Peer pura, sem nenhuma centralização de tarefas.

Aparentemente mal empregado, o termo Peer-to-Peer, quando usado para aplicações como o Napster, ressaltam a importância do papel exercido pelos nós da rede. Estes passam a servir como provedores de informação, e não apenas consumidores passivos; ainda que de acordo com pesquisadores do Xerox PARC, 70% dos usuários não contribuem com nenhum arquivo, enquanto 1% dos pares é responsável por 50% dos arquivos disponíveis.

A arquitetura completamente descentralizada do Gnutella faz com que os usuários tenham o mínimo de contato com o servidor central, o que além de promover maior escalabilidade ao sistema, serve de estratégia para evitar os problemas judiciais que terminaram com o Napster.

No entanto, aplicações Peer-to-Peer “puras” são raras. A maioria das arquiteturas Peer-to-Peer é híbrida, utilizando alguns elementos centralizadores na execução de tarefas cujo desempenho é crítico. Redes completamente descentralizadas já foram usadas anteriormente em aplicações de propósito específico, como a Usenet (1979) e a FidoNet (1984). Porém, as questões de desempenho induzem a uma centralização parcial das atividades em pares de maior capacidade. Outras técnicas têm sido desenvolvidas visando o aperfeiçoamento de sistemas Peer-to-Peer.

Fonte: Wikipédia