Sei sulla pagina 1di 73

Cap 2: Camada de Aplicao

2.1 Princpios de aplicaes de redes 2.2 Web e HTTP 2.3 FTP 2.4 Correio Eletrnico


SMTP, POP3, IMAP

2.5 DNS

Cap 2: Camada de Aplicao


Nossos objetivos: Aspectos conceituais de protocolos de aplicao de redes  Modelos de servio de camada de transporte  Paradigma clienteservidor  paradigma peerto-peer aprender sobre protocolos examinando protocolos populares de aplicao
   

HTTP FTP SMTP / POP3 / IMAP DNS

Algumas aplicaes de redes


e-mail web instant messaging (MSN) Login remoto Compartilhamento de arquivos P2P Jogos em rede multiusurio Videos streaming armazenados voz sobre IP (VoIP) Video-conferncia em tempo real grid computing

Criando uma aplicao de rede


Escrever programas que
  

aplicao
transporte

rede enlace fsica

rodam em (diferentes) hosts Comunicam-se sobre a rede p.ex., software servidor web se comunica com browser

No h necessidade de escrever software para dispositivos do ncleo




aplicao
transporte

Dispositivos do ncleo no rodam aplicaes de usurio aplicaes em hosts permite rpido desenvolvimento e propagao das aplicaes

rede enlace fsica

aplicao
transporte

rede enlace fsica

Cap 2: Camada de Aplicao


2.1 Princpios de aplicaes de redes 2.2 Web e HTTP 2.3 FTP 2.4 Correio Eletrnico


SMTP, POP3, IMAP

2.5 DNS

Arquiteturas de Aplicao
Cliente-servidor Peer-to-peer (P2P) Hbrido de cliente-servidor e P2P

Arquitetura Cliente-servidor
servidor:  Host sempre ligado  Endereo IP fixo  Fazenda de servidores para escalonamento clientes:
cliente/servidor
   

Comunicam-se com servidor pode ser conectado de vez em quando pode ter endereos IP dinmicos No se comunicam diretamente com outros clientes

Arquitetura P2P pura


no h servidor ligado 24 horas Hosts arbitrrios peer-peer comunicam-se diretamente peers so conectados intermitentemente e muda endereos IP

altamente escalvel mas difcil de gerenciar

Hbrido de cliente-servidor e P2P


Skype  Aplicao P2P de VoIP  Servidor centralizado: encontrar endereo de parceiro remoto.  Conexo cliente-cliente: direta (no atravs do servidor) Instant messaging  chat entre 2 usurios P2P  Servio centralizado: localizao/deteco de presena de cliente Usurio registra seu endereo IP com servidor central quando fica on-line usurio contacta servidor central para encontrar endereos IP de parceiros

Processos se comunicando
Processo: programa rodando em um host. Dentro do mesmo host, 2 processos se comunicam usando comunicao interprocessos (definida pelo Sist. Oper.). processos em diferentes hosts se comunicam atravs de trocas de mensagens Processo Cliente: processo que inicia comunicao Processo Servidor : processo que espera pra ser contactado Nota: aplicaes com arquiteturas P2P tem processos cliente & processos servidor

Sockets
processo envia/recebe mensagens para/de seu socket socket anlogo a uma porta


host ou server controlado pelo desenvolvedor da aplicao

host ou server

Processo transmissor empurra mensagem pra fora da porta Processo transmissor confia na infraestrutura de transporte no outro lado da porta o qual envia mensagens para socket no processo receptor

processo socket TCP com buffers, variveis

processo socket

Internet

TCP com buffers, variveis

controlado pelo SO

API: (1) escolha do protocolo de transporte; (2) habilidade pra consertar uns poucos parmetros

Endereando processos
Para receber mensagens, processo deve ter identificador host tem endereo IP de 32 bits nico P: o endereo IP do host suficiente para identificar o processo?

