Você está na página 1de 74
Camada de Aplicação Abril de 2009

Camada de Aplicação

Abril de 2009

Camada de Aplicação Abril de 2009
Aplicações de rede !   As rede de computadores existem por causa das aplicações .
Aplicações de rede
Aplicações de rede

!As rede de computadores existem por causa das aplicações.

!No jargão de sistema operacional, as entidades que se comunicam são denominados processos.

!Processo pode ser entendido como sendo um programa em execução em um host.

!Processos rodando em sistemas diferentes se comunicam um com outro enviando mensagens através da rede.

host . !   Processos rodando em sistemas diferentes se comunicam um com outro enviando mensagens
Aplicações de rede !   Cada processo é identificado por : !   Um endereço
Aplicações de rede
Aplicações de rede

!Cada processo é identificado por :

!Um endereço IP e

!Um número de porta de protocolo ( numero lógico)

!Cada aplicação de rede define um protocolo da camada de aplicação.

de protocolo ( numero lógico) !   Cada aplicação de rede define um protocolo da camada
Aplicações de rede !   Protocolo da camada de aplicação define: !   Os tipos
Aplicações de rede
Aplicações de rede

!Protocolo da camada de aplicação define:

!Os tipos de mensagens trocadas entre os processos;

!O formato das mensagens, isto é, os campos das mensagens;

!As semânticas dos campos, isto é, os significados de cada campo.

!Regras para determinar quando e como um processo envia mensagens e responde às mensagens.

de cada campo. !   Regras para determinar quando e como um processo envia mensagens e
Cliente e servidor !   Um protocolo da camada de aplicação possui tipicamente dois “
Cliente e servidor
Cliente e servidor

!Um protocolo da camada de aplicação possui tipicamente dois lados:

!O lado cliente e o lado servidor

!O lado cliente é aquele que toma a iniciativa de se comunicar com o lado servidor.

!Numa aplicação web, por exemplo, o browser implementa o lado cliente de HTTP e o servidor web implementa o lado servidor de HTTP.

!Muitas aplicações implementam os dois lados do protocolo.

e o servidor web implementa o lado servidor de HTTP. !   Muitas aplicações implementam os
User Agents !   User Agent é um programa que serve de interface entre o
User Agents
User Agents

!User Agent é um programa que serve de interface entre o usuário e a aplicação de rede.

!Os browsers Netscape e Internet Explorer são exemplos de user agents:

!Permitem que o usuário visualize as páginas Web, naveguem pela Web, interajam com applets Java, etc.

agents : !   Permitem que o usuário visualize as páginas Web, naveguem pela Web, interajam
Serviços de rede !   A camada de transporte fornece dois protocolos: UDP e TCP.
Serviços de rede
Serviços de rede

!A camada de transporte fornece dois protocolos: UDP e TCP.

!Ao se desenvolver uma aplicação de rede, deve-se escolher um dos protocolos de transporte.

!A escolha é feita baseando-se nos serviços que cada um dos protocolos de transporte fornece, isto é, utiliza-se aquele que mais se casa com as necessidades da aplicação.

um dos protocolos de transporte fornece, isto é, utiliza-se aquele que mais se casa com as
Serviços fornecidos pelos protocolos da camada de transporte !   TCP !   Orientado a
Serviços fornecidos pelos protocolos da camada de transporte
Serviços fornecidos pelos protocolos
da camada de transporte
fornecidos pelos protocolos da camada de transporte !   TCP !   Orientado a conexão !

!TCP !Orientado a conexão

!Transporte confiável !Possui reconhecimento e retransmissão

!Possui mecanismo de controle de congestionamento !Não garante taxa mínima de transmissão !Não fornece nenhuma garantia de atraso

de congestionamento !   Não garante taxa mínima de transmissão !   Não fornece nenhuma garantia
Serviços fornecidos pelos protocolos da camada de transporte !   UDP !   Não orientado
Serviços fornecidos pelos protocolos da camada de transporte
Serviços fornecidos pelos protocolos
da camada de transporte

!UDP !Não orientado a conexão

!Transferência não confiável !Não possui reconhecimento nem retransmissão

!Não possui mecanismo de controle congestionamento !Não garante taxa mínima de transmissão !Não fornece nenhuma garantia de atraso

congestionamento !   Não garante taxa mínima de transmissão !   Não fornece nenhuma garantia de
FTP ( File Transfer Protocol ) !   Protocolo para transferir arquivos de um sistema
FTP ( File Transfer Protocol )
FTP ( File Transfer Protocol )

!Protocolo para transferir arquivos de um sistema para outro.

!O usuário chama um programa cliente FTP

!O usuário especifica o computador remoto onde reside o arquivo desejado e, normalmente, uma senha para obter o acesso.

!O programa cliente estabelece uma conexão TCP com o servidor FTP e solicita uma cópia do arquivo.

obter o acesso. !   O programa cliente estabelece uma conexão TCP com o servidor FTP
FTP ( File Transfer Protocol ) Cliente User Agent Controle FTP Transferência de dados Sistema
FTP ( File Transfer Protocol )
FTP ( File Transfer Protocol )
Cliente User Agent Controle FTP Transferência de dados
Cliente
User
Agent
Controle
FTP
Transferência
de dados
Sistema de arquivos
Sistema de
arquivos
Servidor Controle 21 FTP Transferência 20 de dados
Servidor
Controle
21 FTP
Transferência
20 de dados
Sistema de arquivos
Sistema de
arquivos

