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

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

2: Application Layer 1 Redes de Computadores DCC/UFJ Capítulo 2 – Camada de Aplicação Material fortemente baseado nos slides do livro: Computer Networking:

Apresentações semelhantes


Apresentação em tema: "2: Application Layer 1 Redes de Computadores DCC/UFJ Capítulo 2 – Camada de Aplicação Material fortemente baseado nos slides do livro: Computer Networking:"— Transcrição da apresentação:

1 2: Application Layer 1 Redes de Computadores DCC/UFJ Capítulo 2 – Camada de Aplicação Material fortemente baseado nos slides do livro: Computer Networking: A Top-Down Approach Featuring the Internet. Os slides foram disponibilizados pelos autores James F. Kurose e Keith W. Ross All material copyright J.F Kurose and K.W. Ross, All Rights Reserved

2 2: Application Layer 2 Capítulo 2: Camada de Aplicação r 2.1 Princípios das aplicações de rede r 2.2 Web e HTTP r 2.3 FTP r 2.4 SMTP, POP3, IMAP r 2.5 DNS r 2.6 Aplicações P2P r 2.7 Programação de Sockets com TCP r 2.8 Programação de Sockets com UDP

3 2: Application Layer 3 Capítulo 2: Camada de Aplicação Objetivos: r Aspectos conceituais e de implementação de protocolos de aplicações em redes Modelos de serviços da camada de transporte Paradigma cliente- servidor Paradigma peer-to- peer r aprender um pouco sobre protocolos, examinando protocolos populares da camada de aplicação HTTP FTP SMTP / POP3 / IMAP DNS r Programação de aplicações em redes socket API

4 2: Application Layer 4 Algumas Aplicações de Rede r r web r Mensagem instantânea r Login remoto r Compartilhamento de arquivos P2P r Jogos r Vídeo armazenado r Voz sobre IP r Video conferência em tempo real r Computação em grade r

5 2: Application Layer 5 Criando uma aplicação de Rede escrever programas que Rodam em (diferentes) sistemas finais Comunicação através da rede e.g., software do servidor web que se comunica com o browser Não existe necessidade de escrever software para os dispositivos no núcleo da rede Dispositivos do núcleo da rede não executam aplicações de usuários application transport network data link physical application transport network data link physical application transport network data link physical

6 2: Application Layer 6 Capítulo 2: Camada de Aplicação r 2.1 Princípios das aplicações de rede r 2.2 Web e HTTP r 2.3 FTP r 2.4 SMTP, POP3, IMAP r 2.5 DNS r 2.6 Aplicações P2P r 2.7 Programação de Sockets com TCP r 2.8 Programação de Sockets com UDP

7 2: Application Layer 7 Arquiteturas das Aplicações de Redes r Cliente-Servidor r Peer-to-peer (P2P) r Híbrida: cliente-servidor e P2P

8 2: Application Layer 8 Arquitetura Cliente-Servidor servidor: Sempre um sistema final em funcionamento Endereco IP permanente Conjunto de servidores -> server farms clientes: Comunicam com o servidor Podem ter endereço IP dinâmico Não existe comunicação direta entre clientes cliente/servidor

9 2: Application Layer 9 Arquitetura P2P Pura r Não existe um servidor sempre em funcionamento r Sistemas finais podem se comunicar diretamente uns com os outros r Peers se conectam e desconectam e podem mudar os endereços IP Altamente escalável, mas de difícil gerenciamento peer-peer

10 2: Application Layer 10 Arquiteturas Híbridas Skype Aplicação P2P de voz sobre IP Servidor central: encontrar o endereço IP Conexão cliente-cliente: direta (sem passar pelo servidor) Mensagem Instantânea Conversa entre dois usuários usa paradigma P2P Serviço centralizado: detecção da presença localização de um cliente Usuário registra seu IP no servidor central quando fica online Usuário contacta um servidor central para encontrar o IP de seus buddies

11 2: Application Layer 11 Comunicação entre processos Processos : programas em execução em um sistema final. r Em um mesmo host dois processos se comunicam usando comunicação entre processos (definida pelo SO). r Processos em diferentes sistemas finais, se comunicam através de trocas de mensagens Processo Cliente: processo que inicia a comunicação Processo Servidor: processo que espera para ser contactado r Aplicações com arquitetura P2P possuem processo cliente e processo servidor

12 2: Application Layer 12 Sockets r Processo envia/recebe mensagens para/de seu socket r Socket análogo a uma porta Processo envia mensagens pela porta Processo que envia msgs se apoia na infraestrutura de transporte que remete a mensagem ao socket ligado ao processo remoto process TCP with buffers, variables socket host or server process TCP with buffers, variables socket host or server Internet controlled by OS controlled by app developer r API: (1) escolha do protocolo de transporte; (2) habilidade para definir alguns parâmetros

