Redes Par-a-Par (P2P)

Disciplina: Redes de Computadores I

Professor: Luís Henrique M. K. Costa

Grupo: Lucas Macedo, Luiz Moraes e Ivan Júlio

Template HTML retirado de: HTML5 Templates

 

Introdução

A arquitetura peer-to-peer (P2P) é um tipo de arquitetura de aplicação, uma forma de estruturar aplicações nos sistemas finais que as executam. Existem duas arquiteturas de aplicação que são mais amplamente utilizadas: a arquitetura cliente-servidor e a arquitetura peer-to-peer. A primeira é uma arquitetura assimétrica, em que um servidor que permanece sempre em funcionamento fornece serviços a vários clientes simultaneamente. Em contraste, a arquitetura peer-to-peer é simétrica, todos os membros da rede são consumidores e fornecedores de recursos, se conectam diretamente e podem estar em funcionamento de forma intermitente. Além desses dois tipos, algumas aplicações podem utilizar uma arquitetura híbrida, em que parte de sua funcionalidade é oferecida por um servidor central, enquanto outra parte é fornecida pela rede P2P.

Uma das principais vantagens da arquitetura P2P é a sua escalabilidade. Cada par adicionado à rede representa um aumento da demanda por recursos (poder de processamento, armazenamento, etc), mas, ao mesmo tempo, pode oferecer seus próprios recursos, aumentando a capacidade da rede. Além disso, essa arquitetura também apresenta uma vantagem em termos de redução de custo para o provedor do serviço, uma vez que não é necessária a aquisição de infraestrutura (servidores e banda), ou a infraestrutura utilizada pode ser de menor escala.

No entanto, a utilização da arquitetura P2P apresenta também alguns desafios. Por exemplo, a tecnologia ADSL (Asymmetric digital subscriber line), amplamente utilizada em redes residenciais, fornece uma taxa de upload menor que a taxa de download, o que atende bem aplicações de transferência de arquivos cliente-servidor, em que a maior parte do tráfego ocorre do servidor para os usuários, mas não aplicações P2P, que exigem que os usuários também enviem dados.

Outro desafio dessa arquitetura está relacionado a criação de incentivos para os usuários. Se, em uma aplicação P2P, existe alguma forma de um usuário apenas utilizar os recursos da rede sem ceder seus próprios recursos, existe, então, a necessidade de criar incentivos para que os usuários compartilhem seus recursos voluntariamente, de forma a assegurar o funcionamento da aplicação.

Histórico

P2P (Peer-2-Peer) ou ponto-a-ponto causou uma mudança de paradigma em relação ao modelo cliente - servidor, possibilitando uma distribuição de conteúdo mais rápida e barata, que possui alta resistência a acidentes e desastres, pois é possível ter o conteúdo em computadores e redes distribuídos pelo globo. Quanto mais usurios mais confivel, pois isto permiti que as implementaes sobrevivam aos problemas citados, que afetam a infraestrutura por onde os dados circulam no mundo real, j que devido capilaridade da sua rede outros caminhos podem ser utilizados para transmitir e receber arquivos. O movimento P2P data do início da internet e deu origem a diversos protocolos.

Devido a suas caractersticas o protocolo P2P amplamente utilizado para pirataria, mas no se pode desconsiderar tudo de til que se pode fazer com ele. Este protocolo autoclavvel, annimo, resistente a censura e suas implementaes so robustas. Pode-se utilizar o P2P at para resistir a opresso disseminando informao, o que se faz com a ferramenta depende de quem a usa.

Aqui conheceremos de forma resumida dez aplicaes do protocolo P2P que foram de maior importncia histrica. H diversas iniciativas que foram criadas ao longo do tempo, que se mencionadas tornariam este artigo muito extenso. Como o foco elucidar a evoluo dos usos do Peer-to-Peer, focaremos apenas em algumas de maior relevncia, para propsitos narrativos. Um fato interessante sobre essas ferramentas que a maioria de seus criadores ainda esto entre ns.

ARPANET

Em 1969 surgiu a ARPANET que originalmente conectou o Stanford Research Institute, a Santa Barbara e a Universidade de Utah no em um formato cliente / servidor, mas tratando-os como pares de computao iguais. Alguns dos primeiros aplicativos populares da Internet, como o FTP e o Telnet, seguiam arquiteturas do tipo cliente servidor, mas como os hosts podiam atuar como servidores para outros hosts, padres de uso simtricos surgiram.

