InfraEstrutura de Comunicao IF 678 Aula Prtica 01

  • Slides: 27
Download presentation
Infra-Estrutura de Comunicação (IF 678) Aula Prática 01 Telnet, SMTP, HTTP e Socket Flávio

Infra-Estrutura de Comunicação (IF 678) Aula Prática 01 Telnet, SMTP, HTTP e Socket Flávio Almeida (faas@cin. ufpe. br) http: //www. cin. ufpe. br/~faas/comunicacao Professor: Paulo Gonçalves (pasg@cin. ufpe. br) CIn/UFPE

Nosso objetivo: q Visão geral sobre protocolos da camada de aplicação q Consulta a

Nosso objetivo: q Visão geral sobre protocolos da camada de aplicação q Consulta a RFC’s q Entender o Telnet q Utilizar o Telnet para enviar e-mail (SMTP) q Utilizar o Telnet para efetuar requisições HTTP q Compreender a comunicação entre processos – Socket 2

Agenda 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Sobre

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: Prática O Protocolo HTTP Métodos HTTP: Prática Definição de Socket 3

Sobre protocolos q “. . . protocolo é um padrão que especifica o formato

Sobre protocolos q “. . . protocolo é um padrão que especifica o formato de dados e as regras a serem seguidas. . . ” q Para que possa haver harmonia na comunicação entre as partes envolvidas q Análogos aos vários idiomas existentes. . . q Exemplos: HTTP*, FTP*, DNS*, TCP**, UDP** (*) Protocolo da camada de aplicação (**) Protocolo da camada de transporte 4

