Mudanças entre as edições de "Curso Técnico Integrado de Telecomunicações - Redes de Computadores (RCO)"
Linha 656: | Linha 656: | ||
{{Collapse bottom}} | {{Collapse bottom}} | ||
+ | {{Collapse top |Laboratório 8 - Desvendando o TCP - Básico}} | ||
+ | |||
+ | ===Objetivos=== | ||
+ | *Verificar propriedades do Protocolo TCP | ||
− | + | ==Configuração do Laboratório== | |
− | === | + | O roteiro será executado sobre máquinas virtuais, através do uso do [[Netkit2 | Netkit2]]. Copie o texto abaixo e crie um arquivo com nome TCP.conf. Salve-o na pasta /home/aluno. |
+ | <code> | ||
+ | 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 | ||
+ | </syntaxhighlight> | ||
− | + | ===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: <code> | ||
+ | File > Load and Run </syntaxhighlight> | ||
+ | #*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: <code> netcat -l 5555 </syntaxhighlight> | ||
+ | #*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: <code> tcpdump -i eth0 tcp port 5555 -s 1024 -U -w /hostlab/shared/pc3.cap </syntaxhighlight> | ||
+ | #Executar no PC1 um cliente TCP que solicita uma conexão ao servidor: <code> netcat 10.0.0.2 5555 </syntaxhighlight> | ||
+ | #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 fazendo CTRL-C | ||
+ | ##Os pacotes capturados devem estar gravados no arquivo /home/aluno/lab/shared/pc3.cap. | ||
+ | ##Abrir esse arquivo com o wireshark. Todos pacotes TCP, desde o estabelecimento até a desconexão devem estar capturados. Um exemplo dessa captura encontra-se na figura [[Arquivo:HTTP_WiresharkTCP.png |thumb | 300px| Fig.1 Protocolo TCP]] | ||
+ | #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 [https://en.wikipedia.org/wiki/Transmission_Control_Protocol#Connection_establishment Connection Establishment] | ||
+ | #Chame o professor e mostre a captura de pacotes realizada e 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. | ||
+ | #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 [http://www.tcpipguide.com/free/t_TCPConnectionTermination-2.htm Término de conexão TCP] | ||
+ | #Gere com o wireshark um diagrama da comunicação fazendo: Statistics > Flow Graph > OK | ||
+ | #Chame o professor e mostre esse diagrama, indicando qual pacote contém os dados, texto que você digitou. | ||
{{Collapse bottom}} | {{Collapse bottom}} | ||
Edição das 11h11min de 19 de setembro de 2017
MURAL DE AVISOS E OPORTUNIDADES DA ÁREA DE TELECOMUNICAÇÕES
Informações Gerais
Edições
- RCO60803 2017-2 - Prof. Odilson Tadeu Valle / Prof. Eraldo Silveira e Silva
- RCO60803 2017-1 - Prof. Juliano de Souza / Prof. Eraldo Silveira e Silva
- RCO60803 2016-2 - Prof. Juliano de Souza / Prof. Luciano Barreto
- RCO60803 2016-1 - Prof. Fernando Rodrigues Santos / Prof. Juliano de Souza
- RCO60803 2015-2 - Prof. Simara Sonaglio
- RCO60803 2015-1 - Prof. Arliones Hoeller / Prof. Túlio Ribeiro
- RCO60803 2014-2 - Prof. Arliones Hoeller / Prof. Tomás Grimm / Prof. José Clair
Laboratórios
Laboratório 1 - Ferramentas de Rede e Conceitos Básicos |
---|
Objetivos
Conceitos introdutórios para uso do laboratórioEstrutura do LaboratórioA rede do laboratório em uso segue o modelo apresentado no diagrama da Figura 1 (endereçamento pode ser diferente). Os Laboratórios de Redes de Computadores estão equipados com N+1 (N = número de computadores para alunos) computadores conectados em rede e com acesso a Internet, Figura 1. A rede local do laboratório tem endereço IP 192.168.1.0/24. A máscara de rede /24 indica que o último byte do endereço é utilizado para identificar cada máquina, por exemplo 192.168.1.1, 192.168.1.2, etc. Máquinas virtuaisO sistema operacional hospedeiro é o Linux Ubuntu. Como os laboratórios são utilizados por várias disciplinas/alunos/professores, os usuários não tem acesso a senha de root (administrador). Para possibilitar a execução de comandos exclusivos do administrador (usuário root), cada computador tem instaladas máquinas virtuais, as quais podem ser lançadas a partir do aplicativo VirtualBox. As máquinas virtuais pertencem a mesma rede local do laboratório e tem endereçamento 192.168.1.x, sendo o byte que identifica a máquina (x) deverá ser manualmente configurado com a seguinte regra: M1 – 101, M2 – 102,..., M9 – 109, M10 – 110,..., M14 – 114 . Por exemplo:, M1 ficará com o endereço 192.168.1.101. Roteiro de atividadesParte 1: Observando interfaces do sistema com ifconfigO 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.
|
Laboratório 2 - Wireshark, conceito de protocolo, encapsulamento |
---|
Objetivos
WireShark2005 KUROSE, J.F & ROSS, K. W. Todos os direitos reservados
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 2 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:
Ferramenta para conversão ASCII <==> Hexadecimal
|
Laboratório 3 - Desvendando o HTTP com Wireshark - BÁSICO |
---|
Fonte base: Wireshark - HTTP Objetivos
PARTE 1 - Interação Básica GET/Resposta do HTTPVamos iniciar a nossa exploração do HTTP baixando um arquivo em HTML simples - bastante pequeno, que não contém objetos incluídos. Faça o seguinte:
O exemplo da figura 1 mostra na janela de listagem de pacotes duas mensagens HTTP capturadas:
Responda às seguintes perguntas e imprima as mensagens GET e a resposta e indique em que parte da mensagem você encontrou a informação que responde às questões.
PARTE 2 - Interação Básica GET/Resposta do HTTP usando TELNET e REQUISIÇÃO MANUAL
Esta característica é a "persistência" do http versão 1.1, que permite reutilizar a mesma conexão para adquirir múltiplos recursos. |
Laboratório 4 - Desvendando o HTTP com Wireshark - AVANÇADO |
---|
Objetivos
PARTE 1 - A Interação HTTP GET Condicional/RespostaA maioria dos navegadores web tem um cache (seção 2.2.6 do livro) e, desta forma, realizam GET condicional quando baixam um objeto HTTP. Execute os seguintes passos:
Responda às seguintes questões:
PARTE 2 -Documentos HTML com Objetos IncluídosAgora que vimos como o Wireshark mostra o tráfego capturado para arquivos em HTML grandes, nós podemos observar o que acontece quando o seu browser baixa um arquivo com objetos incluídos, no nosso exemplo, imagens que estão armazenadas em outros servidores. Faça o seguinte:
Responda às seguintes questões:
PARTE 3 -Segurança com HTTPSPara finalizar, vamos capturar sequências de mensagens HTTPS, somente a título de comparação. Execute os seguintes procedimentos:
Responda:
|
Laboratório 5 - Servidor Apache e Construção de Página HTML |
---|
Objetivos
Máquinas Virtuais UML / Netkit2Para esta aula de laboratório estaremos usando o netkit2 do Prof.Sobral, uma extensão do netkit da Universidade de Roma Tre. Trata-se de uma ferramenta que que permite criar máquinas virtuais leves sobre o linux. Estas máquinas podem ser ligadas em rede. Neste laboratório conectaremos uma máquina virtual na REDE do Laboratório através de uma bridge. O Servidor ApacheNeste laboratório vamos criar uma página html e hospedá-la em um máquina virtual com o Web Server Apache. Para maiores informações consulte Visão Geral do Apache . PARTE 1 - Colocando o servidor Apache no AR no Netkit
|
Laboratório 6 - Serviço de Nomes (DNS) |
---|
ObjetivosO Domain Name System (DNS) traduz nomes de hosts em endereços Internet Protocol (IP), preenchendo uma lacuna crítica na infraestrutura da Internet. Neste laboratório, observaremos mais de perto:
Lembre-se de que o papel do cliente no DNS é relativamente simples - um cliente envia uma consulta ao seu DNS, e obtém uma resposta. Muito pode acontecer “por baixo dos panos”, de forma invisível aos clientes DNS, enquanto os servidores DNS, organizados hierarquicamente, comunicam-se entre si para, ou recursivamente ou iterativamente, resolver uma consulta DNS de um cliente. Do ponto de vista do cliente DNS, contudo, o protocolo é bastante simples - uma consulta é feita ao seu servidor DNS e uma resposta é recebida deste servidor. PARTE 1: Consulta simples ao DNS gerada a partir de um comando pingO comando ping pode ser usado tanto com um endereço IP como com um nome de host. Em última instância, ele sempre enviará pacotes para um endereço IP. No caso de ser usado o endereço de host, ele tentará resolver (mapear) este nome em um endereço IP usando um servidor DNS (local). Ele gera uma pergunta para o servidor (ou para os servidores, caso exista mais de um configurado). Esta experiência mostra como verificar os servidores instalados e, através de uma captura de pacote mostra a estrutura dos cabeçalhos DNS.
PARTE 2 - Consultas DNS por meio de ferramentas especializadas
|
Laboratório 8 - Desvendando o UDP - Básico |
---|
Objetivos
Parte 1 - Experimento com UDP
udp.port==5000 || udp.port==5001
netcat -u -l -p 5000
netcat -u IP_DEST 5000
netcat -u IP_DEST 5001
Identifique no wireshark:
Anote estes dados e chame o professor.
PERGUNTAS baseadas na captura:
DESAFIO PARA CASA: capture e anote byte a byte o conteúdo de um pequeno pacote UDP (e dados IP) e calcule o CHECKSUM do mesmo (pesquise no google como fazer). Parte 2 - Experimento com UDP - MUX e DEMUXConceber um adendo ao experimento anterior para demonstrar a multiplexação e demultiplexação de informação. SUGESTÃO: Criar uma janela adicional onde a equipe que escuta passa a ser a que transmite e vice-versa. Usar uma outra porta para espera de mensagem (6000). Parte 3 - O professor espera transmissão na porta 4000O professor vai aguardar uma transmissão de dados na porta UDP 4000. Cada equipe deve transmitir uma mensagem que será uma resposta a uma pergunta que o professor fará. Cada equipe deve capturar o pacote UDP transmitido por ela e deve mostrar ao professor. |
Laboratório 8 - Desvendando o TCP - Básico |
---|
Objetivos
Configuração do LaboratórioO roteiro será executado sobre máquinas virtuais, através do uso do Netkit2. Copie o texto abaixo e crie um arquivo com nome TCP.conf. Salve-o na pasta /home/aluno.
|
Transparências utilizadas durante as aulas
Capítulo 2 - Camada de Aplicação
Capítulo 3 - Camada de Transporte
Listas de Exercícios
Lista de exercícios 1 - Introdução |
---|
|
Lista de exercícios 2 - Camada de Aplicação |
---|
ADICIONAIS PARTE 2- HTTP
ADICIONAIS PARTE 3- DNS
|