Usenet

Em 1979, a Usenet foi desenvolvida por estudantes de ps-graduao americanos, com base no protocolo Unix-to-Unix-copy (UUCP). Por meio dele, uma mquina Unix poderia discar automaticamente para outra, trocar um arquivo e desconectar, no que lembrava um sistema de quadro de avisos (BBS), o que precursor dos fruns e feeds que temos hoje. Usenet, sem dvida, deu origem a termos como FAQ e spam.

Napster

Durante os anos 80 e 90, o modelo cliente-servidor floresceu, numa poca em que a capacidade de processamento dos computadores disponveis para o consumidor ainda era pequeno, embora estivesse aumentando. A maioria das transferncias de arquivos ocorreu por telefone fixo, com FTP e USENET ganhando uso ao longo do perodo, e o IRC sendo inventado em 88. No final dos anos 90, novas tecnologias de compactao de dados (MP3, MPEG) atingiram uso em larga escala.

Com esse marco da Internet, tivemos a introduo do Napster em 1999, desenvolvido por Shawn Fanning, ainda na Universidade Northeastern. Os usurios baixaram um programa gratuito que pesquisava os discos locais dos computadores vizinhos em busca de arquivos MP3 e depois conseguiam baix-los diretamente um do outro. Em menos de um ano, o Napster tinha mais de um milho de membros. Em menos de dois, o Metallica encheu uma ao contra a empresa. Em menos de trs (julho de 2001) foi encerrada aps sufocao legal e uma tentativa fracassada de se tornar um servio pago.

Gnutella

O Napster ainda dependia da operao de servidores centrais de indexao e, portanto, era suscetvel ao desligamento. Uma nova gerao de compartilhamento de arquivos encabeada por Gnutella, que surgiu em 2000, eliminou essa vulnerabilidade, permitindo que os usurios se encontrassem e se conectassem remotamente. Ao empregar um modelo de flooding de consulta, o protocolo fazia com que cada pesquisa fosse transmitida sucessivamente para outras mquinas na rede (o que, no caso, era significativamente menos eficiente do que a consulta ao indexador central). Outra diferena entre o Gnutella e seus antecessores foi a quantidade de clientes agora disponveis para executar o protocolo. O LimeWire era um dos exemplos mas famosos entre muitos clientes Gnutella.

Freenet

Em 2000 tambm houve o surgimento da Freenet, esta ferramenta trouxe uma grande melhoria em relao ao anonimato do usurio, inaugurando o que mais tarde seria rotulado como a categoria darknet. Isso fazia com que os usurios armazenassem fragmentos criptografados de arquivos, conectando-os apenas atravs de computadores intermedirios que repassavam e retornavam solicitaes sem conhecer o contedo solicitado. O design assemelha-se a como os roteadores da Internet trocam pacotes sem saber nada sobre eles.

Bittorrent

O protocolo criado por Bram Cohen permitia que os pares se comunicassem diretamente atravs de uma porta TCP, mas contavam com rastreadores centrais para registrar a localizao / disponibilidade de arquivos e coordenar os usurios. O Vuze (ex-Azureus) foi o primeiro cliente de BitTorrent a migrar para um sistema sem tracker implementando uma tabela de hash distribuda (DHT) para a descoberta de pares, outros iveram logo em seguida.

A partir da, o BitTorrent surgiu como uma criatura de dois lados em 2001: os clientes de acompanhamento de protocolo vinham com um n DHT que mantinha uma tabela de roteamento com as informaes de contato de alguns outros ns. Quando havia uma busca por um torrent entre pares, o n usava uma mtrica de distncia para comparar a informao do torrent que estava buscando com os IDs dos ns em sua prpria tabela de roteamento, encontrando iterativamente aqueles que estavam mais prximos do alvo infohash. Sem a necessidade de um indexador centralizado, a rede poderia persistir com os ns atualizando suas prprias tabelas de roteamento indefinidamente, mesmo se as autoridades legais agissem contra entidades ou servidores especficos.

