DNS
Sistema de nomes de domínio (Domain Name
System)
Serviço de diretórios da Internet
Nomes são mais fáceis de lembrar
Descrito nas RFCs 1034, 1035 e outras
DNS consiste em
Banco de dados distribuído implementado em uma hierarquia de nomes
Protocolo da camada aplicação que permite que hospedeiros consultem o banco de dados
DNS
Usa o UDP e a porta 53
Dados armazenados em ASCII
Não é uma aplicação com a qual o usuário
interage diretamente
DNS
Serviços providos
Tradução de nomes de hospedeiros para endereços IP Apelidos de hospedeiros
Nome de hospedeiro é chamado nome canônico Apelidos de servidor de correio eletrônico
Pode-se obter o nome canônico a partir do apelido Distribuição de carga
Realizada entre servidores replicados
Conjunto de endereços IP associado a um único nome canônico
Respostas do DNS contêm o conjunto de endereços É feito um rodízio na ordem dos endereços
DNS - tradução de nome para end. IP
Banco de dados distribuído e hierárquico
Anteriormente os hospedeiros e seus endereços eram armazenados somente em um arquivo hosts.txt
Arranjo centralizado não seria escalável
Ponto de falhaVolume de tráfego
Atraso para clientes distantes do banco de dados Dificuldade de manutenção
DNS - tradução de nome para end. IP
Composto de
Servidores DNS locais
Três tipos (classes) de servidores de nomes Raiz
De domínio de alto nível (Top-Level Domain – TLD) Com autoridade
DNS - tradução de nome para end. IP
Servidores de nomes raiz
Treze servidores na Internet (2006) espalhados pelo mundo
Servidores de nomes TLD ou de nível superior
Responsáveis por domínios de alto nívelCom, org, net, edu, gov, br, uk, ca etc. (genéricos e de países - ISO 3166)
Servidores de nomes com autoridade
Responsáveis por domínios das organizações Domínios de segundo nível
DNS - tradução de nome para end. IP
DNS - tradução de nome para end. IP
Espaço de nomes do DNS é dividido em zonas
não superpostas
Zona inclui os hospedeiros administrados diretamente por um servidor
Zona contém uma parte da árvore e servidores de nomes que armazenam informações referentes à zona Zona contém um servidor principal (obtêm suas informação a partir do disco) e servidores secundários (obtêm suas informações a partir do servidor principal)
DNS - tradução de nome para end. IP
Exemplo de interação entre servidores DNS (fonte: Kurose)
O hospedeiro em cis.poly.edu quer o endereço IP para gaia.cs.umass.edu
Servidor de nomes local da Polytechnique é dns.poly.edu Servidor de nomes com
autoridade para
gaia.cs.umass.edu é dns.umass.edu (erro na figura)
Exemplo de interação entre servidores DNS (fonte: Kurose)
1) Consulta ao servidor de nomes local
2) Consulta ao servidor de nomes raiz
3) Resposta com servidores TLD responsáveis por edu
4) Consulta ao servidor de nomes TLD
5) Resposta com servidor de nomes com autoridade responsável por umass.edu 6) Consulta ao servidor de nomes com autoridade
DNS - tradução de nome para end. IP
Consultas podem ser
RecursivasTransfere a tarefa para o servidor consultado No exemplo, de cis.poly.edu para dns.poly.edu Iterativas
Servidor responde com o nome de outro servidor a ser contactado
DNS - tradução de nome para end. IP
Uso de cache
Melhora o desempenho em relação ao atraso
Diminui a quantidade de mensagens DNS enviadas
Qualquer servidor pode responder, mesmo que não tenha autoridade para o nome
Frequentemente são feitos caches de servidores TLD Para evitar os servidores raiz
DNS - registros de recursos
Banco de dados DNS é constituído de registros
de recursos
DNS mapeia nomes de domínios em registros
de recursos
Domínios possuem registros de recursos associados a eles
DNS - registros de recursos
Campos (Name, Value, Type, TTL)
Se TypeA → Name = nome do hospedeiro, Value = endereço IP (relay1.bar.foo.com, 145.37.93.126, A)
NS → Name = nome do domínio, Value = nome de um servidor de nomes com autoridade que responde a consultas relativas aos hospedeiros do domínio
(foo.com, dns.foo.com, NS)
CNAME → Name = apelido do hospedeiro, Value = nome canônico do hospedeiro
(foo.com, relay1.bar.foo.com, CNAME)
MX → Name = apelido do hospedeiro, Value = nome canônico do servidor de correio eletrônico
DNS - registros de recursos
Formato (Name, Value, Type, TTL) (cont.)
TTLTempo de vida útil do registro
Determina quando o registro deve ser removido de um
DNS - mensagens
Transferência de arquivos (FTP)
Protocolo de transferência de arquivos (File
Transfer Protocol)
Descrito na RFC 959
Usa o TCP, a porta 21 (conexão de controle) e a
porta 20 (conexão de dados)
Em uma mesma sessão, a cada transferência é
usada uma conexão diferente de dados
Mantém informações de estado
Associação com conta do usuário, controle sobre o diretório corrente do usuário
Limita o número de sessões que um servidor pode manter
Transferência de arquivos (FTP)
Transferência de arquivos (FTP)
Comandos enviados em ASCII (7 bits)
Exemplos de comandos
USER <username> PASS <password> LIST RETR <filename> STOR <filename>Correio eletrônico
Sistema de correio da Internet composto de
Agentes de usuárioServidores de correio ou agentes de transferência de mensagens
Protocolo simples de transferência de correio (Simple
Mail Transfer Protocol – SMTP)
Correio eletrônico
Agentes de usuário
Permitem que usuários leiam, respondam, encaminhem, salvem e editem mensagens
Ex.: Outlook, Eudora, Thunderbird, Mutt
Servidores de correio
Armazenam as mensagens
Se comunicam para realizar a transferência das mensagens
Correio eletrônico
SMTP
Transfere mensagens entre servidores de correio
Transfere mensagens do agente de usuário para um servidor de correio
Daemon do sistema (processo executado em segundo
plano)
Protocolos de acesso a correio
Transferem mensagens do servidor de correio para o agente de usuário
Correio eletrônico
Correio eletrônico - SMTP
Descrito na RFC 5321
Usa o TCP e a porta 25
Mensagens enviadas em ASCII (7 bits)
Uso de extensão ou de codificação para 8 bitsComunicação
entre
um
cliente
SMTP
(transmissor) e um servidor SMTP (receptor)
Comunicação entre os servidores pode ser
direta ou indireta
Correio eletrônico - SMTP
Correio eletrônico - SMTP
Utiliza comandos para fazer a comunicação
entre servidores
Exemplos de comandos
HELO MAIL FROM RCPT TO DATA QUIT VRFYExemplo de interação (telnet servidor.br 25)
S: 220 servidor.br C: HELO cliente.br
S: 250 Hello cliente.br, pleased to meet you C: MAIL FROM: <usuario@cliente.br>
S: 250 usuario@cliente.br... Sender ok C: RCPT TO: <usuario@servidor.br>
S: 250 usuario@servidor.br ... Recipient ok C: DATA
S: 354 Enter mail, end with "." on a line by itself C: From: usuario@cliente.br
C: To: usuario@servidor.br C: Subject: Teste
C:
C: Teste de envio de correio. C: .
S: 250 Message accepted for delivery C: QUIT
Correio eletrônico
Correio eletrônico formado por
EnvelopeEncapsula uma mensagem
Contém as informações necessárias para o transporte da mensagem
Como no correio comum Mensagem
Exemplo de interação (telnet servidor.br 25)
S: 220 servidor.br C: HELO cliente.br
S: 250 Hello cliente.br, pleased to meet you C: MAIL FROM: <usuario@cliente.br>
S: 250 usuario@cliente.br... Sender ok C: RCPT TO: <usuario@servidor.br>
S: 250 usuario@servidor.br ... Recipient ok C: DATA
S: 354 Enter mail, end with "." on a line by itself C: From: usuario@cliente.br
C: To: usuario@servidor.br C: Subject: Teste
C:
C: Teste de envio de correio. C: .
S: 250 Message accepted for delivery C: QUIT
Correio eletrônico
Correio eletrônico formado por
Mensagem Campos de cabeçalho Exemplos: From: To: Subject: Received: CorpoExemplo de mensagem
Received: from cliente.br by servidor.br; 16 Jul 06 10:30:01 GMT
Received: from maquina.cliente.br by cliente.br; 16 Jul 06 10:29:58 GMT
From: usuario@cliente.br To: usuario@servidor.br Subject: Teste
Correio eletrônico - MIME
Todos os objetos são colocados em uma única
mensagem
RFC 5321 não prevê o envio de imagens, áudio
e vídeo
Solução
→
Estender o cabeçalho
Extensões
multiuso
do
correio
da
Internet
(Multipurpose Internet Mail Extensions – MIME)
Definido nas RFCs 2045 e 2046
Exemplos de novas linhas de cabeçalhos
Content-Type:Correio eletrônico - MIME
From: alice@crepes.fr To: bob@hamburger.edu
Subject: Picture of yummy crepe. MIME-Version: 1.0
Content-Transfer-Encoding: base64 Content-Type: image/jpeg
base64 encoded data ... ... ...base64 encoded data
Correio eletrônico
Comunicação entre o agente do usuário e o
servidor de correio
Envio de mensagem: uso do SMTP
Leitura de mensagem: uso de protocolo de acesso ao correio
Protocolos de acesso a correio mais comuns
POP3IMAP HTTP
Correio eletrônico
Correio eletrônico - POP3
Protocolo de correio (Post Office Protocol –
POP) versão 3
Definido na RFC 1939
Usa o TCP e a porta 110
Modos
Ler e apagar do servidor
Divide as mensagens entre as máquinas usadas para acessar o correio
Correio eletrônico - POP3
Exemplos de comandos
User <username>Pass <password> List
Retr <message number> Dele <message number> Quit
Não provê um meio para o usuário criar pastas
remotas e designar mensagens a elas
Correio eletrônico - IMAP
Protocolo de acesso a correio de Internet
(Internet Mail Access Protocol – IMAP)
Definido na RFC 2060
Usa o TCP e a porta 143
Provê comandos que permitem que usuários
Criem pastasTransfiram mensagens de uma para outra
Agente do usuário pode obter componentes de
mensagens
Correio eletrônico
Web
Teia de alcance mundial (World Wide Web –
WWW)
Web composta de
Agentes de usuário para a Web (browsers) Servidores Web
Protocolo de transferência de hipertexto (HyperText
Web
Web - HTTP
Descrito nas RFCs 1945 e 2616
Usa o TCP e a porta 80
Provê comandos que permitem que usuários
Requisitem páginas WebEnviem páginas Web
Enviem dados a um servidor
Web - HTTP
Usa dois tipos de conexões (configuráveis no
browser)
Não persistentes
Único objeto enviado por uma conexão TCP
Maior alocação de recursos (buffers, variáveis etc.) Persistentes
Mais atual
Vários objetos podem ser enviados por uma conexão TCP
Pode-se usar conexões em série ou paralelas
Configurável no browserWeb - HTTP - mensagens
Dois tipos de mensagens
RequisiçãoResposta
Usam ASCII
Web - HTTP - mensagens de requisição
Exemplos de comandos (métodos)
GETMais utilizado POST
Corpo da entidade contém dados digitados em um formulário
HEAD
Não manda o objeto requisitado Usado para depuração
PUT
Para enviar objetos ao servidor DELETE
Web - HTTP - mensagens de requisição
GET /somedir/page.html HTTP/1.1 Host: www.someschool.edu Connection: close User-agent: Mozilla/4.0 Accept-language:frWeb - HTTP - mensagens de requisição
Web - HTTP - mensagens de resposta
Corpo da entidade contém a página
Servidor também envia um código de estado
Exemplos de códigos
200 OK 301 Moved Permanently 304 Not Modified 400 Bad Request 404 Not FoundWeb - HTTP - mensagens de resposta
HTTP/1.1 200 OK Connection: close
Date: Thu, 03 Jul 2003 12:00:15 GMT Server: Apache/1.3.0 (Unix)
Last-Modified: Sun, 5 May 2003 09:23:24 GMT Content-Length: 6821
Content-Type: text/html
data data data data data ...
Web - cookies
Usados na interação usuário-servidor
Servidor HTTP não tem estado
Importante conhecer algumas características do usuário
Para restringir acesso de usuário
Para apresentar conteúdo em função da identidade do usuário
Outros
Definidos na RFC 2965
Web - cookies
Cookie composto de
Linha de cabeçalho de cookie na mensagem de resposta HTTP
Linha de cabeçalho de cookie na mensagem de requisição HTTP
Arquivo de cookies mantido no sistema final do usuário e gerenciado pelo browser
Web - cookies
Cliente Servidor usual HTTP request msg usual HTTP response + Set-cookie: 1678 usual HTTP request msg cookie: 1678 usual HTTP response msg usual HTTP request msg cookie: 1678 usual HTTP response msg especificação do cookie especificação do cookie servidor cria o ID 1678 para o usuário Cookie file amazon: 1678 ebay: 8734 Cookie file ebay: 8734 Cookie file amazon: 1678 ebay: 8734Uma semana depois:
Web - cookies
Podem ser considerados violação de privacidade
Por exemplo, pode-se montar um perfil do comportamento de um usuárioWeb - cache
Cache Web ou servidor proxy
Atende requisições HTTP em nome de um
servidor Web de origem
Usado principalmente por duas razões
Diminuir o tempo de resposta a uma requisição Web Reduzir o tráfego na Internet
Cache pode estar em
ISPs
Universidades Laboratórios Local
Web - cache
Web - cache
Objeto armazenado inclui a data da última
modificação
Funcionamento
Cliente envia o pedido de um objeto para o cache Se o cache possui o objeto, envia o objeto ao cliente Se não, solicita o objeto do servidor original, armazena o objeto e o envia ao cliente
Web - cache
Cache
pode
saber
se
os
objetos
estão
atualizados usando um “GET condicional”
GET + cabeçalho If-Modified-Since:
Se não foi modificado o servidor responde com corpo de mensagem vazio
Áudio digital - áudio de fluxo
Streaming audio
Áudio digital - áudio de fluxo
Modo simples de áudio de fluxo (fonte: Tanenbaum)
Problema: arquivo tem de ser baixado antes de iniciar a reprodução do áudio
Áudio digital - áudio de fluxo
Arquivo vinculado ao áudio (metarquivo) não é o
áudio real
Metarquivo simplesmente identifica o áudio
Reprodutor de mídia lê o metarquivo e solicita o
arquivo do servidor
Reprodutor de mídia
Administra a interface com o usuário Lida com erros de transmissão
Descompacta a música Elimina a flutuação
Áudio digital - áudio de fluxo
Áudio digital - áudio de fluxo - erros
Normalmente não se usa o TCP
Comum usar RTP e UDP
Erros tratados pela aplicação
Áudio digital - áudio de fluxo - erros
Uso de buffer pelo reprodutor de mídia (fonte: Tanenbaum)
Áudio digital - áudio de fluxo - flutuação
Começa armazenando alguns segundos de áudio antes de iniciar a reprodução
Buffer deve ser mantido com dados
Usa-se marcas de níveis baixo e alto e um controle de fluxo