DThor Distribuição de Torrents por DHT

Tamanho: px
Começar a partir da página:

Download "DThor Distribuição de Torrents por DHT"

Transcrição

1 DThor Distribuição de Torrents por DHT André Braz João Leite Trabalho realizado sob a orientação de Rui Pedro Lopes Engenharia Informática 2013/2014

2

3 DThor Distribuição de Torrents por DHT Relatório da UC de Projeto Licenciatura em Engenharia Informática Escola Superior de Tecnologia e de Gestão André Braz, João Leite 2013/2014 iii

4 A Escola Superior de Tecnologia e Gestão não se responsabiliza pelas opiniões expressas neste relatório. iv

5 Certifico que li este relatório e que na minha opinião, é adequado no seu conteúdo e forma como demonstrador do trabalho desenvolvido no âmbito da UC de Projeto. Rui Pedro Lopes Orientador Certifico que li este relatório e que na minha opinião, é adequado no seu conteúdo e forma como demonstrador do trabalho desenvolvido no âmbito da UC de Projeto. Arguente Certifico que li este relatório e que na minha opinião, é adequado no seu conteúdo e forma como demonstrador do trabalho desenvolvido no âmbito da UC de Projeto. Arguente Aceite para avaliação da UC de Projeto v

6 vi

7 Dedicatória Este projecto é dedicado a todos os nossos familiares e amigos por todo o apoio que nos deram durante este período da nossa vida. vii

8 viii

9 Agradecimentos Em primeiro lugar gostaríamos de agradecer ao nosso orientador Rui Pedro Lopes pelo acompanhamento e paciência que teve connosco ao longo do projecto. Queremos também agradecer aos nossos pais por nos proporcionar as condições necessárias para a vida académica. Finalmente agradecemos aos nossos amigos que estiveram sempre ao nosso lado e que sempre nos apoiaram. ix

10 x

11 Resumo As redes Peer-to-Peer são constituídas por vários nós que partilham recursos. Este tipo de redes também conhecidas como P2P, são construídas por elementos idênticos que se organiza de forma a permitir a escalabilidade e a robustez das aplicações. O protocolo BitTorrent assenta no princípio das redes P2P para potenciar a distribuição de quantidades massivas de dados na Internet. Cada cliente (ou peer) tem a possibilidade de partilhar e de descarregar ficheiros, recorrendo, para o efeito, a um ficheiro específico, denominado.torrent. Este ficheiro será utilizado pelos peer destino para configurar a rede de forma a obter o ficheiro, potencialmente a partir de vários peer em simultâneo. As Distributed Hash Tables (DHTs) permitem armazenar e pesquisar pares (chave, valor), de forma semelhante a uma tabela de hash sendo os valores armazenados em nós distribuídos na Internet. Tirando partido destas tecnologias propõe-se uma aplicação para armazenar, consultar e eliminar.torrents específicos, associados a cada utilizador. Palavras-chave: P2P, DHT, BitTorrent, torrent. xi

12 xii

13 Abstract The Peer-to-Peer networks are comprised of multiple nodes that share resources. Such networks also known as P2P are constructed with identical elements that are organized to allow scalability and robustness. The BitTorrent protocol is based on the principle of the P2P networks to enhance the distribution of massive amounts of data on the Internet. Each cliente (or peer) has the ability to share and download files, using for this purpose a specific file called torrent. This file will be used by the destination peer to configure the network to obtain the file, potentially from multiple concurrent peers. The Distributed Hash Tables (DHTs) can store and search pairs (key, value), similar to a hash table with the values stored in nodes distributed in the Internet. Taking advantage of the technologies we propose an application to store, search and delete torrents associated with each user. Keywords: P2P, DHT, BitTorrent, torrent xiii

14 xiv

15 Conteúdo 1 Introdução Objetivos Estrutura do documento Peer-To-Peer Organização dos nós Arquitectura P2P Estruturada Arquitectura P2P Não Estruturada BitTorrent Ficheiro Torrent DHTs Mecanismo Genérico Armazenamento de Valores Kademlia Indexação Crawling Lucene DThor Análise Diagrama de Classes Diagrama de Casos de Uso Diagrama de Estados Diagramas de Sequência Desenvolvimento Java NetBeans TomP2P Jetty GitHub Aplicação Testes Distribuição de Torrents na DHT Tempo de Pesquisa Conclusões xv

16 xvi

17 Lista de Figuras Figura.1 Diagrama de Classes - DThor Figura.2 Diagrama de Classes Motor de Pesquisa Figura.3 Diagrama de Casos de Uso Figura.4 Diagrama de Estados Figura.5 Diagrama de Sequências - Conectar Figura.6 Diagrama de Sequências - Pesquisar Figura.7 Diagrama de Sequências - Eliminar Figura.8 Arquitetura da Aplicação Figura.9 Página Inicial Figura.10 Página de Upload Figura.11 Página de Resultados Figura.12 Página de Confirmação para eliminar Figura.13 Gráfico do Cenário Figura.14 Gráfico do cenário Figura.15 Gráfico do cenário Figura.16 Gráfico do tempo médio por pesquisa xvii

18 xviii

19 Capítulo 1 1 Introdução Na década de 60 quando surgiu a internet todos os computadores ligados tanto eram servidores como clientes, o que se encaixa na perfeição na definição de uma rede peer-topeer. Ao longo dos anos a sua estrutura foi-se alterando tornando-se como a conhecemos hoje, com a estrutura cliente-servidor. Contudo esta estrutura tem-se tornado um problema. Conforme a quantidade de informação disponível na internet aumenta apenas uma pequena parte está disponível através de mecanismos de pesquisa por indexação. Nos sistemas cliente-servidor os recursos estão concentrados em um pequeno número de nós (servidores) que fornecem serviços aos clientes de forma contínua e confiável. Uma alternativa a este sistema são os sistemas peer-to-peer. Neste sistema, cada peer (nó) funciona como cliente e servidor ao mesmo tempo. 1.1 Objetivos O objetivo principal é estudar e desenvolver uma aplicação, recorrendo a DHTs, para armazenar, consultar e eliminar ficheiros.torrent específicos, associados a cada utilizador. Cada utilizador pode aceder a estes ficheiros de forma escalável e de qualquer lado em qualquer momento. 19

20 1.2 Estrutura do documento Este documento está organizado em cinco capítulos Introdução, Peer-to-Peer, Indexação, DThor e Conclusões: Capítulo 1 - Introdução Este capítulo tem como objetivo uma abordagem introdutória ao tema, bem como os seus objetivos. Capítulo 2 Peer-To-Peer Este capítulo descreve o funcionamento das redes P2P bem como alguns protocolos usados. Capítulo 3 - Indexação Este capítulo aborda os conceitos de indexação e o processo de crawling. Capítulo 4 - DThor Este capítulo apresenta as tecnologias usadas para o desenvolvimento da aplicação, a sua arquitetura geral e os detalhes da implementação da mesma de modo a atingir a aplicação final. Capítulo 5 - Conclusões Este capítulo descreve as conclusões obtidas e a sumarização do trabalho realizado. 20

21 Capítulo 2 2 Peer-To-Peer O P2P é o resultado do desenvolvimento e disponibilidade da tecnologia para a criação de redes maiores. Nas últimas décadas com o aumento de utilizadores as redes informáticas tornaram-se cada vez maiores e mais poderosas e por sua vez a largura de banda tornou-se mais barata e de fácil acesso. Como consequência desse crescimento foram criadas aplicações baseadas na arquitectura P2P o que despertou o interresse da comunidade. Um exemplo dessas aplicações foi o Napster que se tornou o sistema P2P mais popular do dia para a noite. O Napster era um software que podia ser obtido na Internet e que permitia o download de qualquer música gratuitamente causando assim grandes prejuízos à indústria fonográfica. Desde o aparecimento do Napster sugiram muitos outros sistemas P2P como Gnutela, KaZaa e WinMP. Na verdade o P2P surgiu da tecnologia utilizada nos tempos da Usenet e da FidoNet. Eram duas redes totalmente descentralizadas, e sistemas como o DNS. O DNS tornava-se uma necessidade uma vez que já existiam milhões de hosts na Internet. Nessa altura a forma de navegar na Internet era através de um ficheiro.txt denominado hosts.txt. Como a Internet cresceu, este sistema tornou-se impraticável surgindo assim o DNS. Atualmente cada nó é conhecido como peer e funciona tanto como cliente e servidor. Quantos mais peers existirem na rede mais estável, autónoma e eficiente esta se torna. [2] 21