Conexão de controle Comandos e respostas

20 de dados Sistema de arquivos Conexão de controle Comandos e respostas Conexão de dados Transferência

Conexão de dados Transferência

20 de dados Sistema de arquivos Conexão de controle Comandos e respostas Conexão de dados Transferência

de dados

SMTP ( Simple Mail Transfer Protocol )
SMTP ( Simple Mail Transfer Protocol )

!Protocolo para serviço de entrega de correio eletrônico.

!Quando um usuário envia uma mensagem, o sistema coloca uma cópia numa área de armazenamento ( fila de saída ), contendo:

!Identificação do destinatário.

!Endereço da máquina destinatária onde está o servidor SMTP.

), contendo: !   Identificação do destinatário. !   Endereço da máquina destinatária onde está o
SMTP ( Simple Mail Transfer Protocol )
SMTP ( Simple Mail Transfer Protocol )

!O sistema inicia a transferência como uma atividade de background:

!Estabelece uma conexão TCP ao servidor de correio na máquina destinatária.

!Passa a mensagem ao servidor remoto, que armazena numa caixa postal.

servidor de correio na máquina destinatária. !   Passa a mensagem ao servidor remoto, que armazena
POP ( Post Office Protocol ) !   Protocolo para acessar um mail box localizado
POP ( Post Office Protocol )
POP ( Post Office Protocol )

!Protocolo para acessar um mail box localizado numa máquina remota.

!Quando o usuário quiser acessar o seu mail box, deve-se estabelecer uma conexão TCP com servidor POP na máquina onde está localizada o seu mail box.

!Usa um protocolo semelhante ao SMTP.

TCP com servidor POP na máquina onde está localizada o seu mail box. !   Usa
POP ( Post Office Protocol ) !   User Agent !   Programa que interfaceia
POP ( Post Office Protocol )
POP ( Post Office Protocol )

!User Agent

!Programa que interfaceia com o usuário para editar e enviar mensagens, assim como para recuperar mensagens das suas caixas postais.

!Implementa os protocolos SMTP e POP.

enviar mensagens, assim como para recuperar mensagens das suas caixas postais. !   Implementa os protocolos
SMTP e POP3 Programa E-mail Servidor do provedor User-Agent ( UA ) Fila de saída
SMTP e POP3
SMTP e POP3

Programa E-mail

Servidor do provedor

User-Agent ( UA )
User-Agent
( UA )
Fila de saída
Fila de
saída
Cliente SMTP ( MTA )
Cliente SMTP
( MTA )
Internet SMTP
Internet
SMTP

SMTP

de saída Cliente SMTP ( MTA ) Internet SMTP SMTP MTA = Message Transfer Agent Servidor

MTA = Message Transfer Agent

Servidor Caixa Porta 25 Servidor POP postal SMTP
Servidor
Caixa
Porta 25
Servidor
POP
postal
SMTP

Programa E-mail

User-Agent ( UA )
User-Agent
( UA )

POP3

