A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Peer-to-Peer Systems From Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 4, © Addison-Wesley 2005.

Apresentações semelhantes


Apresentação em tema: "Peer-to-Peer Systems From Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 4, © Addison-Wesley 2005."— Transcrição da apresentação:

1 Peer-to-Peer Systems From Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 4, © Addison-Wesley 2005

2 Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Pearson Education 2005 Introdução Objetivo do P2P: compartilhamento de dados e recursos em uma grande escala, eliminando a necessidade da administração de servidores e sua infra-estrutura. Sistemas P2P têm a vantagem de que nos dias atuais, o desempenho entre servidores e clientes está se estreitando e a conexões de banda larga têm se proliferado. Tradicionais sistemas cliente/servidor provêem acesso aos recursos localizados em um servidor central ou um agrupamento de servidores fortemente acoplados. Neste projeto centralizado, poucas decisões são feitas onde devem ser postos os recursos e o serviço é limitado pela capacidade do hardware do servidor e sua conectividade na rede. Sistemas P2P provêem acesso a informações espalhadas pela internet, sendo necessários algoritmos de posicionamento e recuperação de objetos na rede.

3 Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Pearson Education 2005 Características Cada usuário contribui com recursos ao sistema, todos os nós têm as mesmas capacidades e responsabilidades, sua operação correta não depende de um administrador central, oferecem grau de anonimato e usa algoritmos para balanceamento de carga nos nós a fim de possibilitar disponibilidade.

4 Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Pearson Education 2005 Gerações do P2P A primeira lançada pelo Napster, a segunda com aplicações de compartilhamento de arquivos, como Kazaa e BitTorrent e a terceira, com o emergente uso de camadas de middleware para o gerenciamento global de recursos distribuídos. Nestes sistemas P2P com middleware, haverá uma nova camada de roteamento complementar ao roteamento IP. Motivos para usar outra camada de roteamento sobre o roteamento IP: o espaço de nomes do P2P (GUID – identificadores únicos globais) é muito maior do o IPv6; a localização dos objetos independe da topologia de rede; as tabelas de roteamento são atualizadas sincronamente ou assincronamente, diferentemente do padrão IP; maior tolerância a falhas com adição de replicação; como cada endereço GUID mapeia para uma ou mais replicas de um mesmo objeto e inviável usar IPv4 que só mapeia para um endereço físico; e segurança em ambiente com confiança limitada, permitindo inclusive anonimato.

5 Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Pearson Education 2005 Figure 10.1: Distinctions between IP and overlay routing for peer-to-peer applications

6 Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Pearson Education 2005 Napster e seu legado A arquitetura Napster inclui índices centralizados, mas os usuários que supriam os arquivos, e era nos computadores pessoais que eles eram armazenados e acessados. O Napster foi desligado como resultado de um procedimento legal contra seus operadores. Os passos do funcionamento do Napster estão na FIGURA 10.2.

7 Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Pearson Education 2005 Figure 10.2: Napster: peer-to-peer file sharing with a centralized, replicated index

8 Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Pearson Education 2005 Napster O argumento do Napster fora que eles não participavam do processo de cópia, apenas os usuários. Contudo, os servidores de índice, parte fundamental do processo de busca, eram localizados em endereços bem conhecidos, o que impediu que os operadores mantivessem anônimos. Um sistema mais distribuído poderia ter alcançado uma melhor separação de responsabilidades e tornando a busca por remédios legais quase impossível. Napster demonstrou a possibilidade de se construir um serviço em larga escala dependente quase completamente nos dados e computadores de usuários comuns da internet. A alocação de servidores ao cliente da música baseava-se na localidade da rede. Com esse mecanismo de distribuição de carga, o serviço escalou rapidamente para um grande número de usuários(13 milhões de usuário).

