Fernando Luis de Oliveira Costa Graduando em Ciência da Computação Universidade Estadual de Campinas

Documentos relacionados
SISTEMAS DISTRIBUÍDOS

Redes de Computadores

Tabela de roteamento

Sistemas Distribuídos

Rede de Computadores

Sistemas Distribuídos

Arquitetura TCP/IP. Parte IV Mapeamento de endereços IP em endereços físicos (ARP) Fabrízzio Alphonsus A. M. N. Soares

Definição São sistemas distribuídos compostos de nós interconectados, aptos a se auto-organizar em topologias de rede, com o intuito de compartilhar

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web;

SISTEMAS DISTRIBUÍDOS

Arquitetura dos Sistemas de Informação Distribuídos

Aplicações P2P. André Lucio e Gabriel Argolo

PARANÁ GOVERNO DO ESTADO

3 SERVIÇOS IP. 3.1 Serviços IP e alguns aspectos de segurança

Cap 03 - Camada de Aplicação Internet (Kurose)

PEER DATA MANAGEMENT SYSTEM

Redes P2P. Alexandre Alves Bruno Valério. 19 de junho de 2015

Capítulo 7 CAMADA DE TRANSPORTE

Universidade de Brasília

Resumo. Introdução História Caracteristicas Exemplos Arquitetura Distribuição Vertical vs Distribuição Horizontal Segurança Conclusão

Roteamento e Comutação

Capítulo 8 - Aplicações em Redes

Objetivos: i) Verificar o impacto de loops em redes locais ii) Configurar o protocolo STP para remover loops da rede

Teleprocessamento e Redes (MAB-510) Gabarito da Segunda Lista de Exercícios 01/2010

Curso: Redes II (Heterogênea e Convergente) Tema da Aula: Características Roteamento