13 2: Application Layer 13 Endereçando Processos r Para receber mensagens, processo tem que ter um identificador r O dispositivo do sistema final possui um endereço IP de 32 bits r Q: o endereço IP de um sistema final é suficiente para identificar também um processo? r identificador inclui o endereço IP e o número da porta associada ao processo rodando no sistema final r Exemplo de portas: Servidor HTTP : 80 Servidor Mail: 25 r Para enviar mensagens HTTP para o servidor gaia.cs.umass.edu : Endereço IP : Porta: 80

14 2: Application Layer 14 Protocolos da Camada de Aplicação definem r Tipos de mensagens trocadas e.g., requisições, respostas r Sintaxe da Mensagem: Quais são os campos das mensagens e como os campos são delimitados r Semântica da Mensagem Significado das informações nos campos r Regras para quando e como os processos enviam e respondem mensagens Protocolos de domínio público: r Definidos em RFCs r Permitem interoperabilidade r e.g., HTTP, SMTP Protocolos proprietários: r e.g., Skype

15 2: Application Layer 15 De que serviços uma aplicação necessita? Perda de pacotes r Algumas apl. (e.g., audio) podem tolerar alguma perda r Outras apl. (e.g., ftp, telnet) requerem 100% de transferência confiável dos dados Atraso r Algumas apl. (e.g., VoIP, jogos interativos) requerem baixo atraso para serem eficazes Vazão r Algumas apl. (e.g., multimedia) requerem quantidade mínima de vazão para serem eficazes r Outras apl. (apl. elásticas) utilizam a vazão que conseguem Segurança r Integridade dos dados, …

16 2: Application Layer 16 Requisições que as aplicações fazem a camada de Transporte Application file transfer Web documents real-time audio/video stored audio/video interactive games instant messaging Data loss no loss loss-tolerant no loss Throughput elastic audio: 5kbps-1Mbps video:10kbps-5Mbps same as above few kbps up elastic Time Sensitive no yes, 100s msec yes, few secs yes, 100s msec yes and no

17 2: Application Layer 17 Serviços da camada de transporte Serviços TCP: r Orientado a conexão : servidor e clientes devem se conectar r Transporte confiável entre os procesos que estão enviando e recebendo mensagens r Controle de fluxo: origem nunca vai sobrecarregar o destino r Controle de congestionamento: diminui a taxa de envio da origem, quando a rede está congestionada r Não provê: atraso e vazão mínimos, segurança Serviços UDP: r Transferência não confiável entre os processos de origem e destino r Não provê conexão inicial, confiabilidade, controle de fluxo, vazão e atraso mínimos ou segurança Q: Para que existe UDP?

18 2: Application Layer 18 Aplicações na Internet: aplicação e protocolos de transporte Aplicação acesso a terminal remoto Web transferência de arquivos streaming multimedia telefonia Internet Protocolo da camada de Aplicação SMTP [RFC 2821] Telnet [RFC 854] HTTP [RFC 2616] FTP [RFC 959] HTTP (eg Youtube), RTP [RFC 1889] SIP, RTP, proprietário (e.g., Skype) Protocolo de Transporte TCP TCP or UDP tipicamente UDP

19 2: Application Layer 19 Capítulo 2: Camada de Aplicação r 2.1 Princípios das aplicações de rede r 2.2 Web e HTTP r 2.3 FTP r 2.4 SMTP, POP3, IMAP r 2.5 DNS r 2.6 Aplicações P2P r 2.7 Programação de Sockets com TCP r 2.8 Programação de Sockets com UDP

20 2: Application Layer 20 Web e HTTP Alguns termos conhecidos r Página Web consiste em um grupo de objetos r Objeto pode ser um arquivo HTML, imagem JPEG, applet Java, arquivo de audio,… r Páginas Web consistem de um arquivo HTML base com um conjunto de referências a objetos r Cada objeto é endereçável a partir de uma URL r Exemplo URL: Nome do host Caminho do objeto

21 2: Application Layer 21 HTTP HTTP: hypertext transfer protocol r Protocolo da camada de aplicação para Web r Modelo cliente/servidor Cliente: browser que requisita, recebe e disponibiliza objetos Web Servidor : Servidor Web envia objetos em reposta a requisições PC running Explorer Server running Apache Web server Mac running Navigator HTTP request HTTP response

22 2: Application Layer 22 HTTP (cont.) Usa TCP: r Cliente inicializa uma conexão TCP com o servidor, através da porta 80 r Servidor aceita a conexão TCP r Mensagens HTTP messages (application-layer protocol messages) são trocadas entre o browser (cliente HTTP) e o servidor Web Web (servidor HTTP) r Conexão TCP é fechada HTTP é sem estado r Servidor não mantém informações sobre requisições passadas dos clientes Protocolos que guardam estados são complexos! Passado deve ser mantido Se o servidor ou cliente caem, o estados podem ficar inconsistentes, e devem ser refeitos Nota

