A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Redes de Computadores I Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -

Apresentações semelhantes


Apresentação em tema: "Redes de Computadores I Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -"— Transcrição da apresentação:

1 Redes de Computadores I Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -

2 Redes de Computadores I – Prof. Mateus Raeder Sumário Camada de aplicação Protocolos de aplicação –HTTP –FTP Exercícios

3 Redes de Computadores I – Prof. Mateus Raeder Camada de aplicação Metas: Aprender aspectos conceituais e de implementação de protocolos de aplicação em redes –Paradigma cliente /servidor –Modelos de serviço Aprender sobre protocolos através do estudo de protocolos populares do nível da aplicação Conhecer......protocolos específicos: –http –ftp –smtp –pop –dns...a programação de aplicações de rede. –Programação usando sockets

4 Redes de Computadores I – Prof. Mateus Raeder Camada de aplicação É a camada mais próxima dos usuários Nas demais camadas, existem 1 ou 2 protocolos principais Na camada de aplicação, existem vários protocolos, um para cada tipo de serviço –Além disso, um serviço de rede pode fazer uso de mais de um protocolo Ex.: o serviço de e-mail pode utilizar os protocolos SMTP, POP e IMAP

5 Redes de Computadores I – Prof. Mateus Raeder Camada de aplicação Aplicações de rede são a “razão de ser” de uma rede de computadores –Qual a necessidade de projetar uma rede se não existissem aplicações que fossem usá-la? Aplicações de rede são distribuídas em dois ou mais sistemas finais application transport network data link physical application transport network data link physical application transport network data link physical

6 Redes de Computadores I – Prof. Mateus Raeder Camada de aplicação application transport network data link physical application transport network data link physical application transport network data link physical Aplicações comunicam- se através de troca de mensagens –Ex.: Correio eletrônico, transferência de arquivos, WWW, login remoto, voz, etc... –As aplicações de rede têm protocolos da camada de aplicação que definem detalhes desta comunicação via troca de mensagens

7 Redes de Computadores I – Prof. Mateus Raeder Protocolos de aplicação Protocolos da camada de aplicação: – Não são a aplicação. –APENAS uma “parte” da aplicação. –Define mensagens trocadas por aplicações e ações tomadas em sua resposta. –Usam serviços providos por protocolos de camadas inferiores Os processos em dois sistemas diferentes comunicam-se entre si, trocando mensagens através da rede de computadores. Um processo de emissão cria e emite mensagens na rede; um processo de recepção recebe estas mensagens e responde possivelmente emitindo mensagens de volta.

8 Redes de Computadores I – Prof. Mateus Raeder Como os processos trocam mensagens Um protocolo da camada de aplicação define como os processos de aplicação, funcionando em sistemas de extremidade diferentes, trocam mensagens. Detalhadamente, um protocolo da camada de aplicação define: –Os tipos de mensagens trocadas, por exemplo, mensagens do pedido e mensagens de resposta. –A sintaxe dos vários tipos de mensagem, tais como os campos na mensagem e como os campos são delineados. –A semântica dos campos, isto é, o significado da informação nos campos. –As regras para determinar quando e como um processo emite mensagens e responde às mensagens.

9 Redes de Computadores I – Prof. Mateus Raeder Aplicações de rede Um processo é um programa que roda num host. –Dois processos no mesmo host se comunicam usando comunicação entre processos (interprocess comunnication), definida pelo sistema operacional (SO). –Dois processos em hosts distintos se comunicam usando um protocolo da camada de aplicação Um agente de usuário (UA) é uma interface entre o usuário e a aplicação de rede. WWW: browser. Correio: leitor/compositor de mensagens Streaming audio/video: tocador (player) de mídia

10 Redes de Computadores I – Prof. Mateus Raeder Paradigma cliente-servidor Existem 2 figuras: cliente e servidor –Cliente: solicita um serviço Ex.: leitor de correio eletrônico –Servidor: recebe, processa e responde Ex.: servidor de correio

11 Redes de Computadores I – Prof. Mateus Raeder Camada de aplicação API - Aplication Program Interface: –Interface de programação de aplicações Define a interface entre a aplicação e camada de transporte. Socket (= tomada) : API da Internet –Dois processos se comunicam enviando dados para um socket, ou lendo dados de um socket.

12 Redes de Computadores I – Prof. Mateus Raeder Comunicação pelos sockets (1) Os dois processos comunicam-se entre si emitindo e recebendo mensagens através de seus sockets. O socket de um processo pode ser pensado como do porta do processo: –Um processo emite e recebe mensagens da rede, através de seus sockets. –Quando um processo quer emitir uma mensagem a um outro processo em um outro host, empurra a mensagem para fora de sua porta. –O processo supõe que há um infra-estrutura de transporte no outro lado da porta, a qual transportará a mensagem até a porta do processo do destino.