Endereando processos
Para receber mensagens, processo deve ter identificador host tem endereo IP de 32 bits nico P: o endereo IP do host suficiente para identificar o processo?  R: No, muitos processos podem estar rodando no mesmo host identificador inclui ambos o endereo IP e nmeros de porta associados com o processo no host. Examplos de nmeros de porta:
 

Servidor HTTP: 80 Servidor de e-mail: 25

Para enviar mensagens HTTP para oservidor web gaia.cs.umass.edu:


 

End IP : 128.119.245.12 Nmero de Porta: 80

Protocolo da camada de aplicao define


Tipos de mensagens trocadas,


p.ex., pedido, resposta quais campos nas mensagens & como os campos so delineados significado da informao nos campos

Sintaxe da mensagem:


Semntica da mensagem


Protocolos de domnio pblico: definidos nas RFCs permite interoperabilidade p.ex., HTTP, SMTP Protocolos proprietrios: p.ex., Skype

Regras sobre quando e como processos enviam & respondem s mensagens

Que servio de transporte uma aplicao necessita?


Perda de dados algumas aplicaes (p.ex., udio) podem tolerar alguma perda outras aplicaes (p.ex., transferncia de arquivos, telnet) requer transferncia de dados 100% confivel Atraso algumas aplicaes (p.ex., telefonia na Internet, jogos interativos) requerem baixo atraso pra serem efetivas Throughput algumas aplicaes (p.ex., multimdia) exigem uma quantidade mnima de throughput pra serem efetivas outras aplicaes (aplicaes elsticas) fazem uso de qualquer throughput que conseguirem Segurana Criptografia, integridade de dados,

Requisitos de servios de transporte de aplicaes comuns


Aplicao Transf de arquivos e-mail Documentos Web udio/video em tempo real udio/video gravado Jogos interativos instant messaging Perdas no no no tolerante tolerante tolerante no Sensibilidade temporal elstica no elstica no elstica no udio: 5kbps-1Mbps sim, 100s mseg vdeo:10kbps-5Mbps Idem acima sim, poucos seg Uns poucos kbps sim, 100s mseg elstica sim e no Throughput

Servios de Protocolo de transporte da Internet


Servio TCP:
Orientado a conexo: setup requerido entre processos cliente e servidor Transporte confivel entre processos transmissor e receptor Controle de fluxo: transmissor no vai sobrecarregar receptor Controle de congestionamento: pra o transmissor quando rede est sobrecarregada No fornece: sincronismo, garantia mnima de banda, segurana

Servio UDP:
Transferncia de dados no-confivel entre processos transmissor e receptor No fornece: setup de conexo, confiabilidade, controle de fluxo, controle de congestionamento, sincronismo, garantia de banda, ou segurana P: Quem vai usar UDP?

Aplicaes da Internet: protocolos de aplicao e de transporte


Aplicao e-mail Acesso a terminal remoto Web Transferncia de arquivos Vdeo/udio streaming Telefonia na Internet Protocolo da camada de aplicao SMTP [RFC 2821] Telnet [RFC 854] HTTP [RFC 2616] FTP [RFC 959] HTTP (p.ex. Youtube), RTP [RFC 1889] SIP, RTP, proprietrio (p.ex., Skype) Protocolo da camada de transp. TCP TCP TCP TCP TCP ou UDP

tipicamente UDP

Cap 2: Camada de Aplicao


2.1 Princpios de aplicaes de redes 2.2 Web e HTTP 2.3 FTP 2.4 Correio Eletrnico


SMTP, POP3, IMAP

2.5 DNS

Web e HTTP
Primeiro alguns jarges Pgina Web consiste de objetos Objeto pode ser arquivo HTML, imagem JPEG, applet Java, arquivo de udio, Pgina Web consiste de arquivo HTML base que inclui vrios objetos referenciados Cada objeto enderevel por uma URL Exemplo de URL: www.someschool.edu/someDept/pic.gif Nome do host Caminho

Viso geral do HTTP


