Você está na página 1de 9

Mensagens DNS

Query

Redes de Computadores ! DNS usa porta 53 (UDP/TCP)


Instituto de Informática - UFRGS

! Duas mensagens: requisição e resposta com


um cabeçalho de formato comum
! Seção pergunta Response
DNS (término da aula passada)
! Informações sobre a consulta (nome/tipo)
! Seção resposta

Instituto de Informática - UFRGS


! RR que satisfazem a consulta
! Seção autoridade
! Registros de outros servidores com
autoridade

A. Carissimi -7-déc.-09
! Seção adicional
! RR úteis

Aula 27
Redes de Computadores 2

Respostas DNS Leituras complementares

! Authoritative ! Tanenbaum, A. Redes de Computadores (4a edição), Campus,


! Gerada por um servidor que possui autoridade para o domínio do nome a ser 2000.
resolvido ! Capítulo 6, seção 6.1
! Resposta representa o que está nos arquivos de configuração de zona ! Capítulo 7, seção 7.1
! Non-authoritative ! Carissimi, A.; Rochol, J.; Granville, L.Z.; Redes de Computadores.
! Gerada por servidores que não possuem autoridade no domínio do nome a Série Livros Didáticos. Bookman 2009.
Instituto de Informática - UFRGS

Instituto de Informática - UFRGS

ser resolvido ! Capítulo 7, seção 7.1


! Resposta não é confiável pois as informações podem ter sido modificadas
nos arquivos de configuração de zona, mas ainda não foram propagadas
! Respostas de cache são sempre non-authoritative
A. Carissimi -7-déc.-09

A. Carissimi -7-déc.-09

! Indicam os servidores com autoridade no respectivo domínio

Redes de Computadores 3 Redes de Computadores 4


Correio eletrônico

Redes de Computadores ! Uma das aplicações mais populares da Internet


Instituto de Informática - UFRGS

! Originalmente criada em analogia a sistemas de memorando


! Disponibilizado aos usuários através de:
Correio eletrônico (SMTP, POP e IMAP) ! Um software cliente para compor e ler mensagens
HyperText Transfer Protocol (HTTP) ! Um software servidor usado para transferir mensagens

Instituto de Informática - UFRGS


A. Carissimi -7-déc.-09
Aula 28
Redes de Computadores 6

Componentes do sistema de correio eletrônico Caixa postal (mailbox)

! Caixa postal e correio eletrônico ! Caixa postal de entrega da mensagem eletrônica


! Mail user Agents (MUA) ! Uma por usuário
! Software responsável pela interação entre o usuário e o sistema de e-mail ! Área de armazenamento em disco
! Permite ler e compor uma mensagem ! Permissão para escrita para o software de correio eletrônico
! Exemplos: Netscape, outlook, eudora, mozilla, elm, Mail, mail, pine etc... ! Permissão de leitura/escrita apenas para o usuário
! Mail Transport Agents (MTA) ! Endereço eletrônico:
Instituto de Informática - UFRGS

Instituto de Informática - UFRGS

! Software que transfere o e-mail de um sistema local para um sistema remoto.


! Formato geral: mailbox@computador
! Exemplos (unix): sendmail, postfix , smail v 3.2, qmail, exim etc
! Local Delivery Agent (LDA)
! Separação funcional do MTA especializado em transferir e-mails para a Caixa de correio •Localização da caixa de correio
A. Carissimi -7-déc.-09

A. Carissimi -7-déc.-09

mailbox do usuário (usuário) •Empregado o domínio (computador registro MX)


! Em sistemas Unix, o LDA mais comum é o procmail

Redes de Computadores 7 Redes de Computadores 8


Formato da caixa de mensagens (mailbox) Mensagem de correio eletrônico

