27
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

Infra-Estrutura de Comunicação (IF678) Aula Prática 01 Telnet, SMTP, HTTP e Socket Flávio Almeida ([email protected])[email protected] faas/comunicacao

Embed Size (px)

Citation preview

Page 1: Infra-Estrutura de Comunicação (IF678) Aula Prática 01 Telnet, SMTP, HTTP e Socket Flávio Almeida (faas@cin.ufpe.br)faas@cin.ufpe.br faas/comunicacao

Infra-Estrutura de Comunicação(IF678)

Aula Prática 01Telnet, SMTP, HTTP e Socket

Flávio Almeida ([email protected])http://www.cin.ufpe.br/~faas/comunicacao

Professor: Paulo Gonçalves ([email protected])

CIn/UFPE

Page 2: Infra-Estrutura de Comunicação (IF678) Aula Prática 01 Telnet, SMTP, HTTP e Socket Flávio Almeida (faas@cin.ufpe.br)faas@cin.ufpe.br faas/comunicacao

2

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

Page 3: Infra-Estrutura de Comunicação (IF678) Aula Prática 01 Telnet, SMTP, HTTP e Socket Flávio Almeida (faas@cin.ufpe.br)faas@cin.ufpe.br faas/comunicacao

3

Agenda1. Sobre protocolos2. Camadas da Internet3. Telnet: Protocolo x Aplicativo 4. Telnet x SSH5. Correio Eletrônico6. O Protocolo SMTP7. Mensagens SMTP8. SMTP: Prática9. O Protocolo HTTP10. Métodos HTTP11. HTTP: Prática12. Definição de Socket

Page 4: Infra-Estrutura de Comunicação (IF678) Aula Prática 01 Telnet, SMTP, HTTP e Socket Flávio Almeida (faas@cin.ufpe.br)faas@cin.ufpe.br faas/comunicacao

4

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

Page 5: Infra-Estrutura de Comunicação (IF678) Aula Prática 01 Telnet, SMTP, HTTP e Socket Flávio Almeida (faas@cin.ufpe.br)faas@cin.ufpe.br faas/comunicacao

5

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

Page 6: Infra-Estrutura de Comunicação (IF678) Aula Prática 01 Telnet, SMTP, HTTP e Socket Flávio Almeida (faas@cin.ufpe.br)faas@cin.ufpe.br faas/comunicacao

6

Camadas da Internet Estaremos concentrados na camada de aplicação...

Page 7: Infra-Estrutura de Comunicação (IF678) Aula Prática 01 Telnet, SMTP, HTTP e Socket Flávio Almeida (faas@cin.ufpe.br)faas@cin.ufpe.br faas/comunicacao

7

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]

Page 8: Infra-Estrutura de Comunicação (IF678) Aula Prática 01 Telnet, SMTP, HTTP e Socket Flávio Almeida (faas@cin.ufpe.br)faas@cin.ufpe.br faas/comunicacao

8

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

Page 9: Infra-Estrutura de Comunicação (IF678) Aula Prática 01 Telnet, SMTP, HTTP e Socket Flávio Almeida (faas@cin.ufpe.br)faas@cin.ufpe.br faas/comunicacao

9

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]

Page 10: Infra-Estrutura de Comunicação (IF678) Aula Prática 01 Telnet, SMTP, HTTP e Socket Flávio Almeida (faas@cin.ufpe.br)faas@cin.ufpe.br faas/comunicacao

10

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.

Page 11: Infra-Estrutura de Comunicação (IF678) Aula Prática 01 Telnet, SMTP, HTTP e Socket Flávio Almeida (faas@cin.ufpe.br)faas@cin.ufpe.br faas/comunicacao

11

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!

Page 12: Infra-Estrutura de Comunicação (IF678) Aula Prática 01 Telnet, SMTP, HTTP e Socket Flávio Almeida (faas@cin.ufpe.br)faas@cin.ufpe.br faas/comunicacao

12

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

Page 13: Infra-Estrutura de Comunicação (IF678) Aula Prática 01 Telnet, SMTP, HTTP e Socket Flávio Almeida (faas@cin.ufpe.br)faas@cin.ufpe.br faas/comunicacao

13

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

Page 14: Infra-Estrutura de Comunicação (IF678) Aula Prática 01 Telnet, SMTP, HTTP e Socket Flávio Almeida (faas@cin.ufpe.br)faas@cin.ufpe.br faas/comunicacao

14

SMPT: Prática1. Envie um e-mail para sua conta do CIn

utilizando o Prompt de Comando do Windows (c:\windows\system32\telnet.exe)

2. Envie e-mail contendo o campo assunto (Consulte a RFC 2821)

3. Agora, utilize o campo “From” (Consulte a RFC )

4. Envie um e-mail com cópia para outro destinatário (Consulte a RFC)