HTTP: hypertext transfer protocol (protocolo de transferncia de hipertexto)
Protocolo da camada de aplicao da Web Modelo cliente/servidor  cliente: browser que pede, recebe, mostra objetos Web  servidor: servidor Web envia objetos em resposta a pedidos

PC rodando Explorer

Servidor rodando Servidor Web Apache Mac rodando Navigator

Viso geral de HTTP (continuao)


Usa TCP:
cliente inicia conexo TCP (cria socket) no servidor, porta 80 servidor aceita conexo TCP do cliente Mensagens HTTP (mensagens do protocolo da camada de aplicao) trocados entre browser (cliente HTTP) e servidor Web (servidor HTTP) Conexo TCP fechada HTTP sem estado
servidor no mantm informao sobre pedidos passados do cliente

Protocolos que mantm estados so complexos! Histria passada (estado) deve ser mantida se servidor/cliente trava, suas vises de estados pode ser inconsistente, deve ser recuperada

Obs.

Conexes HTTP
HTTP no-persistente No mnimo 1 objeto enviado sobre uma conexo TCP. HTTP persistente Mltiplos objetos podem ser enviados sobre uma nica conexo TCP entre cliente e servidor.

HTTP No-persistente
Suponha que o usurio entre com a URL
1a. Cliente HTTP client inicia
conexo TCP a servidor HTTP (processo) em www.algumaEscola.edu na porta 80

(contm texto, referncias a 10 imagens jpeg)

www.algumaEscola.edu/algumDepartamento/home.index

1b. Servidor HTTP no host


www.algumaEscola.edu esperando por conexo TCP na porta 80. aceita conexo, notificando cliente

2. Cliente HTTP envia pedido de


mensagem HTTP (contendo URL) em socket de conexo TCP. Mensagem indica que o cliente quer objeto algumDepartamento/home.index

3. Servidor HTTP recebe


mensagem de pedido, formula mensagem de resposta contendo objeto requisitado, e envia mensagem em seu socket

tempo

HTTP No-persistente (cont.)


4. Servidor HTTP fecha 5. Cliente HTTP recebe
conexo TCP. mensagem de resposta contendo arquivo html, mostra html. Ao interpretar o arquivo html, encontra 10 objetos jpeg referenciados

tempo 6. passos 1-5 repetidos pra cada


um dos 10 objetos jpeg

HTTP no-persistente: tempo de resposta


Definio de RTT: tempo para um pequeno pacote viajar do cliente pro servidor e voltar. Tempo de Resposta: um RTT pra iniciar conexo TCP um RTT pra pedido HTTP e resposta HTTP retornar Tempo de transmisso do arquivo total = 2RTT+tempo de transmisso

Inicia conexo TCP RTT pede arquivo RTT arquivo recebido tempo

tempo pra transmitir arquivo

tempo

HTTP Persistente
Problemas do HTTP No persistente : requer 2 RTTs por objeto Buffers, variveis para cada conexo TCP browsers quase sempre abrem conexes TCP paralelas pra baixar os objetos referenciados HTTP Persistente servidor deixa conexo aberta depois de enviar resposta Mensagens HTTP subsequentes entre mesmo par cliente/servidor enviadas sobre conexo aberta cliente envia pedidos logo que encontra um objeto referenciado somente 1 RTT pra todos os objetos referenciados

Mensagem de pedido HTTP


2 tipos de mensagens HTTP: pedido, resposta Mensagem de pedido HTTP:


ASCII (formato lido pelo homem)

Linha de pedido (comandos GET, POST, GET /somedir/page.html HTTP/1.1 HEAD) Host: www.someschool.edu User-agent: Mozilla/4.0 Linhas de Connection: close cabealho Accept-language:fr CR, LF indica fim da mensagem (CR, LF extra)

Mensagem de pedido HTTP: formato Linha do geral


Mtodo
campos

verso

pedido

Linhas do cabealho

Corpo da entidade

Fazendo upload de entrada de formulrio


