Mudanças entre as edições de "RCO1110233-2016-1"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
 
(19 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 25: Linha 25:
 
!scope="col"| Final
 
!scope="col"| Final
 
|-
 
|-
| 132003277-0 || '''D'''(C) || C || A || OK || C
+
| Andreza Garcia || 6,7 || 7,0 || 8,5 || OK || X
 
|-
 
|-
| 151000546-3 || 6,9 || 6,9 || 8,0 || OK || 7,0
+
| Vitor Pereira || 6,5 || 3,5 (4,0) || 3,5 (10,0) || NOK || X
 
|-
 
|-
| 151000952-3 || 8,9 || 10 || 8,6 || OK || 9,0
+
| Kleiton Figueiredo || 7,0 || 7,5 || 8,5 || OK || X
 
|-
 
|-
| 141002147-5 || '''D'''(C) || B || B || OK || B
+
| Giordano Duarte || 6,5 || 5,0 (4,0) || 3,5 (7,0) || NOK || X
 +
|-
 +
| Mike Domingues || 9,0 || 7,5 || 10,0 || OK || X
 +
|-
 +
| Márcio Lopes || 0,5 (1,0) || 5,5 (2,0) || 2,0 (1,0) || NOK || X
 +
|-
 +
| Higino da Silva Neto || 8,0 || 9,0 || 5,0 (10,0) || NOK || X
 +
|-
 +
| Felipe de Souza || 10,0 || 9,5 || 10,0 || OK || X
 
|}
 
|}
 
F: faltou<br />
 
F: faltou<br />
Linha 403: Linha 411:
 
** que informações foram usadas por cada protocolo.
 
** que informações foram usadas por cada protocolo.
  
==19/05/16: Avaliação 1 (sala 3)==
+
==19/05/16: Avaliação 1 (sala 03)==
 
* Conteúdo: Capítulo 1 e 2 (Kurose);
 
* Conteúdo: Capítulo 1 e 2 (Kurose);
 
* Listas e Atividades em laboratórios
 
* Listas e Atividades em laboratórios
  
==26/05/16: Camada de Aplicação==
+
* Duração: 19h - 20h:30m
* Feriado nacional (Corpus Christi)
+
 
 +
==26/05/16: Feriado nacional==
 +
* Feriado (Corpus Christi)
 +
 
 +
==02/06/16: Camada de Transporte==
 +
* Vista de prova - Avaliação Camada de Aplicação
 +
* Listas de exercícios 5 e 6
 +
 
 +
== Atividade em Laboratório (Redes II)==
 +
 
 +
<!-- Realizar experimentos para mostrar as características de uma comunicação com TCP. Nesse primeiro momento não se entra a fundo nos seus mecanismos, tampouco na estrutura de cabeçalho. Deve-se porém evidenciar seu comportamento quanto a:
 +
* Estabelecimento de conexão
 +
* Vazão dependente da capacidade disponível na rede
 +
* Compartilhamento de banda entre diversas streams TCP simultâneas
 +
* Tratamento de erros: o que acontece se segmentos TCP forem perdidos
 +
Um problema pode ser apresentado ao final, de forma que a turma tente resolvê-lo experimentalmente.
 +
-->
 +
 
 +
As atividades de hoje buscarão mostrar as características básicas de comunicações com protocolos de transporte.
 +
 
 +
=== Aplicações e protocolos de transporte ===
 +
 
 +
Faça uma rápida pesquisa e descubra que protocolos de transporte (e que ports) são usados por estas aplicações:
 +
* SSH
 +
* FTP
 +
* BitTorrent
 +
* emule
 +
* WINS
 +
* Compartilhamento de arquivos do Windows
 +
* Windows Terminal Service
 +
* NFS
 +
* Openvpn
 +
* RADIUS
 +
* DHCP
 +
* SNMP
 +
* NTP
 +
* LDAP
 +
* Mysql
 +
* Postgresql
 +
* Oracle RDBMS
 +
* Syslog
 +
* CUPS
 +
 
 +
Que protocolo de transporte predomina nesse conjunto ?
 +
 
 +