13 Redes de Computadores I – Prof. Mateus Raeder Como um processo identifica outro ? Pergunta: Como um processo pode “identificar”o outro processo com o qual quer se comunicar? Endereço IP do host do outro processo. –Por enquanto: basta saber que o IP ADDRESS é um valor de 32- bits que identifica unicamente o sistema de extremidade. Mais precisamente, identifica unicamente a interface (placa) que conecta esse host à Internet. Ex. 200.145.9.9 “Número de porta” : permite que o hospedeiro receptor determine a qual processo deve ser entregue a mensagem. Exemplo: Porta 80/TCP. Ex. 200.145.9.9:80 (Ver RFC 1700 - Portas well-known)

14 Redes de Computadores I – Prof. Mateus Raeder Que serviços de transporte a aplicação precisa? Quando se desenvolve uma aplicação, deve-se escolher um dos protocolos disponíveis do transporte. –Como você faz esta escolha? Estuda-se os serviços fornecidos pelos protocolos disponíveis do transporte, e escolhe-se o protocolo com os serviços que melhor se adaptem às necessidades de sua aplicação.

15 Redes de Computadores I – Prof. Mateus Raeder Perda de dados: Algumas aplicações (por exemplo áudio) podem tolerar algumas perdas. Outras (por exemplo, transferência de arquivos, telnet) exigem transferência 100% confiável Temporização: Algumas aplicações (por exemplo, telefonia em Internet, jogos interativos) requerem baixo retardo para serem “viáveis”. Largura de banda: Algumas aplicações (por exemplo, multimídia) requerem quantia mínima de banda para serem “viáveis”. Outras aplicações (“elásticas”) conseguem usar qualquer quantia de banda disponível. Que serviços de transporte a aplicação precisa?

16 Redes de Computadores I – Prof. Mateus Raeder Requisitos do serviço de transporte de aplicações comuns AplicaçãoPerdasBandaSensibilidade temporal transferência de arqssem perdaselásticanão correiosem perdaselásticanão documentos WWWsem perdaselásticanão áudio/vídeo de tempo real tolerante áudio: 5Kb-1Mb | vídeo:10Kb-5Mb sim, décimos de seg. áudio/vídeo gravadotolerantecomo anteriorsim, alguns seg. jogos interativostolerante> alguns Kbpssim, décimos de seg. apps financeirassem perdaselásticasim e não

17 Redes de Computadores I – Prof. Mateus Raeder Serviço TCP: – Orientado a conexão: estabelecimento exigido entre cliente e servidor. – Transporte confiável entre processos emissor e receptor. – Controle de fluxo : emissor não vai “afogar” receptor. – Controle de congestionamento : estrangular emissor quando a rede está carregada. Serviço UDP: – Não orientado a conexão –Transferência de dados não confiável entre processos remetente e receptor. –Não provê: estabelecimento da conexão, confiabilidade, controle de fluxo, controle de congestionamento, garantias temporais ou de banda mínima. –Pergunta-se: Qual é o interesse em ter um UDP? Serviços providos por protocolos de transporte Internet

18 Redes de Computadores I – Prof. Mateus Raeder Aplicações Internet: seus protocolos e seus protocolos de transporte Aplicação Protocolo da camada de app. Protocolo de transporte usado Correio eletrônicosmtp [RFC 821]TCP Acesso terminal remoto telnet [RFC 854]TCP WWWhttp [RFC 2068]TCP Transferência de arquivos ftp [RFC 959]TCP streaming multimídia proprietário (Ex: RealNetworks) TCP ou UDP Servidor de arquivo remoto NFSTCP ou UDP Telefonia Internet proprietário (Ex: Volcatec) tipicamente UDP

19 Redes de Computadores I – Prof. Mateus Raeder Os principais protocolos de aplicação HTTP e FTP

20 Redes de Computadores I – Prof. Mateus Raeder Página WWW: –Consiste de “objetos” –Endereçada por um URL - Universal Resource Locator. Quase todas as páginas WWW consistem de: –Página base HTML, e –Vários objetos referenciados. URL tem duas partes: –nome de hospedeiro, e nome de caminho: www.inf.unisinos.br/imgs/logo.gif Agente de usuário para WWW se chama de browser: –MS Internet Explorer. –Firefox. Servidor para WWW se chama “servidor WWW”: –Apache (domínio público). –MS Internet Information Server (IIS). WWW

21 Redes de Computadores I – Prof. Mateus Raeder WWW: o protocolo http http: HyperText Transfer Protocol –Protocolo da camada de aplicação para WWW. –Modelo cliente-servidor cliente: browser que solicita, recebe (“visualiza”) objetos WWW. servidor: servidor WWW envia objetos em resposta a pedidos. –http1.0: RFC 1945 –http1.1: RFC 2068 PC running Explorer Server running Apache Web server Mac running Safari HTTP request HTTP response

22 Redes de Computadores I – Prof. Mateus Raeder Usa serviço de transporte TCP: –1.) Cliente inicia conexão TCP (cria socket) ao servidor, na porta 80. –2.) Servidor aceita conexão TCP do cliente. –3.) Troca mensagens http (mensagens do protocolo da camada de aplicação) entre browser (cliente http) e servidor WWW (servidor http). –4.) Encerra conexão TCP. http é “ sem estado” (stateless) –Servidor não mantém informação sobre pedidos anteriores do cliente. Mais sobre o protocolo http Protocolos que mantêm “estado” são complexos! História passada (estado) tem que ser guardada. Caso caia servidor/cliente, suas visões do “estado” podem ser inconsistentes, devem ser reconciliadas

