Mudanças entre as edições de "Predefinição:RCO 1110232 2019-2"
Linha 206: | Linha 206: | ||
== 09/09/19: Camada de Aplicação == | == 09/09/19: Camada de Aplicação == | ||
+ | KUROSE, J.F & ROSS, K. W. Todos os direitos reservados | ||
+ | |||
+ | ===Objetivos=== | ||
+ | *Conhecer aplicativos para verificar os parâmetros do TCP/IP | ||
+ | *Familiarização com os ''sniffers'' de rede WireShark e tcpdump. | ||
+ | |||
+ | ===Materiais de apoio=== | ||
+ | *[http://wiki.sj.ifsc.edu.br/images/0/04/Lab4.pdf Roteiro TCPDump] | ||
+ | *[http://www.wireshark.org/ Wireshark e manuais] | ||
+ | |||
+ | {{collapse top | Ferramentas básicas: ''WireShark'' e ''tcpdump''}} | ||
+ | |||
+ | ===Introdução=== | ||
+ | O entendimento de protocolos de redes pode ser bastante aprofundado através da “observação de protocolos funcionando” e “da manipulação de protocolos” - observando a sequência de mensagens trocadas entre duas entidades, entrando nos detalhes da operação do protocolo, e fazendo com que os protocolos realizem certas ações e então observando estas ações e as consequências. | ||
+ | |||
+ | A ferramenta básica para observar as mensagens trocadas entre as entidades em execução é chamada de ''sniffer''. Como o nome sugere, um ''sniffer'' captura mensagens sendo enviadas/recebidas pelo seu computador; ele também tipicamente armazena e/ou apresenta os conteúdos dos vários campos dos protocolos nestas mensagens capturadas. Um ''sniffer'' isoladamente é um elemento passivo. Ele observa as mensagens sendo enviadas e recebidas pelas aplicações e protocolos executando no seu computador, mas jamais envia pacotes. Similarmente, os pacotes recebidos nunca são explicitamente endereçados ao ''sniffer''. Ao invés disso, um ''sniffer'' recebe uma cópia de pacotes que são enviados/recebidos para/de aplicações e protocolos executando no seu computador. | ||
+ | |||
+ | A Figura 1 mostra a estrutura de um ''sniffer''. À direita da Figura 2 estão os protocolos (neste caso, protocolos da Internet) e aplicações (tais como navegador web ou cliente FTP) que normalmente executam no seu computador. O ''sniffer'', exibido dentro do retângulo tracejado na Figura 2 é uma adição aos softwares usuais no seu computador, e consiste de duas partes: a biblioteca de captura de pacotes e o analisador de pacotes. A biblioteca de captura de pacotes recebe uma cópia de cada quadro da camada de enlace que é enviado do ou recebido pelo seu computador. Lembre que mensagens trocadas por protocolos das camadas mais altas tais como HTTP, FTP, TCP, UDP, DNS ou IP, são todos eventualmente encapsulados em quadros que são transmitidos para o meio físico como um cabo Ethernet. Na Figura 2, assume-se que o meio físico é uma Ethernet, e desta forma, os protocolos das camadas superiores são eventualmente encapsulados em um quadro Ethernet. Capturar todos os quadros fornece todas as mensagens enviadas/recebidas de/por todos os protocolos e aplicações executando em seu computador. | ||
+ | |||
+ | [[Arquivo:Sniffer_estrutura.png |thumb | 500px| Figura 1 - Estrutura de um ''sniffer'']] | ||
+ | |||
+ | 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. Por exemplo, 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. | ||
+ | |||
+ | *Analisando os campos da interface do Wireshark | ||
+ | Quando você executar o programa Wireshark, a interface com o usuário exibida na Figura 3 aparecerá. Inicialmente, nenhum dado será apresentado nas janelas. A interface do Wireshark tem seis componentes principais: | ||
+ | #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; | ||
+ | #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; | ||
+ | #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; | ||
+ | #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; | ||
+ | #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; | ||
+ | #A janela de conteúdo de pacotes mostra o conteúdo inteiro do quadro capturado, nos formatos ASCII e hexadecimal. | ||
+ | |||
+ | [[Arquivo:Wireshark_interface_usuario.png |thumb | 700px| Figura 3 - Interface com o usuário do Wireshark]] | ||
+ | |||
+ | ===Roteiro de atividades === | ||
+ | #Inicie o navegador web; | ||
+ | #Inicie o Wireshark. Inicialmente as janelas estarão vazias, pois não há captura de pacotes em progresso; | ||
+ | #Para iniciar uma captura de pacotes, selecione o menu Capture e depois Interfaces. | ||
+ | #Isso faz com que a janela de interfaces de rede disponíveis seja apresentada (Figura 4); [[Arquivo:Wireshark_interfaces_rede.png |thumb | 400px| Figura 4 - Interfaces de rede no Wireshark]] | ||
+ | #Basta clicar no botão ''Start'' da interface desejada para iniciar a captura de pacotes. Na Figura 4, como o Wireshark está sendo executado no Linux, o botão Start da interface eth0 deve ser selecionado; | ||
+ | #Como nada está acontecendo na rede, a janela apresenta o conteúdo vazio; | ||
+ | #No navegador, acesse o site http://www.ifsc.edu.br; | ||
+ | #Ao voltar para a janela do Wireshark, houve a captura de todos os pacotes envolvidos na conexão; | ||
+ | #Antes de continuar, vamos parar a captura de pacotes e trabalhar com o que temos. Basta clicar em ''Capture'' e depois em ''Stop''; | ||
+ | #Para testar as capacidades de filtragem, vamos inserir a cadeia “http” (sem as aspas e em minúsculo) no especificação do filtro de exibição e depois selecionar ''Apply'' (ou Aplicar). Um resultado similar é exibido na figura 5; [[Arquivo:Wireshark_filtro_HTTP.png |thumb | 600px| Figura 5 - Janela após a aplicação do filtro http]] | ||
+ | #Selecione a primeira mensagem HTTP exibida na janela de listagem de pacotes. Ela deve ser a mensagem HTTP GET que foi enviada do seu computador ao servidor HTTP em www.ifsc.edu.br. Quando você seleciona a mensagem HTTP GET, as informações dos cabeçalhos do quadro Ethernet, do datagrama IP, do segmento TCP e da mensagem HTTP 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. | ||
+ | #Se desejar acesse novos sítios e faça novas capturas e tente entender o que ocorre; | ||
+ | #<span style="color: #9966CC;">Com Wireshark ativo (Abra-o novamente se necessário) acesse um sítio de sua preferência e responda às seguintes questões: | ||
+ | ##Teste outros filtros, por exemplo, mostre somente pacotes originados e/ou destinados a um determinado ''host'' ('''ip.addr == 191.36.13.X'''). Anote o filtro utilizado e salve a janela do mesmo. [https://mundotecnologico.net/2011/11/25/criando-filtros-no-wireshark/ Exemplo de filtros]. | ||
+ | ##Elimine o filtro e anote os diferentes protocolos que aparecem na coluna ''Protocol'' na janela de listagem de pacotes; | ||
+ | ##Quanto tempo passa entre o envio de uma mensagem HTTP GET até o recebimento de uma resposta OK? (por padrão, o valor da coluna Time na janela de listagem de pacotes é a quantidade de tempo, em segundos, desde que a captura iniciou). Para exibir o campo Time no formato hora do dia, selecione o menu ''View'', depois ''Time Display Format'', então selecione ''Time of day''. | ||
+ | ##Qual é o endereço IP do sítio navegado? Qual é o endereço IP da interface de rede do seu computador? Qual o endereço MAC de sua máquina? | ||
+ | |||
+ | ===Tcpdump=== | ||
+ | |||
+ | #Leia atentamente o manual do tcpdump , principalmente os exemplos: <code> man tcpdump </syntaxhighlight> | ||
+ | #<span style="color: #9966CC;">Faça um ping e navegue para algum site de sua preferência e, com o uso de parâmetros apropriados, faça com que o tcpdump armazene os em um arquivo denominado “pacotes_capturados'''X'''.pcap“ (um arquivo para cada item '''X'''): | ||
+ | ##Capture todos os pacotes oriundos e destinados à sua máquina. | ||
+ | ##Idem anterior com a ''flag'' ''-vvv'' ativa e, em seguida, a ''flag'' -n. | ||
+ | ##*Qual é a função dessas ''flags''? | ||
+ | ##Capture somente os pacotes oriundos de sua máquina. | ||
+ | ##*Anote o comando utilizado. | ||
+ | ##Capture somente pacotes destinados à sua máquina. | ||
+ | ##*Anote o comando utilizado. | ||
+ | ##Capture pacotes HTTP e DNS (lembre-se da porta de cada serviço). | ||
+ | ##*Anote o comando utilizado. | ||
+ | #<span style="color: #9966CC;">Procure um dos arquivos salvos, com o navegador de arquivos de sua máquina, dê um duplo clique sobre o mesmo. | ||
+ | ##Com qual programa foi aberto o arquivo? | ||
+ | ##Exemplifique um possível uso dessa compatibilidade de arquivos? | ||
+ | {{collapse bottom}} | ||
== 16/09/19: Camada de Aplicação == | == 16/09/19: Camada de Aplicação == |
Edição das 17h15min de 2 de setembro de 2019
Professor
Professor: Tiago Semprebom
Email: tisemp@ifsc.edu.br
Atendimento paralelo: 2a feira 17:30h - 18:30 h (Lab. Professores de TELE II)
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
Curiosidades
- Breve histórico sobre o surgimento das redes de computadores e a Internet
- Vídeo sobre o funcionamento das fibras ópticas
- Mapas de rede dorsais (Backbones)
- Telex
- O Ciberespaço e as Redes de Computadores na Construção de Novo Conhecimento
- Uma história das Redes de Computadores
- Breve História da Internet
Uma representação artística das interligações na Internet
Materiais de aula
Slides
- Arquivo:Slides-kurose-cap1.pdf
- Arquivo:Slides-kurose-cap2.pdf
- Arquivo:RCO-semprebom-cap3.pdf
- Arquivo:RCO-semprebom-cap4.pdf
Listas de exercícios
- Lista de exercícios 1
- Lista de exercícios 2
- Lista de exercícios 3
- Lista de exercícios 4
- Lista de exercícios 5
- Lista de exercícios 6
- Lista de exercícios 7
- Lista de exercícios 8
- Lista de exercícios 9
Apostilas
Aulas
29/07/19: Recepção aos alunos
- Recepção: Apresentação da disciplina, plano de aula, laboratórios e métodos de avaliação.
- Introdução a Redes de Computadores [slides]
05/08/19: 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.
12/08/19: Introdução à Redes de Computadores
- Redes de acesso e meio físico;
- Resolução de exercícios (Lista 1)
19/08/19: Introdução à Redes de Computadores
- Arquitetura em Camadas;
- Correção lista de exercício I
26/08/19: Introdução à Redes de Computadores
Nesta atividade serão vistos algumas ferramentas utilizadas para obter informações relacionadas às configurações de uma rede de computadores.
Ferramentas básicas: Ping e Traceroute |
---|
Objetivos
Conceitos introdutórios para uso do laboratórioA rede do laboratório em uso segue o modelo apresentado no diagrama da Figura 1. Roteiro de atividadesifconfigO aplicativo ifconfig pode ser utilizado para visualizar a configuração ou configurar uma interface de host em redes TCP/IP. Se nenhum argumento for passado na chamada do ifconfig, o comando mostra a configuração atual de cada interface de rede. Consultar as páginas man ifconfig do Linux para maiores detalhes sobre o funcionamento deste aplicativo, o qual permite ativar/desativar a interface, configurar o endereço IP, definir o tamanho da MTU, redefinir o endereço de hardware se a interface suporta, redefinir a interrupção utilizada pelo dispositivo, entre outros.
|
02/09/19: Camada de Aplicação
09/09/19: Camada de Aplicação
KUROSE, J.F & ROSS, K. W. Todos os direitos reservados
Objetivos
- Conhecer aplicativos para verificar os parâmetros do TCP/IP
- Familiarização com os sniffers de rede WireShark e tcpdump.
Materiais de apoio
Ferramentas básicas: WireShark e tcpdump |
---|
IntroduçãoO entendimento de protocolos de redes pode ser bastante aprofundado através da “observação de protocolos funcionando” e “da manipulação de protocolos” - observando a sequência de mensagens trocadas entre duas entidades, entrando nos detalhes da operação do protocolo, e fazendo com que os protocolos realizem certas ações e então observando estas ações e as consequências. A ferramenta básica para observar as mensagens trocadas entre as entidades em execução é chamada de sniffer. Como o nome sugere, um sniffer captura mensagens sendo enviadas/recebidas pelo seu computador; ele também tipicamente armazena e/ou apresenta os conteúdos dos vários campos dos protocolos nestas mensagens capturadas. Um sniffer isoladamente é um elemento passivo. Ele observa as mensagens sendo enviadas e recebidas pelas aplicações e protocolos executando no seu computador, mas jamais envia pacotes. Similarmente, os pacotes recebidos nunca são explicitamente endereçados ao sniffer. Ao invés disso, um sniffer recebe uma cópia de pacotes que são enviados/recebidos para/de aplicações e protocolos executando no seu computador. A Figura 1 mostra a estrutura de um sniffer. À direita da Figura 2 estão os protocolos (neste caso, protocolos da Internet) e aplicações (tais como navegador web ou cliente FTP) que normalmente executam no seu computador. O sniffer, exibido dentro do retângulo tracejado na Figura 2 é uma adição aos softwares usuais no seu computador, e consiste de duas partes: a biblioteca de captura de pacotes e o analisador de pacotes. A biblioteca de captura de pacotes recebe uma cópia de cada quadro da camada de enlace que é enviado do ou recebido pelo seu computador. Lembre que mensagens trocadas por protocolos das camadas mais altas tais como HTTP, FTP, TCP, UDP, DNS ou IP, são todos eventualmente encapsulados em quadros que são transmitidos para o meio físico como um cabo Ethernet. Na Figura 2, assume-se que o meio físico é uma Ethernet, e desta forma, os protocolos das camadas superiores são eventualmente encapsulados em um quadro Ethernet. Capturar todos os quadros fornece todas as mensagens enviadas/recebidas de/por todos os protocolos e aplicações executando em seu computador. 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. Por exemplo, 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.
Quando você executar o programa Wireshark, a interface com o usuário exibida na Figura 3 aparecerá. Inicialmente, nenhum dado será apresentado nas janelas. A interface do Wireshark tem seis componentes principais:
Roteiro de atividades
Tcpdump
|
16/09/19: Camada de Aplicação
23/09/19: AVALIAÇÃO 1
30/09/19: Camada de Transporte
07/10/19: Camada de Transporte
14/10/19: Camada de Transporte
21/10/19: Camada de Transporte
28/10/19: Dia do Servidor Público
- Feriado