22 2.1 Organização dos nós Os nós encontram-se organizados numa rede overlay. Na rede overlay os nós são formados pelos processos e as ligações são representadas pelos possíveis canais de comunicação. Um processo apenas pode enviar mensagens para outro processo através dos canais de comunicação disponíveis. Dois nós vizinhos numa rede overlay não são necessariamente vizinhos na rede física. A localização dos nós é processada na rede overlay através de um algoritmo de encaminhamento distribuído implementado na camada de aplicação. O encaminhamento permite que qualquer nó tenha acesso a um qualquer objeto na rede overlay. Os sistemas P2P armazenam várias réplicas do mesmo objeto aumentado assim a disponibilidade. As redes overlay dividem-se em duas categorias: Estruturadas e Não Estruturadas Arquitectura P2P Estruturada Numa rede P2P estruturada a rede overlay é construída através de um algoritmo determinístico. O algoritmo mais utilizado é estruturar os processos numa DHT em que os dados recebem uma chave aleatória e os nós da rede recebem um identificador. O maior desafio num sistema baseado em DHTs é estruturar um esquema eficiente que permita mapear unicamente a chave de um objeto para o identificador do nó que pretende aceder ao objeto Arquitectura P2P Não Estruturada Os sistemas P2P não estruturados normalmente baseiam-se em algoritmos aleatórios para construir a rede overlay. Este sistema baseia-se na construção de uma tabela de vizinhos que é gerada de forma aleatória em que cada nó e os dados também são armazenados de forma aleatória nos nós. 22

23 Quando é necessário fazer a pesquisa de um objeto a rede é inundada com a pesquisa. Se dois nós estiverem muito afastados na rede as pesquisas podem não ser respondidas uma vez que existem mecanismos que impedem que mensagens se propaguem indefinidamente na rede. Outra desvantagem é que a pesquisa é lenta uma vez que é gerado um grande volume de tráfego ao inundar a rede. Os sistemas P2P não estruturados mais conhecidos são o BitTorrent e o Gnutella.[2] 2.2 BitTorrent O BitTorrent é um protocolo de rede que permite a partilha de ficheiros em redes P2P. Este protocolo foi criado em Abril de 2001 pelo programador Bram Cohen, a versão inicial foi lançada em 2 de Julho de 2001 e a versão final foi lançada em Os clientes BitTorrent estão disponíveis numa grande variedade de plataformas e sistemas operativos. O protocolo BitTorrent pode ser usado para reduzir o impacto na rede ao distribuir ficheiros de grandes dimensões. Ao invés de descarregar um ficheiro a partir de único servidor o BitTorrent permite aos utilizadores participarem num swarm de hosts para realizarem o download e o upload em simultâneo. Usando o protocolo BitTorrent vários computadores convencionais podem substituir servidores durante a distribuição de ficheiros para os clientes permitindo um menor uso de largura de banda que ajuda a evitar picos de tráfego na Internet em uma determinada área, mantendo a velocidade da Internet mais alta para todos os utilizadores em geral. Quando um utilizador pretende fazer upload de um ficheiro é necessário primeiro criar um ficheiro.torrent. Os utilizadores que tiverem esse ficheiro podem atuar como peers ou leechers. O ficheiro a distribuir é divido em segmentos denominados peças (pieces). Como cada peer recebe uma nova peça, este torna-se uma fonte para outros peers aliviando assim a carga do peer original de ter que enviar a peça para outros utilizadores que o requisitem. Com o BitTorrent a tarefa de distribuir o ficheiro é partilhada por aqueles que o querem. Cada peça é criptografada com uma hash contida no ficheiro.torrent garantindo que qualquer alteração na peça seja detetado de forma confiável. Um peer que possua o ficheiro.torrent pode verificar a autenticidade do ficheiro que recebe. 23

24 As peças geralmente são transmitidas de forma não sequencial e são reorganizadas na ordem correta pelo cliente BitTorrent, que monitoriza quais as peças que necessita e quais pode enviar para os outros utilizadores. À medida que mais utilizadores se juntam ao swarm a probabilidade que o download seja bem sucedido é maior.[1] Ficheiro Torrent Um ficheiro.torrent é um ficheiro que contém metadados sobre ficheiros, pastas a serem distribuídos e ainda a localização na rede dos trackers usados pelo protocolo BitTorrent. Este ficheiro não contém o conteúdo a ser distribuído, apenas contém informação acerca dos ficheiros, tais como, nome, tamanho e valores de hash para verificar a integridade do ficheiro.[11] Um ficheiro torrent é um dicionário bencoded com as seguintes chaves: Announce: É o URL do tracker. Info: Mapeia as chaves que são dependentes de um ou mais ficheiros para um dicionário. o Name: Sugere um nome para o ficheiro/pasta onde o ficheiro vai ser guardado. o Piece Length: Número de bytes por piece. o Pieces: Lista de hashs. o Length: Tamanho do ficheiro em bytes. o Files: Lista de dicionários onde cada um corresponde a um ficheiro, cada dicionário contém as seguintes chaves: Path: Lista de strings correspondente ao nome do subdirectório onde a última corresponde ao nome do ficheiro. Length: Tamanho do ficheiro em bytes. 24

25 2.3 DHTs As DHTs (Distributed Hash Tables) são uma classe de sistemas distribuídos descentralizados que fornecem um serviço de pesquisa semelhante a uma tabela de hash. Os pares (chave, valor) são armazenados na DHT e qualquer nó pode aceder o valor associado a uma chave. O mapeamento das chaves é distribuído entre os nós. A investigação das DHTs foi motivada inicialmente por sistemas P2P como a Freenet, Gnutella, BitTorrent e Napster, que tirou partido de recursos distribuídos através da Internet para fornecer uma aplicação útil. O Napster foi o primeiro sistema de distribuição de conteúdo P2P em larga escala. Era necessário um servidor central e cada peer ao entrar iria enviar uma lista dos ficheiros mantidos localmente para o servidor que iria efetuar pesquisas e remeter os resultados das pesquisas. Este componente central deixou o sistema vulnerável a ataques e ações judiciais. No Gnutella cada pesquisa resultava em uma mensagem a ser transmitida para todas as máquinas na rede. Este método mostrou-se menos eficaz do que o Napster. A Freenet é totalmente distribuída em que cada ficheiro está associado a uma chave e ficheiros com chaves semelhantes tendem a agrupar-se em um conjunto semelhante de peers. Na pesquisa as mensagens devem ser encaminhadas através da rede para um tal conjunto sem a necessidade de visitar muitos peers mas no entanto não é garantido que os dados sejam encontrados. As DHTs usam um mecanismo de encaminhamento baseado em chaves mais estruturado no sentido de alcançar a descentralização da Freenet e do Gnutella e a eficiência e garantia de resultados do Napster. Uma desvantagem é que as DHTs apenas suportam pesquisas de correspondência exata, em vez de pesquisa de palavras-chave.[3] Mecanismo Genérico Uma DHT apenas precisa uma operação o Lookup(k). Esta operação faz a pesquisa do nó responsável pela chave K. Para inserir um novo valor na DHT é feito o lookup, e uma vez que seja encontrado o nó é armazenado a chave e o valor. 25

26 Para armazenar um arquivo com um determinado nome e conteúdo em uma DHT realizam-se os seguintes passos: 1) É realizado o hash SHA1 do nome do arquivo gerando uma chave K de 160 bits. 2) É enviada uma mensagem lookup(k) para um qualquer nó participante da DHT. 3) A mensagem é encaminhada de nó em nó ao longo da rede até encontrar o nó responsável pela chave K. 4) Uma vez encontrada a referencia para o nó responsável armazena-se o conteúdo do arquivo. No caso de um cliente querer acessar um arquivo realizam-se os seguintes passos: 1) É realizado o hash SHA1 do nome do arquivo gerando uma chave K de 160 bits. 2) É enviada uma mensagem lookup(k) para um qualquer nó participante da DHT. 3) A mensagem é encaminhada de nó em nó ao longo da rede até encontrar o nó responsável pela chave K. 4) Uma vez encontrada a referencia para o nó responsavel pela chave K o conteudo é enviado para o cliente Armazenamento de Valores A maioria das DHTs utiliza uma variante de uma hash consistente para mapear as chaves para os nós. Cada nó possui uma chave (ID). Um nó com o ID i é o dono de todas as chaves para as quais o i é o ID mais próximo. São usados diferentes esquemas para mapear as chaves de modo a balancear a carga entre os nós e a redirecionar um lookup por uma chave para um nó mais próximo do nó responsável. O Chord usa a diferença matemática entre as chaves. O Pastry e o Tapestry usam o número de bits em comum nas duas chaves. O Kademlia usa o XOR (ou exclusivo). 26

