Baixe o app para aproveitar ainda mais
Prévia do material em texto
Faculdade Estácio do Ceará Arquitetura de Sistemas Distribuídos Aplicações P2P (Peer-toPeer) Prof. Marcus Fábio Fontenelle, M.Sc. Mestre em Informática Aplicada LPIC-1, NCLA, MCSE Prof. Marcus Fábio, M.Sc Faculdade Estácio do Ceará Arquitetura de Sistemas Distribuídos 2 Introdução • Arquiteturas P2P, também conhecidas como arquiteturas descentralizadas, possuem um comportamento simétrico (servidor e cliente ao mesmo tempo, também chamada “servente”). • Existem 3 diferentes tipos de aplicações P2P: Distribuição de Arquivos: (Ex: BitTorrent) Banco de Dados Distribuídos (Ex: DHT – Distributed Hash Table) Telefonia IP (Ex: Skype) Prof. Marcus Fábio, M.Sc Faculdade Estácio do Ceará Arquitetura de Sistemas Distribuídos 3 Distribuição de Arquivos - BitTorrent • Em uma distribuição de arquivo cliente-servidor, o servidor deve enviar uma cópia do arquivo para cada um dos pares. Enorme fardo sobre o servidor Consome uma grande quantidade de banda do servidor • Na distribuição de arquivos P2P, cada par pode redistribuir qualquer parte do arquivo que recebeu para outros pares. • O BitTorrent atualmente é o protocolo mais popular para distribuição de arquivos P2P. Originalmente foi desenvolvido por Bram Cohen Prof. Marcus Fábio, M.Sc Faculdade Estácio do Ceará Arquitetura de Sistemas Distribuídos 4 Distribuição de Arquivos - BitTorrent • No jargão do BitTorrent, a coleção de todos os pares que participam da distribuição de um determinado arquivo é chamada de torrent. • Os pares em um torrent fazem o download de blocos de tamanho igual do arquivo entre si, com um tamanho típico de bloco de 256 KB. • Quando um par entre em um torrent, ele não tem nenhum bloco. Com o tempo, ele acumula mais blocos. • Enquanto um par faz o download, faz também upload de blocos para outros pares. • Uma que um par adquire todo o arquivo, ele pode sair do torrent ou permanecer no torrent e continuar fazendo o upload de blocos a outros pares. A qualquer momento um par pode sair do torrent com apenas um subconjunto de blocos e depois voltar. Prof. Marcus Fábio, M.Sc Faculdade Estácio do Ceará Arquitetura de Sistemas Distribuídos 5 Distribuição de Arquivos - BitTorrent • Cada torrent tem um nó de infraestrutura chamado rastreador (tracker). • Quando um par chega a um torrent, ele se registra com o rastreador e periodicamente informa ao rastreador que ainda está no torrent. • Quando um novo par chega no torrent, o rastreador seleciona aleatoriamente um subconjunto de pares do conjunto de pares participantes, e envia os endereços IP desses pares para o novo par. • Com a lista de pares, o novo par tenta estabelecer conexões TCP simultâneas com todos os pares da lista. Os pares em que foi possível estabelecer uma conexão TCP são chamados “pares vizinhos” Com o tempo alguns desses pares podem sair e outros pares (diferentes dos pares do subconjunto inicial) podem tentar estabelecer conexões TCP. Prof. Marcus Fábio, M.Sc Faculdade Estácio do Ceará Arquitetura de Sistemas Distribuídos 6 Distribuição de Arquivos - BitTorrent Prof. Marcus Fábio, M.Sc Faculdade Estácio do Ceará Arquitetura de Sistemas Distribuídos 7 Distribuição de Arquivos - BitTorrent • A qualquer momento, cada par terá um subconjunto de blocos do arquivo, com pares diferentes com subconjuntos diferentes. • Periodicamente, um par pedirá a cada um de seus pares vizinhos (nas conexões TCP) a lista de quais blocos eles têm. Se forem L vizinhos diferentes, serão obtidas L listas de blocos. Com essa informação, um par emitirá solicitações (novamente, nas conexões TCP) de blocos que ele não tem. • Com a informação de quais blocos o par possui e quais blocos seus vizinhos possuem há duas decisões a serem tomadas: Quais blocos devem ser solicitados primeiro dos vizinhos? Quais vizinhos deve-se enviar blocos solicitados? Prof. Marcus Fábio, M.Sc Faculdade Estácio do Ceará Arquitetura de Sistemas Distribuídos 8 Distribuição de Arquivos - BitTorrent • Para decidir quais blocos solicitar, um par usa uma técnica chamada rarest first (o mais raro primeiro). A ideia é determinar, dentre os blocos que um par não tem, quais são os mais raros dentre seus vizinhos (ou seja, os blocos que têm o menos número de cópias repetidas em seus vizinhos) e então solicitar esses blocos mais raros primeiro. Os blocos mais raros são redistribuídos mais rapidamente, procurando equalizar os números de cópias de cada bloco torrent. Prof. Marcus Fábio, M.Sc Faculdade Estácio do Ceará Arquitetura de Sistemas Distribuídos 9 Distribuição de Arquivos - BitTorrent • Para determinar quais pedidos atender, o BitTorrent usa um algoritmo de troca inteligente. Dar prioridade aos vizinhos que atualmente fornecem seus dados com a maior taxa. • Para cada vizinho um par mede continuamente a taxa em que recebe bits e determina os 4 pares que lhe fornecem na melhor taxa. Reciprocamente envia blocos a esses mesmos 4 pares. A cada 10 segundos são recalculadas as taxas e possivelmente modificado o conjunto dos 4 pares. Esses 4 pares são chamados de unchocked (não sufocado). • A cada 30 segundos é escolhido um vizinho adicional aleatoriamente e blocos também são enviados a ele. Esse vizinho aleatório é chamado de optimistically unchocked. • Como um par envia dados ao par vizinho escolhido aleatoriamente, pode-se se tornar um dos 4 melhores transmissores deste vizinho, caso em que o vizinho começaria a enviar dados também. Prof. Marcus Fábio, M.Sc Faculdade Estácio do Ceará Arquitetura de Sistemas Distribuídos 10 Distribuição de Arquivos - BitTorrent • Caso os dois pares estejam satisfeitos com a troca, eles colocarão um ao outro nas suas listas de 4 melhores pares e continuarão a troca até que um dos parceiros encontre um parceiro melhor Pares capazes de fazer uploads em taxas compatíveis tendem a se encontrar. • A seleção aleatória de vizinho também permite que novos pares obtenham blocos, de forma que possam ter algo para trocar. • Todos os pares vizinhos, com exceção desses 5 pares estão “sufocados” (chocked), ou seja, não recebem nenhum bloco. • Esse mecanismo de incentivo de troca é normalmente chamado de tit-for-tat (olho por olho). Prof. Marcus Fábio, M.Sc Faculdade Estácio do Ceará Arquitetura de Sistemas Distribuídos 11 Telefonia IP - Skype • O Skype é o serviço de telefonia IP mais popular atualmente. • Fornece serviços de telefonia PC-PC, PC-Telefone, Telefone-PC e videoconferência PC-PC. • O Skype usa técnicas P2P de diversas maneiras inovadoras, mostrando que o P2P pode ser usado em aplicações que vão além da distribuição de conteúdo e compartilhamento de arquivos. • O Skype emprega técnicas P2P para localização de usuários e NAT Transversal. • Os protocolos do Skype são proprietários e todas as transmissões de pacotes (controle e voz) são criptografadas. Prof. Marcus Fábio, M.Sc Faculdade Estácio do Ceará Arquitetura de Sistemas Distribuídos 12 Telefonia IP - Skype • Os nós no Skype são organizados em uma rede sobreposta hierárquica, com cada par classificado como superpar ou par comum. • O Skype possui um índice que mapeia os nomes de usuários a endereços IP atuais e números de porta. Este índice é distribuído entre os superpares. Quando um cliente A deseja telefonar para o cliente B, seu cliente Skype procura o índice distribuído para determinar o endereço IP atual do cliente B. Prof. Marcus Fábio, M.Sc Faculdade Estácio do Ceará Arquitetura de Sistemas Distribuídos13 Telefonia IP - Skype • Técnicas P2P também são usadas em retransmissores do Skype, úteis para estabelecer chamadas entre hosts em rede domésticas. • Ao entrar no Skype um cliente A recebe um superpar e inicia uma sessão com ele. Isso permite que o cliente A possa trocar mensagem de controle com seu superpar. • Quando um cliente A deseja telefonar para um cliente B, o cliente A informa a seu superpar, que por sua vez informa ao superpar do cliente B, que então informa ao cliente B sobre a chamada recebida do cliente A. • Caso o cliente B aceite a chamada, os dois superpares selecionam um terceiro superpar sem NAT (o nó retransmissor) cujo trabalho será o de transmitir os dados entre os clientes A e B. • Os superpares dos clientes A e B os instruem a iniciarem uma sessão com o nó retransmissor. • O uso de retransmissores ilustra o projeto cada vez mais sofisticado de sistemas P2P, em que pares realizam serviços de sistema central para outros (serviços de indexação e transmissão, por exemplo) ao mesmo tempo em que usam o serviço de usuário final (download de arquivo e telefonia IP, por exemplo) fornecidos pelo sistema P2P. Prof. Marcus Fábio, M.Sc Faculdade Estácio do Ceará Arquitetura de Sistemas Distribuídos Referências Bibliográficas • Redes de Computadores e a Internet, James Kurose, 5ª Edição – Seção 2.6 • Sistemas Distribuídos – Conceitos e Projeto, George Coulouris et. al., 4ª Edição – Cap. 10 • Sistemas Distribuídos – Princípios e Paradigmas, Andrew Tanenbaum, 2ª Edição – Cap. 12 • Biblioteca Virtual Estácio 14
Compartilhar