Dissertação de Mestrado. Jhon Franko Jorge Velarde APLICAÇÃO DO PROTOCOLO SPDY PARA APLICATIVOS DE MONITORAMENTO SOBRE REDES DE IP PÚBLICO

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

Download "Dissertação de Mestrado. Jhon Franko Jorge Velarde APLICAÇÃO DO PROTOCOLO SPDY PARA APLICATIVOS DE MONITORAMENTO SOBRE REDES DE IP PÚBLICO"

Transcrição

1 Universidade Federal do ABC (UFABC) Centro de Matemática, Computação e Cognição (CMCC) Curso de Pós-Graduação em Ciência da Computação Dissertação de Mestrado Jhon Franko Jorge Velarde APLICAÇÃO DO PROTOCOLO SPDY PARA APLICATIVOS DE MONITORAMENTO SOBRE REDES DE IP PÚBLICO Santo André - SP 2014

2 Curso de Pós-Graduação em Ciência da Computação Dissertação de Mestrado Jhon Franko Jorge Velarde APLICAÇÃO DO PROTOCOLO SPDY PARA APLICATIVOS DE MONITORAMENTO SOBRE REDES DE IP PÚBLICO Trabalho apresentado como requisito parcial para obtenção do título de Mestre em Ciência da Computação, sob orientação do Prof. Dr. Nunzio Marco Torrisi. Santo André - SP 2014

3 Centro de Matemática, Computação e Cognição (CMCC) Curso de Pós-Graduação em Ciência da Computação APLICAÇÃO DO PROTOCOLO SPDY PARA APLICATIVOS DE MONITORAMENTO SOBRE REDES DE IP PÚBLICO Jhon Franko Jorge Velarde Março de 2014 BANCA EXAMINADORA: Prof. Dr. Nunzio Marco Torrisi (Presidente) (CMCC) Universidade Federal do ABC - UFABC Prof. Dr. Rodrigo Palucci Pantoni Instituto Federal de São Paulo - IFSP Prof. a Dr. a Vera Nagamuta (CMCC) Universidade Federal do ABC - UFABC Prof. Dr. Ronaldo Cristiano Prati (Suplente) (CMCC) Universidade Federal do ABC - UFABC

4 Este exemplar foi revisado e alterado em relação à versão original, de acordo com as observações levantadas pela banca no dia da defesa, sob responsabilidade única do autor e com a anuência de seu orientador. Santo André, 20 de março de Assinatura do autor: Assinatura do orientador:

5 Resumo O objetivo deste trabalho é propor o uso do protocolo SPDY em aplicativos de monitoramento sobre redes de IP público, com foco nas melhorias sobre HTTP e fornecido pelo escalonamento de requests utilizando as oito prioridades no fluxo SPDY. Para o escalonamento SPDY, são considerados algoritmos de padrões de projeto que utilizam mecanismos síncronos ou assíncronos para o gerenciamento de requests de múltiplos clientes, tais como: os padrões Reactor e Proactor. A característica principal, o quantum de tempo, compartilhada nos algoritmos de escalonamento, tais como: Escalonamento por Prioridade, Escalonamento Round- Robin, Escalonamento em Filas Multinível, Weighted Fair Queuing e Weighted Round-Robin, permite que os requests com menor prioridade tenham maior oportunidade de ser gerenciados. Um protótipo de servidor SPDY foi desenvolvido baseado na especificação do protocolo SPDY e, nas características principais dos padrões de projeto e algoritmos de escalonamento propostos. A avaliação deste protótipo foi feita na simulação de uma situação real de monitoramento, o protótipo considerou três estruturas para gerenciamento de requests no escalonador: oito filas de prioridade, uma fila sem prioridade e oito filas de prioridade com um quantum de tempo para cada fila. Os resultados obtidos mostram que os requests com maior prioridade são processados na média em menor tempo além de que são gerenciados em maior quantidade e, a utilização de um quantum de tempo para cada fila de prioridade aumentou a quantidade de requests gerenciados com menor prioridade. Palavras-chave: Aplicativos de monitoramento, DNP3, SCADA, HMI, Escalonamento, SPDY, HTTP, Padrões de projeto, Filas, Prioridade. iv

6 Abstract The aim of this research project is to propose the use of SPDY protocol for monitoring applications over public IP networks, with focus on the improvements over HTTP provided by the request scheduling using the eight priorities in SPDY stream. For the SPDY scheduling, are considered design patterns algorithms which use synchronous or asynchronous mechanisms for handles request of multiple clients, such as: Reactor and Proactor pattern. The main feature, the time quantum, shared in scheduling algorithms, such as: Priority Scheduling, Round-Robin Scheduling, Multilevel Queue Scheduling, Weighted Fair Queuing and Weighted Round-Robin, allows lower priority requests have higher opportunity to be managed. A SPDY server prototype was developed based on the specification of the SPDY protocol, and the main characteristics of the design patterns and scheduling algorithms proposed. The evaluation of this prototype was made in the simulation of a real situation monitoring, was considered in the prototype three structures for managing requests in the scheduler: eight priority queues, a queue without priority and eight priority queues with a time quantum for each queue. The results show that higher priority requests are processed on average in less time beyond that are managed in a larger quantity, and the use of a time quantum for each priority queue increased the amount of lower priority managed requests. v

7 Agradecimentos Agradeço a Deus pelas bênçãos, pela minha saúde e proteção em todos os dias da minha vida. Agradeço a minha esposa e amor Alisoli Pretel Jesus por que juntos somos uma grande equipe, pelo apoio, pela presença e grande amor, por que todo isso foi um grande motor para conduzir este mestrado em bom caminho. Agradeço profundamente a minha amada mãe, Dominga e a minha querida irmã, María, pelo amor, pelas orações, pela motivação, compreensão e apoio incondicional em todo momento. Agradeço a meu orientador o Prof. Dr. Nunzio Marco Torrisi pela amizade, pelos ensinamentos, ajuda e colaboração com o meu trabalho no mestrado. Aos professores André Balan, João Paulo Gois e Ronaldo Prati pelas novas experiências e pelos conhecimentos adquiridos. E finalmente, agradeço a meus caros amigos Lídia, Marcel e Renato por ter me dado a sua confiança, amizade e por sempre torcer por mim. vi

8 Glossário AJAX CyberOPC Asynchronous Javascript and XML Cybernetic OPC DNP3 Distributed Network Protocol, version 3 HMI Human Machine Interface HTML5 HyperText Markup Language, version 5 HTTP HyperText Transfer Protocol HTTPS HyperText Transfer Protocol Secure IETF OLE OPC OPC XML-DA OPC-UA RFC SCADA SPDY SSL TCP/IP TLS W3C Internet Engineering Task Force Object Linking and Embedding OLE for Process Control OPC extensible Markup Language-Data Access OPC-Unified Architecture Request For Comments Supervisory Control And Data Acquisition SPeeDY Protocol Secure Sockets Layer Transmission Control Protocol/ Internet Protocol Transport Layer Security World Wide Web Consortium vii

9 Sumário Glossário vii 1 Introdução Motivação Objetivos Organização deste trabalho Revisão Bibliográfica Tecnologias Relacionadas Melhoria do Projeto de Aplicativos HTTP Melhorias da Especificação do Protocolo HTTP Tecnologias Middleware para Otimização de uso de HTTP Estado da arte Protocolo WebSocket Protocolo SPDY Algoritmos de Escalonamento Escalonamento Round-Robin Escalonamento por Prioridade Escalonamento em Filas Multinível Weighted Fair Queuing Weighted Round-Robin Metodologia Padrões de projeto para transmissão de dados de tipo síncrono e assíncrono Metodologia para a avaliação dos resultados Desenvolvimento de um protótipo de servidor SDPY 24 viii

10 SUMÁRIO ix 5 Resultados Testes I: Análise do comportamento dos tempos de processamento nas oito filas de prioridade Testes II: Análise e comparação do comportamento dos tempos de processamento em uma fila sem prioridade e nas oito filas de prioridade Testes III: Análise e comparação do comportamento dos tempos de processamento nas oito filas com prioridade e quantum de tempo 43 6 Conclusões 48

11 Lista de Figuras 2.1 Diagrama temporal da modalidade HTTP Keep-alive (a) e Pipelining (b) Diagrama de conexões SPDY. As setas grossas indicam a transferência de dados, enquanto as setas finas mostram os tipos de frames SPDY: PING, SETTINGS, SYN STREAM, SYN REPLY e DATA FRAME Escalonamento Round-Robin. (a) Fila de frames. (b) Fila de frames quando F S 1 não termina após de um quantum Um algoritmo de escalonamento com quatro classes de prioridade Escalonamento em Filas Multinível Weighted Fair Queuing Weighted Round-Robin Diagrama de interação para o padrão Reactor Diagrama de interação para o padrão Proactor Registro de Eventos (a) Reactor. (b) Proactor Esquema do projeto Abordagem básica do poll de atualização Visão geral das etapas desenvolvidas no projeto Diagrama de interação para o enfileiramento de eventos Dinâmica do desenfileiramento de eventos Diagrama de interação para o despacho de eventos x

12 LISTA DE FIGURAS xi 5.1 Estrutura dos arquivos de Teste A, F, J e Tráfego de Fundo com o valor da prioridade na primeira coluna e o tempo de inter-arrival na segunda (a) Armazenamento na estrutura de dados. (b) Gerenciamento dos novos requests Esquema dos testes 1 e Plotting 2D do teste 1 utilizando um cliente SPDY para transmitir o tráfego de fundo Plotting 2D do teste 2 utilizando um cliente SPDY para transmitir o tráfego de fundo Esquema dos testes 3 e Plotting 2D do teste 3 utilizando outro cliente SPDY para transmitir o tráfego de fundo Plotting 2D do teste 4 utilizando outro cliente SPDY para transmitir o tráfego de fundo Esquema dos testes 5 e Plotting 2D do teste 5 utilizando outro cliente SPDY para transmitir o tráfego de fundo Plotting 2D do teste 6 utilizando outro cliente SPDY para transmitir o tráfego de fundo Vista 1: Plotting 3D do teste 7 utilizando oito filas de prioridade Vista 2: Plotting 3D do teste 7 utilizando oito filas de prioridade Vista 3: Plotting 3D do teste 7 utilizando oito filas de prioridade Vista 1: Plotting 3D do teste 8 utilizando oito filas de prioridade Vista 2: Plotting 3D do teste 8 utilizando oito filas de prioridade Vista 3: Plotting 3D do teste 8 utilizando oito filas de prioridade Vista 1: Plotting 3D do teste 9 utilizando uma fila de prioridade Vista 2: Plotting 3D do teste 9 utilizando uma fila de prioridade Vista 3: Plotting 3D do teste 9 utilizando uma fila de prioridade. 43

13 LISTA DE FIGURAS xii 5.21 Nova dinâmica de desenfileiramento para o teste Vista 1: Plotting 3D do teste 10 utilizando oito filas de prioridade Vista 2: Plotting 3D do teste 10 utilizando oito filas de prioridade Vista 1: Plotting 3D do teste 11 utilizando um quantum para cada fila de prioridade Vista 2: Plotting 3D do teste 11 utilizando um quantum para cada fila de prioridade

14 Lista de Tabelas 5.1 Características do servidor e das máquinas clientes Resultados dos Testes 7, 8 e Resultados dos Testes 10 e xiii

15 Lista de Algoritmos 1 Algoritmo de Gerenciamento de Eventos