! Formato da mailbox serve para delimitar e-mails: ! Mensagem possui envelope, cabeçalho e corpo
Cabeçalho
! MMDF, BABYL, MH, qmail, maildir, .mbx, etc... ! Formato simples
[palavra-chave: informação] ! Texto ASCII separado em duas partes por
! Uma mailbox é um arquivo (ou diretório)
.... uma linha em branco (CR/LF)
! Em UNIX, normalmente são armazenados nos diretórios /usr/spool/mail e
! Informações:
/var/mail [palavra-chave: informação]
! Remetente, receptor, data, formato do
! Novos e-mails: conteúdo, etc.
Instituto de Informática - UFRGS

Instituto de Informática - UFRGS


Linha em branco (CR/LF)
! São inseridos no final do arquivo de mailbox ! Ex.: To, cc, Bcc, From, Sender, Received,
! Formam um novo arquivo (maildir) Return-path, Reply-to, Subject,...
Corpo
! Corpo:
! Ler e-mail → ler o arquivo de mailbox
! Conteúdo da mensagem
A. Carissimi -7-déc.-09

A. Carissimi -7-déc.-09
! Software de e-mail interpreta palavra-chave
! Se não reconhece, passa para próxima

Redes de Computadores 9 Redes de Computadores 10

Padrão MIME Especificação MIME

! Projeto original previa somente texto em ASCII ! Adiciona 5 novos cabeçalhos


! Necessidade de enviar dados binários (binário, imagem, aúdio etc) ! MIME-Version: informa destino o uso do
formato MIME e sua versão
! Codificação de dados binários em ASCII
! Content-Description: string que informa o
! Remetente codifica e o receptor faz a decodificação conteúdo da mensagem MIME MIME
! Multipurpose Internet Mail Extensions (MIME) ! Content-Id: identificador da mensagem ASC-II ASC-II
! Forma para coordenar e unificar a codificação e decodificação de dados ! Content-Transfer-Encoding: código do ASC-II
SMTP SMTP
Instituto de Informática - UFRGS

Instituto de Informática - UFRGS

! Inclusão de palavras-chaves adicionais no cabeçalho corpo da mensagem


! Indica que MIME está sendo usado ! ASCII (7 bits), ASCII 8-bits, base64,
! Definição da codificação a ser usado quoted-printable MIME-version: 1.1
! Content-Type: natureza do corpo da Content-type: type/subtype; boundary=xxxx
! Divisão do corpo da mensagem em partes e definição de como eles
A. Carissimi -7-déc.-09

A. Carissimi -7-déc.-09

mensagem Content-transfer-encoding: image/jpeg


devem ser codificados e decodificados independentemente
! texto,imagem, audio, vídeo, multipart, Content-Id: 67824
etc... Content-description: jpeg image

Redes de Computadores 11 Redes de Computadores 12


Arquitetura do Sistema de Correio Eletrônico Envio de mensagem

MUA: Mail User Agent (mailer) ! Agente do usuário remetente envia a mensagem para o servidor do
MTA: Mail Transport Agent
remetente
LDA: Local Delivery Agent
Notifier: ! Servidor do remetente armazena a mensagem na fila
Mailbox:
! Servidor do remetente envia a mensagem para o servidor do
Notifier MUA
(receiver) destinatário
Instituto de Informática - UFRGS

Instituto de Informática - UFRGS


Mailbox ! Consulta o DNS, solicitando os registros MX associados ao domínio do
Bob usuário destinatário
Protocolo ! Em caso de falha, servidor do remetente mantém a mensagem na fila e tenta
MUA (SMTP) Originalmente, conexão via
(sender) LDA reenviar
sessão remota com o servidor
A. Carissimi -7-déc.-09

A. Carissimi -7-déc.-09
de e-mail ! Servidor do destinatário armazena a mensagem na respectiva caixa
MTA MTA de mensagens
(sender) (receiver)

Redes de Computadores 13 Redes de Computadores 14

Leitura de mensagens Protocolos do Sistema de Correio Eletrônico

! Agente do usuário recupera mensagens da caixa de mensagens do ! Os diferentes componentes (MUA, MTA, LDA) interagem entre si
servidor de correio do usuário através de protocolos
! Acesso Direto ! Protocolos do sistema de Correio Eletrônico
! Agente usuário executa na mesma estação em que reside o arquivo que ! SMTP
contém a caixa de mensagens do usuário ! POP
! Acesso via Protocolo de Acesso ! IMAP
Instituto de Informática - UFRGS