23 Redes de Computadores I – Prof. Mateus Raeder Exemplo de http Supondo que um usuário digita a URL www.inf.unisinos.br/index.htmlwww.inf.unisinos.br/index.html 1a. Cliente http inicia conexão TCP ao servidor http (processo) em www.inf.unisinos.br Porta 80 é padrão para servidor http. 2. cliente http envia mensagem de pedido de http (contendo URL) através do socket da conexão TCP 1b. servidor http no hospedeiro www.inf.unisinos.brwww.inf.unisinos.br espera por conexão TCP na porta 80. “Aceita” conexão, avisando ao cliente 3. servidor http recebe mensagem de pedido, formula mensagem de resposta contendo objeto solicitado (index.html), e envia mensagem via socket. TEMPO (Ex: contém texto, referências a 10 imagens jpeg)...

24 Redes de Computadores I – Prof. Mateus Raeder Exemplo de http (continuação) TEMPO 4. servidor http encerra conexão TCP. 5. cliente http recebe mensagem de resposta contendo arquivo html “inicial.html”, e visualiza Html. Analisando arquivo html, encontra 10 objetos jpeg referenciados. 6. Passos 1 a 5 repetidos para cada um dos 10 objetos jpeg E então, continua...

25 Redes de Computadores I – Prof. Mateus Raeder Não persistente: –HTTP/1.0 –Servidor analisa pedido, responde, e encerra conexão TCP. –2 RTTs para trazer cada objeto (RTT = round trip Time  tempo de viagem de ida e volta) Persistente: –Default for HTTP/1.1 –Na mesma conexão TCP: servidor analisa pedido, responde, analisa novo pedido, etc... –Cliente envia pedidos para todos objetos referenciados, assim que recebe o HTML base. – Menos RTTs. –Consexão é encerrada depois de determinado tempo sem uso Conexões não-persistente e persistente

26 Redes de Computadores I – Prof. Mateus Raeder Conexão não-persistente (1) 1.O cliente HTTP inicia uma conexão TCP com o servidor. 2.O cliente emite mensagem de requisição HTTP através do socket associado com a conexão do TCP que foi estabelecida. 3.Servidor HTTP recebe o request através do socket associado com a conexão estabelecida, recupera o objeto /ai/inicial.html de seu armazenamento, encapsula o objeto em uma mensagem HTTP de resposta, e emite a mensagem de resposta através do socket. 4.O servidor diz ao cliente para fechar a conexão TCP. 5.O cliente recebe a mensagem de resposta. A conexão TCP termina. A mensagem indica que o objeto encapsulado é um arquivo HTML. O cliente extrai o arquivo da mensagem de resposta, analisa, e encontra referências a 10 objetos do JPEG. 6. As primeiras quatro etapas são repetidas então para cada um dos objetos JPEG referenciados.

27 Redes de Computadores I – Prof. Mateus Raeder Conexão não-persistente (2) Cada conexão TCP transporta exatamente uma mensagem de pedido e uma mensagem de resposta. No nosso exemplo, quando um usuário requisita página, 11 conexões TCP são geradas. Nas etapas das conexões não persistentes, cada conexão do TCP é fechada depois que o servidor envia o objeto: a conexão não persiste para outros objetos. Quando o browser recebe uma página, mostra a página ao usuário. Dois browsers diferentes podem interpretar (isto é, mostrar ao usuário) um Web page de maneiras um diferentes. O HTTP não tem nada ver como um Web page é interpretado por um cliente. As especificações do HTTP (RFC1945 e RFC2616) definem somente o protocolo de comunicação entre o programa HTTP do cliente e o programa HTTP do servidor.

28 Redes de Computadores I – Prof. Mateus Raeder RTT (Round Trip Time) Definição: tempo que um pacote leva para ser enviado e retornar ao cliente; Tempo de resposta: –Um RTT para iniciar a conexão TCP; –Um RTT para enviar requisição HTTP e receber os primeiros bytes da resposta; Tempo de transmissão do arquivo –Total: 2RTT + tempo de transmissão time to transmit file initiate TCP connection RTT request file RTT file received time

29 Redes de Computadores I – Prof. Mateus Raeder Problemas do HTTP não persistente: –Gasta 2RTT para cada objeto –OS deve alocar recursos para cada conexão TCP –Browsers costumam abrir conexões paralelas HTTP persistente –Servidor deixa as conexões abertas após enviar a resposta –Mensagens HTTP seguintes são enviadas usando esta conexão Conexão persistente

30 Redes de Computadores I – Prof. Mateus Raeder Conexão persistente Persistente sem paralelismo –Cliente envia nova requisição apenas quando a mensagem anterior tiver sido recebida –Um RTT para cada objeto referenciado Persistente com paralelismo –Padrão no HTTP/1.1 –Cliente envia requisições no momento em que encontra objetos referenciados –Pouco maior que um RTT para todos os objetos referenciados


Carregar ppt "Redes de Computadores I Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -"

Apresentações semelhantes


Anúncios Google