9 Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Pearson Education 2005 Napster-Culpado Em maio de 1999, Shawn Fanning, um estudante universitário de 18 anos, criou um software que combinava o sistema de mensagens instantâneas do IRC, o sistema de compartilhamento de arquivos do Windows e Unix e as capacidades de busca das máquinas de pesquisa. O seu objetivo era criar um sistema que tornasse mais fácil compartilhar arquivos mp3. Ele batizou o seu programa de Napster (o seu apelido na universidade), fundou uma empresa com o mesmo nome e passou a distribuir o cliente de graça.

10 Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Pearson Education 2005 Middleware P2P Um problema principal no projeto de aplicações P2P é o mecanismo que possibilita que clientes acessem recursos de dados rapidamente e com dependência de localização. O middleware P2P é desenvolvido de forma a tender o posicionamento automático e a localização de objetos distribuídos. Requisitos funcionais: clientes comuniquem-se e localizem qualquer recurso disponível, adição e remoção de recursos e hosts, uma interface de programação simples. Requisitos não-funcionais: escalabilidade global, balanceamento de carga, otimização de interações locais entre pontos vizinhos (distância de rede entre nós), acomodação para disponibilidade dinâmica do host (hosts podem sair ou entrar no sistema P2P sem qualquer aviso).

11 Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Pearson Education 2005 Camada de Roteamento (ou ouverlay) O desenvolvimento de um middleware que atende aos requerimentos apresentados anteriormente é um tópico em constante estudo, mas dois sistemas significativos surgiram. Uma camada de roteamento é responsável por localizar nós e objetos. O middleware assume a forma de uma camada responsável por encaminhar requisições de clientes a um host que contém o objeto procurado, sendo que este pode ser relocado em outro host sem que o envolvimento do cliente. Ele assume que um nó pode acessar um objeto através do encaminhamento da requisição por uma seqüência de nós, baseando-se no conhecimento adquirido em cada nó a fim de localizar o objeto.

12 Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Pearson Education 2005 Figure 10.3: Distribution of information in a routing overlay

13 Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Pearson Education 2005 Tarefas 1. Um cliente desejando invocar uma operação em um objeto submete uma requisição com o GUID do objeto para a camada de roteamento, que encaminhará a requisição até alcançar um nó que contenha uma réplica do objeto. 2. Um nó desejando tornar um novo objeto disponível calcula um GUID e anuncia na camada de roteamento, que assegura que o objeto seja alcançável pelos outros clientes. 3. Quando os clientes requisitarem a remoção de um objeto, a camada de roteamento deve torná-lo indisponível. 4. Nós podem entrar e sair do serviço. Quando entrar no serviço, a camada de roteamento busca algumas responsabilidades para ele. Quando sair, suas responsabilidades são redistribuídas.

14 Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Pearson Education 2005 Modelos Modelo DHT: a GUID do objeto é gerada com uma função hash, usada para determinar o posicionamento e a localização, por isso, esses sistemas que usam uma camada de roteamento são conhecidos como tabelas hash distribuídas. Com isso, há três operações básicas, put (GUID, dados) para armazenar, remove (GUID) para remover todas as referências do objeto e get (GUID) para recuperar o objeto de um dos nós que o armazena.

15 Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Pearson Education 2005 Figure 10.4: Basic programming interface for a distributed hash table (DHT) as implemented by the PAST API over Pastry put(GUID, data) The data is stored in replicas at all nodes responsible for the object identified by GUID. remove(GUID) Deletes all references to GUID and the associated data. value = get(GUID) The data associated with GUID is retrieved from one of the nodes responsible it.

16 Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Pearson Education 2005 Modelos Modelo DOLR: outra forma, mais flexível, usa uma camada de roteamento e localização distribuída de objetos, sendo que ela é responsável por manter um mapeamento entre GUID e endereços dos nós onde as réplicas estão localizadas. Suas funções são publish (GUID) torna o objeto disponível, unpublish (GUID) torna o objeto indisponível e sendToObj (msg, GUID, [n]) envia uma mensagem ao objeto de forma a acessá-lo.