27 2.3.3 Kademlia Para uma melhor percepção no funcionamento de uma DHT vamos dar como o exemplo o Kademlia. O Kademlia é uma DHT criada em 2002 por Petar Maymounkov e David Mazières. Os nós comunicam entre si usando o protocolo UDP. A rede formada pelos nós participantes é designada rede overlay. Cada nó é identificado por um ID, este não serve apenas para identificação mas também para localizar valores. Na verdade o ID do nó fornece um mapa direto para a hash do ficheiro e esse nó guarda informação de onde obter o ficheiro. Ao pesquisar por algum valor o algoritmo de pesquisa necessita de conhecer a chave associada e explora a rede em várias etapas. Cada etapa vai encontrar os nós que estão mais perto da chave até que o nó contactado devolve o valor ou até quando não existem nós mais perto. Este método é muito eficiente uma vez que o Kademlia apenas contacta log(n) nós durante a pesquisa sendo n o número total de nós do sistema. A distância entre dois nós é calculada através do ou exclusivo dos seus IDs resultando um número inteiro. As chaves e os IDs têm o mesmo formato e comprimento de modo a que a distância possa ser calculada entre eles. As tabelas de encaminhamento do Kademlia consistem em uma lista para cada bit do ID do nó. Cada entrada na lista contém os dados necessários para localizar outro nó. Os dados em cada lista normalmente são o endereço IP, a porta e o ID do nó. Quando os nós são encontrados na rede estes são adicionados às listas. Isto inclui operações de armazenamento e de recuperação e até mesmo ajudar outros nós a encontrar uma chave. Como o conhecimento de um novo nó é dinâmico a rede mantém-se constante atualizada aumentando a resistência a falhas e ataques. Cada vez que um nó pretende juntar-se à rede primeiro deve passar por um processo de inicialização. Nesta fase o nó que pretende ingressar a rede precisa de saber o endereço IP e a porta de um outro nó de inicialização que já participa na rede Kademlia. O nó de ingresso insere então o nó de inicialização nas suas tabelas de encaminhamento. É efetuado de seguida um pedido ao nó de inicialização que fará com que o ID do nó de ingresso seja adicionado às tabelas de encaminhamento dos restantes nós e por consequência o nó de ingresso vai adicionar os IDs dos outros nós às suas proprias tabelas de encaminhamento.[4] 27

28 Capítulo 3 3 Indexação Information retrieval é o processo de obter recursos de informação relevante a partir de um conjunto de recursos. As pesquisas podem ser baseadas em metadados ou em conteúdo (indexação). Para obter a informação de interesse para o utilizador, o utilizador deverá traduzir uma necessidade de informação em uma pesquisa. Esta pesquisa é um conjunto de palavras chaves que são utilizadas para recuperar informação numa coleção. A formulação da pesquisa consiste em determinar quais são as palavras chaves que resumem a informação desejada pelo utilizador. Como resultado de uma pesquisa, a presença de informação não relevante nos resultados é praticamente certa. Assim o objetivo da IR é retornar o mair número possível de informação relevante e o menor possível de informação não relevante. Para ser eficaz na tarefa de recuperar informação associada a uma pesquisa os sistemas IR ordena a informação de acordo com o seu grau de relevância com a consulta do utilizador.[6] 3.1 Crawling Um crawler é um programa autónomo ou um script que metódicamente procura ou crawls através da internet informação relevante para indexação. Existem diversas utilidades para este tipo de programas, sendo a principal motores de pesquisa. Os crawlers não indexam a informação apenas a retorna para um parser que prepara os documentos para serem indexados. O parser divide os documentos em diversas partes, identificando campos e normalizando a informação para ser mais facilmente indexada.[10] 28

29 3.2 Lucene O Lucene é uma biblioteca IR que permite pesquisar e indexar informação. É um projeto open-source implementado em Java. Para o Lucene a origem dos dados e o seu formato não são relevantes desde que estes possam ser convertidos para texto. Existem duas etapas principais no Lucene, indexação e pesquisa. A indexação processa os dados originais gerando um estrutura de dados inter-relacionada eficiente para a pesquisa baseada em palavras-chave. A pesquisa, por sua vez, consulta o índice pelas palavras-chave inseridas em uma consulta e organiza os resultados pela similaridade de texto com a consulta. No Lucene existe uma palavra chave em todo o processo denominado índice. O índice é uma estrutura ordenada de texto ou pedaços de texto (tokens) o que torna a pesquisa mais eficiente. Ao lermos texto para o Lucene este será primeiro submetido a um processo chamado analisador (analyzer) que trata o texto. De seguida é criado um índice que pode ser baseado no disco rígido ou na memória RAM. Tendo criado o índice há que criar um index writter de modo a preenche-lo com informação. Por último insere-se os documentos, criando os campos que forem necessários. Por vezes pode haver a necessidade de guardar alguns campos para posteriormente serem devolvidos ao utiliador, mas outros campos podem ser fúteis e são apenas guardados tokens dos mesmos. Estes tokens são fragmentos de texto e não estão disponíveis para futuras recuperações. Quando se pretende efetuar uma pesquisa é usado um indexsearcher, um QueryParser e a localização do índice. Esta pesquisa vai depender do nome do campo a pesquisar e do analisador igual ao usado na construção do índice. Os resultados são ordenados por ordem de relevância, o Lucene tem este mecanismo que dá mais peso a documentos com maior frequência do termo e a termos pouco comuns.[5][8] 29

30 Capítulo 4 4 DThor O DThor é uma aplicação distribuída baseada em DHTs que permite adicionar, eliminar e descarregar ficheiros.torrent de uma forma simplificada. É compatível com o Windows, Linux, Mac OS X e em outros sistemas operativos que suportem Java. 4.1 Análise Diagrama de Classes O diagrama de classes que representa as entidades da aplicação DThor é ilustrado na figura 1 e as entidades do motor de pesquisa estão representadas na figura 2. O DThor é constituído pelas classes DThorTorrent, DThorTomP2P, TorrentParser, DThorConfig, JettyServer, DThorReplyKeys, TorrentUpload, TorrentSearch, TorrentDelete. O motor de pesquisa é constituído pelas classes DThorTorrent, DThorTomP2P, TorrentParser, DThorConfig, DThorCrawling, JettyServer, LuceneServer, TorrentDoc, RemoteTorrentSearch, TorrentSearch, TorrentDelete. 30

31 Figura.1 Diagrama de Classes - DThor. A classe DThorTorrent têm um conjunto de atributos que define um ficheiro.torrent. É usada para guardar a informação sobre o ficheiro.torrent. A classe TorrentParser têm como objetivo fazer o parsing (análise) do conteúdo do ficheiro.torrent. Esta classe permite ainda converter um objeto DThorTorrent para um ficheiro.torrent. A interface IDThor é usada para definir assinaturas de métodos que posteriormente são implementadas na classe DThorTomP2P. A classe DThorTomP2P é responsável pelas principais funcionalidades da aplicação tal como a gestão da DHT. Os principais métodos desta classe são: addtorrent(), searchtorrent() e deletetorrrent() que permitem adicionar, pesquisar e remover torrents respetivamente. A classe DThorReplyKeys tem um método responsável que aguarda e responde a pedidos feitos pelo motor de pesquisa quando necessário. Quando recebe um pedido este obtém as chaves conhecidas e retorna as. 31

32 A classe DThorConfig é responsável por carregar o ficheiro de configuração que contém informação de inicialização da aplicação. A classe JettyServer inicializa o servidor Web. As servlets TorrentUpload, TorrentSearch e TorrentDelete são responsáveis respetivamente por carregar, pesquisar e eliminar ficheiros.torrent. Figura.2 Diagrama de Classes Motor de Pesquisa. Uma vez que algumas classes já foram referidas anteriormente, não existe a necessidade de serem referidas novamente. A classe LuceneServer é responsável pela gestão do motor de pesquisa. Tem as seguintes funcionalidades: indexação, pesquisa e remoção de índices associados a uma chave. A classe TorrentDoc é fundamental para a indexação uma vez que faz o parsing dos campos necessários para indexar um objeto DthorTorent. Por fim a clase DThorCrawling tem como objetivo percorrer todos os peers da rede e requisitar as chaves associados a cada um. 32

33 4.1.2 Diagrama de Casos de Uso Figura.3 Diagrama de Casos de Uso. Este diagrama demonstra as principais atividades da aplicação. O cliente pode inserir, pesquisar e eliminar torrents. Para eliminar um ficheiro.torrent é necessário primeiro efetuar uma pesquisa do torrent pretendido. Ao se eliminar um torrent da DHT é necessário ainda eliminar o índice da chave associado a esse torrent do motor de pesquisa uma vez que este já não se encontra disponível para download. 33

34 4.1.3 Diagrama de Estados Figura.4 Diagrama de Estados. A aplicação inicialmente encontra-se num estado de inicialização do peer onde em primeiro lugar é carregado o ficheiro de configuração, em seguida o peer liga-se à rede e por fim é inciado o servidor Web. Caso este processo inicial seja bem sucedido a aplicação fica num estado de espera até o utilizador decidir qual a operação que pretende realizar. Caso o utilizador pretenda fazer o upload de um ficheiro.torrent este é submetido e validado e caso seja um ficheiro válido este vai ser adicionado à DHT. 34