=== Tipos de protocolos de transporte: TCP x UDP ===
 +
 
 +
Nestes experimentos, serão evidenciadas diferenças entre os protocolos TCP e UDP.
 +
 
 +
==== Experimento 1 ====
 +
 
 +
Ambos protocolos de transporte podem ser usados por aplicações que precisem se comunicar. Porém cada um deles têm certas propriedades, então a escolha precisa ser feita dependendo do tipo de comunicação a ser feita pela aplicação. Por exemplo, o que aconteceria se um arquivo fosse transferido de um computador a outro com ambos protocolos ?
 +
 
 +
# Abra um terminal e execute o seguinte comando para fazer o download de um arquivo a ser usado no experimento: <syntaxhighlight lang=bash>
 +
wget http://tele.sj.ifsc.edu.br/~tisemp/RES/ubuntu.iso
 +
</syntaxhighlight>
 +
# Observe o tamanho do arquivo transferido ... ele deve ter exatamente 832569344 bytes (cerca de 832 MB). Você pode fazer isso com o comando ''ls -l ubuntu.iso'', ou executando o gerenciador de arquivos e visualizando as propriedades desse arquivo.
 +
# Escolha um colega para fazer o experimento, em que o arquivo será transferido de um computador para o outro.
 +
# A primeira transferência será feita usando o protocolo TCP da seguinte forma:
 +
#* No computador receptor execute: <syntaxhighlight lang=bash>
 +
nc -l 5555 > arquivo
 +
</syntaxhighlight>
 +
#* No computador transmissor execute (''X'' é o número do seu computador, visível em sua etiqueta): <syntaxhighlight lang=bash>
 +
time nc 192.168.1.X 5555 < ubuntu.iso
 +
</syntaxhighlight>
 +
#* Quando completar a transferência, verifique o tamanho do arquivo recebido. Ele é igual ao arquivo original? E quanto tempo levou para transmiti-lo ?
 +
# A segunda transferência será feita usando o protocolo UDP:
 +
#* No computador receptor faça o download [http://tele.sj.ifsc.edu.br/~tisemp/RES/receptor deste programa]. Em seguida acrescente a ele permissão de execução (''chmod +x receptor'').
 +
#* No computador receptor execute: <syntaxhighlight lang=bash>
 +
./receptor 5555 > arquivo
 +
</syntaxhighlight>
 +
#* No computador transmissor faça o download [http://tele.sj.ifsc.edu.br/~tisemp/RES/transmissor deste programa]. Em seguida acrescente a ele permissão de execução (''chmod +x transmissor'').
 +
#* No computador transmissor execute (''X'' é o número do seu computador, visível em sua etiqueta): <syntaxhighlight lang=bash>
 +
./transmissor 192.168.1.X 5555 < ubuntu.iso
 +
</syntaxhighlight>
 +
#* Quando completar a transferência, verifique o tamanho do arquivo recebido. Ele é igual ao arquivo original ? E quanto tempo levou para transmiti-lo ?
 +
# Compare as transferências feitas com TCP e UDP. O que eles têm em comum ? Que diferenças lhe pareceram mais pronunciadas ? Como isso deve afetar as aplicações que usam esses protocolos ?
 +
 
 +
==== Experimento 2 ====
 +
 
 +
Transferências usando cada um desses protocolos podem apresentar características bem distintas. Neste segundo experimento, serão feitas transferências simultâneas de arquivos a partir de um mesmo servidor, comparando-se o resultado obtido com TCP e UDP. Essas transferência ocorrerão entre os computadores do laboratório e um servidor externo ao laboratório, como mostrado na figura abaixo:
 +
 
 +
[[imagem:Res-Exp2-transporte.png]]
 +
 
 +
# Abra um terminal em seu computador, e nele execute este comando: <syntaxhighlight lang=bash>
 +
wget http://tele.sj.ifsc.edu.br/~tisemp/RES/ubuntu.iso
 +
</syntaxhighlight>
 +
# Observe a taxa de transferência (velocidade do download) obtida. Que valores ela apresenta ?  Quanto tempo levou para o arquivo ser transferido ?
 +
