RC - SL02 - Camada de Aplicacao

3,814 views

Published on

Unidade 2 sobre Camada de Aplicação da arquitetura TCP/IP. Os protocolos HTTP, FTP, SMTP, POP, IMAP, DNS, de P2P.

Published in: Education, Technology
0 Comments
7 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,814
On SlideShare
0
From Embeds
0
Number of Embeds
17
Actions
Shares
0
Downloads
346
Comments
0
Likes
7
Embeds 0
No embeds

No notes for slide

RC - SL02 - Camada de Aplicacao

  1. 1. Universidade Federal da Paraíba Centro de Ciências Aplicadas e Educação Departamento de Ciências Exatas Redes de Computadores: Camada de Aplicação Prof. Rafael Marrocos Magalhães rafael@dce.ufpb.br 28 de Fevereiro de 2012 UFPB - CCAE - DCE Esta apresentação contém partes, ou mesmo slides inteiros, da apresentação original disponibilizada por J.F Kurose e K.W. Ross, com permissão para utilização como material de apoio instrucional. E, conforme solicitação do original, incluí aqui a nota de direito autoral.sexta-feira, 2 de março de 12 1
  2. 2. Motivação Como usamos a Internet?sexta-feira, 2 de março de 12 2
  3. 3. Sumário Aplicações Princípios de aplicações em redes A Web e o Protocolo HTTP FTP - transferência de arquivos Correio Eletrônico (STMP, POP3, IMAP) DNS - Nomes X IPs Aplicações P2Psexta-feira, 2 de março de 12 3
  4. 4. sexta-feira, 2 de março de 12 4
  5. 5. Algumas aplicações Outras aplicações de rede !  e-mail !  redes sociais !  web !  voice over IP !  mensagem instantânea !  vídeoconferência em !  login remoto tempo real !  compartilhamento de !  computação em grade arquivos P2P !  jogos em rede multiusuários !  clipes de vídeo armazenados em fluxo contínuosexta-feira, 2 de março de 12 5
  6. 6. Objetivos Aspectos conceituais sobre protocolos de aplicação modelos de serviço de transporte paradigma cliente-servidor paradigma peer-to-peer Exemplos na prática HTTP, FTP, STMP/POP3/IMAP, DNS, etc...sexta-feira, 2 de março de 12 6
  7. 7. Criar Aplicações!? Criando uma aplicação Criando uma aplicação de rede Escreva programas que aplicação de rede transporte rede "  executem em (diferentes) enlace física sistemas finais "  se comuniquem pela rede aplicação Escreva programas que "  p. e., software de servidor Web se comunica com software de transport rede "  executem em é(diferentes)navegador Web Não preciso escrever software enlace física sistemas finais dispositivos do núcleo da para aplicação rede transporte se comuniquemdispositivos do núcleo da rede pela rede rede enlace "  "  física não executam aplicações do application p. e., software usuárioservidor Web de transport "  network data link "  as aplicações nos sistemas finais physical se comunica com software de permitem rápido navegador Web desenvolvimento e propagação Não é preciso escrever software para dispositivos do núcleo da aplicação rede transporte rede enlace "  dispositivos do núcleo da redesexta-feira, 2 de março de 12 física 7
  8. 8. Escreva programas que transporte rede "  executem em (diferentes) enlace Criar Aplicações!? física sistemas finais "  se comuniquem pela rede Criando uma aplicação "  p. e., software de servidor Web de rede se comunica comprogramas que de Escreva software aplicação transporte navegador Web "  executem em (diferentes) rede enlace física sistemas finais Não é preciso escrever software "  se comuniquem pela rede para dispositivos do núcleo da "  p. e., software de servidor Web se comunica com software de aplicação rede navegador Web transporte rede Não é preciso escrever software enlace "  dispositivos do núcleo da rede da para dispositivos do núcleo aplicação física rede transporte não executam" aplicaçõesnúcleo da rede dispositivos do do rede enlace física usuário não executam aplicações do application transport usuário network as aplicações "  as aplicações nos sistemas finais nos sistemas finais data link "  physical permitem rápido permitem rápido desenvolvimento e propagação desenvolvimento e propagaçãosexta-feira, 2 de março de 12 8
  9. 9. Arquitetura de Aplicações Cliente-servidor Incluindo centros de dados/cloud computing Peer-to-peer (P2P) Híbrida cliente-servidor/p2psexta-feira, 2 de março de 12 9
  10. 10. Arquitetura cliente-ser cliente-servidor serrvidor servidor:rvidor: "  hospedeiro sempre ligado "  endereço IP permanente clie "  server farms por expansãoentes:"  comunicam-se com o servidor cliente/servidor"  podem estar conectados intermitentemente"  podem ter endereços IP dinâmicos"  não se comunicam diretamente entre sisexta-feira, 2 de março de 12 10
  11. 11. ervidor Arquitetura cliente-se cliente-servidorervidor: "  hospedeiro sempre ligado se "  endereço IP permanente "  server farms por expansão ientes:cliente: comunicam-se com o servidor "  cl "  podem estar conectados intermitentemente "  podem ter endereços IP cliente/servidor dinâmicos "  não se comunicam diretamente entre si sexta-feira, 2 de março de 12 11
  12. 12. Centros de dados da Google !  custo estimado do centro de dados: $600M !  Google gastou $2,4B em 2007 em novos centros de dados !  cada centro de dados usa de 50 a 100 megawatts de potênciasexta-feira, 2 de março de 12 12
  13. 13. rquitetura P2P pura Arquitetura P2P pura P2P puraenhum servidor sempre !  nenhum servidor sempregado ligado stemas finais arbitrários !  sistemas finais arbitráriose comunicam diretamente se comunicam diretamente !  pares são conectadosares são conectados termitentemente e e intermitentemente mudam endereços IP udam endereços IP peer-peer peer-peer altamente escalonável, altamente escalável, masmente escalável, mas mas difícil de administrar difícil de administrarfícil de administrar sexta-feira, 2 de março de 12 13
  14. 14. Híbrido de cliente-servidor Híbrido: cliente-servidor-P2P Híbrido de cliente-servidor e P2P e P2P Skype "  aplicação P2P voice-over-IP P2P Skype "  aplicação centralizado: achando endereço da parte "  servidor P2P voice-over-IP P2P remota: "  servidor centralizado: achando endereço da parte "  remota: cliente-cliente: direta (não através de conexão servidor) "  conexão cliente-cliente: direta (não através de Mensagem instantânea servidor) Mensagem instantâneadois usuários é P2P "  bate-papo entre serviço centralizado: detecção/localização da "  bate-papo entre dois usuários é P2P presença do cliente "  serviço centralizado: detecção/localização da presença do cliente seu endereço IP com servidor •  usuário registra central quando entra on-line •  usuário registra seu endereço IP com servidor •  central quando entra on-line usuário contacta servidor central para descobrir endereços IP dos parceiros •  usuário contacta servidor central para descobrir endereços IP dos parceirossexta-feira, 2 de março de 12 14
  15. 15. Processos e comunicação Processos se comunicandoocessos se comunicando processo: programa rodando dentro de um processo cliente: processo que inicia a hospedeiro comunicaçãonicandomesmo hospedeiro, !  no processo servidor: processo cliente:cesso: programa se dois processos processo que esperaodando dentro de um comunicam usando a processo cliente: para ser contactado inicia processo que a comunicação entreospedeiro (definida pelo processos que inicia a processo comunicação comunicaçãoo mesmo hospedeiro, SO). !  Nota: aplicações com processo servidor: !  processo servidor:ois processos se processos em arquiteturas P2P têm processo que espera hospedeiros diferentes processos clientes & espera processo queomunicam ser contactado para usando a se comunicam trocando para ser contactado processos servidoresomunicação entre lo mensagensrocessos (definida pelo !  Nota: aplicações com O). arquiteturas P2P têm !  Nota: aplicações coms processos clientes &rocessos em servidoreso processos arquiteturas P2P têmospedeiros diferentes processos clientes &e comunicam trocando processos servidores sexta-feira, 2 de março de 12 15
  16. 16. Sockets !  processo envia/recebe mensagens de/para seu Sockets hospedeiro ou servidor hospedeiro ou servidor Sockets socket controlado pelo !  socket semelhante à porta desenvolvedor processo da aplicação processo "  processo enviando empurra !  processo envia/recebe mensagem pela porta hospedeiro socket ou servidor hospedeiro socket ou servidor mensagens de/para seu "  processo enviando conta com TCP com Internet TCP com socket buffers, buffers, infraestrutura de variáveis controlado pelo variáveis transporte no outro lado da !  socket que leva a mensagem porta, semelhante à porta processo desenvolvedor da aplicação processo "  processo enviando empurra ao socket no processo controlado socket socket mensagem pela porta receptor pelo OS TCP com TCP com "  processo enviando conta com !  API: (1) escolha do protocolo de transporte; (2) buffers, Internet buffers, infraestrutura de variáveis capacidade de consertar alguns parâmetros (muito transporte no outro lado da variáveis mais sobre isso adiante) porta, que leva a mensagem ao socket no processo controlado pelo OS receptor !  API: (1) escolha do protocolo de transporte; (2)sexta-feira, 2 de março de 12 16
  17. 17. Endereço X Processo Endereçando processosEndereçando processos !  para receber mensagens, "  R: Não, muitos processos processo deve ter identificador estar rodando no mesmo para receber mensagens, hospedeiro !  dispositivo hospedeiro tem R: Não, muitos processos podem "  processo deve ter !  Identificador inclui endereç endereço IP exclusivo de 32 estar rodando no mesmo identificador números de porta associados bits hospedeiro dispositivo hospedeiro tem processo no hospedeiro. ? !  exercício: use ipconfig Identificador inclui endereço IP e !  do endereço IP exclusivo de 32 bits comando prompt para obter seu de porta associados ao port números Exemplos de número de !  "  servidor HTTP: 80 endereço IP (Windows) processo no hospedeiro. exercício: use ipconfig do o endereço IP!  Exemplos de servidorde porta: !  P: Basta para obter seu do comando prompt "  número de correio: 25 endereço IP (Windows) que o processo é hospedeiro em "  servidor HTTP: 80 executado para identificar oservidor de correio: 25 P: Basta o endereço IP do "  processo? hospedeiro em que o processo é executado para identificar o sexta-feira, 2 de março de 12 17
  18. 18. Definições de protocolo Definição de Protocolo da camada de aplicação Definições de protocolo da camada de aplicação !  tipos de mensagens 1 protocolos de domínio trocadas, !  tipos de mensagens público: domínio protocolos de "  p. e., requisição, resposta trocadas, !  definidos em RFCs 2 sintaxe da mensagem: !  público: p. e., requisição, resposta "  !  provê interoperabilidade "  que campos nas mensagens & !  definidos em RFCs !  sintaxe da os campos são como mensagem: !  p. e., HTTP, SMTP, !  provê interoperabilidade "  que campos nas mensagens & delineados BitTorrent como os campos são !  p. e., HTTP, SMTP, 3 semântica da mensagem !  delineados protocolos proprietários: BitTorrent "  significado da informação !  semântica da mensagem !  p. e., Skype, ppstream protocolos proprietários: nos campos "  significado da informação 4 regras de quando e como !  !  p. e., Skype, ppstream nos campos processos enviam & !  regras de quando e como respondem a mensagens processos enviam & respondem a mensagenssexta-feira, 2 de março de 12 18
  19. 19. Quais requisitos sua aplicação exige? 1. perda de dados? 2. temporização? 3. vazão (banda)? 4. segurança?sexta-feira, 2 de março de 12 19
  20. 20. Características de de transporte Que serviço transporte uma aplicação precisa? perda de dados vazão !  algumas apls. (p. e., áudio) !  algumas podem tolerar alguma perda multimí !  outras apls. (p. e., mínimo transferência de arquivos, serem “ telnet) exigem !  outras transferência de dados elástica 100% confiável qualque temporização receber !  algumas apls. (p. e., segurança telefonia na Internet jogos interativos) !  criptogsexta-feira, 2 de março de 12 de dado 20
  21. 21. !  outras apls. (p. e., míni Características de de arquivos, transferência transporte sere telnet) exigem !  outr transferência de dados elás 100% confiável qual temporização rece !  algumas apls. (p. e., segura telefonia na Internet jogos interativos) !  crip exigem pouco atraso de d para serem “eficazes”sexta-feira, 2 de março de 12 21
  22. 22. Características de transporteço de transporteção precisa? s vazãos. (p. e., áudio) !  algumas apls. (p. e., ar alguma perda multimídia) exigem um (p. e., mínimo de vazão para ia de arquivos, serem “eficazes”em !  outras apls. (“apls. ia de dados elásticas”) utilizam vel qualquer vazão que receberems. (p. e., segurança Internet tivos) !  criptografia, integridade sexta-feira, 2 de março de 12 22
  23. 23. rquivos, serem “eficazes” !  outras apls. (“apls.dados Características de transporte elásticas”) utilizam qualquer vazão que receberem , segurança net !  criptografia, integridade so de dados,…zes” sexta-feira, 2 de março de 12 23
  24. 24. Características de transporteRequisitos de serviço de transporte das aplicaçõescomuns Aplicação Perda de dados Vazão Sensível ao tempo transf. arquivos sem perda elástica não e-mail sem perda elástica não documentos Web sem perda elástica não áudio/vídeo tolerante a perda áudio: 5 kbps-1 Mbps sim, centenas de ms tempo real vídeo:10 kbps-5 Mbps áudio/vídeo tolerante a perda o mesmo que antes sim, alguns seg armazenado jogos interativos tolerante a perda poucos kbps ou mais sim, centenas de ms Mensagem sem perda elástica sim e não instantâneasexta-feira, 2 de março de 12 24
  25. 25. Dois tipos de serviços Serviços de protocolos de Serviços de protocolos de transporte da Internet da Internet transporte serviço TCP: serviço TCP: serviço serviço UDP: UDP: serviço TCP: serviço UDP: !  orientado a conexão: !  orientado a conexão: !  !  transferência de dados transferência de dados preparação exigida entre preparação exigida entre não confiável entre não confiável entre processos cliente ee servidor processos cliente servidor processo emissor e e processo emissor transporteconfiável entre confiável entre receptor receptor !  !  transporte processo emissor ee receptor !  !  não oferece: preparação processo emissor receptor não oferece: preparação !  controle de fluxo: emissor não controle de fluxo: emissor não dada conexão, conexão, sobrecarrega receptor sobrecarrega receptor confiabilidade, controle confiabilidade, controle dede fluxo, controle de fluxo, controle de !  controle de congestionamento: controle de congestionamento: congest., temporização, regula emissor quando a a rede rede congest., temporização, regula emissor quando garantia de de vazão ou está sobrecarregada garantia vazão ou está sobrecarregada segurança segurança !  não oferece: temporização, não oferece: temporização, !  P: P: por que se incomodar? Por por que se incomodar? Por garantias mínimas de vazão, garantias mínimas de vazão, que existe umum UDP? que existe UDP? segurança segurançasexta-feira, 2 de março de 12 25
  26. 26. Características de transporteplicações da Internet: aplicação,rotocolos de transporte Protocolo da camada Protocolo de Aplicação de aplicação transporte básico e-mail SMTP [RFC 2821] TCP acesso remoto Telnet [RFC 854] TCP Web HTTP [RFC 2616] TCP transf. arquivos FTP [RFC 959] TCP multimídia com HTTP (p. e., Youtube), TCP ou UDP fluxo contínuo RTP [RFC 1889] telefonia da SIP, RTP, proprietário Internet (p. e., Skype) normalmente UDP sexta-feira, 2 de março de 12 26
  27. 27. A Web e o HTTPsexta-feira, 2 de março de 12 27
  28. 28. Inovação 1870 Telefone 1920 Rádio/TV 1990 WEB por demanda, não à mercê da operadora! várias interfacessexta-feira, 2 de março de 12 28
  29. 29. Web e HTTP Conceitos primeiro, algum jargão !  página Web consiste em objetos !  objeto pode ser arquivo HTML, imagem JPEG, applet Java, arquivo de áudio,… !  página Web consiste em arquivo HTML básico que inclui vários objetos referenciados !  cada objeto é endereçável por um URL !  exemplo de URL: www.someschool.edu/someDept/pic.gif nome do hospedeiro nome do caminhosexta-feira, 2 de março de 12 29
  30. 30. Funcionamento Visão geral do HTTP Visão geral do HTTP HTTP: HyperText HTTP: HyperText Transfer Protocol Transfer Protocol !  protocolo da camada de PC rodando !  protocolo da da Web de aplicação camada PC rodando Explorer aplicação da Web !  modelo cliente/servidor Explorer !  modelo cliente: navegador que "  cliente/servidor requisita, recebe, "  cliente: navegador que Servidor “exibe” objetos Web rodando requisita, recebe, Servid servidor Web "  servidor: servidor Web “exibe” objetos em envia objetos Web Apache rodan servidor "  servidor: servidor Web resposta a requisições Mac rodando Apach envia objetos em Navigator resposta a requisições Mac rodando Navigatorsexta-feira, 2 de março de 12 30
  31. 31. Funcionamento Usa Conexão TCP! usa TCP: HTTP é “sem estado” !  servidor não guarda !  cliente inicia conexão TCP informações sobre (cria socket) com servidor, requisições passadas do cliente porta 80 HTTP é “sem estado” HTTP é “sem estado”a TCP: !  servidor aceita conexão TCP aparte do cliente !  servidor não guarda Protocolos que mantêmcliente mensagens HTTP (doTCP !  inicia conexão “estado” são complexos! sobre informações(cria socket) com servidor, protocolo da camada de requisições passadas do !  história passada (estado) aplicação) trocadas entre clienteporta 80navegador (cliente HTTP) e deve ser mantida !  se servidor/cliente falhar,servidor aceita conexão TCP servidor Web (servidor HTTP) suas visões do “estado” apartedo cliente podem ser incoerentes, Protocolos que mantêm !  conexão TCP fechada devem ser reconciliadasmensagens HTTP (do “estado” são complexos!protocolo da camada de !  história passada (estado)aplicação) trocadas entresexta-feira, 2 de março de 12 31
  32. 32. Tipos de HTTP Conexões HTTP HTTP não persistente HTTP persistente !  no máximo um objeto é !  múltiplos objetos enviado por uma podem ser enviados conexão TCP. por uma única conexão TCP entre cliente e servidor.sexta-feira, 2 de março de 12 32
  33. 33. HTTP não persistente HTTP não persistente Suponha que o usuário digite o URL (contém texto, www.someSchool.edu/someDepartment/home.index referências a 10 imagens JPEG) 1a. Cliente HTTP inicia conexão TCP com servidor HTTP (processo) em 1b. Servidor HTTP no hospedeiro www.someSchool.edu na porta 80. www.someSchool.edu esperando conexão TCP na porta 80. “aceita” conexão, notificando cliente 2. Cliente HTTP envia mensagem de requisição HTTP (contendo URL) pelo socket de conexão 3. Servidor HTTP recebe mensagem TCP. Mensagem indica que de requisição, forma mensagem de cliente deseja o objeto resposta contendo objeto someDepartment/home.index. requisitado e envia mensagem para seu socket temposexta-feira, 2 de março de 12 33
  34. 34. HTTP não persistente 4. Servidor HTTP fecha conexão TCP. 5. Cliente HTTP recebe mensagem de resposta contendo arquivo html, exibe html. Analisando arquivo html, acha 10 objetos JPEG referenciados. tempo 6. Etapas 1-5 repetidas para cada um dos 10 objetos JPEG.sexta-feira, 2 de março de 12 34
  35. 35. HTTP não persistente HTTP não persistente: Tempo de de resposta tempo resposta definição de RTT: tempo para um pequeno pacote trafegar do cliente ao servidor e retornar. inicia conexão TCP tempo de resposta: RTT !  um RTT para iniciar a conexão requisita arquivo TCP tempo para RTT transmitir !  um RTT para a requisição arquivo HTTP e primeiros bytes da arquivo recebido resposta HTTP retornarem !  tempo de transmissão de tempo tempo arquivo total = 2RTT + tempo de transmissãosexta-feira, 2 de março de 12 35
  36. 36. HTTP persistente HTTP persistente problemas do HTTP não HTTP persistente: persistente: !  servidor deixa a conexão !  requer 2 RTTs por objeto aberta depois de enviar a !  overhead do SO para cada resposta conexão TCP !  mensagens HTTP seguintes !  navegadores geralmente entre cliente/servidor abrem conexões TCP enviadas pela conexão aberta paralelas para buscar !  cliente envia requisições assim objetos referenciados que encontra um objeto referenciado !  no mínimo um RTT para todos os objetos referenciadossexta-feira, 2 de março de 12 36
  37. 37. Mensagem de requisição Mensagens do HTTP HTTP !  dois tipos de mensagens HTTP: requisição, resposta !  mensagem de requisição HTTP: "  ASCII (formato de texto legível) linha de requisição (comandos GET, GET /somedir/page.html HTTP/1.1 POST, HEAD) Host: www.someschool.edu User-agent: Mozilla/4.0 linhas de Connection: close cabeçalho Accept-language:fr carriage return, line feed (carriage return, line feed extras) indica final da mensagemsexta-feira, 2 de março de 12 37
  38. 38. Mensagem de requisição Mensagens do HTTPHTTP: formato geral Formato geral de mensagem HTTP sexta-feira, 2 de março de 12 38
  39. 39. Upload de entrada (form) Upload da entrada do formulário método POST: !  página Web geralmente inclui método do URL: entrada do formulário !  usa o método GET !  entrada é enviada ao !  entrada é enviada no servidor no corpo da campo de URL da linha entidade de requisição: www.umsite.com/buscaanimal?macacos&bananasexta-feira, 2 de março de 12 39
  40. 40. sexta-feira, 2 de março de 12 40
  41. 41. Tipos de métodoTipos de métodos HTTP/1.0 HTTP/1.1 !  GET !  GET, POST, HEAD !  POST !  PUT !  HEAD "  envia arquivo no corpo da "  pede ao servidor para entidade ao caminho deixar objeto especificado no campo de requisitado fora da URL resposta !  DELETE "  exclui arquivo especificado no campo de URLsexta-feira, 2 de março de 12 41
  42. 42. Mensagem de reposta Mensagem de resposta HTTP linha de status (protocolo código de estado HTTP/1.1 200 OK frase de estado) Connection close Date: Thu, 06 Aug 1998 12:00:15 GMT linhas de Server: Apache/1.3.0 (Unix) cabeçalho Last-Modified: Mon, 22 Jun 1998 …... Content-Length: 6821 Content-Type: text/html dados, p. e., dados dados dados dados dados ... arquivo HTML requisitadosexta-feira, 2 de março de 12 42
  43. 43. Códigos de estado Códigos de estado da resposta HTTP primeira linha da mensagem de resposta servidor->cliente alguns exemplos de código: 200 OK "  requisição bem-sucedida, objeto requisitado mais adiante 301 Moved Permanently "  objeto requisitado movido, novo local especificado mais adiante na mensagem (Location:) 400 Bad Request "  mensagem de requisição não entendida pelo servidor 404 Not Found "  documento requisitado não localizado neste servidor 505 HTTP Version Not Supportedsexta-feira, 2 de março de 12 43
  44. 44. sexta-feira, 2 de março de 12 44
  45. 45. Estado usuário-servidor: cookies cookies Muitos sites importantes Exemplo: usam cookies !  Susana sempre acessa a Quatro componentes: 1) linha de cabeçalho de Internet pelo PC cookie da mensagem de !  visita um site de comércio resposta HTTP eletrônico pela primeira vez 2) linha de cabeçalho de cookie na mensagem de !  quando as primeiras requisição HTTP requisições HTTP chegam ao 3) arquivo de cookie na site, este cria: máquina do usuário, controlado pelo "  ID exclusivo navegador do usuário "  entrada no banco de dados de 4) banco de dados de apoio apoio para o ID no site Websexta-feira, 2 de março de 12 45
  46. 46. cookies cliente cliente servidor servidor ebay 8734 requisição http normal servidor Amazon arq. de cookie resposta http normal cria ID 1678 Set-cookie: 1678 para usuário cria entrada ebay 8734 amazon 1678 requisição http normal cookie: 1678 ação acessa específica uma semana depois: resposta http normal do cookie banco de dados de acessa apoio ebay 8734 requisição http normal amazon 1678 cookie: 1678 ação específica resposta http normal do cookiesexta-feira, 2 de março de 12 46
  47. 47. cookies cookies podem ter: ter: O O que os cookies podem ter: que os cookies podem aparte aparte !  autorização Cookies e privacidade: !  autorização O que os cookies podem ter: Cookies e privacidade: aparte !  carrinhos de compras !  cookies permitem que !  autorização de compras !  carrinhos Cookies e privacidade: que os !  cookies permitem sites descubram !  recomendações !  recomendações !  carrinhos de compras muitoos sites descubram !  cookies permitem que sobre você !  estado da sessão do muito sobre você !  estado da sessão do !  recomendações Web) !  você sites fornecer os pode descubram usuário (e-mail da muitoe-mail aos sites !  e sobre você nome você pode fornecer !  estado da sessão do Web) usuário (e-mail da Como manter o “estado”: !  você pode fornecer sites nome e e-mail aos !  usuário (e-mail da Web) Como manter do“estado”: mantêm extremidades o protocolo: nome e e-mail aos sites mantendo o emissor/receptor por !  manter estado: estado no o “estado”: Comoextremidades do protocolo: mantêm múltiplas transações estado no emissor/receptor por !  extremidades do protocolo: mantêm cookies: mensagens HTTP múltiplas transações ! estado no emissor/receptor por transportam estado múltiplas transações HTTP !  cookies: mensagens transportam estado !  cookies: mensagens HTTP transportam estadosexta-feira, 2 de março de 12 47
  48. 48. cache (web proxy) Caches Web (servidor proxy) objetivo: satisfazer a requisição do cliente sem envolver servidor de origem !  usuário prepara servidor de origem navegador: acessos à Web via cache servidor !  navegador envia todas proxy cliente as requisições HTTP ao cache "  objeto no cache: cache retorna objeto "  ou cache requisita objeto do servidor de cliente servidor origem, depois retorna de origem objeto ao clientesexta-feira, 2 de março de 12 48
  49. 49. chache (web proxy) Mais sobre caching Web !  cache atua como Por que caching Web? cliente e servidor !  reduz tempo de resposta à !  normalmente, cache é requisição do cliente instalado por ISP (da !  reduz tráfego no enlace de universidade, empresa, acesso de uma instituição residencial) !  Internet densa com caches: permite que provedores de conteúdo “fracos” remetam conteúdo efetivamente (mas o mesmo ocorre com compartilhamento de arquivos P2P)sexta-feira, 2 de março de 12 49
  50. 50. exemplo caching Exemplo de caching suposições servidores !  tamanho médio do objeto = de origem 1.000.000 bits Internet !  taxa de requisição média dos pública navegadores da instituição aos servidores de origem = 15/s !  atraso do roteador institucional a enlace de qualquer servidor de origem e de acesso a 15 Mbps volta ao roteador = 2 s rede institucional consequências LAN de 100 Mbps !  utilização na LAN = 15% !  utilização no enlace de acesso = 100% !  atraso total = atraso da Internet + cache atraso do acesso + atraso da LAN institucional = 2 s + x minutos + y milissegundossexta-feira, 2 de março de 12 50
  51. 51. exemplo caching solução possível servidores !  aumentar largura de banda do de origem enlace de acesso para, digamos, 100 Mbps Internet pública consequência !  utilização na LAN = 15% !  utilização no enlace de acesso = 15% enlace de acesso a 100 Mbps !  atraso total = atraso da Internet + rede atraso do acesso + atraso da LAN = institucional LAN de 100 Mbps 2 s + x ms + y ms !  normalmente, uma atualização dispendiosa cache institucionalsexta-feira, 2 de março de 12 51
  52. 52. exemplo caching servidores possível solução: instalar cache de origem !  suponha que índice de acerto é 0,4 Internet consequência pública !  40% de requisições serão satisfeitas imediatamente !  60% de requisições satisfeitas pelo servidor de origem enlace de acesso a 15 Mbps !  utilização do enlace de acesso rede reduzida para 60%, resultando institucional LAN de 100 Mbps em atrasos insignificantes (digamos, 10 ms) !  atraso médio total = atraso da Internet + atraso de acesso + atraso da LAN = 0,6*(2,01) s + cache 0,4*milissegundos < 1,4 s institucionalsexta-feira, 2 de março de 12 52
  53. 53. FTP (arquivos)sexta-feira, 2 de março de 12 53
  54. 54. FTP: o protocolo de Transferência de arquivos (FTP) transferência de arquivos interface cliente transf. de arquivos servidor de usuário FTP FTP FTP usuário no hospedeiro sistema de sistema de arquivo remoto arquivo local !  transfere arquivo de/para hospedeiro remoto !  modelo cliente/servidor cliente: lado que inicia transferência (de/para remoto) "  "  servidor: hospedeiro remoto !  ftp: RFC 959 !  servidor ftp: porta 21sexta-feira, 2 de março de 12 54
  55. 55. FTP: conexões separadas controle de FTP - características para controle e dados remoto enviando comandos por !  cliente navega por diretório FTP: conexões separadas conexão de controleTCP conexão de controle para controleée dados comando de transferência de !  cliente FTP contacta servidor FTP na porta 21, TCP porta 21 !  quando servidor recebe protocolo de transporte arquivo, abrecontrole TCP TCP conexão de 2a conexão !  cliente FTP contactaconexão !  cliente autorizado por servidor (para arquivo) dados cliente cliente conexão de 21 porta com TCPservidor FTP na porta 21, TCP é porta 20 de controle !  após transferir um arquivo, FTP FTP protocolo de transporte !  cliente navega por diretório servidor fecha conexão de conexão de dados TCP !  cliente autorizado por conexão cliente servidor dados remoto enviando comandos por !  servidor abre outra conexão porta 20 de controle FTP FTP conexão de controle de dados TCP para transferirparadas cliente navega por diretório !  !  quando servidor recebe remoto enviando comandos por !  outro arquivo outra conexão servidor abreados comando dede controle conexão transferência de !  conexão de controle: “fora da de dados TCP para transferir arquivo, abre 2 TCP a conexão TCP conexão de controle !  quandoporta 21 servidor recebe dor (para arquivo) com cliente de banda”arquivo outro comando de transferência !  conexão de controle: “fora da arquivo, abre 2 a conexão TCP !  após transferir um arquivo, !  servidor FTP mantém banda” “estado”: diretório atual, servidor arquivo) servidorexão cliente(para fecha conexão de conexão de dados com cliente porta 20 TCP dados transferir umFTP FTPapós !  arquivo, servidor FTP mantém !  autenticação anterior o servidor fecha conexão de “estado”: diretório atual, por !  servidor abre outra conexão dados autenticação anterior de dados TCP para transferir outro arquivo de sexta-feira, 2 de março de 12 55
  56. 56. FTP - comandos Comandos e respostas FTP exemplos de comandos: exemplos de códigos de !  enviado como texto ASCII retorno pelo canal de controle !  código e frase de estado !  USER nome-usuário (como no HTTP) !  PASS senha !  331 Username OK, !  LIST retorna lista de password required arquivos no diretório atual !  125 data connection already open; !  RETR nome-arquivo transfer starting recupera (apanha) arquivo !  425 Can’t open data !  STOR nome-arquivo connection armazena (coloca) arquivo !  452 Error writing no hospedeiro remoto filesexta-feira, 2 de março de 12 56
  57. 57. sexta-feira, 2 de março de 12 57
  58. 58. sexta-feira, 2 de março de 12 58
  59. 59. Email (SMTP, POP3, IMAP)sexta-feira, 2 de março de 12 59
  60. 60. Conceitos Correio eletrônico Correio eletrônico Três componentes principais: agente usuário fila de msg. de saída !  agentes do usuário serv. agente caixa de entrada Três !  servidores de correio componentes principais: correio fila de do usuário !  Simple Mail Transfer Protocol: usuário msg. de saída !  agentes do usuário SMTP SMTP agente caixa de entrada !  servidores de correio serv. correio do usuário usuário Agente do usuário !  Simple Mail Transfer Protocol: SMTP mail SMTPtambém chamado “leitor de !  SMTP server agenteagente correio” SMTP usuário serv. usuário !  redigir, editar, ler mensagens Agente do usuário SMTP correio mail de correio eletrônico !  tambéme., Eudora, Outlook, de chamado “leitor elm, server agente !  p. agente correio” Mozilla Thunderbird SMTP usuário usuário agente serv. !  redigir, editar, ler mensagens !  mensagens entrando e saindo usuário correio agente armazenadas no servidor de correio eletrônico usuário agente !  p. e., Eudora, Outlook, elm, usuário Mozilla Thunderbird agentesexta-feira, 2 de março de 12 60
  61. 61. !  agentes do usuário caixa de entr Conceitos !  servidores de correio serv. correio do usuário !  Simple Mail Transfer Protocol: SMTP Correio eletrônico SMTP age usu Três componentes principais: agente fila de Agente do usuário SMTP usuário msg. de saída mail !  agentes do usuário !  também chamado correio de “leitor serv. server caixa de entrada !  servidores de agen correio” !  Simple Mail Transfer Protocol: correio SMTP do usuário usuár serv. SMTP !  redigir, editar, ler mensagens SMTP agente correio usuário de correio eletrônico Agente do usuário SMTP mail agente !  p. e., Eudora,chamado “leitor de !  também Outlook, elm, server agente usuário Mozilla Thunderbird correio” SMTPagente usuário serv. !  mensagens entrando !  redigir, editar, ler e saindo mensagens correio usuário de correio eletrônico agente armazenadas no servidor usuário agente !  p. e., Eudora, Outlook, elm, usuário Mozilla Thunderbird agente !  mensagens entrando e saindo usuário agente armazenadas no servidor usuáriosexta-feira, 2 de março de 12 61
  62. 62. Correio eletrônico:Conceitos Correio eletrônico servidores de correio Três componentes principais: agente agente fila de servidores de usuário !  agentes do correio usuário usuário msg. de saída !  caixa de correio correio !  servidores de contém serv. caixa de entrada serv. do usuário mensagens que chegam para correio correio agente !  Simple Mail Transfer Protocol: o usuário usuário SMTP SMTP !  fila de mensagens com SMTP serv. usuário agente mensagens usuário Agente do de correio a correio agente serem enviadas SMTP mail usuário !  também chamado “leitor de SMTP server agente !  protocolo SMTP entre correio” SMTP usuário servidores editar, ler mensagens !  redigir, de correio para serv. SMTP enviar mensagens de e-mail correio serv. agente de correio eletrônico "  cliente: servidor de envio correio usuário agente !  p. e., Eudora, Outlook, elm, de correio Mozilla Thunderbird usuário agente "  “servidor”: servidor de agente !  mensagens entrando e saindo usuário usuário recepção de no servidor armazenadas correio agente agente usuário usuáriosexta-feira, 2 de março de 12 62
  63. 63. Correio eletrônico: Correio eletrônico: SMTP [RFC 2821] SMTP [RFC 2821] usa TCP para transferir de modo con !  usa TCP para transferir de modo confiável a mensagem !  de e-mail do cliente ao servidor, porta 25 de e-mail do cliente ao servidor, port !  transferência direta: servidor de envio ao servidor de recepção transferência direta: servidor de env !  recepção !  três fases da transferência "  handshaking (saudação) "  transferência fases da transferência !  três de mensagens "  handshaking (saudação) "  fechamento !  interação comando/resposta "  transferência de mensagens "  comandos: texto ASCII "  fechamento "  resposta: código e frase de estado !  mensagens devem estar em ASCII de 7 bits !  interação comando/resposta "  comandos: texto ASCIIsexta-feira, 2 de março de 12 63
  64. 64. Cenário: Alice envia Alice envia mensagem a Bob mensagem a Bob 1) Alice usa AU para redigir mensagem “para” 4) Cliente SMTP envia bob@algumaescola.edu mensagem de Alice pela 2) O AU de Alice envia conexão TCP mensagem ao seu servidor 5) Servidor de correio de Bob de correio, que é colocada coloca mensagem na caixa na fila de mensagens de correio de Bob 3) Lado cliente do SMTP abre 6) Bob chama seu agente do conexão TCP com servidor de correio de Bob usuário para ler mensagem 1 serv. serv. correio agente agente correio 2 usuário usuário 3 6 4 5sexta-feira, 2 de março de 12 64
  65. 65. Exemplo de interação SMTP S: 220 hamburger.edu C: HELO crepes.fr S: 250 Hello crepes.fr, pleased to meet you C: MAIL FROM: <alice@crepes.fr> S: 250 alice@crepes.fr... Sender ok C: RCPT TO: <bob@hamburger.edu> S: 250 bob@hamburger.edu ... Recipient ok C: DATA S: 354 Enter mail, end with "." on a line by itself C: Você gosta de ketchup? C: Que tal picles? C: . S: 250 Message accepted for delivery C: QUIT S: 221 hamburger.edu closing connectionsexta-feira, 2 de março de 12 65
  66. 66. SMTP: palavras finais comentários !  SMTP usa conexões Comparação com HTTP: persistentes !  HTTP: puxa !  SMTP requer que a mensagem (cabeçalho e !  SMTP: empurra corpo) esteja em ASCII de !  ambos têm interação de 7 bits comando/resposta em !  servidor SMTP usa ASCII, códigos de estado CRLF.CRLF para determinar fim da !  HTTP: cada objeto mensagem encapsulado em sua própria mensagem de resposta !  SMTP: múltiplos objetos enviados na mensagem multipartesexta-feira, 2 de março de 12 66
  67. 67. Formato da mensagem de correio Exemplo de mensagem SMTP: protocolo para trocar mensagens de e-mail cabeçalho linha RFC 822: padrão para formato em de mensagem de texto: branco !  linhas de cabeçalho, p. e., Para: "  corpo "  De: "  Assunto: diferente dos comandos SMTP! !  corpo "  a “mensagem”, apenas em caracteres ASCIIsexta-feira, 2 de março de 12 67
  68. 68. Protocolos de acesso Como acessar msgs de correio SMTP SMTP prot. agente agente usuário acesso usuário servidor de correio servidor de correio do emissor do receptor !  SMTP: remessa/armazenamento no servidor do receptor !  protocolo de acesso ao correio: recuperação do servidor "  POP: Post Office Protocol [RFC 1939] •  autorização (agente <--> servidor) e download "  IMAP: Internet Mail Access Protocol [RFC 1730] •  mais recursos (mais complexo) •  manipulação de msgs armazenadas no servidor "  HTTP: gmail, Hotmail, Yahoo! Mail etc.sexta-feira, 2 de março de 12 68
  69. 69. Protocolo POP3 fase de autorização S: +OK POP3 server ready C: user bob !  comandos do cliente: S: +OK C: pass hungry user: declare “username” "  S: +OK usuário logado com sucesso "  pass: senha C: list !  respostas do servidor S: 1 498 S: 2 912 "  +OK S: . "  -ERR C: retr 1 S: <message 1 contents> fase de transação, cliente: S: . !  list: lista números de msg. C: dele 1 C: retr 2 !  retr: recupera mensagem por S: <message 1 contents> número S: . C: dele 2 !  dele: exclui C: quit !  quit S: +OK serv. POP3 desconectandosexta-feira, 2 de março de 12 69
  70. 70. POP3 (mais) e IMAP Mais sobre POP3 IMAP !  Exemplo anterior usa !  Mantém todas as modo “download e mensagens em um local: o excluir” servidor !  Bob não pode reler e- -mail se mudar o !  Permite que o usuário cliente organize msgs em pastas !  “Download-e-manter”: !  IMAP mantém estado do cópias de mensagens usuário entre sessões: em clientes diferentes "  nomes de pastas e !  POP3 é sem estado mapeamento entre IDs de entre as sessões mensagem e nome de pastasexta-feira, 2 de março de 12 70
  71. 71. E-mail e HTTP Hotmail Gmailsexta-feira, 2 de março de 12 71
  72. 72. DNS (Domain Name Sytem)sexta-feira, 2 de março de 12 72
  73. 73. Conceitos Domain Name System DNS: Domain Name System DNS: Iniciais pessoas: muitos Domain Name System: identificadores: pessoas: !  banco de dados distribuído muitos Domain N identificadores: CPF, nome, passaporte "  implementado na hierarquia !  banco d muitos servidores deimplem "  CPF, nome, passaporte nome hospedeiros da Internet, muitos !  protocolo em nível de aplica hospedeiros da Internet, roteadores: !  protoco hospedeiro, roteadores, roteadores: hosped "  endereço IP (32 bits) – "  endereço IP (32 bits) – nomes servido servidores de se usado para endereçar usado para endereçar comunicam para resolver no comunic datagramas (tradução endereço/nome) datagramas (traduç "  “nome”, p. e., "  Nota: função básica Not "  “nome”, p. e., "  da ww.yahoo.com – usado ww.yahoo.com – usado implementada Internet, Inte pelos humanos pelos humanos como protocolo em nívecom P: Como mapear entre aplicação apli P: Como mapear entre endereço "  complexidade na “borda IP e nome? "  com endereço IP e nome? red redesexta-feira, 2 de março de 12 73
  74. 74. main Name System Conceitos Iniciaisitos Domain Name System: dores: !  banco de dados distribuídome, passaporte implementado na hierarquia de muitos servidores de nomes da Internet, !  protocolo em nível de aplicaçãoes: hospedeiro, roteadores, o IP (32 bits) – servidores de nomes seara endereçar comunicam para resolver nomesmas (tradução endereço/nome)p. e., "  Nota: função básica da o.com – usado Internet, implementada manos como protocolo em nível de ear entre aplicação IP e nome? "  complexidade na “borda” da rede sexta-feira, 2 de março de 12 74
  75. 75. DNS DNS DNS Serviços de DNS Serviços de DNS Por que não centralizar o o Por que não centralizar !  tradução nome de !  tradução nome de DNS? DNS? hospedeiro -> endereço !  !  único ponto de falha hospedeiro -> endereço único ponto de falha IP IP volume de tráfego !  !  volume de tráfego !  apelidos de hospedeiro !  apelidos de hospedeiro !  banco de dados "  nomes canônicos !  banco de dados "  nomes canônicos centralizado distante centralizado distante !  apelidos de servidor de !  apelidos de servidor de !  manutenção correio correio !  manutenção !  distribuição de carga !  distribuição de carga "  servidores Web Não é escalável! "  servidores Web replicados: conjunto de Não é escalável! endereços IPconjunto de replicados: para um nome canônico para um endereços IP nome canônicosexta-feira, 2 de março de 12 75
  76. 76. Banco de dados distribuído, hierárquico Servidores DNS raiz servs. DNS com servs. DNS org servs. DNS edu servs. DNS servs. DNS servs. DNS servs. DNS servs. DNS pbs.org poly.edu umass.edu yahoo.com amazon.com Cliente quer IP para www.amazon.com; 1a aprox: !  cliente consulta serv. raiz para achar servidor DNS com !  cliente consulta serv. DNS com para obter serv. DNS amazon.com !  cliente consulta serv. DNS amazon.com para obter endereço IP para www.amazon.comsexta-feira, 2 de março de 12 76
  77. 77. DNS: Servidores de nomes raiz Servidor raiz !  contactados por servidores de nomes locais que não conseguem traduzir nome !  servidores de nomes raiz: "  contacta servidor de nomes com autoridade se o mapeamento não for conhecido "  obtém mapeamento "  retorna mapeamento ao servidor de nomes local 13 servidores de nomes raiz no mundosexta-feira, 2 de março de 12 77
  78. 78. TLD e servidores com outros níveis Servidores DNS autoridade !  servidores de domínio de alto nível (TLD) : "  responsáveis por com, org, net, edu etc. e todos os domínios de país de alto nível: br, uk, fr, ca, jp. "  A Network Solutions mantém servidores para TLD com "  Educause para TLD edu !  servidores DNS com autoridade: "  servidores DNS da organização, provendo nome de hospedeiro com autoridade a mapeamentos IP para os servidores da organização (p. e., Web, correio). "  podem ser mantidos pela organização ou provedor de serviçossexta-feira, 2 de março de 12 78
  79. 79. Servidor DNS local Servidor de nomes local !  não pertence estritamente à hierarquia !  cada ISP (ISP residencial, empresa, universidade) tem um. "  também chamado “servidor de nomes default” !  quando hospedeiro faz consulta ao DNS, consulta é enviada ao seu servidor DNS local "  atua como proxy, encaminha consulta para hierarquiasexta-feira, 2 de março de 12 79

×