Mtodo Post: Pgina Web quase sempre inclui entrada de formulrio Entrada enviada para servidor no corpo da entidade Mtodo URL: Usa mtodo GET Entrada enviada no campo URL da linha de pedido:

www.somesite.com/animalsearch?monkeys&banana

Tipos de mtodos
HTTP/1.0 GET POST HEAD


HTTP/1.1 GET, POST, HEAD PUT




Pede ao servidor para deixar objeto requisitado fora da resposta

envia arquivo no corpo da entidade para o caminho especificado no campo da URL Deleta arquivo especificado no campo da URL

DELETE


Mensagem de resposta HTTP


Linha de status (protocolo Cdigo de status Frase de status) Linhas de cabealho HTTP/1.1 200 OK Connection close 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 dados ...

dados, p.ex., Arquivo HTML requisitado

Cdigos de status de resposta HTTP


Na primeira linha na mensagem de resposta servidor->cliente. Alguns exemplos de cdigos: 200 OK


pedido bem-sucedido, objeto requisitado vem depois nesta mensagem Objeto requisitado moveu-se, nova localizao especificada depois nesta mensagem (Location:) Mensagem de pedido no entendida pelo servidor Documento requisitado no encontrado neste servidor

301 Moved Permanently




400 Bad Request




404 Not Found




505 HTTP Version Not Supported

Experimente o HTTP (lado cliente) voc mesmo


1. Faa um Telnet ao seu servidor Web favorito:
telnet www.iesam.com.br 80 Abre conexo TCP na porta 80 (porta default de servidor HTTP) em www.iesam.com.br Tudo que digitado enviado para porta 80 nesse servidor

2. Digite um pedido GET do HTTP:


GET / HTTP/1.1 Host: www.iesam.com.br Digitando isto (tecle ENTER 2 vezes), voc envia este mnimo (mas completo) Pedido GET ao servidor HTTP

3. Olhe a mensagem de resposta enviada pelo servidor HTTP!

Estado Usurio-servidor: cookies


Muitos Web sites famosos usam cookies 4 componentes:
1) Linha de cabealho de cookie da mensagem de resposta HTTP 2) Linha de cabealho de cookie na mensagem de pedido HTTP 3) Arquivo de cookie mantido no host do usurio, gerenciado pelo browser do usurio 4) Banco de dados no Web site

Exemplo: Susan sempre acessa Internet do PC visita sites de ecommerce especficos pela primeira vez Quando os pedidos iniciais HTTP chega no site, o site cria:  Um ID nico  Uma entrada no banco de dados para o ID

Cookies: mantendo o estado (cont.)


cliente
ebay 8734 Msg de pedido usual http

servidor
Servidor Amazon cria ID Resposta http comum Set-cookie: 1678 1678 pro usurio cria
entrada
Msg de pedido http comum

Arquivo de cookie
ebay 8734 amazon 1678

cookie: 1678

1 semana depois:
ebay 8734 amazon 1678

Msg de resposta http comum

Ao acesso especfica do cookie


acesso

Banco de dados

Msg de pedido http comum

cookie: 1678

Msg de resposta http comum

Ao especfica do cookie

Cookies (cont.)
O que os cookies podem fazer: Autorizao E-commerce Indicaes de produtos Estado de sesso de usurio (Webmail)

Cookies e privacidade: cookies permitem que sites aprendam muito sobre voc voc pode fornecer nome e e-mail aos sites

obs

Como manter o estado: Pontas do protocolo: mantm estado no transmissor/receptor sobre mltiplas transaes cookies: mensagens http carregam o estado

Web caches (servidor proxy)


Objetivo: satisfazer pedido do cliente sem envolver o servidor de origem Servidor usurio configura de origem browser: acessos Web via cache Servidor Proxy browser envia todos o cliente pedidos HTTP ao cache
 

objeto no cache: cache returna objeto Alm do cache requisitar objeto do servidor de origem, ele returna o objeto ao cliente

cliente

Servidor de origem