IP significa Internet Protocol. A Internet é uma rede, e assim como ocorre em qualquer tipo de rede, os seus nós (computadores, impressoras, etc.

Há dois tipos de configurações bidirecionais usados na comunicação em uma rede Ethernet:

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar

Arquitetura de Rede de Computadores

Redes de Computadores. Prof. Dr. Rogério Galante Negri

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido

Redes de Computadores Aula 3

Entendendo como funciona o NAT

Wireshark. Captura de Protocolos da camada de aplicação. Maicon de Vargas Pereira

Introdução ao Modelos de Duas Camadas Cliente Servidor

REDES DE COMPUTADORES

Interconexão de redes locais. Repetidores. Pontes (Bridges) Hubs. Pontes (Bridges) Pontes (Bridges) Existência de diferentes padrões de rede

Professor: Macêdo Firmino Disciplina: Sistemas Operacionais de Rede

Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho

ADDRESS RESOLUTION PROTOCOL. Thiago de Almeida Correia

MÓDULO 8 ARQUITETURA DOS SISTEMAS DE BANCO DE DADOS

Aula 03-04: Modelos de Sistemas Distribuídos


PROJETO DE REDES

Rede Peer-To-Peer. Conteúdo

SISTEMAS DISTRIBUIDOS

O que é Grid Computing

Sistemas Distribuídos

4. Qual seria o impacto da escolha de uma chave que possua letras repetidas em uma cifra de transposição?

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Firewalls. Firewalls

CAPÍTULO 2. Este capítulo tratará :

5.2 MAN s (Metropolitan Area Network) Redes Metropolitanas

O que são DNS, SMTP e SNM

Bancos de dados distribuídos Prof. Tiago Eugenio de Melo

LABORATÓRIO WIRESHARK: DNS

GT Computação Colaborativa (P2P)

Redes de Computadores

Faculdades Santa Cruz - Inove. Plano de Aula Base: Livro - Distributed Systems Professor: Jean Louis de Oliveira.

CAMADA DE TRANSPORTE

SISTEMAS DISTRIBUÍDOS

Arquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo

RC e a Internet: noções gerais. Prof. Eduardo

Prof. Luiz Fernando Bittencourt MC714. Sistemas Distribuídos 2 semestre, 2013


Redes de Computadores e a Internet

BC-0506: Comunicação e Redes Internet e Web como redes complexas

Segurança em Sistemas de Informação Tecnologias associadas a Firewall

Introdução Ligação direta Ligação direta Default

Tópicos em Sistemas Distribuídos. Modelos de Comunicação

Roteamento em Redes de Computadores

O modelo ISO/OSI (Tanenbaum,, 1.4.1)

Rede d s d e d Com o pu p t u ado d r o es Conceitos Básicos M d o e d los o de d Re R de d s:

RC e a Internet. Prof. Eduardo

3 SCS: Sistema de Componentes de Software

Centro Tecnológico de Eletroeletrônica César Rodrigues. Atividade Avaliativa

Sistemas Distribuídos. Introdução

Definição São sistemas distribuídos compostos de nós interconectados, aptos a se auto-organizar em topologias de rede, com o intuito de compartilhar

Como medir a velocidade da Internet?

Ferramentas para Desenvolvimento Web

MicroDNS. Armando Adami Zaro Pablo Augusto Lerina Rodrigues. 3 de outubro de 2007

Tópicos Especiais em Informática

Visão geral híbrida de Serviços Corporativos de Conectividade do SharePoint 2013

ICORLI. INSTALAÇÃO, CONFIGURAÇÃO e OPERAÇÃO EM REDES LOCAIS e INTERNET

SMTP, POP, IMAP, DHCP e SNMP. Professor Leonardo Larback

A camada de rede. A camada de rede. A camada de rede. 4.1 Introdução. 4.2 O que há dentro de um roteador

Capítulo 3: Implementar a segurança por meio de VLANs

TRANSMISSOR ECF. Sistema de transmissão de arquivos Nota Fiscal Paulista. Manual de Utilização

Conceitos de relação de confiança

MODELO CLIENTE SERVIDOR

FTP Protocolo de Transferência de Arquivos

Wireshark Lab: TCP. Versão KUROSE, J.F & ROSS, K. W. Todos os direitos reservados 2011 BATISTA, O. M. N. Tradução e adaptação para Wireshark.

Faculdade Anhanguera de São Caetano do Sul

Considerações no Projeto de Sistemas Cliente/Servidor

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos

Chord. Tecnologias de Middleware. Fernando Martins - fmp.martins@gmail.com

Uc-Redes Técnico em Informática André Luiz Silva de Moraes

Transcrição:

Fernando Luis de Oliveira Costa Graduando em Ciência da Computação Universidade Estadual de Campinas

Tópicos Os Autores Introdução - Curiosidades Motivações Protocolo Gnutella - Funcionamento Coleta de Dados Análise de Rede Sobreposição de Topologia de Rede - Melhorias Potenciais

Autores Matei Ripeanu University of Chicago PHD em Ciência da Computação pela University of Chicago. É pesquisador na área de sistemas distribuídos com foco na auto-organização e controle descentralizado em sistemas peer-to-peer de grade e em grande escala.

Autores Adriana Iamnitchi University of Chicago PHD em Ciência da Computação pela University of Chicago. É pesquisadora na área de sistemas distribuídos de grande escala com ênfase na concepção, implementação e experimentação de algoritmos e serviços de aplicações de rede.

Autores Ian Foster University of Chicago & Argonne National Laboratory PHD em Ciência da Computação pela Imperial College London. É pesquisador referência na área de sistemas distribuídos com o desenvolvimento de técnicas, ferramentas e algoritmos de alto desempenho. Pelo resultado de seus trabalhos, ele é reconhecido como the father of the Grid.

Introdução As redes P2P tem seus primeiros conceitos desde a origem da internet com o ARPANET. A rede Gnutella, especificamente, foi criada em 2000, inicialmente utilizada por computadores com sistemas Linux. Teve um enorme crescimento após o fechamento do Napster.

Curiosidades + Foi criado por Justin Frankel e Tom Pepper, da Gnullsoft, também criadores do Winamp. Desenvolvido em apenas 14 dias, como um experimento. Inicialmente tinha por objetivo compartilhar receitas culinárias.

Curiosidades Aplicações que utilizam Gnutella: - LimeWire e o Phex (Win, Mac e Linux) - Mutella e o Qtella (para Linux) - Morpheus, BearShare, XoloX e WinMX (para Windows)

Motivações Pesquisas apontam que redes diversas como as formadas por moléculas nas células, pessoas em grupos sociais, e hosts na internet, tem padrões de organização similar: a maioria dos nós tem poucas ligações enquanto um pequeno número de nós demandam inúmeras ligações.

Motivações Estas redes exigem robustez e tolerância a falha, porém, esta tolerância tem um custo alto, pois os nós que fornecem a maior parte da conectividade são mais vulneráveis a ataques.

Motivações Em pesquisas anteriores, os autores mostraram que o Gnutella preserva a tolerância a falhas, além de serem menos dependentes de nós altamente conectados que são alvos fáceis de ataque.

Motivações Neste trabalho, eles pretenderam analisar, a fundo, a topologia da rede, sua estrutura de conectividade, o tráfego de rede, a sobreposição do mapeamento da topologia da rede Gnutella em relação a infra-estrutura da internet física e o comportamento dinâmico para determinar a eficiência no uso desta infra-estrutura.

Protocolo Gnutella Gnutella é uma rede aberta, uma sociedade descentralizada e um protocolo de pesquisa, usado principalmente para o compartilhamento de arquivos.

Protocolo Gnutella Como a maioria das aplicações P2P de compartilhamento de arquivos, Gnutella foi projetada para atender os seguintes objetivos: - Operacionalidade dinâmica; - Eficiência e escalabilidade; - Confiabilidade e - Anonimato.

Protocolo Gnutella Operacionalidade dinâmica Deve continuar operando de forma transparente, embora hosts entrem e saem da rede com frequência.

Protocolo Gnutella Eficiência e Escalabilidade Deve ser muito eficiente, principalmente em relação a redes cliente-servidor. A escalabilidade é importante nas aplicações e devem respeitar o que os economistas chamam de "efeito de rede", ou seja, quando se aumenta o número de nós, o espaço de armazenamento e disponibilidade do arquivo agregado deve crescer linearmente, o tempo de resposta deve permanecer constante, e pesquisa de transferência deve permanecer alta ou crescer.

Protocolo Gnutella Confiabilidade Ataques externos não devem causar danos significativos ou perda de desempenho.

Protocolo Gnutella Anonimato A aplicação deve proteger a privacidade das pessoas que procuram ou disponibilizam informações sensíveis.

Funcionamento Os nós da rede Gnutella, conhecidos como servents, executam tarefas que são normalmente associadas com servidores e clientes. Eles oferecem interfaces do lado do cliente por meio do qual os usuários podem emitir consultas, ver os resultados de busca, aceitar consultas de outros servents, etc. Estes nós também gerenciam o tráfego que espalha a informação para manter a integridade da rede.

Funcionamento Para entrar no sistema, um novo servent conecta a um host disponível já conhecido (Ex: gnutellahosts.com). Uma vez que o nó estabelece uma ou mais conexões TCP com nós de rede existentes, já pode transmitir mensagens para todos os nós conectados (broadcast de mensagem) ou simplesmente fazer um (back-propagate) propagar de volta as mensagens ao longo do caminho percorrido por uma mensagem inicial de transmissão.

Funcionamento Como ele faz para propagar de volta? Cada mensagem possui um identificador gerado aleatoriamente, e cada nó mantém uma memória curta de mensagens recentemente encaminhadas para evitar retransmissão e implementar back-propagate. Para ajudar a prevenir mensagens que se propagam indefinidamente, elas implementam algumas flags do tipo: TTL (time-to-live) e outras.

Funcionamento Tipos de mensagens permitidas na rede : - Group membership; - Search; - File transfer.

Funcionamento Group membership Um nó se junta à rede e transmite uma mensagem PING (broadcast) para anunciar sua presença. Os nós receptores mandam a mensagem PING para todos os seus vizinhos e propagam de volta uma mensagem PONG que contém informações como o endereço IP do receptor, o número e tamanho de seus arquivos compartilhados.

Funcionamento Search É um broadcast de mensagens de consulta que contém uma string de busca de um usuário específico em que cada nó recebe em contra-partida os nomes dos arquivos armazenados localmente. A resposta da consulta inclui também informações necessárias para o download do arquivo.

Funcionamento File Transfer Peers baixam arquivos diretamente uns dos outros usando mensagens de GET e PUSH

Funcionamento

Funcionamento

Funcionamento

Funcionamento

Funcionamento

Funcionamento

Funcionamento

Funcionamento

Funcionamento Para lidar com o ambiente dinâmico de Gnutella, os nós pingam periodicamente os seus vizinhos para descobrir outros nós participantes. Um nó desconectado sempre pode usar esta informação para se reconectar à rede. Os nós utilizam apenas informações locais para decidir onde se conectam e, assim, formam uma rede de auto-organização dinâmica de entidades independentes. Gnutella servents são os nós desta rede em nível de aplicação virtual, e as conexões TCP abertas formam estas ligações.

Coleta de Dados Os autores desenvolveram um rastreador que une a rede como um servent e usa o protocolo de adesão (o mecanismo de pingpong) para coletar informações sobre a topologia.

Coleta de Dados O rastreador começa com uma lista de nós, inicia uma conexão TCP com cada um, e envia uma mensagem de PING. Ele descobre os vizinhos de cada nó com base nas mensagens PONG que recebe em resposta e o adiciona à sua lista junto com o endereço IP, porta, número de arquivos e espaço total compartilhado. A partir de uma pequena lista de nós iniciais, construímos uma lista de mais de 400 mil nós que usaram a rede em algum momento.

Coleta de Dados Para reduzir o tempo de rastreamento, eles desenvolveram uma estratégia de rastreamento cliente-servidor. O "servidor" é responsável por gerenciar a lista de nós a serem contatados e atribuir trabalhos para os clientes. Obviamente, aumentando o número de tarefas paralelas, aumenta também a carga sobre o aplicativo, porém, reduz substancialmente o tempo de descoberta.

Análise de Redes Tendências de Crescimento e Comportamento Dinâmico Figura 1: Rede de Crescimento Usando registros de rastreamentos sucessivos, foi investigada a estrutura do gráfico dinâmico ao longo do tempo e foi descoberto que cerca de 40% dos nós deixam a rede em menos de 4 horas e apenas 25% dos nós permanecem vivos por mais de 24 horas.

Análise de Redes Tráfego de Rede Foi utilizada uma versão modificada do rastreador para espionar o tráfego de rede. A Figura classifica por tipo de mensagem, o tráfego que atravessou um link escolhido aleatoriamente ao longo de um período de 376 minutos, em novembro de 2000. Figura 2: Tráfego Gerado

Análise de Redes Tráfego de Rede A Figura 3 mostra a distribuição nó-a-nó dos menores comprimentos de caminho durante o rastreamento da rede. Foi descoberto que 95% de quaisquer dois pares de nós poderia trocar mensagens em menos de 7 saltos. Como resultado, a mensagem time-to-live predominante foi (TTL = 7). Figura 3: Nó-a-nó de caminhos mais curtos

Análise de Redes Tráfego de Rede Com base nas medições, estimou-se que o tráfego total (excluindo as transferências de arquivos) para a grande parte da rede Gnutella (em torno de 50.000 nós) é de 1 Gbit por segundo: 170 mil conexões em 6 Kbps por segundo por conexão, ou cerca de 330 Tbytes por mês. Para colocar este volume de tráfego em perspectiva, podemos constatar que isso equivale a cerca de 1,7% do tráfego total estimado sobre o backbone Internet dos EUA em dezembro de 2000.

Análise de Redes Conectividade e Confiabilidade Figura 4: Distribuição da Conectividade, Novembro 2000 As figuras apresentam a distribuição de conectividade que foi observada. Cada série de pontos representa uma topologia de rede. Nesta figura podemos reconhecer facilmente a assinatura de uma distribuição da lei de potência.

Análise de Redes Conectividade e Confiabilidade A segunda figura, no entanto, mostra que as redes Gnutella mais recentes tendem a afastarse dessa organização. Há muito poucos nós com baixa conectividade para formar uma rede de lei de potência pura. A distribuição da lei de potência é preservada para nós com mais de 10 links, porém nós com poucos links seguem uma distribuição quase constante. Figura 4: Distribuição da Conectividade, Março a Maio de 2001

Análise de Redes Conectividade e Confiabilidade Definição de Power-law (lei de potência) Em sistemas onde muitas pessoas são livres para escolher entre várias opções, um pequeno subconjunto do todo terá uma quantidade desproporcional de tráfego (ou atenção, ou de renda), mesmo que não sejam integrantes do sistema, eles trabalham ativamente para tal resultado. O simples ato de escolher livremente cria uma distribuição da lei de potência.

Análise de Redes Conectividade e Confiabilidade Os autores acreditam que esta nova distribuição multimodal aumenta a confiabilidade da rede. A distribuição de conectividade uniforme preserva a capacidade da rede para lidar com falhas de nós aleatórios e reduz a dependência em nós altamente conectados. Eles especulam que um grupo de usuários dedicados acabam mantendo um pequeno número de nós Gnutella com as características de servidor como acontece nas distribuições de lei de potência. Esses nós têm um grande número de conexões abertas e fornecem a maior parte do conteúdo disponível na rede. Além disso, esses nós servidores costumam ter uma disponibilidade maior, porém não existe a dependência da rede sobre eles como nos casos de rede cliente-servidor.

Sobreposição de Topologia de Rede Dado o enorme volume de tráfego que as aplicações P2P geram, podemos considerar Gnutella escalável somente empregando eficientemente os recursos de rede disponíveis. Agora, considerando a arquitetura do Gnutella, store-and-forward, nota-se que é extremamente importante que a sobreposição da topologia de rede seja bem mapeado à infra-estrutura. de rede física.

Sobreposição de Topologia de Rede Figura 7. O mapeamento da topologia da rede de sobreposição à infra-estrutura de rede

Sobreposição de Topologia de Rede Infelizmente, é proibitivamente caro para calcular o mapeamento exato da rede Gnutella por causa da dificuldade de extrair a topologia da Internet e a escala computacional do problema. Em vez disso, foram realizados dois experimentos de alto nível, que destacou o descompasso entre as topologias.

Sobreposição de Topologia de Rede 1º) Do ponto de vista de um ISP, o tráfego que atravessa as fronteiras é mais caro do que o tráfego local. Foi descoberto que apenas 2% a 5% das conexões de nós do Gnutella estão dentro de um único AS (autonomous systems), embora mais de 40% de todos os nós Gnutella estão localizados dentro dos 10 melhores AS.