17 Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Pearson Education 2005 Figure 10.5: Basic programming interface for distributed object location and routing (DOLR) as implemented by Tapestry publish(GUID) GUID can be computed from the object (or some part of it, e.g. its name). This function makes the node performing a publish operation the host for the object corresponding to GUID. unpublish(GUID) Makes the object corresponding to GUID inaccessible. sendToObj(msg, GUID, [n]) Following the object-oriented paradigm, an invocation message is sent to an object in order to access it. This might be a request to open a TCP connection for data transfer or to return a message containing all or part of the object’s state. The final optional parameter [n], if present, requests the delivery of the same message to n replicas of the object.

18 Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Pearson Education 2005 Estudos de caso de middleware de roteamento a) Pastry: todos os nós e objetos podem ser acessados através de GUID de 128 bits. Em uma rede com N nós participantes, o Pastry irá encaminhar a mensagem endereçada a qualquer GUID em O (log n) passos. Caso o nó esteja ativo, a mensagem é encaminhada a ele; caso contrário, a mensagem é encaminhada ao nó com GUID mais próxima. Os passos de roteamento usam, normalmente, o UDP e transferem ao destino mais “próximo”, não em ternos físicos, mas em termos de um espaço artificial de GUID. Caso um nó entre no sistema, ele recebe todos os dados para construir uma tabela de roteamento e outras informações de estado dos membros existentes, se o nó falhar ou sair, os demais nós podem detectar sua ausência e se reconfigurar cooperativamente para refletir as mudanças ocorridas.

19 Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Pearson Education 2005 Pastry O algoritmo de roteamento envolve o uso de uma tabela de roteamento em cada nó para encaminhar a mensagem de forma eficiente. Para propósitos de explicação, será apresentado o algoritmo de duas formas: 1) cada nó inicia com um vetor com as GUID e IP dos nós com GUID numericamente próximos. O espaço é tratado de forma circular (FIGURA 10.6). O processo é feito comparando a GUID da mensagem com as GUID que contém, e encaminhando para a GUID mais próxima numericamente, até alcançar a mensagem ao seu destinatário, evidentemente, em um processo ineficiente. 2) cada nó mantém uma tabela de roteamento e forma de árvore, GUID são valores hexadecimais classificados por seus prefixos. A tabela tem tantas linhas quantos dígitos houver na GUID, no Pastry são 32 linhas, e em cada linha há 15 entradas, uma para cada valor hexadecimal possível excluindo o valor GUID do nó.

20 Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Pearson Education 2005 Figure 10.6: Circular routing alone is correct but inefficient Based on Rowstron and Druschel [2001] The dots depict live nodes. The space is considered as circular: node 0 is adjacent to node (2128-1). The diagram illustrates the routing of a message from node 65A1FC to D46A1C using leaf set information alone, assuming leaf sets of size 8 (l = 4). This is a degenerate type of routing that would scale very poorly; it is not used in practice.

21 Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Pearson Education 2005 Figure 10.7: First four rows of a Pastry routing table

22 Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Pearson Education 2005 Figure 10.8: Pastry routing example Based on Rowstron and Druschel [2001]

23 Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Pearson Education 2005 Pastry O algoritmo usado se aproveita do apresentado anteriormente, ou seja, garante a entrega da mensagem, e usa a tabela de roteamento a fim de melhorar a eficiência de desempenho do algoritmo. O algoritmo está detalhado na FIGURA A diferença entre as duas abordagens, 1 e 2, é que na primeira leva- se em conta apenas a proximidade do GUID que pode ou não ser localmente próximo, causando ineficiência, com o acréscimo da tabela de roteamento e a computação do prefixo do comprimento mais longo comum do GUID se reduz a quantidade de nós que a mensagem deva passar até alcançar o destino.

24 Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Pearson Education 2005 Figure 10.9: Pastry’s routing algorithm

