Sistema Distribuído Imune a Falhas Bizantinas

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

Download "Sistema Distribuído Imune a Falhas Bizantinas"

Transcrição

1 Sistema Distribuído Imune a Falhas Bizantinas Manuel José Machado de Matos Fernandes Dissertação para obtenção do Grau de Mestre em Engenharia Electrotécnica e de Computadores Júri Presidente: Prof. Nuno Horta Orientador: Prof. João Paulo Carvalho Vogal: Prof. Carlos Almeida Dezembro 2008

2 Agradecimentos Quero deixar uma palavra de agradecimento ao Prof. João Paulo B. Carvalho pelo apoio na realização deste trabalho. I

3 II

4 Resumo As falhas arbitrarias no processamento de dados, são impossíveis de prever, e muitas vezes até de detectar, provocando assim erros em resultados, que aparentemente não estarão errados. Para ultrapassar estes casos, e garantir que os dados não são corrompidos quer por falhas de software ou hardware, quer por falhas introduzidas propositadamente, a replicação, a comparação e a encriptação são processos muito úteis. A garantia de imunidade a erros pode ser particularmente importante no caso de execução remota de programas. Existem ferramentas, como o Condor, que aproveitam bem os tempos mortos de processamento em máquinas de uma rede, mas não garantem que não são introduzidas falhas indetectáveis nas comunicações ou mesmo nas execuções. O trabalho desenvolvido visa colmatar essa lacuna nas ferramentas do tipo Condor nos casos em que a ocorrência dessa falhas é crítica. Para isso são implementadas medidas de segurança e é implementado um algoritmo de replicação. Este trabalho é formado por um processo, no entanto esse processo tem duas funções distintas. A função principal pode representar o papel de Administrador do sistema, mas também como Cliente que executa ou envia para execução, programas cujos resultados requerem a garantia de que não sejam corrompidos. A outra função é mais simples e é responsável pela aquisição de ficheiros a enviar para localizações remotas. As comunicações entre processos e entre máquinas tem um importante papel neste trabalho, pois é da cooperação entre estes que pode surgir o sucesso dos objectivos propostos, como a imunidade a erros. Palavras-chave: Falhas Bizantinas, Voltan Machine, Criptografia, Sistemas Distribuídos, Replicação, Transparência III

5 Abstract Failures in data processing are impossible to predict, and many times to even detect, thus provoking errors in results, that apparently are correct. To skip these situations and guarantee that the data is not corrupted by software or hardware faults, or even by faults introduced on purpose, replication, comparison and encryption are very useful processes. The immunity against errors can be very important in the remote execution situation. There are tools, like Condor, which manage the idle times of network machines processing, but they don t guarantee that faults are not introduced in the communications or even in executions. This work s goal is to fill this gap in tools such as Condor when the occurrence of these errors is critical. Security procedures and a replication algorithm were used to achieve this goal. This work is composed by one process however this process has two distinct functions. The main function not only plays the role of Administrator of the system, but can also be a Client that executes or submits to execution, programs that require a guarantee of non corruption of data. The function is simpler and it s responsible for the acquisition of files to send to remote locations. The communications between processes and machines is relevant in this work, because the success of the proposed goals like the immunity to errors arises from the cooperation between them. Keywords: Byzantine Failures, Distributed Systems, Voltan Machine, Cryptography, Replication, Transparency IV

6 Índice Lista de Figuras VII Lista de Tabelas VII 1. Introdução 1 2. Comunicação entre Máquinas Modelo OSI, Modelo da Internet e Protocolos de Comunicação Atrasos nas Comunicações Segurança em Redes de Computadores Conclusão 8 3. Sistemas Distribuídos Objectivos dos sistemas distribuídos Ligação entre utilizadores e recursos Transparência Remote Procedure Calls (RPC) Tolerância a Faltas Modelos de falhas Mascarar falhas por redundância Atingir tolerância a faltas em sistemas distribuídos Falhas em comunicações através de RPC Grids e Clusters Conclusão O Algoritmo de Voltan Estrutura do sistema Estruturação de um processo de Voltan Conclusão Abordagem Tomada Estrutura Geral de Funcionamento Implementação do algoritmo de Voltan Não-Determinismos Classes Importantes Comunicações Estabelecidas Comunicações TCP 35 V

7 5.5.2 Comunicações UDP Comunicações RMI Escrita dos resultados em Disco Funções de Hash e Criptografia Resultados de Testes Conclusão 49 Bibliografia 51 Anexos 53 Anexo I 53 VI

8 Lista de Figuras Figura 1: Esquema de encriptação 8 Figura 2: Interligação das aplicações 20 Figura 3: Estrutura de um processo de Voltan [3] 22 Figura 4: Esquema da implementação do algoritmo de Voltan neste trabalho 25 Figura 5: Thread RecebeThread 27 Figura 6: Thread RecebeThread com vários inputs 28 Figura 7: Sequência principal do processo Bizant 29 Figura 8: Esquema Geral de comunicações do Sistema 35 Figura 9: Comunicação Bizant-RecebeThread 36 Figura 10: Inicio do Registo de um Cliente no Administrador 37 Figura 11: Finalização do processo de registo de um Cliente 38 Figura 12: Processo de saída de um Cliente 38 Figura 13: Comunicação entre máquinas diferentes e entre processos Leader e Follower 41 Figura 14: Gráfico das execuções de um ficheiro Java, para 25 inputs 45 Figura 15: Gráfico das execuções de um ficheiro Java, para 50 inputs 46 Figura 16: Gráfico das execuções de um ficheiro Java, para 100 inputs 47 Lista de Tabelas Tabela 1: Tempos de execução do ficheiro de teste, em execução local Tabela 2: Tempos de execução do ficheiro de teste em execução remota Tabela 3: Tempos de execução média e mediana com diferentes cargas no sistema VII

9 VIII

10 1. Introdução Este trabalho tem como objectivo a implementação e o estudo de um sistema de computação distribuída em clusters ou grids com a capacidade de ser imune a falhas do tipo bizantino. Desta forma foi desenvolvido um sistema ao qual são submetidos trabalhos para execução. Esses trabalhos são executados remotamente, implementando replicação e segurança nas comunicações. O objectivo é garantir que na execução de cada trabalho não são introduzidas falhas bizantinas que comprometam os resultados obtidos. Caso essas falhas aconteçam elas são detectadas e o sistema vai descartar essas execuções. No sistema desenvolvido, cada máquina pode desempenhar vários papéis. Os três conceitos existentes neste sistema são: Administrador - Uma máquina que será acima de tudo gestora de recursos, e que permite, entre outros, comunicar às outras máquinas as disponibilidades do sistema para a execução, atribuir máquinas para a execução de trabalhos, etc. Máquinas de Submissão - Dentro do sistema podem existir uma ou mais máquinas que submetem trabalhos ao sistema, estas máquinas denominam-se Máquinas de Submissão. Máquinas de Execução - São máquinas que executam os trabalhos e devolvem os resultados. Qualquer Máquina de Execução é igualmente uma Máquina de Submissão, assim como o Administrador tem também essas funções. No entanto, enquanto no sistema existem várias máquinas de execução e submissão, Administrador apenas existe uma. Um sistema distribuído caracteriza-se por ser um sistema que embora contenha várias máquinas ligadas em rede, apresenta-se perante o utilizador como um único sistema simples. No entanto de forma a atingir o objectivo que é aparentar ser um único sistema, é necessário cumprir alguns pontos importantes: As comunicações têm de ser o mais fiáveis possível; assim o conceito de pilha de protocolos é muito importante, dividindo os tipos de comunicações e simplificando a sua implementação. É igualmente importante aliar segurança às comunicações de forma a garantir que os dados a serem transmitidos e recebidos não foram sujeitos a alterações no canal, quer devido a intercepções maliciosas ou por erros imprevisíveis. Assim são utilizados métodos de criptografia e assinatura digital dos dados transmitidos. Outro ponto importante na implementação de um sistema distribuído é que em caso de erro, esse erro seja tratado para que o utilizador não perceba que ocorreu um erro. Enquanto alguns erros são possíveis de detectar e assim serem ultrapassados, como por exemplo erros devido a uma máquina estar em baixo, ou devido a um processo que funcione mal, há outros 1