Mais sobre Web caching


cache age simultaneamente como cliente e servidor typicamente o cache instalado pelo provedor (universidade, companhia, provedor residencial) Por que Web caching? reduz tempo de resposta para o pedido do cliente reduz trfego no linkde acesso de uma instituio

Exemplo de Caching
Dados
Tamanho do objeto mdio = 100 000 bits Taxa mdia de pedidos dos browsers da instituia para servidores originais = 15/seg atraso do roteador institucional para qualquer servidor original e de volta ao roteador = 2 seg
Internet pblica

Servidores originais

Link de acesso de 1.5 Mbps rede institucional LAN de 10 Mbps

Consequncias
utilizao na LAN = 15% utilizao no link de accesso = 100% Atraso total = atraso Internet + atraso acesso + atraso LAN = 2 seg + minutos + milisegundos

cache institucional

Exemplo de Caching (cont)


Soluo possvel
Aumentar a largura de banda do link de acesso para, por exemplo, 10 Mbps
Internet pblica

Servidores originais

consequncia
utilizao da LAN = 15% utilization do link de acesso = 15% Atraso total = atraso da Rede institucional Internet + atraso do access + atraso da LAN = 2 seg + msegs + msegs Quase sempre sai caro!
Link de acesso de 10 Mbps LAN de 10 Mbps

Cache institucional

Exemplo de Caching (cont)


Soluo possvel: instalar cache
Supor taxa de acertos 0.4

Servidores originais
Internet pblica

consequncia
40% dos pedidos sero satisfeitos quase imediatamente 60% dos pedidos atendidos pelo servidor original utilizao do link de acesso reduzida para 60%, resultando em atrasos desprezveis (ex. 10 mseg) Atraso mdio total = atraso Internet + atraso acesso + atraso LAN = .6*(2.01) segs + .4*milisegs < 1.4 segs

Link de acesso de 1.5 Mbps Rede institucional 10 Mbps LAN

Cache institucional

GET Condicional
Objetivo: no enviar objetos cache se cache tem verso da Mensagem de pedido pgina atualizada HTTP If-modified-since: cache: especifica data da <data> cpia armazenada no pedido Resposta HTTP HTTP
If-modified-since: <data>
HTTP/1.0 304 Not Modified

servidor
objeto no modificado

servidor: resposta no contm objeto se cpia armazenada est atualizada:


HTTP/1.0 304 Not Modified

Mensagem de pedido HTTP


If-modified-since: <data>

Resposta HTTP
HTTP/1.0 200 OK

objeto modificado

<dados>

Cap 2: Camada de Aplicao


2.1 Princpios de aplicaes de redes 2.2 Web e HTTP 2.3 FTP 2.4 Correio Eletrnico


SMTP, POP3, IMAP

2.5 DNS

FTP: o protocolo de transferncia de arquivos


Interface Cliente de usurio FTP FTP

Transferncia de arquivos

Servidor

FTP Sistema de Arquivos remoto

Usurio em um host

Sistema de arquivos local

Transfere arquivo para/de host remoto Modelo cliente/servidor  cliente: lado que inicia a transferncia  servidor: host remoto ftp: RFC 959 Servidor ftp: porta 21

FTP: conexes de dados e controle separadas


Cliente FTP contacta servidor FTP na porta 21, TCP o protocolo de transporte Conexo de dados TCP Cliente Servidor Porta 20 cliente autorizado na conexo FTP FTP de controle cliente navega no diretrio servidor abre outra conexo remoto enviando comandos na de dados TCP para transferir conexo de controle. outro arquivo. Quando o servidor recebe o Conexo de controle : out of comando de transferncia de band arquivos, ele abre uma 2a Servidor FTP mantm conexo TCP (por arquivo) para estado: diretrio atual, o cliente autenticao anterior Depois de transferir um arquivo, servidor fecha conexo de dados.
Conexo de controle TCP porta 21

Comandos e respostas FTP