25 Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Pearson Education 2005 Pastry Outros aspectos do Pastry: uso de algoritmo de vizinho mais próximo, através de recursividade sobre o conjunto de nós armazenados; localidade com uma estrutura altamente redundante, com mais de uma rota entre dois pares de nós; tolerância a falhas contra quedas eventuais (usando a abordagem “at-least-once”, causando envio repetidos de mensagens) e contra usuários maliciosos; uso de conhecimento acerca de dependências, como no caso em que uma mensagem é enviada a um host que não responde, assim, o nó que envio a mensagem começa a considerá-lo um host suspeito; etc.

26 Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Pearson Education 2005 Tapestry b) Tapestry: implementa uma tabela hash distribuída e encaminha mensagens baseando-se na associação de GUID similarmente como o Pastry o faz. A diferença é que ele usa o modelo DOLR, enquanto o Pastry usa o DHT, apresentado anteriormente. Isso dá ao Tapestry maior flexibilidade porque pode posicionar réplicas em distâncias próximas reduzindo a latência e minimizando a carga na rede ou garantindo tolerância a falhas. O identificador usado é de 160 bits, contudo GUID é usado apenas para recursos, enquanto computadores têm um NODEID. O processo usado para publicação de recursos nos hosts está na FIGURA

27 Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Pearson Education 2005 Figure 10.10: Tapestry routing From [Zhao et al. 2004]

28 Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Pearson Education 2005 Estudos de caso de aplicações a) Squirrel Web Cachê: dos mesmos desenvolvedores do Pastry. As formas de caching de navegadores internet podem ser servidas no cachê da máquina cliente, de um proxy ou do próprio servidor HTTP. Quando uma página é requisitada, há três possibilidades, ou a página não pode ser cacheada, ou ela não se encontra na cachê (cachê miss) ou ela se encontra. Neste último caso, a página é testada para saber se é atual, ou usando uma data de última modificação, ou o tempo de vida, ou uma eTag.

29 Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Pearson Education 2005 Squirrel O sistema Squirrel usa o mecanismo de cachê semelhante ao de um proxy web com o uso de uma pequena porção de recurso das máquina na rede para realizar o cachê. Inicialmente, o GUID do objeto é computado formando um número de 128 bits, e, na forma mais simples de implementação, o objeto é armazenado no host cujo GUID é o mais próximo do GUID do objeto. Se a cópia no cachê não for atualizada ou o objeto desejado não estiver na cachê, Squirrel encaminha uma mensagem de Get para o nó inicial, se este por sua vez não possuir nenhuma cópia do objeto encaminha uma mensagem de Get para o nó servidor.

30 Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Pearson Education 2005 Squirrel Squirrel é avaliado sob três ópticas que levaram os seus projetista a concluir que seu desempenho é igual a de um cachê centralizado: Redução da largura de banda usada – inversamente proporcional a quantidade de acertos na cachê. Latência percebida pelos usuários no acesso aos objetos web – maior quantidade de mensagens encaminhada através da camada de roteamento. Carga computacional e de armazenamento imposta – baixo consumo de recursos.

31 Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Pearson Education 2005 OceanStore File Store b) OceanStore File Store: dos mesmos desenvolvedores do Tapestry, é um protótipo de um armazém de arquivos P2P com suporte a arquivos mutáveis. Tem replicação, com mecanismo de consistência de réplicas, privacidade e integridade. Um protótipo chamado Pond foi desenvolvido que usa o mecanismo de roteamento Tapestry a fim de colocar blocos de dados em nós distribuídos pela internet e encaminhar requisições a eles. Os objetos são semelhantes a arquivos, compostos de blocos. Contudo, cada objeto é uma seqüência ordenada de versões imutáveis que, a princípio, são mantidas para sempre. A cada atualização no objeto, uma nova versão é gerada, armazenando apenas os blocos distintos entre a última versão e a nova. O esquema de organização com acesos mediante um bloco de metadados chamado bloco raiz e blocos adicionais de direção se necessários