11 que são difíceis de detectar por serem arbitrários. Estes erros arbitrários são os que podem ter consequências piores, pois é difícil prever que parte do sistema podem atingir e quando. As falhas bizantinas caracterizam-se por terem uma ocorrência aleatória. No entanto é possível implementar estratégias que permitem decidir com um bom grau de certeza se o sistema está perante falhas deste tipo. Neste trabalho foi utilizada a linguagem de programação Java por várias razões, nomeadamente o facto de ser uma linguagem orientada a objectos, de fácil implementação e capacidade de correr em todos, ou quase todos, os sistemas operativos. Tem uma funcionalidade muito útil para este trabalho, RMI (remote method invocation) que permite, transparentemente, implementar chamadas a métodos contidos em objectos remotos. Tem igualmente, funções que implementam algoritmos de hash, de encriptação e de assinatura digital. Por fim, de forma a demonstrar o funcionamento deste trabalho, é exigível a realização de testes que consigam ser padrões para a garantia da correcção da execução e da performance do sistema, pois um sistema demasiado pesado e lento, dificilmente colhe vantagens na sua utilização. A realização deste trabalho está inserida no âmbito da execução remota de um ficheiro, mas escapando à possibilidade de sofrer falhas arbitrárias durante o processo, ou seja, escapando à possibilidade de sofrer falhas bizantinas. Em qualquer sistema distribuído a comunicação de dados e a execução de processos estão susceptíveis a erros do tipo bizantino. Pois, perante execuções remotas de processos, chamadas de procedimentos remotos, ou simples acesso a bases de dados, podem surgir erros intrínsecos das comunicações, ou de hardware, bem como erros introduzidos voluntariamente por utilizadores mais ou menos escrupulosos. Para ultrapassar a probabilidade de erros deste género, é imperiosa a necessidade de utilização de algoritmos, ou métodos, que garantam que a probabilidade de ocorrência de erros seja virtualmente nula. A inspiração para este trabalho decorreu de um programa chamado Condor [2], cujo objectivo é, utilizar os tempos mortos de processamento de uma lista de máquinas disponíveis para executar programas de elevada complexidade de computação. No entanto, como já foi mencionado, este tipo de sistema está susceptível a falhas do tipo bizantino, pois, a qualquer momento uma falha não detectada poderá adulterar a execução sem que isso seja notado. Para evitar isto, surge a necessidade de replicação da execução, de forma a poder garantir que a probabilidade de resultados erróneos diminui drasticamente. De forma a atingir esta necessidade de replicação, a utilização de um algoritmo de replicação é imperiosa. O algoritmo escolhido foi o algoritmo de Voltan [3,4]. Este algoritmo utiliza a replicação, e comparação de dados como a sua principal arma contra falhas. Assim, executando o mesmo ficheiro, diversas vezes, em máquinas diferentes, e comparando os seus resultados, pode-se garantir que a probabilidade de uma falha bizantina que afecte todas as execuções, é tendencialmente nula. No entanto, programas que se baseiem em geração de números aleatórios ou em chamadas ao tempo de relógio por exemplo, estão sempre sujeitos a que desta comparação não resulte uma conclusão definitiva, pois o valor utilizado em cada execução poderá ser diferente. 2

12 2. Comunicação entre Máquinas As redes de computadores são um dos campos tecnológicos mais importantes do nosso tempo. Hoje em dia, a Internet liga milhões de computadores à volta do mundo, providenciando comunicação, armazenamento e computação globais. Ou seja, entre muitas características, permite a partilha de recursos a nível de computação bem como transferências de dados, permitindo localizar o utilizador destes sistemas a um nível descentralizado, global e mais eficiente aproveitando recursos remotos. Numa rede de computadores, existem máquinas com diversas funções. Os servidores fornecem serviços à rede que permitem a partilha de dados, de ficheiros, ou igualmente permitem gerir recursos da rede. Do outro lado da cadeia, estão os clientes, são as máquinas que utilizam esses serviços providenciados. Nem sempre um servidor é uma máquina dedicada a funções de fornecimento de serviços nem um cliente é um utilizador desses serviços. Muitas vezes numa rede de computadores é possível que uma máquina aparentemente cliente forneça serviços a outra, e ao mesmo tempo, desfrute de serviços fornecidos por uma outra ou seja pode ser cliente e servidor ao mesmo tempo. [1,6,7] 2.1 Modelo OSI, Modelo da Internet e Protocolos de Comunicação Para a comunicação entre máquinas, tal como para a comunicação entre pessoas é necessário haver protocolos ou seja, um procedimento de comunicação de modo a que a informação transmitida seja bem recebida e descodificada. No nosso dia-a-dia seguimos tais protocolos, como por exemplo a utilização de frases iniciando conversas e terminando, e igualmente esperando a resposta da mesma forma na comunicação entre máquinas, por exemplo, são utilizados protocolos iniciando transmissões, esperando respostas e terminando ligações. Um protocolo define um formato e uma ordem de mensagens trocadas entre duas ou mais entidades, assim como acções tomadas na transmissão e/ou recepção de uma mensagem ou outro evento. Para a comunicação entre máquinas foi compilada uma pilha de protocolos divididos em camadas com funções separadas de forma a dividir os níveis de abstracção das comunicações e implementar vários níveis de protocolos. Assim nasceu o modelo OSI (de Open Systems Interconnection Reference Model) constituído por 7 camadas: a camada física, de ligação de dados, de rede, de transporte, de sessão, de apresentação e de aplicação. Este modelo evoluiu e hoje em dia na rede mais utilizada por todos (a Internet) utiliza um modelo apenas com 5 camadas, em que as camadas de apresentação e de sessão foram agregadas à camada de aplicação. A camada de aplicação é a responsável pelas aplicações de rede, por exemplo pesquisadores de Internet, ou outro tipo de aplicações. Implementa vários protocolos como por exemplo o HTTP que 3

13 suporta a Internet, o SMTP que suporta a transacção de correio electrónico, ou mesmo o FTP que suporta a transferência de ficheiros na rede. A camada de transporte suporta os serviços de transporte de mensagens entre camadas de aplicação de clientes e servidores. Os protocolos mais conhecidos desta camada de aplicação são o TCP (Transmission Control Protocol) e o UDP (User Datagram Protocol). O TCP fornece um serviço orientado à conexão. Este serviço inclui garantia de entrega de mensagens ao destinatário e controlo de fluxo. O TCP também divide mensagens longas em pedaços mais pequenos de forma a optimizar os recursos de transmissão. O protocolo UDP fornece um serviço sem qualquer tipo de conexão, ou seja os dados são enviados para o destinatário sem que haja qualquer tipo de garantias de entrega, nem tão pouco de tempo de entrega. No entanto, tipicamente as comunicações UDP são mais rápidas. Enquanto o TCP comporta protocolos em camadas de níveis mais baixos para garantir o encaminhamento dos dados e assim consumindo mais recursos na, o UDP é livre desses controlos simplificando a sua transmissão. A camada de rede é responsável por determinar os caminhos para a transmissão de dados entre duas máquinas. Esta camada implementa o protocolo IP (Internet Protocol) responsável pelo encaminhamento dos pacotes de informação na rede. Todas as redes que implementem esta camada implementam também este protocolo. Existem variados protocolos de encaminhamento, mas este é o mais importante. A camada de ligação de dados é a camada responsável por garantir a comunicação entre um nó e outro na rede. A camada de rede está dependente da camada de ligação de dados para implementar os seus protocolos de encaminhamento. Os serviços fornecidos por esta camada dependem do protocolo de ligação utilizado. Alguns exemplos de protocolos de ligação de dados são o PPP ou a Ethernet. Como os pacotes de dados atravessam várias ligações entre a origem e o destino, podem ser tratados por diferentes protocolos de ligação de dados no seu caminho e a camada de rede recebe um serviço diferente em cada protocolo de ligação diferente. A camada física é a responsável pela transmissão dos próprios bits de cada segmento entre um nó e outro. Os protocolos de transmissão de dados a nível físico são igualmente diferentes uns dos outros, e o mesmo protocolo de ligação de dados pode implementar vários protocolos da camada física, pois estes protocolos podem depender do meio de comunicação (se em fios de cobre ou fibra óptica por exemplo). Assim em cada caso os bits de informação são transmitidos de uma forma diferente. [1,6,7] 2.2 Atrasos nas Comunicações Na transmissão de dados numa rede de computadores, os pacotes de informação atravessam inúmeros nós, constituídos por routers ou outras máquinas, que encontram os caminhos mais indicados e servem de encaminhadores dos mesmos pacotes. Nestes nós são introduzidos atrasos nas comunicações. 4