Exemplos de comandos:
enviado como texto ASCII sobre o canal de controle USER nome_do_usurio PASS senha LIST returna lista de arquivos no diretrio atual RETR nome_do_arquivo baixa arquivo STOR nome_do_arquivo envia arquivo pro host remoto

Exemplos de cdigo de retorno


Cdigo e frase de status (como no HTTP) 331 Username OK, password required 125 data connection already open; transfer starting 425 Cant open data connection 452 Error writing file

Cap 2: Camada de Aplicao


2.1 Princpios de aplicaes de redes 2.2 Web e HTTP 2.3 FTP 2.4 Correio Eletrnico  SMTP, POP3, IMAP 2.5 DNS

Correio Eletrnico
3 componentes principais : Agentes de usurio Servidores de email simple mail transfer protocol (protocolo simples de transferncia de correio): SMTP Agente de usurio P.ex.. leitor de email compe, edita, l mensagens de email p.ex., Eudora, Outlook, elm, Mozilla Thunderbird Mensagens de entrada e sada armazenadas no servidor
user agent mail server

Fila de Mensagens de sada


Caixa postal do usurio

user agent

SMTP SMTP SMTP


mail server user agent user agent

mail server

user agent

user agent

Correio Eletrnico:servidores de correio


Servidores de email
Caixa postal contm mensagens entrantes de um usurio Fila de mensagens de email de sada (a serem enviadas) Protocolo SMTP entre servidores de email para enviar mensagens de email  cliente: servidor de email transmissor  servidor: servidor de email receptor
Servidor de email Agente usurio Agente usurio

SMTP SMTP SMTP


Servidor de email Agente usurio Agente usurio

Servidor de email

Agente usurio

Agente usurio

Correio eletrnico: SMTP [RFC


2821]
usa TCP pra transferir confiavelmente mensagens de email de cliente pra servidor, porta 25 Transferncia direta: servidor transmissor pra servidor receptor 3 fases de transferncia  handshaking (cumprimento)  transferncia de mensagens  encerramento Interao comando/resposta  comandos: texto ASCII  resposta: cdigo e frase de status

mensagens deve estar em ASCII 7-bits

Cenrio: Alice envia mensagem pra Bob


1) Alice usa AU pra compor mensagem pra bob@someschool.edu 2) AU de Alice envia mensagem pra seu servidor de email; mensagem colocada na fila de mensagens 3) Lado cliente de SMTP abre conexo TCP com servidor de email de Bob 4) Cliente SMTP envia mensagem de Alicesobre a conexo TCP 5) Servidor de email de Bob coloca a mensagem na caixa postal de Bob 6) Bob abre seu AU pra ler mensagem

1 AU 2

Servidor de email 3

Servidor de email 4 5 6

AU

Exemplo de interao SMTP


S: C: S: C: S: C: S: C: S: C: C: C: S: C: S: 220 hamburger.edu HELO crepes.fr 250 Hello crepes.fr, pleased to meet you MAIL FROM: <alice@crepes.fr> 250 alice@crepes.fr... Sender ok RCPT TO: <bob@hamburger.edu> 250 bob@hamburger.edu ... 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

Tente a interao SMTP voc mesmo:


telnet nome_do_servidor 25 Veja resposta 220 do servidor Entre com os comandos HELO, MAIL FROM, RCPT TO, DATA, QUIT Isso permite que voc envie email sem usar cliente de email (leitor)

SMTP: palavras finais


SMTP usa conexes persistentes SMTP requer que mensagem (cabealho & corpo) esteja em ASCII 7bits Servidor SMTP usa CRLF.CRLF pra determinar o fim da mensagem

Comparao com HTTP:


HTTP: puxa SMTP: empurra ambos tem interao comando/resposta ASCII, cdigos de status HTTP: cada objeto encapsulado em sua prpria mensagem de resposta SMTP: mltiplos objetos enviados em mensagens multipart

Formato da mensagem de eMail


