Predefinição:RCO 1110232 2020-2

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar

Professor

Professor: Eraldo Silveira e Silva
Email: eraldo@ifsc.edu.br
Atendimento paralelo: a definir

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

Atenção: ver forma de avaliação no SIGAA

Objetivos e Conhecimentos conforme PPC

Objetivos (1) Caracterizar e classificar as redes de computadores. (2) Utilizar e configurar aplicações cliente e aplicativos de rede da Internet, identificando as funcionalidades dos protocolos utilizados. (3) Identificar as funcionalidades e a abrangência dos protocolos da arquitetura Internet (TCP/IP). (4) Planejar e configurar redes e sub-redes IP;

Conhecimentos (1) Componentes de uma rede de computadores: aplicações, hosts, roteadores, enlaces; (2) Comutação de pacotes; (3) Aplicações de rede: Web, DNS, FTP, SSH; (4) Protocolos de transporte e portas utilizadas pelas aplicações. (5) Endereçamento de redes IP e sub-redes; (6) Roteamento estático de redes IP;

Apostilas

ATENÇÂO: Estamos em fase de atualização desta apostila.

Proposta de Cronograma de Semanas/Aulas

9/11/20: Aula Inicial

Objetivos

  • Recepção: Apresentação da disciplina, plano de aula, laboratórios e métodos de avaliação.
  • Parte Teórica: Introdução a Redes de Computadores [slides]
    • Um exemplo de Rede ou de rede de Redes: a Internet
  • Parte Prática: Laboratório 0 (preparação da Máquina Virtual com o Simulador de Rede Imunes)

Laboratório 0

Laboratório 0: Instalação de VirtualBox e do Imunes'
  • Para realizar os roteiros em casa deve-se utilizar o VirtualBox e uma máquina virtual pré-configurada com todo o ferramental necessário:
    1. Baixe e instale o VirtualBox;
    2. Baixe a máquina virtual e salve em um diretório qualquer de sua máquina;
    3. Acesse o diretório onde salvou o arquivo Redes.ova e dê duplo clique sobre o mesmo;
    4. Irá abrir um janela do VirtualBox com a opção de Importar Appliance Virtual, deixe todas as opções padrão e clique em Importar;
    5. Irá abrir outra janela do VirtualBox: Importando Appliance...;
    6. Ao terminar sua máquina virtual estará pronta para uso. Usuário: aluno, senha: aluno.

16/11/20: Aula Inicial

Objetivos

25/11/20: Conceitos Básicos de Redes

Objetivos

Objetivos

Geral:Caracterizar e classificar as redes de computadores.

  • Conceito de rede de computadores (revisão)
  • A Internet como exemplo: visão geral (revisão)
  • Comutação de Circuitos X Pacotes
  • Componentes de uma rede de pacotes: computadores, roteadores, switches.
  • Redes LAN, WAN e MAN
  • Enlaces e topologias
  • Redes de Comutação de Pacotes: quadros,pacote, endereçamento MACxIP
  • Taxa de Transmissão, Vazão, Bandwidth e Retardo

Ver tarefa e apostila no SIGAA

AULA 2/11/20

Objetivos

Após este laboratório o aluno deverá ser capaz de:

  • Verificar a configuração de interfaces de rede de um hospedeiro usando a ferramenta ifconfig, identificando:
  • O endereço de hardware da interface (endereço MAC);
  • O endereço IPv4 e IPv6 da Interface com as suas máscaras de rede;
  • Testar a conectividade entre dois hospedeiros usando a ferramenta ping e ganhar insight em relação aos atrasos na rede;
  • Observar a rota de pacotes IP entre dois hospedeiros usando a ferramenta traceroute;
  • Capturar pacotes de uma interface usando a ferramenta wireshark.

Ferramentas de Apoio

  • ifconfig
  • Ping
  • traceroute
  • wireshark (se der tempo)

Link Laboratório 1

https://wiki.sj.ifsc.edu.br/index.php/Professores:RoteirosLabsANP

LabsRedesSubs

Outros

https://www.rapidtables.com/convert/number/ascii-to-binary.html


AULA 16/12/20

Objetivos

Objetivos

Após este laboratório o aluno deverá ser capaz de:

  • utilizar a ferramenta wireshark para captura de pacote:
    • funções básicas de filtragem na captura e no display;
    • verificação de estruturas de pacotes;
  • consolidar o conceito de protocolo e de camadas de protocolos através da análise de troca de pacotes com ping e traceroute usando:
    • as janelas com detalhes dos pacotes e encapsulamentos;
    • a opção de flow graph para visualizar as trocas de mensagens.
