Redes de Computadores I Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo - Sumário • Correio eletrônico – SMTP – POP – IMAP • Exercícios Redes de Computadores I – Prof. Mateus Raeder Correio Eletrônico Redes de Computadores I – Prof. Mateus Raeder Correio Eletrônico • Uma das aplicações mais conhecidas na Internet • Assíncrono (como o correio normal) – Mensagens são enviadas e recebidas conforme conveniência • Vantagens sobre correio normal – – – – Rápido Fácil de distribuir Barato Incluem desde simples textos até músicas e vídeos Redes de Computadores I – Prof. Mateus Raeder Correio Eletrônico • Três grandes componentes: user agent – Agentes de usuário: • Mail User Agent - MUA. user agent SMTP mail server SMTP – Protocolo de correio: • Simple Mail Transfer Protocol - SMTP user mailbox mail server – Agente de transporte: • Servidores de correio Mail Transport Agent MTA. outgoing message queue user agent SMTP user agent mail server user agent user agent Redes de Computadores I – Prof. Mateus Raeder Correio Eletrônico • MUA - Agente de Usuário – Conhecido como “leitor de email”. – É o lado “cliente”. – Compor, editar, ler mensagens de correio – Exemplo: Eudora, Outlook, elm, Pegasus, Netscape Messenger, etc... – Mensagens de saída e chegada são armazenadas no servidor. user agent outgoing message queue user mailbox mail server user agent SMTP mail server SMTP user agent SMTP user agent mail server user agent user agent Redes de Computadores I – Prof. Mateus Raeder Correio Eletrônico • Servidores de correio user – Caixa de correio contém agent mensagens de chegada (ainda não lidas) p/ usuário. mail server – Fila de mensagens contém mensagens de saída (a serem SMTP enviadas). – Protocolo SMTP entre servidores SMTP para transferir mensagens. – Cliente: servidor de correio que SMTP envia mail – “Servidor”: servidor de correio server que recebe. outgoing message queue user mailbox user agent mail server user agent user agent user agent user agent Redes de Computadores I – Prof. Mateus Raeder Correio Eletrônico: SMTP [RFC 821] • Usa TCP para a transferência confiável de mensagens de correio do cliente ao servidor. Usa porta 25/TCP • Transferência direta: servidor remetente ao servidor receptor SMTP mail server mail server Internet Redes de Computadores I – Prof. Mateus Raeder SMTP • Não utiliza servidores intermediários, mesmo se forem servidores em lados opostos do mundo – Se o servidor destinatário está for a do ar, a mensagem fica no servidor de origem aguardando uma nova tentativa • Três fases da transferência: – Handshaking (cumprimento). – Transferência das mensagens – Encerramento • Interação comando/resposta – Comandos: texto ASCII – Resposta: código e frase de status • Mensagens precisam ser em ASCII de 7-bits Redes de Computadores I – Prof. Mateus Raeder Interação SMTP típica • • • • • • • • • • • • • • • S: 220 gremio.net C: HELO torcedor.br S: 250 Hello torcedor.br, pleased to meet you C: MAIL FROM: <[email protected]> S: 250 [email protected]... Sender ok C: RCPT TO: <[email protected]> S: 250 [email protected] ... Recipient ok C: DATA S: 354 Enter mail, end with "." on a line by itself C: E aí técnico!! C: Tava na hora de ganhar fora de casa, hein!! C: . S: 250 Message accepted for delivery C: QUIT S: 221 gremio.net closing connection Redes de Computadores I – Prof. Mateus Raeder Interação SMTP típica • telnet nomedoservidor.algumlugar.br 25 • Observe a resposta 220 do servidor • Entre comandos HELO, MAIL FROM, RCPT TO, DATA, QUIT, HELP. • Estes comandos permitem que você envie mensagens sem usar um cliente (leitor de correio). Basta conhecer o formato das mensagens do protocolo. Redes de Computadores I – Prof. Mateus Raeder Formato de uma mensagem de e-mail • SMTP: protocolo para trocar mensagens de correio • RFC 822: padrão para formato de mensagem de texto: • Linhas de cabeçalho, p.ex., – To: – From: – Subject: • diferentes dos comandos de smtp! • Corpo header blank line body – a “mensagem”, somente de caracteres ASCII . – Termina com um “.” ponto Redes de Computadores I – Prof. Mateus Raeder From: [email protected] To: [email protected] Subject: Vamos tratar de negocios Blá blá blá Blá blá blá Blá blá blá . Redes de Computadores I – Prof. Mateus Raeder E-mail • O que vimos até aqui é suficiente para o envio de textos no padrão ASCII – Mas e o que não está no padrão ASCII? • Vídeos • Imagens • Sons • Caracteres de outros idiomas que não o inglês • Utilização de cabeçalhos extras nas mensagens Redes de Computadores I – Prof. Mateus Raeder Formato de uma mensagem: extensões para multimídia • MIME: multimedia mail extension, RFC 2045, 2056 • Linhas adicionais no cabeçalho da mensagem declaram tipo do conteúdo MIME. • Exemplo: – Usuário “alguém” quer enviar uma imagem jpeg para a “tia” via e-mail – “Alguém” vai até seu user agent de e-mail e especifica o e-mail da “tia”, coloca o assunto e anexa a imagem – Quando “alguém” termina de compor a mensagem, clica no botão send Redes de Computadores I – Prof. Mateus Raeder Formato de uma mensagem: extensões para multimídia • O user agent gera uma mensagem MIME Versão MIME Método usado para codificar os dados tipo, subtipo de dados multimídia Dados codificados para ASCII 7 bits From: [email protected] To: [email protected] Subject: Vamos tratar de negocios MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Type: image/jpeg base64 encoded data ..... ......................... ......base64 encoded data Redes de Computadores I – Prof. Mateus Raeder Formato de uma mensagem: extensões para multimídia • Quando “tia” ler sua correspondência através do seu user agent: – Percebe a codificação – Verifica que deve descomprimir no formato JPEG • Como enviar mais de um objeto na mesma mensagem? – Usando o tipo Multipart Redes de Computadores I – Prof. Mateus Raeder Multiparte From: [email protected] To: [email protected] Subject: Vamos tratar de negocios MIME-Version: 1.0 Content-Type: multipart/mixed; Boudary=StartOfNextPart --StartOfNextPart Carmem, olhe esta foto e me diga o que acha! --StartOfNextPart Content-Transfer-Encoding: base64 Content-Type: image/jpeg base64 encoded data ..... ......................... ......base64 encoded data --StartOfNextPart Me avise quando receber . Redes de Computadores I – Prof. Mateus Raeder Multiparte Received: from sozinho.br by carmem.br; 02 Sep 09 22:47:43 GMT From: [email protected] To: [email protected] Subject: Vamos tratar de negocios MIME-Version: 1.0 Content-Type: multipart/mixed; Boudary=StartOfNextPart --StartOfNextPart Carmem, olhe esta foto e me diga o que acha! --StartOfNextPart Content-Transfer-Encoding: base64 Content-Type: image/jpeg base64 encoded data ..... ......................... ......base64 encoded data --StartOfNextPart Me avise quando receber . Redes de Computadores I – Prof. Mateus Raeder Tipos MIME Content-Type: tipo/subtipo; parâmetros • Text – sub-tipos exemplos: plain, html – charset=“iso-8859-1”, ascii • Image – sub-tipos exemplos : jpeg, gif • Video – sub-tipos exemplos : mpeg, quicktime • Audio – Sub-tipos exemplos : basic (8-bit codificado mu-law), 32kadpcm (codificação 32 kbps). • Application – Outros dados que precisam ser processados por um leitor para serem “visualizados”. – subtipos exemplos : msword, octet-stream Redes de Computadores I – Prof. Mateus Raeder SMTP x HTTP • Transferem arquivos de um host para outro – HTTP: do servidor para o agente de usuário – SMTP: de um servidor de correio para outro • Ambos utilizam conexões persistentes • Diferenças importantes – HTTP: recupera informações (TCP ativado por quem quer receber arquivo) – SMTP: envia informações (TCP ativado por quem quer enviar arquivo) – HTTP: sabe-se onde acaba a mensagem (não persistente envia uma mensagem por vez, persistente diz tamanho) – SMTP: Final da mensagem é através de um ponto em uma linha separada (CRLF.CRLF) – HTTP: um objeto por mensagem – SMTP: todos os objetos em uma única mensagem Redes de Computadores I – Prof. Mateus Raeder Protocolos de acesso ao correio • SMTP: entrega/armazenamento no servidor do receptor. • Protocolo de acesso ao correio: recupera do servidor. – POP: Post Office Protocol [RFC 1939] (porta 110) • Autorização (agente <-->servidor) e transferência – IMAP: Internet Mail Access Protocol [RFC 1730] (porta 143) • Mais comandos e mais opções (mais complexo). • Manuseio de mensagens armazenadas no servidor Através de HTTP: Hotmail , Yahoo! Mail, Webmail, etc. (não é exatamente um “protocolo” de e-mail e sim um mecanismo) SMTP SMTP user agent sender’s mail server access protocol user agent receiver’s mail server Redes de Computadores I – Prof. Mateus Raeder Protocolo POP Fase de autorização • comandos do cliente: S: +OK POP3 server ready C: user ana S: +OK C: pass faminta S: +OK user successfully logged on – user: declara nome – pass: senha • servidor responde – +OK – -ERR Fase de transação, cliente: • list: lista números das msgs • retr: recupera msg por número • dele: apaga msg • quit C: list S: 1 498 S: 2 912 S: . C: retr 1 S: <message 1 contents> S: . C: dele 1 C: retr 2 S: <message 1 contents> S: . C: dele 2 C: quit S: +OK POP3 server signing off Redes de Computadores I – Prof. Mateus Raeder Protocolo IMAP • Fornece mais recursos que o POP: – Associa cada mensagem a uma pasta (por default a pasta INBOX) – Provê comandos que permitem que os usuários criem pastas e transfiram pastas de uma para outra. • manter hierarquia de pastas para cada usuário – Permite a recuperar apenas o cabeçalho ou então uma das partes de uma mensagem MIME multiparte. – Muito bom para usuários “nômades”, que precisam manter uma hierarquia de pastas em um servidor remoto que possa ser acessado de qualquer computador. Redes de Computadores I – Prof. Mateus Raeder Exercícios 1) O professor gostaria de enviar um arquivo para seu aluno. Entretanto, ele não sabe como fazer, pois sua mensagem só aceita texto. Como incluir a imagem do remédio na mensagem abaixo? From: [email protected] To: [email protected] Subject: Foto do remédio Me disseram que você está gripado!! o.O Segue a foto do remédio. . Redes de Computadores I – Prof. Mateus Raeder Exercícios - Resposta Redes de Computadores I – Prof. Mateus Raeder Exercícios • Por que utilizarmos dois protocolos para enviar e receber mensagens de e-mail? • Podemos comparar o SMTP com aplicações P2P? Pesquise o que é P2P e responda, justificando. Redes de Computadores I – Prof. Mateus Raeder