SMTP: protocolo para trocar mensagens de email RFC 822: padro para formatos de mensagens de texto: Linhas de cabealho, p.ex.,
From:  To:  Subject: diferente dos comandos SMTP!


cabealho

Linha em branco

corpo

corpo


a mensagem, caracteres ASCII somente

Protocolos de acesso a eMail


SMTP
AU

SMTP

Protocolo de acesso

AU

Servidor de email Servidor de email do receptor do transmissor

SMTP: entrega/armazenamento para servidor do receptor Protocolo de acesso a eMail: baixar do servidor  POP: Post Office Protocol [RFC 1939] autorizao (agente <-->servidor) e download  IMAP: Internet Mail Access Protocol [RFC 1730] Mais recursos (mais complexo) manipulao de mensagens armazenadas no servidor  HTTP: gmail, Hotmail, Yahoo! Mail, etc.

Protocolo POP3
Fase de autorizao
Comandos do cliente:  user: declara login  pass: senha Respostas do servidor  +OK  -ERR

S: C: S: C: S: C: S: S: S: C: S: S: C: C: S: S: C: C: S:

+OK POP3 server ready user bob +OK pass hungry +OK user successfully logged 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

on

Fase de transao, cliente:


list: lista nmeros das mensagens retr: baixa mensagem por nmero dele: deleta quit

POP3 (mais) e IMAP


Mais sobre POP3 Exemplo anterior usa modo baixa e deleta. Bob no pode reler email se ele troca de cliente Baixa-e-mantm: cpias de mensagens em diferentes clientes POP3 sem estados entre sesses IMAP Mantm todas as mensagens em um s lugar: o servidor Permite ao usurio organizar mensagens em pastas IMAP mantm estado do usurio entre sesses:


nomes de pastas e mapeamento entre IDs de mensagens e nome de pasta

Cap 2: Camada de Aplicao


2.1 Princpios de aplicaes de redes 2.2 Web e HTTP 2.3 FTP 2.4 Correio Eletrnico  SMTP, POP3, IMAP 2.5 DNS

DNS: Sistema de Nomes de Domnio


Pessoas: muitos identificadores:


Sistema de Nomes de Domnio:


Base de dados distribuda implementada em hierarquia de vrios servidores de nomes Protocolo da camada de aplicao host, roteadores, servidores de nomes se comunicam pra resolver nomes (traduo endereo/nome)  nota: funo central da Internet, implementada como protocolo de aplicao  complexidade na borda da rede

CPF, nome, RG

Hosts na Internet, roteadores:




Endereo IP (32 bits) usado pra enderear datagramas nome, p.ex., ww.yahoo.com - usado por humanos

P: mapear entre endereos IP e nomes?

DNS
Servios DNS Traduo de nome de mquina para endereo IP Apelidos de host


Apelidos (alias) para nomes reais (canonical names)

Apelidos de servidor de email Distribuio de carga




Por que no centralizar DNS? Ponto nico de falha Volume de trfego Base de dados centralizada e distante manuteno no escala!

Servidores Web replicados: conjunto de endereos IP pra um canonical name

Base de dados distribuda e hierrquica


Servidores Raiz Servidores DNS .com Servidores DNS .org Servidores DNS edu Servidores Servidores DNS poly.edu DNS umass.edu

Servidores DNS Servidores DNS Servidores DNS pbs.org yahoo.com amazon.com

Cliente quer IP pra www.amazon.com; 1o aprox: cliente pergunta pro servidor raiz como encontrar servidor DNS .com cliente pergunta pro servidor .com como encontrar o servidor DNS da amazon.com cliente pergunta pro servidor amazon.com como conseguir o IP de www.amazon.com

DNS: Servidores Raiz


contactado pelo servidor local que no pode traduzir o nome

a Verisign, Dulles, VA c Cogent, Herndon, VA (also LA) d U Maryland College Park, MD g US DoD Vienna, VA h ARL Aberdeen, MD
j Verisign, ( 21 locations)