23 2: Application Layer 23 Conexões HTTP Não persistente r No máximo um objeto é enviado a cada conexão TCP Persistente r Vários objetos podem ser enviados em uma única conexão entre o cliente e o servidor

24 2: Application Layer 24 HTTP Não persistente URL 1a. Cliente HTTP inicializa uma conexão TCP com o servidor HTTP (processo) em na porta Cliente HTTP envia uma mensagem de requisição HTTP (com a URL) no socket TCP. Messagem indica que o cliente quer acessar o objeto someDepartment/home.index 1b. Servidor HTTP em está esperando uma conexão TCP na porta 80. aceita a conexão, notificando o cliente 3. Servidor HTTP recebe a mensagem de requisição, monta a mensagem de reposta contendo o objeto e envia ao socket tempo (contem texto, referências a 10 imagens jpeg

25 2: Application Layer 25 HTTP Não Persistente (cont.) 5. Cliente HTTP recebe a mensagem de resposta vinda do servidor, contendo o arquivo e apresenta o htm. Durante a passagem no arquivo html, o cliente encontra 10 referências a objetos jpge 6. Passos 1-5 são repetidos para cada um dos 10 objetos jpeg 4. Servidor HTTP fecha a conexão TCP time

26 2: Application Layer 26 HTTP Não Persistente: Tempo de Resposta Definição de RTT: tempo para que um pacote pequento ´viaje´ do cliente para o servidor e volte ao cliente Tempo de reposta: r Um RTT para iniciar a conexão TCP r Um RTT para que a primeira requisição seja respondida r Tempo de transmissão de um objeto total = 2RTT+tempo de transmissão time to transmit file initiate TCP connection RTT request file RTT file received time

27 2: Application Layer 27 HTTP Persistente Problemas do HTTP não persistente: r Requer 2 RTTs por objeto r Sobrecarga do SO para cada conexão TCP r browsers oferecem conexões TCP em paralelo para busca de objetos referenciados HTTP Persistente r Servidor deixa a conexão aberta após envio de resposta r Todas as mensagens trocadas pelo servidor e o cliente usam a mesma conexão TCP aberta no começo r Cliente faz uma requisiçaõ assim que encontra um objeto referenciado r Um pouco mais de um RTT para todos os objetos referenciados

28 2: Application Layer 28 HTTP - Mensagem de requisição r Dois tipos de mensagens : requisição, reposta r Mensagem de requisição HTTP: ASCII GET /somedir/page.html HTTP/1.1 Host: User-agent: Mozilla/4.0 Connection: close Accept-language:fr Linha de requisição (comandos GET, POST, HEAD) Linhas do cabeçalho Enter significa fim da mensagem

29 2: Application Layer 29 Requisições HTTP : formato geral

30 2: Application Layer 30 Tipos de Métodos HTTP/1.0 r GET r POST r HEAD asks server to leave requested object out of response HTTP/1.1 r GET, POST, HEAD r PUT Realiza o upload de um arquivo para a URL especificada no campo URL r DELETE Apaga um arquivo especificado no campo URL

31 2: Application Layer 31 HTTP – Mensagem de Reposta HTTP/ OK Connection close Date: Thu, 06 Aug :00:15 GMT Server: Apache/1.3.0 (Unix) Last-Modified: Mon, 22 Jun 1998 …... Content-Length: 6821 Content-Type: text/html data data data data data... Linha de status (código do protocolo) Linhas do cabeçalho dados, e.g., Arquivo HTML requisitado

32 2: Application Layer 32 Códigos de Status -> Respostas HTTP 200 OK Requisição foi feita com sucesso, o objeto está na parte de dados da mensagem 301 Moved Permanently Objeto foi removido do endereço passado, novo endereço é especificado no final da mensagem 400 Bad Request Servidor não entendeu a mensagem de requisição 404 Not Found Documento requisitado não foi encontrado no servidor 505 HTTP Version Not Supported Na primeira linha da mensagem entre servidor->cliente. Alguns exemplos de código:

33 2: Application Layer 33 Caches Web (servidores proxy) r No browser: página Web é acessada via cache r browser envia todas as requisições a cache Objeto em cache: cache retorna o objeto requisitado] Cache também pode fazer requisições para o servidor original Objetivo: responder a requisição do cliente sem enviá-la ao servidor client Proxy server client HTTP request HTTP response HTTP request origin server origin server HTTP response

34 2: Application Layer 34 Mais sobre Cache Web r Cache age como cliente e servidor r Tipicamente a cache é instalada por um provedor de Internet (universidade, companhias, ISPs residênciais) Por quê usar cache? r Reduz o tempo de reposta a um cliente r Reduz o tráfego nos enlaces de acesso de uma instituição


Carregar ppt "2: Application Layer 1 Redes de Computadores DCC/UFJ Capítulo 2 – Camada de Aplicação Material fortemente baseado nos slides do livro: Computer Networking:"

Apresentações semelhantes


Anúncios Google