1 / 27

Infra-Estrutura de Comunicação (IF678)

Infra-Estrutura de Comunicação (IF678). 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: Visão geral sobre protocolos da camada de aplicação

luz
Download Presentation

Infra-Estrutura de Comunicação (IF678)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Infra-Estrutura de Comunicação(IF678) Aula Prática 01Telnet, 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

  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

  3. Agenda 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

  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

  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 da Internet Modelo OSI

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

  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]

  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

  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]

  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 browsersWeb.

  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!

  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

  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: acmb@cin.ufpe.br //tecle enter • 250 2.1.5 acmb@cin.ufpe.br... Recipient ok • data //tecle enter • Alo vc!//Corpo da mensagem - tecle enter • .//tecle enter • quit//tecle enter

  14. SMPT: Prática 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)

  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

  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

  17. 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

  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

  19. 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 ... .. .. . .. . .. .. . . . . .. . . . . . .. . .. .. . . . . .. . . .

  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

  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

  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

  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

  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ê: • Transporteconfiá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

  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

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

  27. Referências 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

More Related