32 Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Pearson Education 2005 Figure 10.11: Storage organization of OceanStore objects d1d2d3d5d4 root block version i indirection blocks d2 version i+1 d1d3 certificate VGUID of current version VGUID of version i AGUID VGUID of version i-1 data blocks BGUID (copy on write)

33 Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Pearson Education 2005 OceanStore File Store Existem três formas de GUID usadas (FIGURA 10.12), BGUID o hash de um bloco de dado, VGUID o BGUID do bloco raiz da versão e AGUID que unicamente identifica todas as versões do objeto. Com uso destes três GUID diferentes, é possível acessar as novas versões de um objeto, ou versões anteriores, ou mesmo blocos de dados específicos de um objeto em qualquer uma de suas versões. Usa-se um certificado assinado a fim de assegurar a autentica associação entre as cadeias de referência de um objeto, sendo assim, um certificado conterá a VGUID da nova versão, junto a um timestamp e um número seqüencial de versão.

34 Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Pearson Education 2005 Figure 10.12: Types of identifier used in OceanStore NameMeaningDescription BGUIDblock GUIDSecure hash of a data block VGUIDversion GUIDBGUID of the root block of a version AGUIDactive GUIDUniquely identifies all the versions of an object

35 Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Pearson Education 2005 OceanStore File Store A construção de um certificado é combinada entre um pequeno conjunto de hosts chamado anel interno, o novo certificado substituí a antiga cópia primária nestes hosts, e é então disseminada para um grande número de cópias secundárias. A atualização de dados envolve o consenso de todos os hosts do anel interno associado ao objeto. Além disso, esse processo envolve checagem dos direitos de acesso e serialização da atualização com quaisquer escritas pendentes.

36 Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Pearson Education 2005 Ivy File System c) Ivy File System: é um sistema de escrita/leitura de arquivos com suporte para múltiplos leitores e escritores implementado sobre uma camada de roteamento. Alguns problemas: Manutenção da consistência dos arquivos com atualizações concorrentes de múltiplos hosts sem uso de bloqueio porque a falha de um nó ou da conectividade da rede causaria bloqueio perpétuo; confiança parcial entre os participantes e vulnerabilidade nos ataques a máquinas participantes; e continua operação durante partição da rede que pode resolver em atualizações conflitantes.

37 Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Pearson Education 2005 Ivy File System O nó cliente tem instalado um processo servidor Ivy que usa uma DHash para armazenar e acessar registros de log nos nós baseado em GUID (FIGURA 10.14). Um armazém de dados Ivy consiste em um conjunto de logs atualizados, um por participante, cada participante pode ler de todos os logs, mas escrever apenas no seu próprio. Usam-se vetores de versão a fim de impor uma ordenação total das entradas de log quando lidos múltiplos logs, entretanto, um algoritmo para uma simples leitura teria desempenho ruim. Para melhorar o desempenho, usam-se cachê local e snapshots, representações do sistema de arquivos computadas e armazenadas localmente por cada participante. Como há um processo servidor por nó participante, atualizações são feitas em separado, sem coordenação com outros servidores. A serialização é feita no momento da leitura dos blocos, de forma a construir o conteúdo do arquivo. Integridade dos dados é assegurada.

38 Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Pearson Education 2005 Figure 10.14: Ivy system architecture

39 Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Pearson Education 2005 Resumo Arquiteturas P2P foram primeiramente apresentadas em sistemas de compartilhamento de dados de larga escala, como Napster e seus descendentes. Pesquisas subseqüentes desenvolveram um middleware P2P que encaminha requisições aos objetos aonde quer que estejam na internet. O endereçamento envolve o uso de GUID, o posicionamento dos objetos de acordo com uma função de mapeamento específica do middleware, e a entrega é realizado por uma camada de roteamento no middleware. Esta camada também adiciona integridade baseada no uso de funções hash segura para geração do GUID e disponibilidade baseado em réplicas de objetos e algoritmos de tolerância a falhas. Benefícios: exploração de recursos inutilizados, escalabilidade com balanceamento de carga e independência do número de clientes e hosts. Fraquezas: uso de armazenamento para dados mutáveis é mais caro que o uso de um servidor centralizado e o anonimato ainda não é totalmente garantido.

