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

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

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

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

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

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

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 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

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 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

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

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

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

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

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

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

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

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

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

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

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

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 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

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

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 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. 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

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

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

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 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

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

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

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

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

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

Comunicação de Dados

Comunicação de Dados UNISUL 2013 / 1 Universidade do Sul de Santa Catarina Engenharia Elétrica - Telemática 1 Comunicação de Dados Aula 6 Agenda Projeto da camada de enlace de dados Detecção e correção de erros Protocolos

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

M3 Redes de computadores avançado (36 horas - 48 TL)

M3 Redes de computadores avançado (36 horas - 48 TL) M3 Redes de computadores avançado (36 horas - 48 TL) Redes de Comunicação Ano lectivo 2013/2014 Camada de rede do modelo OSI Routers e portos de interface de routers (I) 2 Nesta camada imperam os routers.

Leia mais

Redes de Computadores (RCOMP 2014/2015)

Redes de Computadores (RCOMP 2014/2015) Redes de Computadores (RCOMP 2014/2015) Desenvolvimento de aplicações de rede UDP e TCP 1 Protocolo UDP ( User Datagram Protocol ) Tal como o nome indica, trata-se de um serviço de datagramas, ou seja

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

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

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

Arquiteturas de Rede. Prof. Leonardo Barreto Campos

Arquiteturas de Rede. Prof. Leonardo Barreto Campos Arquiteturas de Rede 1 Sumário Introdução; Modelo de Referência OSI; Modelo de Referência TCP/IP; Bibliografia. 2/30 Introdução Já percebemos que as Redes de Computadores são bastante complexas. Elas possuem

Leia mais

Sistemas Distribuídos e Tolerância a Falhas

Sistemas Distribuídos e Tolerância a Falhas Processamento de erros Detectar / Recuperar/ Mascarar 1º passo: Detecção. A detecção de um erro pode ser realizada por mecanismos como: - códigos de detecção de erros, - timeouts - watchdogs - verificações

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

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

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

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

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

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

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

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

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

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

Voz em ambiente Wireless

Voz em ambiente Wireless Voz em ambiente Wireless Mobilidade, acesso sem fio e convergência são temas do momento no atual mercado das redes de comunicação. É uma tendência irreversível, que vem se tornando realidade e incorporando-se

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

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

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

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

2 Controle de Congestionamento do TCP

2 Controle de Congestionamento do TCP 2 Controle de Congestionamento do TCP 17 2 Controle de Congestionamento do TCP A principal causa de descarte de pacotes na rede é o congestionamento. Um estudo detalhado dos mecanismos de controle de congestionamento

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

TRIBUNAL DE CONTAS DO DISTRITO FEDERAL

TRIBUNAL DE CONTAS DO DISTRITO FEDERAL TRIBUNAL DE CONTAS DO DISTRITO FEDERAL TÉCNICO EM ADMINISTRAÇÃO PÚBLICA E ANALISTA (EXCETO PARA O CARGO 4 e 8) GABARITO 1. (CESPE/2013/MPU/Conhecimentos Básicos para os cargos 34 e 35) Com a cloud computing,

Leia mais

B.I.S.T. Built-In Self Test

B.I.S.T. Built-In Self Test Instituto Superior de Engenharia do Porto Mestrado de Engenharia Electrotécnica Automação e Sistemas Disciplina de Síntese Alto Nível de Componentes Programáveis B.I.S.T. Built-In Self Test Elaborado por:

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

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

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

Aula 03 Regras de Segmentação e Switches

Aula 03 Regras de Segmentação e Switches Disciplina: Dispositivos de Rede II Professor: Jéferson Mendonça de Limas 4º Semestre Aula 03 Regras de Segmentação e Switches 2014/1 19/08/14 1 2de 38 Domínio de Colisão Os domínios de colisão são os

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

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

Programação 2ºSemestre MEEC - 2010/2011. Programação 2º Semestre 2010/2011 Enunciado do projecto

Programação 2ºSemestre MEEC - 2010/2011. Programação 2º Semestre 2010/2011 Enunciado do projecto Mestrado Integrado em Engenharia Electrotécnica e de Computadores Programação 2º Semestre 2010/2011 Enunciado do projecto O projecto a desenvolver pelos alunos consistirá numa sistema de monitorizaçã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 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

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

A Camada de Rede. A Camada de Rede