# Após todos terem copiado o arquivo, o professor irá se logar em um dos computadores do laboratório e repetir a transferência. Porém desta vez ele irá fazê-la sozinho. Que taxas ele obteve, e quanto tempo levou ?
 +
# O professor irá repetir a transferência novamente, mas desta vez ele irá pedir que um aluno também a inicie logo em seguida. Qual foi a taxa obtida por ambos ?
 +
# Finalmente, o professor irá repetir a transferência porém com mais dois alunos fazendo-a ao mesmo tempo. Que se pode concluir quanto a taxa de transferência obtida ?
 +
# Para poder fazer uma comparação, as transferências serão feitas novamente porém usando UDP como protocolo de transporte. Para isso siga estes passos:
 +
## Abra dois terminais. Em um deles execute este comando: <syntaxhighlight lang=bash>
 +
watch -n 1 ls -l arquivo
 +
</syntaxhighlight> ... e no outro execute: <syntaxhighlight lang=bash>
 +
./receptor 5555 > arquivo
 +
</syntaxhighlight>
 +
## Como se comparam as transferências usando TCP e UDP ?
 +
 
 +
==09/06/16: Camada de Transporte (Laboratório Redes II)==
 +
* Protocolos Dutados: Volta-N e Retransmissão Seletiva
 +
* Controle de Fluxo, congestionamento;
 +
* Resolução de Exercícios
 +
 
 +
==16/06/16: Avaliação 2 (sala 03)==
 +
* Avaliação Camada de Transporte
 +
** '''Duração: 19h - 20h:30m'''
 +
* Introdução a Camada de Rede
 +
* Resolução de Lista de Exercícios
 +
 
 +
==23/06/16: Camada de Rede==
 +
* Vista da Avaliação da Camada de Transporte (A2)
 +
* Endereçamento IP: Classful e Classless (CIDR)
 +
* Segmentação de Redes IP
 +
* Resolução de Exercícios
 +
 
 +
==30/06/16: Camada de Rede==
 +
*
 +
 
 +
==07/07/16: Camada de Rede==
 +
*
 +
 
 +
==14/07/16: Avaliação 3 (sala 03)==
 +
* Avaliação Camada de Rede
 +
 
 +
* '''Duração: 19h - 20h:30m'''
 +
 
 +
==21/07/16: Encerramento da disciplina==
 +
* Avaliações de recuperação da disciplina.
  
 
{{collapse bottom}}
 
{{collapse bottom}}

Edição atual tal como às 16h12min de 25 de julho de 2016

Semestre 2016-1 - Prof. Tiago Semprebom

2016-1 - Prof. Tiago Semprebom

TecTel: Redes de Computadores - 2016-1 - Prof. Tiago Semprebom

Professor

Professor: Tiago Semprebom
Email: tisemp@ifsc.edu.br
Atendimento paralelo: 5a feira 17:30h - 18:30 h (Lab. de Desenvolvimento de Tele)
Endereço web do grupo: http://groups.google.com/group/ifsc_res
Endereço de e-mail da disciplina: ifsc_res@googlegroups.com

IMPORTANTE: o direito de recuperar uma avaliação em que se faltou somente existe mediante justificativa reconhecida pela coordenação. Assim, deve-se protocolar a justificativa no prazo de 48 horas, contando da data e horário da avaliação, e aguardar o parecer da coordenação. O não cumprimento desse procedimento implica a impossibilidade de fazer a recuperação, e assim a reprovação na disciplina.

Plano de Ensino

Notas

Matrícula A1 A2 A3 Rel. Tec. Final
Andreza Garcia 6,7 7,0 8,5 OK X
Vitor Pereira 6,5 3,5 (4,0) 3,5 (10,0) NOK X
Kleiton Figueiredo 7,0 7,5 8,5 OK X
Giordano Duarte 6,5 5,0 (4,0) 3,5 (7,0) NOK X
Mike Domingues 9,0 7,5 10,0 OK X
Márcio Lopes 0,5 (1,0) 5,5 (2,0) 2,0 (1,0) NOK X
Higino da Silva Neto 8,0 9,0 5,0 (10,0) NOK X
Felipe de Souza 10,0 9,5 10,0 OK X