16 Capítulo 1 Introdução Em 1991, foi especificada a primeira versão do protocolo HTTP por Tim Berners- Lee e, em 1996, foi padronizado pelo IETF como HTTP 1.0 e documentado no RFC 1945 [1]. Apenas três anos depois, pelo aumento da carga na web, foi padronizado o HTTP 1.1 pelo IETF. O protocolo revisado no RFC 2616 [2] reduziu o número necessário de requisições de conexão para um terminal através da introdução de conexões keep-alive [3] e, através do HTTP pipelining [4] permitiu múltiplos requests em sequência sem a necessidade de esperar por as correspondentes responses. O HTTP não mudou muito desde então, embora o panorama web tenha mudado fundamentalmente. Desde a primeira especificação do protocolo HTTP - RFC 1945, os aplicativos baseados neste protocolo evoluíram superando a limitação da especificação para trabalhar com streaming e conteúdos web interativos. No entanto, muitos dos gargalos das implementações HTTP 1.1 estão relacionadas à gestão de múltiplas conexões simultâneas, configurações de conexão de ida e volta desnecessárias, controle de congestionamento e um racionamento constante causado pelo cliente onde ele tenta evitar a abertura de muitas conexões em um único servidor [5]. Enquanto a comunidade científica vem desenvolvendo novas ideias para melhorar o desempenho de aplicativos web sobre HTTP 1.1, a limitação do domínio de muitos aplicativos de monitoramento de redes IP locais foi estendida para redes de IP público usando HTTP como protocolo preferido para aplicativos personaliza- 2

17 CAPÍTULO 1. INTRODUÇÃO 3 dos. Os aplicativos modernos SCADA 1 e HMI 2 têm acesso em leitura e escritura, parcial ou totalmente, a suas variáveis de processo através de protocolos HTTP, HTTPS, ModBus [6], DNP [7] e outros, usando gateways como OPC XML-DA [8], OPC-UA [9], CyberOPC [10] e muitas outras soluções interessantes. 1.1 Motivação Este trabalho foi motivado pela utilização das novas características de prioridade introduzidas pelo protocolo SPDY [5], que permita melhorar o desempenho de qualquer aplicativo de monitoramento que usa o protocolo HTTP. Esta abordagem tenta resolver o problema através do protocolo e não através de um middleware de aplicativos HTTP, por exemplo, o Reverse AJAX [11]. Assim, os principais resultados esperados são: Uma metodologia otimizada para usar o protocolo SPDY em redes públicas para monitoramento e controle de processos industriais; A contribuição tecnológica na indústria de software para aplicativos de monitoramento através da internet. 1.2 Objetivos O principal objetivo é pesquisar e desenvolver um protótipo de servidor SPDY baseado nas especificações do protocolo, os estudos de padrões de projeto e nas características dos algoritmos de escalonamento aplicadas na teoria de gerenciamento de filas de prioridade do escalonador SPDY. Os algoritmos de gerenciamento de filas adotados no projeto do servidor são justificados pela característica de prioridade do protocolo SPDY. Mais especificamente, os objetivos são: Investigar o protocolo SPDY, os padrões de projeto e algoritmos de escalonamento, para atingir os requerimentos de gerenciamento de prioridades e 1 SCADA ou Supervisory Control and Data Acquisition é um sistema que utiliza software para monitorar e supervisionar as variáveis e dispositivos de sistemas de controle industrial. 2 HMI ou Human machine interface inclui componentes de hardware e software pelo qual os usuários interagem com as máquinas.

18 CAPÍTULO 1. INTRODUÇÃO 4 modelar a integração do gerenciador de fluxo de prioridades SPDY; Desenvolver um servidor de teste e simular cenários de aplicativos de monitoramento no laboratório; Comparar a estratégia de gerenciamento de fluxo sobre redes de IP público e avaliar os resultados. 1.3 Organização deste trabalho O primeiro capítulo é destinado a fornecer o leitor uma visão geral dos assuntos abordados neste trabalho, assim, neste capítulo são apresentadas a introdução, motivação e os objetivos. No capítulo 2 são apresentadas as características de varias tecnologias relacionadas que visam à melhoria de HTTP. Também descrevemos o estado da arte que abrange os protocolos WebSocket e SPDY, considerados os principais candidatos para a próxima e esperada especificação do HTTP 2.0 pelo IETF. Além disso, são abordadas as características principais dos algoritmos de escalonamento. No capítulo 3 são descritas as características principais dos padrões de projeto consideradas para o desenvolvimento do escalonador SPDY. Além disso, é apresentada a metodologia utilizada para avaliação dos resultados. No capítulo 4 são abordadas, detalhadamente, as etapas compreendidas no desenvolvimento de um protótipo de servidor SPDY. No capítulo 5 são apresentados os resultados dos distintos experimentos feitos sobre o protótipo desenvolvido, além de descrever a análise de cada um deles. A avaliação foi feita na simulação de uma situação real de monitoramento considerando três grupos de testes. Finalmente, no capítulo 6 são apresentadas as conclusões desta dissertação.

19 Capítulo 2 Revisão Bibliográfica 2.1 Tecnologias Relacionadas Melhoria do Projeto de Aplicativos HTTP Blocking e Non-Blocking Socket Os termos de Blocking e Non-Blocking I/O fazem referência à maneira pela qual os I/O são processados no sistema operacional (OS), síncrona ou assincronamente respectivamente. O problema da limitação de conexões simultâneas está relacionado também à forma como o servidor foi implementado e como o OS trabalha com os sockets. Querendo iniciar uma conexão com o servidor e utilizando um socket para qualquer tipo de operação, no Blocking I/O, a operação é iniciada com um thread, a qual fica imediatamente em espera até que o pedido esteja completo. No caso de Non- Blocking I/O, existem duas alternativas, ou um polling, onde o servidor tenta fazer a operação cada intervalo de tempo, ou a utilização de uma notificação assíncrona, no qual o servidor gera um evento indicando que uma operação está pronta para ser processada. Devido à complexa interação entre HTTP e o subjacente protocolo da camada de transporte (TCP), quer isto dizer, apesar da adição das técnicas de HTTP keep-alive e pipelining em HTTP/1.1, um atraso de 500 ms no servidor HTTP impede a reutilização do canal TCP para requests adicionais, do modo que, os navegadores atuais evitam este problema abrindo múltiplas conexões simultâneas, em uma média de 6 conexões. O gerenciamento de múltiplas sessões TCP, para suportar essas conexões simultâneas, aumenta a sobrecarga e a latência. SPDY 5

20 CAPÍTULO 2. REVISÃO BIBLIOGRÁFICA 6 [5] proporciona melhorias significativas de latência, mas existem outras soluções propostas para a latência web, principalmente no nível da camada de transporte ou sessão. Stream Control Transmission Protocol (SCTP) É um protocolo da camada de transporte que trabalha como os populares protocolos TCP e UDP e oferece algumas de suas características de serviço. É orientado a mensagem como UDP e garante a confiabilidade e mensagens em sequência com o controle de congestionamento como TCP. Além disso, a motivação principal por detrás do SCTP é fornecer um protocolo mais confiável e robusto do que o TCP e UDP, o qual pode aproveitar recursos como multihoming 1 [12]. O protocolo foi definido pelo grupo de trabalho de transporte de sinalização SIGTRAN do IETF em 2000, e é mantido pelo grupo de trabalho da área de transporte (TSVWG) do IETF. O RFC 4960 define o protocolo e o RFC 3286 fornece uma introdução. Na ausência de suporte nativo para SCTP em sistemas operacionais é possível o túnel SCTP sobre UDP, assim como o mapeamento de chamadas da API de TCP para SCTP. HTTP sobre SCTP É uma proposta para a execução de HTTP sobre SCTP. HTTP requer um transporte confiável para a comunicação fim-a-fim. Semelhante ao TCP, o SCTP oferece uma conexão de transporte fim-a-fim confiável para aplicativos web, além disso, oferece outros serviços inovadores indisponíveis no TCP, incluindo multi-transmissão, multihoming, fiabilidade parcial e transferência de dados orientados a mensagem [13]. Structured Stream Transport (SST) SST é um protocolo de transporte experimental projetado para atender às necessidades de aplicativos modernos que precisam trabalhar com muitas atividades de comunicação assíncrona em paralelo, tal como baixar diferentes partes de uma página web e a reprodução de áudio e múltiplos streams de vídeo de forma simultânea [14]. 1 O multihoming faz referência a um computador ou dispositivo (celular, tablet) conectado a mais de uma rede.

21 CAPÍTULO 2. REVISÃO BIBLIOGRÁFICA 7 MUX e SMUX São protocolos de gerenciamento de sessão que separam o transporte subjacente dos protocolos de aplicação de nível superior. Fornecem um canal de comunicação leve para a camada de aplicação através da multiplexação de fluxos de dados, sobre um transporte orientado de fluxo confiável. Ao suportar a coexistência de múltiplos protocolos de nível de aplicação (por exemplo, HTTP e HTTP-NG), eles irão facilitar as transições para futuros protocolos web e as comunicações de applets cliente utilizando protocolos privados com os servidores sobre a mesma conexão TCP como a conversação HTTP [15] Melhorias da Especificação do Protocolo HTTP Keep-alive Também chamado conexão persistente HTTP, permite ao servidor manter a conexão TCP aberta após do envio das respostas. As sub-sequentes requests/responses entre o mesmo cliente e servidor podem ser enviados através da mesma conexão. Depois de um determinado período de tempo (intervalo de tempo de espera), o servidor HTTP fecha a conexão quando não é utilizada. É uma técnica padrão do HTTP/1.1 e existe em duas versões: com pipelining e sem pipelining [3]. A figura 2.1-(a) mostra o esquema do HTTP Keep-alive com os requests/responses entre o mesmo cliente e servidor através da mesma conexão. HTTP Pipelining É uma técnica que quebra o modelo rigoroso: enviar uma solicitação e esperar pela resposta, especificada em HTTP 1.0 [1], e permite despachar múltiplos requests HTTP em paralelo para o servidor em uma única conexão TCP, sendo utilizado com muito mais eficácia, mas com o tempo transcorrido muito menor, sem esperar pelas respostas correspondentes. Logo que os pedidos são todos enviados, o cliente HTTP (navegador) começa a escutar para responder. O HTTP Pipelining permite menos pacotes TCP para ser enviados através da rede, desde que no mesmo pacote TCP é possível agrupar vários requests HTTP, reduzindo a carga de rede [4]. A figura 2.1-(b) mostra o esquema do HTTP Pipelining com múltiplos requests, em paralelo, sobre a mesma conexão.

22 CAPÍTULO 2. REVISÃO BIBLIOGRÁFICA 8 Cliente Servidor Cliente Servidor Abrir Abrir tempo Fechar Fechar (a) (b) Figura 2.1: Diagrama temporal da modalidade HTTP Keep-alive (a) e Pipelining (b). HTTP Server Push Envolve o envio de pacotes de dados periodicamente desde o servidor HTTP para o cliente HTTP. A conexão HTTP entre o cliente e o servidor é mantida aberta indefinidamente, de modo que se um evento é recebido pelo servidor, este pode ser imediatamente enviado para um ou múltiplos clientes, ou caso contrário, os dados teriam que ser enfileirados até que o próximo request do cliente seja recebido. Este mecanismo pode ser implementado em um programa CGI através do uso de tipo de MIME multipart/x-mixed-replace. Também é conhecido como HTTP streaming e é suportado apenas pelo Netscape Navigator (versão 1.1 ou superior) e Internet Explorer [16] Tecnologias Middleware para Otimização de uso de HTTP Estas tecnologias requerem um software middleware com JavaScript do lado do cliente e do servidor para a transferência de dados. Reverse Ajax Comet [17], conhecido por outros nomes incluindo Reverse Ajax, é um modelo de aplicação web que permite aos servidores web enviar dados para um navegador cliente, sem a necessidade de um request explícito [17]. Neste modelo, um request é enviado para o servidor e mantido ativo por um longo tempo, até um limite de tempo ou a ocorrência de um evento do servidor. Quando