Instituto de Informática - UFRGS

! Agente usuário pode executar em estação diferente daquela em que reside o


arquivo que contém a caixa de mensagens do usuário
! Adota os protocolos específicos para “baixar as mensagens”
A. Carissimi -7-déc.-09

A. Carissimi -7-déc.-09

Redes de Computadores 15 Redes de Computadores 16


Simple Mail Transfer Protocol (SMTP) Problemas do SMTP

! Protocolo de aplicação baseando na troca de strings ASCII ! Mensagem enviada em texto claro
! Mensagens passam em texto aberto ! Não possui mecanismo de autenticação forte
! Usado para transferir e-mail entre MUA e MTA ou entre dois MTAs. ! Qualquer usuário acesso servidor de e-mail
! Serviço disponível através de uma conexão TCP na porta 25 ! Possibilidade de forjar endereços de origem
! Existe um daemon que atende na porta 25/TCP e que “fala”” SMTP ! Soluções possíveis são externas ao SMTP. Alguns exemplos:
Instituto de Informática - UFRGS

Instituto de Informática - UFRGS


! Aceitar mensagens de máquinas de uma mesma rede
! Verificar a existência de mensagem
smtp smtp ! Consultas a DNS reverso
(porta 25) SMTP (porta 25)
SMTP ! Cifragem de dados
A. Carissimi -7-déc.-09

A. Carissimi -7-déc.-09
Servidor e-mail local Servidor e-mail remoto

Redes de Computadores 17 Redes de Computadores 18

Simple Mail Transfer Protocol (SMTP) Exemplo de interação SMTP

! Conjunto de comandos e respostas


S: 220 mail.acme.com
! Composto por mensagens de texto e códigos de comandos e respostas
C: HELO mail.inf.ufrgs.br
! Comandos do protocolo S: 250 mail.acme.com Hello mail.inf.ufrgs.br, pleased to meet you

! HELO – identifica o cliente ao servidor C: MAIL From: <professor@inf.ufrgs.br>


S: 250 <professor@inf.ufrgs.br>... Sender ok
! MAIL – indica o remetente da mensagem C: RCPT To: <bipbip@acme.com>
! RCPT – informa o destinatário da mensagem
Instituto de Informática - UFRGS

Instituto de Informática - UFRGS

S: 250 <bipbip@acme.com>... Recipient ok


! DATA – envio o conteúdo da mensagem C: DATA
S: 354 Enter mail, end with “.” on a line by itself
! QUIT – finaliza a sessão
C: Teste
! TURN – inverte a direção de envio C: .
A. Carissimi -7-déc.-09

A. Carissimi -7-déc.-09

S: 250 Message accepted for delivery


! RSET – aborta a transição de correio
C: QUIT
! VRFY – verifica a validade de um usuário S: 221 mail.acme.com closing connection
! EXPN – identifica a composição de uma lista

Redes de Computadores 19 Redes de Computadores 20


Post Office Protocol (POP) Internet Message Access Protocol (IMAP)

! Protocolo utilizado para acessar e-mails de um ! Protocolo utilizado para acessar e-mails de
servidor um servidor
! Porta 110/TCP (POP3) ! Porta 143/TCP (IMAP4)
! Orientado a texto ! Orientado a texto
! Três etapas distintas ! Principal vantagem:
! Acesso/autenticação POP ! Comandos para criação e gerenciamento de IMAP
Instituto de Informática - UFRGS

Instituto de Informática - UFRGS


pastas no servidor
! Leitura/modificação (transação)
! Atualização
POP (porta 110) IMAP (porta 143)
! Dois modos de operação:
! ler-e-apagar e ler-e-guardar
A. Carissimi -7-déc.-09

A. Carissimi -7-déc.-09
Servidor e-mail Servidor e-mail
! Desvantagem:
! Não há comandos para criar e gerenciar pastas

