SILÊNCIO !!!! 2: Nível de Aplicação 1 Parte 2: Nível de Aplicação Objectivos r conceitos, aspectos de implementação dos protocolos de nível de aplicação m Paradigma clienteservidor m Modelos de serviço r Aprender os protocolos, examinando protocolos de nível de aplicação populares Outros objectivos do capítulo: r Protocolos específicos: m m m m m r http ftp smtp pop dns Programação de aplicações de rede m API de socket 2: Nível de Aplicação 2 Aplicações e protocolos de nível de aplicação Aplicação: comunicação, processo distribuído m m m Executadas nos Sistemas Terminais da rede em espaço de utilizador (user-space) Troca de mensagens para implementar a aplicação Ex: email, ftp, Web Aplicação Transporte Rede Lig. Lógica Físico Protocolos de nível de aplicação m m m Uma “parte” da aplicação Define as mensagens transferidas entre as aplicações e as acções a executar Utiliza os serviços de comunicação dos níveis inferiores (TCP ou UDP). Aplicação Transporte Rede Lig. Lógica Físico Aplicação Transporte Rede Lig. Lógica Físico 2: Nível de Aplicação 3 Aplicações de rede: terminologia Processo: Programa executado num nó. r Dentro do mesmo nó, dois processos em comunicação utilizam comunicação entre processos (definida pelo sistema operativo) r Processos executados em nós diferentes comunicam através do protocolo de nível de transporte r Agente de utilizador (user agent): processo de SW que faz a interface entre o utilizador “acima” e a rede “abaixo” m Implementa o protocolo de nível de aplicação m Ex: • Web: browser • E-mail: mail reader • streaming audio/video: media player 2: Nível de Aplicação 4 O paradigma Cliente-Servidor Aplicações de rede típicas têm duas partes: Cliente e o Servidor Cliente: r r r r Inicia o contacto com o Servidor (“Fala primeiro”) Tipicamente, requisita serviços ao Servidor Ex: Web: Cliente implementado num browser; e-mail: Cliente implementado num mailreader Servidor: r r Aplicação Transporte Rede Lig. Lógica Físico request reply Aplicação Transporte Rede Lig. Lógica Físico Fornece os serviços requisitados pelos Clientes Ex: Servidor Web envia páginas pedidas; Servidor de mail entrega emails. 2: Nível de Aplicação 5 Protocolos de nível de aplicação (cont). API: Interface de Q: Como é que o processo programação de identifica o outro aplicação processo com que quer comunicar ? r Define a interface entre m Endereço IP do Sistema as aplicações e o nível Terminal que executa o de transporte outro processo r socket: Internet API m “Número do porto” – m Dois processos comunicam enviando dados para um socket e lendo os dados do socket. Permite que o Sistema Terminal receptor identifique o processo para o qual se destinam os dados … Muito mais mais tarde (???) final deste capítulo/SO. 2: Nível de Aplicação 6 Que serviços de transporte é que uma aplicação necessita ? Perda de dados r Algumas aplicações toleram algumas falhas m r ex: audio Outras aplicações requerem 100% de fiabilidade na transferência de dados m m ex: transferência de ficheiros telnet Largura de Banda r Algumas aplicações requerem um atraso pequeno para funcionarem adequadamente m r ex: aplicações multimédia Outras aplicações utilizam a largura de banda que conseguirem obter Timing m ex: aplicações elásticas) r Algumas aplicações requerem um atraso pequeno para funcionarem adequadamente m m ex: Telefonia na Internet Jogos interactivos) 2: Nível de Aplicação 7 Requisitos do serviço de transporte das aplicações comuns Perda de Aplicação dados Transferência de ficheiros e-mail Documentos Web audio/video de tempo real Não Não Tolerante Tolerante audio/video armazenado Tolerante Jogos interactivos Tolerante Aplicações financeiras Não Largura de banda Sensibilidade ao atraso elástica elástica elástica audio: 5Kb-1Mb video:10Kb-5Mb Igual ao anterior Poucos Kb/s elástica Não Não Não Sim, 100’s mseg Sim,alguns seg. Sim, 100’s mseg Sim e Não 2: Nível de Aplicação 8 Serviços do protocolo de transporte da Internet Serviço TCP: Serviço UDP: r r r r r r Orientado-à-ligação: estabelecimento do Cliente para o Servidor Transporte fiável entre o processo emissor e o processo receptor Controlo de fluxo: O emissor não sobrecarrega o receptor Controlo de congestão: emissor reduz o envio quando a rede está sobrecarregada Não fornece: garantia de atraso ou de largura de banda. r Transferência de dados não fiável entre o processo do emissor e o processo do receptor Não fornece estabelecimento de ligação, fiabilidade, controlo de fluxo, controlo de congestão, garantia de atraso ou de largura de banda Q: O que importa? Para que serve o UDP ? 2: Nível de Aplicação 9 Aplic. internet: aplicações e protocolos de transporte Aplicação e-mail Acesso remoto a Terminais Web Transferência de ficheiros streaming multimedia Servidor de ficheiros remoto Telefonia Internet Protocolo de nível de Aplicação Protocolo de Transporte smtp [RFC 821] telnet [RFC 854] http [RFC 2068] ftp [RFC 959] proprietário (ex: RealNetworks) NSF proprietário (ex: Vocaltec) TCP TCP TCP TCP TCP or UDP TCP or UDP Tipicamente UDP 2: Nível de Aplicação 10 SILÊNCIO !!!! 2: Nível de Aplicação 11 A Web: O protocolo HTTP http: hypertext transfer protocol r r r r Protocolo de nível de aplicação da Web Modelo cliente-servidor m Cliente: browser que pede, recebe e mostra objectos Web m Servidor: Servidor Web envia objectos em resposta a pedidos http1.0: RFC 1945 http1.1: RFC 2068 PC a executar Internet Explorer Servidor a executar NCSA Web server Mac a executar Netscape Navigator 2: Nível de Aplicação 12 O protocolo HTTP: mais http: Serviço de transporte TCP: r r r r Cliente inicia a ligação TCP (cria um socket) para o Servidor, porto 80 Servidor aceita a ligação TCP do Cliente Mensagens http (mensagens do protocolo de nível de aplicação) transferidas entre o browser (Cliente http) e o Servidor Web (servidor http) Fecho da Ligação TCP http não tem estado “stateless” r O Servidor não mantém informação sobre os pedidos anteriores dos Clientes Protocolos que mantêm o estado são complexos ! r História passada (estado) tem de ser mantida r Se o Servidor/Cliente falharem a sua visão do estado pode ficar inconsistente, e tem de ser conciliada 2: Nível de Aplicação 13 Exemplo: http Supondo que um utilizador introduz o URL (contem texto, www.someSchool.edu/someDepartment/home.index Referência a 10 imagens do tipo jpeg) 1a. Cliente http inicia a ligação TCP (processo) ao Servidor 1b. Servidor http no Sistema http em: Terminal www.someSchool.edu m m www.someSchool.edu. Porto 80 é utilizado por omissão para o acesso ao Servidor http. m m m 2. Cliente http envia uma mensagem para o socket da ligação TCP m tempo request message (contendo o URL) espera a ligação TCP no porto 80, aceita pedidos de estabelecimento de ligação notifica os Clientes. 3. Servidor http m m m recebe mensagens de pedido constrói a response message contendo os objectos pedidos (someDepartment/home.index) envia a mensagem no socket. 2: Nível de Aplicação 14 Exemplo: http (cont) 4. Servidor http pede o fecho 5. Cliente http recebe mensagens de resposta m m tempo m m m Contendo ficheiro html, Mostra o ficheiro html. Interpreta o ficheiro html Encontra a referência a 10 objectos do tipo jpeg objects Fecha a ligação TCP 6. Repete os passos 1 a 5 para cada um dos 10 objectos jpeg da ligação TCP m A ligação só é fechada quando o cliente recebe a resposta Ligação não persistente 2: Nível de Aplicação 15 Ligações não persistentes e ligações persistentes Não persistentes r r r r http/1.0: Servidor interpreta o pedido, responde e fecha a ligação TCP Persistentes r r 2 RTTs para obter o objecto m Ligação TCP m Pedido/transferência do objecto Cada transferência é afectada pelo ritmo inicial lento do TCP (slow rate) Muitos browsers abrem várias ligações em paralelo r r Por omissão para htp/1.1 Na mesma ligação TCP: servidor interpreta o pedido, responde e interpreta novos pedidos,.. Cliente envia pedidos para todos os objectos referenciados, assim que recebe o objecto de base HTML Menos RTTs, slow start menos significativo 2: Nível de Aplicação 16 Formato das mensagens http: request Dois tipos de mensagens http: request, response r http request message: r m ASCII (Formato legível pelos Humanos) request line (GET, POST, HEAD commands) Linhas de Cabeçalho GET /somedir/page.html HTTP/1.0 Host: www.someschool.edu Connection: close User-agent: Mozilla/4.0 Accept-language:fr Carriage return, (extra carriage return, line feed) line feed Indicam o fim da mensagem 2: Nível de Aplicação 17 Formato das mensagens http: request Método Sistema Terminal em que os objectos residem url Versão http GET /somedir/page.html HTTP/1.0 Host: www.someschool.edu Não utilizar ligações persistentes Connection: close Tipo de browser User-agent: Mozilla/4.0 Accept-language:fr O cliente prefere obter a versão francesa do objecto 2: Nível de Aplicação 18 http request message: formato geral 2: Nível de Aplicação 19 Formato da mensagem http: response Linha de estado (protocolo Código de estado Descrição do estado) Linhas de cabeçalho dados, i.e., Ficheiro html pedido 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 data data data data data ... 2: Nível de Aplicação 20 Formato da mensagem http: response Tempo em que as resposta foi criada no servidor Servidor que gerou a resposta 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 …... Tempo em que o objecto foi criado, ou modificado Content-Length: 6821 Content-Type: text/html Nº de Bytes do objecto que está a ser enviado Tipo de objecto data data data data data ... 2: Nível de Aplicação 21 Códigos de resposta http Na primeira linha da mensagem de resposta Servidor->Cliente Alguns exemplos de códigos: 200 OK m Pedido com sucesso, objecto pedido “mais tarde” na mensagem 301 Moved Permanently m Objecto pedido foi movido, nova localização específicada mais tarde na mensagem (Location:) 400 Bad Request m Mensagem de pedido não foi entendida pelo servidor 404 Not Found m Objecto pedido não foi encontrado no servidor 505 HTTP Version Not Supported 2: Nível de Aplicação 22 Executando o protocolo http (do lado do cliente)…. 1. Fazer telnet para o WEB site favorito: telnet www.eurecom.fr 80 Abre a ligação TCP para o porto 80 (Porto por omissão do servidor http) e, www.eurecom.fr. O que for digitado é enviado para este porto em www.eurecom.fr 2. Digitar um pedido http, (GET): GET /~ross/index.html HTTP/1.0 Ao digitar isto (introduzindo CR 2X), é enviado um pedido mínimo, mas completo, para o servidor http 3. Analise as respostas enviadas pelo servidor http ! 2: Nível de Aplicação 23 User-server interaction: authentication Authentication : control access server client to server content usual http request msg r authorization credentials: typically name, password 401: authorization req. WWW authenticate: r stateless: client must present authorization in each request m authorization: header line in usual http request msg + Authorization: <cred> each request m if no authorization: header, usual http response msg server refuses access, sends WWW authenticate: header line in response usual http request msg + Authorization: <cred> usual http response msg time 2: Nível de Aplicação 24 SILÊNCIO !!!! 2: Nível de Aplicação 25 Cookies: mantendo o “estado” r r cliente servidor Servidor gera um nº , servidor recorda o nº http request msg usual para usar mais tarde: http response usual + m autenticação Set-cookie: # m Recordar as preferências do utilizador, escolhas http request msg usual Acção anteriores cookie: # específica Servidor envia a “cookie” http response msg usual da cookie na mensagem de resposta do cliente Set-cookie: 1678453 r Cliente adiciona a “cookie” aos pedidos seguintes: http request msg usual cookie: # http response msg usual Acção específica da cookie cookie: 1678453 2: Nível de Aplicação 26 GET condicional: cache no lado do cliente r r Objectivo: não enviar os cliente objectos se o cliente tiver http request msg uma versão actualizada em If-modified-since: <date> cache cliente: específica a data da http response cópia que tem em cahce no HTTP/1.0 http request 304 Not Modified servidor Objecto não modificado If-modified-since: <date> r servidor: a resposta não contém objectos se a cópia de cache do cliente estiver actualizada: HTTP/1.0 304 Not Modified http request msg If-modified-since: <date> http response Objecto modificado HTTP/1.1 200 OK <data> 2: Nível de Aplicação 27 Caches Web (proxy server) Objectivo: satisfazer os pedidos dos clientes sem envolver o servidor original r r Uitilizador activa o browser: acessos Web através da cache Cliente envia todos os http requests para a cache m m Objecto existe na cache: cache web devolve o objecto Caso contrário, cache Web pede o objecto ao servidor original e retorna este objecto ao cliente origin server client client Proxy server origin server 2: Nível de Aplicação 28 Porquê Web Caching? Considerando que: a cache está mais próximo do cliente (i.e. na mesma rede) r Tempo de resposta menor: cache “mais perto” do cliente r Diminui o tráfego para servidores distantes m Ligação de saída da instituição/rede do ISP é o ponto de estrangulamento (bottleneck) Servidores de origem Internet pública Ligação de acesso 1.5 Mbps Rede institucional LAN a 10 Mbp Cache institucional 2: Nível de Aplicação 29 ftp: o protocolo de transferência de ficheiros (file transfer protocol) Utilizador num Sistema Terminal r r r r Interface Cliente utilizador FTP FTP Sistema ficheiros local file transfer Servidor FTP Sistema ficheiros remoto Transferência de ficheiros de/para o Sistema Terminal Modelo Cliente-Servidor m Cliente: Inicia a transferência (de/para o Sistema remoto) m Servidor: Sistema Remoto ftp: RFC 959 ftp server: port 21 2: Nível de Aplicação 30 ftp: Controlo separado, ligações de dados r r r Cliente ftp contacta o servidor no porto 21, especificando o TCP como protocolo de transporte São abertas duas ligações TCP em paralelo: m controlo: transferência de Cliente comandos, respostas FTP entre cliente e servidor. Controlo (ou sinalização) “out of band” m Dados: ficheiro de dados de/para o servidor Servidor ftp mantém o estado: directório actual, autenticação anterior Ligação de controlo TCP porto 21 Ligação de dados TCP Servidor porto 20 FTP 2: Nível de Aplicação 31 Comandos ftp, respostas Exemplos de comandos: r r r r r r Enviados como texto ASCII no canal de controlo USER username PASS password LIST devolve a lista dos ficheiros no directório corrente RETR filename devolve (get) um ficheiro STOR filename armazena (put) ficheiro no Sistema Remoto Exemplo de códigos de estado r r r r r Códigos de estado e descrição (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 2: Nível de Aplicação 32 Correio electrónico E-Mail outgoing message queue user mailbox Três componentes fundamentais: r r r Agentes utilizador Servidores de mail Protocolo de comunicação entre servidores: m simple mail transfer protocol: smtp Agente Utilizador r a.k.a. “mail reader” r Compor, editar e ler mensagne de mail r e.g., Eudora, Outlook, elm, Netscape Messenger r Enviar, receber mensagens armazenadas no servidor user agent mail server SMTP SMTP mail server user agent SMTP user agent mail server user agent user agent user agent 2: Nível de Aplicação 33 Correio electrónico: servidores de email Servidores de Mail r r r mailbox contém as mensagens que entraram (ainda não lidas) para o utilizador message queue de mensagens de mail que o utilizador quer enviar (ainda não enviadas) smtp protocol entre servidores de email para enviar as mensagens m cliente: envia email para o servidor m “server”: servidor de recepção de email user agent mail server SMTP SMTP mail server user agent SMTP user agent mail server user agent user agent user agent 2: Nível de Aplicação 34 Correio electrónico : smtp [RFC 821] r r r r r Utiliza TCP para transferir mensagens de email do cliente para o servidor, de forma fiável, através do porto 25. Transferência directa: servidor de envio para servidor de recepção Três fases de transferência m handshaking (greeting) m Transferência de mensagens m fecho Interacção comando-resposta m commandos: texto ASCII m resposta: código e descrição de estado Mensagens codificadas em 7 bits ASCII 2: Nível de Aplicação 35 Experimentem o smtp por vocês mesmos r Digitar telnet servername 25 observar 220 reply from server r digitar comandos HELO, MAIL FROM, RCPT TO, DATA, QUIT r Os procedimentos anteriores permitem enviar emails sem usar um cliente de email (reader) r 2: Nível de Aplicação 36 Exemplo de interacção com smtp Crepes.fr Hamburger.edu Do you like ketchup ? What about pickles ? 2: Nível de Aplicação 37 Exemplo de interacção com smtp C: S: C: S: C: S: C: S: C: S: C: C: C: S: C: S: telnet hamburger.edu 2-> Estabelecimento da lig. TCP 220 hamburger.edu HELO crepes.fr 250 Hello crepes.fr, pleased to meet you MAIL FROM: <[email protected]> 250 [email protected]... Sender ok RCPT TO: <[email protected]> 250 [email protected] ... Recipient ok DATA 354 Enter mail, end with "." on a line by itself Do you like ketchup? How about pickles? . 250 Message accepted for delivery QUIT 221 hamburger.edu closing connection 2: Nível de Aplicação 38 smtp: palavras finais r r r r smtp utiliza ligações persistentes smtp requer que a mensagem seja codificada em 7 bits ASCII (cabeçalho e corpo) Alguns caracteres não são permitidos na mensagem (e.g., CRLF.CRLF). Então a mensagem tem de ser codificadas (ex: base-64 ou quoted printable) Servidor smtp usa CRLF.CRLF para identificar o fim da mensagem Comparação com http: r r r r r http: pull email: push Ambos têm interacção comando/resposta em ASCII, códigos de estado http: cada objecto encapsula a sua própria mensagem de resposta smtp: múltiplos objectos enviados em múltiplas partes (multipart message) 2: Nível de Aplicação 39 Formato da mensagem de Mail smtp: protocolo para transferir mensagens de mail RFC 822: formato standard para mensagens de texto: r Linhas de cabeçalho, e.g., m m m To: From: Subject: header Linha em branco body diferente dos comandos smtp r Corpo m Apenas os caracteres ASCII da mensagem 2: Nível de Aplicação 40 Formato das mensagens: extensões multimédia r r MIME: extensões de mail para informação multimédia, RFC 2045, 2056 Linhas adicionais no cabeçalho da mensagem declaram o tipo de conteúdo MIME Versão MIME Método usado para codificar os dados Tipo de dados multimédia, sub-tipo, declaração de parâmetros Dados codificados 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 2: Nível de Aplicação 41 Tipos MIME Content-Type: type/subtype; parameters Texto Video r r Exemplo de sub-tipos: plain, html Imagem r Exemplo de sub-tipos: jpeg, gif Aplicação r Audio r Exemplo de sub-tipos : basic (8-bit mu-law encoded), 32kadpcm (32 kbps coding) Exemplo de sub-tipos : mpeg, quicktime r Outros dados que têm de ser processados pelo leitor antes de serem “visíveis” Exemplo de sub-tipos : msword, octet-stream 2: Nível de Aplicação 42 Tipo Multipart Para incluir no email múltiplos objectos From: [email protected] To: [email protected] Início da Subject: Picture of yummy crepe. próxima parte MIME-Version: 1.0 Content-Type: multipart/mixed; boundary=98766789 --98766789 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain Dear Bob, Please find a picture of a crepe. --98766789 Content-Transfer-Encoding: base64 Content-Type: image/jpeg base64 encoded data ..... ......................... ......base64 encoded data --98766789-2: Nível de Aplicação 43 Tipo Multipart - recepção Received: from crepes.fr by hamburger.edu; 12 Oct 98 From: [email protected] To: [email protected] Subject: Picture of yummy crepe. MIME-Version: 1.0 Content-Type: multipart/mixed; boundary=98766789 --98766789 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain Dear Bob, Please find a picture of a crepe. --98766789 Content-Transfer-Encoding: base64 Content-Type: image/jpeg base64 encoded data ..... ......................... ......base64 encoded data --98766789-2: Nível de Aplicação 44 Tipo Multipart - forwarding Received: from hamburger.edu by sushi.jp; 12 Oct 98 15:30:01 GMT Received: from crepes.fr by hamburger.edu; 12 Oct 98 15:27:39 GMT From: [email protected] To: [email protected] Subject: Picture of yummy crepe. MIME-Version: 1.0 Content-Type: multipart/mixed; boundary=98766789 --98766789 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain Dear Bob, Please find a picture of a crepe. --98766789 Content-Transfer-Encoding: base64 Content-Type: image/jpeg base64 encoded data ..... ......................... ......base64 encoded data --98766789-- 2: Nível de Aplicação 45 Protocolos de acesso ao Mail user agent SMTP SMTP POP3 or IMAP user agent Servidor de envio Servidor de recepção de mail de mail r r SMTP: entrega/armazena mail no servidor de envio Protocolos de acesso ao mail: obter mail do servidor de recepção m POP: Post Office Protocol [RFC 1939] • Autorização (agente <-->servidor) e download m IMAP: Internet Mail Access Protocol [RFC 1730] • Mais funcionalidades (mais complexo) • Manipulação das mensagens armazenadas nos servidores m HTTP: Hotmail , Yahoo! Mail, etc. 2: Nível de Aplicação 46 protocolo POP3 Fase de autorização r r Comandos do cliente: m user: declara username m pass: password Servidor responde m +OK m -ERR Fase de transacção, cliente: r r r r list: lista nº das mensagens retr: obtém mensagens através no nº dele: apaga quit:termina C: S: C: S: C: S: telnet hamburger.edu 110 +OK POP3 server ready user bob +OK pass hungry +OK user successfully logged on C: S: S: S: C: S: S: C: C: S: S: C: C: S: list 1 498 2 912 . retr 1 <message 1 contents> . dele 1 retr 2 <message 1 contents> . dele 2 quit +OK POP3 server signing off 2: Nível de Aplicação 47 protocolo IMAP Objectivo: r Utilizadores podem manipular mailboxes remotamente, como se fossem locais m r Organizar folders: criar, apagar, inserir, remover ou mover mensagens Utilizador pode obter apenas componentes específicos do mail m Só cabeçalho, só uma parte duma mensagem multipart Quatro fases, : r Estado não autenticado: estado inicial, quando a ligação se inicia: m r Estado autenticado: m r Utilizador selecciona o folder Estado seleccionado m r Utilizador envia user name e password Utilizador envia comandos que afectam as mensagens Estado Logout:termina 2: Nível de Aplicação 48 DNS: Domain Name System Pessoas: muitos identificadores: m m r Base de dados distribuida r Protocolo de nível de aplicação SSN, name, passport # Internet hosts, routers: m Domain Name System: IP address (32 bit) – utilizado para endereçar datagramas “nome”, e.g., gaia.cs.umass.edu – usado pelos humanos Q: mapeamento entre endereços IP e nomes ? implementada numa hierarquia de muitos name servers sistemas terminais, routers, servidores de nomes comunicam para resolver nomes (tradução endereço/nome) m m nota: função do núcleo da Internet, implementada como protocolo de nível de aplicação Complexidade nas fronteiras da rede 2: Nível de Aplicação 49 DNS name servers r Porque não centralizar o DNS? r Um só ponto de falha r Volume de tráfego r base de dados centralizada distante r Manutenção Nenhum servidor tem todos os mapeamentos de endereços IP Servidores de nomes locais: (Local Name Server) m Cada ISP, instituição têm um servidor de nomes local (default) m Sistemas Terminais interrogam primeiro o Servidor de Nomes Local Servidor de nomes autoritativo (authoritative name server): m Não é escalável ! m Todos os Sistemas Terminais têm o seu nome, endereço IP armazenado num Servidor de Nome Autoritativo Pode executar a tradução nome/endereço do nome do Sistema Terminal 2: Nível de Aplicação 50 DNS: Servidores de nome de raíz (Root Name Server) r r Contactados pelo servidor de nomes local, quando este não resolve o end. root name server: m contactam os servidores de nomes autoritativos quando não sabem resolver o endereço m Obtém mapeamento m Retornam o mapeamento ao servidor de nomes local a NSI Herndon, VA c PSInet Herndon, VA d U Maryland College Park, MD g DISA Vienna, VA h ARL Aberdeen, MD j NSI (TBD) Herndon, VA k RIPE London i NORDUnet Stockholm m WIDE Tokyo e NASA Mt View, CA f Internet Software C. Palo Alto, CA b USC-ISI Marina del Rey, CA l ICANN Marina del Rey, CA 13 root name servers no mundo 2: Nível de Aplicação 51 Exemplo simples de DNSroot name server Sistema terminal: surf.eurecom.fr pretende endereço IP de gaia.cs.umass.edu 2 4 5 1. Contacto o seu DNS server local, dns.eurecom.fr local name server 2. dns.eurecom.fr contacta dns.eurecom.fr root name server, se 1 6 necessário 3. root name server contacta authoritative name server, dns.umass.edu, se requesting host necessário surf.eurecom.fr 3 authorititive name server dns.umass.edu gaia.cs.umass.edu 2: Nível de Aplicação 52 Exemplo de DNS root name server Root name server: r r Pode não conhecer o Servidor Autoritativo Pode conhecer servidores de nomes intermédios: quem contactar para saber o servidor de nomes autoritativo 6 2 7 local name server dns.eurecom.fr 1 8 requesting host 3 intermediate name server dns.umass.edu 4 5 authoritative name server dns.cs.umass.edu surf.eurecom.fr gaia.cs.umass.edu 2: Nível de Aplicação 53 DNS: perguntas iterativas root name server Perguntas recursivas: r r Coloca o peso da resolução de nomes no servidor contactado Carga elevada ? Perguntas iterativas: r r O servidor contactado responde com o nome do servidor a contactar “Não conheço este nome, mas pergunta a este Servidor !!“ iterated query 2 3 4 7 local name server dns.eurecom.fr 1 8 requesting host intermediate name server dns.umass.edu 5 6 authoritative name server dns.cs.umass.edu surf.eurecom.fr gaia.cs.umass.edu 2: Nível de Aplicação 54 DNS: caching e records de actualização Cada vez que um servidor de nomes aprende os mapeamentos, armazena-os na cache m Entradas na cache desaparecem ao fim dum certo tempo, porque o temporizador termina a contagem do tempo. r Mecanismos de update/notify em estudo no IETF r m RFC 2136 m http://www.ietf.org/html.charters/dnsind-charter.html 2: Nível de Aplicação 55 DNS records DNS: Records de recursos (RR) armazanedos numa Base de Dados distribuída RR formato: Tipo=A r m m r (name, value, type,ttl) r Nome do Sistema Terminal Valor é um endereço IP Tipo=NS m m Nome é o domínio (e.g. foo.com) r Valor é o endereço OP do authoritative name server desse domínio Tipo=CNAME m Nome é uma alias para o nome “canónico” (the real) www.ibm.com é realmente servereast.backup2.ibm.com m Valor é o nome canónico Type=MX m Valor é o nome do servidor de mail associado com o nome 2: Nível de Aplicação 56 protocolo DNS, messagens Protocolo DNS : messagens de query e reply, ambas com o mesmo formato de mensagem cabeçalho de msg r identificação: m m r 16 bit # para query, reply à query usa o mesmo # flags: m query iou reply m recursion desejada m recursion disponível m reply é autoritativa 2: Nível de Aplicação 57 protocolo DNS, messagens Nome, tipo de campo para uma query RRs na resposta à query records para authoritative servers Informação adicional que pode ser útil 2: Nível de Aplicação 58 Parte 2: Sumário O estudo das aplicações está completo ! r Requisitos do serviço de aplicação: m r r fiabilidade, largura de banda, atraso paradigma cliente-server Modelo de saída do transporte na Internet m r Protocolos específicos: m m m m http ftp smtp, pop3 dns Serviço orientada à ligação, • Fiabilidade: TCP m Não fiável, datagramss: • UDP 2: Nível de Aplicação 59 Parte 2: Sumário Muito importante: aprender protocolos r Tipicamente transferência de mensagens request/reply: m m r Cliente pede informação ou serviço Servidor responde com dados, código de estado Formato das messagens: m m Cabeçalho (header): campos que fornecem informação sobre os dados dados: informação a ser comunicada r r r r r r r controlo vs. mensagens de dados m in-band, out-of-band Centralizado vs. distribuído Sem estado vs. com estado (stateless vs statefull) Transferência de mensagens fiável vs. não fiável “complexidade no limite da rede” segurança: autenticação 2: Nível de Aplicação 60