F: faltou
(X): conceito da recuperação
negrito: com direito a recuperação

Curiosidades

Internet-map.png
Uma representação artística das interligações na Internet

Materiais de aula

Slides

Listas de exercícios

Apostilas

Aulas

24/03/16: Apresentação da disciplina

  • Apresentação da disciplina, plano de aula, laboratórios e métodos de avaliação.
  • Revisão de conceitos do Projeto Integrador I
  • Introdução a Redes de Computadores [slides]

31/03/16: Introdução à Redes de Computadores

  • Serviço orientado à conexão (TCP).
  • Serviço não orientado à conexão (UDP).
  • Comutação de circuitos vs Comutação de pacotes.
  • FDMA e TDMA.
  • Resolução de exercícios (Lista 1)

07/04/16: Comutação por Circuitos, Comutação de Pacotes, Lab01: Ferramentas básicas de redes

  • Introdução a Redes de Computadores [slides]

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

21/04/16: Feriado Nacional (Tiradentes)

  • Data limite para entrega do relatório 2 (Lab. do dia 07/04/2016).

28/04/16: Camada de Aplicação

  • A camada de aplicação (ver estes [slides)
  • Lista de Exercícios: II e III

05/05/16: Camada de Aplicação

  • Camada de Aplicação (ver estes [slides])
  • Protocolos SMTP, IMAP, POP3, FTP e DNS.
  • Ver Capítulo 27 do livro Comunicação de Dados e Redes de Computadores, 4a ed., de Behrouz Forouzan.

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 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 usa-se um número chamado de porta. O número de porta 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 porta 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 ...

Atividade Prática

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)
      • No Apache o ErrorLog encontra-se em: /var/log/apache2/error.log
    • CustomLog - registro padrão (ex.: acessos)
      • No Apache o CustomLog encontra-se em: /var/log/apache2/access.log

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

  • 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

12/05/16: Camada de Aplicação

Experimento 1: Comunicação de dados

A comunicação dados pode ser entendida como troca de informação entre dois dispositivos através de algum meio de comunicação. A comunicação ocorre no âmbito de um sistema de telecomunicações, composto por equipamentos (hardware) e programas (softwares). Um sistema básico de comunicação de dados se constitui de cinco componentes:

Rede-intro-1.png

  1. A mensagem: a informação a ser transmitida. O conteúdo da mensagem, seja um texto, música, video, ou qualquer outro tipo de informação, é representada por conjuntos de bits (dígitos binários).
  2. Transmissor: dispositivo que transmite a mensagem.
  3. Receptor: dispositivo que recebe a mensagem.
  4. Meio de comunicação: caminho físico por onde viaja a mensagem do transmissor até o receptor.
  5. Protocolo: conjunto de regras que governa a comunicação de dados.

Neste experimento, vamos interagir com um servidor web e identificar esses cinco componentes.

  1. Usando um navegador, acesse os seguintes links:
  2. Vamos repetir o acesso aos links acima, porém sem usar o navegador. A ideia é que nós façamos o papel de navegador. Isso deve ser feito com os seguintes passos:
    • Abra um terminal de texto no Linux (menu Aplicativos->Acessórios->Terminal).
    • Execute este comando:
      telnet tele.sj.ifsc.edu.br 80
      
    • Após aparecer esta linha:
      Trying 200.135.37.75...
      Connected to integrado.sj.ifsc.edu.br.
      Escape character is '^]'.
      
      digite o seguinte:
      GET /~tisemp/RES/arquivo.txt HTTP/1.0
      
      e em seguida tecle ENTER duas vezes.
    • Agora execute o seguinte para acessar o outro link:
      telnet tele.sj.ifsc.edu.br 80
      
    • Após aparecer esta linha:
      Trying 200.135.37.75...
      Connected to integrado.sj.ifsc.edu.br.
      Escape character is '^]'.
      
      digite o seguinte:
      GET /~tisemp/RES/teste.html HTTP/1.0
      
      e em seguida tecle ENTER duas vezes.
    • Compare o resultado das execuções desses comandos com o que se viu no navegador. Qual a diferença em cada caso ?
    • Identifique os componentes do sistema de comunicação de dados nesse acesso direto.

