unidade ii - camada de aplicacao 2013.2

Upload: adrianoapdf752

Post on 28-Mar-2016

7 views

Category:

Documents


0 download

DESCRIPTION

redes tcp

TRANSCRIPT

  • Arquitetura de Redes de Computadores

    Unidade II Camada de AplicaoProf Sergio Cardoso

    [email protected]

    2Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 2

    3Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 3

    Camada de aplicao

    Nossos objetivos: Aspectos conceituais, aspectos de implementao de protocolos de

    aplicao de redes Modelos de servio da camada de transporte

    o Paradigma cliente-servidoro Paradigma peer-to-peer

    Aprender sobre protocolos de camada de aplicao examinando protocolos usuais

    o HTTPo FTPo Telnet/SSHo SMTP/ POP3/ IMAPo DNS

    4Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 4

    Criando uma nova aplicao de rede

    Escrever programas que Executem em diferentes sistemas

    finais e Se comuniquem atravs de uma

    rede. Ex.: Web software de servidor

    Web se comunicando com software do browser.

    No preciso escrever software para dispositivos do ncleo da rede dispositivos do ncleo da rede no

    executam aplicaes do usurio as aplicaes nos sistemas finais

    permitem rpido desenvolvimento e propagao

  • 5Definies de protocoloda camada de aplicao

    tipos de mensagens trocadas, p. e., requisio, resposta

    sintaxe da mensagem: que campos nas mensagens & como os campos so delineados

    semntica da mensagem significado da informao nos campos

    regras de quando e como processos enviam & respondem a mensagens protocolos de domnio pblico:

    definidos em RFCs prov interoperabilidade

    p. e., HTTP, SMTP, BitTorrent

    protocolos proprietrios: p. e., Skype, ppstream

    Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 5 6

    Algumas aplicaes de rede

    e-mail web mensagem instantnea login remoto compartilhamento de

    arquivos P2P jogos em rede

    multiusurios clipes de vdeo

    armazenados em fluxo contnuo

    redes sociais VoIP (voice over IP) videoconferncia em

    tempo real computao em grade

    Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 6

    7

    Arquiteturas de aplicao

    Cliente-servidor Incluindo centros de dados/cloud computing

    Peer-to-peer (P2P) Hbrida de cliente-servidor e P2P

    Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 7 8Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 8

    Arquitetura cliente-servidor

    Servidor: Hospedeiro sempre ligado Endereo IP permanente Fornece servios solicitados pelo

    cliente Server farms por expanso

    Clientes: Comunicam-se com o servidor Pode ser conectado

    intermitentemente Pode ter endereo IP dinmico No se comunicam diretamente

    uns com os outros

  • 9Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 9

    Modelo Cliente Servidor

    10Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 10

    Cliente-Servidor

    Vantagens

    Segurana

    Controle central de arquivos

    Servidores dedicados e otimizados

    Os usurios no se preocupam com a administrao

    Desvantagens

    Custo

    Hardware

    Software

    necessrio um administrador

    Baixa escalabilidade

    Baixa disponibilidade

    11

    Centros de dados da Google

    custo estimado do centro de dados: US$ 600 M Google gastou US$2,4Bi em 2007 em novos centros de dados cada centro de dados usa de 50 a 100 megawatts de potncia

    Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 11 12Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 12

    Arquitetura P2P pura

    Nenhum servidor est sempre ligado

    Sistemas finais arbitrrios se comunicam diretamente

    Pares so conectados intermitentemente e mudam endereos IP

    Altamente escalveis mas difceis de administrar

  • 13Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 13

    Peer-to-Peer

    Vantagens Sem investimento extra com

    servidores Alta escalabilidade Alta disponibilidade Sem administrador

    Desvantagens Sem organizao central

    Difcil localizao de arquivos Duplicaes desnecessrias

    Os usurios so os administradores

    Sem segurana

    14Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 14

    Hbrida de cliente-servidor e P2P

    Integra os conceitos da arquitetura cliente servidor com P2P Cliente Servidor

    Normalmente um servidor para autenticao e localizao

    P2P Depois de localizado, troca direta entre os pares

    Exemplo Skype

    aplicao P2P voice-over-IP P2P servidor centralizado: achando endereo da parte remota: conexo cliente-cliente: direta (no atravs de servidor)

    Mensagem instantnea bate-papo entre dois usurios P2P servio centralizado: deteco/localizao da presena do cliente

    o usurio registra seu endereo IP com servidor central quando entra on-lineo usurio contata servidor central para descobrir endereos IP dos parceiros

    15Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 15

    Comunicao de processos

    Processo: programa executando num hospedeiro Dentro do mesmo hospedeiro:

    dois processos se comunicam usando comunicao interprocesso (definido pelo SO)

    Processos em diferentes hospedeiros se comunicam por meio de troca de mensagens

    Processo cliente:

    o processo que inicia a comunicao

    Processo servidor:o processo que espera para ser contatado

    Nota: aplicaes com arquiteturas P2P possuem processos cliente e processos servidor

    16Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 16

    Sockets

    Um processo envia/recebe mensagens para/de seu socket

    a interface de comunicao entre a camada de aplicao e camada de transporte

    O socket anlogo a uma porta O processo de envio empurra a

    mensagem para fora da porta O processo de envio confia na

    infra-estrutura de transporte no outro lado da porta que leva a mensagem para o socket no processo de recepo.

  • 17Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 17

    De qual servio de transporte uma aplicao necessita?

    Perda de dados Algumas aplicaes (ex.: udio) podem tolerar alguma perda Outras aplicaes (ex.: transferncia de arquivos, telnet) exigem

    transferncia de dados 100% confivel

    Temporizao Algumas aplicaes (ex.: telefonia Internet, jogos interativos)

    exigem baixos atrasos para serem efetivos

    Banda passante / Vazo Algumas aplicaes (ex.: multimdia) exigem uma banda mnima

    para serem efetivas Outras aplicaes (aplicaes elsticas) melhoram quando a

    banda disponvel aumenta Segurana

    criptografia, integridade de dados,

    18Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 18

    Servios dos protocolos de transporte da Internet

    Servio TCP: Orientado conexo:

    conexo requerida entre processos cliente e servidor

    Transporte confivel entre os processor de envio e recepo Controle de fluxo:

    o transmissor no sobrecarrega o receptor

    Controle de congestionamento: protege a rede do excesso de trfego

    No oferece: garantias de temporizao e de banda mnima

    Servio UDP: Transferncia de dados no confivel entre os processos transmissor e receptor No oferece:

    estabelecimento de conexo, confiabilidade, controle de fluxo e de congestionamento, garantia de temporizao e de banda mnima.

    P.: Por que ambos? Por que existe o UDP?

    19Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 19

    Aplicao

    transf. arquivose-mail

    documentos Webudio/vdeo

    tempo realudio/vdeo armazenado

    jogos interativosMensageminstantnea

    Perda de dados

    sem perdasem perdasem perdatolerante a perda

    tolerante a perda

    tolerante a perdasem perda

    Vazo

    elsticaelsticaelsticaudio: 5 kbps-1 Mbpsvdeo:10 kbps-5 Mbpso mesmo que antes

    poucos kbps ou maiselstica

    Sensvel ao tempo

    nononosim, centenas de ms

    sim, alguns seg

    sim, centenas de mssim e no

    Requisitos de servio de transporte das aplicaes comuns

    20Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 20

    Aplicao

    e-mailacesso remoto

    Web transf. arquivosmultimdia comfluxo contnuo

    telefonia daInternet

    Protocolo da camadade aplicao

    SMTP [RFC 2821]Telnet [RFC 854]HTTP [RFC 2616]FTP [RFC 959]HTTP (p. e., Youtube), RTP [RFC 1889]SIP, RTP, proprietrio(p. e., Skype)

    Protocolo de transporte bsico

    TCPTCPTCPTCPTCP ou UDP

    normalmente UDP

    Aplicaes da Internet: aplicao,protocolos de transporte

  • 21Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 21

    Protocolos de aplicao e transporte

    Servio Web e Protocolo HTTP

    23Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 23

    Servio World Wide Web

    Servio World Wide Web

    um servio de rede de documentos em hipermdia que so interligados, atravs dos links, e executados na Internet.

    Documentos hipermdia so as pginas web

    Utiliza o protocolo http (hypertext transfer protocolo)

    Transporta apenas texto, qualquer arquivo que no seja texto deve ser transformado em texto

    Orgo regulamentador W3C Consortium www.w3.org

    Servio cliente servidor

    Clienteo Navegador (browser) Internet Explorer, Firefox, Opera, Safari, etc...

    Servidoro Servidor Web Apache, IIS, etc...

    Evoluo: web services

    soluo utilizada na integrao de sistemas e na comunicao entre aplicaes diferentes

    24Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 24

    Web e HTTP

    Pgina Web formada por objetos

    Objeto pode ser arquivo HTML, imagem JPEG, Java applet, arquivo de udio,

    A pgina Web consiste de arquivo-HTML base que inclui vrios objetos referenciados

    Cada objeto endereado por uma URL

    Estrutura de URL

    protocolo://mquina:porta/caminho/recurso

    Exemplo de URL:

    http://www.resultado.com.br:80/final/2010/aprovados.htm

    Protocolo Mquina Porta Caminho Recurso

  • 25Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 25

    Viso geral do HTTP

    HTTP: hypertext transfer protocol

    Protocolo da camada de aplicao da Web

    Utiliza protocolo de transporte TCP

    Modelo cliente/servidor

    Cliente: browser que solicita, recebe e apresenta objetos da Web

    Servidor: envia objetos em resposta a pedidos

    Verses

    HTTP 1.0: RFC 1945

    HTTP 1.1: RFC 2616

    26Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 26

    Viso geral do HTTP

    Funcionamento bsico do http1. Cliente inicia conexo TCP (via socket) para o servidor na porta 802. Servidor aceita uma conexo TCP do cliente3. Cliente envia mensagens HTTP de requisio(mensagens do protocolo

    de camada de aplicao) atravs do browser (cliente HTTP) para o servidor Web (servidor HTTP). O servidor envia o objeto solicitado atravs de mensagens de resposta.

    4. A conexo TCP fechada

    HTTP stateless O servidor no mantm informao sobre os pedidos passados pelos

    clientes Protocolos que mantm informaes de estado so complexos!

    27Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 27

    Conexes HTTP

    HTTP no persistente No mximo, um objeto enviado sobre uma conexo TCP

    Cada objeto solicitado e enviado atravs de uma nica conexo TCP

    O HTTP/1.0 utiliza HTTP no persistente HTTP persistente

    Mltiplos objetos podem ser enviados sobre uma conexo TCP entre o cliente e o servidor

    O HTTP/1.1 utiliza conexes persistentes em seu modo padro O HTTP persistente tem duas variantes

    Persistente sem pipelining:o O cliente emite novas requisies apenas quando a resposta anterior for recebida

    Persistente com pipelining:o O cliente envia requisies assim que encontra um objeto referenciado, respeitando o limite

    configurado no browsero O servidor pode estar configurado para responder a um limite mximo de conexes de uma

    mesma origem

    Para verificar no Firefox Na barra de endereos digite about:config Procurar a opo network.http.pipelining e colocar como true

    28Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 28

    HTTP no persistente

    1a. Cliente HTTP inicia conexo TCP ao servidor HTTP (processo) em www.unicarioca.edu.br. Porta 80 a default para o servidor HTTP.

    2. Cliente HTTP envia HTTP mensagem de requisio (contendo a URL) para o socket da conexo TCP

    1b. Servidor HTTP no hospedeiro www.unicarioca.edu.br esperando pela conexo TCP na porta 80. Aceita conexo, notificando o cliente

    3. Servidor HTTP recebe mensagem de pedido, forma uma mensagem de resposta contendo o objeto solicitado (graduacao/index.html), envia mensagem para o socket

    Tempo

    (contm texto,referncias a 10 imagens jpeg)Usurio entra com a URL: www.unicarioca.edu.br/graduacao/index.html

  • 29Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 29

    HTTP no persistente

    5. Cliente HTTP recebe mensagem de resposta contendo o arquivo html, apresenta o contedo html. Analisando o arquivo html, encontra 10 objetos jpeg referenciados

    6. Passos 1-5 so repetidos para cada um dos 10 objetos jpeg.

    4. Servidor HTTP fecha conexo TCP.

    Tempo

    30Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 30

    Carriage return, line feed

    indica fim da mensagem

    Dois tipos de mensagens HTTP: Requisio (request), Resposta (response)

    HTTP request message:

    ASCII (formato de texto legvel)

    GET /somedir/page.html HTTP/1.0 Host: www.umsite.com.brUser-agent: Mozilla/4.0 Accept: text/html, image/gif,image/jpeg Accept-language:pt-br

    (extra carriage return, line feed)

    Linha de pedido / requisio(comandos GET, POST,

    HEAD )Linhas decabealho

    Mensagem HTTP request

    31

    Mensagem de requisio HTTP: formato geral

    Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 31 32Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 32

    Tipos de mtodos

    HTTP/1.0 GET POST HEAD

    Pede para o servidor deixar o objeto requisitado fora da resposta

    HTTP/1.1 GET, POST, HEAD PUT

    Envia o arquivo no corpo da entidade para o caminho especificado no campo de URL

    DELETE Apaga o arquivo especificado no campo de URL

    Mais sobre mtodos: http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html

  • 33

    Entrada de formulrio

    Mtodo Post: Pgina Web frequentemente inclui entrada de formulrio A entrada enviada para o servidor no corpo da entidade

    Mtodo GET: A entrada enviada no campo de URL da linha de requisio:

    Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 33

    www.carioca.br/procuraaluno.php?matricula=1234&nome=jose

    34Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 34

    HTTP/1.0 200 OK Date: Thu, 06 Aug 1998 12:00:15 GMT Server: Apache/1.3.0 (Unix) Last-Modified: Mon, 22 Jun 1998 ... Content-Length: 6821 Content-Type: text/html

    dados dados dados

    Linha de status(protocolo cdigo de

    status frase de status)

    Linhas decabealho

    Dados, ex.: arquivo html

    Mensagem HTTP response

    35Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 35

    Cdigos de status das respostas

    Sries de cdigo existentes: 100: Informational (Informao)

    Utilizada para enviar informaes para o cliente de que sua requisio foi recebida e est sendo processada

    200 - Requisio bem sucedida 200 OK Sucesso: Requisio bem-sucedida, objeto requisitado a seguir nesta mensagem

    300 - Redirecionamento 301 Moved permanently

    o Redirecionamento: Objeto requisitado foi movido, nova localizao especificada a seguir nesta mensagem (Location:)

    400 Erro lado cliente 400 Bad request

    o Erro no cliente: Mensagem de requisio no compreendida pelo servidor 404 Not Found

    o Documento requisitado no encontrado neste servidor

    500 Erro lado servidor 505 HTTP version not supported

    o Erro no servidor: ocorreu um erro no servidor ao cumprir uma requisio vlida.

    Mas exemplos em http://www.w3.org/Protocols/rfc2616/rfc2616-sec6.html#sec6

    36Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 36

    HTTP Request

    Cabealho

    Corpo da mensagem

    Campos de informaes com seus valores

  • 37Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 37

    HTTP Reply 200 ok

    Cabealho

    Corpo da mensagem

    38Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 38

    HTTP Reply 304 Not Modified

    Cabealho

    Corpo da mensagem

    39Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 39

    HTTP Request Envio Informaes

    Cabealho

    Corpo da mensagem

    Envio de informaes pelo mtodo GetGET /cert/hit.dll?sitio_id=20607&path=/capa/-&referer=&size=1280&colors=32&java=true&flash=9

    40

    Estado usurio-servidor: cookies

    Muitos sites importantes usam cookies

    Quatro componentes:1) linha de cabealho de cookie da

    mensagem de resposta HTTP2) linha de cabealho de cookie na

    mensagem de requisio HTTP3) arquivo de cookie na mquina

    do usurio, controlado pelo navegador do usurio

    4) banco de dados de apoio no site Web

    Exemplo: Usurio sempre acessa a

    Internet pelo PC visita um site de comrcio

    eletrnico pela primeira vez quando as primeiras

    requisies HTTP chegam ao site, este cria: ID exclusivo entrada no banco de dados de

    apoio para o ID

    Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 40

  • 41

    cliente servidor

    resposta http normal

    resposta http normal

    arq. de cookie

    uma semana depois:

    requisio http normalcookie: 1678 ao

    especficado cookie

    acessa

    ebay 8734requisio http normal servidor Amazon

    cria ID 1678para usurio cria entrada

    resposta http normal Set-cookie: 1678

    ebay 8734amazon 1678

    requisio http normalcookie: 1678 ao

    especficado cookie

    acessaebay 8734amazon 1678

    banco dedados deapoio

    Estado usurio-servidor: cookies

    Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 41 42

    Estado usurio-servidor: cookies

    O que os cookies podem ter: autorizao carrinhos de compras recomendaes estado da sesso do usurio

    (e-mail da Web)

    Cookies e privacidade: cookies permitem que os sites

    descubram muito sobre voc voc pode fornecer nome e e-mail

    aos sites

    aparte

    Como manter o estado: extremidades do protocolo: mantm estado no

    emissor/receptor por mltiplas transaes cookies: mensagens HTTP transportam estado

    Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 42

    43

    Caches Web (servidor proxy)

    Objetivo: Satisfazer a requisio do

    cliente sem envolver servidor de origem

    usurio prepara navegador: acessos Web via cache

    navegador envia todas as requisies HTTP ao cache objeto no cache: cache retorna

    objeto ou cache requisita objeto do

    servidor de origem, depois retorna objeto ao cliente

    cliente

    servidorproxy

    clienteservidor

    de origem

    servidorde origem

    Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 43 44

    Mais sobre caching Web

    cache atua como cliente e servidor

    normalmente, cache instalado por ISP (da universidade, empresa, residencial)

    Por que caching Web? reduz tempo de resposta

    requisio do cliente reduz trfego no enlace de

    acesso de uma instituio Internet densa com caches:

    permite que provedores de contedo fracos remetam contedo efetivamente (mas o mesmo ocorre com compartilhamento de arquivos P2P)

    Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 44

  • 45

    GET condicional

    Objetivo: no enviar objeto

    se o cache tiver verso atualizada cache: especifica data da cpia em

    cache na requisio HTTPIf-modified-since:

    servidor: resposta no contm objeto se a cpia em cache estiver atualizada: HTTP/1.0 304 Not Modified

    cache servidor

    msg requisio HTTPIf-modified-since:

    resposta HTTPHTTP/1.0

    304 Not Modified

    objeto no

    modificado

    msg requisio HTTPIf-modified-since:

    resposta HTTPHTTP/1.0 200 OK

    objeto modificado

    Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 45 46Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 46

    Hyper Text Transfer Protocol over SSL (HTTPS)

    Protocolo de aplicao da web que utiliza criptografia Garante privacidade (criptografia) Garante a identidade das partes envolvidas em uma

    transferncia Porta 443/TCP

    https://nome_mquina/recurso

    Transferncia de arquivos e protocolo FTP

    48Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 48

    FTP: o protocolo de transferncia de arquivos

    Transferncia de arquivos de e para o computador remoto

    Modelo cliente servidor Cliente: lado que inicia a transferncia (seja de ou para o lado remoto) Servidor: hospedeiro remoto

    FTP: RFC 959

    FTP servidor: porta 21

  • 49

    FTP: controle separado, conexes de dados

    Cliente FTP contata o servidor FTP na porta 21, especificando o TCP como protocolo de transporte

    Cliente obtm autorizao pela conexo de controle Cliente navega por diretrio remoto enviando comandos por conexo

    de controle Quando servidor recebe comando de transferncia de arquivo, abre 2a

    conexo TCP (para arquivo) com cliente conexo de dados Aps transferir um arquivo, servidor fecha conexo de dados Servidor abre outra conexo de dados TCP para transferir outro arquivo Conexo de controle: fora da banda Servidor FTP mantm estado: diretrio atual, autenticao anterior

    Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 49 50

    Comandos e respostas FTP

    exemplos de comandos: enviado como texto ASCII pelo canal

    de controle USER nome-usurio PASS senha

    LIST retorna lista de arquivos no diretrio atual

    RETR nome-arquivo recupera(apanha) arquivo

    STOR nome-arquivo armazena(coloca) arquivo no hospedeiro remoto

    exemplos de cdigos de retorno cdigo e frase de estado (como no

    HTTP) 331 Username OK, password

    required 125 data connection already

    open; transfer starting 425 Cant open data

    connection 452 Error writing file

    Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 50

    Acesso Remoto

    52Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 52

    Terminal remoto

    Telnet um protocolo cliente-servidor usado para permitir a comunicao entre computadores ligados numa rede (exemplos: rede local / LAN, Internet), Telnet um protocolo de login/acesso remoto

    Utiliza o protocolo de transporte TCP Utiliza porta 23 Problema:

    Os dados/comandos so trafegados em claro, inclusive a login/senha

    O servio SSH a alternativa para acesso remoto que implementa criptografia Utiliza porta 22

  • 53Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 53

    Exemplo de Telnet

    Servio de correio eletrnico e protocolos SMTP, POP3 e IMAP

    55Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 55

    Correio eletrnico

    Trs componentes principais: Agentes de usurio Servidores de correio Simple mail transfer protocol:

    SMTP

    Agente de usurio leitor de correio Composio, edio, leitura de

    mensagens de correio Ex.: Eudora, Outlook, elm,

    Netscape Messenger Mensagens de entrada e de sada

    so armazenadas no servidor

    caixa de entradado usurio

    fila demsg. de sada

    mailserver

    agenteusurio

    serv.correio

    serv.correio

    SMTP

    SMTP

    agenteusurio

    agenteusurio

    agenteusurio

    agenteusurio

    agenteusurio

    56Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 56

    Correio eletrnico: servidores de correio

    Servidores de correio

    Caixa postal contm mensagens que chegaram (ainda no lidas) para o usurio

    Fila de mensagens contm as mensagens de correio a serem enviadas

    Protocolo SMTP permite aos servidores de correio trocarem mensagens entre si Cliente: servidor de correio que

    envia servidor: servidor de correio que

    recebe

    caixa de entradado usurio

    fila demsg. de sada

    mailserver

    agenteusurio

    serv.correio

    serv.correio

    SMTP

    SMTP

    agenteusurio

    agenteusurio

    agenteusurio

    agenteusurio

    agenteusurio

  • 57Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 57

    Correio eletrnico: SMTP

    Usa TCP para transferncia confivel de mensagens de correio do cliente ao servidor, porta 25

    Transferncia direta: servidor envia direto para o servidor de destino

    Trs fases de transferncia Handshaking (apresentao) Transferncia de mensagens Fechamento

    Interao comando/resposta Comandos: texto ASCII Resposta: cdigo de status e frase

    58

    Cenrio: Alice envia mensagem para Bob

    Alice usa o agente de usurio (UA) para compor a mensagem e para [email protected]

    O agente de usurio dela envia a mensagem para o seu servidor de correio; a mensagem colocada na fila de mensagens.

    O lado cliente do SMTP abre uma conexo TCP com o servidor de correio do Bob.

    O cliente SMTP envia a mensagem de Alice pela conexo TCP. O servidor de correio de Bob coloca a mensagem na caixa de correio de

    Bob. Bob invoca seu agente de usurio para ler a mensagem.

    Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 58

    agenteusurio

    serv.correio

    serv.correio agente

    usurio

    1

    2 3 4 56

    59Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 59

    Exemplo de interao SMTP

    S: 220 provedor1.com

    C: HELO provedor2.com

    S: 250 Ola provedor2.com, prazer em conhecer

    C: MAIL FROM:

    S: 250 [email protected]... Remetente ok

    C: RCPT TO:

    S: 250 [email protected] ... Destinatrio ok

    C: DATA

    S: 354 Entre com o email e termine com "." em uma linha

    C: Voc gosta da aula de Arquitetura de Redes?

    C: Ser que conseguiremos passar?

    C: .

    S: 250 Mensagem aceita para entrega

    C: QUIT

    S: 221 provedor1.com fechando conexo

    60Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 60

    Formato da mensagem de correio

    Correio eletrnico formado por Envelope

    Encapsula uma mensagem Contm as informaes necessrias para o transporte da mensagem

    o Como no correio comum

    Mensagem Composta por cabealho e corpo

  • 61Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 61

    Formato da mensagem de correio

    Linhas de cabealho, ex.: To: From: Subject:diferente dos comandos HTTP

    corpo a mensagem, ASCII somente com

    caracteres

    header

    body

    linha em branco

    62Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 62

    Exemplo de mensagem

    Received: from cliente.br by servidor.br; 16 Jul 06 10:30:01 GMTReceived: from maquina.cliente.br by cliente.br; 16 Jul 06 10:29:58 GMTFrom: [email protected]: [email protected]: Teste

    Teste de envio de correio.

    63Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 63

    Formato das mensagens: extenses multimdia

    MIME: multimedia mail extension Permite transmitir os arquivos que no so texto pelo servio de correio eletrnico

    Ex: imagens, vdeos, documentos do MS Office, etc... Linhas adicionais no cabealho declaram o tipo de contedo MIME

    From: [email protected] To: [email protected] Subject: Picture of yummy crepe. MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Type: image/jpeg

    base64 encoded data ..... .........................

    ......base64 encoded data

    Dados multimdiatipo, subtipo,

    declarao de parmetro

    Mtodo usadopara codificar dados

    Verso da MIME

    Dados codificados

    64Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 64

    Protocolos de acesso ao correio

    No possvel exibir esta imagem no momento.

    SMTP: entrega e armazena no servidor do destino Protocolo de acesso: recupera mensagens do servidor

    POP: Post Office Protocol [RFC 1939] Autorizao (agente servidor) e download

    IMAP: Internet Mail Access Protocol [RFC 1730] Maiores recursos (mais complexo) Manipulao de mensagens armazenadas no servidor

    HTTP: Hotmail , Yahoo! Mail etc.

  • 65

    Protocolo POP3

    fase de autorizao comandos do cliente:

    user: declare username pass: senha

    respostas do servidor +OK -ERR

    fase de transao, cliente: list: lista nmeros de msg. retr: recupera mensagem por

    nmero dele: exclui quit

    C: list S: 1 498 S: 2 912 S: . C: retr 1 S: S: . C: dele 1 C: retr 2 S: S: . C: dele 2 C: quit S: +OK serv. POP3 desconectando

    S: +OK POP3 server ready C: user bob S: +OK C: pass hungry S: +OK usurio logado com sucesso

    Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 65

    Servio de nomesProtocolo DNS

    67

    DNS (Domain Name System)

    O DNS (Domain Name System Sistema de nomes de domnio) (Kurose, 2005):

    1. Um banco de dados distribudo implementado em uma hierarquia de servidores de nome (Servidores DNS), e

    2. Um protocolo de camada de aplicao que permite que hospedeiros consultem o banco de dados distribudos.

    Funo Principal: Traduz um nome de domnio em um endereo IP O uso de nomes facilita a memorizao do usurio ao invs de decorar nmeros IPs ou

    MAC address O protocolo DNS utiliza o protocolo de transporte UDP e usa a porta 53

    Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 67 68Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 68

    Cliente quer o IP para www.unicarioca.br; 1a aprox.: Cliente consulta um servidor de raiz para encontrar o servidor DNS .br Cliente consulta o servidor DNS .br para obter o servidor DNS unicarioca.br Cliente consulta o servidor DNS unicarioca.br para obter o endereo IP para

    www.unicarioca.br

    Base de dados distribuda, hierrquica

  • 69Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 69

    Base de dados distribuda, hierrquica

    70Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 70

    Componentes do servio DNS

    Composto de Servidores DNS locais Trs tipos (classes) de servidores de nomes

    Raiz De domnio de alto nvel (Top-Level Domain TLD) Com autoridade

    71Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 71

    DNS: servidores de nomes raiz

    So contatados pelos servidores de nomes locais que no podem resolver um nome Ponto de entrada no servio

    a.root-servers.net,,m.root-servers.net

    Servidores de nomes raiz: Buscam servidores de nomes autorizados se o mapeamento do nome no for conhecido Conseguem o mapeamento Retornam o mapeamento para o servidor de nomes local

    Existem 13 servidores de nomes raiz no mundo

    72Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 72

    Servidores TLD e autoritrios

    Servidores top-level domain (TLD): Responsveis pelos domnios genricos .com, .org, .net, .edu, etc e

    todos os domnios top-level nacionais .uk, .fr, .ca, .jp, .br, etc. Network Solutions mantm servidores para o TLD .com Educause para o TLD .edu

    Servidores DNS autoritrios: Servidores DNS de organizaes, provm nome de hospedeiro

    autorizado para mapeamentos IP para servidores de organizaes (ex.: Web e mail).

    Podem ser mantidos por uma organizao ou provedor de servios

  • 73Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 73

    Servidor de nomes local

    No pertence estritamente a uma hierarquia

    Cada ISP (ISP residencial, companhia, universidade) possui um Tambm chamado de servidor de nomes default

    Quando um hospedeiro faz uma pergunta a um DNS, a pergunta enviada para seu servidor DNS local

    Age como um proxy, encaminhando as perguntas para dentro da hierarquia

    74Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 74

    hospedeirosolicitantecis.poly.edu

    gaia.umass.edu

    servidor DNS raiz

    serv. DNS localdns.poly.edu

    1

    2

    34

    5

    6

    serv. DNS com autoridadedns.umass.edu

    78

    servidor DNS TLD

    Exemplo de resoluo de nome DNS (1)

    hospedeiro em cis.poly.edu quer endereo IP para gaia.umass.edu

    consulta iterativa ou repetida: servidor contactado

    responde com nome do servidor a contactar

    no conheo esse nome, mas pergunte a este servidor

    75Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 75

    hospedeirosolicitantecis.poly.edu

    gaia.umass.edu

    serv. DNS raiz

    serv. DNS localdns.poly.edu

    1

    2

    45

    6

    serv. DNS com autoridadedns.umass.edu

    7

    8

    serv. DNS TLD

    3

    Exemplo de resoluo de nome DNS (2)

    consulta recursiva: Transfere a resoluo de nome

    para o servidor de nomes contactado

    76Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 76

    Tipos de Zonas e Pesquisas

    Zona de Pesquisa Direta Cliente informa um nome e a resposta o endereo IP Podem ser

    Primriaso Zona autoritativa para um domnio

    Secundriaso Zona espelho de uma zona primriao Precisa ser atualizada frequentemente para manter a consistncias entre zonas

    Zona de Pesquisa Reversa Cliente informa um IP e a resposta o nome Podem ser

    Primriaso Zona autoritativa para um domnio

    Secundriaso Zona espelho de uma zona primriao Precisa ser atualizada frequentemente para manter a consistncias entre zonas

  • 77Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 77

    Zona de Pesquisa Reversa

    Uma pesquisa inversa assume a forma de pergunta, como "Pode me informar o nome DNS do computador que usa o endereo IP 192.168.1.20"? Utiliza-se o domnio in-addr.arpa Para criar o espao para nome inverso, os subdomnios dentro do

    domnio in-addr.arpa so formados usando a ordem inversa dos nmeros na notao decimal com pontos dos endereos IP.

    1.168.192. in-addr.arpa

    78Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 78

    Tipos de registros

    Os registros de recursos SOA e NS ocupam uma funo especial na configurao da zona. Eles so registros obrigatrios para qualquer zona e so normalmente o

    primeiro dos registros de recursos listados nos arquivos. SOA - Inicio de Autoridade

    Identifica o servidor de nomes DNS primrio da Zona. Possui informaes necessrias a replicao dos registros.

    NS - Servidor de Nomes de Delegao Permite a delegao, identificando servidores de DNS para cada Zona. Sempre que um servidor DNS precisa enviar uma consulta a um domnio

    delegado, ele se refere ao registro de recurso NS dos servidores de DNS da zona de destino.

    79

    Tipos de Registros

    Aps criar uma zona, os registros de recursos (RRs) adicionais necessrios precisam ser adicionados a ela. Host(A)

    Para mapear um nome de domnio DNS para um endereo IP usado por um computador.

    Alias (CNAME) Para mapear um nome de domnio DNS alias para outro nome primrio ou

    cannico. Servidor de Mensagens (MX)

    Para mapear um nome de domnio DNS para o nome de um computador que troca ou encaminha mensagens.

    Ponteiro (PTR) Para mapear um nome de domnio DNS inverso com base no endereo IP de

    um computador que aponta para o nome de domnio DNS encaminhado desse computador.

    Outros registros de recursos conforme necessrio.

    Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 79 80Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 80

    DNS - registros de recursos

    Formato (Name, Value, Type, TTL) (cont.) TTL

    Tempo de vida til do registro Determina quando o registro deve ser removido de um cache

  • 81Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 81

    DNS: armazenando e atualizando registros

    Uma vez que um servidor de nomes apreende um mapeamento, ele armazena o mapeamento num registro do tipo cache Registro do cache tornam-se obsoletos (desaparecem) depois de um

    certo tempo Servidores TLD so tipicamente armazenados em cache nos servidores

    de nome locais

    Mecanismos de atualizao e notificao esto sendo projetados pelo IETF RFC 2136 http://www.ietf.org/html.charters/dnsind-charter.html