40 Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Pearson Education 2005 eMule

41 Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Pearson Education 2005 O que é? eMule (Mula Eletrônica) é um programa de troca de arquivos que é baseado na Rede P2P eDonkey2000, mas oferecendo mais recursos do que o cliente padrão (eDonkey) porque é um programa que código fonte aberto (open source), facilitando assim que programadores do mundo inteiro possam fazer novas implementações e modificações visando à melhoria do programa à cada nova versão.eDonkey2000

42 Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Pearson Education 2005 Como funciona o emule O eMule funciona à partir de conexões à servidores existentes no mundo inteiro, feitos por usuários do eMule com um programa específico para isto. Outra vantagem é que no eMule o arquivo tem um código hash e com isso o eMule consegue distinguir separadamente cada arquivo e criar um link próprio para cada arquivo para ser indexado em fóruns e sites indexadores (como o: e e com isso facilitar a localização de um lançamento e a eliminação de arquivos falsos (fake) na rede.http://www.pootz.org/

43 Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Pearson Education 2005 Capacidades Tem que saber primeiramente a velocidade da conexão. Os valores para a velocidade são dados geralmente em por kilo bits por o segundo [ kb/s ], mas deverá saber os valores para inserir no eMule em kilo Bytes por o segundo [ kB/s ]. Exemplo: Máximo de Download: kB/s de 256kb/s ÷ 8 = 32 Máximo de Upload: kB/s de 128kb/s ÷ 8 = 16 A velocidade depende muito da conexão.

44 Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Pearson Education 2005 Porta do Cliente O eMule usa a porta 4662 como porta padrão. Mude-a somente se você estiver recebendo mensagem de ID BAIXO (LOW ID) ou se esta porta estiver fechada pelo Provedor, isto fará com que os dados não saiam ou entrem no seu router ou modem.

45 Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Pearson Education 2005 Arquivos Arquivos completos: Especifique o diretório onde serão movidos os downloads concluídos. Padrão Incoming; Arquivos Temporários: Especifique o diretório onde são armazenados os downloads em andamento. Padrão Temp; Diretórios compartilhados: Aqui você pode especificar

46 Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Pearson Education 2005 Servidores Estáticos São servidores que podem ser adicionados ao arquivo staticservers.dat que ficam pra sempre no eMule e você pode adicionar e remover quando quiser. O método mais fácil seria quando você colocar um servidor e ver que ele é um servidor bom.

47 Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Pearson Education 2005 ID Um ID ALTO significa que a porta escolhida nas preferências - > conexões (padrão 4662) está aberta e livremente acessível. Um ID BAIXO significa que esta porta esta bloqueada ou não pode ser alcançada. Isto pode ser causado pelo provedor, por routers ou por usuários de proxy. Um ID BAIXO é um valor menor que Ter um ID baixo não significa que não haverá upload ou download, mas terá diversas desvantagens como: baixa quantidade de fontes encontradas, limites de usuários em servidores com ID BAIXO, 2 clientes com ID BAIXO não podem se conectar, perda de conexões com usuários, etc. Se você tiver usando um Firewall (programa usado para bloquear invasões), você poderá ter um ID BAIXO (Low ID)

48 Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Pearson Education 2005 Mods Como o eMule é um programa de código fonte aberto, algumas pessoas ou um grupo (EX: Plus, Tarod...etc) fazem alterações na versão Oficial do eMule, implementando novas funções. Essas alterações trazem novas funções muito interessantes que ajudam muito no download dos arquivos. Esse é o forum oficial do eMule sobre os novos MODs: eMule ModseMule Mods

49 Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Pearson Education 2005 BitTorrent

50 Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Pearson Education 2005 BitTorrent O BitTorrent é uma tecnologia criada por Bram Cohen que permite o compartilhamento de qualquer tipo de arquivo pela internet, sendo muito usado para a distribuição de vídeos, músicas e programas. Sua forma de trabalho é muito eficaz e evita, por exemplo, que determinados usuários só façam download, mas não compartilhem arquivos (pelos menos teoricamente). Isso porque a taxa de download é equivalente à taxa de upload, ou seja, somente compartilhando é que você consegue baixar arquivos. Por esta razão, quando você está iniciando um determinado download, a velocidade utilizada é lenta e vai aumentando de acordo com o que já foi baixado do arquivo. Quanto mais você tiver de um arquivo, mais usuários se conectarão ao seu computador e pela regra, a taxa de velocidade do seu download aumenta.

51 Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Pearson Education 2005 Como Funciona Na verdade, o BitTorrent é um protocolo, que, como já dito, permite o compartilhamento de qualquer tipo de arquivo. Devido a isso, o BitTorrent não pode ser considerado um software para fins ilegais (como foi o pioneiro Napster, por permitir a distribuição de músicas no formato MP3), pois qualquer pessoa pode usar o protocolo para distribuir arquivos. Existem até empresas que compartilham seus softwares por este meio. Apenas como exemplo, suponha que Professor Mario criou um e-book. Além de disponibilizá-lo em um site, ele pode distribuí-lo pelo BitTorrent e isso não fere nenhuma lei de proteção à propriedade intelectual. Se conteúdo ilegal é distribuído pelo serviço, a responsabilidade é dos usuários e não do programa.

52 Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Pearson Education 2005 Como Funciona Para que você possa fazer download (e upload) pelo BitTorrent, é necessário que cada item compartilhado esteja associado a um arquivo denominado torrent, cuja extensão é.torrent (por exemplo, mestrado.torrent). Trata-se de um arquivo pequeno, mas que contém as informações necessárias para o compartilhamento, como o local onde o arquivo está e a seqüência que verifica a integridade do mesmo. Esse arquivo pode estar disponível em um site e quando acessado, inicia o download do arquivo compartilhado (desde que o BitTorrent esteja instalado). Isso significa que você precisa achar um torrent do arquivo que você deseja baixar. Não há uma caixa de busca como a usada no kaZaA, por exemplo. Para encontrar torrents você pode usar sites voltados a este fim. Um dos mais conhecidos atualmente é o que separa os torrents em categorias.http://www.torrentreactor.net/

53 Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Pearson Education 2005 Termos do Torrent Seed (ou seeding): é a denominação dada ao computador que possui um arquivo completo compartilhado, como o computador que primeiramente disponibilizou o arquivo e os outros que o baixaram por inteiro; Peer: nome dado a cada computador que compartilha arquivos. Leech (ou leeching): é a denominação dada ao momento em que um computador faz download; Tracker: denominação dada ao servidor que é responsável por organizar os arquivos disponíveis e direcionar os downloads; Swarm: nome dado ao conjunto de computadores que estão compartilhando o mesmo arquivo. Se, por exemplo, o arquivo infowester.pdf está sendo compartilhado por 2 seeds e por 8 peers, o swarm do arquivo contém 10 computadores (2 seeds + 8 peers).

54 Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Pearson Education 2005 Exemplo

55 Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 4 © Pearson Education 2005 Resumo O BitTorrent é muito útil, versátil, e atualmente, o responsável por 35% do tráfego de dados na Internet, número maior que o de todos os demais compartilhadores de arquivos somados! A questão acerca da legalidade do mesmo é algo que ainda será muito discutido, mas uma coisa é certa: se bem utilizado, o BitTorrent promove benefícios para todo mundo: servidores menos carregados, e internautas fazendo downloads a boas velocidades.


Carregar ppt "Peer-to-Peer Systems From Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 4, © Addison-Wesley 2005."

Apresentações semelhantes


Anúncios Google