5. Procure e utilize o campo “Cc” (Consulte a RFC)

Page 15: Infra-Estrutura de Comunicação (IF678) Aula Prática 01 Telnet, SMTP, HTTP e Socket Flávio Almeida (faas@cin.ufpe.br)faas@cin.ufpe.br faas/comunicacao

15

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

Page 16: Infra-Estrutura de Comunicação (IF678) Aula Prática 01 Telnet, SMTP, HTTP e Socket Flávio Almeida (faas@cin.ufpe.br)faas@cin.ufpe.br faas/comunicacao

16

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

Page 17: Infra-Estrutura de Comunicação (IF678) Aula Prática 01 Telnet, SMTP, HTTP e Socket Flávio Almeida (faas@cin.ufpe.br)faas@cin.ufpe.br faas/comunicacao

17

Mensagem de requisição Típica mensagem de requisição cliente-servidor:

GET <diretório> HTTP/1.1Host: <ip de onde se encontra o diretório>

Exemplo:GET /~faas/if678_monitoria/ HTTP/1.1Host: www.cin.ufpe.br

Page 18: Infra-Estrutura de Comunicação (IF678) Aula Prática 01 Telnet, SMTP, HTTP e Socket Flávio Almeida (faas@cin.ufpe.br)faas@cin.ufpe.br faas/comunicacao

18

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

Page 19: Infra-Estrutura de Comunicação (IF678) Aula Prática 01 Telnet, SMTP, HTTP e Socket Flávio Almeida (faas@cin.ufpe.br)faas@cin.ufpe.br faas/comunicacao

19

Mensagem de resposta (2/2) Exemplo:

HTTP/1.1 200 OK Date: Mon, 23 May 2005 22:38:34 GMTServer: Apache/1.3.27 (Unix) (Red-Hat/Linux)Last-Modified: Wed, 08 Jan 2003 23:11:55 GMTEtag: "3f80f-1b6-3e1cb03b" Accept-Ranges: bytes Content-Length: 438

Connection: close Content-Type: text/html; charset=UTF-8

Dados ... .. .. . .. . .. .. . . . . .. . . . . . .. . .. .. . . . . .. . . .

Page 20: Infra-Estrutura de Comunicação (IF678) Aula Prática 01 Telnet, SMTP, HTTP e Socket Flávio Almeida (faas@cin.ufpe.br)faas@cin.ufpe.br faas/comunicacao

20

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

Page 21: Infra-Estrutura de Comunicação (IF678) Aula Prática 01 Telnet, SMTP, HTTP e Socket Flávio Almeida (faas@cin.ufpe.br)faas@cin.ufpe.br faas/comunicacao

21

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 (User-Agent)?

Utilize o que você aprendeu: Com o método GET Com o método HEAD

Page 22: Infra-Estrutura de Comunicação (IF678) Aula Prática 01 Telnet, SMTP, HTTP e Socket Flávio Almeida (faas@cin.ufpe.br)faas@cin.ufpe.br faas/comunicacao

22

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

Page 23: Infra-Estrutura de Comunicação (IF678) Aula Prática 01 Telnet, SMTP, HTTP e Socket Flávio Almeida (faas@cin.ufpe.br)faas@cin.ufpe.br faas/comunicacao

23

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

Page 24: Infra-Estrutura de Comunicação (IF678) Aula Prática 01 Telnet, SMTP, HTTP e Socket Flávio Almeida (faas@cin.ufpe.br)faas@cin.ufpe.br faas/comunicacao

24

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

Page 25: Infra-Estrutura de Comunicação (IF678) Aula Prática 01 Telnet, SMTP, HTTP e Socket Flávio Almeida (faas@cin.ufpe.br)faas@cin.ufpe.br faas/comunicacao

25

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

Page 26: Infra-Estrutura de Comunicação (IF678) Aula Prática 01 Telnet, SMTP, HTTP e Socket Flávio Almeida (faas@cin.ufpe.br)faas@cin.ufpe.br faas/comunicacao

26

Próxima aula...

PROGRAMAÇÃO COM SOCKETS!

Page 27: Infra-Estrutura de Comunicação (IF678) Aula Prática 01 Telnet, SMTP, HTTP e Socket Flávio Almeida (faas@cin.ufpe.br)faas@cin.ufpe.br faas/comunicacao

27

Referências1. James F. Kurose and Keith W. Ross, "Redes de

Computadores e a Internet - Uma Nova Abordagem", 3a. edição - 2005 - Ed. Addison Wesley BRA

2. http://www.rfc.net/ 3. http://www.ietf.org/rfc.html4. http://java.sun.com/j2se/1.5.0/docs/api/java/

net/package-summary.html 5. http://java.sun.com/j2se/1.5.0/docs/api/java/

net/Socket.html