35 Caso deseje pesquisar ou eliminar é necessário efetuar uma pesquisa onde é submetido um pedido ao motor de pesquisa e onde este vai devolver os resultados ao utilizador. Por fim caso o utilizador deseje fazer o download de um ficheiro este é obtido na DHT. Se por outro lado o utilizador pretender eliminar um ficheiro este terá que inserir a chave de eliminação. Caso a chave seja válida o ficheiro será eliminado da DHT e o índice respetivo a esse ficheiro será eliminado no motor de pesquisa Diagramas de Sequência Figura.5 Diagrama de Sequências - Conectar. Conectar Peer Fluxo Principal 1. O peer contacta o super peer. 2. O peer executa o processo de bootstrap. 3. O super peer retorna a lista dos peers conhecidos. 35

36 4. O peer conecta-se aos outros peers da rede. 5. O peer inicia o seu servidor Web. Figura.6 Diagrama de Sequências - Pesquisar. Pesquisa Fluxo Principal 1. O peer envia um mensagem ao motor de pesquisa contendo a query de pesquisa. 2. O motor de pesquisa retorna o resultado da pesquisa. 3. O utilizador seleciona o ficheiro.torrent que pretende obter e esse é procurado na DHT. 4. É devolvido o ficheiro para download ao utilizador. 36

37 Figura.7 Diagrama de Sequências - Eliminar. Eliminar Fluxo Principal 1. O peer envia uma mensagem ao motor de pesquisa contendo a query de pesquisa. 2. O motor de pesquisa retorna o resultado da pesquisa. 3. O utilizador seleciona o ficheiro que pretende eliminar. 4. É pedido ao utilizador a chave de eliminação do ficheiro. 5. O peer efetua o pedido de eliminação. 6. A chave é validada e o torrent é eliminado. 7. O peer pede ao motor de pesquisa para eliminar o índice relativo ao torrent que foi eliminado. Fluxo de Exceção Caso a chave de eliminação seja inválida o utilizador terá a necessidade de a inserir novamente até que esta seja válida. 37

38 4.2 Desenvolvimento Pretende-se com o presente trabalho, desenvolver uma aplicação para adicionar, eliminar e descarregar ficheiros.torrent. Na figura 8 é apresentada a arquitectura geral do sistema implementado. Figura.8 Arquitetura da Aplicação. Para o desenvolvimento deste projeto foi utilizado o IDE Netbeans, recorreram-se às bibliotecas TomP2P, Jetty e Lucene. Esta aplicação foi implementada em Java devido ao facto da sua compatibilidade com vários dispositivos Java É uma linguagem de programação concorrente baseada em classes e orientada por objetos. Foi especialmente desenhada para que quando for executada numa plataforma, não necessita 38

39 de ser recompilada. As aplicações Java são compiladas em bytecode que pode correr em qualquer máquina virtual Java (JVM) independentemente da arquitetura do computador NetBeans O NetBeans é um IDE gratuito e open source para programadores de software. É executado em várias plantaformas como Windows, Linux, MacOS. O NetBeans oferece aos programadores as ferramentas necesárias para criar aplicações profissionais, empresariais, Web e móvel TomP2P O TomP2P é uma biblioteca de DHTs que permite armazenar informação em pares(chave, valor). Cada peer tem uma tabela que guarda os seus valores. Tem por base a framework Java NIO para comunicar, o que permite suportar várias conexões em simultâneo. Permite configurar o NAT automaticamente. Se um peer não estiver acessível pelo endereço externo, o TomP2P vai tentar configurar o encaminhamento de portas no router usando UPnP e NATPMP. É possível detetar se já existe uma regra de encaminhamento de portas existente no local. Primeiro o peer que se encontra atrás do NAT precisa de contatar um peer conhecido, tipicamente o peer de bootstrap. Este peer relata como o peer é visto, e com essa informação o peer que se encontra atrás do NAT pode descobrir como fazer o encaminhamento. No TomP2P existem dois tipos de replicação de dados, directa e indireta. A replicação direta pode ser descrita pela constante atualização do conteúdo pelo qual é responsável. Caso um peer abandone a rede todo o seu conteúdo é eliminado. Na replicação indereta a replicação pode ser descrita como a distribuição de conteúdo de uns peers para outros. O peer mais proximo da chave de um ficheiro é considerado o peer responsável por esse ficheiro e replicao se necessário.[12] 39

40 4.2.4 Jetty O Jetty é um servidor HTTP(Web) que suporta Java Servlets. É usado normalmente para comunicações entre máquinas e suporta as últimas versões da Java Servlet API. É um projeto open source e faz parte da fundação Eclipse.[9] GitHub O GitHub é um serviço de Web Hosting Git para gestão de revisões de projetos. Oferece uma interface gráfica na Web, desktop e integração móvel. Fornece controlo de acesso e várias funcionalidades de colaboração, tais como wikis, gestão de tarefas, acompanhamento de bugs e solicitações de recursos. O GitHub tornou-se extremamente importante que a comunidade de desenvolvimento open source começou a considerá-lo como um substítuto ao currículo convencional e alguns empregadores exigem que os requerentes forneçam um link para a sua conta do GitHub a fim de se qualificar para um emprego.[7] Aplicação Página Inicial Quando a aplicação é iniciada é apresentada a página inicial representada na figura Figura.9 Página Inicial.

41 Página de Upload Figura.10 Página de Upload. Página de Resultados Figura.11 Página de Resultados. 41

42 Janela de confirmação para eliminar Figura.12 Página de Confirmação para eliminar. 4.3 Testes Distribuição de Torrents na DHT Para um melhor conhecimento acerca da distribuição dos torrents ao longo da DHT foi realizado um teste com três cenários onde foi determinado o número de torrents armazenado por cada peer. A diferença entre os três cenários reside no número e peers na rede em que cada um continha, 10, 100 e 1000 peers respetivamente. Em ambos os cenários foram adicionados torrents aleatoriamente na rede. As figuras que se seguem apresentam os resultados obtidos. 42

43 Figura.13 Gráfico do Cenário 1. Figura.14 Gráfico do cenário 2. 43

44 Figura.15 Gráfico do cenário 3. Com base nos resultados obtidos podemos observar que a distribuição dos torrents não é uniforme isto deve-se ao facto de que cada peer armazena as chaves com o ID mais próximo do seu ID e posteriormente o peer responsável por esse chave vai replicá-la para os peers mais próximos. Em média cada peer armazena 60000, 6000 e 600 torrents respetivamente em cada cenário o que leva a concluir que cada torrent inserido é replicado 6 vezes na rede Tempo de Pesquisa Para avaliar o desempenho da DHT em termos de pesquisa foi realizado um teste com três cenários onde foi medido o tempo médio de pesquisa. A diferença entre os três cenários reside no número de peers na rede em que cada um continha 10, 100 e 1000 peers respetivamente. Em ambos os cenários foram adicionados torrents aleatóriamente na rede. Com a realização deste teste foi obtido o gráfico da figura

45 Figura.16 Gráfico do tempo médio por pesquisa. Com base nos resultados obtidos podemos observar que existem variações no tempo médio de pesquisa entre os três cenários. Isto deve-se ao facto de que os torrents encontram-se mais dispersos na DHT logo é necessário percorrer mais peers para encontrar o peer responsável pelo ficheiro.torrent. 45

46 Capítulo 5 5 Conclusões De um modo geral os objetivos inicialmente definidos foram cumpridos com sucesso. Depois de um grande estudo sobre a temática geral do projeto, o conhecimento sobre esta matéria ficou bem assimilado uma vez que nos era praticamente desconhecido e despertou-nos bastante interesse. Uma vez que a DHT apenas permite pesquisas do tipo (valor, chave) exatas optamos por melhorar o projeto inicial implementando um motor de pesquisa permitindo assim pesquisas do tipo palavra-chave. Com o motor de pesquisa a aplicação tornou-se mais funcional e flexível. Durante a realização do projeto ocorreram alguns entraves, tais como, a falta de documentação de algumas bibliotecas utilizadas e a consequente dificuldade de compreensão da sua utilização. 46

47 Referências bibliográficas [1] BitTorrent, Wikipedia, the Free Encyclopedia. [2] Peer-to-Peer, Wikipedia, the Free Encyclopedia. [3] Distributed Hash Table, Wikipedia, the Free Encyclopedia. [4] Kademlia, Wikipedia, the Free Encyclopedia. [5] Lucene, Wikipedia, the Free Encyclopedia. [6] Information Retrieval, the Free Encyclopedia. [7] GitHub, the Free Encyclopedia. [8] McCandless, Michael, Erik Hatcher, e Otis Gospodnetic. Lucene in Action, Second Edition: Covers Apache Lucene edition. [9] Jetty (web Server), Wikipedia, the Free Encyclopedia. [10] Web Crawler, the Free Encyclopedia. [11] Torrent File, the Free Encyclopedia. [12] TomP2P, A P2P-based high performance key-value pair storage library 47

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

