Mudanças entre as edições de "RCO60803-2015-2"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 311: Linha 311:
 
'''Exemplos'''
 
'''Exemplos'''
  
[https://dl.dropboxusercontent.com/u/50936332/capturaHTTP01.cap]
+
[https://dl.dropboxusercontent.com/u/50936332/capturaHTTP01.cap Captura de página somente HTML]
[https://dl.dropboxusercontent.com/u/50936332/capturaHTTP02.cap]
+
 
[https://dl.dropboxusercontent.com/u/50936332/capturaHTTP03.cap]
+
[https://dl.dropboxusercontent.com/u/50936332/capturaHTTP02.cap Captura de página HTML com uma figura]
 +
 
 +
[https://dl.dropboxusercontent.com/u/50936332/capturaHTTP03.cap Captura de página HTML com duas figuras]
  
 
==== Atividades Práticas ====
 
==== Atividades Práticas ====

Edição das 07h52min de 19 de novembro de 2015

IntTel: Redes de Computadores - 2014-2 - Prof. Simara Sonaglio

  • Professores: Simara Sonaglio
  • Email: simara.sonaglio@ifsc.edu.br
  • Turma: 6080311
  • Encontros: segundas e quintas das 9:40 às 11:30
  • Atendimento paralelo: segundas e quintas das 11:30 às 12:30


Plano de Ensino

Curiosidades

Materiais de aula

Slides

Listas de exercícios

Apostilas

Acesso SSH via Google Chrome

  • Tutorial para instalar aplicativo SSH no Chrome: Tutorial


Servidor de acesso: 200.135.233.76


Usuários: Lista abaixo

  • alana
  • anapaula
  • camila
  • daniele
  • eduardo
  • emanuella
  • felipe
  • gabrielleal
  • iago
  • juliabaggio
  • juliajaques
  • julialuiza
  • karina
  • layza
  • mariaeduarda
  • matheus
  • gabrielw
  • david


Senha: igual ao usuário

Caso o aluno deseje alterar a sua senha, basta digitar no terminal o comando passwd usuario. O termo usuario deve ser alterado pelo seu usuário listado acima.

Aulas

Aula 1 - 05/10/15: Apresentação da disciplina
  • Apresentação da disciplina, plano de aula, laboratórios e métodos de avaliação.
  • Introdução a Redes de Computadores (Arquivo:Slides-kurose-cap1.pdf)
Aula 2 - 08/10/15: Lab01: Introdução ao Linux

Neste laboratório serão revisados alguns conceitos relacionados ao uso de Linux que serão importantes durante o curso. Para isto, os seguintes roteiros serão executados.

Aula 3 - 15/10/15: Lab01: Introdução ao Linux - CONTINUAÇÃO

Neste laboratório serão revisados alguns conceitos relacionados ao uso de Linux que serão importantes durante o curso. Para isto, os seguintes roteiros serão executados.

Aula 4 - 17/10/2015: Borda e núcleo da Internet


Tarefa para casa

Ler Capítulo 1 do Kurose até onde foi abordado na aula (Seção 1.3) e fazer os exercícios da lista 1 até o número 9.

Aula 5 - 19/10/2015: Lab02 - Ferramentas básicas de redes e conclusão do tema Borda e núcleo da Internet


Nesta atividade serão vistos algumas ferramentas utilizadas para obter informações relacionadas às configurações de uma rede de computadores.

  • ping;
  • ifconfig;
  • traceroute;
  • nestat
Aula 6 - 22/10/2015: Lab02 - Ferramentas básicas de redes - CONCLUSÃO

Nesta atividade serão vistos algumas ferramentas utilizadas para obter informações relacionadas às configurações de uma rede de computadores.

  • ping;
  • ifconfig;
  • traceroute;
  • nestat

Relatório a ser entregue

Data de entrega: 29/10/2015

O aluno deve abrir o documento Roteiro 1 que está na descrição desta aula, ler a descrição dos comandos e testa-los em uma máquina Linux. Então, deve executar os exercícios do final do roteiro.

Cada aluno deve entregar um documento via e-mail para simara.sonaglio@ifsc.edu.br até a data limite de 29/10/2015. Este documento deve conter os seguintes pontos:

  1. Descritivo de cada comando (para que serve e exemplo de como usa-lo);
  2. Resposta (saída na tela) de cada item pedido em Exercícios do Roteiro 1 e breve descrição desta saída.
Aula 7 - 26/10/2015: Acesso à rede e meio físico e Estrutura da Internet e ISPs

Slides do 27 ao 47

Aula 8 - 29/10/2015: Atraso e perda em redes de comutação de pacotes/Arquiteturas em camadas, modelos de serviço

Slides do 48 ao 65

Aula 9 - 05/11/2015: Revisão e correção de lista de exercícios
Aula 10 - 09/11/2015: Camada de aplicação: introdução

Até o slide 18

Aula 11 - 12/11/2015: Avaliação 1

Local da prova: Sala 07

Aula 12 - 14/11/2015: Correção da Avaliação 1

Avaliação 1 foi cancelada e será refeita em 19/11, pois foi cobrado um conteúdo da próxima avaliação.

Aula 13 - 16/11/2015: HTTP
Aula 14 - 19/11/2015: Laboratório: Captura de pacotes e análise do protocolo HTTP

13/03: Laboratório: Captura de pacotes e análise do protocolo HTTP

Na arquitetura de redes da Internet, são as aplicações que se comunicam, gerando dados no transmissor e consumindo-os no receptor.

Res-camadas3.png

Aplicações residem em equipamentos de rede, e se comunicam através da rede usando os serviços das camadas inferiores

Aplicações são processos que se comunicam através da rede (lembre lá de ICO que processos são programas em execução). Exemplos de aplicações são navegadores web (Firefox, Chrome) e bate-papo (Skype, GTalk). A comunicação pode ser feita de diferentes formas, de acordo com o modelo de comunicação adotado pela aplicação em questão. O modelo de comunicação define o papel de cada participante da comunicação, e por consequência acaba determinando como a comunicação acontece (quem a inicia, quando se transmitem e recebem mensagens). Três modelos conhecidos são:

  • Cliente-Servidor: um participante é o cliente, e o outro o servidor. O cliente inicia a comunicação, ao enviar uma mensagem ao servidor pedindo algum serviço. Cabe ao servidor responder aos pedidos dos clientes. Este é o modelo mais comum de se encontrar em aplicações, tais como correio eletrônico, WWW, bancos de dados, compartilhamento de arquivos e outros.
  • Peer-to-Peer (P2P): cada participante pode ser tanto cliente quanto servidor, assim qualquer um pode iniciar uma comunicação. Tornou-se popular com aplicações como compartilhamento de arquivos (ex: BitTorrent, eDonkey) e sistemas de chamadas VoIP.
  • Publisher/Subscriber: neste modelo existem os publicadores de conteúdo (publishers) e os assinantes ou interessados (subscribers). Os assinantes registram seus interesses por demais tipos de dados (isso é, assinam canais de dados). Os publicadores eventualmente divulgam dados, que são distribuídos aos assinantes. Não é comum de ser encontrado em aplicações, porém é o modelo usado para detecção de presença em aplicações de conversa on-line (Skype, Gtalk).

Cada aplicação usa diretamente os serviços da camada de transporte, e indiretamente os de camadas inferiores. Assim, para uma aplicação é a camada de transporte que envia e recebe suas mensagens. Como visto na aula passada, um serviço importante da camada de transporte é classificar e separar os pacotes recebidos de acordo com a aplicação que deve recebê-los, e para isso se um número chamado de port. O número de port pode ser entendido como um endereçador de aplicações dentro de um mesmo host. Vimos também que a camada de transporte na Internet apresenta dois protocolos, e ambos usam números de port para separar os pacotes de acordo com a comunicação que os contém:

  • TCP: usado por aplicações quando há necessidade de ter certeza de que os dados foram recebidos. Esse protocolo faz retransmissões automáticas no caso de perdas de mensagens. Para estabelecer a comunicação, ele usa o conceito de conexão (em que os dois participantes entram em acordo sobre a comunicação, e lembram disso a cada mensagem enviada e recebida) e realiza confirmações das mensagens recebidas. Este é o protocolo de transporte mais usado.
  • UDP: usado quando não é imprescindível ter certeza de que cada mensagem chegou ao destino, ou o custo de fazer isso com TCP não compensar. Não há conexões, tampouco confirmações. Exemplos de uso são chamadas VoIP e consultas DNS.

O estudo das aplicações da Internet inicia com WWW, que foi responsável por popularizar a Internet nos anos 90 e ainda é a aplicação mais difundida e acessada.

WWW e protocolo HTTP

WWW (World Wide Web) é um sistema de documentos em hipermidia que são ligados e acessados na Internet (FONTE: Wikipedia). Tendo início em 1990 como uma aplicação experimental desenvolvida por Tim Berners-Lee, que então trabalhava no CERN, na Suíça, em pouco tempo caiu no gosto de demais usuários e se difundiu. WWW se tornou tão popular que para muitos passou a ser sinônimo de Internet (equivocadamente). Por trás da sua rápida aceitação há um protocolo de aplicação simples e funcional, além claro do modelo de informação em hipermidia que agradou as pessoas.

Se o WWW é um sistema de documentoshipermidia online mantido de forma distribuída na Internet, o protocolo HTTP (Hypertext Transfer Protocol) é o protocolo usado para acessá-los. Esse protocolo segue o modelo cliente-servidor, e as comunicações são feitas com mensagens de pedido e resposta. Um cliente (navegador web) envia uma mensagem HTTP de pedido a um servidor web, que a responde com uma mensagem de resposta contendo o conteúdo solicitado. O protocolo HTTP usa o protocolo TCP para transmitir suas mensagens.

Mensagens de pedido HTTP

Mensagens HTTP de pedido possuem a seguinte estrutura:

Método URI HTTP/versão_do_protocolo
Cabeçalho1: valor do cabeçalho1
Cabeçalho2: valor do cabeçalho2
Cabeçalho3: valor do cabeçalho3
CabeçalhoN: valor do cabeçalhoN

corpo da mensagem

A primeira linha usa o campo método para indicar o tipo de pedido a ser realizado. O método HTTP pode ser entendido como um comando a ser realizado pelo servidor. Os métodos mais comuns são:

  • GET: obtém um documento.
  • POST: envia algum conteúdo e obtém como resposta um documento.
  • HEAD: obtém informações sobre um documento.

O campo URI (Uniform Resource Indicator) identifica o documento que o servidor deve acessar. Ele se aparenta com um caminho de arquivo (pathname), porém possui algumas extensões para poder enviar informação adicional.

Os cabeçalhos servem para complementar o pedido, informando ao servidor mais detalhes sobre o que está sendo requisitado. Por fim, o corpo da mensagem é opcional, podendo conter dados a serem enviados ao servidor quando necessário.

Tendo entendido os componentes de um pedido HTTP, segue abaixo um exemplo de uma requisição real (note que ela não possui corpo de mensagem):

GET /wiki/ HTTP/1.1
Host: wiki.sj.ifsc.edu.br
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:20.0) Gecko/20100101 Firefox/20.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: pt-BR,pt;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Cookie: wiki2010UserID=614; wiki2010UserName=Msobral; wiki2010Token=4ed97239498a2fc74596b0f0a62331b5; wiki2010_session=f4e6b1hl4ctlkbpe5gc5gkosi4
Connection: keep-alive
If-Modified-Since: Mon, 20 May 2013 00:38:20 GMT

Mensagens de resposta HTTP

Mensagens HTTP de resposta possuem a seguinte estrutura:

HTTP/versão_do_protocolo status info 
Cabeçalho1: valor do cabeçalho1
Cabeçalho2: valor do cabeçalho2
Cabeçalho3: valor do cabeçalho3
CabeçalhoN: valor do cabeçalhoN

corpo da mensagem

A linha inicial informa o resultado do atendimento do pedido (se teve sucesso ou não), contendo um código numérico de status seguido de uma breve descrição. Os códigos numéricos e info mais comuns são:

  • 200 OK: pedido atendido com sucesso.
  • 302 Moved Temporarily: o pedido pode ser atendido em outra URL.
  • 401 Authorization Required: acesso negado, pois exige-se autenticação.
  • 403 Forbidden: acesso negado em definitivo.
  • 404 Not Found: documento não encontrado.

Após a linha inicial há os cabeçalhos, usados da mesma forma que em pedidos HTTP. Por fim, pode haver o corpo da mensagem (opcional). Um exemplo de mensagem de resposta segue abaixo:

HTTP/1.1 200 OK
Date: Thu, 23 May 2013 20:43:31 GMT
Server: Apache
Last-Modified: Fri, 10 May 2013 14:09:58 GMT
ETag: "757236-40-4dc5db8df272a"
Accept-Ranges: bytes
Content-Length: 64
Vary: Accept-Encoding
Connection: close
Content-Type: text/plain; charset=UTF-8

Este é um pequeno arquivo de teste, sem informação útil ...


Exemplos

Captura de página somente HTML

Captura de página HTML com uma figura

Captura de página HTML com duas figuras

Atividades Práticas

Roteiro Wireshark + HTTP
Instalando um webserver básico

1. Instale o servidor WWW Apache 2.

  • Documentação [1]
sudo apt-get install apache2

2. Verifique a configuração do apache

  • Nos arquivo "/etc/apache2/apache2.conf" e "/etc/apache2/sites-enabled/000-default", interprete os valores das seguintes variáveis:
    • DocumentRoot - local onde ficam as páginas web
    • ErrorLog - registro de erros (ex.: página não encontrada)
    • CustomLog - registro padrão (ex.: acessos)

3. Crie uma página WEB no servidor instalado e acesse ela.

  • Crie a página web em DocumentRoot/minha_pagina.html, com o seguinte conteúdo:
<html>
  <head>
    <title>Página de teste...</title>
  </head>
  <body>
    <p>Página Teste!</p>
  </body>
</html>

4. Acesse as páginas instaladas nos computadores de seus colegas utilizando seus IPs

5. Instale o wireshark e capture os pacotes de comunicação HTTP, identificando as mensagens GET e suas respostas, como exposto acima.

sudo apt-get install wireshark