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

Aula28

  • 1.
    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
  • 2.
    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
  • 3.
    Formato da caixade 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
  • 4.
    Arquitetura do Sistemade 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
  • 5.
    Simple Mail TransferProtocol (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
  • 6.
    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
  • 7.
    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
  • 8.
    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
  • 9.
    Códigos de statuse 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