14 O tempo requerido para examinar o cabeçalho do pacote e determinar para onde redireccionar o mesmo faz parte do atraso de processamento. O atraso de processamento pode incluir também outros factores, como o tempo que leva a detectar erros ao nível de bit. Os atrasos de processamento em routers de alta velocidade são tipicamente na ordem de microssegundos ou menos até. Depois desta análise no nó, o pacote é enviado para uma fila, onde vai aguardar a transmissão. Na fila o pacote tem um tempo de espera para transmissão. O tempo de espera nesta fila depende do número de pacotes que chegaram antes e aguardam igualmente a transmissão. Assim o tempo de atraso na fila depende muito do tráfego da rede. Ou seja, se nenhum pacote chegou anteriormente, e a fila está vazia, então o atraso será nulo. Se por outro lado o tráfego na rede for pesado, e estiverem assim muitos pacotes por serem transmitidos, o atraso será muito longo. Na prática o atraso na fila pode variar entre a ordem de microssegundos e milissegundos. Em todas as comunicações existe um atraso de propagação, que se caracteriza pelo tempo que leva uma mensagem a percorrer o caminho entre o nó A ao nó B. Neste caso, será o tempo que 1 bit leva a percorrer esse caminho. Claro que o tempo dispendido nesta propagação depende muito do meio de comunicação. Ou seja, para a mesma distância, a propagação em fibra óptica é mais rápida que em fios de cobre. Em média a velocidade de propagação está entre m/s e m/s. [7] Os atrasos nas comunicações são importantes, no âmbito desta dissertação, porque alguns erros podem-se dever a atrasos demasiado longos. Em certos casos um processo pode esperar por uma resposta, e devido ao atraso demasiado longo na sua chegada, definir que a resposta foi perdida, que houve erros no servidor ou que o seu próprio pedido foi perdido. No entanto a recepção tardia dessa resposta pode provocar algum tipo de comportamento imprevisível caso não seja tratado convenientemente. 2.3 Segurança em Redes de Computadores A segurança em redes de computadores é um factor essencial nas comunicações. Garantir que uma transmissão é segura é um factor de estabilidade de um sistema, seja esse sistema um sistema comercial (por exemplo e-commerce) e aí é importante adquirir a confiança do consumidor, seja um sistema empresarial, ou uma aplicação particular, onde é igualmente importante garantir ao utilizador que irá obter os resultados correctos derivados da utilização da aplicação. A segurança em redes permite também garantir a um certo nível, que erros não intencionais (como por exemplo erros de acesso ao disco, erros de transmissão, etc.) não irão provocar danos nos resultados obtidos. Assim por estes dois motivos, é importante num sistema distribuído implementar um certo nível de segurança, dependendo dos objectivos do sistema. Uma comunicação segura tem as seguintes características: Confidencialidade, apenas o emissor e o receptor podem aceder ao conteúdo da mensagem, ou seja apenas eles podem descodificar uma mensagem encriptada, e se alguém interceptar essa mensagem, não terá a possibilidade de entender o seu conteúdo. 5

15 Autenticação, confirmar se o parceiro de comunicação é mesmo quem deve ser e não alguém que se faz passar por ele. Integridade da mensagem, mesmo que as partes envolvidas na comunicação se autenticarem, ou seja souberem com quem comunicam, precisam de garantir que a mensagem trocada não sofre alterações no caminho, sejam elas intencionais, provocadas por um interceptor, sejam elas não intencionais, por erros aleatórios. Disponibilidade e controlo de acesso, como a segurança é um capítulo muito importante nas comunicações de hoje em dia, é importante que esta seja disponibilizada o mais possível nos sistemas. Assim como o controlo do acesso a esses mesmos sistemas, por parte de utilizadores que podem não ter legitimidade para esse mesmo acesso. O mecanismo mais comum para implementar estes pontos importantes de segurança, é utilizando a criptografia de forma a codificar, autenticar e distribuir a possibilidade de acesso a mensagens por parte de utilizadores legítimos. A criptografia é um método antigo que comporta várias técnicas, utilizadas para encobrir mensagens e mascará-las. No entanto as técnicas de criptografia utilizadas em redes hoje em dia pouco têm a ver com as técnicas antigas. De uma forma geral a implementação da encriptação baseia-se no seguinte procedimento. Tendo uma mensagem que se deseja enviar, m, um algoritmo capaz de produzir uma mensagem cifrada é utilizado. Esse algoritmo necessita de receber igualmente uma chave, Ka. A aplicação do algoritmo à mensagem utilizando a chave dada será Ka(m). Para que o receptor possa ler de novo a mensagem original é necessário descodificar a mensagem encriptada. Para atingir este fim é utilizada uma outra chave, Kb. O resultado da aplicação do algoritmo utilizando esta chave Kb é a mensagem original, m=kb(ka(m)). Em algoritmos de chaves simétricas, ambas as chaves Ka e Kb são iguais. No caso de algoritmos de chaves públicas estas são diferentes, de forma a garantir que apenas o emissor pode codificar a mensagem, embora muitos outros a possam ler. No caso das chaves simétricas, um problema que pode surgir é que ambas as partes que vão comunicar têm de acordar uma chave que ambos irão usar. No entanto esta situação implica que toda a comunicação de negociação acontece numa comunicação segura, o que nem sempre acontece. Assim surgiram algoritmos de chaves públicas, entre eles o mais conhecido e utilizado o RSA. Estes algoritmos consistem na codificação da mensagem a enviar utilizando uma chave que apenas o codificador tem conhecimento, a chave privada. No entanto, para a leitura da mensagem codificada é utilizada uma chave diferente e que pode ser partilhada com outros utilizadores, a chave pública. É essencial que a partir de uma chave pública seja impossível obter a chave privada, protegendo assim a mensagem de ser alterada durante a sua transmissão. De forma a atingir esse objectivo deve ser utilizado um algoritmo apropriado. 6

16 Neste trabalho, como é utilizada a assinatura digital, o algoritmo utilizado para criar chaves pública e privada é o DSA (Digital Signature Algorithm). A diferença entre a utilização do RSA e do DSA reside essencialmente no facto de que o RSA se destina a encriptar o conjunto de dados, no caso deste trabalho seriam os dados que constituem os ficheiros transferidos entre máquinas. O DSA consiste em encriptar o resultado de uma função de Hash, com o objectivo de que a consistência dos dados e a sua origem, sejam verificados no destino. Deste modo no RSA a chave pública é usada para codificar a mensagem a enviar, enquanto a chave privada é usada pelo receptor para a descodificar e obter a mensagem original. No DSA, por outro lado, a chave privada é usada para codificar a Hash, enquanto a chave pública é usada para verificar a assinatura. A criação das chaves pública e privada no DSA consiste nos seguintes passos: Escolher uma função de Hash H, no caso deste trabalho o SHA-1. Decidir o tamanho da chave L, tipicamente o tamanho será de 1024 bits, ou múltiplos. Escolher um número primo q com o mesmo número de bits que H. Escolher um número primo de L bits, tal que p 1 é múltiplo de q, ou seja. Escolher um número h tal que 1 h p 1 e mod p 1 Escolher x de um modo aleatório tal que 0 x q. Calcular. A chave pública é (p,q, g, y) e a chave privada é x. A razão principal para a utilização de assinaturas digitais neste trabalho prende-se no facto de que encriptar mensagens pode ser um processo muito dispendioso. Quando as mensagens são muito grandes torna-se muito extenso a nível computacional produzir mensagens completamente encriptadas. Uma forma simples de tornear esta dificuldade consiste em transformar uma mensagem de comprimento variável, numa outra de comprimento fixo e mais curto, que será encriptada e enviada juntamente com a mensagem original. A esta mensagem chama-se message digest. Uma message digest é em muitos sentidos como uma cheksum, serve para garantir a integridade do conteúdo da mensagem original, e por consequência garantir que a mensagem original não foi de nenhuma forma alterada durante a transmissão. A message digest é calculada utilizando uma função de Hash. Uma característica importante para um algoritmo gerador de message digests é a de garantir que é impossível encontrar mensagens diferentes cujas Hash tenham um resultado idêntico, de forma a identificar univocamente a mensagem original e assim garantir que durante a transmissão da mensagem não foram introduzidos erros, seja com intencionalidade ou por falhas do sistema. O procedimento de criação, envio, recepção e descodificação de dados de uma forma segura tem os seguintes passos: Escolhe-se um algoritmo de criação de Hash, por exemplo o SHA-1, utilizando esse algoritmo é criada uma nova mensagem, de comprimento fixo. 7

17 Seguidamente essa Hash de comprimento fixo é assinada digitalmente. Desta forma garante-se que a Hash não foi alterada na transmissão identificando o criador da mensagem, como foi dito anteriormente apenas quem tem acesso à chave privada pode assinar a Hash. A mensagem original e a Hash assinada são enviadas juntamente para o receptor. O receptor recebe a mensagem e a Hash, verifica a assinatura, e caso esta seja a correcta prossegue para a verificação dos dados A verificação dos dados é feita gerando uma nova Hash para os dados recebidos, esta Hash tem de ser igual à recebida de modo a garantir que os dados estão correctos. O processo de criação de mensagens de Hash, da sua assinatura posteriormente do seu envio, recepção e descodificação, está representado na figura 1. [7] Figura 1: Esquema de encriptação 2.4 Conclusão A segurança nas comunicações entre sistemas é um ponto muito importante em qualquer sistema ligado em rede. Desta forma é importante implementar critérios que assegurem que as comunicações efectuadas são enviadas e recebidas com integridade. Alguns desses critérios são criação de mensagens de Hash e assinatura digital das mensagens trocadas entre sistemas. 8