Experimento 2: transmissão de mensagens de aplicação

Neste experimento, serão observadas as mensagens transmitidas entre um navegador e um servidor web, e com base nelas devem ser identificados:

  • os protocolos envolvidos e suas respectivas camadas dentro do modelo da Internet.
  • os encapsulamentos realizados por esses protocolos.
  • as informações que possibilitam identificar univocamente o navegador e o servidor web durante sua comunicação.
  1. Execute o wireshark em seu computador: abra um terminal em Aplicativos->Terminal e execute
    sudo wireshark
    
  2. Na tela do wireshark, ative a captura na interface de rede eth0 (ela está listada no lado esquerdo).
  3. Usando um navegador, acesse o link http://tele.sj.ifsc.edu.br/~tisemp/RES/arquivo.txt.
  4. Interrompa a captura no wireshark, clicando no menu Capture->Stop.
  5. Na tela do wireshark, escreva http na caixa de edição Filter, e em seguida clique em Apply.
  6. Selecione o primeiro pacote da lista. Em seguida, clique no menu Analyze->Follow TCP Stream. Uma tela se abrirá, e nela você poderá observar os dados transmitidos pelo navegador (em vermelho) e pelo servidor web (em azul). Esses são os dados da conversação ... todo o resto são informações de outros protocolos usadas para realizar a comunicação.
  7. Voltando à lista de pacotes mostrada pelo wireshark, observe a sequência de pacotes. Com base nela identifique:
    • os protocolos envolvidos
    • em que camada cada um deles atua
    • que informações mantidas nesses protocolos possibilitam identificar o navegador e o servidor web.
  8. Cada protocolo transmite e recebe pacotes com um determinado formato, composto por cabeçalho e dados carregados (payload). Identifique nos pacotes recebidos que partes correspondem a cabeçalho e dados carregados.
  9. DESAFIO: imagine que foram capturados pacotes em uma rede, em que se monitoram as comunicações de uma determinada pessoa sob investigação. O investigador deve analisar esses pacotes em busca de arquivos que tenham sido transmitidos. Os pacotes capturados foram salvos em um arquivo de captura do wireshark, o qual se encontra aqui:

    captura.log

    Para visualizar os pacotes, use o menu File->Open do wireshark. Verifique se existem arquivos transmitidos dentro desses pacotes, e, caso afirmativo, extraia-os e visualize seus conteúdos. Para cada arquivo encontrado, informe:
    • qual o protocolo de aplicação usado para transmiti-lo
    • que computador foi usado para acessá-los, e qual servidor foi acessado.

Experimento 3: pacotes que passeiam pela rede

Neste experimento, deve-se evidenciar a transmissão de pacotes desde o transmissor até o receptor, que pode estar em outra rede. Como já foi discutido, para que isso seja possível deve haver uma forma de transmitir esses pacotes para dispositivos intermediários na rede, que os encaminham para seus destinos. Quer dizer, os pacotes devem ser roteados até seu receptor.

  1. Execute o wireshark em seu computador, e ative a captura de pacotes.
  2. Usando um navegador, acesse esta página.
  3. Observe os pacotes transmitidos entre seu computador e o computador que atendeu seu pedido e respondeu com o conteúdo da página (isso é, o servidor web).
    • que informações identificam essa comunicação ?
    • quais os protocolos envolvidos ?
  4. O servidor web está fora da rede do laboratório. Assim, os pacotes precisaram ser encaminhados pelo computador do professor para a rede da escola (lembre que o computador do professor fica entre a rede do laboratório e a do Câmpus). Portanto, nesse computador deve ser possível visualizar seus pacotes sendo transmitidos em direção ao servidor, assim como a resposta do servidor. Observe esses pacotes no wireshark executado pelo professor.
    • as informações que identificam suas comunicações são as mesmas que as identificadas em seu próprio computador ?
  5. Acesse a página da UFSC. Enquanto isso, observe na tela do projetor do laboratório o wireshark no computador do professor capturando seus pacotes.
    • que informações identificam suas comunicações ?
  6. O servidor web da UFSC está em outra rede. Com certeza vários equipamentos intermediários precisarão ajudar para que os pacotes cheguem lá, e as respostas voltem para os seus computadores. Para saber por onde seus pacotes passam, use este comando:
    traceroute -n www.ufsc.br
    
    • que informação está sendo usada para encaminhar os pacotes até o servidor web da UFSC ?
    • que protocolo mantém e usa essa informação ?