Sobreposição de Topologia de Rede 2º) Os autores suporam que os nomes de domínio expressam algum tipo de hierarquia organizacional e depois dividiram a sobreposição de rede Gnutella em clusters para estudar o quão bem ela mapeia para Internet, tal como definido por nomes de domínio.

Sobreposição de Topologia de Rede 2º) Realizaram a análise sobre 10 gráficos de topologia coletadas durante fevereiro e março de 2001. Não foi detectada redução significativa após a realização do agrupamento. Os autores concluíram que os nós da rede Gnutella se agrupam independentemente da estrutura de Internet. A rede de auto-organização Gnutella, assim, parece usar a infra-estrutura física subjacente de forma ineficiente.

Melhorias Potenciais - Claramente, o problema de incompatibilidade de topologia deve ser resolvido para que os sistemas como o Gnutella possam ser amplamente utilizados; - Mecanismos de segurança parecem ser essenciais para a sobrevivência da rede a longo prazo; - Os mecanismos de cache de Proxy usados na Web podem ser úteis em um contexto P2P;

Melhorias Potenciais - Substituir o mecanismo de consulta com modelos mais inteligentes de roteamento e mecanismos de comunicação em grupo; - Preservação das características da lei de potência que emergem da topologia de rede ad hoc Gnutella oferece uma abordagem mais promissora.

Considerações Finais Os autores, em 2002, afirmaram: As circunstâncias sociais que promoveram o sucesso da rede Gnutella podem mudar e a rede pode até diminuir, mas P2P é improvável que se acabe.

Referências 1. Ripanau M, Iamnitchig A, Foster I. Mapping the Gnutella Network. IEEE Internet Computing, vol 6, no. 1, Jan/Feb. 2002, pp. 50-57. 2. Ripanau M. Peer-to-Peer Architecture Case Study: Gnutella Network. IEEE Internet Computing, vol 6, no. 1, Aug. 2001, pp. 99-100. 3. Google Images. Available in: <http://google.com> 4. Duarte OCM, Dias JF, Bravo VFI. Redes P2P: Gnutella. Avaible in: <http://www.gta.ufrj.br/grad/06_1/p2p/gnutella.html>

Perguntas?

Obrigado! Fernando Luis de Oliveira Costa Graduando em Ciência da Computação Universidade Estadual de Campinas fernandolocos@gmail.com