Tal desenho permitiu que novas redes interdependentes fossem criadas para cada torrent, formando subgrupos de acordo com a popularidade e o alcance de seus arquivos. Mesmo com o Napster sendo fechado em 2001, a adoo de redes peer to peer continuou crescendo a toda velocidade. Em agosto do mesmo ano, mais arquivos foram baixados sobre Gnutella, Audiogalaxy e iMesh do que o registrado pelo Napster em seu ms mais ativo de todos os tempos.

Bitcoin

O Bitcoin, que surgiu em 2009, no foi projetado com o compartilhamento de arquivos em mente, mas gerou uma nova classe de estruturas de armazenamento P2P. O blockchain um registro distribudo com uma finalidade diferente da DHTs. Satoshi queria armazenar com cada n um registro de transao sempre crescente, sem qualquer chance de adulterao e reviso. J os DHTs visam fornecer uma estrutura eficiente (em termos de tempo de pesquisa e espao de armazenamento) para dividir os dados em uma rede, em que a imutabilidade no a principal prioridade.

O que os mineradores provavelmente no esperavam era que sua atividade central logo seria resumida na categoria genrica de mecanismos de consenso e aplicada a casos de uso muito diferentes dos de armazenamento e transao de valor financeiro.

Namecoin

O Namecoin, em 2011, nasceu da vontade de registrar dados no blockchain e torn-lo menos especfico da aplicao, o principal uso do domnio .bit. O primeiro fork do Bitcoin, aproximadamente um sistema de registro e transferncia de pares de chave valor baseado em sua tecnologia de gerao. Pode ser justo dizer que o Namecoin representou a primeira abordagem no monetria de uma blockchain.

Diaspora

A Diaspora se comercializou como um servidor web pessoal de cdigo aberto e uma rede social descentralizada em 2012. Ela foi financiada com mais de U $ 200.000,00 atravs do Kickstarter em 2010, e lanou um alfa de consumo de curta durao pouco tempo depois, mas alcanou uma verso estvel da comunidade apenas em 2012.

Nele, os usurios configuram seu prprio pod para hospedar o contedo e interagem atravs de um cliente de desktop. O conceito sempre girava em torno da agregao de contedo de outras redes sociais, permitindo que os posts fossem facilmente importados do Facebook, Twitter e assim por diante, mas muitas das APIs necessrias nunca foram feitas. O projeto girou por alguns anos antes de ser abraado por Eben Moglen e pela Freedom Box Foundation. A Diaspora provocou na mdia uma reao anti-Facebook que semelhante ao que vimos em relao a redes sociais mais recentes e recentemente tokenizadas.

DSNs (Filecoin / Swarm / Sia / Storj / Maidsafe)

A ideia por trs das redes de armazenamento descentralizadas basicamente transformar o armazenamento em nuvem em um mercado algortmico, incentivando os ns mineradores a compartilhar o espao de armazenamento para serem recompensados em um token nativo. Incentivar a palavra-chave aqui. No BitTorrent, ns j tnhamos algum tipo de sistema endereado ao contedo, onde ns semeamos os arquivos dos outros. Alm disso, j existia um mecanismo bsico para o mecanismo tat para punir os ns mal comportados.

H, sem dvida, melhorias tcnicas no BitSwap (mdulo de troca de dados do IPFS) sobre o BitTorrent: no se est limitado ao pacote de dados no torrent original, mas capaz de buscar blocos de arquivos completamente no relacionados e identificar com preciso o que est sendo fornecido ou solicitado, independentemente de ser uma parte de um arquivo, uma entrada de um conjunto de dados ou um grande conjunto de arquivos. A grande melhoria est em como isso alcanado:

Fornecer as estruturas de dados e redes adequadas para interagir.

Criando um mercado descentralizado alimentado por um token nativo para o armazenamento e recuperao de pedaos de arquivos ou arquivos completos. Uma viso geral do esquema Filecoin (IPFS).

O primeiro item tem muitos exemplos vivos. J o segundo tem poucas implementaes de trabalho, e muitos projetos interessantes agora esto colhendo os frutos de pesquisas de ponta apoiadas por pesados financiamentos. importante notar que solues totalmente descentralizadas, como as que esto sendo desenvolvidas para rodar em IPFS e Swarm, por exemplo, ainda no esto perto de serem implementadas funcionalmente, embora as redes subjacentes estejam l.