23 CAPÍTULO 2. REVISÃO BIBLIOGRÁFICA 9 o request é completado, outro request Ajax de longa duração é enviado para esperar por outros eventos do servidor. A maior vantagem do Comet é que cada cliente sempre tem um link de comunicação aberto com o servidor, no qual pode enviar os eventos aos clientes para completar imediatamente as respostas quando eles chegarem, ou até mesmo acumular e enviar por rajadas [18]. Bayeux É uma solução de código aberto projetado para proporcionar baixa latência através de HTTP. Ele trabalha transportando as mensagens assíncronas e roteando eventos entre clientes e servidores utilizando um modelo publicar/- subscrever. O objetivo principal de Bayeux é a implementação de interações de usuários que respondem a clientes web usando Ajax e a técnica server-push chamada de Comet. A ideia principal é facilitar a interoperação entre as implementações para resolver a distribuição comum de mensagens e problemas de roteamento, e fornecer mecanismos para melhorias incrementais e de extensões. Entre suas operações globais encontramos os transportes Streaming, que utilizam a técnica de streaming para permitir que múltiplas mensagens sejam enviadas dentro da mesma resposta HTTP, mas que estejam sujeitas à implementação dos agentes de usuário e proxies que requerem respostas HTTP incompletas para ser entregue ao cliente Bayeux [19]. BOSH Ou Bidirectional-streams Over Synchronous HTTP, é uma tecnologia que emula um fluxo bidirecional via HTTP entre cliente e servidor, usando múltiplos requests/responses síncronos de HTTP. BOSH consegue uma largura de banda eficiente, para aplicativos que requerem comunicações push e pull, e baixa latência, sem requerimento de polling ou segmentação assíncrona, como é feito na técnica conhecida como Comet [20].

24 CAPÍTULO 2. REVISÃO BIBLIOGRÁFICA Estado da arte Os requerimentos definidos pelo IETF para o futuro protocolo HTTP incluem um bom desempenho para os navegadores convencionais e móveis e um amplo grau de compatibilidade com versões anteriores. O desenvolvimento das especificações de HTTP 2.0 tem como referência as características de SPDY [21]. WebSocket e SPDY são tecnologias que incluem as características principais das tecnologias descritas na seção 2.1 como o Pipelining, reutilização da conexão aberta TCP, multiplexação de fluxos de dados, o Server Push, etc., e seus drafts de especificações no IETF e W3C são muito ativos em termos de grupo de interesse. Ambos são candidatos para a próxima especificação de HTTP Protocolo WebSocket É uma tecnologia web desenvolvida como parte do padrão entrante HTML5 [22], com suporte para comunicação bidirecional e full-duplex, ao contrário de tecnologias como BOSH ou equivalentes, que requerem apenas uma única conexão de socket para que as mensagens sejam enviadas entre o cliente e o servidor. Servidores proxy e firewall com WebSocket são conscientes que usam o canal HTTP e que podem operar também sobre SSL [23]. O API de WebSocket está sendo padronizado pelo W3C, e o protocolo WebSocket foi padronizado pelo IETF como RFC 6455 [24] Protocolo SPDY SPDY [5] é um novo protocolo da camada de aplicação desenvolvido pela empresa Google Inc. para transportar mensagens HTTP de forma mais rápida. SPDY foi projetado para reduzir a latência e aumentar a segurança. SPDY é considerado um substituto para o HTTP e como protocolo de pacotes (frames) tem suporte para a codificação de dados binários e suporte nativo para TLS (SSL). SPDY adiciona um framing layer ou camada de enquadramento para a multiplexação de fluxos de mensagens HTTP simultâneos, através de uma única conexão TCP.

25 CAPÍTULO 2. REVISÃO BIBLIOGRÁFICA 11 O framing layer é otimizado para fluxos request/response do tipo HTTP, tal que os aplicativos que rodam sobre HTTP atualmente podem trabalhar sobre o SPDY com pouca ou nenhuma alteração dependendo do desenvolvimento dos aplicativos web. A sessão SPDY permite requests simultâneos HTTP para rodar em uma única sessão TCP/IP, e oferece quatro melhorias sobre HTTP: Requests multiplexados. Não existe limite para o número de requests que podem ser emitidos simultaneamente em uma única conexão SPDY. Como os requests são intercalados em um único canal, o protocolo é mais eficiente sobre TCP. Requests priorizados. Os clientes podem solicitar certos recursos para serem entregues primeiro. Isto evita o problema de congestionar o canal de rede com os recursos não críticos, quando um pedido de alta prioridade está pendente. Cabeçalhos comprimidos. Os clientes atualmente enviam uma quantidade significativa de dados redundantes na forma de cabeçalhos HTTP devido ao fato de que uma única página web pode requerer 50 ou 100 subrequests. Comprimir os cabeçalhos economiza uma quantidade significativa de largura de banda além de reduzir a latência em relação ao HTTP, assim SPDY comprime os cabeçalhos dos requests e responses HTTP utilizando zlib [25], um método de compressão baseado em dicionário amplamente utilizado [26]. Server pushed streams. Permite aos clientes receber dados de servidores sem precisar da requisição deles. A especificação técnica de SPDY está dividida em duas partes: Framing Layer e HTTP Layer. O framing layer, no último draft [5] considera seis partes: sessões,

26 CAPÍTULO 2. REVISÃO BIBLIOGRÁFICA 12 que está associado às conexões, framing, fluxos, que entre suas características considera a priorização do request, tratamento de erros, fluxo de dados e tipos de frames de controle. No HTTP Layer, o SPDY tenta preservar a semântica existente de HTTP embora a sintaxe de transmitir essa semântica tenha mudado. Entre essas mudanças considera-se o gerenciamento da conexão, o request/response de HTTP e transações enviadas pelo servidor. A figura 2.2 mostra o diagrama para conexões SPDY, baseado no típico intercâmbio de pacotes TCP [27], onde vários parâmetros de tempo são necessários para caraterizar esse intercâmbio como: O round-trip time ou tempo de ida/volta que tarda um pacote enviado desde um emissor, o segment transmission time, como tempo que leva para enviar o maior número possível de pacotes, o tempo de execução do algoritmo de controle de congestionamento slow-start, e finalmente o tempo de processamento do request no servidor SPDY. Cliente SPDY Servidor SPDY Setup (PING, SETTINGS) round-trip time(rtt) Request inicial (SYN_STREAM) Response (SYN_REPLY, DATA_FRAME) tempo de processamento segment transmission time slow-start... sustained transfer Figura 2.2: Diagrama de conexões SPDY. As setas grossas indicam a transferência de dados, enquanto as setas finas mostram os tipos de frames SPDY: PING, SETTINGS, SYN STREAM, SYN REPLY e DATA FRAME.

27 CAPÍTULO 2. REVISÃO BIBLIOGRÁFICA Algoritmos de Escalonamento Para o gerenciador de requests com prioridade, alguns algoritmos de escalonamento são considerados, alguns bem conhecidos de teorias de sistemas operacionais, tais como: Escalonamento Round-Robin, Escalonamento por Prioridade e Escalonamento em Filas Multinível, e também algumas propostas tais como: Weighted Fair Queuing e Weighted Round-Robin Escalonamento Round-Robin Um dos mais antigos, simples, justos algoritmos amplamente utilizado é o escalonamento round-robin (ERR). A cada frame SPDY (FS) é atribuído um intervalo de tempo, chamado quantum, o qual é permitido para executar. Se o FS atual ainda está em execução no final do quantum, no escalonador SPDY (ES) ocorre uma preempção e cede o lugar a outro FS. Se o FS foi bloqueado ou terminado antes que tenha decorrido o quantum, um novo FS é escolhido na fila pelo escalonador. O round-robin é fácil de implementar. O escalonador tem uma fila de frames, como é mostrado na figura 2.3-a. Quando o frame FS não termina após um quantum, ele é colocado no final da fila, como é mostrado na figura 2.3-b. Atual Frame Próximo Frame Atual Frame FS 1 FS 2 FS 3 FS 4 FS 2 FS 3 FS 4 FS 1 (a) (b) Figura 2.3: Escalonamento Round-Robin. (a) Fila de frames. (b) Fila de frames quando F S 1 não termina após de um quantum.

28 CAPÍTULO 2. REVISÃO BIBLIOGRÁFICA 14 O único problema interessante com o escalonamento round-robin é a duração do quantum. Definir um quantum com pouco tempo provocaria muitas comutações dos frames e uma baixa na eficiência do escalonador, mas defini-lo com muito tempo pode causar uma má resposta aos requests interativos curtos [28]. Fair Queuing No fair queuing (FQ), os frames FS são enviados e armazenados em filas. O algoritmo de escalonamento round-robin é usado para servir todas as filas de uma forma justa. A principal vantagem do FQ é que os fluxos em rajadas não afetam o desempenho global [29] Escalonamento por Prioridade O escalonamento round-robin faz a suposição implícita que todos os frames FS são igualmente importantes. A necessidade de levar em conta fatores externos, leva ao escalonamento por prioridade (EP). A ideia básica é simples: A cada frame FS é atribuída uma prioridade e o FS com a maior prioridade tem permissão de execução. A fim de prevenir a execução indefinida dos frames FS com maior prioridade, o escalonador ES pode diminuir a prioridade dos FS atualmente em execução em cada ciclo de relógio (isto é, a cada interrupção do relógio). Se essa ação atribui uma prioridade menor para deixar sem execução ao próximo FS com maior prioridade, então um troco de FS ocorre. Alternativamente, a cada FS pode ser atribuído um tempo máximo de quantum que é permitido para executar. Quando este quantum se esgota, é dada a oportunidade de execução ao próximo FS com prioridade mais alta. É frequentemente conveniente agrupar os frames FS em classes de prioridade e usar o escalonamento por prioridade entre as classes, mas com o escalonamento round-robin dentro de cada classe. A figura 2.4 mostra um sistema com quatro classes de prioridade. O algoritmo de escalonamento é da seguinte maneira: enquanto existam frames FS executáveis na classe de prioridade 1, basta executar

29 CAPÍTULO 2. REVISÃO BIBLIOGRÁFICA 15 cada um por um quantum round-robin por turnos, sem preocupar-se pelas classes de menor prioridade, se a classe de prioridade 1 está vazia então executamos os frames FS da classe round-robin 2. Se as classes 1 e 2 são ambas vazias, em seguida, executamos a classe round-robin 3, e assim por diante. Se as prioridades não são ajustadas ocasionalmente, todas as classes de menor prioridade podem morrer por inanição [28]. Prioridade máxima FS 1 FS 2 FS 3 FS 3 FS 5 FS 4 FS 8 FS 4 FS 5 FS 6 Despachador FS 1 Escalonador FS 2 FS 6 FS 7 FS 8 FS 9 FS 7 FS 9 Prioridade mínima Figura 2.4: Um algoritmo de escalonamento com quatro classes de prioridade Escalonamento em Filas Multinível O algoritmo de escalonamento em filas multinível, divide a fila pronta em várias filas separadas, como na figura 2.5. Os frames FS são permanentemente atribuídos a uma fila, geralmente baseados em alguma propriedade do FS, seja pela prioridade ou pelo tipo de frame. Cada fila tem seu próprio algoritmo de escalonamento. Por exemplo, de duas filas separadas com frames FS, a primeira fila pode ser escalonada por um algoritmo de escalonamento ERR, enquanto a segunda fila pode ser escalonada por um algoritmo de escalonamento EP. Cada fila tem prioridade absoluta sobre as filas de prioridade inferior, também pode ser atribuído um intervalo de tempo entre as filas. Assim, cada fila recebe certa porção de tempo, o qual pode então, escalonar entre seus múltiplos frames FS [30].

