200 likes | 296 Views
Infra-Estrutura de Comunicação (IF678). Aula Prática 01. Bruno D’Ambrosio( bgda@cin.ufpe.br ) Original por: Flávio Almeida( faas@cin.ufpe.br ). Professor: Paulo Gonçalves ( pasg@cin.ufpe.br ). CIn/UFPE. Nosso objetivo: Experimentos com traceroute, entender o backbone da internet;
E N D
Infra-Estrutura de Comunicação(IF678) Aula Prática 01 Bruno D’Ambrosio(bgda@cin.ufpe.br) Original por: Flávio Almeida(faas@cin.ufpe.br) Professor: Paulo Gonçalves (pasg@cin.ufpe.br) CIn/UFPE
Nosso objetivo: Experimentos com traceroute, entender o backbone da internet; Experimentos com telnet para HTTP; Experimentos com telnet para SMTP; Experimentos com telnet para POP3; Experimentos usando o comando Ping; Introdução à programação com sockets.
Experimentos Com Traceroute • Faremos um traceroute para www.ufam.edu.br e observaremos os resultados obtidos com o mesmo. Comando: tracert www.ufam.edu.br • Perguntas: • A) Por que os pacotes foram para o Sudeste em vez de seguirem diretamente para o Norte? • B) Por que apósSP teríamos apenas um salto até Amazonas? • C) Por que o atraso cresce a cada salto? Porque há uma grande diferença entre alguns saltos? • D) Qual o nome e o endereço IP do roteador de acesso à Internet do CIn?
Traceroute (Continuação!) • E) Pode ser que o traceroute termine em 30 saltos mas tendo só asterísticos a partir do nono. Qual a razão? • F) Façam um traceroute para www.umass.edu . Por que a ordem de grandeza dos atrasos cresceu em comparação ao primeiro traceroute?
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
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
Experimentos com HTTP • Típica mensagem de requisição cliente-servidor: • GET <diretório> HTTP/1.1 • Host: <ip de onde se encontra o diretório> • Executem os comandos abaixo observando o cabeçalho da resposta e os dados da resposta: • telnet ferreiros.cin.ufpe.br 80 • GET /~pasg/if678/ HTTP/1.1 • Host: www.cin.ufpe.br
Mensagem de resposta • 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
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
Experimentos com SMTP • A) Usar o telnet com comandos SMTP para enviar um email a um colega da sala. • B) Usar o telnet com comandos SMTP para enviar um email a si próprio com endereço do email de origem de um outro colega. Fake mail! =PPPP
Exemplo 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: bgda@cin.ufpe.br //tecle enter • 250 2.1.5 bgda@cin.ufpe.br... Recipient ok • data //tecle enter • Alo vc!//Corpo da mensagem - tecle enter • .//tecle enter • quit//tecle enter
Experimentos com POP3 • A) Com o auxílio do telnet, acessar a própria caixa postal com comando POP3. Apenas fazer LIST e QUIT. (somente para quem possui e-mail com servidor POP3 : para emails da uol , oi e globo funciona , e-mails somente na web como hotmail e gmail não pega). • Exemplo no próximo slide! =P
Exemplo POP3 telnet pop3.uol.com.br 110 +OK POP server ready user nomedousuário Servidor pede a senha. pass suasenha(cuidado senha vai aparecer não deixe ninguém ver) Servidor avisa que você está conectado. list Servidor mostra lista de e-mails (números dos e-mails) quit Desconectado.
Exercício Ping • Façam um ping para diversos endereços diferentes, observando as respostas. • Comando: ping destinatário • Como funciona o ping?
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
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
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
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
Próxima aula... • PROGRAMAÇÃO COM SOCKETS!
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 Slide da monitoria do semestre passado (faas)