Redes de Computadores 21 Redes de Computadores 22

Webmail Hyper Text Transfer Protocol (HTTP)

! Software que permite que usuários acessem servidores de e-mail ! Protocolo de aplicação da web
através do http ! Define forma como clientes solicitam páginas web aos servidores e
! http é usado apenas para transferir dados como esses as transferem para os clientes
! Servidor de webmail “conversa” com servidores de e-mail usando protocolos ! Determina apenas como os dados são transferidos: não indica, nem impõem
como POP3 e IMAP4 (mais comum) tipos de dados e determina nenhum tipo de processamento
! Browser é que determina como os dados são processados
Instituto de Informática - UFRGS

Instituto de Informática - UFRGS

Daemon ! Emprega conexões TCP na porta 80 (default)


http MTA
! Protocolo stateless (sem estado) e orientado a mensagens
OU ! Servidor não mantém nenhuma informação sobre o cliente
A. Carissimi -7-déc.-09

A. Carissimi -7-déc.-09

Browser web Servidor web


! Possuem três versões: HTTP 0.9, HTTP 1.0 e HTTP 1.1
POP/IMAP
Servidor e-mail
Redes de Computadores 23 Redes de Computadores 24
Conexões não-persistentes Conexões persistentes

! Usada nas versões 0.9, 1.0 e 1.1 ! Disponível na versão HTTP/1.1


! Uma conexão para cada objeto ! Uma conexão pode atender várias requisições/respostas
! Cada conexão transporta exatamente uma requisição/resposta ! A conexão é fechada pelo servidor em resposta a uma requisição de
! Cliente abre a conexão, envia a requisição, o servidor envia a resposta e encerramento feita pelo cliente ou por time-out
fecha a conexão (ex: uma página com 5 figuras envolve seis conexões,
uma para página e uma para cada figura) ! Configurado no servidor
! Conexões podem ser feitas em paralelo para páginas com mais de um objeto ! Duas versões:
Instituto de Informática - UFRGS

Instituto de Informática - UFRGS


! Número máximo de conexões é uma configuração do cliente ! Sem paralelismo: cliente envia requisição i após ter recebido respostas da
! Desvantagens: requisição i-1
! Tempo para estabelecimento ! Com paralelismo: envio de várias requisições sem esperar pela resposta
A. Carissimi -7-déc.-09

A. Carissimi -7-déc.-09
! Consumo de recursos do sistema (memória e descritores)
! Cada conexão sofre o processo de partida lenta (slow start) do TCP

Redes de Computadores 25 Redes de Computadores 26

Métodos HTTP Formatos da mensagem HTTP

! HTTP foi criado para ser genérico ! Dois formatos básicos:


! Tratamento de objetos e definições de métodos para manipulá-los ! Requisição e resposta
! Métodos suportados na versão 1.1 (visão do cliente) ! Mensagem em ASC II (exceto o corpo da mensagem em alguns casos)
! GET: usado para solicitar a recuperação de um objeto ! Genericamente possuem três seções:
! POST: similar ao GET, mas envia informações obtidas por formulários ! Linha de requisição/status
! PUT: solicita gravação de um objeto no servidor ! Linhas de cabeçalho
Instituto de Informática - UFRGS

Instituto de Informática - UFRGS

! PATCH: envia lista de modificações a serem feitas em um objeto ! Corpo de entidade


! HEAD: solicita leitura apenas do cabeçalho da página
! MOVE, COPY, DELETE, LINK e UNLIK: similares aos comandos de
A. Carissimi -7-déc.-09

A. Carissimi -7-déc.-09

movimentação, cópia, remoção, criação e remoção de aliases em um sistema


de arquivos
! OPTION: consulta propriedades do servidor ou de um objeto

Redes de Computadores 27 Redes de Computadores 28


Mensagem de requisição Cabeçalhos da requisição

! Linha de requisição possui três campos: ! Pares nome e valor