Chord. Tecnologias de Middleware. Fernando Martins - fmp.martins@gmail.com Chord Tecnologias de Middleware 2006/2007 Fernando Martins - fmp.martins@gmail.com Tópicos Objectivo Motivação Peer-To-Peer Chord Descrição Geral Características Distintivas Comparação DNS Modelo do Sistema

Leia mais

Arquitetura de Rede de Computadores

Arquitetura de Rede de Computadores TCP/IP Roteamento Arquitetura de Rede de Prof. Pedro Neto Aracaju Sergipe - 2011 Ementa da Disciplina 4. Roteamento i. Máscara de Rede ii. Sub-Redes iii. Números Binários e Máscara de Sub-Rede iv. O Roteador

Leia mais

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

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido Arquitetura Roteiro Arquitetura Tipos de Arquitetura Centralizado Descentralizado Hibrido Questionário 2 Arquitetura Figura 1: Planta baixa de uma casa 3 Arquitetura Engenharia de Software A arquitetura

Leia mais

Sistemas de Nomes Planos

Sistemas de Nomes Planos Sistemas de Nomes Planos November 2, 2009 Sumário Sistemas de Nomes Planos e DHTs Chord Sistemas de Nomes Planos Tipicamente, sistemas de nomes à escala da Internet usam nomes estruturados hierarquicamente.

Leia mais

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

Aplicações P2P. André Lucio e Gabriel Argolo Aplicações P2P André Lucio e Gabriel Argolo Tópicos Internet Peer-to-Peer (Introdução) Modelos (Classificação) Napster Gnutella DHT KaZaA Razões para o Sucesso da Internet Capacidade de interligar várias

Leia mais

USO GERAL DOS PROTOCOLOS SMTP, FTP, TCP, UDP E IP

USO GERAL DOS PROTOCOLOS SMTP, FTP, TCP, UDP E IP USO GERAL DOS PROTOCOLOS SMTP, FTP, TCP, UDP E IP SMTP "Protocolo de transferência de correio simples (ou em inglês Simple Mail Transfer Protocol ) é o protocolo padrão para envio de e- mails através da

Leia mais

SISTEMAS DISTRIBUÍDOS

SISTEMAS DISTRIBUÍDOS SISTEMAS DISTRIBUÍDOS Comunicação coletiva Modelo Peer-to-Peer Slide 6 Nielsen C. Damasceno Introdução Os modelos anteriores eram realizado entre duas partes: Cliente e Servidor. Com RPC e RMI não é possível

Leia mais

Protocolo Bittorrent

Protocolo Bittorrent Fundamentos Básicos Principais problemas Impacto na Rede Considerações Finais maxfaria@uniriote.br LETRA - UNIRIO 1 Fundamentos Básicos Bittorrent é um protocolo peer-to-peer para compartilhamento de arquivos

Leia mais

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

ICORLI. INSTALAÇÃO, CONFIGURAÇÃO e OPERAÇÃO EM REDES LOCAIS e INTERNET INSTALAÇÃO, CONFIGURAÇÃO e OPERAÇÃO EM REDES LOCAIS e INTERNET 2010/2011 1 Protocolo TCP/IP É um padrão de comunicação entre diferentes computadores e diferentes sistemas operativos. Cada computador deve

Leia mais

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

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 Redes Peer- Redes Peer- (P2P) São sistemas distribuídos nos quais os membros da rede são equivalentes em funcionalidade Permitem que os pares compartilhem recursos diretamente, sem envolver intermediários

Leia mais

Entendendo como funciona o NAT

Entendendo como funciona o NAT Entendendo como funciona o NAT Vamos inicialmente entender exatamente qual a função do NAT e em que situações ele é indicado. O NAT surgiu como uma alternativa real para o problema de falta de endereços

Leia mais

Introdução ao Modelos de Duas Camadas Cliente Servidor

Introdução ao Modelos de Duas Camadas Cliente Servidor Introdução ao Modelos de Duas Camadas Cliente Servidor Desenvolvimento de Sistemas Cliente Servidor Prof. Esp. MBA Heuber G. F. Lima Aula 1 Ciclo de Vida Clássico Aonde estamos? Page 2 Análise O que fizemos

Leia mais

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

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos MÓDULO 7 Modelo OSI A maioria das redes são organizadas como pilhas ou níveis de camadas, umas sobre as outras, sendo feito com o intuito de reduzir a complexidade do projeto da rede. O objetivo de cada

Leia mais

Como funciona a MEO Cloud?

Como funciona a MEO Cloud? Boas-vindas O que é a MEO Cloud? A MEO Cloud é um serviço da Portugal Telecom, lançado a 10 de Dezembro de 2012, de alojamento e sincronização de ficheiros. Ao criar uma conta na MEO Cloud fica com 16

Leia mais

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

Resumo. Introdução História Caracteristicas Exemplos Arquitetura Distribuição Vertical vs Distribuição Horizontal Segurança Conclusão Peer 2 Peer (P2P) Resumo Introdução História Caracteristicas Exemplos Arquitetura Distribuição Vertical vs Distribuição Horizontal Segurança Conclusão O que é P2P? Introdução Tipo de arquitetura de rede

Leia mais

Existem muitos assuntos relacionados com o Skype. Logo, esta apresentação focar-seá essencialmente nos aspectos mais importantes sobre a arquitectura

Existem muitos assuntos relacionados com o Skype. Logo, esta apresentação focar-seá essencialmente nos aspectos mais importantes sobre a arquitectura 1 Existem muitos assuntos relacionados com o Skype. Logo, esta apresentação focar-seá essencialmente nos aspectos mais importantes sobre a arquitectura da rede e as funcionalidades do Skype. 2 3 4 PRÓS:

Leia mais

ADDRESS RESOLUTION PROTOCOL. Thiago de Almeida Correia

ADDRESS RESOLUTION PROTOCOL. Thiago de Almeida Correia ADDRESS RESOLUTION PROTOCOL Thiago de Almeida Correia São Paulo 2011 1. Visão Geral Em uma rede de computadores local, os hosts se enxergam através de dois endereços, sendo um deles o endereço Internet

Leia mais

Redes de Comunicações Capítulo 6.1

