Infra-Estrutura de Comunicação
(IF678)
Aula Prática 01
Telnet, SMTP, HTTP e Socket
Flávio Almeida ([email protected])
http://www.cin.ufpe.br/~faas/comunicacao
Professor: Paulo Gonçalves ([email protected])
CIn/UFPE
Nosso objetivo:
 Visão geral sobre protocolos da camada de
aplicação
 Consulta a RFC’s
 Entender o Telnet
 Utilizar o Telnet para enviar e-mail (SMTP)
 Utilizar o Telnet para efetuar requisições HTTP
 Compreender a comunicação entre processos –
Socket
2
Agenda
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Sobre protocolos
Camadas da Internet
Telnet: Protocolo x Aplicativo
Telnet x SSH
Correio Eletrônico
O Protocolo SMTP
Mensagens SMTP
SMTP: Prática
O Protocolo HTTP
Métodos HTTP
HTTP: Prática
Definição de Socket
3
Sobre protocolos
 “...protocolo é um padrão que especifica o formato
de dados e as regras a serem seguidas...”
 Para que possa haver harmonia na comunicação entre
as partes envolvidas
 Análogos aos vários idiomas existentes...
 Exemplos: HTTP*, FTP*, DNS*, TCP**, UDP**
(*) Protocolo da camada de aplicação
(**) Protocolo da camada de transporte
4
Camadas da Internet
 Padrão OSI (Open Systems Interconnection)
definido pela ISO (International Standardization
Organization) para facilitar a interconexão de
sistemas de computadores
 A Internet não segue a risca este padrão
Modelo OSI
Modelo da Internet
5
Camadas da Internet
 Estaremos concentrados na camada de aplicação...
6
Telnet: protocolo x aplicativo
 Protocolo cliente-servidor da camada de aplicação
que permite comunicação entre computadores ligados
em rede
 Permite acesso remoto
 Pode ser perigoso quando ativado o modo Telnet
Server!
 Existem vários clientes Telnet
 No Windows chama-se Telnet (aplicativo)
 Recomendamos o Putty:
http://www.cin.ufpe.br/~faas/comunicacao [download]
7
Telnet x SSH
 Telnet [RFC 854] não possui criptografia
 Dados podem ser capturados usando-se um sniffer
 SSH [RFC 4251] (Secure Shell) possui criptografia,
apresentando-se muito mais seguro
 Hoje, pouco se usa o protocolo Telnet para acesso
remoto, ele vem sendo substituído pelo SSH
8
Correio eletrônico
 Comunicação Assíncrona – Mensagens enviadas em
determinado momento não necessariamente chegam no
mesmo instantaneamente.
 O envio de uma mensagem possui 3 componentes
principais:
 Agente de usuário: Compor, ler e editar
mensagens
Servidor de e-mail: Responsável pelas tentativas
de envio para o e-mail do destinatário
 Protocolo SMTP [RFC 2821]
9
Protocolos de acesso ao correio
 POP3 - Está definido na RFC 1225 e permite que
todas as mensagens contidas numa caixa de correio
eletrônico possam ser transferidas sequencialmente
para um computador local.
 IMAP – Superior ao POP3, mensagens ficam no
servidor e o cliente pode ter acesso a suas pastas e
mensagens em qualquer computador, mantém estado.
 HTTP – Envio/recebimento de e-mail por meio de
browsers Web.
10
O Protocolo SMTP
 O cliente envia a mensagem para o seu servidor de
e-mail...
 Fila de mensagens: depois que o servidor cliente
recebe a mensagem ele a encaminha para uma fila de
envio...
 A mensagem chega ao servidor destino...
 O cliente destinatário baixa sua mensagem do seu
servidor de e-mail!
11
SMTP X HTTP
SMTP – Protocolo de envio de informações (push
protocol) já o HTTP é um protocolo de recebimento de
dados (pull protocol)
SMTP – Obriga que toda a mensagem, inclusive o
corpo dela, esteja em formato ASCII
Para transferência com anexo utiliza-se o protocolo MIME
Os dois utilizam TCP para o transporte de dados
SMTP utiliza a porta 25 e o HTTP a 80
12
Mensagens SMTP
 telnet ferreiros.cin.ufpe.br 25 //tecle enter
 220 CIn-UFPE ESMTP Mail Server
 Helo comunicacao //tecle enter
 250 ferreiros.cin.ufpe.br Hello g3c22.cin.ufpe.br
[172.17.67.22], pleased to meet you
 mail from: [seu login]@cin.ufpe.br //tecle enter
 250 2.1.0 [seu login]@cin.ufpe.br... Sender ok
 rcpt to: [email protected] //tecle enter
 250 2.1.5 [email protected]... Recipient ok
 data //tecle enter
 Alo vc! //Corpo da mensagem - tecle enter
 . //tecle enter
 quit //tecle enter
13
SMPT: Prática
1.
2.
3.
4.
5.
Envie um e-mail para sua conta do CIn utilizando o
Prompt de Comando do Windows
(c:\windows\system32\telnet.exe)
Envie e-mail contendo o campo assunto (Consulte a
RFC 2821)
Agora, utilize o campo “From” (Consulte a RFC )
Envie um e-mail com cópia para outro destinatário
(Consulte a RFC)
Procure e utilize o campo “Cc” (Consulte a RFC)
14
O Protocolo HTTP
 HTTP – Protocolo de Transferência de Hipertexto
 HTTP 1.0: RFC[1945]
 HTTP 1.1: RFC[2616]
 É o protocolo base da WEB
 Viabiliza a obtenção de Objetos(páginas, imagens...)
 Funciona no modelo cliente-servidor
 O HTTP define como o cliente (browser) requisita
