Baixe o app para aproveitar ainda mais
Prévia do material em texto
Arquitetura de Redes de Computadores Unidade II – Camada de Aplicação Prof Sergio Cardoso ssilva@unicarioca.edu.br 2Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 2 3Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 3 Camada de aplicação � Nossos objetivos: � Entender os aspectos conceituais e de implementação de protocolos de aplicação de redes � Entender sobre as arquiteturas de aplicação � Paradigma cliente-servidor � Paradigma peer-to-peer � Entender como definir os modelos de serviço da camada de transporte � Aprender sobre protocolos de camada de aplicação examinando protocolos usuais o HTTP o FTP o SMTP/ POP3/ IMAP o DNS 4Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 4 Criando uma nova aplicação de rede � Escrever programas que � Executem em diferentes sistemas finais e � Se comuniquem através de uma rede. � Ex.: Web – software de servidor Web se comunicando com software do browser. � Não é preciso escrever software para dispositivos do núcleo da rede � dispositivos do núcleo da rede não executam aplicações do usuário � as aplicações nos sistemas finais permitem rápido desenvolvimento e propagação 5 Camada de aplicação Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 5 6 Protocolos de camada de aplicação TCP/IP Protocolo de serviço de nome de domínio (DNS) - utilizado para resolver nomes de Internet a endereços IP. Telnet - um protocolo de simulação de terminal que é utilizado para fornecer acesso remoto a servidores e dispositivos de rede. Protocolo bootstrap (BOOTP) - um precursor do protocolo DHCP, um protocolo de rede usado para obter informações de endereço IP durante a inicialização Protocolo de Controle Dinâmico de Host (DHCP) - usado para atribuir um endereço IP, a máscara de sub-rede, o gateway padrão e o servidor DNS a um host Protocolo HTTP - usado para transferir arquivos que compõem as páginas Web da World Wide Web. Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 6 7 Protocolos de camada de aplicação TCP/IP File Transfer Protocol (FTP) - usado para transferência interativa de arquivos entre sistemas Protocolo de Transferência Trivial de Arquivo (TFTP) - usado para a transferência sem conexão de arquivo ativo Protocolo SMTP - usado para transferência de mensagens e anexos de e-mail. Protocolo POP - usado por clientes de e-mail para recuperar e-mail de um servidor remoto Protocolo de acesso a mensagens de Internet (IMAP) - outro protocolo para a recuperação do e-mail Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 7 8 Definições de protocolo da camada de aplicação � Devem definir � tipos de mensagens trocadas � Por exemplo, mensagens de requisição e de resposta � sintaxe da mensagem: � que campos nas mensagens e como os campos são delineados � semântica da mensagem � significado da informação nos campos � regras de quando e como os processos enviam e respondem a mensagens Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 8 9 Arquiteturas de aplicação � Cliente-servidor � Incluindo centros de dados/cloud computing � Peer-to-peer (P2P) � Híbrida de cliente-servidor e P2P Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 9 10Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 10 Arquitetura cliente-servidor � Servidor: � Hospedeiro sempre ligado � Endereço IP permanente � Fornece serviços solicitados pelo cliente � Server farms por expansão � Clientes: � Comunicam-se com o servidor � Pode ser conectado intermitentemente � Podem ter endereço IP dinâmicos � Não se comunicam diretamente entre si 11Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 11 Modelo Cliente Servidor 12 Arquitetura cliente-servidor Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 12 13 Arquitetura cliente-servidor Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 13 14Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 14 Cliente-Servidor � Vantagens � Segurança � Controle central de arquivos � Servidores dedicados e otimizados � Os usuários não se preocupam com a administração � Desvantagens � Custo � Hardware � Software � É necessário um administrador � Baixa escalabilidade � Baixa disponibilidade 15Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 15 Arquitetura P2P pura � Nenhum servidor está sempre ligado � Sistemas finais arbitrários se comunicam diretamente � Pares são conectados intermitentemente e mudam endereços IP Altamente escaláveis mas difíceis de administrar 16 Redes Ponto-a-Ponto (P2P) Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 16 Ambos os dispositivos são considerados iguais em comunicação As funções de cliente e servidor são definidas de acordo com a solicitação. 17 Redes Ponto-a-Ponto (P2P) Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 17 Cliente e servidor na mesma comunicação Ambos podem iniciar uma comunicação e são considerados iguais no processo de comunicação. 18Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 18 Peer-to-Peer � Vantagens � Sem investimento extra com servidores � Alta escalabilidade � Alta disponibilidade � Sem administrador � Desvantagens � Sem organização central � Difícil localização de arquivos � Duplicações desnecessárias � Os usuários são os administradores � Sem segurança 19Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 19 Híbrida de cliente-servidor e P2P � Integra os conceitos da arquitetura cliente servidor com P2P � Cliente Servidor � Normalmente um servidor para autenticação e localização � P2P � Depois de localizado, troca direta entre os pares � Exemplo � Skype � aplicação P2P voice-over-IP P2P � servidor centralizado: achando endereço da parte remota: � conexão cliente-cliente: direta (não através de servidor) � Mensagem instantânea � bate-papo entre dois usuários é P2P � serviço centralizado: detecção/localização da presença do cliente o usuário registra seu endereço IP com servidor central quando entra on-line o usuário contata servidor central para descobrir endereços IP dos parceiros 20Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 20 Comunicação de processos � Processo: programa executando num hospedeiro � Dentro do mesmo hospedeiro: � dois processos se comunicam usando comunicação interprocesso (definido pelo SO) � Processos em diferentes hospedeiros se comunicam por meio de troca de mensagens � Processo cliente: o processo que inicia a comunicação � Processo servidor: o processo que espera para ser contatado Nota: aplicações com arquiteturas P2P possuem processos cliente e processos servidor 21Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 21 Sockets � Um processo envia/recebe mensagens para/de seu socket � É a interface de comunicação entre a camada de aplicação e camada de transporte � O socket é análogo 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 recepção. 22 Endereçando processos � Para receber mensagens, processo deve ter identificador � Dispositivo hospedeiro tem endereço IP exclusivo de 32 bits � exercício: use ipconfig do comando prompt para obter seu endereço IP (Windows) � P:Basta o endereço IP do hospedeiro em que o processo é executado para identificar o processo? Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 22 23 Endereçando processos � R: Não, muitos processos podem estar rodando no mesmo hospedeiro � Identificador inclui endereço IP e números de porta associados ao processo no hospedeiro. � Exemplos de número de porta: � servidor HTTP: 80 � servidor de correio: 25 Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 23 24Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 24 De qual serviço de transporte uma aplicação necessita? � Perda de dados � Algumas aplicações (ex.: áudio) podem tolerar alguma perda � Outras aplicações (ex.: transferência de arquivos, telnet) exigem transferência de dados 100% confiável � Temporização � Algumas aplicações (ex.: telefonia Internet, jogos interativos) exigem baixos atrasos para serem “efetivos” � Banda passante / Vazão � Algumas aplicações (ex.: multimídia) exigem uma banda mínima para serem “efetivas” � Outras aplicações (“aplicações elásticas”) melhoram quando a banda disponível aumenta” � Segurança � criptografia, integridade de dados,… 25Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 25 Serviços dos protocolos de transporte da Internet � Serviço TCP: � Orientado à conexão: � conexão requerida entre processos cliente e servidor � Transporte confiável entre os processor de envio e recepção � Controle de fluxo: � o transmissor não sobrecarrega o receptor � Controle de congestionamento: � protege a rede do excesso de tráfego � Não oferece: � garantias de temporização e de banda mínima � Serviço UDP: � Transferência de dados não confiável entre os processos transmissor e receptor � Não oferece: � estabelecimento de conexão, confiabilidade, controle de fluxo e de congestionamento, garantia de temporização e de banda mínima. P.: Por que ambos? Por que existe o UDP? 26Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 26 Aplicação transf. arquivos e-mail documentos Web áudio/vídeo tempo real áudio/vídeo armazenado jogos interativos Mensagem instantânea Perda de dados sem perda sem perda sem perda tolerante a perda tolerante a perda tolerante a perda sem perda Vazão elástica elástica elástica áudio: 5 kbps-1 Mbps vídeo:10 kbps-5 Mbps o mesmo que antes poucos kbps ou mais elástica Sensível ao tempo não não não sim, centenas de ms sim, alguns seg sim, centenas de ms sim e não Requisitos de serviço de transporte das aplicações comuns 27Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 27 Aplicação e-mail acesso remoto Web transf. arquivos multimídia com fluxo contínuo telefonia da Internet Protocolo da camada de aplicação SMTP [RFC 2821] Telnet [RFC 854] HTTP [RFC 2616] FTP [RFC 959] HTTP (p. e., Youtube), RTP [RFC 1889] SIP, RTP, proprietário (p. e., Skype) Protocolo de transporte básico TCP TCP TCP TCP TCP ou UDP normalmente UDP Aplicações da Internet: aplicação, protocolos de transporte 28Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 28 Protocolos de aplicação e transporte Serviço Web e Protocolo HTTP 30Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 30 Serviço World Wide Web � Serviço World Wide Web � É um serviço de rede de documentos em hipermídia que são interligados, através dos links, e executados na Internet. � Documentos hipermídia são as páginas web � Utiliza o protocolo http (hypertext transfer protocolo) � Transporta apenas texto, qualquer arquivo que não seja texto deve ser transformado em texto � Orgão regulamentador W3C Consortium – www.w3.org � Serviço cliente – servidor � Cliente o Navegador (browser) – Internet Explorer, Firefox, Opera, Safari, etc... � Servidor o Servidor Web – Apache, IIS, etc... � Evolução: web services � solução utilizada na integração de sistemas e na comunicação entre aplicações diferentes 31Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 31 Web e HTTP � Página Web formada por objetos � Objeto pode ser arquivo HTML, imagem JPEG, Java applet, arquivo de áudio,… � A página Web consiste de arquivo-HTML base que inclui vários objetos referenciados � Cada objeto é endereçado por uma URL � Estrutura de URL � protocolo://máquina:porta/caminho/recurso � Exemplo de URL: http://www.resultado.com.br:80/final/2010/aprovados.htm Protocolo Máquina Porta Caminho Recurso 32Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 32 Visão geral do HTTP � HTTP: hypertext transfer protocol � Protocolo da camada de aplicação 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 � Versões � HTTP 1.0: RFC 1945 � HTTP 1.1: RFC 2616 33Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 33 Visão geral do HTTP • Funcionamento básico do http 1. Cliente inicia conexão TCP (via socket) para o servidor na porta 80 2. Servidor aceita uma conexão TCP do cliente 3. Cliente envia mensagens HTTP de requisição(mensagens do protocolo de camada de aplicação) através do browser (cliente HTTP) para o servidor Web (servidor HTTP). O servidor envia o objeto solicitado através de mensagens de resposta. 4. A conexão TCP é fechada � HTTP é “stateless” � O servidor não mantém informação sobre os pedidos passados pelos clientes � Protocolos que mantêm informações de “estado” são complexos! 34Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 34 Conexões HTTP � HTTP não persistente � No máximo, um objeto é enviado sobre uma conexão TCP � Cada objeto é solicitado e enviado através de uma única conexão TCP � O HTTP/1.0 utiliza HTTP não persistente � HTTP persistente � Múltiplos objetos podem ser enviados sobre uma conexão TCP entre o cliente e o servidor � O HTTP/1.1 utiliza conexões persistentes em seu modo padrão � O HTTP persistente tem duas variantes � Persistente sem pipelining: o O cliente emite novas requisições apenas quando a resposta anterior for recebida � Persistente com pipelining: o O cliente envia requisições assim que encontra um objeto referenciado, respeitando o limite configurado no browser o O servidor pode estar configurado para responder a um limite máximo de conexões de uma mesma origem � Para verificar no Firefox � Na barra de endereços digite about:config � Procurar a opção network.http.pipelining e colocar como true 35Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 35 HTTP não persistente 1a. Cliente HTTP inicia conexão 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 requisição (contendo a URL) para o socket da conexão TCP 1b. Servidor HTTP no hospedeiro www.unicarioca.edu.br esperando pela conexão TCP na porta 80. “Aceita” conexão, 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 (contém texto,referências a 10 imagens jpeg) Usuário entra com a URL: www.unicarioca.edu.br/graduacao/index.html 36Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 36 HTTP não persistente 5. Cliente HTTP recebe mensagem de resposta contendo o arquivo html, apresenta o conteúdo html. Analisando o arquivo html, encontra10 objetos jpeg referenciados 6. Passos 1-5 são repetidos para cada um dos 10 objetos jpeg. 4. Servidor HTTP fecha conexão TCP. Tempo 37Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 37 Carriage return, line feed indica fim da mensagem � Dois tipos de mensagens HTTP: Requisição (request), Resposta (response) � HTTP request message: � ASCII (formato de texto legível) GET /somedir/page.html HTTP/1.0 Host: www.umsite.com.br User-agent: Mozilla/4.0 Accept: text/html, image/gif,image/jpeg Accept-language:pt-br (extra carriage return, line feed) Linha de pedido / requisição (comandos GET, POST, HEAD ) Linhas de cabeçalho Mensagem HTTP request 38 Mensagem de requisição HTTP: formato geral Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 38 39Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 39 Tipos de métodos 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 métodos: http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html 40 Entrada de formulário � Método Post: � Página Web frequentemente inclui entrada de formulário � A entrada é enviada para o servidor no corpo da entidade � Método GET: � A entrada é enviada no campo de URL da linha de requisição: Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 40 www.carioca.br/procuraaluno.php?matricula=1234&nome=jose 41Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 41 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 <html>dados dados dados</html> Linha de status (protocolo código de status frase de status) Linhas de cabeçalho Dados, ex.: arquivo html Mensagem HTTP response 42Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 42 Códigos de status das respostas � Séries de código existentes: � 100: Informational (Informação) � Utilizada para enviar informações para o cliente de que sua requisição foi recebida e está sendo processada � 200 - Requisição bem sucedida � 200 OK � Sucesso: Requisição bem-sucedida, objeto requisitado a seguir nesta mensagem � 300 - Redirecionamento � 301 Moved permanently o Redirecionamento: Objeto requisitado foi movido, nova localização especificada a seguir nesta mensagem (Location:) � 400 – Erro lado cliente � 400 Bad request o Erro no cliente: Mensagem de requisição não compreendida pelo servidor � 404 Not Found o Documento requisitado não encontrado neste servidor � 500 – Erro lado servidor � 505 HTTP version not supported o Erro no servidor: ocorreu um erro no servidor ao cumprir uma requisição válida. � Mas exemplos em http://www.w3.org/Protocols/rfc2616/rfc2616-sec6.html#sec6 43Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 43 HTTP Request Cabeçalho Corpo da mensagem Campos de informações com seus valores 44Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 44 HTTP Reply 200 ok Cabeçalho Corpo da mensagem 45Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 45 HTTP Reply 304 Not Modified Cabeçalho Corpo da mensagem 46Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 46 HTTP Request – Envio Informações Cabeçalho Corpo da mensagem Envio de informações pelo método Get GET /cert/hit.dll?sitio_id=20607&path=/capa/-&referer=&size=1280&colors=32&java=true&flash=9 47 Estado usuário-servidor: cookies Muitos sites importantes usam cookies Quatro componentes: 1) linha de cabeçalho de cookie da mensagem de resposta HTTP 2) linha de cabeçalho de cookie na mensagem de requisição HTTP 3) arquivo de cookie na máquina do usuário, controlado pelo navegador do usuário 4) banco de dados de apoio no site Web Exemplo: � Usuário sempre acessa a Internet pelo PC � visita um site de comércio eletrônico pela primeira vez � quando as primeiras requisições 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 47 48 cliente servidor resposta http normal resposta http normal arq. de cookie uma semana depois: requisição http normal cookie: 1678 ação específica do cookie acessa ebay 8734 requisição http normal servidor Amazon cria ID 1678 para usuário cria entrada resposta http normal Set-cookie: 1678 ebay 8734 amazon 1678 requisição http normal cookie: 1678 ação específica do cookie acessa ebay 8734 amazon 1678 banco de dados de apoio Estado usuário-servidor: cookies Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 48 49 Estado usuário-servidor: cookies O que os cookies podem ter: � autorização � carrinhos de compras � recomendações � estado da sessão do usuário (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: mantêm estado no emissor/receptor por múltiplas transações ❒ cookies: mensagens HTTP transportam estado Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 49 50 Caches Web (servidor proxy) � Objetivo: � Satisfazer a requisição do cliente sem envolver servidor de origem � usuário prepara navegador: acessos à Web via cache � navegador envia todas as requisições HTTP ao cache � objeto no cache: cache retorna objeto � ou cache requisita objeto do servidor de origem, depois retorna objeto ao cliente cliente servidor proxy cliente servidor de origem servidor de origem Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 50 51 Mais sobre cachingWeb � cache atua como cliente e servidor � normalmente, cache é instalado por ISP (da universidade, empresa, residencial) Por que caching Web? � reduz tempo de resposta à requisição do cliente � reduz tráfego no enlace de acesso de uma instituição � Internet densa com caches: permite que provedores de conteúdo “fracos” remetam conteúdo efetivamente (mas o mesmo ocorre com compartilhamento de arquivos P2P) Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 51 52 GET condicional � Objetivo: � não enviar objeto se o cache tiver versão atualizada � cache: especifica data da cópia em cache na requisição HTTP If-modified-since: <data> � servidor: resposta não contém objeto se a cópia em cache estiver atualizada: HTTP/1.0 304 Not Modified cache servidor msg requisição HTTP If-modified-since: <data> resposta HTTP HTTP/1.0 304 Not Modified objeto não modificado msg requisição HTTP If-modified-since: <data> resposta HTTP HTTP/1.0 200 OK <dados> objeto modificado Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 52 53Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 53 Hyper Text Transfer Protocol over SSL (HTTPS) � Protocolo de aplicação da web que utiliza criptografia � Garante privacidade (criptografia) � Garante a identidade das partes envolvidas em uma transferência � Porta 443/TCP https://nome_máquina/recurso Transferência de arquivos e protocolo FTP 55Prof Sergio Cardoso - Arquitetura de Redes de Computadores- Unidade II 55 FTP: o protocolo de transferência de arquivos � Transferência de arquivos de e para o computador remoto � Modelo cliente servidor � Cliente: lado que inicia a transferência (seja de ou para o lado remoto) � Servidor: hospedeiro remoto � FTP: RFC 959 � FTP servidor: porta 21 56 FTP: controle separado, conexões de dados � Cliente FTP contata o servidor FTP na porta 21, especificando o TCP como protocolo de transporte � Cliente obtém autorização pela conexão de controle � Cliente navega por diretório remoto enviando comandos por conexão de controle � Quando servidor recebe comando de transferência de arquivo, abre 2a conexão TCP (para arquivo) com cliente – conexão de dados � Após transferir um arquivo, servidor fecha conexão de dados � Servidor abre outra conexão de dados TCP para transferir outro arquivo � Conexão de controle: “fora da banda” � Servidor FTP mantém “estado”: diretório atual, autenticação anterior Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 56 57 Comandos e respostas FTP exemplos de comandos: � enviado como texto ASCII pelo canal de controle � USER nome-usuário � PASS senha � LIST retorna lista de arquivos no diretório atual � RETR nome-arquivo recupera (apanha) arquivo � STOR nome-arquivo armazena (coloca) arquivo no hospedeiro remoto exemplos de códigos de retorno � código e frase de estado (como no HTTP) � 331 Username OK, password required � 125 data connection already open; transfer starting � 425 Can’t open data connection � 452 Error writing file Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 57 Serviço de correio eletrônico e protocolos SMTP, POP3 e IMAP 59Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 59 Correio eletrônico Três componentes principais: � Agentes de usuário � Servidores de correio � Simple mail transfer protocol: SMTP Agente de usuário � “leitor de correio” � Composição, edição, leitura de mensagens de correio � Ex.: Eudora, Outlook, elm, Netscape Messenger � Mensagens de entrada e de saída são armazenadas no servidor caixa de entrada do usuário fila de msg. de saída mail server agente usuário serv. correio serv. correio SMTP SMTP agente usuário agente usuário agente usuário agente usuário agente usuário 60Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 60 Correio eletrônico: servidores de correio Servidores de correio � Caixa postal contém mensagens que chegaram (ainda não lidas) para o usuário � Fila de mensagens contém 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 entrada do usuário fila de msg. de saída mail server agente usuário serv. correio serv. correio SMTP SMTP agente usuário agente usuário agente usuário agente usuário agente usuário 61Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 61 Correio eletrônico: SMTP � Usa TCP para transferência confiável de mensagens de correio do cliente ao servidor, porta 25 � Transferência direta: servidor envia direto para o servidor de destino � Três fases de transferência � Handshaking (apresentação) � Transferência de mensagens � Fechamento � Interação comando/resposta � Comandos: texto ASCII � Resposta: código de status e frase 62 Cenário: Alice envia mensagem para Bob � Alice usa o agente de usuário (UA) para compor a mensagem e “para” bob@provedor.com � O agente de usuário dela envia a mensagem para o seu servidor de correio; a mensagem é colocada na fila de mensagens. � O lado cliente do SMTP abre uma conexão TCP com o servidor de correio do Bob. � O cliente SMTP envia a mensagem de Alice pela conexão TCP. � O servidor de correio de Bob coloca a mensagem na caixa de correio de Bob. � Bob invoca seu agente de usuário para ler a mensagem. Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 62 agente usuário serv. correio serv. correio agente usuário 1 2 3 4 5 6 63Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 63 Exemplo de interação SMTP � S: 220 provedor1.com � C: HELO provedor2.com � S: 250 Ola provedor2.com, prazer em conhecer � C: MAIL FROM: <alice@provedor2.com> � S: 250 alice@provedor2.com... Remetente ok � C: RCPT TO: <bob@provedor1.com> � S: 250 bob@provedor1.com ... Destinatário 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 conexão 64Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 64 Formato da mensagem de correio � Correio eletrônico formado por � Envelope � Encapsula uma mensagem � Contém as informações necessárias para o transporte da mensagem o Como no correio comum � Mensagem � Composta por cabeçalho e corpo 65Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 65 Formato da mensagem de correio � Linhas de cabeçalho, ex.: � To: � From: � Subject: diferente dos comandos HTTP � corpo � a “mensagem”, ASCII somente com caracteres header body linha em branco 66Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 66 Exemplo de mensagem Received: from cliente.br by servidor.br; 16 Jul 06 10:30:01 GMT Received: from maquina.cliente.br by cliente.br; 16 Jul 06 10:29:58 GMT From: usuario@cliente.br To: usuario@servidor.br Subject: Teste Teste de envio de correio. 67Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 67 Formato das mensagens: extensões multimídia � MIME: multimedia mail extension � Permite transmitir os arquivos que não são texto pelo serviço de correio eletrônico � Ex: imagens, vídeos, documentos do MS Office, etc... � Linhas adicionais no cabeçalho declaram o tipo de conteúdo MIME From: alice@provedor2.com To: bob@provedor1.com Subject: Picture of yummy crepe. MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Type: image/jpeg base64 encoded data ..... ......................... ......base64 encoded data Dados multimídia tipo, subtipo, declaração de parâmetro Método usado para codificar dados Versão da MIME Dados codificados 68Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 68 Protocolos de acesso ao correio � SMTP: entrega e armazena no servidor do destino � Protocolo de acesso: recupera mensagens do servidor � POP: Post Office Protocol [RFC 1939] � Autorização (agente <-->servidor) e download � IMAP: Internet Mail Access Protocol [RFC 1730] � Maiores recursos (mais complexo) � Manipulação de mensagens armazenadas no servidor � HTTP: Hotmail , Yahoo! Mail etc. 69 Protocolo POP3 fase de autorização � comandos do cliente: � user: declare “username” � pass: senha � respostas do servidor � +OK � -ERR fase de transação, cliente: � list: lista números de msg. � retr: recupera mensagem por número � dele: exclui � quit C: list S: 1 498 S: 2 912 S: . C: retr 1 S: <message 1 contents> S: . C: dele 1 C: retr 2 S: <message 1 contents> 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 usuário logado com sucesso Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 69 Serviço de nomes Protocolo DNS71 DNS (Domain Name System) � O DNS (Domain Name System – Sistema de nomes de domínio) é (Kurose, 2005): 1. Um banco de dados distribuído implementado em uma hierarquia de servidores de nome (Servidores DNS), e 2. Um protocolo de camada de aplicação que permite que hospedeiros consultem o banco de dados distribuídos. � Função Principal: � Traduz um nome de domínio em um endereço IP � O uso de nomes facilita a memorização do usuário ao invés de decorar números 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 71 72Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 72 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 endereço IP para www.unicarioca.br Base de dados distribuída, hierárquica 73Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 73 Base de dados distribuída, hierárquica 74Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 74 Componentes do serviço DNS � Composto de � Servidores DNS locais � Três tipos (classes) de servidores de nomes � Raiz � De domínio de alto nível (Top-Level Domain – TLD) � Com autoridade 75Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 75 DNS: servidores de nomes raiz � São contatados pelos servidores de nomes locais que não podem resolver um nome � Ponto de entrada no serviço � a.root-servers.net,…,m.root-servers.net � Servidores de nomes raiz: � Buscam servidores de nomes autorizados se o mapeamento do nome não for conhecido � Conseguem o mapeamento � Retornam o mapeamento para o servidor de nomes local Existem 13 servidores de nomes raiz no mundo 76Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 76 Servidores TLD e autoritários � Servidores top-level domain (TLD): � Responsáveis pelos domínios genéricos .com, .org, .net, .edu, etc e todos os domínios top-level nacionais .uk, .fr, .ca, .jp, .br, etc. � Network Solutions mantém servidores para o TLD “.com” � Educause para o TLD “.edu” � Servidores DNS autoritários: � Servidores DNS de organizações, provêm nome de hospedeiro autorizado para mapeamentos IP para servidores de organizações (ex.: Web e mail). � Podem ser mantidos por uma organização ou provedor de serviços 77Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 77 Servidor de nomes local � Não pertence estritamente a uma hierarquia � Cada ISP (ISP residencial, companhia, universidade) possui um � Também 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 78Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 78 hospedeiro solicitante cis.poly.edu gaia.umass.edu servidor DNS raiz serv. DNS local dns.poly.edu 1 2 3 4 5 6 serv. DNS com autoridade dns.umass.edu 78 servidor DNS TLD Exemplo de resolução de nome DNS (1) � hospedeiro em cis.poly.edu quer endereço IP para gaia.umass.edu � consulta iterativa ou repetida: � servidor contactado responde com nome do servidor a contactar � “não conheço esse nome, mas pergunte a este servidor” 79Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 79 hospedeiro solicitante cis.poly.edu gaia.umass.edu serv. DNS raiz serv. DNS local dns.poly.edu 1 2 45 6 serv. DNS com autoridade dns.umass.edu 7 8 serv. DNS TLD 3 Exemplo de resolução de nome DNS (2) � consulta recursiva: � Transfere a resolução de nome para o servidor de nomes contactado 80Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 80 Tipos de Zonas e Pesquisas � Zona de Pesquisa Direta � Cliente informa um nome e a resposta é o endereço IP � Podem ser � Primárias o Zona autoritativa para um domínio � Secundárias o Zona “espelho” de uma zona primária o Precisa ser atualizada frequentemente para manter a consistências entre zonas � Zona de Pesquisa Reversa � Cliente informa um IP e a resposta é o nome � Podem ser � Primárias o Zona autoritativa para um domínio � Secundárias o Zona “espelho” de uma zona primária o Precisa ser atualizada frequentemente para manter a consistências entre zonas 81Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 81 Zona de Pesquisa Reversa � Uma pesquisa inversa assume a forma de pergunta, como "Pode me informar o nome DNS do computador que usa o endereço IP 192.168.1.20"? � Utiliza-se o domínio in-addr.arpa � Para criar o espaço para nome inverso, os subdomínios dentro do domínio in-addr.arpa são formados usando a ordem inversa dos números na notação decimal com pontos dos endereços IP. � 1.168.192. in-addr.arpa 82Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 82 Tipos de registros � Os registros de recursos SOA e NS ocupam uma função especial na configuração da zona. � Eles são registros obrigatórios para qualquer zona e são normalmente o primeiro dos registros de recursos listados nos arquivos. � SOA - Inicio de Autoridade � Identifica o servidor de nomes DNS primário da Zona. � Possui informações necessárias a replicação dos registros. � NS - Servidor de Nomes de Delegação � Permite a delegação, identificando servidores de DNS para cada Zona. � Sempre que um servidor DNS precisa enviar uma consulta a um domínio delegado, ele se refere ao registro de recurso NS dos servidores de DNS da zona de destino. 83 Tipos de Registros � Após criar uma zona, os registros de recursos (RRs) adicionais necessários precisam ser adicionados a ela. � Host(A) � Para mapear um nome de domínio DNS para um endereço IP usado por um computador. � Alias (CNAME) � Para mapear um nome de domínio DNS alias para outro nome primário ou canônico. � Servidor de Mensagens (MX) � Para mapear um nome de domínio DNS para o nome de um computador que troca ou encaminha mensagens. � Ponteiro (PTR) � Para mapear um nome de domínio DNS inverso com base no endereço IP de um computador que aponta para o nome de domínio DNS encaminhado desse computador. � Outros registros de recursos conforme necessário. Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 83 84Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 84 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 são tipicamente armazenados em cache nos servidores de nome locais � Mecanismos de atualização e notificação estão sendo projetados pelo IETF � RFC 2136 � http://www.ietf.org/html.charters/dnsind-charter.html
Compartilhar