Redes de Comunicações Capítulo 6.1 Capítulo 6.1 6.1 - Técnicas de Comutação 1 WAN s Wide Area Networks Uma WAN é uma rede dispersa por uma grande área física, sob o controlo de uma administração única e baseada em circuitos dedicados (exemplo:

Leia mais

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

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 Redes Peer-to-Peer Redes Peer-to to-peer Arquitetura de Redes P2P Integridade e Proteção Redes Peer-to-Peer (P2P) São sistemas distribuídos nos quais os membros da rede são equivalentes em funcionalidade

Leia mais

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

IP significa Internet Protocol. A Internet é uma rede, e assim como ocorre em qualquer tipo de rede, os seus nós (computadores, impressoras, etc. Endereços IP Endereços IP IP significa Internet Protocol. A Internet é uma rede, e assim como ocorre em qualquer tipo de rede, os seus nós (computadores, impressoras, etc.) precisam ter endereços. Graças

Leia mais

SIMULADOR DE ROTEAMENTO DE PACOTES (V. 3 20/05/2010)

SIMULADOR DE ROTEAMENTO DE PACOTES (V. 3 20/05/2010) SIMULADOR DE ROTEAMENTO DE PACOTES (V. 3 20/05/2010) OBJETIVO GERAL Este trabalho possui o objetivo de exercitar a lógica de programação dos alunos do Terceiro ano do Curso de BSI e também desenvolver

Leia mais

Arquitetura dos Sistemas de Informação Distribuídos

Arquitetura dos Sistemas de Informação Distribuídos Arquitetura dos Sistemas de Informação Distribuídos Quando se projeta um sistema cuja utilização é destinada a ser feita em ambientes do mundo real, projeções devem ser feitas para que o sistema possa

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Comunicação de Grupos Peer to Peer Comunicação de Grupos Modelos Anteriores - Comunicação envolvia somente duas partes. RPC não permite comunicação de um processo com vários outros

Leia mais

Redes de Computadores

Redes de Computadores Redes de Computadores Técnicas de comutação Escola Superior de Tecnologia e Gestão Instituto Politécnico de Bragança Maio de 2006 WAN s Wide Area Networks Uma WAN é uma rede dispersa por uma grande área

Leia mais

Aplicação Prática de Lua para Web

Aplicação Prática de Lua para Web Aplicação Prática de Lua para Web Aluno: Diego Malone Orientador: Sérgio Lifschitz Introdução A linguagem Lua vem sendo desenvolvida desde 1993 por pesquisadores do Departamento de Informática da PUC-Rio

Leia mais

Pesquisa e organização de informação

Pesquisa e organização de informação Pesquisa e organização de informação Capítulo 3 A capacidade e a variedade de dispositivos de armazenamento que qualquer computador atual possui, tornam a pesquisa de informação um desafio cada vez maior

Leia mais

SISTEMAS DISTRIBUÍDOS

SISTEMAS DISTRIBUÍDOS Arquiteturas www.pearson.com.br capítulo 2 slide 1 2.1 Estilos Arquitetônicos Formado em termos de componentes, do modo como esses componentes estão conectados uns aos outros, dos dados trocados entre

Leia mais

Acronis Servidor de Licença. Manual do Utilizador

Acronis Servidor de Licença. Manual do Utilizador Acronis Servidor de Licença Manual do Utilizador ÍNDICE 1. INTRODUÇÃO... 3 1.1 Descrição geral... 3 1.2 Política de licenças... 3 2. SISTEMAS OPERATIVOS SUPORTADOS... 4 3. INSTALAR O SERVIDOR DE LICENÇA

Leia mais

18/05/2014. Problemas atuais com o IPv4

18/05/2014. Problemas atuais com o IPv4 Problemas atuais com o IPv4 Fundamentos de Redes de Computadores Prof. Marcel Santos Silva Falhas de segurança: A maioria dos ataques contra computadores hoje na Internet só é possível devido a falhas

Leia mais

Tabela de roteamento

Tabela de roteamento Existem duas atividades que são básicas a um roteador. São elas: A determinação das melhores rotas Determinar a melhor rota é definir por qual enlace uma determinada mensagem deve ser enviada para chegar

Leia mais

Ferramenta de apoio a gerência de configuração de software. Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl

Ferramenta de apoio a gerência de configuração de software. Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl Ferramenta de apoio a gerência de configuração de software Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl Roteiro de apresentação Introdução Objetivos Fundamentação Teórica Gerência de Configuração

Leia mais

2 de maio de 2014. Remote Scan

2 de maio de 2014. Remote Scan 2 de maio de 2014 Remote Scan 2014 Electronics For Imaging. As informações nesta publicação estão cobertas pelos termos dos Avisos de caráter legal deste produto. Conteúdo 3 Conteúdo...5 Acesso ao...5

Leia mais

SISTEMAS DISTRIBUIDOS

SISTEMAS DISTRIBUIDOS 1 2 Caracterização de Sistemas Distribuídos: Os sistemas distribuídos estão em toda parte. A Internet permite que usuários de todo o mundo acessem seus serviços onde quer que possam estar. Cada organização

Leia mais

PEER DATA MANAGEMENT SYSTEM

PEER DATA MANAGEMENT SYSTEM PEER DATA MANAGEMENT SYSTEM INTRODUÇÃO, INFRA-ESTRUTURA E MAPEAMENTO DE ESQUEMAS AGENDA Data Management System Peer Data Management System P2P Infra-estrutura Funcionamento do PDMS Mapeamento de Esquemas

Leia mais

Conceitos de relação de confiança www.jpinheiro.net jeferson@jpinheiro.net

Conceitos de relação de confiança www.jpinheiro.net jeferson@jpinheiro.net Conceitos de relação de confiança www.jpinheiro.net jeferson@jpinheiro.net Procedimento para criar uma árvore O procedimento usado para criar uma árvore com o Assistente para instalação do Active Directory

Leia mais

DarkStat para BrazilFW

DarkStat para BrazilFW DarkStat para BrazilFW ÍNDICE Índice Página 1 O que é o DarkStat Página 2 DarkStat e a inicialização do sistema Página 2 DarkStat e a finalização do sistema Página 2 Tela Principal do DarkStat Página 3

Leia mais

LICENCIAMENTO V14 USANDO REPRISE LICENSE MANAGER

LICENCIAMENTO V14 USANDO REPRISE LICENSE MANAGER LICENCIAMENTO V14 USANDO REPRISE LICENSE MANAGER V14 de BricsCAD vem com um novo sistema de licenciamento, com base na tecnologia de licenciamento de Reprise Software. Este novo sistema oferece um ambiente

Leia mais

Módulo 8 Ethernet Switching

Módulo 8 Ethernet Switching CCNA 1 Conceitos Básicos de Redes Módulo 8 Ethernet Switching Comutação Ethernet 2 Segmentação de Redes Numa Ethernet o meio de transmissão é compartilhado Só um nó pode transmitir de cada vez. O aumento

Leia mais

Sistemas Distribuídos Arquitetura de Sistemas Distribuídos Aula II Prof. Rosemary Silveira F. Melo Arquitetura de Sistemas Distribuídos Conceito de Arquitetura de Software Principais elementos arquiteturais

Leia mais

Na Figura a seguir apresento um exemplo de uma "mini-tabela" de roteamento:

Na Figura a seguir apresento um exemplo de uma mini-tabela de roteamento: Tutorial de TCP/IP - Parte 6 - Tabelas de Roteamento Por Júlio Cesar Fabris Battisti Introdução Esta é a sexta parte do Tutorial de TCP/IP. Na Parte 1 tratei dos aspectos básicos do protocolo TCP/IP. Na

Leia mais

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

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Arquiteturas Capítulo 2 Agenda Estilos Arquitetônicos Arquiteturas de Sistemas Arquiteturas Centralizadas Arquiteturas Descentralizadas Arquiteturas

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Modelo Cliente-Servidor: Introdução aos tipos de servidores e clientes Prof. MSc. Hugo Souza Iniciando o módulo 03 da primeira unidade, iremos abordar sobre o Modelo Cliente-Servidor

Leia mais

GereComSaber. Desenvolvimento de Sistemas de Software. Universidade do Minho Conselho de Cursos de Engenharia Licenciatura em Engenharia Informática

GereComSaber. Desenvolvimento de Sistemas de Software. Universidade do Minho Conselho de Cursos de Engenharia Licenciatura em Engenharia Informática Universidade do Minho Conselho de Cursos de Engenharia Licenciatura em Engenharia Informática Desenvolvimento de Sistemas de Software Ano Lectivo de 2009/10 GereComSaber Ana Duarte, André Guedes, Eduardo

Leia mais

FileMaker Pro 13. Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 13

FileMaker Pro 13. Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 13 FileMaker Pro 13 Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 13 2007-2013 FileMaker Inc. Todos os direitos reservados. FileMaker Inc. 5201 Patrick Henry Drive Santa Clara,

Leia mais

REDES DE COMPUTADORES

REDES DE COMPUTADORES REDES DE COMPUTADORES 09/2013 Cap.3 Protocolo TCP e a Camada de Transporte 2 Esclarecimentos Esse material é de apoio para as aulas da disciplina e não substitui a leitura da bibliografia básica. Os professores

Leia mais

A camada de rede do modelo OSI

A camada de rede do modelo OSI A camada de rede do modelo OSI 1 O que faz a camada de rede? (1/2) Esta camada tem como função principal fazer o endereçamento de mensagens. o Estabelece a relação entre um endereço lógico e um endereço

Leia mais

P HC XL - Nem calcula o produto que temos para si...

P HC XL - Nem calcula o produto que temos para si... P HC XL - Nem calcula o produto que temos para si... Documento FAQs Poderão ser contemplados campos de utilizadores da ML? Essa possibilidade não existe. Os campos disponíveis são os campos base da tabela

Leia mais

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO. SISTEMAS DE GESTÃO DE BASE DE DADOS Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO. SISTEMAS DE GESTÃO DE BASE DE DADOS Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO CONCEITOS BÁSICOS 1 Necessidade das base de dados Permite guardar dados dos mais variados tipos; Permite

Leia mais

Manual de utilização do Moodle

Manual de utilização do Moodle Manual de utilização do Moodle Iniciação para docentes Universidade Atlântica Versão: 1 Data: Fevereiro 2010 Última revisão: Fevereiro 2010 Autor: Ricardo Gusmão Índice Introdução... 1 Registo no Moodle...

Leia mais

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

3 SERVIÇOS IP. 3.1 Serviços IP e alguns aspectos de segurança 3 SERVIÇOS IP 3.1 Serviços IP e alguns aspectos de segurança Os serviços IP's são suscetíveis a uma variedade de possíveis ataques, desde ataques passivos (como espionagem) até ataques ativos (como a impossibilidade

Leia mais

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

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web; CONCEITOS INICIAIS Agenda A diferença entre páginas Web, Home Page e apresentação Web; O que é necessário para se criar páginas para a Web; Navegadores; O que é site, Host, Provedor e Servidor Web; Protocolos.

Leia mais

Satélite. Manual de instalação e configuração. CENPECT Informática www.cenpect.com.br cenpect@cenpect.com.br

Satélite. Manual de instalação e configuração. CENPECT Informática www.cenpect.com.br cenpect@cenpect.com.br Satélite Manual de instalação e configuração CENPECT Informática www.cenpect.com.br cenpect@cenpect.com.br Índice Índice 1.Informações gerais 1.1.Sobre este manual 1.2.Visão geral do sistema 1.3.História

Leia mais

Intranets. FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO

Intranets. FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO Intranets FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO As intranets são redes internas às organizações que usam as tecnologias utilizadas na rede mundial

Leia mais

QUESTINAMENTOS AO EDITAL DE CONCORRÊNCIA 01/2013

QUESTINAMENTOS AO EDITAL DE CONCORRÊNCIA 01/2013 QUESTINAMENTOS AO EDITAL DE CONCORRÊNCIA 01/2013 Prezados Senhores da comissão de licitação da UENF, seguem alguns questionamentos acerca do edital de concorrência 01/2013 para esclarecimentos: 1. ANEXO

Leia mais

Capacidade = 512 x 300 x 20000 x 2 x 5 = 30.720.000.000 30,72 GB

Capacidade = 512 x 300 x 20000 x 2 x 5 = 30.720.000.000 30,72 GB Calculando a capacidade de disco: Capacidade = (# bytes/setor) x (méd. # setores/trilha) x (# trilhas/superfície) x (# superfícies/prato) x (# pratos/disco) Exemplo 01: 512 bytes/setor 300 setores/trilha

Leia mais

Documento de Análise e Projeto VideoSystem

Documento de Análise e Projeto VideoSystem Documento de Análise e Projeto VideoSystem Versão Data Versão Descrição Autor 20/10/2009 1.0 21/10/2009 1.0 05/11/2009 1.1 Definição inicial do documento de análise e projeto Revisão do documento

Leia mais

Um sistema SMS 1 simplificado

Um sistema SMS 1 simplificado 1 Introdução Um sistema SMS 1 simplificado Projecto de Redes de Computadores I - 2007/2008 LEIC IST, Tagus Park 10 de Setembro de 2007 Pretende-se com este projecto que os alunos implementem um sistema

Leia mais

Capítulo 7 CAMADA DE TRANSPORTE

Capítulo 7 CAMADA DE TRANSPORTE Capítulo 7 CAMADA DE TRANSPORTE INTRODUÇÃO (KUROSE) A Camada de Rede é uma peça central da arquitetura de rede em camadas A sua função é a de fornecer serviços de comunicação diretamente aos processos

Leia mais

481040 - Programador/a de Informática

481040 - Programador/a de Informática 481040 - Programador/a de Informática UFCD - 0770 Dispositivos e periféricos Sessão 4 SUMÁRIO Disco Rígido; Sistema de ficheiros Uma unidade de disco rígido é composta por um conjunto de discos sobrepostos,

Leia mais

Capítulo 9 - Conjunto de Protocolos TCP/IP e Endereçamento. Associação dos Instrutores NetAcademy - Julho de 2007 - Página

Capítulo 9 - Conjunto de Protocolos TCP/IP e Endereçamento. Associação dos Instrutores NetAcademy - Julho de 2007 - Página Capítulo 9 - Conjunto de Protocolos TCP/IP e Endereçamento IP 1 História e Futuro do TCP/IP O modelo de referência TCP/IP foi desenvolvido pelo Departamento de Defesa dos Estados Unidos (DoD). O DoD exigia

Leia mais

Rede de Computadores (REC)

Rede de Computadores (REC) Rede de Computadores (REC) Aula 04 Camada de Aplicação Prof. Jackson Mallmann dcc2jm@joinville.udesc.br Exemplos de requisição via telnet. iniciar / executar / cmd (Windows) telnet endereço telnet 192.168.1.3

Leia mais

MÓDULO 11 ELEMENTOS QUE FAZEM PARTE DO PROJETO DO SISTEMA

MÓDULO 11 ELEMENTOS QUE FAZEM PARTE DO PROJETO DO SISTEMA MÓDULO 11 ELEMENTOS QUE FAZEM PARTE DO PROJETO DO SISTEMA Através dos elementos que fazem parte do projeto do sistema é que podemos determinar quais as partes do sistema que serão atribuídas às quais tipos

Leia mais

Arquitetura de Computadores. Sistemas Operacionais IV

Arquitetura de Computadores. Sistemas Operacionais IV Arquitetura de Computadores Sistemas Operacionais IV Introdução Multiprogramação implica em manter-se vários processos na memória. Memória necessita ser alocada de forma eficiente para permitir o máximo

Leia mais

SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2

SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2 SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2 1.1 Introdução... 2 1.2 Estrutura do IP... 3 1.3 Tipos de IP... 3 1.4 Classes de IP... 4 1.5 Máscara de Sub-Rede... 6 1.6 Atribuindo um IP ao computador... 7 2

Leia mais

Unidade Curricular: SCOM Ano letivo: 2014/2015 Alunos: Diogo Guimarães 100503158 Pedro Brito 100503279

Unidade Curricular: SCOM Ano letivo: 2014/2015 Alunos: Diogo Guimarães 100503158 Pedro Brito 100503279 Unidade Curricular: SCOM Ano letivo: 2014/2015 Alunos: Diogo Guimarães 100503158 Pedro Brito 100503279 Resumo Redes Peer-to-Peer Características Tipos Arquitetura Vantagens Desvantagens Aplicações Skype

Leia mais

Especificação do 3º Trabalho

Especificação do 3º Trabalho Especificação do 3º Trabalho I. Introdução O objetivo deste trabalho é abordar a prática da programação orientada a objetos usando a linguagem Java envolvendo os conceitos de classe, objeto, associação,

Leia mais

Rede de Computadores

Rede de Computadores Escola de Ciências e Tecnologia UFRN Rede de Computadores Prof. Aquiles Burlamaqui Nélio Cacho Luiz Eduardo Eduardo Aranha ECT1103 INFORMÁTICA FUNDAMENTAL Manter o telefone celular sempre desligado/silencioso

Leia mais

AULA 5 Sistemas Operacionais

AULA 5 Sistemas Operacionais AULA 5 Sistemas Operacionais Disciplina: Introdução à Informática Professora: Gustavo Leitão Email: gustavo.leitao@ifrn.edu.br Sistemas Operacionais Conteúdo: Partições Formatação Fragmentação Gerenciamento

Leia mais

FTP Protocolo de Transferência de Arquivos

FTP Protocolo de Transferência de Arquivos FTP Protocolo de Transferência de Arquivos IFSC UNIDADE DE SÃO JOSÉ CURSO TÉCNICO SUBSEQUENTE DE TELECOMUNICAÇÕES! Prof. Tomás Grimm FTP - Protocolo O protocolo FTP é o serviço padrão da Internet para

Leia mais

MANUAL DE INSTALAÇÃO 1) ORACLE VIRTUALBOX ; 2) MICROSOFT WINDOWS ; 3) SUMÁRIOS GENEPLUS.