A Camada de Rede. A Camada de Rede Revisão Parte 5 2011 Modelo de Referência TCP/IP Camada de Aplicação Camada de Transporte Camada de Rede Camada de Enlace de Dados Camada de Física Funções Principais 1. Prestar serviços à Camada de Transporte.

Leia mais

Instituto Superior de Engenharia do Porto Administração de Sistemas Informáticos I Clusters

Instituto Superior de Engenharia do Porto Administração de Sistemas Informáticos I Clusters Instituto Superior de Engenharia do Porto Administração de Sistemas Informáticos I Clusters Trabalho elaborado por: 980368 - Sérgio Gonçalves Lima 1010949 - Nisha Sudhirkumar Chaganlal Clusters O que é

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

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

Prof. Manuel A Rendón M

Prof. Manuel A Rendón M Prof. Manuel A Rendón M Tanenbaum Redes de Computadores Cap. 1 e 2 5ª. Edição Pearson Padronização de sistemas abertos à comunicação Modelo de Referência para Interconexão de Sistemas Abertos RM OSI Uma

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

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

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

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

Segurança em Sistemas Informáticos

Segurança em Sistemas Informáticos Segurança em Sistemas Informáticos Politicas de Segurança Quando é que se torna necessário uma política de segurança? Quando existe um Bem Num espaço partilhado Uma politica de segurança procura garantir

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

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 Mecanismos de Comunicação Voltando ao exemplo da calculadora... Rede local

Leia mais

Camada de Transporte

Camada de Transporte Camada de Transporte Conceitos Básicos Redes de Computadores A. S. Tanenbaum Mário Meireles Teixeira. UFMA-DEINF Protocolos Protocolo: Conjunto de regras e formatos usados para comunicação entre entidades,

Leia mais

Fornecer serviços independentes da tecnologia da subrede; Esconder do nível de transporte o número, tipo e a topologia das subredes existentes;

Fornecer serviços independentes da tecnologia da subrede; Esconder do nível de transporte o número, tipo e a topologia das subredes existentes; 2.3 A CAMADA DE REDE! Fornece serviços para o nível de transporte, sendo, freqüentemente, a interface entre a rede do cliente e a empresa de transporte de dados (p.ex. Embratel).! Sua principal função

Leia mais

switches LAN (rede de comunicação local)

switches LAN (rede de comunicação local) O funcionamento básico de uma rede depende de: nós (computadores) um meio de conexão (com ou sem fios) equipamento de rede especializado, como roteadores ou hubs. Todas estas peças trabalham conjuntamente

Leia mais

Gestão de Configurações II

Gestão de Configurações II Gestão de Configurações II Bibliografia Livro: Software Configuration Management Patterns: Effective Teamwork, Practical Integration Gestão de Projecto 14 Padrões de Gestão Os padrões de gestão de configurações

Leia mais

Segurança em Sistemas Informáticos

Segurança em Sistemas Informáticos Segurança em Sistemas Informáticos Politicas de Segurança Quando é que se torna necessário uma política de segurança? Quando existe um Bem Num espaço partilhado Uma politica de segurança procura garantir

Leia mais

UNIVERSIDADE DA BEIRA INTERIOR Faculdade de Engenharia Departamento de Informática

UNIVERSIDADE DA BEIRA INTERIOR Faculdade de Engenharia Departamento de Informática 90 minutos * 24.05.2013 =VERSÃO A= 1 1. Esta teste serve como avaliação de frequência às aulas teóricas. 2. Leia as perguntas com atenção antes de responder. São 70 perguntas de escolha múltipla. 3. Escreva

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

M3D4 - Certificados Digitais Aula 2 Certificado Digital e suas aplicações

M3D4 - Certificados Digitais Aula 2 Certificado Digital e suas aplicações M3D4 - Certificados Digitais Aula 2 Certificado Digital e suas aplicações Prof. Fernando Augusto Teixeira 1 2 Agenda da Disciplina Certificado Digital e suas aplicações Segurança Criptografia Simétrica

Leia mais

Projeto de Arquitetura

Projeto de Arquitetura Projeto de Arquitetura Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 1 Objetivos Apresentar projeto de arquitetura e discutir sua importância Explicar as decisões de projeto

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

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

Redes de Computadores. Camada de Transporte

Redes de Computadores. Camada de Transporte Redes de Computadores Camada de Transporte Objetivo! Apresentar as características da camada de transporte da arquitetura TCP/IP! Apresentar os serviços fornecidos pela camada de transporte! Estudar os

Leia mais