18 3. Sistemas Distribuídos Um sistema distribuído é aquele em que as máquinas cooperam na realização de tarefas com vista a um objectivo comum. Este é o tipo de sistema que é implementado neste trabalho. Várias definições de sistemas distribuídos têm sido criadas na literatura sobre o assunto, todas elas diferentes. Para este trabalho vamos apoiar-nos na seguinte definição que nos é dada por Tanenbaum, A.S. e Steen M.V. no livro Distributed Systems, Principles and Paradigms, Um sistema distribuído é uma colecção de computadores independentes que aparentam ser apenas um sistema simples e coerente, para os seus utilizadores. Esta definição engloba dois aspectos. Em primeiro lugar o hardware ou seja as máquinas são autónomas. Em segundo o software os utilizadores pensam que estão a utilizar um único sistema. Ambos os aspectos são essenciais. Uma característica importante de um sistema distribuído é que as diferenças entre os vários sistemas que compõem o sistema distribuído e a forma como estão ligados e comunicam, é escondida do utilizador. Uma outra característica importante é que utilizadores e aplicações podem interagir duma forma consistente e uniforme, independentemente de onde e quando a interacção tem lugar. Os sistemas distribuídos devem também ser relativamente fáceis de expandir. Esta característica é uma consequência directa de ter computadores independentes e ao mesmo tempo de esconder a forma como esses computadores estão ligados. Um sistema distribuído deve normalmente estar sempre disponível, embora talvez algumas partes possam não estar. Os utilizadores e aplicações não devem notar que o sistema está a ser actualizado para servir mais utilizadores e aplicações. Para suportar computadores e redes heterogéneas enquanto se oferece uma vista de um só sistema, os sistemas distribuídos são normalmente organizados em camadas de software logicamente localizadas entre o nível mais alto de utilizadores e aplicações e uma camada abaixo constituída por sistemas operativos. Assim, a esta camada é atribuído o nome de middleware. [1,7] 3.1 Objectivos dos sistemas distribuídos Um sistema distribuído é uma interacção complexa entre processos, máquinas e utilizadores. Não é pelo facto de ser possível construir sistemas distribuídos que significa necessariamente que é uma boa ideia para o problema em questão. Na verdade deve-se ponderar se o objectivo a que se propõe deve implicar o esforço da construção e da utilização de um sistema distribuído. 9

19 3.1.1 Ligação entre utilizadores e recursos O principal objectivo de um sistema distribuído é de facilitar o acesso remoto de utilizadores a recursos, e de os partilhar com outros utilizadores de uma forma controlada. Os recursos podem ser virtualmente qualquer coisa, nas tipicamente são impressoras, computadores, unidades de armazenamento, dados, ficheiros, páginas web, e redes, nomeando só alguns. Há várias razões para querer partilhar recursos. Uma razão óbvia é económica. Por exemplo, é mais barato partilhar uma impressora do que comprar uma impressora por utilizador. Assim como faz sentido partilhar recursos caros como super-computadores e sistemas de armazenamento de alta performance. [1] Transparência Um importante objectivo de um sistema distribuído é esconder o facto de que os seus processos e recursos estão fisicamente distribuídos por vários computadores. Um sistema distribuído que tem a capacidade de se apresentar aos utilizadores e aplicações como um único sistema computacional é dito como sendo transparente. O conceito de transparência pode ser aplicado a vários aspectos de um sistema distribuído. Transparência de acesso está relacionado com esconder a forma como os dados são representados e como os recursos são acedidos pelos utilizadores. Por exemplo, para enviar um inteiro com origem num sistema baseado em Intel para uma máquina Sun SPARC requer que se tenha em consideração que no sistema Intel os seus bytes são ordenados segundo o formado little endian (ou seja o byte de mais baixa ordem é transmitido primeiro) e que o sistema Sun SPARC utiliza o formato big endian (o byte de maior ordem é transmitido primeiro). Transparência de localização refere-se ao facto de que os utilizadores não fazem distinção de onde um recurso está localizado fisicamente no sistema. O naming desempenha um papel fundamental da transparência de localização. Transparência de migração está relacionada com a capacidade de mover recursos no sistema sem que o acesso seja afectado. Uma situação ainda mais forte é quando um recurso pode ser realocado enquanto está a ser acedido e utilizado, neste caso diz-se que o sistema tem transparência de realocação. A replicação tem um papel fundamental num sistema distribuído, pois alguns recursos podem estar replicados de modo a aumentarem a sua disponibilidade ou de forma a melhorar a performance. A transparência de replicação está relacionada com esconder o facto de um recurso estar replicado, do utilizador. Num sistema distribuído um utilizador pode querer aceder ao mesmo recurso que outro, por exemplo, ao mesmo ficheiro ou a uma tabela numa base de dados distribuída, mas não deve ser possível que ele saiba que está a aceder a um recurso partilhado, assim a concorrência deve ser transparente também. 10

20 Uma outra forma de transparência é a capacidade que um sistema tem de em caso de alguma falha nalgum nó do mesmo, esse erro não seja perceptível ao utilizador. A este tipo de transparência chama-se transparência a falhas. O último tipo de transparência é a de persistência, ou seja mascarar o facto de um recurso estar em memória volátil ou em disco. Este caso acontece normalmente em bases de dados orientadas a objectos em que podem ser chamados métodos que para aceder aos dados, e o que acontece por trás daquilo que o utilizador vê, é que o servidor copia os dados do disco para a memória, realiza a operação e grava de novo os dados em disco. [1] 3.2 Remote Procedure Calls (RPC) A ideia fundamental do que é uma chamada remota a um procedimento pode-se resumir ao facto de que é possível que um programa num computador A possa chamar um procedimento de um programa localizado no computador B sem que o utilizador do computador A se aperceba. É possível passar argumentos para esse procedimento, como se de um procedimento local se tratasse e nenhum tipo de comunicação é visível para o utilizador. Ou seja, no que ao utilizador diz respeito, é uma chamada normal a um procedimento local. Embora esta pareça ser uma ideia simples e elegante, alguns problemas subsistem. Por exemplo, como os procedimentos chamador e chamado correm em máquinas diferentes eles são executados em diferentes espaços de endereços, o que causa complicações. Parâmetros e resultados têm de ser passados, o que pode ser complicado, especialmente se as máquinas não forem idênticas. Finalmente ambas as máquinas podem falhar, o que pode causar problemas diferentes. De qualquer modo todos estes problemas são tratados, e as chamadas a procedimentos remotas são largamente utilizadas. [1] 3.3 Tolerância a Faltas Uma característica presente em sistemas distribuídos que os distingue de sistemas simples é a noção de falha parcial. Uma falha parcial pode acontecer quando um componente num sistema distribuído falha. Esta falha pode afectar o funcionamento de alguns componentes, enquanto ao mesmo tempo deixa que outros componentes funcionem bem. Por outro lado, uma falha num sistema simples pode levar a falhas em todos os componentes podendo facilmente fazer com que toda a aplicação colapse. Um objectivo no desenho de sistemas distribuídos é construir um sistema de tal forma que pode automaticamente recuperar de falhas parciais sem que isso afecte de forma considerável a performance do sistema. Em particular, quando uma falha acontece, o sistema distribuído deve 11

Sistemas Distribuídos e Paralelos

Sistemas Distribuídos e Paralelos Sistemas Distribuídos e Paralelos Tolerância a Falhas Ricardo Mendão Silva Universidade Autónoma de Lisboa r.m.silva@ieee.org January 14, 2015 Ricardo Mendão Silva (UAL) Sistemas Distribuídos e Paralelos

Leia mais

SISTEMAS DISTRIBUÍDOS

SISTEMAS DISTRIBUÍDOS SISTEMAS DISTRIBUÍDOS Capítulo 1 Introdução Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça Copyright DI FCT/ UNL / 1 NOTA PRÉVIA A apresentação utiliza algumas das figuras do livro

Leia mais

Sistemas Distribuídos: Conceitos e Projeto Introdução a Tolerância a Falhas

Sistemas Distribuídos: Conceitos e Projeto Introdução a Tolerância a Falhas Sistemas Distribuídos: Conceitos e Projeto Introdução a Tolerância a Falhas Francisco José da Silva e Silva Laboratório de Sistemas Distribuídos (LSD) Departamento de Informática / UFMA http://www.lsd.ufma.br

Leia mais

Redes de Computadores. Trabalho de Laboratório Nº7

Redes de Computadores. Trabalho de Laboratório Nº7 Redes de Computadores Curso de Eng. Informática Curso de Eng. de Electrónica e Computadores Trabalho de Laboratório Nº7 Análise do tráfego na rede Protocolos TCP e UDP Objectivo Usar o Ethereal para visualizar

Leia mais

Um cluster de servidores de email pode ser usado para servir os emails de uma empresa.