Para pensar

  1. Para que o protocolo HTTP é usado atualmente além de acesso a documentos na web? Faça uma pesquisa sobre isso.
  2. Pesquise o significado dos cabeçalhos HTTP vistos nos acessos feitos na aula de hoje.

Considerações finais

Os experimentos realizados buscaram introduzir alguns mecanismos envolvidos na comunicação através de uma rede de computadores. Tais mecanismos são implementados por alguns protocolos, lembrando que um protocolo especifica o formato dos pacotes transmitidos e as regras de comunicação para intercâmbio desses pacotes. Durante os experimentos, teve-se contato com alguns protocolos importantes envolvidos em comunicações na Internet, assim como algumas das principais informações definidas e usadas por esses protocolos. A visualização da hierarquia em que operam esses protocolos buscou mostrar o modelo de camadas da Internet, que define como deve funcionar um sistema que se comunica nesse tipo de rede.

Para pensar:

  • Para cada experimento, desenhe um diagrama de rede que mostre os equipamentos envolvidos. Para cada equipamento, desenhe também o modelo de camadas da Internet. Por fim, mostre o fluxo dos pacotes através dessas camadas (desde o transmissor até o receptor), indicando:
    • que protocolo foi usado em cada camada.
    • que serviço cada protocolo realizou.
    • que informações foram usadas por cada protocolo.

19/05/16: Avaliação 1 (sala 03)

  • Conteúdo: Capítulo 1 e 2 (Kurose);
  • Listas e Atividades em laboratórios
  • Duração: 19h - 20h:30m

26/05/16: Feriado nacional

  • Feriado (Corpus Christi)

02/06/16: Camada de Transporte

  • Vista de prova - Avaliação Camada de Aplicação
  • Listas de exercícios 5 e 6

Atividade em Laboratório (Redes II)

As atividades de hoje buscarão mostrar as características básicas de comunicações com protocolos de transporte.

Aplicações e protocolos de transporte

Faça uma rápida pesquisa e descubra que protocolos de transporte (e que ports) são usados por estas aplicações:

  • SSH
  • FTP
  • BitTorrent
  • emule
  • WINS
  • Compartilhamento de arquivos do Windows
  • Windows Terminal Service
  • NFS
  • Openvpn
  • RADIUS
  • DHCP
  • SNMP
  • NTP
  • LDAP
  • Mysql
  • Postgresql
  • Oracle RDBMS
  • Syslog
  • CUPS

Que protocolo de transporte predomina nesse conjunto ?

Tipos de protocolos de transporte: TCP x UDP

Nestes experimentos, serão evidenciadas diferenças entre os protocolos TCP e UDP.

Experimento 1