Laboratório 2 - Wireshark e encapsulamento

Laboratório 2

Objetivos

Após este laboratório o aluno deverá ser capaz de:

  • utilizar a ferramenta wireshark para captura de pacote:
    • funções básicas de filtragem na captura e no display;
    • verificação de estruturas de pacotes;
  • consolidar o conceito de protocolo e de camadas de protocolos através da análise de troca de pacotes com ping e traceroute usando:
    • as janelas com detalhes dos pacotes e encapsulamentos;
    • a opção de flow graph para visualizar as trocas de mensagens.

Sobre o analisador Wireshark

O analisador de pacotes exibe os conteúdos de todos os campos dentro de uma mensagem de protocolo. Para que isso seja feito, o analisador de pacotes deve “entender” a estrutura de todas as mensagens trocadas pelos protocolos.

Suponha que estamos interessados em mostrar os vários campos nas mensagens trocadas pelo protocolo HTTP na Figura 5. O analisador de pacotes entende o formato dos quadros Ethernet, e desta forma pode identificar o datagrama IP dentro de um quadro. Ele também entende o formato do datagrama IP, para que ele possa extrair o segmento TCP dentro do datagrama IP. Ele entende a estrutura do segmento TCP, para que possa extrair a mensagem HTTP contida no segmento. Finalmente, ele entende o protocolo HTTP e então, por exemplo, sabe que os primeiros bytes de uma mensagem HTTP contém a cadeia “GET”, “POST” ou “HEAD”.