Um cluster de servidores de email pode ser usado para servir os emails de uma empresa. CLUSTERS Pode-se pegar uma certa quantidade de servidores e juntá-los para formar um cluster. O serviço então é distribuído entre esses servidores como se eles fossem uma máquina só. Um cluster de servidores

Leia mais

Sistemas Distribuídos Comunicação entre Processos em Sistemas Distribuídos: Middleware de comunicação Aula II Prof. Rosemary Silveira F. Melo Comunicação em sistemas distribuídos é um ponto fundamental

Leia mais

Tolerância a Faltas. 8/28/2003 José Alves Marques. Sistema Computacional

Tolerância a Faltas. 8/28/2003 José Alves Marques. Sistema Computacional Tolerância a Faltas Sistema Computacional Sistema computacional: Formado por um conjunto de componentes internas Contém um estado interno Está sujeito a um conjunto de entradas, ou estímulos externos Tem

Leia mais

SISTEMAS DISTRIBUÍDOS (1. CICLO)

SISTEMAS DISTRIBUÍDOS (1. CICLO) SISTEMAS DISTRIBUÍDOS (1. CICLO) Capítulo 1 Introdução Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça Copyright DI FCT/ UNL / 1 NOTA PRÉVIA A apresentação utiliza algumas das figuras

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos (Re)Introdução 1 Organização Definição Características essenciais dos sistemas distribuídos Desafios principais 2 Definição Um sistema distribuído é... um conjunto de componentes

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

Resumo. Introdução Classificação Fases Curiosidades

Resumo. Introdução Classificação Fases Curiosidades Tolerância à falha Resumo Introdução Classificação Fases Curiosidades Introdução Sistemas Tolerantes a Falhas são aqueles que possuem a capacidade de continuar provendo corretamente os seus serviços mesmo

Leia mais

Redes TCP/IP. Prof. M.Sc. Alexandre Fraga de Araújo. alexandref@ifes.edu.br. INSTITUTO FEDERAL DO ESPÍRITO SANTO Campus Cachoeiro de Itapemirim

Redes TCP/IP. Prof. M.Sc. Alexandre Fraga de Araújo. alexandref@ifes.edu.br. INSTITUTO FEDERAL DO ESPÍRITO SANTO Campus Cachoeiro de Itapemirim Redes TCP/IP alexandref@ifes.edu.br O que é a Internet? Milhões de elementos de computação interligados: hospedeiros = sistemas finais Executando aplicações Enlaces de comunicação: fibra, cobre, rádio,

Leia mais

Tolerância a Faltas. Índice. Terminologia. Replicação Passiva e activa Modelo Transaccional Transacções distribuídas

Tolerância a Faltas. Índice. Terminologia. Replicação Passiva e activa Modelo Transaccional Transacções distribuídas Tolerância a Faltas Índice Terminologia Falta, erro, falha Fiabilidade, disponibilidade Replicação Passiva e activa Modelo Transaccional Transacções distribuídas Sistema Computacional Sistema computacional:

Leia mais

Exercícios do livro: Tecnologias Informáticas Porto Editora

Exercícios do livro: Tecnologias Informáticas Porto Editora Exercícios do livro: Tecnologias Informáticas Porto Editora 1. Em que consiste uma rede de computadores? Refira se à vantagem da sua implementação. Uma rede de computadores é constituída por dois ou mais

Leia mais

Redes de Computadores

Redes de Computadores Redes de Computadores Capítulo 1 Gustavo Reis gustavo.reis@ifsudestemg.edu.br - O que é a Internet? - Milhões de elementos de computação interligados: hospedeiros = sistemas finais - Executando aplicações

Leia mais

Replicação de servidores

Replicação de servidores Arquiteturas Tolerantes a faltas em Sistemas Distribuídos Replicação de servidores Replicação: que benefícios nos dá? 1) Melhor desempenho e escalabilidade Replicar serviços permite que algumas operações

Leia mais

Licenciatura em Engenharia Informática Sistemas Distribuídos I 2ª chamada, 6 de Julho de 2005 2º Semestre, 2004/2005

Licenciatura em Engenharia Informática Sistemas Distribuídos I 2ª chamada, 6 de Julho de 2005 2º Semestre, 2004/2005 Departamento de Informática Faculdade de Ciências e Tecnologia UNIVERSIDADE NOVA DE LISBOA Licenciatura em Engenharia Informática Sistemas Distribuídos I 2ª chamada, 6 de Julho de 2005 2º Semestre, 2004/2005

Leia mais

Sistemas Distribuídos Introdução a Segurança em Sistemas Distribuídos

Sistemas Distribuídos Introdução a Segurança em Sistemas Distribuídos Sistemas Distribuídos Introdução a Segurança em Sistemas Distribuídos Departamento de Informática, UFMA Graduação em Ciência da Computação Francisco José da Silva e Silva 1 Introdução Segurança em sistemas

Leia mais

REDES DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br

REDES DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br - Aula 1- MODELO DE CAMADAS 1. INTRODUÇÃO A compreensão da arquitetura de redes de computadores envolve a compreensão do modelo de camadas. O desenvolvimento de uma arquitetura de redes é uma tarefa complexa,

Leia mais

Módulo 9 Conjunto de Protocolos TCP/IP e endereçamento IP

Módulo 9 Conjunto de Protocolos TCP/IP e endereçamento IP CCNA 1 Conceitos Básicos de Redes Módulo 9 Conjunto de Protocolos TCP/IP e endereçamento IP Introdução ao TCP/IP 2 Modelo TCP/IP O Departamento de Defesa dos Estados Unidos (DoD) desenvolveu o modelo de

Leia mais

APLICAÇÃO REDE APLICAÇÃO APRESENTAÇÃO SESSÃO TRANSPORTE REDE LINK DE DADOS FÍSICA 1/5 PROTOCOLOS DE REDE

APLICAÇÃO REDE APLICAÇÃO APRESENTAÇÃO SESSÃO TRANSPORTE REDE LINK DE DADOS FÍSICA 1/5 PROTOCOLOS DE REDE 1/5 PROTOCOLOS DE O Modelo OSI O OSI é um modelo usado para entender como os protocolos de rede funcionam. Para facilitar a interconexão de sistemas de computadores, a ISO (International Standards Organization)

Leia mais

Sistemas Distribuídos Capítulos 3 e 4 - Aula 4

Sistemas Distribuídos Capítulos 3 e 4 - Aula 4 Sistemas Distribuídos Capítulos 3 e 4 - Aula 4 Aula passada Threads Threads em SDs Processos Clientes Processos Servidores Aula de hoje Clusters de Servidores Migração de Código Comunicação (Cap. 4) Fundamentos

Leia mais

Características Básicas de Sistemas Distribuídos

Características Básicas de Sistemas Distribuídos Motivação Crescente dependência dos usuários aos sistemas: necessidade de partilhar dados e recursos entre utilizadores; porque os recursos estão naturalmente em máquinas diferentes. Demanda computacional

Leia mais

Capítulo 11 - Camada de Transporte TCP/IP e de Aplicação. Associação dos Instrutores NetAcademy - Julho de 2007 - Página

Capítulo 11 - Camada de Transporte TCP/IP e de Aplicação. Associação dos Instrutores NetAcademy - Julho de 2007 - Página Capítulo 11 - Camada de Transporte TCP/IP e de Aplicação 1 Introdução à Camada de Transporte Camada de Transporte: transporta e regula o fluxo de informações da origem até o destino, de forma confiável.

Leia mais

Conceitos de Segurança em Sistemas Distribuídos

Conceitos de Segurança em Sistemas Distribuídos Conceitos de Segurança em Sistemas Distribuídos Francisco José da Silva e Silva Laboratório de Sistemas Distribuídos (LSD) Departamento de Informática / UFMA http://www.lsd.ufma.br 30 de novembro de 2011

Leia mais

REDES DE COMPUTADORES

REDES DE COMPUTADORES REDES DE COMPUTADORES O QUE É PROTOCOLO? Na comunicação de dados e na interligação em rede, protocolo é um padrão que especifica o formato de dados e as regras a serem seguidas. Sem protocolos, uma rede

Leia mais

1 Arquitecturas e protocolos de comunicação

1 Arquitecturas e protocolos de comunicação Arquitecturas e protocolos de comunicação 1 Arquitecturas e protocolos de comunicação 1/33 Arquitectura dos protocolos de comunicações Arquitectura do sistema de comunicação É um bloco complexo de software

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

Sistemas Distribuídos e Paralelos

Sistemas Distribuídos e Paralelos Sistemas Distribuídos e Paralelos Sistemas peer-to-peer Ricardo Mendão Silva Universidade Autónoma de Lisboa r.m.silva@ieee.org December 3, 2014 Ricardo Mendão Silva (UAL) Sistemas Distribuídos e Paralelos

Leia mais

Redes de Computadores I Licenciatura em Eng. Informática e de Computadores 1 o Semestre, 27 de Janeiro de 2006 Exame de 2ª Época A

