Predefinição:RCO 1110232 2020-2
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' |
---|
|
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
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 2ObjetivosApós este laboratório o aluno deverá ser capaz de:
Sobre o analisador WiresharkO 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 WiresharkQuando 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:
ETAPA 2 - Verificando pacotes do ping (ICMP REQUEST/REPLY))
Etapa 3ATENÇÃO: ESTA ESTA DEVERÁ SER ENTREGUE NA FORMA DE TAREFA. VER SIGAA.
|
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
- Acessar com o browser a URL http://tele.sj.ifsc.edu.br/~odilson/RED29004/RED29004.html Ver código fonte.
- Capturar pacotes e verificar captura.
- Acessar com telnet: telnet -4 tele.sj.ifsc.edu.br 80 GET /~odilson/RED29004//RED29004.html HTTP/1.0
- 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
- 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>
- Abra o arquivo usando o browser. Clicando sobre ele provavelmente já será mostrado.
- 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.
- Usando o browser (preferencialmente o firefox), acesse a URL: http://tele.sj.ifsc.edu.br/~odilson/RED29004/RED29004.html
- 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.
- 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.
- Usando o browser (preferencialmente o firefox), acesse a URL: http://tele.sj.ifsc.edu.br/~odilson/RED29004/RED29004_arq4.html
- 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.
- 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.
- Executar um comando:
ping www.ifsc.edu.br
e usando um analisador de pacotes verificar os pacotes DNS e ICMP gerados.
- Limpar o cache DNS com:
sudo systemd-resolve --flush-caches
- 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
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
-
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
- O aluno enviará uma mensagem UDP para a porta que o professor indicar. netcat -u IP_DEST PORTA
- 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.
- 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
- Foi identificado algum procedimento para conexão em nível de transporte?
Parte 2 - Fluxo único TCP
-
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
- O aluno enviará uma mensagem UDP para a porta que o professor indicar. netcat IP_DEST PORTA
- 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.
- 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
- Foi identificado algum procedimento para conexão em nível de transporte?
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
Configuração do Laboratório
O netkit2 deve ser atualizado manualmente com este procedimento:
- Abrir um terminal
- Baixar o programa do Netkit2 com o comando:
wget http://tele.sj.ifsc.edu.br/~msobral/netkit2/bin/netkit2
- Copiá-lo para o diretório do Netkit2 com o comando:
cp netkit2 ${NETKIT2_HOME}/bin/
O roteiro será executado sobre 3 máquinas virtuais, através do uso do Netkit2. Copie o texto abaixo no Gedit e salve com o nome /home/aluno/TCP.conf.
PC1[type]=generic
PC2[type]=generic
PC3[type]=generic
PC1[eth0]=lan0:ip=10.0.0.1/24
PC2[eth0]=lan0:ip=10.0.0.2/24
PC3[eth0]=lan0:ip=10.0.0.3/24
Verificando o estabelecimento, troca de dados e finalização da conexão
- Executar a configuração do laboratório no Netkit. Abra o NetKit2 e abra o arquivo de configuração:
File > Load and Run
- Perceba que abrirá uma janela com três abas inferiores, representando três máquina virtuais criadas pelo Netkit, denominadas: PC1, PC2 e PC3. Cada uma dessas abas é o terminal de configuração da respectiva máquina virtual.
- Executar no PC2 um servidor TCP aguardando na porta 5555 na forma:
netcat -l 5555
- Obs.: para copiar texto para as máquinas do NetKit, pode-se copiar normalmente o texto e em seguida, no terminal do NetKit apropriado, clique na "rodinha" do mouse.
- Em uma comunicação TCP um processo é servidor (aguarda pedido de conexão) e um processo é o cliente, que gera um pedido de conexão
- Executar no PC3 o tcpdump com foco na porta tcp 5555 e para salvar pacotes em arquivo:
tcpdump -i eth0 tcp port 5555 -s 1024 -U -w /hostlab/shared/pc3.cap
- Executar no PC1 um cliente TCP que solicita uma conexão ao servidor:
netcat 10.0.0.2 5555
- Enviar uma pequena mensagem de 5 caracteres, e no final teclar ENTER e depois CTRL+D.
- O CTRL-D encerra a conexão no netcat
- Vá até o terminal do PC3 e encerre a captura de pacotes do tcpdump digitando CTRL+C.
- Abrir o arquivo de captura gravado no PC3 com o Wireshark. Temos duas possibilidades para fazer isso, escolha uma das duas:
- Abrir o Wireshark e ir no menu File > Open > Pasta Pessoal > lab > shared > pc3.pcap
- Abrir o "navegador de arquivos" e encontrar procurar o arquivo na pasta aluno/lab/shared/pc3.pcap (/home/aluno/lab/shared/pc3.pcap).
- Todos pacotes TCP, desde o estabelecimento até a desconexão devem estar capturados. Um exemplo dessa captura encontra-se na Figura 1.
- O processo de conexão do TCP envolve a troca de 3 pacotes e é sempre iniciado pelo cliente. O cliente envia um pacote SYN, o servidor responde com um SYN-ACK e o cliente finalmente responde com ACK. Observe estes pacotes no wireshark.
- Pratique seu inglês e leia um pouco sobre este processo de estabelecimento de conexão em Connection Establishment
- Baseado na captura de pacotes realizada responda:
- Quais foram as portas de origem e destino usadas?
- Quais os tamanhos das janelas informadas, tanto pelo cliente quanto pelo servidor?
- Quais os números de sequência informado pelo Wireshark e o número que consta no campo Data em bytes. Qual é relação entre esses números?
- Em qual mensagem (número) aparece a texto que você digitou?
- Qual o número identificador de protocolo TCP no pacote IP?
- Um dos objetivos do processo de conexão é sincronizar o número de sequência. Cada lado fica sabendo do número de sequência do outro. O número de sequência não começa com zero.
- O Wireshark converte a numeração para mostrar a partir do 0 mas o número inicial de sequência é criado randomicamente por cada lado. (ver [1])
- Volte ao wireshark e analise o processo de termino da conexão (iniciado pelo cliente neste caso, no momento do CTRL+D).
- Note que qualquer uma das partes pode realizar esta finalização.
- Pode ser observado que o cliente envia um pacote TCP com flag FIN.
- O servidor responde com um FIN-ACK.
- Finalmente o cliente faz um ACK.
- Veja se confere com a figura Término de conexão TCP ou com os slides apresentados no início da aula.
- Gere com o wireshark um diagrama da comunicação, ou diagrama de troca de mensagens, fazendo: Statistics > Flow Graph > OK
- Analise esse diagrama, observando qual pacote contém os dados, ou seja, o texto que você digitou.
|}
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