MANUAL DE INSTALAÇÃO 1) ORACLE VIRTUALBOX ; 2) MICROSOFT WINDOWS ; 3) SUMÁRIOS GENEPLUS. PROGRAMA EMBRAPA DE MELHORAMENTO DE GADO DE CORTE MANUAL DE INSTALAÇÃO 1) ORACLE VIRTUALBOX ; 2) MICROSOFT WINDOWS ; 3) SUMÁRIOS GENEPLUS. MANUAL DE INSTALAÇÃO: 1) ORACLE VIRTUALBOX ; 2) MICROSOFT WINDOWS

Leia mais

MÓDULO 8 ARQUITETURA DOS SISTEMAS DE BANCO DE DADOS

MÓDULO 8 ARQUITETURA DOS SISTEMAS DE BANCO DE DADOS MÓDULO 8 ARQUITETURA DOS SISTEMAS DE BANCO DE DADOS Quando falamos em arquitetura, normalmente utilizamos esse termo para referenciar a forma como os aplicativos computacionais são estruturados e os hardwares

Leia mais

ENHANCED SERVER FAULT- TOLERANCE FOR IMPROVED USER EXPERIENCE. André Esteves nº3412 David Monteiro

ENHANCED SERVER FAULT- TOLERANCE FOR IMPROVED USER EXPERIENCE. André Esteves nº3412 David Monteiro ENHANCED SERVER FAULT- TOLERANCE FOR IMPROVED USER EXPERIENCE André Esteves nº3412 David Monteiro INTRODUÇÃO É proposto uma arquitectura de servidor Web dividida que tolera perfeitamente tanto falhas na

Leia mais

Tecnologia de Redes de Computadores - aula 5