Camadas da Internet q Padrão OSI (Open Systems Interconnection) definido pela ISO (International Standardization

Camadas da Internet q Padrão OSI (Open Systems Interconnection) definido pela ISO (International Standardization Organization) para facilitar a interconexão de sistemas de computadores q A Internet não segue a risca este padrão Modelo OSI Modelo da Internet 5

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

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

Telnet: protocolo x aplicativo q Protocolo cliente-servidor da camada de aplicação que permite comunicação

Telnet: protocolo x aplicativo q Protocolo cliente-servidor da camada de aplicação que permite comunicação entre computadores ligados em rede q Permite acesso remoto q Pode ser perigoso quando ativado o modo Telnet Server! q Existem vários clientes Telnet q No Windows chama-se Telnet (aplicativo) q Recomendamos o Putty: http: //www. cin. ufpe. br/~faas/comunicacao [download] 7

Telnet x SSH q Telnet [RFC 854] não possui criptografia q Dados podem ser

Telnet x SSH q Telnet [RFC 854] não possui criptografia q Dados podem ser capturados usando-se um sniffer q SSH [RFC 4251] (Secure Shell) possui criptografia, apresentando-se muito mais seguro q Hoje, pouco se usa o protocolo Telnet para acesso remoto, ele vem sendo substituído pelo SSH 8

Correio eletrônico q Comunicação Assíncrona – Mensagens enviadas em determinado momento não necessariamente chegam

Correio eletrônico q Comunicação Assíncrona – Mensagens enviadas em determinado momento não necessariamente chegam no mesmo instantaneamente. q O envio de uma mensagem possui 3 componentes principais: q Agente de usuário: Compor, ler e editar mensagens q. Servidor de e-mail: Responsável pelas tentativas de envio para o e-mail do destinatário q Protocolo SMTP [RFC 2821] 9

Protocolos de acesso ao correio q POP 3 - Está definido na RFC 1225

Protocolos de acesso ao correio q POP 3 - 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. q IMAP – Superior ao POP 3, mensagens ficam no servidor e o cliente pode ter acesso a suas pastas e mensagens em qualquer computador, mantém estado. q HTTP – Envio/recebimento de e-mail por meio de browsers Web. 10

O Protocolo SMTP q O cliente envia a mensagem para o seu servidor de

O Protocolo SMTP q O cliente envia a mensagem para o seu servidor de e -mail. . . q Fila de mensagens: depois que o servidor cliente recebe a mensagem ele a encaminha para uma fila de envio. . . q A mensagem chega ao servidor destino. . . q O cliente destinatário baixa sua mensagem do seu servidor de e-mail! 11

SMTP X HTTP q. SMTP – Protocolo de envio de informações (push protocol) já

SMTP X HTTP q. SMTP – Protocolo de envio de informações (push protocol) já o HTTP é um protocolo de recebimento de dados (pull protocol) q. SMTP – Obriga que toda a mensagem, inclusive o corpo dela, esteja em formato ASCII q. Para transferência com anexo utiliza-se o protocolo MIME q. Os dois utilizam TCP para o transporte de dados q. SMTP utiliza a porta 25 e o HTTP a 80 12

Mensagens SMTP q telnet ferreiros. cin. ufpe. br 25 //tecle enter q 220 CIn-UFPE

Mensagens SMTP q telnet ferreiros. cin. ufpe. br 25 //tecle enter q 220 CIn-UFPE ESMTP Mail Server q Helo comunicacao //tecle enter q 250 ferreiros. cin. ufpe. br Hello g 3 c 22. cin. ufpe. br [172. 17. 67. 22], pleased to meet you q mail from: [seu login]@cin. ufpe. br //tecle enter q 250 2. 1. 0 [seu login]@cin. ufpe. br. . . Sender ok q rcpt to: acmb@cin. ufpe. br //tecle enter q 250 2. 1. 5 acmb@cin. ufpe. br. . . Recipient ok q data //tecle enter q Alo vc! //Corpo da mensagem - tecle enter q. //tecle enter q quit //tecle enter 13

SMPT: Prática 1. 2. 3. 4. 5. Envie um e-mail para sua conta do

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: windowssystem 32telnet. 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 q HTTP – Protocolo de Transferência de Hipertexto q HTTP 1.

O Protocolo HTTP q HTTP – Protocolo de Transferência de Hipertexto q HTTP 1. 0: RFC[1945] q HTTP 1. 1: RFC[2616] q É o protocolo base da WEB q Viabiliza a obtenção de Objetos(páginas, imagens. . . ) q Funciona no modelo cliente-servidor q O HTTP define como o cliente (browser) requisita as páginas WEB e como o servidor as transfere q Usa o TCP como transportador, podendo assim garantir transmissões confiáveis q Utiliza a porta 80 como padrão 15

Métodos HTTP q Alguns métodos do HTTP 1. 1: q GET: busca um objeto

Métodos HTTP q Alguns métodos do HTTP 1. 1: q GET: busca um objeto definido por uma URL requisição q PUT: indica que os dados no corpo da consulta devem ser armazenados na URL especificada q POST: envia dados para serem processados pelo servidor no corpo da mensagem q HEAD: Similar ao método GET, mas retorna somente o cabeçalho da resposta do servidor q DELETE: apaga o arquivo especificado na URL 16

Mensagem de requisição q Típica mensagem de requisição cliente-servidor: GET <diretório> HTTP/1. 1 Host:

Mensagem de requisição q Típica mensagem de requisição cliente-servidor: GET <diretório> HTTP/1. 1 Host: <ip de onde se encontra o diretório> q Exemplo: GET /~faas/if 678_monitoria/ HTTP/1. 1 Host: www. cin. ufpe. br 17

Mensagem de resposta (1/2) q Na mensagem de resposta temos: q Uma linha inicial

Mensagem de resposta (1/2) q Na mensagem de resposta temos: q Uma linha inicial (Status-Line) q Versão do protocolo HTTP (HTTP-Version) q Código de status da resposta (Status-Code) e q Descrição do código de status (Reason-Phrase) q Linhas de cabeçalhos (Responseheader) q Uma linha em branco obrigatória e q Um corpo de mensagem opcional 18

Mensagem de resposta (2/2) q Exemplo: HTTP/1. 1 200 OK Date: Mon, 23 May

Mensagem de resposta (2/2) q 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: "3 f 80 f-1 b 6 -3 e 1 cb 03 b" Accept-Ranges: bytes Content-Length: 438 Connection: close Content-Type: text/html; charset=UTF-8 Dados. . . . . 19

Alguns códigos de resposta q 200 OK - conexão estabelecida e objeto requisitado encontrado

Alguns códigos de resposta q 200 OK - conexão estabelecida e objeto requisitado encontrado q 302 Found - indica um redirecionamento temporário onde no cabeçalho Location está a URL da nova localidade q 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 q 304 Not Modified - usado quando o cliente utiliza cache, indicando que o objeto solicitado não foi alterado q 404 Not Found - indica que o recurso não foi encontrado q 403 - acesso negado 20

HTTP: Prática q Procure na Internet a RFC[2616] que especifica a versão 1. 1

HTTP: Prática q Procure na Internet a RFC[2616] que especifica a versão 1. 1 do HTTP q Localize o campo de cabeçalho de requisição (Request Header Fields): q Como se define a linguagem preferencial para uma página? q Como o cliente indica seu navegador (User. Agent)? q. Utilize o que você aprendeu: q. Com o método GET q. Com o método HEAD 21

Comunicação entre processos q Processos em hosts distintos comunicam-se por meio de envio de

Comunicação entre processos q Processos em hosts distintos comunicam-se por meio de envio de mensagens. . . q 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 q Transferência de dados confiável q Não pode haver perda

Serviços requeridos pelas aplicações q Transferência de dados confiável q Não pode haver perda de dados durante a transmissão q Exemplos: transferência de arquivos, mensagem instantânea q Banda passante disponível q Algumas aplicações necessitam de uma banda passante mínima para haver consistência dos dados no receptor q Exemplos: aplicações multimídia q Garantia de tempo q Algumas aplicações requerem um tempo máximo de atraso para a transmissão dos dados q Exemplos: aplicações em tempo real, jogos multiusuários 23

TCP: transporte confiável q A Internet trabalha no esquema do “Melhor esforço” q No

TCP: transporte confiável q A Internet trabalha no esquema do “Melhor esforço” q No entanto, muitas aplicações precisam de garantias. . . q O protocolo TCP provê: q Transporte confiável: os dados vão chegar corretamente! q Controle de congestionamento: diminui a taxa de transmissão de um processo quando a rede está sobrecarregada q Controle de fluxo: um host não receberá um volume de dados maior que o suportado por ele 24

UDP: um protocolo leve q O UDP é um protocolo de transporte bastante simplificado

UDP: um protocolo leve q O UDP é um protocolo de transporte bastante simplificado q Não possui a fase de “setup” do TCP q E não fornece nenhuma garantia de entrega dos dados q Isso o torna mais leve e possibilita menor sobrecarga no servidor que o utiliza q É utilizado no transporte de voz sobre IP, por exemplo 25

Próxima aula. . . q PROGRAMAÇÃO COM SOCKETS! 26

Próxima aula. . . q PROGRAMAÇÃO COM SOCKETS! 26

Referências 1. 2. 3. 4. 5. James F. Kurose and Keith W. Ross, "Redes

Referências 1. 2. 3. 4. 5. James F. Kurose and Keith W. Ross, "Redes de Computadores e a Internet - Uma Nova Abordagem", 3 a. edição - 2005 - Ed. Addison Wesley BRA http: //www. rfc. net/ http: //www. ietf. org/rfc. html http: //java. sun. com/j 2 se/1. 5. 0/docs/api/java/ne t/package-summary. html http: //java. sun. com/j 2 se/1. 5. 0/docs/api/java/net /Socket. html 27