Nós utilizaremos o sniffer Wireshark (http://www.wireshark.org) para estes laboratórios, o que nos permite exibir os conteúdos das mensagens sendo enviadas/recebidas de/por protocolos em diferentes camadas da pilha de protocolos. Tecnicamente falando, Wireshark é um analisador de pacotes que pode ser executado em computadores com Windows, Linux/UNIX e MAC.

É um analisador de pacotes ideal para nossos laboratórios, pois é estável, tem uma grande base de usuários e é bem documentado incluindo um guia de usuário (http://www.wireshark.org/docs/wsug_html/), páginas de manual (http://www.wireshark.org/docs/man-pages/), e uma seção de FAQ detalhada (http://www.wireshark.org/faq.html), funcionalidade rica que inclui a capacidade de analisar mais que 500 protocolos, e uma interface com o usuário bem projetada. Ele funciona em computadores ligados a uma Ethernet para conectar-se à Internet, bem como protocolos ponto a ponto, tal como PPP.

OBS: Se o wireshark estiver instalado em sua máquina, para chamá-lo a partir de um terminal deve fazer:

 sudo wireshark

ETAPA 1: Identificando os campos da interface do Wireshark

Quando você executar o programa Wireshark, a interface com o usuário exibida na Figura abaixo aparecerá. Inicialmente, nenhum dado será apresentado nas janelas. A interface do Wireshark tem seis componentes principais:

  1. Os menus de comandos são localizados no topo da janela. Por enquanto, interessam apenas os menus File e Capture. O menu File permite salvar dados de capturas de pacotes ou abrir um arquivo contendo dados de capturas de pacotes previamente realizadas, e sair da aplicação. O menu Capture permite iniciar uma captura de pacotes;
  2. A barra de ferramentas contém os comandos de menu que são mais frequentemente utilizados. Há atalhos para abrir ou salvar dados de captura de pacotes e para iniciar ou parar uma captura de pacotes;
  3. Abaixo da barra de ferramentas, está o campo de filtragem de pacotes exibidos. Nele podem ser digitados nome de protocolo ou outra informação apresentada na janela de listagem de pacotes. Apenas os pacotes que correspondem ao filtro são exibidos;
  4. A janela de listagem de pacotes apresenta um resumo de uma linha para cada pacote capturado, incluindo o número do pacote (atribuído pelo Wireshark; este não é o número do pacote contido no cabeçalho de qualquer protocolo), o tempo que o pacote foi capturado, os endereços fonte e destino do pacote, o tipo de protocolo, e informação específica do protocolo contida no pacote. A lista de pacotes pode ser ordenada conforme qualquer uma destas categorias clicando no nome de uma coluna correspondente. O campo tipo do protocolo lista o protocolo de mais alto nível que enviou ou recebeu este pacote, i.e., o protocolo que é a fonte ou o último sorvedouro para este pacote;
  5. A janela de detalhes de cabeçalho de pacotes fornece detalhes sobre o pacote selecionado na janela de listagem de pacotes. Para selecionar um pacote, basta clicar sobre ele com o botão esquerdo do mouse na janela de listagem de pacotes. Os detalhes apresentados incluem informações sobre o quadro Ethernet e o datagrama IP que contém o pacote. A quantidade de detalhes exibida pode ser expandida ou contraída. Se o pacote foi carregado sobre TCP ou UDP, detalhes correspondentes também são apresentados, os quais também podem ser contraídos ou expandidos. Finalmente, detalhes sobre o protocolo de mais alto nível que enviou ou recebeu este pacote também são apresentados;
  6. A janela de conteúdo de pacotes mostra o conteúdo inteiro do quadro capturado, nos formatos ASCII e hexadecimal.

Figura 3 - Interface com o usuário do Wireshark

ETAPA 2 - Verificando pacotes do ping (ICMP REQUEST/REPLY))

  1. Inicie o navegador web;
  2. Inicie o Wireshark. Inicialmente as janelas estarão vazias, pois não há captura de pacotes em progresso;
  3. Para iniciar uma captura de pacotes, selecione o menu Capture e depois Interfaces. Provavelmente sua interface de rede será a eth0.
  4. Isso faz com que a janela de interfaces de rede disponíveis seja apresentada (Figura 4);
    Figura 4 - Interfaces de rede no Wireshark
  5. O botão Start da interface eth0 deve ser selecionado. Na Figura 4, no Wireshark foi selecionada a interface wlan;
  6. Como nada está acontecendo na rede, a janela apresenta o conteúdo vazio;
  7. Execute um comando ping (endereço na saída da nossa rede - ver aula anterior):
      ping 200.237.201.153
    
  8. Ao voltar para a janela do Wireshark, houve a captura de todos os pacotes envolvidos no process;
  9. Antes de continuar, vamos parar a captura de pacotes e trabalhar com o que temos. Basta clicar em Capture e depois em Stop;
  10. Para testar as capacidades de filtragem, vamos inserir a cadeia “icmp” (sem as aspas e em minúsculo) no especificação do filtro de exibição e depois selecionar Apply (ou Aplicar). Observe que somente os pacotes envolvidos no ping estão sendo mostrados. Os resultados obtidos devem ser similar a tela mostrada na Figura 5.
  11. Selecione a primeira mensagem ECHO REQUEST: as informações dos cabeçalhos do quadro Ethernet, do datagrama IP, do pacote ICMP aparecem na janela de cabeçalhos de pacotes. É possível ver os detalhes, expandido ou comprimindo os itens com um clique na seta ao lado deles.
  12. Selecione uma mensagem ECHO REPLY. Analise o pacote: endereço fonte, endereço destino etc;
  13. Saia do Wireshark.

Figura 5 - Tela Wireshark - Ping

Etapa 3

ATENÇÃO: ESTA ESTA DEVERÁ SER ENTREGUE NA FORMA DE TAREFA. VER SIGAA.

  1. Com Wireshark ativo (Abra-o novamente) e em modo captura, faça um "ping" para um site conhecido (você pode usar o nome: www.ifsc.edu.br por exemplo).
    1. Aplique um filtro icmp no display. Recorte a tela observada e indique os pacotes ICMP ECHO REQUEST. Discuta quem são os endereços IP e MAC que aparecem no pacote IP e Frame Ethernet.
    2. Aplique um comando Flow Graph e mostre a troca de mensagens do ping através de um recorte da tela;
    3. Encerre e execute novamente o wireshark. Através do menu captura crie um filtro para captura de pacotes icmp que SOMENTE saem da sua máquina (ver ip.src). Faça um recorte das telas de criação do filtro (mostrando o filtro).
    4. Faça uma captura usando o filtro, recorte a tela e mostre os resultados.
  2. Faça uma captura de sua escolha usando de forma combinada filtros de captura e de display. Por exemplo, mostre somente pacotes originados e/ou destinados a um determinado host (ip.addr == 192.168..., ip.src, ip.dst).


AULA 23/12/20

Objetivos

  • Finalização do Laboratório de Wireshark
  • Avaliação (?)

AULA 3/2/2021

LINK PARA AULA SÍNCRONA

https://conferenciaweb.rnp.br/webconf/redes-de-computadores-tecnico-subsequente-em-telecomunicacoes

LINK PARA SLIDES

OBJETIVOS

ESTUDO DA CAMADA DE APLICAÇÂO

  • Conceito de Protocolo de Aplicação
  • Modelo Cliente Servidor
  • Introdução ao Protocolo HTTP
    • Formato e Comandos
    • Conexões Persistentes e Não persistentes


DESENVOLVIMENTO DA AULA

  • Apresentação de Slides (40 minutos) - Link SIGA A
  • Exemplos Wiki (15 minutos)
  • Proposição de Questionário
  • Discussão das Respostas do Questionário

Exemplos

Exemplo 1

Acessando e vendo uma página html no browser

  1. Acessar com o browser a URL http://tele.sj.ifsc.edu.br/~odilson/RED29004/RED29004.html
  2. Ver código fonte.
  3. Capturar pacotes e verificar captura.
  4. Acessar com telnet: telnet -4 tele.sj.ifsc.edu.br 80 GET /~odilson/RED29004//RED29004.html HTTP/1.0
  5. Acessar com telnet: telnet -4 tele.sj.ifsc.edu.br 80 GET /~odilson/RED29004//RED29004.html HTTP/1.1

Exemplo 2

Repetir os passos do exemplo http://tele.sj.ifsc.edu.br/~odilson/RED29004/RED29004_arq3.html

AULA 10/2/2021

LINK PARA AULA SÍNCRONA

https://conferenciaweb.rnp.br/webconf/redes-de-computadores-tecnico-subsequente-em-telecomunicacoes

LINK PARA SLIDES

Laboratório de HTPP Básico

ATENÇÃO: A execução deste laboratório deve ser reportada em um documento a ser postado no SIGAA. Para cada item faça um recorte da tela e comente o que foi feito.

Parte 1 - Observando o significado de um código/página HTML
  1. Edite em um editor de texto comum um código html (siga o exemplo a seguir mas faça diferente) e salve o arquivo como teste.html:
     <html><body><h1>REDES DE COMPUTADORES</h1>
     <p>Alo IFSC!</p>
     </body></html>
    
  2. Abra o arquivo usando o browser. Clicando sobre ele provavelmente já será mostrado.
  3. DESAFIO: Pesquise e coloque na página acima um link que ao ser clicado leva ao site: http://sj.ifsc.edu.br
Parte 2 - Funcionamento Básico do Comando GET no HTTP

Nesta etapa será realizado um acesso básico a uma página que está no IFSC SJ.

  1. Usando o browser (preferencialmente o firefox), acesse a URL: http://tele.sj.ifsc.edu.br/~odilson/RED29004/RED29004.html
  2. Acesse a direita, o menu no Firefox os 3 pontos e abra Desenvolvimento Web -> Console Web. Desabilite o cache e faça um refresh com F5.
  3. Recorte os comandos/respostas envolvidos no acesso a página e monte um diagrama de troca de mensagens indicando as mensagens envolvidas e as partes envolvidas. Faça um texto explicativo.
Parte 3 - Funcionamento Básico do Comando GET no HTTP - Página com múltiplos links

Nesta etapa será realizado um acesso básico a uma página que está no IFSC SJ.

  1. Usando o browser (preferencialmente o firefox), acesse a URL: http://tele.sj.ifsc.edu.br/~odilson/RED29004/RED29004_arq4.html
  2. Acesse a direita, o menu no Firefox os 3 pontos e abra Desenvolvimento Web -> Console Web. Desabilite o cache e faça um refresh com F5.
  3. Recorte os comandos/respostas envolvidos no acesso a página e monte um diagrama de troca de mensagens indicando as mensagens envolvidas e as partes envolvidas. Faça um texto explicativo sobre a sequência de acontecimentos e os principais campos envolvidos nos comandos/resposta.

AULA 17/2/2021

LINK PARA AULA SÍNCRONA

https://conferenciaweb.rnp.br/webconf/redes-de-computadores-tecnico-subsequente-em-telecomunicacoes

LINK PARA SLIDES

Ver siga

Exercícios em Aula

Estes exercícios serão executados pelo professor e poderão ser reproduzidos pelos alunos após a aula. O aluno deverá consultar a gravação da aula.

  1. Executar um comando:
      ping www.ifsc.edu.br
    

    e usando um analisador de pacotes verificar os pacotes DNS e ICMP gerados.

  2. Limpar o cache DNS com:
      sudo systemd-resolve --flush-caches
    
  3. Gerar uma resuisição DNS manualmente:
     host -t A  www.ifsc.edu.br
    

    Este comando pode ser acompanhado da captura de pacotes para verificar o acesso DNS.


AULA DIA 3/3/2021

Objetivos

Após esta o aluno deverá ser capaz de:

  • explicar o papel dos protocolos de transporte na arquitetura TCP/IP;
  • entender o papel das portas nos protocolos de transporte;
  • diferenciar os protocolos UDPs e TCPs;
  • descrever a estrutura pacote UDP e as principais características do UDP;
  • entender porque o TCP é orientado a conexão e descrever as principais características do TCP;
  • descrever a estrutura do pacote (segmento)TCP
  • usar o netcat para realizar testes de conexão/envio de dados em portas.

LINK PARA AULA SÍNCRONA

https://conferenciaweb.rnp.br/webconf/redes-de-computadores-tecnico-subsequente-em-telecomunicacoes

LINK PARA SLIDES

LABORATÓRIO BÁSICO UDP e TCP

  • Familiarizar-se com o UDP
  • Entender a estrutura do pacote UDP
  • Entender o conceito de portas
  • Entender o conceito de multiplexação

Fonte Base

Parte 1 - Fluxo único UDP

  1. O professor executará o programa netcat para escutar em uma porta UDP na máquina da CLOUD IFSC da seguinte forma.
    netcat -u 191.36.8.58 PORTA
  2. O aluno enviará uma mensagem UDP para a porta que o professor indicar. netcat -u IP_DEST PORTA
  3. O professor vai capturar pacotes pelo wireshark. O aluno deve recortar a tela para fazer um mini-relatório. Cada aluno recorta a tela das suas comunicações.
  4. Identifique e anote os seguintes dados na captura do wireshark:
      • IP FONTE e DESTINO (discuta quem são estes endereços)
      • PORTAS FONTE E DESTINO para ambas comunicações
      • Campo de protocolo no pacote IP
      • Campo de tamanho (anote o tamanho) e checksum no pacote (datagrama) UDP
      • O campo de dados no pacote UDP
  5. Foi identificado algum procedimento para conexão em nível de transporte?

Parte 2 - Fluxo único TCP

  1. O professor executará o programa netcat para escutar em uma porta UDP na máquina da CLOUD IFSC da seguinte forma.
    netcat 191.36.8.58 PORTA
  2. O aluno enviará uma mensagem UDP para a porta que o professor indicar. netcat IP_DEST PORTA
  3. O professor vai capturar pacotes pelo wireshark. O aluno deve recortar a tela para fazer um mini-relatório. Cada aluno recorta a tela das suas comunicações.
  4. Identifique e anote os seguintes dados na captura do wireshark:
      • IP FONTE e DESTINO (discuta quem são estes endereços)
      • PORTAS FONTE E DESTINO para ambas comunicações
      • Campo de protocolo no pacote IP
      • Campo de tamanho (anote o tamanho) e checksum no pacote (datagrama) UDP
      • O campo de dados no pacote UDP
  5. Foi identificado algum procedimento para conexão em nível de transporte?
  6. Identifique as mensagens associadas a conexão (mostre o recorte da tela).
  7. Identifique as mensagens associadas a transmissão dos dados.

Objetivos

  • Verificar o comportamento básico do Protocolo TCP:
    • Fase de Estabelecimento de Conexão
    • Troca de Dados
    • Finalização da Conexão

Fonte Base










 Use a nice truetype font and size by default... 
xterm*faceName: DejaVu Sans Mono Book
xterm*faceSize: 11

! Every shell is a login shell by default (for inclusion of all necessary environment variables)
xterm*loginshell: true

! I like a LOT of scrollback...
xterm*savelines: 16384

! double-click to select whole URLs :D
xterm*charClass: 33:48,36-47:48,58-59:48,61:48,63-64:48,95:48,126:48

! DOS-box colours...
xterm*foreground: rgb:a8/a8/a8
xterm*background: rgb:00/00/00
xterm*color0: rgb:00/00/00
xterm*color1: rgb:a8/00/00
xterm*color2: rgb:00/a8/00
xterm*color3: rgb:a8/54/00
xterm*color4: rgb:00/00/a8
xterm*color5: rgb:a8/00/a8
xterm*color6: rgb:00/a8/a8
xterm*color7: rgb:a8/a8/a8
xterm*color8: rgb:54/54/54
xterm*color9: rgb:fc/54/54
xterm*color10: rgb:54/fc/54
xterm*color11: rgb:fc/fc/54
xterm*color12: rgb:54/54/fc
xterm*color13: rgb:fc/54/fc
xterm*color14: rgb:54/fc/fc
xterm*color15: rgb:fc/fc/fc

! right hand side scrollbar...
xterm*rightScrollBar: true
xterm*ScrollBar: true

! stop output to terminal from jumping down to bottom of scroll again
xterm*scrollTtyOutput: false