Tecnologia de Redes de Computadores - aula 5 Tecnologia de Redes de Computadores - aula 5 Prof. Celso Rabelo Centro Universitário da Cidade 1 Objetivo 2 3 4 IGPxEGP Vetor de Distância Estado de Enlace Objetivo Objetivo Apresentar o conceito de. Conceito

Leia mais

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO Santa Maria, 01 de Novembro de 2013. Revisão aula passada Projeto de Arquitetura Decisões de projeto de Arquitetura

Leia mais

Google Drive. Passos. Configurando o Google Drive

Google Drive. Passos. Configurando o Google Drive Google Drive um sistema de armazenagem de arquivos ligado à sua conta Google e acessível via Internet, desta forma você pode acessar seus arquivos a partir de qualquer dispositivo que tenha acesso à Internet.

Leia mais

Redes de Computadores I Licenciatura em Eng. Informática e de Computadores 1 o Semestre, 26 de Outubro de 2005 1 o Teste A

Redes de Computadores I Licenciatura em Eng. Informática e de Computadores 1 o Semestre, 26 de Outubro de 2005 1 o Teste A Redes de Computadores I Licenciatura em Eng. Informática e de Computadores 1 o Semestre, 26 de Outubro de 2005 1 o Teste A Número: Nome: Duração: 1 hora O teste é sem consulta O teste deve ser resolvido

Leia mais

Arquitecturas de Sistemas. Arquitecturas Descentralizadas de Sistemas

Arquitecturas de Sistemas. Arquitecturas Descentralizadas de Sistemas Arquitecturas de Sistemas Centralizadas Descentralizadas Híbridas Arquitecturas Descentralizadas de Sistemas Dividir aplicações cliente-servidor em três camadas (interface, processamento, dados): distribuição

Leia mais

Engenharia de Software e Sistemas Distribuídos. Enunciado Geral do Projecto

Engenharia de Software e Sistemas Distribuídos. Enunciado Geral do Projecto LEIC-A, LEIC-T, LETI, MEIC-T, MEIC-A Engenharia de Software e Sistemas Distribuídos 2 o Semestre 2014/2015 Enunciado Geral do Projecto O que se segue é uma descrição geral do domínio do projecto a desenvolver

Leia mais

A máscara de sub-rede pode ser usada para dividir uma rede existente em "sub-redes". Isso pode ser feito para:

A máscara de sub-rede pode ser usada para dividir uma rede existente em sub-redes. Isso pode ser feito para: Fundamentos: A máscara de pode ser usada para dividir uma rede existente em "s". Isso pode ser feito para: 1) reduzir o tamanho dos domínios de broadcast (criar redes menores com menos tráfego); 2) para

Leia mais

Protocolos em Redes de Dados. Enquadramento histórico. Modo de funcionamento FEC. Antecedentes IP Switching Tag Switching. Exemplo de.

Protocolos em Redes de Dados. Enquadramento histórico. Modo de funcionamento FEC. Antecedentes IP Switching Tag Switching. Exemplo de. Multiprotocol Label Switching Aula 07 FCUL 2005-20056 Objectivo: Conciliar as tecnologias baseadas em comutação (switching) com o encaminhamento IP. Aplicações: Aumentar o desempenho. Engenharia de tráfego.

Leia mais

Aula 08 MPLS 2004-2005 FCUL. Protocolos em Redes de Dados. Luís Rodrigues. Enquadramento. Modo de funcionamento. Antecedentes MPLS.

Aula 08 MPLS 2004-2005 FCUL. Protocolos em Redes de Dados. Luís Rodrigues. Enquadramento. Modo de funcionamento. Antecedentes MPLS. Aula 08 FCUL 2004-2005 Multiprotocol Label Switching Objectivo: Conciliar as tecnologias baseadas em comutação (switching) com o encaminhamento IP. Aplicações: Aumentar o desempenho. Engenharia de tráfego.

Leia mais

Universidade da Beira Interior

Universidade da Beira Interior Universidade da Beira Interior Relatório Apresentação Java Server Pages Adolfo Peixinho nº4067 Nuno Reis nº 3955 Índice O que é uma aplicação Web?... 3 Tecnologia Java EE... 4 Ciclo de Vida de uma Aplicação

Leia mais

2 Diagrama de Caso de Uso

2 Diagrama de Caso de Uso Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Caso de Uso (Use Case) Autoria:Aristófanes Corrêa

Leia mais

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

Há dois tipos de configurações bidirecionais usados na comunicação em uma rede Ethernet: Comunicação em uma rede Ethernet A comunicação em uma rede local comutada ocorre de três formas: unicast, broadcast e multicast: -Unicast: Comunicação na qual um quadro é enviado de um host e endereçado

Leia mais

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

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Basedos na Web Capítulo 12 Agenda Arquitetura Processos Comunicação Nomeação Sincronização Consistência e Replicação Introdução

Leia mais

FAÇA FÁCIL: DRIVER IGS PARA COMUNICAÇÃO DE PROTOCOLOS PROPRIETÁRIOS INTRODUÇÃO

FAÇA FÁCIL: DRIVER IGS PARA COMUNICAÇÃO DE PROTOCOLOS PROPRIETÁRIOS INTRODUÇÃO FAÇA FÁCIL: DRIVER IGS PARA COMUNICAÇÃO DE PROTOCOLOS PROPRIETÁRIOS INTRODUÇÃO O Driver IGS possui um módulo de configuração que possibilita a comunicação com protocolos proprietários. Trata-se do Driver

Leia mais

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

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Nomes, Identificadores, Endereços Nomeação Simples Capítulo 5 Agenda Nomes, Identificadores e Endereços Definição Nomeação Simples Soluções Simples

Leia mais

ISEP. Instituto Superior de Engenharia do Porto. Análise de Sistemas Informáticos

ISEP. Instituto Superior de Engenharia do Porto. Análise de Sistemas Informáticos ISEP Instituto Superior de Engenharia do Porto Análise de Sistemas Informáticos Armazenamento de Dados em Rede A Revolução do Armazenamento Partilhado A crise económica e a crescente necessidade de armazenamento

Leia mais

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio 32 3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio Este capítulo apresenta o framework orientado a aspectos para monitoramento e análise de processos de negócio

Leia mais

FTIN Formação Técnica em Informática Módulo de Administração de Servidores de Rede AULA 02. Prof. Gabriel Silva

FTIN Formação Técnica em Informática Módulo de Administração de Servidores de Rede AULA 02. Prof. Gabriel Silva FTIN Formação Técnica em Informática Módulo de Administração de Servidores de Rede AULA 02 Prof. Gabriel Silva Temas da Aula de Hoje: Revisão da Aula 1. Redes LAN e WAN. Aprofundamento nos Serviços de

Leia mais

FileMaker Pro 14. Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 14

FileMaker Pro 14. Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 14 FileMaker Pro 14 Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 14 2007-2015 FileMaker, Inc. Todos os direitos reservados. FileMaker Inc. 5201 Patrick Henry Drive Santa Clara,

Leia mais

Protocolo TCP/IP. Neste caso cada computador da rede precisa de, pelo menos, dois parâmetros configurados:

Protocolo TCP/IP. Neste caso cada computador da rede precisa de, pelo menos, dois parâmetros configurados: Protocolo TCP/IP Neste caso cada computador da rede precisa de, pelo menos, dois parâmetros configurados: Número IP Máscara de sub-rede O Número IP é um número no seguinte formato: x.y.z.w Não podem existir

Leia mais

UNIVERSIDADE FEDERAL DE PELOTAS

UNIVERSIDADE FEDERAL DE PELOTAS Usando um firewall para ajudar a proteger o computador A conexão à Internet pode representar um perigo para o usuário de computador desatento. Um firewall ajuda a proteger o computador impedindo que usuários

Leia mais

5 Mecanismo de seleção de componentes

5 Mecanismo de seleção de componentes Mecanismo de seleção de componentes 50 5 Mecanismo de seleção de componentes O Kaluana Original, apresentado em detalhes no capítulo 3 deste trabalho, é um middleware que facilita a construção de aplicações

Leia mais

Noções de. Microsoft SQL Server. Microsoft SQL Server

Noções de. Microsoft SQL Server. Microsoft SQL Server Noções de 1 Considerações Iniciais Basicamente existem dois tipos de usuários do SQL Server: Implementadores Administradores 2 1 Implementadores Utilizam o SQL Server para criar e alterar base de dados

Leia mais

Fault Tolerance Middleware for Cloud Computing

Fault Tolerance Middleware for Cloud Computing Fault Tolerance Middleware for Cloud Computing W. Zhao & P. Melliar-Smith & L. Moser Sistemas Distribuídos e Tolerância a Falhas Ivan Pires m3797 Gilberto Melfe m4088 Introdução A cloud computing tem por

Leia mais