Redes de Computadores I Licenciatura em Eng. Informática e de Computadores 1 o Semestre, 27 de Janeiro de 2006 Exame de 2ª Época A Número: Nome: Redes de Computadores I Licenciatura em Eng. Informática e de Computadores o Semestre, 27 de Janeiro de 2006 Exame de 2ª Época A Duração: 2,5 horas A prova é sem consulta A prova deve ser

Leia mais

TRABALHO #1 Sistemas de Informação Distribuídos: Reflexão sobre a segurança

TRABALHO #1 Sistemas de Informação Distribuídos: Reflexão sobre a segurança DEPARTAMENTO DE ENGENHARIA INFORMÁTICA FACULDADE DE CIÊNCIAS E TECNOLOGIA DA UNIVERSIDADE DE COIMBRA Negócio Electrónico, 2006/2007 TRABALHO #1 Sistemas de Informação Distribuídos: Reflexão sobre a segurança

Leia mais

Um sistema é constituído de um conjunto de processos que executam seus respectivos códigos do sistema operacional e processos e códigos de usuários.

Um sistema é constituído de um conjunto de processos que executam seus respectivos códigos do sistema operacional e processos e códigos de usuários. Os sistemas computacionais atuais permitem que diversos programas sejam carregados na memória e executados simultaneamente. Essa evolução tornou necessário um controle maior na divisão de tarefas entre

Leia mais

Sistemas Multimédia. Arquitectura Protocolar Simples Modelo OSI TCP/IP. Francisco Maia famaia@gmail.com. Redes e Comunicações

Sistemas Multimédia. Arquitectura Protocolar Simples Modelo OSI TCP/IP. Francisco Maia famaia@gmail.com. Redes e Comunicações Sistemas Multimédia Arquitectura Protocolar Simples Modelo OSI TCP/IP Redes e Comunicações Francisco Maia famaia@gmail.com Já estudado... Motivação Breve História Conceitos Básicos Tipos de Redes Componentes

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

Sistemas Distribuídos Aula 15

Sistemas Distribuídos Aula 15 Sistemas Distribuídos Aula 15 Msc. Daniele Carvalho Oliveira Doutoranda em Ciência da Computação - UFU Mestre em Ciência da Computação UFU Bacharel em Ciência da Computação - UFJF 8. Tolerância a Falha

Leia mais

REDES DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

REDES DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula Complementar - MODELO DE REFERÊNCIA OSI Este modelo se baseia em uma proposta desenvolvida pela ISO (International Standards Organization) como um primeiro passo em direção a padronização dos protocolos

Leia mais

Comunicação em Sistemas Distribuídos. Bruno M. Carvalho Sala: 3B2 Horário: 35T34

Comunicação em Sistemas Distribuídos. Bruno M. Carvalho Sala: 3B2 Horário: 35T34 Comunicação em Sistemas Distribuídos Bruno M. Carvalho Sala: 3B2 Horário: 35T34 Comunicação em Sistemas Distribuídos Protocolos regras que os processos que estão se comunicando tem de seguir Protocolos

Leia mais

Redes. Pablo Rodriguez de Almeida Gross

Redes. Pablo Rodriguez de Almeida Gross Redes Pablo Rodriguez de Almeida Gross Conceitos A seguir serão vistos conceitos básicos relacionados a redes de computadores. O que é uma rede? Uma rede é um conjunto de computadores interligados permitindo

Leia mais

Distributed Systems Principles and Paradigms

Distributed Systems Principles and Paradigms Distributed Systems Principles and Paradigms Maarten van Steen VU Amsterdam, Dept. Computer Science (Tradução e Adaptação Ricardo Anido - IC/Unicamp) Capítulo 04: Comunicação Versão: 20 de março de 2014

Leia mais

Criptografia e Segurança das Comunicações. IPsec

Criptografia e Segurança das Comunicações. IPsec Criptografia e Segurança das Comunicações IPsec IPsec : 1/27 Introdução (1) Os datagramas IP do nível de rede da pilha de protocolos v4 são inseguros! Endereço fonte pode ser mistificado ( spoofed ). Conteúdo

Leia mais

Redes de Comunicações. Redes de Comunicações

Redes de Comunicações. Redes de Comunicações Capítulo 0 Introdução 1 Um pouco de história Século XVIII foi a época dos grandes sistemas mecânicos Revolução Industrial Século XIX foi a era das máquinas a vapor Século XX principais conquistas foram

Leia mais

Redes de computadores e Internet

Redes de computadores e Internet Polo de Viseu Redes de computadores e Internet Aspectos genéricos sobre redes de computadores Redes de computadores O que são redes de computadores? Uma rede de computadores é um sistema de comunicação

Leia mais

Capítulo I Introdução aos Sistemas Distribuídos

Capítulo I Introdução aos Sistemas Distribuídos Capítulo I Introdução aos Sistemas Distribuídos From: Wolfgang Emmerich Engineering Distributed Objects John Wiley & Sons, Ltd 2000 From: Coulouris, Dollimore and Kindberg Distributed Systems: Concepts

Leia mais

Segurança Internet. Fernando Albuquerque. fernando@cic.unb.br www.cic.unb.br/docentes/fernando (061) 273-3589

Segurança Internet. Fernando Albuquerque. fernando@cic.unb.br www.cic.unb.br/docentes/fernando (061) 273-3589 Segurança Internet Fernando Albuquerque fernando@cic.unb.br www.cic.unb.br/docentes/fernando (061) 273-3589 Tópicos Introdução Autenticação Controle da configuração Registro dos acessos Firewalls Backups

Leia mais

TCP/IP TCP UDP IP HTTP HTTPS FTP TFTP TELNET POP3 IMAP SMTP SNMP DHCP

TCP/IP TCP UDP IP HTTP HTTPS FTP TFTP TELNET POP3 IMAP SMTP SNMP DHCP TCP/IP TCP UDP IP HTTP HTTPS FTP TFTP TELNET POP3 IMAP SMTP SNMP DHCP HTTP (Hypertext Transfer Protocol ) Protocolo usado na Internet para transferir as páginas da WWW (WEB). HTTPS (HyperText Transfer

Leia mais

3. Comunicação em Sistemas Distribuídos

3. Comunicação em Sistemas Distribuídos 3. Comunicação em 3.1.Troca de mensagens As mensagens são objetos de dados cuja estrutura e aplicação são definidas pelas próprias aplicações que a usarão. Sendo a troca de mensagens feita através de primitivas

Leia mais

Segurança da Informação

Segurança da Informação Segurança da Informação (Extraído da apostila de Segurança da Informação do Professor Carlos C. Mello) 1. Conceito A Segurança da Informação busca reduzir os riscos de vazamentos, fraudes, erros, uso indevido,

Leia mais

REDES DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br

REDES DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br - Aula 2 - MODELO DE REFERÊNCIA TCP (RM TCP) 1. INTRODUÇÃO O modelo de referência TCP, foi muito usado pela rede ARPANET, e atualmente usado pela sua sucessora, a Internet Mundial. A ARPANET é de grande

Leia mais

CÓDIGO DA VAGA: TP08 QUESTÕES DE MÚLTIPLAS ESCOLHAS

CÓDIGO DA VAGA: TP08 QUESTÕES DE MÚLTIPLAS ESCOLHAS QUESTÕES DE MÚLTIPLAS ESCOLHAS 1) Em relação à manutenção corretiva pode- se afirmar que : a) Constitui a forma mais barata de manutenção do ponto de vista total do sistema. b) Aumenta a vida útil dos

Leia mais

SISTEMAS OPERACIONAIS LIVRES SERVICOS DE REDE LOCAL. Professor Carlos Muniz

SISTEMAS OPERACIONAIS LIVRES SERVICOS DE REDE LOCAL. Professor Carlos Muniz SISTEMAS OPERACIONAIS LIVRES SERVICOS DE REDE LOCAL Na internet, cada computador conectado à rede tem um endereço IP. Todos os endereços IPv4 possuem 32 bits. Os endereços IP são atribuídos à interface

Leia mais

Redes de Computadores (RCOMP 2014/2015)

Redes de Computadores (RCOMP 2014/2015) Redes de Computadores (RCOMP 2014/2015) Encaminhamento IPv4 Encaminhamento estático e encaminhamento dinâmico. Protocolos de encaminhamento: RIP, RIPv2, EIGRP e OSPF. Sistemas autónomos e redistribuição

Leia mais

CCNA 1 Conceitos Básicos de Redes. Módulo 11 Camada de Transporte TCP/IP Camada de Aplicação