! Tipo da requisição (métodos) ! Indicam ao servidor como realizar a requisição
! GET, HEAD, POST, PUT, PATCH, COPY, MOVE, DELETE, LINK,
! Exemplos:
UPLINK, OPTION
! Host: nome do servidor onde o objeto se encontra
! Uniform Resource Locator (URL): [protocolo] :// [máquina] : [porta] / [recurso]
! Connection: se servidor deve encerrar ou não a conexão após enviar objeto
! Versão HTTP
Instituto de Informática - UFRGS

Instituto de Informática - UFRGS


! User-agent: tipo do cliente que está fazendo a requisição
! Linha(s) de cabeçalho ! Accept-language: idioma de preferência do usuário
! Conjunto de pares {nome de campo; valor}
! Corpo da entidade
A. Carissimi -7-déc.-09

A. Carissimi -7-déc.-09
! Para métodos como POST que envia parâmetros para um formulário

Redes de Computadores 29 Redes de Computadores 30

Mensagem de requisição: formato e exemplo Mensagem de resposta

Requisição
! Linha de status define:
Cabeçalhos ! Versão HTTP
[nome; valor] GET /somedir/page.html HTTP/1.1 ! Código de status
Host: www.someschool.edu ! Frase explicativa do código de status
....
Connection: close
User-agent: Mozilla/4.0
! Linhas de cabeçalho
[nome; valor]
! Conjunto de pares {nome, valor}
Instituto de Informática - UFRGS

Instituto de Informática - UFRGS

Accept-language: fr
Linha em branco (CR/LF)
! Corpo da entidade
! Objeto solicitado
Corpo
(presente apenas em
A. Carissimi -7-déc.-09

A. Carissimi -7-déc.-09

algumas mensagens)
- Método GET não possui corpo
Mensagem de requisição - Método POST envia aqui as informações

Redes de Computadores 31 Redes de Computadores 32


Códigos de status e cabeçalho de resposta
Mensagens de resposta: formato e exemplo
! Códigos mais comuns ! Cabeçalhos mais comuns
Status
! 200: requisição processada com ! Connection: informa ao cliente se o
Cabeçalhos
sucesso servidor encerrará ou não a conexão
! 301: objeto solicitado foi movido ! Date: hora e data do envio do objeto [nome; valor] HTTP/1.1 200 OK
! 400: erro genérico no ! Last-modified: data e hora de ... Connection: close
processamento criação ou modificação do objeto Date: Thu, 06 Aug 1998 12:00:15 GMT
[Nome; valor] Server: Apache/1.3.0 (Unix)
! 404: objeto solicitado não existe ! Server: tipo do servidor:
Instituto de Informática - UFRGS

Instituto de Informática - UFRGS


Last-Modified: Mon,22 jun 199809:23:24 GMT
! 505: versão requisitada não é ! Content-lenght: tamanho da Linha em branco (CR/LF) Content-Length: 6821
suportada mensagem em bytes Content-Type: text/html
! Content-type: tipo do objeto que Corpo
está sendo enviado (presente apenas em
A. Carissimi -7-déc.-09

A. Carissimi -7-déc.-09
algumas mensagens) (data data data .... Data data data data)

Mensagem de resposta

Redes de Computadores 33 Redes de Computadores 34

Hyper Text Transfer Protocol over SSL (HTTPS) Leituras complementares

! Protocolo de aplicação da web que utiliza criptografia ! Tanenbaum, A. Redes de Computadores (4a edição), Campus,
! Garante privacidade (criptografia) 2000.
! Capítulo 7, seção 7.2 (correio eletrônico) eseção 7.3.4
! Garante a identidade das partes envolvidas em uma transferência
! Porta 443/TCP ! Carissimi, A.; Rochol, J; Granville, L.Z; Redes de Computadores.
Série Livros Didáticos. Bookman 2009.
! Capítulo 7, seções 7.2 a 7.4
Instituto de Informática - UFRGS

Instituto de Informática - UFRGS

https://nome_máquina/recurso
A. Carissimi -7-déc.-09

A. Carissimi -7-déc.-09

Redes de Computadores 35 Redes de Computadores 36