30 CAPÍTULO 2. REVISÃO BIBLIOGRÁFICA 16 Prioridade Alta Tempo Real FS 9 FS 7 FS 3 FS 1 preemptado Sistema FS FS FS FS FS 0 preemptado Interativo FS FS FS FS preemptado Lote FS FS FS FS Prioridade baixa preemptado Figura 2.5: Escalonamento em Filas Multinível Weighted Fair Queuing O weighted fair queuing (WFQ), é uma técnica de escalonamento de frame de dados, que permite diferentes prioridades de escalonamento para os fluxos de dados multiplexados estatisticamente. A ideia deste algoritmo pode ser facilmente explicada como uma combinação dos algoritmos de escalonamento por prioridade e fair queuing. Tal como no método FQ, todas as filas são servidas de maneira que não existe qualquer inanição de largura de banda, mas algumas filas têm mais peso no sentido que elas recebem mais serviço. Em outras palavras, o peso é dado a cada fila para atribuir diferentes prioridades às filas. Os frames são armazenados na fila apropriada de acordo com sua classificação. A figura 2.6 mostra um exemplo do algoritmo WFQ. Os tempos finais são atribuídos somente para um uso qualitativo. Atribuindo um peso alto para uma fila, ele deve permitir ao escalonador tomar mais de um frame FS dessa fila que das as outras [29].

31 CAPÍTULO 2. REVISÃO BIBLIOGRÁFICA 17 Fila 1 (50%) FS 1 FS 2 FS 3 Ordem da transmissão de frames Fila 2 (25%) FS 4 FS 5 FS 6 Escalonador FS 9 FS 7 FS 8 FS 5 FS 6 FS 4 FS 2 FS 3 FS 1 Fila 3 (25%) FS 7 FS 8 FS 9 Figura 2.6: Weighted Fair Queuing Weighted Round-Robin O Weighted Round-Robin (WRR) é um algoritmo de escalonamento onde o buffer é dividido em k filas que representam os fluxos ativos, o algoritmo percorre cada fila e um fator de ponderação determina quantos bytes de dados do sistema entrega de cada fila antes de passar para a próxima fila. Um peso é associado a cada fila proporcionalmente à taxa de bits requerida da fila e, a maneira como as filas são servidas é através de uma disciplina Round-Robin de acordo com o peso: cada fila é servido proporcionalmente a seu próprio peso [31]. Filas Alta FS 1 FS 2 FS 3 FS 2 FS 5 P=4 FS 4 FS 6 FS 1 FS 5 FS 6 Despachador FS 9 FS 8 FS 4 P=3 P=2 Escalonador FS 7 FS 8 FS 9 FS 7 FS 3 P=1 Baixa Figura 2.7: Weighted Round-Robin. A figura 2.7 mostra um exemplo do algoritmo WRR. O escalonamento WRR previne que as filas de menor prioridade sejam ignoradas completamente durante os períodos de tráfego de alta prioridade. Ao utilizar este escalonamento, as filas de baixa prioridade têm a oportunidade de transmitir frames FS, embora as filas de alta prioridade não estejam vazias.

32 Capítulo 3 Metodologia Fluxos e Prioridades em SPDY Apesar de que as características atuais do protocolo HTTP restringem seu ótimo desempenho como o envio de um único request por conexão, cabeçalhos HTTP redundantes, etc., SPDY retém a compatibilidade e mantém a estrutura básica de HTTP, tal como a semântica dos requests e response, ao contrário de WebSocket que requer uma reprogramação no processo de encapsulamento de HTTP [24]. Além disso, oferece a multiplexação de fluxos, que proporciona benefícios adicionais como priorizar os requests, garantindo que os mais importantes tenham prioridade sobre os menos importantes. Em SPDY, o iniciador de um fluxo, atribui uma prioridade ao request que é representado por um número inteiro de 0 a 7, sendo 0 a maior prioridade e 7 a menor prioridade [5]. 3.1 Padrões de projeto para transmissão de dados de tipo síncrono e assíncrono Para a implementação do escalonamento de fluxo e a concorrência em um servidor SPDY, serão considerados padrões de projeto de arquitetura de software para o gerenciamento de eventos em sistemas de rede que usam mecanismos síncronos e assíncronos, entre os quais temos os padrões Reactor e Proactor. Comparado aos mecanismos síncronos, os mecanismos assíncronos são atrativos porque oferecem o benefício da concorrência enquanto aliviam muito a sobrecarga e a complexidade do multi-threading [32]. 18

33 CAPÍTULO 3. METODOLOGIA 19 Padrão de projeto Reactor O Reactor é um padrão que simplifica o trabalho aos aplicativos orientados a eventos através da integração da demultiplexação síncrona de eventos e o despacho de seus gerenciadores de eventos correspondentes. O padrão Reactor está constituído pelos seguintes participantes: Handles, que identificam os recursos que são gerenciados por um sistema operacional; O demultiplexador síncrono de eventos, que bloqueia os recursos esperando pela ocorrência de eventos em um conjunto de Handles; A iniciação do despachador, que define uma interface para o registro, remoção e envio dos gerenciadores de eventos; Os gerenciadores de eventos, que especificam uma interface usada pela iniciação do despachador chamando de volta aos métodos hook 1 pré-registrados para processar certos tipos de eventos e finalmente o gerenciador de eventos concretos, que implementa os métodos hook que processam eventos em uma forma específica da aplicação [33]. A figura 3.1 mostra um diagrama de interação para o padrão Reactor. Programa principal Callback: Gerenciador de eventos concretos :Reactor :Handles Initializa Reactor() Registrar o gerenciador Obter o gerenciador Executar no mesmo laço Esperar por eventos Despachar gerenciador(es) registrar_gerenciador(callback) obter_gerenciador() gerenciar_eventos() gerenciar_evento(tipo_evento) select() Figura 3.1: Diagrama de interação para o padrão Reactor. 1 Os Métodos hook são definidos em interfaces ou classes abstratas e devem necessariamente ser implementados por uma aplicação.

34 CAPÍTULO 3. METODOLOGIA 20 Padrão de projeto Proactor O Proactor é um padrão usado para descrever como iniciar, receber, demultiplexar, despachar e processar eventos. Seu principal objetivo é melhorar o desempenho de um aplicativo orientado a eventos que recebe e processa múltiplos eventos de forma assíncrona. O padrão Proactor é desenvolvido da seguinte forma: quando um evento chega, a entidade do aplicativo, referido a um iniciador, começa uma operação assíncrona apropriada, em seguida, o Proactor registra o evento com um gerenciador e despachador de eventos associados ao processador de operações assíncronas, logo após, o iniciador invoca a operação assíncrona registrada no processador de operações assíncronas. Uma operação assíncrona é executada sem bloquear o thread de controle do gerenciamento de eventos, assim, ele pode realizar outras operações. Uma vez que a operação é concluída, o processador de operações assíncronas recupera informações do gerenciador e despachador de eventos correspondentes, e gera um evento de conclusão contendo os resultados da operação assíncrona, logo após, demultiplexa e despacha o evento para o gerenciador de eventos associado à operação assíncrona. Posteriormente, o gerenciador de eventos processa os resultados da operação assíncrona e chama novamente a aplicação [32]. O padrão Proactor oferece os seguintes benefícios: maior portabilidade da lógica da aplicação, encapsulamento do mecanismo de concorrência pelo despachador de conclusão, uma política de threading desacoplada da política de concorrência, maior separação de interesses, e maior desempenho e simplificação da sincronização de aplicativos. No entanto, ele também tem os seguintes inconvenientes: o escalonamento e controle de operações pendentes e a dificuldade de depuração [34]. A figura 3.2 mostra um diagrama de interação para o padrão Proactor.

35 CAPÍTULO 3. METODOLOGIA 21 Iniciador do Proactor Processador da Operação Assíncrona Operação Assíncrona Despachador de conclusão Gerenciador de conclusão Operação assíncrona iniciada Operação realizada assincronamente Operação concluída Gerenciador de conclusão notificado registrar(operação, gerenciador, despachador) executar() despachar() gerenciar_evento() Figura 3.2: Diagrama de interação para o padrão Proactor. Em resumo, tanto o Reactor quanto o Proactor são padrões de projeto focados nos aplicativos orientados a eventos e que compartilham principalmente as funções de registro, demultiplexação e gerenciamento de múltiplos eventos. I 6 I 5 I 4 I 3 I 2 I 1 Fila (a) I 3 I 2 I 1 I 4 I 3 I 2 I 2 I 2 I 1 I 1 I 1 I 1 I 1 I 1 I 1 Fila 0 Fila 1 Fila 2 Fila 3 Fila 4 Fila 5 Fila 6 Fila 7 (b) I 3 I 2 Figura 3.3: Registro de Eventos (a) Reactor. (b) Proactor. A figura 3.3 mostra o registro de eventos em ambos padrões, é utilizada uma fila como estrutura de dados de armazenamento dos eventos para a implementação do mecanismo síncrono do padrão Reactor. A diferença do Proactor é que utiliza oito filas chamadas filas de prioridade para implementar o mecanismo assíncrono. Além disso, tanto o Reactor quanto o Proactor também compartilham a mesma estrutura do algoritmo 1 de gerenciamento de eventos, mas a diferença deles está na função de demultiplexação dos eventos onde, no Reactor é realizado através do desenfileiramento do evento pronto na única fila utilizada enquanto no Proactor é realizado por meio de uma dinâmica de desenfileiramento que será descrita no capítulo 4, ambos gerenciam o evento obtido com a mesma lógica para responder à requisição envolvida no evento.como se pode deduzir, o Proactor é

36 CAPÍTULO 3. METODOLOGIA 22 Algorithm 1 Algoritmo de Gerenciamento de Eventos 1: procedure Handle Events 2: loop 3: while queue.size > 0 do 4: queueitem = Dequeue() Demultiplexing Events 5: response = HandleEvent(queueItem) 6: Send response 7: end while 8: end loop 9: end procedure uma versão do Reactor que, mesmo assim que conceitualmente sejam distintos, adiciona oito filas de prioridade para melhorar o gerenciamento dos eventos. 3.2 Metodologia para a avaliação dos resultados A avaliação se baseou na comparação do desempenho entre as diferentes estratégias de gestão de fluxo SPDY, testadas durante a execução do escalonador. Assim, tendo em conta os parâmetros de tempo do diagrama de SPDY na figura 2.2, vamos considerar como parte da avaliação o tempo de processamento nas filas de prioridade do escalonador baseado nos algoritmos de padrões de projeto Reactor e Proactor do servidor SPDY. Os modelos de tráfego adotados para os testes da rede, estarão baseados no tráfego gerado por um grupo de outstations ou estações exteriores DNP3 [7], enviando dados de potência de uma planta de produção de energia, mas adicionando diferentes prioridades para cada estação DNP3 e incorporando sua atualização de dados no fluxo SDPY. Cliente SPDY Internet Servidor SPDY Rede Figura 3.4: Esquema do projeto. A técnica básica para o esquema do poll de atualização, utilizado no DNP3,