CCNA 1 Conceitos Básicos de Redes. Módulo 11 Camada de Transporte TCP/IP Camada de Aplicação CCNA 1 Conceitos Básicos de Redes Módulo 11 Camada de Transporte TCP/IP Camada de Aplicação Camada de Transporte TCP/IP 2 Introdução à Camada de Transporte As responsabilidades principais da camada de

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Soquetes Um soquete é formado por um endereço IP concatenado com um número de porta. Em geral, os soquetes utilizam uma arquitetura cliente-servidor. O servidor espera por pedidos

Leia mais

Capítulo II Modelos de Programação Distribuída (parte 2)

Capítulo II Modelos de Programação Distribuída (parte 2) Capítulo II Modelos de Programação Distribuída (parte 2) From: Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 3, Addison-Wesley From: Cardoso, Jorge, Programação de

Leia mais

FAQs Projecto Factura Electrónica Índice

FAQs Projecto Factura Electrónica Índice FAQs Projecto Factura Electrónica Índice 1) O que é a factura electrónica?... 2 2) O que significa a certificação legal nestas facturas?... 2 3) Como se obtém a assinatura digital e que garantias ela nos

Leia mais

Seu manual do usuário NOKIA 6630 http://pt.yourpdfguides.com/dref/381534

Seu manual do usuário NOKIA 6630 http://pt.yourpdfguides.com/dref/381534 Você pode ler as recomendações contidas no guia do usuário, no guia de técnico ou no guia de instalação para. Você vai encontrar as respostas a todas suas perguntas sobre a no manual do usuário (informação,

Leia mais

Sistemas Distribuídos. Introdução. Edeyson Andrade Gomes. www.edeyson.com.br

Sistemas Distribuídos. Introdução. Edeyson Andrade Gomes. www.edeyson.com.br Sistemas Distribuídos Introdução Edeyson Andrade Gomes www.edeyson.com.br SUMÁRIO Definições Características Desafios Vantagens Desvantagens 2 Definições DEFINIÇÕES Um sistema distribuído é uma coleção

Leia mais

Modelos Fundamentais. Carlos Ferraz. cagf@cin.ufpe.br