= Message Transfer Agent Servidor Caixa Porta 25 Servidor POP postal SMTP Programa E-mail User-Agent (
= Message Transfer Agent Servidor Caixa Porta 25 Servidor POP postal SMTP Programa E-mail User-Agent (
Arquitetura de um sistema de E-mail !   Sistema de e-mail composto por 2 partes:
Arquitetura de um sistema de E-mail
Arquitetura de um sistema de E-mail

!Sistema de e-mail composto por 2 partes:

!Mail User Agent (MUA) !Cliente de e-mail !Interação com usuário – composição e leitura de mensagens !Transferência de mensagens entre o usuário e o MTA !Diferentes protocolos entre MUA e MTA (POP, SMTP, IMAP) !Mail Transfer Agent (MTA) !Servidor de e-mail !Transferência de mensagens entre MTAs !Protocolo utilizado: SMTP

Agent (MTA) !   Servidor de e-mail !   Transferência de mensagens entre MTAs !  
Arquitetura de um sistema de E- mail
Arquitetura de um sistema de E-
mail

SMTP

POP/IMAP MTA MTA MUA SMTP POP/ SMTP IMAP MUA
POP/IMAP
MTA
MTA
MUA
SMTP
POP/
SMTP
IMAP
MUA
larc.usp.br Internet Ufabc.edu.br
larc.usp.br
Internet
Ufabc.edu.br
Arquitetura de um servidor de e-mail !   Como um MTA ( Mail Transfer Agent)é
Arquitetura de um servidor de e-mail
Arquitetura de um servidor de e-mail

!Como um MTA ( Mail Transfer Agent)é estruturado internamente ? !Mensagens dos usuários ficam armazenadas em caixas postais (mailboxes)

SMTP MTA SMTP SMTP MUA fernando skovach gbressan Caixas postais dos usuários POP/IMAP POP/ IMAP
SMTP
MTA
SMTP
SMTP
MUA
fernando
skovach
gbressan
Caixas postais
dos usuários
POP/IMAP
POP/ IMAP
MTA
Formato da mensagem de e-mail "   RFC 822: formato para mensagens de texto –
Formato da mensagem de e-mail
Formato da mensagem de e-mail

"RFC 822: formato para mensagens de texto

Mensagens codificadas em 7 bits ASCII

"Linhas de cabeçalho (Header), ex.:

From:

To:

Subject:

– – BCC:

CC:

header body
header
body

Linha

em

branco

– –   BCC: CC:   header body Linha em branco "   Corpo (Body) –

"Corpo (Body) – Apenas os caracteres ASCII da mensagem

  BCC: CC:   header body Linha em branco "   Corpo (Body) –   Apenas
MIME !   E-mail originalmente transmite apenas arquivos texto !   Como transmitir áudio, vídeo
MIME
MIME

!E-mail originalmente transmite apenas arquivos texto !Como transmitir áudio, vídeo e outros tipos de arquivos mais complexos ?

!Multiporpose Internet Mail Extension - MIME !RFC 2045, 2056 !Idéia Básica: Transformar arquivo binário em arquivo- texto

Codificação
Codificação
Formato de Mensagens com MIME !   Linhas adicionais no cabeçalho declaram o tipo de
Formato de Mensagens com MIME
Formato de Mensagens com MIME

!Linhas adicionais no cabeçalho declaram o tipo de conteúdo MIME

From: fernando@larc.usp.br To: mario@ig.com.br Subject: Foto da festa. MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Type: image/jpeg

base64 encoded data

base64

encoded data

image/jpeg base64 encoded data base64 encoded data Versão MIME método usado Para codificar Tipo de dado
image/jpeg base64 encoded data base64 encoded data Versão MIME método usado Para codificar Tipo de dado
image/jpeg base64 encoded data base64 encoded data Versão MIME método usado Para codificar Tipo de dado
Versão MIME
Versão MIME
método usado Para codificar
método usado
Para codificar
Tipo de dado multimídia, Subtipo, declaração de parâmetros Dado codificado
Tipo de dado
multimídia, Subtipo,
declaração de
parâmetros
Dado codificado
MIME método usado Para codificar Tipo de dado multimídia, Subtipo, declaração de parâmetros Dado codificado
MIME método usado Para codificar Tipo de dado multimídia, Subtipo, declaração de parâmetros Dado codificado
MIME método usado Para codificar Tipo de dado multimídia, Subtipo, declaração de parâmetros Dado codificado
MIME método usado Para codificar Tipo de dado multimídia, Subtipo, declaração de parâmetros Dado codificado
Protocolo POP3 !   POP3 - Post Office Protocol version 3 !   RFC 1939
Protocolo POP3
Protocolo POP3

!POP3 - Post Office Protocol version

3

!RFC 1939

!TCP Porta 110

!Utilizado para leitura das mensagens armazenadas no servidor de E-mail

!Download das mensagens inteiras do servidor

!Permite a leitura das mensagens em offline (ou seja, sem estar conectado na rede)

inteiras do servidor !   Permite a leitura das mensagens em offline ( ou seja ,
Como o POP3 funciona ? !   Funcionamento Usual 1 – Cliente de e-mail se
Como o POP3 funciona ?
Como o POP3 funciona ?

!Funcionamento Usual

1 – Cliente de e-mail se conecta no servidor, autenticando-se

2 – Servidor POP3 transfere para o cliente todas as mensagens na caixa postal

3 – Mensagens da caixa postal são apagadas no servidor (fase opcional, porém alguns servidores fazem isto automaticamente) 4 – Conexão é encerrada

são apagadas no servidor (fase opcional, porém alguns servidores fazem isto automaticamente) 4 – Conexão é
POP3 e leitura offline !   Leitura Offline !   As mensagens são carregadas para
POP3 e leitura offline
POP3 e leitura offline

!Leitura Offline !As mensagens são carregadas para a máquina cliente, através do POP3 !Por isso, após o download a máquina não precisa estar conectada na rede para a leitura das mesmas !Vantagens para usuários remotos (ex.: dial-up) e móveis (notebooks)

!Armazenamento das mensagens no cliente !Organização das mensagens em pastas é feita no cliente POP3

!   Armazenamento das mensagens no cliente !   Organização das mensagens em pastas é feita
Problemas com POP3 !   Mensagens são trazidas integralmente para o cliente !   Mensagens
Problemas com POP3
Problemas com POP3

!Mensagens são trazidas integralmente para o cliente !Mensagens grandes têm que ser completamente baixadas antes que se possa verificar se o seu conteúdo é desejado !Ruim para usuários que recebem muito lixo no e-mail !Usuário que lê mensagens de dois lugares diferentes (ex.:

casa e trabalho) !Mensagens não forem apagadas do servidor # 2 cópias das mensagens, armazenadas em pastas diferentes em cada cliente, com status diferente !Mensagens forem apagadas do servidor # cada cliente conterá diferentes mensagens

cliente, com status diferente !   Mensagens forem apagadas do servidor # cada cliente conterá diferentes
Protocolo IMAP4 !   Internet Message Access Protocol v.4 !   Outro protocolo para captura
Protocolo IMAP4
Protocolo IMAP4

!Internet Message Access Protocol v.4 !Outro protocolo para captura de mensagens com autenticação !TCP, Porta 143 !RFC 2060 !Mudança na filosofia de tratamento das mensagens !Mensagens são mantidas do servidor de email, mas acessadas como se estivessem localmente. !Permite o download de parte da mensagem apenas (ex.: apenas o header, apenas um attachment, etc.)

localmente. !   Permite o download de parte da mensagem apenas (ex.: apenas o header, apenas
IMAP4 !   Mensagens armazenadas no servidor !   As mensagens no servidor podem ser
IMAP4
IMAP4

!Mensagens armazenadas no servidor !As mensagens no servidor podem ser organizadas em pastas definidas pelo usuário !De qualquer lugar que o usuário acessar ele sempre terá acesso às mesmas pastas !Normalmente os clientes de e-mail baixam apenas os headers das mensagens !As mensagens são transferidas apenas quando se quer lê-las !O mesmo vale para os attachments !Se pelo header o usuário decidir apagar a mensagem, ele não precisa baixá-la inteira

vale para os attachments !   Se pelo header o usuário decidir apagar a mensagem, ele
!   Webmail Webmail !   Mapeia as funcionalidades de uma MUA, permitindo ao usuário

!Webmail

Webmail
Webmail

!Mapeia as funcionalidades de uma MUA, permitindo ao usuário interagir com sua caixa postal e enviar mensagens apenas com um browser

funcionalidades de uma MUA, permitindo ao usuário interagir com sua caixa postal e enviar mensagens apenas
Arquitetura de um servidor com Webmail Webmail !   Acessa a caixa postal do usuário
Arquitetura de um servidor com Webmail
Arquitetura de um servidor com
Webmail

Webmail !Acessa a caixa postal do usuário e formata as mensagens em páginas HTML !Páginas HTML para composição de mensagens de texto !Software de webmail pode estar na mesma máquina dos servidores POP/ IMAP e SMTP ou em máquinas distintas

!

MTA SMTP SMTP SMTP MUA POP/IMAP fernando skovach gbressan HTTP POP/IMAP POP/IMAP POP/ IMAP Webmail
MTA
SMTP
SMTP
SMTP
MUA
POP/IMAP
fernando
skovach
gbressan
HTTP
POP/IMAP
POP/IMAP
POP/ IMAP
Webmail
WWW ou Web !   É uma aplicação que permite usuários ( browsers ) recuperarem
WWW ou Web
WWW ou Web

!É uma aplicação que permite usuários ( browsers ) recuperarem documentos armazenados nos servidores Web.

!Os documentos, conhecidos também por páginas Web, são constituídos de objetos.

!Um objeto é um simples arquivo como:

!Um arquivo HTML !Uma imagem JPEG ou GIF !Um applet Java !Um clip de áudio ou vídeo

arquivo como: !   Um arquivo HTML !   Uma imagem JPEG ou GIF !  
WWW ou Web !   A maioria das páginas Web são constituídas de um arquivo
WWW ou Web
WWW ou Web

!A maioria das páginas Web são constituídas de um arquivo HTML de base contendo referências a vários objetos.

!Uma página Web constituído de um arquivo HTML e cinco imagens JPEG, contém seis objetos.

a vários objetos. !   Uma página Web constituído de um arquivo HTML e cinco imagens
HyperText Markup Language ( HTML )
HyperText Markup Language ( HTML )

!Documentos HTML são arquivos de texto ASCII especialmente formatados, denominados hipertextos, que são interpretados pelos browsers Web.

!Estes documentos contém textos a serem mostrados no display, e marcadores especiais que especificam as ações que devem ser tomadas pelo browser como formatar textos, buscar outros objetos, mostrar imagens na tela, etc.

as ações que devem ser tomadas pelo browser como formatar textos, buscar outros objetos, mostrar imagens
HyperText Markup Language ( HTML )
HyperText Markup Language ( HTML )

!Os marcadores especiais tem o formato <Marcador>

!Todo o marcador tem o correspondente marcador que indica o fim de uma ação. Seu formato é < /Marcador >

!Um dos formatos do hipertexto é o hiperlink que é um ponteiro para algum tipo de recurso na Internet.

!Interpretando hiperlink, um browser sabe onde encontrar e como recuperar o recurso.

tipo de recurso na Internet. !   Interpretando hiperlink, um browser sabe onde encontrar e como
URL ( Universal Resource Locator ) !   Fornece informações sobre a localização e o
URL ( Universal Resource Locator )
URL ( Universal Resource Locator )

!Fornece informações sobre a localização e o método ( protocolo ) para recuperar um objeto.

!Alguns dos métodos de acesso definidos para URL são ftp, http, telnet, etc.

!Sintaxe básica de um URL:

<método de acesso>:<parte específica do método>

telnet, etc. !   Sintaxe básica de um URL: <método de acesso>:<parte específica do método >
URL ( Universal Resource Locator ) !   No caso de http : http :
URL ( Universal Resource Locator )
URL ( Universal Resource Locator )

!No caso de http :

http : //<localização do host> : <porta>/ <path>

Se a porta não for especificada, subentende-se a porta default. No caso de http é 80.

!Exemplo de URL:

http://www.ufabc.edu.br/algumDiretorio/

fig.gif

a porta default . No caso de http é 80. !   Exemplo de URL: http://
Hypertext Transfer Protocol ( HTTP ) !   Protocolo usado na aplicação Web. !  
Hypertext Transfer Protocol ( HTTP )
Hypertext Transfer Protocol ( HTTP )

!Protocolo usado na aplicação Web.

!HTTP é implementado em dois programas: cliente e servidor.

!HTTP define uma estrutura de mensagens e como elas são trocadas entre clientes e servidores.

!Define como clientes Web ( browsers ) solicitam páginas Web aos servidores e como os servidores transferem as páginas Web aos clientes

browsers ) solicitam páginas Web aos servidores e como os servidores transferem as páginas Web aos
Hypertext Transfer Protocol ( HTTP ) !   Uma transação HTTP consiste de 4 partes
Hypertext Transfer Protocol ( HTTP )
Hypertext Transfer Protocol ( HTTP )

!Uma transação HTTP consiste de 4 partes:

HTTP ) !   Uma transação HTTP consiste de 4 partes : !   Conexão -

!Conexão - O cliente estabelece uma conexão TCP na porta associada ao servidor HTTP (porta 80) no host remoto.

associada ao servidor HTTP (porta 80) no host remoto . !   Solicitação - O cliente

!Solicitação - O cliente envia uma solicitação ao servidor HTTP.

- O cliente envia uma solicitação ao servidor HTTP. !   Resposta - O servidor HTTP

!Resposta - O servidor HTTP envia uma resposta.

!   Resposta - O servidor HTTP envia uma resposta . !   Fechamento - O

!Fechamento - O cliente ou o servidor fecha a conexão TCP.

- O servidor HTTP envia uma resposta . !   Fechamento - O cliente ou o
Hypertext Transfer Protocol ( HTTP ) !   Apresentação das páginas Web pelo browser !
Hypertext Transfer Protocol ( HTTP )
Hypertext Transfer Protocol ( HTTP )

!Apresentação das páginas Web pelo browser

!As páginas Web não são transmitidas de uma vez.

!São construídas através de várias transações http.

!Transmite inicialmente, o arquivo HTML de base que contém o texto básico e as localizações dos gráficos dentro da página.

!O browser, dessa forma, pode mostrar imediatamente a página básica, e então, buscar

os gráficos.

. !   O browser, dessa forma, pode mostrar imediatamente a página básica , e então
Web Cache !   Também denominado de Proxy Server , web cache é uma entidade
Web Cache
Web Cache

!Também denominado de Proxy Server, web cache é uma entidade de rede que efetua as solicitações HTTP do cliente.

!Possui seu próprio sistema de armazenamento em disco, mantendo cópias dos objetos solicitados mais recentes.

!O usuário configura seus browsers de forma que todas as solicitações HTTP sejam dirigidas aos web caches.

!   O usuário configura seus browsers de forma que todas as solicitações HTTP sejam dirigidas
Web Cache !   Nas solicitações, os web caches verificam inicialmente se existe uma cópia
Web Cache
Web Cache

!Nas solicitações, os web caches verificam inicialmente se existe uma cópia do objeto solicitado no seu disco.

!Se existir, envia o objeto ao cliente. Senão, o web cache estabelece uma conexão TCP com o servidor de origem, e solicita o objeto.

!Ao receber o objeto solicitado, armazena uma cópia deste no seu disco e envia uma outra cópia ao browser dentro de uma mensagem de resposta HTTP.

armazena uma cópia deste no seu disco e envia uma outra cópia ao browser dentro de
Web Cache Cliente Resposta HTTP Solicitação HTTP Solicitação HTTP Solicitação HTTP Servidor de Proxy Resposta
Web Cache
Web Cache

Cliente

Web Cache Cliente Resposta HTTP Solicitação HTTP Solicitação HTTP Solicitação HTTP Servidor de Proxy Resposta

Resposta HTTP

Solicitação HTTP

Solicitação HTTP

Solicitação HTTP Servidor de Proxy Resposta HTTP Origem Server Disco
Solicitação HTTP
Servidor
de
Proxy
Resposta HTTP
Origem
Server
Disco
Solicitação HTTP Solicitação HTTP Servidor de Proxy Resposta HTTP Origem Server Disco Cliente Resposta HTTP

Cliente

Resposta HTTP

Solicitação HTTP Solicitação HTTP Servidor de Proxy Resposta HTTP Origem Server Disco Cliente Resposta HTTP
Objetivos de Web Cache !   Reduzir o tempo de resposta das solicitações !  
Objetivos de Web Cache
Objetivos de Web Cache

!Reduzir o tempo de resposta das solicitações

!Se existir uma conexão de alta velocidade entre o cliente e o cache, como geralmente é o caso, o cliente pode obter o objeto de forma mais rápida se existir uma cópia no cache.

!Reduzir o tráfego nos links de acesso à Internet

!Em 1998, mais de 75% do tráfego na Internet eram de Web.

!Uma Internet cheia de caches constitui uma infra-estrutura para a distribuição rápida de conteúdos.

de Web. !   Uma Internet cheia de caches constitui uma infra-estrutura para a distribuição rápida
DNS ( Domain Name System ) !   DNS define uma estrutura hierárquica de nomes
DNS ( Domain Name System )
DNS ( Domain Name System )

!DNS define uma estrutura hierárquica de nomes

!Estrutura que acomoda um conjunto grande de nomes.

!Descentraliza o mecanismo de nomeação.

!Delega autoridade para cada parte do nome .

!Distribui a responsabilidade no mapeamento de nomes em endereços.

!Semelhante a estrutura de numeração telefônica.

a responsabilidade no mapeamento de nomes em endereços. !   Semelhante a estrutura de numeração telefônica.
DNS na Internet !   A principal tarefa de DNS na Internet é traduzir nomes
DNS na Internet
DNS na Internet

!A principal tarefa de DNS na Internet é traduzir nomes de hosts em endereços IP.

!Especifica uma sintaxe de nomes e as regras para delegar autoridade sobre os nomes.

!Especifica um sistema distribuído de base de dados para traduzir nomes de hosts em endereços IP.

os nomes . !   Especifica um sistema distribuído de base de dados para traduzir nomes
DNS na Internet !   Especifica uma sintaxe de nomes e as regras para delegar
DNS na Internet
DNS na Internet

!Especifica uma sintaxe de nomes e as regras para delegar autoridade sobre os nomes.

!Usa um esquema hierárquico de nomes conhecido como nome de domínio, que

!Consiste de uma seqüência de títulos separados por um ponto.

!Qualquer sufixo de um título em um nome de domínio é denominado de domínio.

separados por um ponto . !   Qualquer sufixo de um título em um nome de
Exemplo de um nome de domínio larc.usp.br Nome de domínio para o LARC. É o
Exemplo de um nome de domínio
Exemplo de um nome de domínio

larc.usp.br Nome de domínio para o LARC. É o domínio de mais baixo nível.

usp.br Nome de domínio para a USP. É o domínio de segundo nível.

br Nome de domínio para o Brasil. É o domínio de mais alto nível.

para a USP. É o domínio de segundo nível. br Nome de domínio para o Brasil.
Domínios de mais alto nível na Internet
Domínios de mais alto nível na Internet

!Pode-se ter duas hierarquias de nomes:

 
 

!Geográfica e Organizacional

!com

- Organizações comerciais. - Instituições educacionais. - Instituições governamentais. - Instituições internacionais - Instituições militares. Organização privada Principais centros de suporte a rede - Domínio especial que mapeia

-

-

 

!edu

!gov

!int

!mil

!org

!net

!arpa

endereços IP em nomes de domínio. !código de país - Padrão ISO3166 . Ex.: br, us

endereços IP em nomes de domínio . !   código de país - Padrão ISO3166 .
Nomes de domínio da rede Internet Raiz arpa com edu gov mil org . .
Nomes de domínio da rede Internet
Nomes de domínio da rede Internet
Raiz arpa com edu gov mil org . . . br ufabc com usp xyz
Raiz
arpa
com
edu
gov
mil
org
.
.
.
br
ufabc
com
usp
xyz
nupro
xyz
larc

Domínios de mais alto nível.

Gerenciado pela interNIC

xyz.com

cs.ucla.edu

xyz.com.br

larc.usp.br

xyz nupro xyz larc Domínios de mais alto nível. Gerenciado pela interNIC xyz.com cs.ucla.edu xyz.com.br larc.usp.br
Autoridades de domínio !   Cada autoridade pode criar ou alterar o que estiver dentro
Autoridades de domínio
Autoridades de domínio

!Cada autoridade pode criar ou alterar o que estiver dentro do seu domínio sem pedir permissão a ninguém.

!Tudo que deve ser feito é adicionar o novo nome numa base de dados que é disponível globalmente.

. !   Tudo que deve ser feito é adicionar o novo nome numa base de
Considerações sobre DNS !   Cada parte de um nome completo diz apenas quem é
Considerações sobre DNS
Considerações sobre DNS

!Cada parte de um nome completo diz apenas quem é responsável pela manutenção do nome.

!Não diz quem mantém o computador com esse nome e nem onde está localizado.

!Dois computadores pertencentes ao mesmo domínio de nomes podem estar em redes físicas diferentes.

!Uma máquina pode ter vários nomes:

!caju.larc.usp.br pode representar o mesmo computador que ftp.larc.usp.br.

  Uma máquina pode ter vários nomes: !   caju.larc.usp.br pode representar o mesmo computador que
Tradução de nomes em endereços !   DNS implementa um sistema distribuído de base de
Tradução de nomes em endereços
Tradução de nomes em endereços

!DNS implementa um sistema distribuído de base de dados para traduzir nomes de hosts em endereços IP.

!A base distribuída de dados é implementada através de uma uma hierarquia de servidores de nomes; e

!de um protocolo da camada de aplicação que permite hosts e servidores de nomes se comunicarem para fornecer serviço de tradução.

!O protocolo DNS utiliza o protocolo UDP na porta 53.

de nomes se comunicarem para fornecer serviço de tradução. !   O protocolo DNS utiliza o
Mapeamento de nomes em endereços
Mapeamento de nomes em endereços

!DNS é normalmente utilizado pelos outros protocolos de aplicação como HTTP, SMTP e FTP, para traduzir nomes de host fornecidos pelos usuários.

!Um browser para buscar uma página web na URL www.larc.usp.br, deve antes de mais nada, obter o endereço IP correspondente.

!Para isso, o browser solicita ao programa cliente da aplicação DNS resolver o nome, isto é, obter o endereço IP.

!O programa cliente reside na mesma máquina onde reside o browser.

resolver o nome, isto é, obter o endereço IP. !   O programa cliente reside na
Exemplo de tradução !   O cliente DNS formula uma mensagem de solicitação e envia
Exemplo de tradução
Exemplo de tradução

!O cliente DNS formula uma mensagem de solicitação e envia para um servidor de nomes.

!Quando o cliente DNS receber a mensagem de resposta do servidor de nomes, ele passa o endereço IP para o browser .

!O browser pode agora,estabelecer uma conexão TCP com o servidor web localizado neste endereço IP.

o browser . !   O browser pode agora,estabelecer uma conexão TCP com o servidor web
Organização hierárquica de servidores
Organização hierárquica de servidores

!Arranjo conceitual de servidores de nomes

!Corresponde à hierarquia de nomes.

!Teoricamente, cada servidor conhece os endereços de todos os servidores de nível inferior dentro do domínio que ele manipula.

!A raiz da árvore é um servidor que reconhece os domínios de mais alto nível e sabe qual servidor resolve cada domínio.

!Dado um nome para resolver, a raiz pode escolher o servidor correto para este nome.

servidor resolve cada domínio. !   Dado um nome para resolver, a raiz pode escolher o
Organização hierárquica de servidores
Organização hierárquica de servidores

!Organização realística de servidores de nomes

!Na árvore conceitual, existe um servidor para cada nível na qual um ou mais sub-domínios foram criados.

!Na prática, a árvore de servidores não corresponde à hierarquia de nomes.

!Muitas vezes, as informações de todos os seus sub- domínios estão em um único servidor.

hierarquia de nomes. !   Muitas vezes, as informações de todos os seus sub- domínios estão
Servidor local de nomes !   Cada ISP, como uma universidade, uma empresa, um provedor
Servidor local de nomes
Servidor local de nomes

!Cada ISP, como uma universidade, uma empresa, um provedor residencial - possui um servidor local de nomes ( também denominado de default name server ).

!Quando um host envia uma mensagem DNS de solicitação, vai primeiro para o servidor local.

!O endereço IP deste servidor é configurado no host.

DNS de solicitação, vai primeiro para o servidor local. !   O endereço IP deste servidor
Servidor local de nomes !   O servidor local fica normalmente próximo ao cliente. !
Servidor local de nomes
Servidor local de nomes

!O servidor local fica normalmente próximo ao cliente.

!Se um host solicitar a tradução do nome de uma máquina que faz parte do mesmo ISP, o servidor local será capaz de fornecer imediatamente o endereço IP solicitado.

!É o caso do host manga.larc.usp.br solicitar o endereço IP do melao.larc.usp.br.

o endereço IP solicitado. !   É o caso do host manga.larc.usp.br solicitar o endereço IP
Servidor raiz !   Quando um servidor local não puder responder a uma solicitação de
Servidor raiz
Servidor raiz

!Quando um servidor local não puder responder a uma solicitação de um host ( porque, ele não possui o registro para este nome de host ), passa a se comportar como um cliente DNS e repassa a solicitação para um dos servidores raiz.

!Os servidores raiz conhecem o endereço IP de um servidor autoritárioque sabe como fazer o mapeamento.

!Existem na Internet cerca de uma dúzia de servidores raiz.

“ autoritário ” que sabe como fazer o mapeamento. !   Existem na Internet cerca de
Servidor autoritário de nomes !   Todos os hosts de um domínio de nomes devem
Servidor autoritário de nomes
Servidor autoritário de nomes

!Todos os hosts de um domínio de nomes devem estar registrados em um servidor que tem autoridade sobre este domínio.

!Por exemplo, o host de nome www.larc.usp.br deve estar registrado no servidor de nomes que tem autoridade sobre o domínio larc.usp.br.

o host de nome www.larc.usp.br deve estar registrado no servidor de nomes que tem autoridade sobre
Servidor autoritário de nomes !   Por definição, um servidor de nomes é autoritário para
Servidor autoritário de nomes
Servidor autoritário de nomes

!Por definição, um servidor de nomes é autoritário para um host se ele possuir um registro de DNS que traduz o nome deste host no seu endereço IP.

!Normalmente, o servidor autoritário de um host é um servidor local de nomes no ISP deste host.

!Na prática, exige-se que cada host esteja registrado no mínimo em dois servidores de nome autoritário.

host. !   Na prática, exige-se que cada host esteja registrado no mínimo em dois servidores
Resolução de nomes de domínio !   Tipos de solicitação para resolução de nomes !
Resolução de nomes de domínio
Resolução de nomes de domínio

!Tipos de solicitação para resolução de nomes

!Solicitação para uma resolução completa ( resolução recursiva )

!Neste caso, o servidor contata o servidor que pode resolver o nome e passa a resposta ao cliente;

!Solicitação para uma resolução não recursiva ( resolução iterativa )

!Neste caso, o servidor responde especificando o servidor de nomes que o cliente deve contatar para resolver o nome.

!   Neste caso, o servidor responde especificando o servidor de nomes que o cliente deve
Resolução de nomes de domínio !   Para assegurar que um servidor de nomes possa
Resolução de nomes de domínio
Resolução de nomes de domínio

!Para assegurar que um servidor de nomes possa alcançar outros, o sistema de domínio exige que cada servidor conheça:

!O endereço de pelo menos um servidor raiz.

!O endereço de um servidor para o domínio imediatamente acima dele ( domínio pai ).

menos um servidor raiz. !   O endereço de um servidor para o domínio imediatamente acima
Resolução de nomes de domínio !   Quando um servidor de nomes recebe uma solicitação,
Resolução de nomes de domínio
Resolução de nomes de domínio

!Quando um servidor de nomes recebe uma solicitação, ele verifica se o nome pertence ao domínio para qual é uma autoridade.

!Se for, faz a tradução do nome e manda a resposta ao cliente.

!Se o servidor não puder responder, ele verifica o tipo de resolução especificada pelo cliente.

ao cliente. !   Se o servidor não puder responder, ele verifica o tipo de resolução
Resolução de nomes de domínio !   Se o cliente solicitou resolução completa, o servidor
Resolução de nomes de domínio
Resolução de nomes de domínio

!Se o cliente solicitou resolução completa, o servidor contata um servidor de nome que pode resolver e retorna a resposta ao cliente.

!Se o cliente solicitou uma resolução não recursiva, o servidor envia como resposta, o endereço IP do próximo servidor para resolver o nome.

resolução não recursiva , o servidor envia como resposta, o endereço IP do próximo servidor para
Exemplo de resolução de nomes 1 8 2 3 4 5 6 7 Servidor raiz
Exemplo de resolução de nomes
Exemplo de resolução de nomes
1 8
1
8
2 3 4 5 6 7
2
3
4
5
6
7

Servidor raiz

Servidor

do domínio

.com

Servidor

do domínio

.microsoft.com

de resolução de nomes 1 8 2 3 4 5 6 7 Servidor raiz Servidor do
Exemplo de resolução de nomes 1. O resolvedor de nomes do host pera.larc.usp.br envia uma
Exemplo de resolução de nomes
Exemplo de resolução de nomes

1. O resolvedor de nomes do host pera.larc.usp.br envia uma solicitação para a resolução completa do nome www.microsoft.com ao seu servidor local de nomes.

2. O servidor local não é autoridade para este nome e portanto, envia uma solicitação para uma resolução interativa do nome www.microsoft.com a um servidor raiz.

3. O servidor raiz de nomes responde com o endereço IP do servidor autoritário de nomes do domínio .com

servidor raiz. 3. O servidor raiz de nomes responde com o endereço IP do servidor autoritário
Exemplo de resolução de nomes 4. O servidor local envia uma solicitação para a resolução
Exemplo de resolução de nomes
Exemplo de resolução de nomes

4. O servidor local envia uma solicitação para a resolução interativa de www.microsoft.com ao servidor de .com

5. O servidor de .com responde com o endereço IP do servidor autoritário de nomes do domínio .microsoft.com

6. O servidor local envia uma solicitação para a resolução interativa de www.microsoft.com ao servidor de .microsoft.com

servidor local envia uma solicitação para a resolução interativa de www.microsoft.com ao servidor de .microsoft.com
Exemplo de resolução de nomes 7. O servidor de .microsoft.com responde com o endereço IP
Exemplo de resolução de nomes
Exemplo de resolução de nomes

7. O servidor de .microsoft.com responde com o endereço IP do host www.microsoft.com ( ou que este host não existe ).

8. O servidor local envia o endereço IP do www.microsoft.com ao resolvedor de nomes que fez a solicitação inicial.

). 8. O servidor local envia o endereço IP do www.microsoft.com ao resolvedor de nomes que
Eficiência na resolução de nomes !   Os servidores da Internet usam cache para otimizar
Eficiência na resolução de nomes
Eficiência na resolução de nomes

!Os servidores da Internet usam cache para otimizar a procura e diminuir o tráfego na Internet.

!Cada servidor mantém um cache com nomes utilizados recentemente, junto com as informações de onde o seu endereço foi obtido.

!Quando um cliente pede ao servidor resolver um nome, o servidor verifica se tem autoridade pelo nome.

!Se não tiver, verifica no seu cache se o nome foi resolvido recentemente.

verifica se tem autoridade pelo nome. !   Se não tiver, verifica no seu cache se
Eficiência na resolução de nomes !   O servidor envia a informação que está no
Eficiência na resolução de nomes
Eficiência na resolução de nomes

!O servidor envia a informação que está no cache ao cliente, mas marcada como sendo uma associação não autoritária.

!O servidor local envia também, o nome e o endereço IP do servidor autoritário ( S ) de onde obteve a associação e outras informações .

!O cliente pode contatar o servidor S e verificar se a associação entre o nome e o endereço é ainda válida.

. !   O cliente pode contatar o servidor S e verificar se a associação entre
Eficiência na resolução de nomes Pergunta Cache Servidor de nome Servidor de nome Base de
Eficiência na resolução de nomes
Eficiência na resolução de nomes

Pergunta

Cache

Servidor de nome

Servidor de nome

nomes Pergunta Cache Servidor de nome Servidor de nome Base de dados Base de dados Usuário

Base de dados

Cache Servidor de nome Servidor de nome Base de dados Base de dados Usuário Pergunta Resposta

Base de dados

Usuário

Pergunta

Resposta

Resolvedor de nomes

Cache

de nome Servidor de nome Base de dados Base de dados Usuário Pergunta Resposta Resolvedor de
de nome Servidor de nome Base de dados Base de dados Usuário Pergunta Resposta Resolvedor de

Resposta

Cache

de nome Servidor de nome Base de dados Base de dados Usuário Pergunta Resposta Resolvedor de
Eficiência na resolução de nomes !   Para manter os caches corretos, os servidores temporizam
Eficiência na resolução de nomes
Eficiência na resolução de nomes

!Para manter os caches corretos, os servidores temporizam cada entrada.

!Após a temporização a entrada correspondente do cache é removida.

!Quando uma autoridade responde a uma solicitação, ele inclui um valor de temporização ( TTL -Time to Live ) que especifica o tempo de garantia da associação.

ele inclui um valor de temporização ( TTL - Time to Live ) que especifica o
bibliografia !   Kurose, Ross: Redes de Computadores e a Internet, 5º Edição !  
bibliografia
bibliografia

!Kurose, Ross: Redes de Computadores e a Internet, 5º Edição

!Stephan Kovach: Notas de aulas.

bibliografia !   Kurose, Ross: Redes de Computadores e a Internet, 5º Edição !   Stephan