37 CAPÍTULO 3. METODOLOGIA 23 permite que o servidor interaja com o cliente retornando imediatamente uma resposta aos requests periódicos de atualização, ou seja, quando ocorrem as alterações dos dados, enquanto que o cliente mantenha a subscrição. Esta abordagem é descrita na especificação, mas não é comum em aplicativos reais devido ao fato de que não otimiza o procedimento de notificação de alteração de dados para o cliente. A figura 3.5 mostra a abordagem básica do poll de atualização. Request de Atualização Cliente SPDY Servidor SPDY Response do Servidor Cliente SPDY Servidor SPDY Figura 3.5: Abordagem básica do poll de atualização.

38 Capítulo 4 Desenvolvimento de um protótipo de servidor SDPY O desenvolvimento do protótipo de servidor SPDY abrangeu os dois primeiros objetivos específicos indicados na seção 1.2. O projeto foi desenvolvido na linguagem de programação Python e com o uso de bibliotecas externas que dão suporte ao protocolo SSL, utilizando OpenSSL que adiciona a extensão Next Protocol Negotiation (NPN) [35] para negociar o uso de SPDY sobre uma conexão segura, e também para sockets assíncronos, adaptando a biblioteca asyncore 1 para complementar ao correto funcionamento do escalonador SDPY. A pesquisa da especificação do protocolo SPDY e, o estudo dos dois padrões de projeto e dos cinco algoritmos de escalonamento selecionados, descritos no capítulo 3, permitiram atingir o primeiro objetivo específico indicado na seção 1.2. Para o desenvolvimento do protótipo de servidor SPDY, a estrutura do request/response SPDY está baseada na especificação do draft SPDY [5] versão três, versão atual suportada por navegadores e servidores que utilizam esta tecnologia, e a estrutura do escalonador, nesta primeira versão do protótipo, está baseada no padrão de projeto Proactor. A figura 4.1 mostra uma visão geral das etapas desenvolvidas na primeira versão do servidor SPDY. 1 A biblioteca asyncore fornece uma infraestrutura básica para desenvolver o gerenciamento de sockets assíncronos, 24

39 CAPÍTULO 4. DESENVOLVIMENTO DE UM PROTÓTIPO DE SERVIDOR SDPY25 Servidor SPDY << loop >> Escalonador - Proactor Criar o Proactor como base para o escalonador de SPDY Envolver o frame SPDY e a prioridade em um evento Enfileirar o evento acordo à prioridade atribuida Despachar o novo frame SPDY obtido de gerenciar o evento desenfileirado << request SPDY>> << response SPDY>> Cliente SPDY Figura 4.1: Visão geral das etapas desenvolvidas no projeto. Funcionamento do escalonador SPDY A execução do servidor SPDY contempla inicialmente a criação da instância do Proactor. Criada a instância, dois métodos serão executados: O registro do gerenciador de eventos, que é preciso para a análise e processamento dos requests HTTP envolvidos nos frames SPDY, e o início do thread de gerenciamento de eventos, que fica esperando pelo menos um elemento disponível nas filas de prioridade para ser processado pelo gerenciador de eventos. O processo no escalonador SPDY, baseado em Proactor, compreende três etapas para atingir o gerenciamento de requests SPDY: O envolvimento do frame SPDY recebido e sua prioridade atribuída em um evento, respeitando a concepção do Proactor descrita na subseção 3.1; o enfileiramento do evento e por último, o despacho do frame SPDY resultante do gerenciamento do evento desenfileirado. Enfileiramento do evento O enfileiramento do evento está baseado na prioridade atribuída ao frame SPDY, como item de uma das oito filas de prioridade criadas segundo a especificação de SPDY [5]. A figura 4.2 mostra o diagrama de interação para o enfileiramento de eventos no escalonador SPDY.

40 CAPÍTULO 4. DESENVOLVIMENTO DE UM PROTÓTIPO DE SERVIDOR SDPY26 : Servidor SPDY : Proactor : QueueItem :PriorityQueue :Queue Enfileiramento iniciado Estabelecer parâmetros nos items da fila Procurar a fila baseado na prioridade Enfileirar o evento Enqueue(handleID, event, priority) sethandle(handleid) setevent(event) Enqueue(queueItem, priority) FindPriorityQueue(priority) Enqueue(queueItem) Figura 4.2: Diagrama de interação para o enfileiramento de eventos. Despacho do frame SPDY O processo de despacho de um novo frame SPDY, inicia com o desenfileiramento do evento pronto para gerenciar. A figura 4.3 mostra a dinâmica de desenfileiramento utilizada nas oito filas de prioridade do escalonador SDPY, onde para desenfileirar um evento é necessário cumprir com a sequência de prioridade desde a fila de prioridade mais alta até a mais baixa. Portanto, começa a desenfileirar o evento pronto a partir da fila de mais alta prioridade. Se essa fila estiver vazia, continua-se com a próxima fila de menor prioridade e assim por diante. Alta prioridade << loop >> Baixa prioridade I 3 I 2 I 4 I 3 I 2 I 2 I 2 I 1 I 1 I 1 I 1 I 1 I 1 I 1 Fila 0 Fila 1 Fila 2 Fila 3 Fila 4 Fila 5 Fila 6 Fila 7 I 3 I 2 Figura 4.3: Dinâmica do desenfileiramento de eventos. Com o evento desenfileirado, procedemos a tratar seu pedido com a análise do frame SPDY envolvido. Essa análise compreende principalmente conhecer qual é o tipo de frame SPDY para poder atender o requerimento. Assim, de

41 CAPÍTULO 4. DESENVOLVIMENTO DE UM PROTÓTIPO DE SERVIDOR SDPY27 acordo à especificação do protocolo SPDY, geramos um novo frame SPDY com a informação solicitada. A figura 4.4 mostra o diagrama de interação para o despacho de eventos no escalonador SPDY. :Proactor :PriorityQueue :Queue : QueueItem :HTTP Handler Desenfileiramento iniciado Dequeue() FindQueueItem() Procurar o item pronto e desenfileirar da fila Dequeue() queueitem Obter os parâmetros do item queueitem GetEvent() event GetHandle() Gerenciar o evento a despachar handleid HandleEvent(event) Figura 4.4: Diagrama de interação para o despacho de eventos. Gerenciamento assíncrono de sockets O asyncore é uma biblioteca que trabalha com sockets gerenciados de forma assíncrona, seu desenho é baseado em eventos e é utilizada para desenvolver servidores de rede com requests concorrentes. Estas caraterísticas ajudam muito ao desenvolvimento do escalonador SPDY, mas essa biblioteca não tem suporte para sockets envolvidos em SSL, e além disso, cada socket entrante é tratado na ordem de chegada e fechado imediatamente, não podendo se adequar a um esquema de gerenciamento com prioridade. Devido a esses inconvenientes na biblioteca, foi adicionado um patch de suporte para sockets envolvidos em SSL e foram implementados métodos para o gerenciamento de erros e fechamento dos sockets.

42 Capítulo 5 Resultados A fim de abranger a avaliação do tempo de processamento nas filas de prioridade do escalonador SPDY, foi definido um ambiente de teste usando quatro máquinas clientes e um servidor para transmitir requests com diferentes prioridades entre 0 e 7. O servidor e as máquinas clientes possuem as seguintes características: Processador RAM Sistema Operacional Servidor Intel Core i5 3333M, 4 Núcleos de 3.2 GHz 4 GB Ubuntu 12.04, 32 bits Máquina 1 Intel Core i5 2430M, 4 Núcleos de 2.4 GHz 4 GB Ubuntu 12.04, 64 bits Máquina 2 Intel Core i5 3333M, 4 Núcleos de 3.2 GHz 4 GB Ubuntu 12.04, 32 bits Máquina 3 Intel Core i5 3333M, 4 Núcleos de 3.2 GHz 4 GB Ubuntu 12.04, 64 bits Máquina 4 Intel Core i5 3333M, 4 Núcleos de 3.2 GHz 4 GB Ubuntu 12.04, 64 bits Tabela 5.1: Características do servidor e das máquinas clientes. Para determinar as faixas de prioridades e os tempos de envio dos requests transmitidos por cada cliente para o servidor SDPY, foram utilizados quatro arquivos de teste configurados com a seguinte estrutura: o valor da prioridade e tempo de inter-arrival em milissegundos. Arquivos de Teste Três dos quatro arquivos de teste contêm tempos de interarrival de três dispositivos DNP3 industriais reais chamados de A, F e J, os quais enviam dados de uma planta de energia para uma central de controle SCADA, estes tempos de inter-arrival foram obtidos a partir de medições ao longo de uma semana de funcionamento da planta, além disso, a cada tempo de inter-arrival foi atribuído um valor de prioridade selecionado aleatoriamente das maiores prioridades que estão entre 0 e 2. Os dados destes arquivos têm o objetivo de simular uma 28

43 CAPÍTULO 5. RESULTADOS 29 situação real de monitoramento enviando requests simultâneos por cada cliente. Os tempos de inter-arrival do quarto arquivo ou arquivo de tráfego de fundo, foram criados utilizando uma função de distribuição normal 1 com média de segundos e desvio padrão de 1.0 em um intervalo de tempo total de 90 horas. Além desta grande quantidade de dados de tempo de inter-arrival foi atribuído aleatoriamente a cada tempo um valor de prioridade menor do que os arquivos A, F e J que está entre 3 e 7. Os dados deste último arquivo têm o objetivo de manter cheias as filas de prioridade gerando um efeito de stress no servidor SPDY. A figura 5.1 mostra a estrutura e alguns dados dos arquivos de teste. A F J Tráfego de Fundo Figura 5.1: Estrutura dos arquivos de Teste A, F, J e Tráfego de Fundo com o valor da prioridade na primeira coluna e o tempo de inter-arrival na segunda. Descrição do Teste Após da execução do servidor SPDY, cada cliente envia o primeiro request e o servidor retorna uma response SPDY contendo texto com sintaxe HTML e JavaScript aos clientes a fim de que possam anexar o arquivo de teste a seguir. Assim cada cliente vai continuar um tráfego principal com prioridades entre 0 e 2 ou um tráfego de fundo com prioridades entre 3 e 7 por request. O código 5.1 mostra a função que é utilizada para gerar o conteúdo da response SPDY, esta função contêm três parâmetros e se o primeiro parâmetro, que é boolean, é verdadeiro, então lê o conteúdo de um arquivo com sintaxe HTML e JavaScript de geração do formulário que permite anexar arquivos. 1 A função normrnd de Matlab gera números aleatórios a partir de uma função de distribuição normal,