Modelos Fundamentais. Carlos Ferraz. cagf@cin.ufpe.br Modelos Fundamentais Carlos Ferraz cagf@cin.ufpe.br O que vimos até agora (I) História Anos 60-70: sistemas centralizados (caros!) Anos 80: computadores pessoais (acessórios caros e pouco aproveitáveis!

Leia mais

www.projetoderedes.com.br Gestão da Segurança da Informação Professor: Maurício AULA 08 Protocolos de Segurança

www.projetoderedes.com.br Gestão da Segurança da Informação Professor: Maurício AULA 08 Protocolos de Segurança www.projetoderedes.com.br Gestão da Segurança da Informação Professor: Maurício AULA 08 Protocolos de Segurança Protocolos de Segurança A criptografia resolve os problemas envolvendo a autenticação, integridade

Leia mais

Redes de Comunicação Modelo OSI

Redes de Comunicação Modelo OSI Redes de Comunicação Modelo OSI Instituto Superior de Engenharia de Lisboa Departamento de Engenharia, Electrónica, Telecomunicações e Computadores Redes de Computadores Processos que comunicam em ambiente

Leia mais

Departamento de Informática

Departamento de Informática Departamento de Informática Licenciatura em Engenharia Informática Sistemas Distribuídos exame de recurso, 9 de Fevereiro de 2012 1º Semestre, 2011/2012 NOTAS: Leia com atenção cada questão antes de responder.

Leia mais

Ferramentas de Modelação e Análise de Sistemas baseadas em Redes de Petri (RdP)

Ferramentas de Modelação e Análise de Sistemas baseadas em Redes de Petri (RdP) Ferramentas de Modelação e Análise de Sistemas baseadas em Redes de Petri (RdP) Existem inúmeras ferramentas (software) baseadas em RdP que permitem desenvolver modelar e analisar sistema de RdP. Algumas

Leia mais

Redes de Computadores

Redes de Computadores TCP/IP Adriano Lhamas, Berta Batista, Jorge Pinto Leite Março de 2007 Pilha TCP/IP Desenvolvido pelo Departamento de Defesa dos EUA Objectivos: garantir a comunicação sob quaisquer circunstâncias garantir

Leia mais

PROJETO DE REDES www.projetoderedes.com.br

PROJETO DE REDES www.projetoderedes.com.br PROJETO DE REDES www.projetoderedes.com.br Curso de Tecnologia em Redes de Computadores Disciplina: Redes I Fundamentos - 1º Período Professor: José Maurício S. Pinheiro Material de Apoio VI PROTOCOLOS

Leia mais

Camada de Redes Parte II. Fabrício

Camada de Redes Parte II. Fabrício Camada de Redes Parte II Fabrício Algoritmos de controle de congestionamento Quando há pacotes demais presente (em parte) de uma sub-rede, o desempenho diminui. Dentro da capacidade de tranporte Eles serão

Leia mais

Camadas de Transporte, Sessão & Apresentação. Função. Camadas REDES x TRANSPORTE. Redes de Computadores Prof. Leandro C. Pykosz

Camadas de Transporte, Sessão & Apresentação. Função. Camadas REDES x TRANSPORTE. Redes de Computadores Prof. Leandro C. Pykosz Camadas de Transporte, Sessão & Apresentação Redes de Computadores Prof. Leandro C. Pykosz Função A camada de Transporte fica entre as camadas de nível de aplicação (camadas 5 a 7) e as de nível físico

Leia mais

Revisão. Karine Peralta karine.peralta@pucrs.br

Revisão. Karine Peralta karine.peralta@pucrs.br Revisão Karine Peralta Agenda Revisão Evolução Conceitos Básicos Modelos de Comunicação Cliente/Servidor Peer-to-peer Arquitetura em Camadas Modelo OSI Modelo TCP/IP Equipamentos Evolução... 50 60 1969-70

Leia mais

Sincronização. Tempo e Relógios. Sincronização de Relógios - Algoritmo de Cristian - Algoritmo de Berkeley - Network Time Protocol

Sincronização. Tempo e Relógios. Sincronização de Relógios - Algoritmo de Cristian - Algoritmo de Berkeley - Network Time Protocol Sincronização Tempo e Relógios Sincronização de Relógios - Algoritmo de Cristian - Algoritmo de Berkeley - Network Time Protocol 1 O papel do tempo Crucial na ordenação de eventos Tempo Real? - Função

Leia mais

UNIVERSIDADE. Sistemas Distribuídos

UNIVERSIDADE. Sistemas Distribuídos UNIVERSIDADE Sistemas Distribuídos Ciência da Computação Prof. Jesus José de Oliveira Neto Comunicação Inter-Processos Sockets e Portas Introdução Sistemas distribuídos consistem da comunicação entre processos

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos LICENCIATURA EM COMPUTAÇÃO Prof. Adriano Avelar Site: www.adrianoavelar.com Email: eam.avelar@gmail.com O que veremos hoje... Evolução Histórica Motivação Conceitos Características

Leia mais

Arquitetura de Redes. Sistemas Operacionais de Rede. Protocolos de Rede. Sistemas Distribuídos

Arquitetura de Redes. Sistemas Operacionais de Rede. Protocolos de Rede. Sistemas Distribuídos Arquitetura de Redes Marco Antonio Montebello Júnior marco.antonio@aes.edu.br Sistemas Operacionais de Rede NOS Network Operating Systems Sistemas operacionais que trazem recursos para a intercomunicação

Leia mais

Introdução. Escola Superior de Tecnologia e Gestão Instituto Politécnico de Bragança Março de 2006

Introdução. Escola Superior de Tecnologia e Gestão Instituto Politécnico de Bragança Março de 2006 Redes de Computadores Introdução Escola Superior de Tecnologia e Gestão Instituto Politécnico de Bragança Março de 2006 Um pouco de História Século XVIII foi a época dos grandes sistemas mecânicos Revoluçã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

Roteiro. Sistemas Distribuídos. Sistemas de Arquivos Distribuídos. Sistema de arquivos distribuídos

Roteiro. Sistemas Distribuídos. Sistemas de Arquivos Distribuídos. Sistema de arquivos distribuídos Sistemas Distribuídos Sistemas de Arquivos Distribuídos Roteiro Sistema de arquivos distribuídos Requisitos Arquivos e diretórios Compartilhamento Cache Replicação Estudo de caso: NFS e AFS Sistemas Distribuídos

Leia mais

Processos (Threads,Virtualização e Migração de Código)

Processos (Threads,Virtualização e Migração de Código) Processos (Threads,Virtualização e Migração de Código) Roteiro Processos Threads Virtualização Migração de Código O que é um processo?! Processos são programas em execução. Processo Processo Processo tem

Leia mais

Consensos. Universidade da Beira Interior Mestrado em Engenharia Informática Sistemas Distribuídos e Tolerância a Falhas

Consensos. Universidade da Beira Interior Mestrado em Engenharia Informática Sistemas Distribuídos e Tolerância a Falhas Universidade da Beira Interior Mestrado em Engenharia Informática Sistemas Distribuídos e Tolerância a Falhas Consensos Trabalho elaborado por: Catarina Nunes nº 2064 Diogo Sousa nº 2289 Vera Marcelino

Leia mais

Sistemas distribuídos:comunicação

Sistemas distribuídos:comunicação M. G. Santos marcela@estacio.edu.br Faculdade Câmara Cascudo - Estácio de Sá 16 de abril de 2010 Formas de comunicação Produtor-consumidor: comunicação uni-direccional, com o produtor entregando ao consumidor.

Leia mais

Capítulo 8 - Aplicações em Redes

Capítulo 8 - Aplicações em Redes Capítulo 8 - Aplicações em Redes Prof. Othon Marcelo Nunes Batista Mestre em Informática 1 de 31 Roteiro Sistemas Operacionais em Rede Modelo Cliente-Servidor Modelo P2P (Peer-To-Peer) Aplicações e Protocolos

Leia mais

Capítulo 13. Segurança de dados em redes de computadores. Redes Privadas Virtuais (VPNs)

Capítulo 13. Segurança de dados em redes de computadores. Redes Privadas Virtuais (VPNs) Capítulo 13 Segurança de dados em redes de computadores. Redes Privadas Virtuais (VPNs) Neste capítulo faz-se uma introdução a aplicações e standards que implementam segurança (por encriptação) na comunicação

Leia mais

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

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 Comunicação- Protocolos, Tipos, RPC Capítulo 4 Agenda Protocolos em Camadas Pilhas de Protocolos em Sistemas Distribuídos Tipos de Comunicação

Leia mais

Redes de Computadores. Protocolos de comunicação: TCP, UDP

Redes de Computadores. Protocolos de comunicação: TCP, UDP Redes de Computadores Protocolos de comunicação: TCP, UDP Introdução ao TCP/IP Transmission Control Protocol/ Internet Protocol (TCP/IP) é um conjunto de protocolos de comunicação utilizados para a troca

Leia mais

Arquitetura de Sistemas Distribuídos. Introdução a Sistemas Distribuídos

Arquitetura de Sistemas Distribuídos. Introdução a Sistemas Distribuídos Introdução a Sistemas Distribuídos Definição: "Um sistema distribuído é uma coleção de computadores autônomos conectados por uma rede e equipados com um sistema de software distribuído." "Um sistema distribuído

Leia mais

Sistemas Informáticos

Sistemas Informáticos Sistemas Informáticos Sistemas Distribuídos Eng.ª Sistemas de Informação Escola Superior de Tecnologia e Gestão - IPVC Ano Lectivo 2005-2006 1.º Semestre 1 - nos Sistemas Distribuídos - Necessidade de

Leia mais

1 Arquitecturas e protocolos de comunicação

1 Arquitecturas e protocolos de comunicação Arquitecturas e protocolos de comunicação 1 Arquitecturas e protocolos de comunicação 1/33 Arquitectura dos protocolos de comunicações Arquitectura do sistema de comunicação É um bloco complexo de software

Leia mais

Capítulo 13. Segurança de dados em redes de computadores. Redes Privadas Virtuais (VPNs)

Capítulo 13. Segurança de dados em redes de computadores. Redes Privadas Virtuais (VPNs) Capítulo 13 Segurança de dados em redes de computadores. Redes Privadas Virtuais (VPNs) Neste capítulo faz-se uma introdução a aplicações e standards que implementam segurança (por encriptação) na comunicação

Leia mais

Glossário de Internet

Glossário de Internet Acesso por cabo Tipo de acesso à Internet que apresenta uma largura de banda muito superior à da linha analógica. A ligação é feita com recurso a um modem (de cabo), que se liga à ficha de sinal de TV

Leia mais

Redes de Computadores (RCOMP 2014/2015)

Redes de Computadores (RCOMP 2014/2015) Redes de Computadores (RCOMP 2014/2015) Comunicação em Rede Arquitecturas e pilhas de protocolos 1 Comutação de pacotes com circuitos virtuais Numa rede de comutação de pacotes, mesmo que os pacotes pertençam

Leia mais

Camada de Transporte. Redes de Computadores I Prof. Mateus Raeder. Camada de Transporte. Camada de Transporte. Camada de Transporte

Camada de Transporte. Redes de Computadores I Prof. Mateus Raeder. Camada de Transporte. Camada de Transporte. Camada de Transporte Camada de Transporte Redes de Computadores I Prof. Mateus Raeder É responsável pela transmissão lógica dos dados A camada de enlace é responsável pela transmissão física Dois tipos de transmissão: Orientado

Leia mais

Vamos iniciar a nossa exploração do HTTP baixando um arquivo em HTML simples - bastante pequeno, que não contém objetos incluídos.

Vamos iniciar a nossa exploração do HTTP baixando um arquivo em HTML simples - bastante pequeno, que não contém objetos incluídos. Wireshark Lab: HTTP Versão 1.1 2005 KUROSE, J.F & ROSS, K. W. Todos os direitos reservados 2008 BATISTA, O. M. N. Tradução e adaptação para Wireshark. Tendo molhado os nossos pés com o Wireshark no laboratório

Leia mais

Um pouco sobre Pacotes e sobre os protocolos de Transporte

Um pouco sobre Pacotes e sobre os protocolos de Transporte Um pouco sobre Pacotes e sobre os protocolos de Transporte O TCP/IP, na verdade, é formado por um grande conjunto de diferentes protocolos e serviços de rede. O nome TCP/IP deriva dos dois protocolos mais

Leia mais

Camada de transporte. TCP Transmission Control Protocol

Camada de transporte. TCP Transmission Control Protocol Camada de transporte TCP Transmission Control Protocol TCP A confiabilidade dos processos de comunicação foi deixada a cargo do TCP O TCP é um protocolo: Orientado à conexão Confiável Número de portas

Leia mais

REDES DE COMPUTADORES I 2007/2008 LEIC - Tagus-Park TPC Nº 1. Avaliação sumário da matéria do capítulo 1

REDES DE COMPUTADORES I 2007/2008 LEIC - Tagus-Park TPC Nº 1. Avaliação sumário da matéria do capítulo 1 REDES DE COMPUTADORES I 007/008 LEIC - Tagus-Park TPC Nº 1 Avaliação sumário da matéria do capítulo 1 Pergunta: 1 1. Que tipo de Elemento de Rede é um Cliente? 1 Sistema Terminal ou Host Servidor 3 Encaminhador

Leia mais

Notas da Aula 15 - Fundamentos de Sistemas Operacionais

Notas da Aula 15 - Fundamentos de Sistemas Operacionais Notas da Aula 15 - Fundamentos de Sistemas Operacionais 1. Software de Entrada e Saída: Visão Geral Uma das tarefas do Sistema Operacional é simplificar o acesso aos dispositivos de hardware pelos processos

Leia mais

Vodafone ADSL Station Manual de Utilizador. Viva o momento

Vodafone ADSL Station Manual de Utilizador. Viva o momento Vodafone ADSL Station Manual de Utilizador Viva o momento 3 4 5 5 6 6 7 8 9 12 12 14 16 17 18 19 20 21 22 22 23 23 24 24 24 25 26 27 Ligar o Router LEDs Configuração do Router Aceder à ferramenta de configuração

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos I Capítulo 6 Replicação - 2011 - DI/FCT/UNL Replicação... O que é? Replicação: Definição e Objectivos A replicação de dados consiste na manutenção de múltiplas cópias da mesma informação em dispositivos

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 Resiliência de Processos Comunicação Confiável Cliente-Servidor Capítulo 8 Resiliência de Processos Idéia Básica: Replicar processos em grupos,

Leia mais

3. ( ) Para evitar a contaminação de um arquivo por vírus, é suficiente salvá-lo com a opção de compactação.

3. ( ) Para evitar a contaminação de um arquivo por vírus, é suficiente salvá-lo com a opção de compactação. 1. Com relação a segurança da informação, assinale a opção correta. a) O princípio da privacidade diz respeito à garantia de que um agente não consiga negar falsamente um ato ou documento de sua autoria.

Leia mais

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

Tópicos em Sistemas Distribuídos. Modelos de Comunicação Tópicos em Sistemas Distribuídos Modelos de Comunicação Comunicação em SD Comunicação entre processos Sockets UDP/TCP Comunicação em grupo Broadcast Multicast Comunicação entre processos Conceitos básicos

Leia mais

Lista de Exercícios 03 - Camadas de Transporte e de Aplicação e Segurança de Redes

Lista de Exercícios 03 - Camadas de Transporte e de Aplicação e Segurança de Redes BCC361 Redes de Computadores (2012-02) Departamento de Computação - Universidade Federal de Ouro Preto - MG Professor Reinaldo Silva Fortes (www.decom.ufop.br/reinaldo) Lista de Exercícios 03 - Camadas

Leia mais