Prova de recuperabilidade, prova de armazenamento, prova de espao-tempo so tpicos de pesquisa quentes que basicamente remontam mesma questo: como recompensar os ns de espao em disco e largura de banda de forma nativa, sem muita sobrecarga sobre as provas devem apresentar e de maneira confivel e eficaz? Com base nesses protocolos, os aplicativos podem reduzir os custos relacionados distribuio e so induzidos a permitir a negociao direta entre os pares, o que leva a fluxos de valor descentralizados e ciclos de feedback saudveis. O sucesso dos DSNs fundamental para a disseminao de dApps e para acelerar a transformao gradual de modelos de negcios em modelos de incentivo de rede.

P2P em Segurança

BitTorrent

Ocupando cerca de 53% de todo o tráfico P2P em Junho de 2004, o BitTorrent surgiu como uma aplicação de compartilhamento de arquivos entre usuários do mundo todo. Diferente de outras aplicações semelhantes, o BitTorrent é completamente descentralizado em termos posse de arquivo. Para baixar um dado arquivo, aqui chamado de torrent, o usuário deve contatar um tracker que é uma lista que é obtida através de compartilhamento direto entre os usuários que contém todos os outros “nós” que possuem ao menos em parte o arquivo desejado. Após contatar os outros nós, o usuário começa a baixar deles blocos que variam entre 32 e 256 kB de tamanho do arquivo. Desse modo, a distribuição do arquivo é feita inteiramente pelos vários usuários presentes na lista tracker. Isso foi a principal característica que levou ao sucesso do protocolo, visto que qualquer tipo de arquivo pode ser compartilhado com raras chances de rastreamento dos usuários e visto que não há um responsável central pela distribuição dos arquivos.

Aplicações Proprietárias

  • “Otimização de entrega”: Desenvolvido pela Microsoft, o sistema foi criado com o intuito de melhorar os downloads de atualizações em PCs. A Otimização funciona dividindo o download entre os próprios Data Centers da Microsoft e computadores que já possuem o pacote na mesma rede em que a máquina que está baixando a atualização. Desse modo, há uma redução em problemas de ping e banda que acometeriam o download caso o computador que estivesse baixando o arquivo estivesse distante ou tivesse uma conexão não confiável com a Microsoft;
  • Napster: Surgido como uma solução para compartilhamento descentralizado de arquivos entre os usuários, o Napster logo se tornou um lugar onde os usuários compartilhavam e baixavam músicas, filmes e jogos sem a necessidade de pagar por nada disso. Sua vantagem era a de conectar em um mesmo lugar um grande número de pessoas que possuíam um arquivo de modo que aqueles que procuravam por ele conseguissem facilmente achá-lo;
  • Skype: É considerado uma aplicação mista pois ainda usa o modelo cliente-servidor para que os usuários encontrem uns aos outros e sejam autenticados no processo. Os usuários mantém uma lista de conexões e seus caminhos. Ao conectar-se a outro usuários, basta apenas pesquisar nesta lista e estabelecer a conexão.

Bibliografia

  1. MACKIE, Kurt. Microsoft Clarifies Windows 10 ‘Delivery Optimization‘. 2016. Disponível em: https://rcpmag.com/articles/2016/08/16/windows-10-delivery-optimization.aspx. Acesso em: 8 maio 2019.
  2. TYSON, Jeff. How the Old Napster Worked. 2000. Disponível em: https://computer.howstuffworks.com/napster.htm. Acesso em: 08 maio 2019.
  3. BASET, Salman A.; SCHULZRINNE, Henning. An analysis of the skype peer-to-peer internet telephony protocol. arXiv preprint cs/0412017, 2004.
  4. BHARAMBE, Ashwin R.; HERLEY, Cormac; PADMANABHAN, Venkata N. Analyzing and improving bittorrent performance. Microsoft Research, Microsoft Corporation One Microsoft Way Redmond, WA, v. 98052, p. 2005-03, 2005.
  5. KUROSE, James F.; ROSS, Keith W. Computer networking: a top-down approach. 6th ed. Pearson; 2013.
  6. WIKIPEDIA, Asymmetric digital subscriber line. Disponível em: https://en.wikipedia.org/wiki/Asymmetric_digital_subscriber_line. Acesso em: 08 maio 2019.
  7. Medium, A Brief History of P2P Content Distribution, in 10 Major Steps. Disponível em: https://medium.com/paratii/a-brief-history-of-p2p-content-distribution-in-10-major-steps-6d6733d25122. 25 de outubro de 2017.