44 CAPÍTULO 5. RESULTADOS 30 def g e t r e s p p r o c t i m e h t m l (self, f i l e t e s t, t e s t a t t, prev time ) : try : resp = if not f i l e t e s t : resp = <form id =\ myform \ method=post> \ <t a b l e border =\ 0\ > \ <tr><th>timer:</th> <td><input type =\ t e x t \ \ id =\ timer \ value= +t e s t a t t [0]+ ></td></tr> \ <tr><th>previous Time:</th> <td><input type= \ \ t e x t \ id =\ prev time \ value= +prev time+ > \ </td></tr> \ <input type =\ hidden \ id =\ curtime \ value= + \ t e s t a t t [0]+ > \ <input type =\ hidden \ id =\ nrow \ value= + \ t e s t a t t [1]+ > \ <input type =\ hidden \ id =\ p r i o r i t y \ value= + \ t e s t a t t [2]+ > \ </table > \ </form> else : f = open( www/ p r o c t i m e a j a x. html, rb ) resp = f. read ( ). decode ( UTF 8 ) f. c l o s e ( ) return resp. encode ( utf 8 ) except IOError as e : raise Exception ( h t t p h a n d l e r g e t r e s p p r o c t i m e h t m l : \ I /O e r r o r ({0}) : {1}.format( e. errno, e. s t r e r r o r ) ) except Exception as e r r : raise Exception ( h t t p h a n d l e r g e t r e s p p r o c t i m e h t m l :, \ e r r ) Código 5.1: Geração do conteúdo da response SPDY. As linhas dos arquivos de teste enviados pelos clientes no próximo grupo de requests são armazenados em uma estrutura de dados do servidor a fim de que possa gerenciar os novos requests até o final do teste. A response SPDY para cada request contem texto com sintaxe HTML que inclui três parâmetros preenchidos com o tempo que tem que esperar o cliente SPDY para enviar o próximo request, a prioridade que vai ter esse request e o índice do próximo elemento da estrutura de dados que o servidor tem que obter para atender o

45 CAPÍTULO 5. RESULTADOS 31 request enviado. Assim, no código 5.1, se o primeiro parâmetro é falso, então geramos a sintaxe HTML de um formulário com campos que são preenchidos com os valores dos outros parâmetros da função. A figura 5.2 mostra a representação dos últimos procedimentos anteriormente descritos. Cliente Cliente Cliente Máquina 4 Máquina 1 A F Máquina Máquina 3 Cliente Tráfego de Fundo J Cliente Máquina 2 Prioridade, Índice Tempo, Prioridade, Índice Servidor SPDY Estrutura de dados Servidor SPDY (a) (b) Figura 5.2: (a) Armazenamento na estrutura de dados. (b) Gerenciamento dos novos requests. A medição do tempo total de processamento 2 nas filas de prioridade do escalonador SPDY abrange as funções principais de desenfileiramento e gerenciamento dos requests. Com a obtenção dos dados de tempo, número de IP do cliente, prioridade e número de request no escalonador SPDY foram realizados dois experimentos preliminares, o registro em um arquivo de resultados dos tempos de processamento nas filas de prioridade e a geração de um gráfico 3 de Tempo de inter-arrival vs. Número de Requests. 2 A biblioteca cprofile de Python mede o tempo total de execução de uma porção de código, 3 A biblioteca matplotlib de Python realiza o plotting 2D e 3D de dados, matplotlib.org/.

46 CAPÍTULO 5. RESULTADOS Testes I: Análise do comportamento dos tempos de processamento nas oito filas de prioridade Para atingir a análise do comportamento dos tempos de processamento nas filas de prioridade, foram realizados distintos experimentos gerando gráficos de Tempo de processamento vs. Número de Requests. As figuras abaixo mostram os resultados dos testes que foram executados no servidor SDPY em um tempo total médio de 20 minutos. Testes 1 e 2 Os testes 1 e 2 foram executados utilizando um dos clientes SPDY para transmitir o tráfego de fundo e os outros clientes o tráfego principal dos arquivos A, F e J. O esquema de realização destes testes está representado na figura 5.3. Cliente Cliente Máquina 4 Máquina 1 A F Cliente Cliente Máquina 3 Tráfego de Fundo J Máquina 2 Servidor SPDY Figura 5.3: Esquema dos testes 1 e 2. A figura 5.4 mostra que o Teste 1 realizado em um tempo total de 20 minutos alcança um número de requests de 517 e um tempo de processamento máximo de ms. A figura 5.5 mostra que o Teste 2 realizado em um tempo total de 20 minutos alcança um número de requests de 508 e um tempo de processamento máximo de ms.

47 CAPÍTULO 5. RESULTADOS 33 Figura 5.4: Plotting 2D do teste 1 utilizando um cliente SPDY para transmitir o tráfego de fundo. Figura 5.5: Plotting 2D do teste 2 utilizando um cliente SPDY para transmitir o tráfego de fundo. Testes 3 e 4 Os testes 3 e 4 foram executados utilizando um cliente SPDY, distinto ao usado nos testes 1 e 2, para transmitir o tráfego de fundo e os outros clientes o tráfego principal dos arquivos A, F e J. O esquema de realização destes testes está representado na figura 5.6.

48 CAPÍTULO 5. RESULTADOS 34 Cliente Cliente Máquina 4 Tráfego de Fundo A Máquina 1 Cliente Cliente Máquina 3 J F Máquina 2 Servidor SPDY Figura 5.6: Esquema dos testes 3 e 4. Figura 5.7: Plotting 2D do teste 3 utilizando outro cliente SPDY para transmitir o tráfego de fundo. A figura 5.7 mostra que o Teste 3 realizado em um tempo total de 20 minutos alcança um número de requests de 457 e um tempo de processamento máximo de ms. A figura 5.8 mostra que o Teste 4 realizado em um tempo total de 35 minutos com 46 segundos alcança um número de requests de 774 e um tempo de processamento máximo de ms. Testes 5 e 6 Os testes 5 e 6 foram executados utilizando um cliente SPDY, distinto ao usado nos anteriores testes, para transmitir o tráfego de fundo e os outros clientes o tráfego principal dos arquivos A, F e J. O esquema de realização

49 CAPÍTULO 5. RESULTADOS 35 Figura 5.8: Plotting 2D do teste 4 utilizando outro cliente SPDY para transmitir o tráfego de fundo. destes testes está representado na figura 5.9. Cliente Cliente Máquina 4 J Tráfego de Fundo Máquina 1 Cliente Cliente Máquina 3 F A Máquina 2 Servidor SPDY Figura 5.9: Esquema dos testes 5 e 6. A figura 5.10 mostra que o Teste 5 realizado em um tempo total de 20 minutos e 13 segundos alcança um número de requests de 461 e um tempo de processamento máximo de ms.

50 CAPÍTULO 5. RESULTADOS 36 Figura 5.10: Plotting 2D do teste 5 utilizando outro cliente SPDY para transmitir o tráfego de fundo. Figura 5.11: Plotting 2D do teste 6 utilizando outro cliente SPDY para transmitir o tráfego de fundo. A figura 5.11 mostra que o Teste 6 realizado em um tempo total de 20 minutos alcança um número de requests de 436 e um tempo de processamento máximo de 0.04 ms.

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

Introdução ao protocolo SIP*

Introdução ao protocolo SIP* Introdução ao protocolo SIP* 1. SIP (Session Initiation Protocol) Pode se dizer que SIP trata se de um protocolo de controle referente à camada de aplicações do Modelo de Referência OSI (Open System Interconnection),

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

Arquitetura e Protocolos de Rede TCP/IP. Modelo Arquitetural

Arquitetura e Protocolos de Rede TCP/IP. Modelo Arquitetural Arquitetura e Protocolos de Rede TCP/IP Modelo Arquitetural Motivação Realidade Atual Ampla adoção das diversas tecnologias de redes de computadores Evolução das tecnologias de comunicação Redução dos

Leia mais

Padrões de Projeto Implementados em Infraestrturas de Componentes

Padrões de Projeto Implementados em Infraestrturas de Componentes Padrões de Projeto Implementados em Infraestrturas de Componentes Paulo Pires paulopires@nce.ufrj.br http//genesis.nce.ufrj.br/dataware/hp/pires 1 distribuídas baseadas em componentes Comunicação transparente,

Leia mais

Arquitetura e Protocolos de Rede TCP/IP. Modelo Arquitetural

Arquitetura e Protocolos de Rede TCP/IP. Modelo Arquitetural Arquitetura e Protocolos de Rede TCP/IP Modelo Arquitetural Agenda Motivação Objetivos Histórico Família de protocolos TCP/IP Modelo de Interconexão Arquitetura em camadas Arquitetura TCP/IP Encapsulamento

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

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

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

Universidade Tuiuti do Paraná Faculdade de Ciências Exatas. Tecnologia de Análise e Desenvolvimento de Sistemas. TCP/IP x ISO/OSI

Universidade Tuiuti do Paraná Faculdade de Ciências Exatas. Tecnologia de Análise e Desenvolvimento de Sistemas. TCP/IP x ISO/OSI Universidade Tuiuti do Paraná Faculdade de Ciências Exatas Tecnologia de Análise e Desenvolvimento de Sistemas TCP/IP x ISO/OSI A Internet não segue o modelo OSI. É anterior a ele. Redes de Computadores

Leia mais

História e Evolução da Web. Aécio Costa

História e Evolução da Web. Aécio Costa Aécio Costa A História da Web O que estamos estudando? Período em anos que a tecnologia demorou para atingir 50 milhões de usuários 3 As dez tecnologias mais promissoras 4 A evolução da Web Web 1.0- Passado

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

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 Dados. Aula 1. Introdução. Eytan Mediano

Redes de Dados. Aula 1. Introdução. Eytan Mediano Redes de Dados Aula 1 Introdução Eytan Mediano 1 6.263: Redes de Dados Aspectos fundamentais do projeto de redes e análise: Arquitetura Camadas Projeto da Topologia Protocolos Pt - a Pt (Pt= Ponto) Acesso

Leia mais

Redes Mul)mídia. Tópicos. Streaming de Áudio e Vídeo. Aplicações de Rede Mul:mídia Introdução Classes de Aplicações Mul:mídia

Redes Mul)mídia. Tópicos. Streaming de Áudio e Vídeo. Aplicações de Rede Mul:mídia Introdução Classes de Aplicações Mul:mídia Redes Mul)mídia Streaming de Áudio e Vídeo Mário Meireles Teixeira Departamento de Informá:ca UFMA 2012 Tópicos Aplicações de Rede Mul:mídia Introdução Classes de Aplicações Mul:mídia Áudio e Vídeo de

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

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

Redes de Computadores LFG TI

Redes de Computadores LFG TI Redes de Computadores LFG TI Prof. Bruno Guilhen Camada de Aplicação Fundamentos Fundamentos Trata os detalhes específicos de cada tipo de aplicação. Mensagens trocadas por cada tipo de aplicação definem

Leia mais

Considerações no Projeto de Sistemas Cliente/Servidor

Considerações no Projeto de Sistemas Cliente/Servidor Cliente/Servidor Desenvolvimento de Sistemas Graça Bressan Graça Bressan/LARC 2000 1 Desenvolvimento de Sistemas Cliente/Servidor As metodologias clássicas, tradicional ou orientada a objeto, são aplicáveis

Leia mais

Qualidade de serviço. Determina o grau de satisfação do usuário em relação a um serviço específico Capacidade da rede de atender a requisitos de

Qualidade de serviço. Determina o grau de satisfação do usuário em relação a um serviço específico Capacidade da rede de atender a requisitos de Qualidade de serviço Determina o grau de satisfação do usuário em relação a um serviço específico Capacidade da rede de atender a requisitos de Vazão Atraso Variação do atraso Erros Outros Qualidade de

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

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

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

UMA ABORDAGEM SOBRE A INTERFACE DE PROGRAMAÇÃO DE APLICAÇÕES SOCKETS E A IMPLEMENTAÇÃO DE UM SERVIDOR HTTP

UMA ABORDAGEM SOBRE A INTERFACE DE PROGRAMAÇÃO DE APLICAÇÕES SOCKETS E A IMPLEMENTAÇÃO DE UM SERVIDOR HTTP UMA ABORDAGEM SOBRE A INTERFACE DE PROGRAMAÇÃO DE APLICAÇÕES SOCKETS E A IMPLEMENTAÇÃO DE UM SERVIDOR HTTP Alan Jelles Lopes Ibrahim, alan.jelles@hotmail.com Eduardo Machado Real, eduardomreal@uems.br