as páginas WEB e como o servidor as transfere
 Usa o TCP como transportador, podendo assim
garantir transmissões confiáveis
 Utiliza a porta 80 como padrão
15
Métodos HTTP
 Alguns métodos do HTTP 1.1:
 GET: busca um objeto definido por uma URL
requisição
 PUT: indica que os dados no corpo da consulta
devem ser armazenados na URL especificada
 POST: envia dados para serem processados
pelo servidor no corpo da mensagem
 HEAD: Similar ao método GET, mas retorna
somente o cabeçalho da resposta do servidor
 DELETE: apaga o arquivo especificado na URL
16
Mensagem de requisição
 Típica mensagem de requisição cliente-servidor:
GET <diretório> HTTP/1.1
Host: <ip de onde se encontra o diretório>
 Exemplo:
GET /~faas/if678_monitoria/ HTTP/1.1
Host: www.cin.ufpe.br
17
Mensagem de resposta (1/2)
 Na mensagem de resposta temos:
 Uma linha inicial (Status-Line)
 Versão do protocolo HTTP (HTTP-Version)
 Código de status da resposta (Status-Code) e
 Descrição do código de status (Reason-Phrase)
 Linhas de cabeçalhos (Responseheader)
 Uma linha em branco obrigatória e
 Um corpo de mensagem opcional
18
Mensagem de resposta (2/2)
 Exemplo:
HTTP/1.1 200 OK
Date: Mon, 23 May 2005 22:38:34 GMT
Server: Apache/1.3.27 (Unix) (Red-Hat/Linux)
Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT
Etag: "3f80f-1b6-3e1cb03b"
Accept-Ranges: bytes Content-Length: 438 Connection: close
Content-Type: text/html; charset=UTF-8
Dados ... .. .. . .. . .. .. . . . . .. . . . . . .. . .. .. . . . . .. . . .
19
Alguns códigos de resposta
 200 OK - conexão estabelecida e objeto requisitado
encontrado
 302 Found - indica um redirecionamento temporário onde no
cabeçalho Location está a URL da nova localidade
 301 Moved Permanently - indica que o ouve um
redirecionamento permanente. E no campo Location do Head está
a nova localidade, o registro com a URL antiga deve ser alterado
para a nova
 304 Not Modified - usado quando o cliente utiliza cache,
indicando que o objeto solicitado não foi alterado
 404 Not Found - indica que o recurso não foi encontrado
 403 - acesso negado
20
HTTP: Prática
 Procure na Internet a RFC[2616] que especifica a
versão 1.1 do HTTP
 Localize o campo de cabeçalho de requisição
(Request Header Fields):
 Como se define a linguagem preferencial para
uma página?
 Como o cliente indica seu navegador (UserAgent)?
Utilize o que você aprendeu:
Com o método GET
Com o método HEAD
21
Comunicação entre processos
 Processos em hosts distintos comunicam-se por meio
de envio de mensagens...
 enviadas e recebidas através de seu socket
Socket é a interface entre
a camada de aplicação e a
de transporte
22
Serviços requeridos pelas
aplicações
 Transferência de dados confiável
 Não pode haver perda de dados durante a transmissão
 Exemplos: transferência de arquivos, mensagem
instantânea
 Banda passante disponível
 Algumas aplicações necessitam de uma banda passante
mínima para haver consistência dos dados no receptor
 Exemplos: aplicações multimídia
 Garantia de tempo
 Algumas aplicações requerem um tempo máximo de atraso
para a transmissão dos dados
 Exemplos: aplicações em tempo real, jogos multiusuários
23
TCP: transporte confiável
 A Internet trabalha no esquema do “Melhor
esforço”
 No entanto, muitas aplicações precisam de
garantias...
 O protocolo TCP provê:
 Transporte confiável: os dados vão chegar corretamente!
 Controle de congestionamento: diminui a taxa de
transmissão de um processo quando a rede está
sobrecarregada
 Controle de fluxo: um host não receberá um volume de
dados maior que o suportado por ele
24
UDP: um protocolo leve
 O UDP é um protocolo de transporte bastante
simplificado
 Não possui a fase de “setup” do TCP
 E não fornece nenhuma garantia de entrega dos
dados
 Isso o torna mais leve e possibilita menor
sobrecarga no servidor que o utiliza
 É utilizado no transporte de voz sobre IP, por
exemplo
25
Próxima aula...
 PROGRAMAÇÃO COM SOCKETS!
26
Referências
1.
2.
3.
4.
5.
James F. Kurose and Keith W. Ross, "Redes de
Computadores e a Internet - Uma Nova
Abordagem", 3a. edição - 2005 - Ed. Addison
Wesley BRA
http://www.rfc.net/
http://www.ietf.org/rfc.html
http://java.sun.com/j2se/1.5.0/docs/api/java/net/
package-summary.html
http://java.sun.com/j2se/1.5.0/docs/api/java/net/
Socket.html
27
Download

O Protocolo SMTP