Ambos protocolos de transporte podem ser usados por aplicações que precisem se comunicar. Porém cada um deles têm certas propriedades, então a escolha precisa ser feita dependendo do tipo de comunicação a ser feita pela aplicação. Por exemplo, o que aconteceria se um arquivo fosse transferido de um computador a outro com ambos protocolos ?

  1. Abra um terminal e execute o seguinte comando para fazer o download de um arquivo a ser usado no experimento:
    wget http://tele.sj.ifsc.edu.br/~tisemp/RES/ubuntu.iso
    
  2. Observe o tamanho do arquivo transferido ... ele deve ter exatamente 832569344 bytes (cerca de 832 MB). Você pode fazer isso com o comando ls -l ubuntu.iso, ou executando o gerenciador de arquivos e visualizando as propriedades desse arquivo.
  3. Escolha um colega para fazer o experimento, em que o arquivo será transferido de um computador para o outro.
  4. A primeira transferência será feita usando o protocolo TCP da seguinte forma:
    • No computador receptor execute:
      nc -l 5555 > arquivo
      
    • No computador transmissor execute (X é o número do seu computador, visível em sua etiqueta):
      time nc 192.168.1.X 5555 < ubuntu.iso
      
    • Quando completar a transferência, verifique o tamanho do arquivo recebido. Ele é igual ao arquivo original? E quanto tempo levou para transmiti-lo ?
  5. A segunda transferência será feita usando o protocolo UDP:
    • No computador receptor faça o download deste programa. Em seguida acrescente a ele permissão de execução (chmod +x receptor).
    • No computador receptor execute:
      ./receptor 5555 > arquivo
      
    • No computador transmissor faça o download deste programa. Em seguida acrescente a ele permissão de execução (chmod +x transmissor).
    • No computador transmissor execute (X é o número do seu computador, visível em sua etiqueta):
      ./transmissor 192.168.1.X 5555 < ubuntu.iso
      
    • Quando completar a transferência, verifique o tamanho do arquivo recebido. Ele é igual ao arquivo original ? E quanto tempo levou para transmiti-lo ?
  6. Compare as transferências feitas com TCP e UDP. O que eles têm em comum ? Que diferenças lhe pareceram mais pronunciadas ? Como isso deve afetar as aplicações que usam esses protocolos ?

Experimento 2

Transferências usando cada um desses protocolos podem apresentar características bem distintas. Neste segundo experimento, serão feitas transferências simultâneas de arquivos a partir de um mesmo servidor, comparando-se o resultado obtido com TCP e UDP. Essas transferência ocorrerão entre os computadores do laboratório e um servidor externo ao laboratório, como mostrado na figura abaixo:

Res-Exp2-transporte.png

  1. Abra um terminal em seu computador, e nele execute este comando:
    wget http://tele.sj.ifsc.edu.br/~tisemp/RES/ubuntu.iso
    
  2. Observe a taxa de transferência (velocidade do download) obtida. Que valores ela apresenta ? Quanto tempo levou para o arquivo ser transferido ?
  3. Após todos terem copiado o arquivo, o professor irá se logar em um dos computadores do laboratório e repetir a transferência. Porém desta vez ele irá fazê-la sozinho. Que taxas ele obteve, e quanto tempo levou ?
  4. O professor irá repetir a transferência novamente, mas desta vez ele irá pedir que um aluno também a inicie logo em seguida. Qual foi a taxa obtida por ambos ?
  5. Finalmente, o professor irá repetir a transferência porém com mais dois alunos fazendo-a ao mesmo tempo. Que se pode concluir quanto a taxa de transferência obtida ?
  6. Para poder fazer uma comparação, as transferências serão feitas novamente porém usando UDP como protocolo de transporte. Para isso siga estes passos:
    1. Abra dois terminais. Em um deles execute este comando:
      watch -n 1 ls -l arquivo
      
      ... e no outro execute:
      ./receptor 5555 > arquivo
      
    2. Como se comparam as transferências usando TCP e UDP ?

09/06/16: Camada de Transporte (Laboratório Redes II)

  • Protocolos Dutados: Volta-N e Retransmissão Seletiva
  • Controle de Fluxo, congestionamento;
  • Resolução de Exercícios

16/06/16: Avaliação 2 (sala 03)

  • Avaliação Camada de Transporte
    • Duração: 19h - 20h:30m
  • Introdução a Camada de Rede
  • Resolução de Lista de Exercícios

23/06/16: Camada de Rede

  • Vista da Avaliação da Camada de Transporte (A2)
  • Endereçamento IP: Classful e Classless (CIDR)
  • Segmentação de Redes IP
  • Resolução de Exercícios

30/06/16: Camada de Rede

07/07/16: Camada de Rede

14/07/16: Avaliação 3 (sala 03)

  • Avaliação Camada de Rede
  • Duração: 19h - 20h:30m

21/07/16: Encerramento da disciplina

  • Avaliações de recuperação da disciplina.