Leia mais

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

Prof. Luiz Fernando Bittencourt MC714. Sistemas Distribuídos 2 semestre, 2013 MC714 Sistemas Distribuídos 2 semestre, 2013 Virtualização - motivação Consolidação de servidores. Consolidação de aplicações. Sandboxing. Múltiplos ambientes de execução. Hardware virtual. Executar múltiplos

Leia mais

FACULDADE PITÁGORAS. Prof. Ms. Carlos José Giudice dos Santos cpgcarlos@yahoo.com.br www.oficinadapesquisa.com.br

FACULDADE PITÁGORAS. Prof. Ms. Carlos José Giudice dos Santos cpgcarlos@yahoo.com.br www.oficinadapesquisa.com.br FACULDADE PITÁGORAS DISCIPLINA FUNDAMENTOS DE REDES REDES DE COMPUTADORES Prof. Ms. Carlos José Giudice dos Santos cpgcarlos@yahoo.com.br www.oficinadapesquisa.com.br Material elaborado com base nas apresentações

Leia mais

3 Qualidade de serviço na Internet

3 Qualidade de serviço na Internet 3 Qualidade de serviço na Internet 25 3 Qualidade de serviço na Internet Além do aumento do tráfego gerado nos ambientes corporativos e na Internet, está havendo uma mudança nas características das aplicações

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

WWW - World Wide Web

WWW - World Wide Web WWW World Wide Web WWW Cap. 9.1 WWW - World Wide Web Idéia básica do WWW: Estratégia de acesso a uma teia (WEB) de documentos referenciados (linked) em computadores na Internet (ou Rede TCP/IP privada)

Leia mais

Maestro. Arthur Kazuo Tojo Costa 317497. Universidade Federal de São Carlos Campus Sorocaba Bacharelado em Ciência da Computação

Maestro. Arthur Kazuo Tojo Costa 317497. Universidade Federal de São Carlos Campus Sorocaba Bacharelado em Ciência da Computação Maestro Arthur Kazuo Tojo Costa 317497 Universidade Federal de São Carlos Campus Sorocaba Bacharelado em Ciência da Computação Introdução Sistema Operacional de Redes Detalhes do hardware Multiplexação

Leia mais

Redes de Computadores (PPGI/UFRJ)

Redes de Computadores (PPGI/UFRJ) Redes de Computadores (PPGI/UFRJ) Aula 1: Apresentação do curso e revisão de interface de sockets 03 de março de 2010 1 2 O que é a Internet 3 4 Objetivos e página do curso Objetivos Apresentar a motivação,

Leia mais

Questionário de RC Nota3

Questionário de RC Nota3 Questionário de RC Nota3 Entrega: Individual e escrita à mão. Data de entrega: 30/10. Em todas as questões deverão constar o desenvolvimento da sua resposta, caso contrário a questão será desconsiderada.

Leia mais

REDES DE COMPUTADORES II. Ricardo José Cabeça de Souza www.ricardojcsouza.com.br

REDES DE COMPUTADORES II. Ricardo José Cabeça de Souza www.ricardojcsouza.com.br REDES DE COMPUTADORES II Ricardo José Cabeça de Souza www.ricardojcsouza.com.br Surgiu final década de 1980 Tecnologia de comutação em infraestrutura redes RDSI-FL(B-ISDN) Recomendação I.121 da ITU-T(1988)

Leia mais

Modelo de referência OSI. Modelo TCP/IP e Internet de cinco camadas

Modelo de referência OSI. Modelo TCP/IP e Internet de cinco camadas Modelo de referência OSI. Modelo TCP/IP e Internet de cinco camadas Conhecer os modelo OSI, e TCP/IP de cinco camadas. É importante ter um padrão para a interoperabilidade entre os sistemas para não ficarmos

Leia mais

Programação WEB Introdução

Programação WEB Introdução Programação WEB Introdução Rafael Vieira Coelho IFRS Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Sul Campus Farroupilha rafael.coelho@farroupilha.ifrs.edu.br Roteiro 1) Conceitos

Leia mais

Arquitetura TCP/IP. Filosofia da Internet

Arquitetura TCP/IP. Filosofia da Internet Arquitetura TCP/IP Filosofia da Internet foi projetada p/: ser aberta o bastante p/ permitir a execução em uma grande variedade de equipamentos de resistir a possíveis danos que prejudicassem seu funcionamento

Leia mais

Professor(es): Fernando Pirkel. Descrição da(s) atividade(s):

Professor(es): Fernando Pirkel. Descrição da(s) atividade(s): Professor(es): Fernando Pirkel Descrição da(s) atividade(s): Definir as tecnologias de redes necessárias e adequadas para conexão e compartilhamento dos dados que fazem parte da automatização dos procedimentos

Leia mais

Balanceamento de carga: Conceitos básicos

Balanceamento de carga: Conceitos básicos Balanceamento de carga: Conceitos básicos Introdução A tecnologia de balanceamento de carga está viva e está bem; de fato, ela é a base sobre a qual operam os application delivery controller (ADCs). A

Leia mais

3 Propostas de Travessias de Firewalls/NAT

3 Propostas de Travessias de Firewalls/NAT 3 Propostas de Travessias de Firewalls/NAT Este capítulo irá apresentar as propostas deste trabalho para que aplicações que utilizem CORBA como plataforma de comunicação possam atravessar firewalls/nat.

Leia mais

Comunicando através da rede

Comunicando através da rede Comunicando através da rede Fundamentos de Rede Capítulo 2 1 Estrutura de Rede Elementos de comunicação Três elementos comuns de comunicação origem da mensagem o canal destino da mensagem Podemos definir

Leia mais

WebSphere MQ Everyplace V2.0.2

WebSphere MQ Everyplace V2.0.2 WebSphere MQ Everyplace V2.0.2 ii WebSphere MQ Everyplace V2.0.2 Índice Configurando Comunicações..... 1 Considerações sobre o Sistema Operacional....1 Atributos...............1 Mensagens...............1

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

Márcio Leandro Moraes Rodrigues. Frame Relay

Márcio Leandro Moraes Rodrigues. Frame Relay Márcio Leandro Moraes Rodrigues Frame Relay Introdução O frame relay é uma tecnologia de chaveamento baseada em pacotes que foi desenvolvida visando exclusivamente a velocidade. Embora não confiável, principalmente

Leia mais

COMPARANDO APLICAÇÃO WEB SERVICE REST E SOAP

COMPARANDO APLICAÇÃO WEB SERVICE REST E SOAP COMPARANDO APLICAÇÃO WEB SERVICE REST E SOAP Cleber de F. Ferreira¹, Roberto Dias Mota¹. ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil cleberferreirasi@hotmail.com, motaroberto@hotmail.com Resumo.

Leia mais

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

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

Leia mais

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2 Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2 Aula 2 Computação em Nuvem Desafios e Oportunidades A Computação em Nuvem

Leia mais

Implementar servidores de Web/FTP e DFS. Disciplina: Serviços de Redes Microsoft Professor: Fernando Santorsula fernando.santorsula@esamc.

Implementar servidores de Web/FTP e DFS. Disciplina: Serviços de Redes Microsoft Professor: Fernando Santorsula fernando.santorsula@esamc. Implementar servidores de Web/FTP e DFS Disciplina: Serviços de Redes Microsoft Professor: Fernando Santorsula fernando.santorsula@esamc.br Conteúdo programático Introdução ao protocolo HTTP Serviço web

Leia mais

Alternativas de aplicação do serviço GPRS da rede celular GSM em telemetria pela Internet

Alternativas de aplicação do serviço GPRS da rede celular GSM em telemetria pela Internet Alternativas de aplicação do serviço GPRS da rede celular GSM em telemetria pela Internet Marcos R. Dillenburg Gerente de P&D da Novus Produtos Eletrônicos Ltda. (dillen@novus.com.br) As aplicações de

Leia mais

1 Lista de exercícios 01

1 Lista de exercícios 01 FRANCISCO TESIFOM MUNHOZ 2007 1 Lista de exercícios 01 1) No desenvolvimento e aperfeiçoamento realizado em redes de computadores, quais foram os fatores que conduziram a interconexão de sistemas abertos

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

INTERNET = ARQUITETURA TCP/IP

INTERNET = ARQUITETURA TCP/IP Arquitetura TCP/IP Arquitetura TCP/IP INTERNET = ARQUITETURA TCP/IP gatewa y internet internet REDE REDE REDE REDE Arquitetura TCP/IP (Resumo) É útil conhecer os dois modelos de rede TCP/IP e OSI. Cada

Leia mais

Capítulo 7 CAMADA DE TRANSPORTE

Capítulo 7 CAMADA DE TRANSPORTE Capítulo 7 CAMADA DE TRANSPORTE SERVIÇO SEM CONEXÃO E SERVIÇO ORIENTADO À CONEXÃO Serviço sem conexão Os pacotes são enviados de uma parte para outra sem necessidade de estabelecimento de conexão Os pacotes

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

Trabalho de Sistemas Distribuídos

Trabalho de Sistemas Distribuídos Cássio de Olivera Ferraz Trabalho de Sistemas Distribuídos Petrópolis 2015, v-1.0 Cássio de Olivera Ferraz Trabalho de Sistemas Distribuídos Trabalho sobre sistemas distribuídos e suas tecnologias. Universidade

Leia mais

Brandon Rhodes John Goerzen

Brandon Rhodes John Goerzen Brandon Rhodes John Goerzen Novatec Original English language edition published by Apress, Copyright 2014 by Apress, Inc.. Portugueselanguage edition for Brazil copyright 2015 by Novatec Editora. All rights

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Sistemas de Entrada/Saída Princípios de Hardware Sistema de Entrada/Saída Visão Geral Princípios de Hardware Dispositivos de E/S Estrutura Típica do Barramento de um PC Interrupções

Leia mais

Prof. Manuel A Rendón M

Prof. Manuel A Rendón M Prof. Manuel A Rendón M Kurose Redes de Computadores e a Internet Uma Abordagem Top-Down 5ª. Edição Pearson Cap.: 1 até 1.2.2 2.1.2 2.1.4 Como funciona uma rede? Existem princípios de orientação e estrutura?

Leia mais

Capítulo 7 CAMADA DE TRANSPORTE

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

Leia mais

6127. Redes comunicação de dados. RSProf@iol.pt. 2014/2015. Introdução.

6127. Redes comunicação de dados. RSProf@iol.pt. 2014/2015. Introdução. Sumário 6127. Redes comunicação de dados. 6127. Redes comunicação de dados A Internet: Permite a interação entre pessoas. 6127. Redes comunicação de dados A Internet: Ensino; Trabalho colaborativo; Manutenção

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

Prof. Samuel Henrique Bucke Brito

Prof. Samuel Henrique Bucke Brito - Arquitetura da Internet: TCP/IP www.labcisco.com.br ::: shbbrito@labcisco.com.br Prof. Samuel Henrique Bucke Brito Introdução Toda a estrutura atual da Internet está fundamentada na suíte de protocolos

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

Sistemas Distribuídos: Conceitos e Projeto Estilos Arquitetônicos e Arquitetura Cliente/Servidor

Sistemas Distribuídos: Conceitos e Projeto Estilos Arquitetônicos e Arquitetura Cliente/Servidor Sistemas Distribuídos: Conceitos e Projeto Estilos Arquitetônicos e Arquitetura Cliente/Servidor Francisco José da Silva e Silva Laboratório de Sistemas Distribuídos (LSD) Departamento de Informática /