k RIPE London (also 16 other locations) i Autonomica, Stockholm (plus 28 other locations) m WIDE Tokyo (also Seoul, Paris, SF)

e NASA Mt View, CA f Internet Software C. Palo Alto,


CA (and 36 other locations)

13 servidores raiz no mundo


b USC-ISI Marina del Rey, CA l ICANN Los Angeles, CA

Servidores TLD e Autoritativos


Servidores de alto nvel (Top-level domain - TLD):
  

responsveis pelos domnios com, org, net, edu, etc, e todos os de nao uk, fr, ca, jp. Network Solutions mantm servidores para domnio com Educause para domnio edu Servidores DNS da organizao, fornecem mapeamento autoritativo de hostname para IP para os servidores da organizao (p.ex., Web, email). Podem ser mantidos pela organizao ou por um provedor de servios

Servidores DNS Autoritativos:




Servidor de nomes local


No pertence estritamente hierarquia Cada ISP (provedor residencial, companhia, universidade) tem um.


tambm chamado servidor de nomes default

Quando o host faz pedido de traduo DNS, a pergunta enviada para seu servidor de DNS local


age como proxy, envia pergunta na hierarquia

Exemplo de traduo de nomes DNS


2

servidor DNS raiz

Host em cis.poly.edu quer IP para gaia.cs.umass.edu Busca iterativa:


Servidor contactado responde com o novo servidor a ser acionado Eu no conheo este nome, mas pergunte a este servidor
dns.poly.edu

3 4 5 servidor DNS local 1 8 7

servidor DNS TLD

servidor DNS autoritativo dns.cs.umass.edu

Host requisitante
cis.poly.edu gaia.cs.umass.edu

Exemplo de traduo de nomes DNS


Busca recursiva:
Passa a responsabilidade da traduo para o servidor contactado Problema de sobrecarga?
2

servidor DNS raiz

3 7 6 Servidor TLD

Servidor local
dns.poly.edu

8
servidor autoritativo dns.cs.umass.edu

Host requisitante
cis.poly.edu gaia.cs.umass.edu

DNS: cache e atualizao de registros


Uma vez que (qualquer) servidor aprende a traduo, ele armazena em cache esse mapeamento  Entradas do cache so apagadas depois de algum tempo  Servidores TLD tipicamente em cache em servidores locais
Servidores raiz raramente visitados

Registros DNS
DNS: base de dados distribuida armazenando registros de recursos (RR)

Formato do RR: Tipo=A


 nome hostname  valor end. IP

(nome, valor, tipo, ttl)

Tipo=CNAME
 nome apelido de uma nome

Tipo=NS
 

cannico (o real) www.ibm.com na verdade


servereast.backup2.ibm.com
 valor o nome cannico

nome domnio (p.ex. foo.com) valor hostname dos servidores de dns desse domnio

Tipo=MX
 valor nome do servidor de

email associado com nome

Protocolo DNS (mensagens)


Protocolo DNS: mensagens de pedido e resposta, ambos com o mesmo formato de mensagem Cabealho da mensagem
identificao: nmero de 16 bits no pedido, resposta usa mesmo nmero flags:  pedido ou resposta  recursividade desejada  recursividade disponvel  resposta autoritativa

Protocolo DNS (mensagens)


Perguntas

Respostas Servidores autoritativos

Informaes adicionais

Inserindo registros em DNS


exemplo: nova empresa Network Utopia registra nome networkuptopia.com numa registradora DNS (p.ex., Network Solutions)
 

prov nomes, endereos IP de servidores autoritativos (primrio e secundrio) registradora insere 2 RRs no servidor TLD com:

(networkutopia.com, dns1.networkutopia.com, NS) (dns1.networkutopia.com, 212.212.212.1, A)

Cria registro Tipo A no servidor autoritativo para www.networkuptopia.com; registro Tipo MX para networkutopia.com Como as pessoas descobrem o endereo IP de um Web site?

Potrebbero piacerti anche