Leia mais

Protocolos de gerenciamento

Protocolos de gerenciamento Protocolos de gerenciamento Os protocolos de gerenciamento têm a função de garantir a comunicação entre os recursos de redes homogêneas ou não. Com esse requisito satisfeito, operações de gerenciamento

Leia mais

A Camada de Transporte

A Camada de Transporte A Camada de Transporte Romildo Martins Bezerra CEFET/BA s de Computadores II Funções da Camada de Transporte... 2 Controle de conexão... 2 Fragmentação... 2 Endereçamento... 2 Confiabilidade... 2 TCP (Transmission

Leia mais

Capítulo 8. Sistemas com Múltiplos Processadores. 8.1 Multiprocessadores 8.2 Multicomputadores 8.3 Sistemas distribuídos

Capítulo 8. Sistemas com Múltiplos Processadores. 8.1 Multiprocessadores 8.2 Multicomputadores 8.3 Sistemas distribuídos Capítulo 8 Sistemas com Múltiplos Processadores 8.1 Multiprocessadores 8.2 Multicomputadores 8.3 Sistemas distribuídos 1 Sistemas Multiprocessadores Necessidade contínua de computadores mais rápidos modelo

Leia mais

Introdução as Redes de Computadores Transparências baseadas no livro Computer Networking: A Top-Down Approach Featuring the Internet James Kurose e Keith Ross Redes de Computadores A. Tanenbaum e Prof.

Leia mais

1 Redes de comunicação de dados

1 Redes de comunicação de dados 1 Redes de comunicação de dados Nos anos 70 e 80 ocorreu uma fusão dos campos de ciência da computação e comunicação de dados. Isto produziu vários fatos relevantes: Não há diferenças fundamentais entre

Leia mais

MASSACHUSETTS INSTITUTE OF TECHNOLOGY SLOAN SCHOOL OF MANAGEMENT. Fatores Tecnológicos, Estratégicos e Organizacionais

MASSACHUSETTS INSTITUTE OF TECHNOLOGY SLOAN SCHOOL OF MANAGEMENT. Fatores Tecnológicos, Estratégicos e Organizacionais MASSACHUSETTS INSTITUTE OF TECHNOLOGY SLOAN SCHOOL OF MANAGEMENT 15.565 Integração de Sistemas de Informação: Fatores Tecnológicos, Estratégicos e Organizacionais 15.578 Sistemas de Informação Global:

Leia mais

Modelo de Camadas OSI

Modelo de Camadas OSI Modelo de Camadas OSI 1 Histórico Antes da década de 80 -> Surgimento das primeiras rede de dados e problemas de incompatibilidade de comunicação. Década de 80, ISO, juntamente com representantes de diversos

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

UNIVERSIDADE FEDERAL DE SANTA CATARINA DEPARTAMENTO DE INFORMÁTICA E ESTÁTISTICA GRADUAÇÃO EM CIÊNCIAS DA COMPUTAÇÃO DISCIPLINA: COMUNICAÇÃO DE DADOS

UNIVERSIDADE FEDERAL DE SANTA CATARINA DEPARTAMENTO DE INFORMÁTICA E ESTÁTISTICA GRADUAÇÃO EM CIÊNCIAS DA COMPUTAÇÃO DISCIPLINA: COMUNICAÇÃO DE DADOS UNIVERSIDADE FEDERAL DE SANTA CATARINA DEPARTAMENTO DE INFORMÁTICA E ESTÁTISTICA GRADUAÇÃO EM CIÊNCIAS DA COMPUTAÇÃO DISCIPLINA: COMUNICAÇÃO DE DADOS PROFESSOR: CARLOS BECKER WESTPHALL Terceiro Trabalho

Leia mais

Redes de Computadores. Camada de Transporte de Dados: protocolos TCP e UDP Prof. MSc Hugo Vieira L. Souza

Redes de Computadores. Camada de Transporte de Dados: protocolos TCP e UDP Prof. MSc Hugo Vieira L. Souza Redes de Computadores Camada de Transporte de Dados: protocolos TCP e UDP Prof. MSc Hugo Vieira L. Souza Este documento está sujeito a copyright. Todos os direitos estão reservados para o todo ou quaisquer

Leia mais

Segurança da Informação

Segurança da Informação INF-108 Segurança da Informação ICP e Certificados Digitais Prof. João Henrique Kleinschmidt Santo André, junho de 2013 Criptografia de chave pública Oferece criptografia e também uma maneira de identificar

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 13 Web Services Web Services

Leia mais

QoS em Redes IP: Arquitetura e Aplicações

QoS em Redes IP: Arquitetura e Aplicações QoS em Redes IP: Arquitetura e Aplicações Mário Meireles Teixeira mario@deinf.ufma.br Motivação Atualmente, funcionam sobre as redes IP aplicações cujos requisitos elas não foram projetadas para atender

Leia mais

Teia de alcance mundial (World Wide Web WWW) Web composta de

Teia de alcance mundial (World Wide Web WWW) Web composta de Web Teia de alcance mundial (World Wide Web WWW) Web composta de Agentes de usuário para a Web (browsers) Servidores Web Protocolo de transferência de hipertexto (HyperText Transfer Protocol HTTP) Web

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

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

Lista de Exercício: PARTE 1

Lista de Exercício: PARTE 1 Lista de Exercício: PARTE 1 1. Questão (Cód.:10750) (sem.:2a) de 0,50 O protocolo da camada de aplicação, responsável pelo recebimento de mensagens eletrônicas é: ( ) IP ( ) TCP ( ) POP Cadastrada por:

Leia mais

Software SMART Bridgit Versão 4.5

Software SMART Bridgit Versão 4.5 Especificações Software SMART Bridgit Versão 4.5 Descrição do produto O software de conferências SMART Bridgit é um aplicativo cliente/servidor econômico que permite que você programe facilmente reuniões

Leia mais

Fundamentos de Redes de Computadores. Arquitetura TCP/IP Endereçamento das Redes Classes de redes Principais protocolos

Fundamentos de Redes de Computadores. Arquitetura TCP/IP Endereçamento das Redes Classes de redes Principais protocolos Fundamentos de Redes de Computadores Arquitetura TCP/IP Endereçamento das Redes Classes de redes Principais protocolos Histórico O TCP/IP é um padrão de comunicação entre diferentes computadores e diferentes

Leia mais

Redes de Computadores

Redes de Computadores Redes de Computadores Prof. Marcelo Gonçalves Rubinstein Programa de Pós-Graduação em Engenharia Eletrônica Faculdade de Engenharia Universidade do Estado do Rio de Janeiro Ementa Introdução a Redes de

Leia mais

Protocolo. O que é um protocolo? Humano: que horas são? eu tenho uma pergunta

Protocolo. O que é um protocolo? Humano: que horas são? eu tenho uma pergunta Protocolo O que é um protocolo? Humano: que horas são? eu tenho uma pergunta Máquina: Definem os formatos, a ordem das mensagens enviadas e recebidas pelas entidades de rede e as ações a serem tomadas

Leia mais

Arquiteturas de Software

Arquiteturas de Software Universidade Federal do Amazonas Faculdade de Tecnologia Departamento de Eletrônica e Computação Arquiteturas de Software Lucas Cordeiro lucascordeiro@ufam.edu.br Notas de Aula Estes slides são baseados

Leia mais

MPLS MultiProtocol Label Switching

MPLS MultiProtocol Label Switching MPLS MultiProtocol Label Switching Cenário Atual As novas aplicações que necessitam de recurso da rede são cada vez mais comuns Transmissão de TV na Internet Videoconferências Jogos on-line A popularização

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Computação Aula 01-02: Introdução 2o. Semestre / 2014 Prof. Jesus Agenda da Apresentação Definição e surgimento de Sistemas Distribuídos Principais aspectos de Sistemas Distribuídos

Leia mais

Introdução à Informática

Introdução à Informática Introdução à Informática Aula 23 http://www.ic.uff.br/~bianca/introinfo/ Aula 23-07/12/2007 1 Histórico da Internet Início dos anos 60 Um professor do MIT (J.C.R. Licklider) propõe a idéia de uma Rede

Leia mais

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

Wireshark. Captura de Protocolos da camada de aplicação. Maicon de Vargas Pereira Wireshark Captura de Protocolos da camada de aplicação Maicon de Vargas Pereira Camada de Aplicação Introdução HTTP (Hypertext Transfer Protocol) 2 Introdução Camada de Aplicação Suporta os protocolos

Leia mais

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

Rede d s d e d Com o pu p t u ado d r o es Conceitos Básicos M d o e d los o de d Re R de d s: Tecnologia em Redes de Computadores Redes de Computadores Professor: André Sobral e-mail: alsobral@gmail.com Conceitos Básicos Modelos de Redes: O O conceito de camada é utilizado para descrever como ocorre

Leia mais

Redes de Computadores

Redes de Computadores Redes de Computadores Camada de Transporte UDP Slide 1 Camada de Transporte Fornece uma comunicação lógica entre processos de aplicações em diferentes hosts através da camada de rede; São implementados

Leia mais

Metas de um Sistema Distribuído

Metas de um Sistema Distribuído Metas de um Sistema Distribuído Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do

Leia mais

6 de Julho de 2015. Exercício 23 Para que servem portas na camada de transporte?

6 de Julho de 2015. Exercício 23 Para que servem portas na camada de transporte? Lista de Exercícios Camada de Transporte GBC-056 Arquitetura de Redes de Computadores Bacharelado em Ciência da Computação Universidade Federal de Uberlândia 6 de Julho de 2015 Exercício 1 Para que serve

Leia mais

OPC DataHub Coloca a Tecnologia de Tunnelling a Disposição dos Dados de Processo

OPC DataHub Coloca a Tecnologia de Tunnelling a Disposição dos Dados de Processo OPC DataHub Coloca a Tecnologia de Tunnelling a Disposição dos Dados de Processo Por Paul Benford e Robert McIlvride, Cogent Real-Time Systems Inc. & Colin Winchester, Software Toolbox, Inc. No ambiente

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

NEVA: Programa para aumento de performance de sites web usando o algoritmo de esteganografia

NEVA: Programa para aumento de performance de sites web usando o algoritmo de esteganografia NEVA: Programa para aumento de performance de sites web usando o algoritmo de esteganografia MÁRCIO PANTOJA LOBATO 1, PEDRO VICTOR PONTES PINHEIRO 1, ROBERTO YURI DA SILVA FRANCO 1, ALESSANDRA NATASHA

Leia mais

Redes de computadores. Redes para Internet

Redes de computadores. Redes para Internet Redes de computadores Redes para Internet Milhões de elementos de computação interligados: hospedeiros = sistemas finais Executando aplicações distribuídas Enlaces de comunicação fibra, cobre, rádio, satélite

Leia mais

Unidade 2.1 Modelos de Referência

Unidade 2.1 Modelos de Referência Faculdade INED Curso Superior de Tecnologia: Banco de Dados Redes de Computadores Disciplina: Redes de Computadores Prof.: Fernando Hadad Zaidan 1 Unidade 2.1 Modelos de Referência 2 Bibliografia da disciplina

Leia mais

Segurança de redes com Linux. Everson Scherrer Borges Willen Borges de Deus

Segurança de redes com Linux. Everson Scherrer Borges Willen Borges de Deus Segurança de redes com Linux Everson Scherrer Borges Willen Borges de Deus Segurança de Redes com Linux Protocolo TCP/UDP Portas Endereçamento IP Firewall Objetivos Firewall Tipos de Firewall Iptables

Leia mais