Mudanças entre as edições de "RCO-Subsequente-2022-1"
Linha 1 096: | Linha 1 096: | ||
## <span style="color: rgb(0, 128, 0);" data-mce-style="color: #008000;">Em qual mensagem (número) aparece a texto que você digitou?</span> | ## <span style="color: rgb(0, 128, 0);" data-mce-style="color: #008000;">Em qual mensagem (número) aparece a texto que você digitou?</span> | ||
## <span style="color: rgb(0, 128, 0);" data-mce-style="color: #008000;">Qual o número identificador de protocolo TCP no pacote IP? (Na janela central, clique sobre o ''Internet Protocol'' e observe o campo ''Protocol'').</span> | ## <span style="color: rgb(0, 128, 0);" data-mce-style="color: #008000;">Qual o número identificador de protocolo TCP no pacote IP? (Na janela central, clique sobre o ''Internet Protocol'' e observe o campo ''Protocol'').</span> | ||
− | #* <span style="color: rgb(0, 0, 0);" data-mce-style="color: #000000;">Um dos objetivos do | + | #* <span style="color: rgb(0, 0, 0);" data-mce-style="color: #000000;">Um dos objetivos do </span> |
#* <span style="color: rgb(0, 0, 0);" data-mce-style="color: #000000;">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 </span>[https://wiki.wireshark.org/TCP_Relative_Sequence_Numbers]<span style="color: rgb(0, 0, 0);" data-mce-style="color: #000000;">)</span> | #* <span style="color: rgb(0, 0, 0);" data-mce-style="color: #000000;">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 </span>[https://wiki.wireshark.org/TCP_Relative_Sequence_Numbers]<span style="color: rgb(0, 0, 0);" data-mce-style="color: #000000;">)</span> | ||
Edição das 17h08min de 2 de junho de 2022
Instalação do imunes
Ver anotações do Prof.Odilson - Instalação Imunes
AULA 01 - AULA DIA 31/03/2022
Registrada no SIGAA. Ver pdf de slides e do laboratório.
AULA 02 - AULA DIA 2/04/2022
Registrada no SIGAA. Aula sábado conforme determinação do DEPE. Ver leitura e questionário registrado.
AULA 03 - AULA DIA 7/04/2022
Ver slides de apoio no SIGAA.
Laboratório 1
Ver pdf no SIGAA.
Objetivos
Após este laboratório o aluno deverá ser capaz de:
- Utilizar a ferramenta wireshark para capturar de pacotes da rede, usando o filtro de display;
- Utilizar a ferramenta imunes para simulação funcional de uma rede de computador;
- Explanar a estrutura de um pacote de rede caracterizando o encapsulamento devido a múltiplas camadas de protocolos;
- Explicar o conceito de protocolo através da análise de troca de pacotes com ping e traceroute
- Utilizar a opção de flow graph para visualizar as trocas de mensagens.
- Identificar equipamentos em uma rede: hosts, switches e roteadores;
- Assimilar o conceito de internetwork (conexão entre redes);
- Identificar a necessidade de uso de endereços e rotas em uma rede de pacotes;
Laboratório 2
Este laboratório não terá relatório a ser registrado no SIGAA. Faremos sob a orientação do professor.
Laboratório 2 - Wireshark: observação simples de pacote e identificação de encapsulamento |
---|
FUNDAMENTAÇÃO TEÓRICA: 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 ping. 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 pacote ICMP usado pelo ping. 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. 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 3
|
Laboratório 3
Este laboratório deverá ser registrado no SIGAA. Utilizaremos o simulador IMUNES. Aguarde as orientações básicas de uso.
Laboratório 3 - LANs, WANs, Equipamentos de Redes, Conectividade na rede: Ping |
---|
Este laboratório é formado uma mescla de teoria e prática e deverá ser elaborado juntamente com o professor na sala. ETAPA 1
ETAPA 2
ETAPA 3
ETAPA 3
ETAPA 4
ETAPA 5
ETAPA 6
ETAPA 7
|
AULA 04 - dia 14/04/2021
Objetivos
Após esta aula o aluno deverá:
- reconhecer o papel da camada de aplicação em uma estrutura de camadas de protocolos;
- identificar o modelo cliente servidor usado em grande parte de aplicações da Internet;
- reconhecer a necessidade de endereçamento em nível de processos para identificação de aplicações;
- observar o processo de encapsulamento/desencapsulamento de dados da aplicação em uma estrutura de camadas de protocolos.
Slides desta aula
Ver sigaa.
Fundamentação Teórica
Camadas de Protocolos e posicionamento da camada de aplicação
Vamos fazer uma analogia com um envio de um livro de um membro de um clube de livro para outro. Observe que o serviço esperado de um protocolo em nível de aplicação é resolver um problema específico já em nível de aplicação. Neste caso, é a transferência de um livro de um local para outro através de entidades de aplicação (pessoas) que estão trocando livros.
Camadas de Protocolos(ícones do www.publicdomainvectors.org)
Protocolo e Serviços da Camada de Aplicação
O desenho abaixo mostra um usuário USANDO um serviço de acesso PÁGINAS WEB. Neste desenho pode-se observar:
- um programa cliente é utilizado pelo usuário para REQUISITAR uma página WEB que se encontra em outro COMPUTADOR;
- um programa SERVIDOR espera por mensagens de REQUISIÇÃO e RESPONDE enviando a página solicitada;
- Um PROTOCOLO DE APLICAÇÃO é executado entre as partes (entidades que se comunicam).
- Observar que tanto cliente como o servidor podem ser ENDEREÇADOS por um número da máquina (IP) e um endereço de porta.
- Um mecanismos chamado socket (como se fosse um plugue) de uma tomada permite a aplicação se conectar ao protocolo da camada de
baixo.
Protocolo da Camada de Aplicação(ícones do www.publicdomainvectors.org)
Laboratório 4
Laboratório 4 - Camada de Aplicação: Colocando no "ar" aplicações cliente servidoras |
---|
Neste laboratório vamos construir uma pequena internet, colocando dois serviços no "ar": um web server e um servidor ssh. Mostremos uma visão do posicionamento dos "pacotes de aplicação" capturados para cada um destes serviços. Os serviços são, portanto:
ETAPA 1 - Construindo uma rede para dar suporte aos serviçosVamos usar o simulador imunes para TER um sentimento do comportamento em camadas em uma rede simples. Construir no Imunes a rede a seguir. Se preferir importe o arquivo daqui. ETAPA 2 - Colocando serviço (camada aplicação) no ARVamos agora executar 3 serviços que se utilizam de protocolos da camada de aplicação:
ETAPA 3 - Iniciando a REDEETAPA 4 - Executando serviço TELNETEtapa 4.1- Iniciando o servidorO serviço TELNET pode iniciado a partir da linha de comando no computador onde será executado o lado servidor. Por facilidade, no imunes vamos iniciá-lo conforme abaixo. Faça um comando ps aux e mostre que o serviços está se executando na máquina alvo. ETAPA 4.2 - Criando um usuário no host1 para fazer um acesso remotoVamos criar um usuário no host1 para podermos acessar o computador remotamente via TELENET
ETAPA 4.3 - Acessando remotamente o host1 através da conta criada
RECORTE E COLE a TELA no relatório. ETAPA 4.4 - Captura de pacotes do telnetAgora vamos capturar pacotes do telnet. Basta usar o wireshark em qualquer interface onde passam os pacotes. Por exemplo, no próprio pc2, no host1 ou em qualquer roteador por onde os pacotes passam. SIGA as instruções do PROFESSOR e recorte a tela do wireshark, filtrando os pacotes do TELNET. Mostre o encapsulamento de pacotes de aplicação e seu posicionamento na estrutura de pacotes. ETAPA 5 - Executando serviço WEBEtapa 5.1 - Preparando uma página html para colocar no servidor WEBEscolha uma máquina para utilizar como Web Server. Prepare uma página html neste SERVIDOR. As páginas do servidor se encontram no diretório /var/www/html Páginas da internet são construídas usando o formato HTML. Ver aqui o que é uma página HTML e como construir uma ágina simples. Vá até o diretório /var/www/html e use o editor nano para editar uma página chamada index.html
<html>
<body>
<h1>Rede de Computadores Subsequente</h1>
<p>Pagina teste do aluno Pedro Alvares Cabral da Silva</p>
</body>
</html>
Etapa 5.2 - Colocando o Web Server no arDe nada adianta ter uma página html e não ter um programa SERVIDOR que possa enviá-la para um cliente, quando este solicitá-la. Vamos iniciar o SERVIÇO WEB para testar o protocolo HTTP. Note que HTTP é o protocolo executado entre o cliente e o servidor. O servidor WEB "cuida" das páginas do site (da rede onde se encontra). O programa servidor disponível é o lightppd Para executá-lo, abrir um terminal no servidor e executar o comando:
lighttpd -f /etc/lighttpd/lighttpd.conf
ps aux Etapa 5.3 - Acessando o Web Server a partir de um clienteFaça um acesso a sua página, a partir do firefox (cliente HTTP) em um PC cliente de sua escolha. Coloque a URL (recurso a ser acessado) no topo do firefox. RECORTE a tela do acesso e corte no relatório. Etapa 5.4 - Capturando pacotes no cliente e visualizando pacotes httpFaça uma captura de pacotes com wireshark e mostre os pacotes http envolvidos na comunicação.
|
AULA 5 - DIA 28/04/2022
Objetivos
Após esta aula o aluno deverá ser capaz de:
- explicar a operação básico do protocolo http;
- reconhecer a diferença entre as versões 1.0 e 1.1. do protocolo HTTP;
Leitura recomendada
- FOROUZAN, Behrouz A. Protocolo TCP/IP. [Digite o Local da Editora]: Grupo A, 2010. 9788563308689. Disponível em: https://app.minhabiblioteca.com.br/#/books/9788563308689/. Acesso em: 28 abr. 2022. CAP.22.
Slides desta aula
Laboratório 5 - HTTP BÁSICO: Desvendando o HTTP com Wireshark |
---|
Prepare um documento no googledrive para anotar o relatório deste experimento. Coloque o seu nome no início e denomine o arquivo de Lab5-HtmlBasico. ObjetivosNeste laboratório o aluno deverá explorar aspectos básicos da operação do protocolo HTTP incluindo:
PARTE 1 - A Interação Básica GET/Resposta do HTTPETAPA 1 - Preparativos Iniciais
ETAPA 2 - Capturando e visualizando pacotes html
ETAPA 3 - Identificando as mensagens GET e a resposta
RECORTE a tela com as mensagens, cole no relatório e explique o significado das mesmas. Não é necessário explicar cada campo dos headers, mas passar uma noção do significado das mensagens. ETAPA 4- Identificando o encapsulamento do "pacote" html na camada de transporte
RECORTE a tela com detalhe do encapsulamento de uma mensagem html nas camadas inferiores. Discuta este encapsulamento. ETAPA 5 - Identificando o texto html no pacote http de respostaObserve as informações das mensagens HTTP GET e de resposta. Você consegue inclusive enxergar a mensagem (página) mostrada no navegador: RED29004! Página de teste. Indique em que parte da mensagem você encontrou a informação que responde às questões. RECORTE a tela e mostre onde está o texto html no pacote http. ETAPA 6 - Responda as perguntas abaixo
PARTE 2 - Interação Básica GET/Resposta do HTTP usando TELNET e REQUISIÇÃO MANUALVamos 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: ETAPA 1 - Preparativos iniciais
ETAPA 2
RECORTE A TELA e analise/responda a pergunta abaixo
ETAPA 3
RECORTE A TELA e discuta. ETAPA 4
ETAPA 5
ETAPA 6
PARTE 3 - Desafio - Um cenário com dois web servers e referências de páginas entre sitesConstruir um cenário no IMUNES usando dois web servidores. Fazer duas páginas uma em cada servidor. Uma página deve conter o link para a outra. Examinar |
AULA 6 - DIA 5/05/2022
Objetivos
PARTE 1
Após esta aula o aluno deverá ser capaz de:
- Explicar o comando GET Condicional/Resposta no protocolo HTTP;
- Explicar o comportamento do http com documentos HTML com Objetos Incluídos;
PARTE 2
- explicar as funcionalidades básicas do DNS, observando pacotes gerados pelo mesmo em uma consulta básica.
Leitura recomendada
- FOROUZAN, Behrouz A. Protocolo TCP/IP. [Digite o Local da Editora]: Grupo A, 2010. 9788563308689. Disponível em: https://app.minhabiblioteca.com.br/#/books/9788563308689/. Acesso em: 28 abr. 2022. CAP.22.
PARTE 1 da AULA - Características adicionais do HTTP
LABORATÓRIO 06 - Características adicionais do HTTP
Laboratório 6 - Características adicionais do HTTP |
---|
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 pretendem baixar um objeto HTTP já presente em seu cache.
ETAPA 1 - Preparativos Iniciais
Recorte a tela e mostre a tela capturada com a devida URL ETAPA 2 - Verificando o acesso da página
ETAPA 3 - Identificando o uso do campo "If-Modified-Since"
ETAPA 4 - Encontrando explicações para o cenário observado
PARTE 2 - Documentos HTML com Objetos IncluídosESTE laboratório é somente demonstrativo. Agora que vimos como o Wireshark mostra o tráfego capturado para arquivos em HTML simples, também 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:
Tarefa:
|
PARTE 2 DA AULA Introdução ao Serviço DNS
Referências
Laboratório 7 - Introdução ao Serviço DNS |
---|
LABORATÓRIO 7 - Introdução ao DNSNeste laboratório vamos explorar algumas características do sistema DNS. Utilizaremos máquinas reais inicialmente. ETAPA 1CRIAR um arquivo no google docs (nome LAB07-IntroducaoDNS) para construir o relatório simplificado deste experimento. Coloque seu nome. Responda cada etapa que se segue. ETAPA 2 - FUNDAMENTAÇÃO TEÓRICA - O que é o DNSCom a ajuda de explicações do professor, dos slides da aula passada e das referências da minha biblioteca responda com as SUAS palavras:
ETAPA 3 - FUNDAMENTAÇÃO TEÓRICA - Consulta ao sistema DNS
ETAPA 4 - FUNDAMENTAÇÃO TEÓRICA - Nome de domínios e tipo de registros DNS
ETAPA 5 - PRÁTICA - Vendo qual servidor DNS está configurada na máquinaQualquer consulta a um nome deve ser realizada a um primeiro SERVIDOR DNS (não é AUTORITATIVO necessariamente) que provavelmente se encontra em sua rede local. NO SEU computador deve estar armazenado o IP deste servidor. Execute e explique o comando abaixo. Recorte a tela e cole no relatório. cat /etc/resolv.conf Note que este comando é para um Linux RECORTE A TELA, cole no relatório e discuta. ETAPA 6 - PRÁTICA - Consulta simples ao DNS gerada a partir de um comando pingBaseado em do Prof.Odilson Nesta etapa vamos verificar o momento em que é realizada uma consulta ao DNS por ocasão da realização de um ping. Vamos usar o wireshark para verificar os pacotes DNS antes do envio de pacotes do ping. O comando ping pode ser usado tanto com um endereço IP como com um nome de host.
RECORTE A TELA neste ponto e cole no relatório. ETAPA 7 - Discussão da captura realizada
ETAPA 8 - PRÁTICA - Consultas DNS por meio de ferramentas especializadas - Consulta simples (tipo registro A)Usando o programa host ou dig, que são executados no terminal, descubra e anote no relatório os endereços IP associados aos seguintes nomes de hosts (máquinas):
Exemplo: host www.ifsc.edu.br RECORTE A TELA e cole no relatório. Discuta o que o comando faz. ETAPA 9 - PRÁTICA - Consultas DNS por meio de ferramentas especializadas - Consulta simples (tipo registro NS)Agora descubra e anote no relatório quais são os servidores DNS responsáveis por cada um dos domínios dos nomes acima.
RECORTE A TELA e cole no relatório. Discuta o que o comando faz. |
AULA 7 - DIA 7/05/2022
Objetivos
- Outros protocolos de aplicação e revisão do HTTP
Aula assíncrona no SÁBADO conforme DEPE.
AULA 8 - DIA 12/05/2022
Objetivos
Após esta aula o aluno deverá
- Saber o conceito de ZONA e DOMÍNIO no DNS
- entender a necessidade de um servidor (autoritativo) de DNS
- Estabelecer um serviço de DNS e fazer com que um cliente acesse este servidor.
- Verificar a troca de msgs DNS entre cliente e servidor (registro A)
- Visualizar de forma geral serviços em nível de camada de aplicação com o DNS.
- Ter uma visão do posicionamento dos "pacotes de aplicação" capturados para cada um destes serviços.
Laboratório 8 - Uma mini Internet com DNS |
---|
Camada de Aplicação: Colocando no "ar" aplicações servidoras com DNSDescrição do LaboratórioNeste laboratório construiremos uma MINI INTERNET com alguns serviços da camada de aplicação e com o apoio do DNS. Vamos investigar novamente o comportamento do DNS. VocÊ terá a oportunidade de iniciar um servidor DNS responsável por um domínio (redes.edu.br). Outros computadores do mundo da MINI INTERNET poderão usufruir deste servidor, quando devidamente configurados. Os serviços iniciador serão, portanto:
Rede a ser implementada
PARTE 1 - Criando um domínio DNS na MINI INTERNETConstruir no googledrive o relatório com as etapas abaixo. Coloque o nome do arquivo de LAB8-MINI-INTERNET-DNS. Coloque o seu nome no relatório. ETAPA 0 - Construindo a MINI INTERNET
RECORTE A TELA E MOSTRE A TOPOLOGIA DA REDE e mostre uma tela mostrando a execução de um ifconfig no PC criado. Indique qual é o endereço IP do mesmo. ETAPA 1 - Configuração do serviço DNS
COLE A TELA e discuta o resultado. ETAPA 2- Configurando as máquinas para acessarem o DNS
RECORTE as TELAS ACIMA e discuta o resultado. ETAPA 3 - Configure o PC que você criouBaseando-se nas configurações acima coloque na base de dados do DNS o PC que vocÊ criou. Vá com cuidado pois qualquer erro levará a um problema. A partir do pc3 faça um ping no PC que você criou. Registre as várias telas que mostram os resultados. ETAPA 4 - Capture pacotes na execução do pingCapture pacotes com o wireshark e mostre a execução do DNS e do ping. Indique onde você realizou a captura. Discuta os resultados. PARTE 2 - Servidor WEBEsta parte não é nova para você. Apenas vamos colocar no AR o serviço WEB e acessá-lo pelo nome. ETAPA 1 - Preparando uma página HTML para colocar no servidor WEB.
ETAPA 2 - Capturando pacotes
ETAPA 3 - Acessando o servidor WEB pelo nome
PARTE 3 - Servidor SSH - acessando o serviço pelo nomeETAPA 1 - Configurando e executando o serviço SSHO serviço SSH será iniciado no servidor SSH (SSH SERVER).
RECORTE as telas e documente esta etapa. ETAPA 2 - Acessando o ssh da máquina quen você criou
ETAPA 3 - Capturando pacotes do ssh e do ICMP
FINALIZAR O EXPERIMENTO E FECHAR O IMUNES. PREPARAR E ENVIAR O RELATÓRIO PELO SIGAA. |
AULA 10 - DIA 19/05/2022
Objetivos
Avaliação 1 - Ver SIGAA
AULA 11 - DIA 26/05/2022
Objetivos
Após esta aula o aluno deverá:
- Saber explicar o papel da camada de transporte no contexto de redes de computadores;
- Diferenciar o TCP do UDP
- Identificar pacotes UDP pelo wireshark verificando alguns aspectos. do cabeçalho.
Referências
Laboratório 11 - UDP Básico |
---|
Desvendando o UDP - BásicoObjetivos
Fonte BaseParte 1 - Fluxo único UDPCriar um documento no googledrive com o nome LAB-11-UDP-Basico. Este documento será usado para registrar o laboratório de hoje. Coloque seu nome no documento. Nesta parte 1 vamos transmitir dados localmente com o UDP. Usaremos dois terminais para execução do experimento.Um terminal escutará na porta 5000 e a outro transmitirá uma mensagem nessa porta. Os processos de transmissão e recepção podem ocorrer simultaneamente, em terminais distintos. ETAPA 1Abrir duas janelas de terminal. Abrir o Wireshark, interfaces any, para escuta das portas no protocolo UDP usando um filtro:udp.port==5000
ETAPA 2Em um dos terminais coloque em execução um programa que permite escutar por pacotes UDP na porta 5000: netcat -lk -u 5000 RECORTE a tela do terminal e cole no relatório. ETAPA 3No segundo terminal, que irá transmitir para a porta 5000 aberta no primeiro terminal, execute:netcat -u IP_DEST 5000
Em seguida escreve no terminal uma mensagem de até 20 caracteres, ao teclar <enter> a mensagem será enviada. RECORTE as telas dos terminais mostrando que foi realizada a comunicação. ETAPA 4O wireshark deve ter capturado os pacotes UDP.
RECORTE A TELA E EDITE EM UM EDITOR GRÁFICO, colocando flechas para os campos indicados.
ETAPA 5
RECORTE as telas do terminal e do wireshark mostrando os vários pacotes. ETAPA 6PERGUNTAS baseadas na captura e em seus conhecimentos teóricos:
Parte 2 - Experimento com UDP - MUX e DEMUX
Parte 3 - Comunicação com UDP entre máquinas distintasRepita a Parte 1 - ETAPAS DE 1 a 4, mas desta vez converse com o colega ao lado e obtenha o endereço IP e a porta que será "escutada". Combine quem executará o programa servidor UDP e que será o cliente. Capture os pacotes e documente caracterizando os IPs e portas envolvidas (Etapa 4). Documente as telas no relatório. Parte 4 - Observando a característica SEM CONEXÃO x COM conexãoNeste experimento vocÊ NÃO DEVE transmitir dados! ETAPA 1No wireshark, faça um filtro para captura de pacotes UDP e TCP nas portas 5000. Coloque o wireshark a capturar pacotes. RECORTE a tela e cole no relatório ETAPA 2Abra quatro terminais. Um configurado para escuta UDP porta 5000, outro configurado para escuta TCP na porta 5000: TERMINAL 1 - TCP server netcat -l 5000 TERMINAL 2 - UDP "server" netcat -lk -u 5000 Execute os clientes nos dois outros terminais. Não transmita dados.
ETAPA 3Observe a captura de pacotes no wireshark. Documente a tela de captura no relatório. Qual a conclusão?
|
AULA 12 - DIA 2/06/2022
Objetivos
Após esta aula o aluno deverá:
- Saber explicar as funcionalidades básicas do TCP;
- Compreender e identificar através da análise de pacotes: as fases de estabelecimento de conexão e desconexão bem como a numeração de ytes em segmanetos;
Referências
Laboratório 10 - TCP Básico
PARTE 1 - Verificando o estabelecimento, troca de dados e finalização da conexão
O roteiro será executado sobre 2 máquinas virtuais, através do uso do Imunes. Abra o Imunes e crie uma rede extremamente simples com somente dois PCs, conforme a figura.
ETAPA 0
- Execute o Imunes e monte a rede conforme a figura.
- Inicie a simulação:
Experiment >> Execute
- Executar no pc2 um servidor TCP aguardando na porta 5555 na forma:
netcat -l -n -vv -p 5555
- Dica: para copiar o comando para o terminal do Imunes: copie da Wiki e cole com < Ctrl > + < Shift > + < V > ou clicando sobre a 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 o Wireshark na eth0 do pc1 (clique com o botão direito do mouse sobre o ícone do pc1 >> Wireshark >> eth0).
- Aplique um filtro "tcp" para limpar a apresentação.
- Executar no pc1 um cliente TCP que solicita uma conexão ao servidor: NÃO TRANSMITA NADA AINDA!!!
netcat -vv -n 10.0.0.21 5555
- 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
RECORTE A TELA DO WIRESHARK, identificando os pacotes relacionados com o estabelecimento de conexão. Pode usar o número de identificação do pacote para fins de referência.
ETAPA 2
- Enviar uma pequena mensagem de 5 caracteres, e no final teclar ENTER.
- Observe que no Wireshark os pacotes de dados do TCP. Um exemplo dessa captura encontra-se na Figura 2.
RECORTE A TELA identificando os pacotes relacionados com a troca de dados. inclua os pacotes de conexão para caracterizar a comunicação)
ETAPA 3 - DESCONEXÂO
- FAÇA um CTRL-C no netcat para encerrar a conexão no netcat.
RECORTE A TELA DO WIRESHARK identificando a fase de desconexão. Quantos pacotes foram trocados.
ETAPA 4 - Algumas perguntas sobre a comunicação
- 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? (Na janela central, clique sobre o Internet Protocol e observe o campo Protocol).
- Um dos objetivos do
- 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 [2])
ETAPA 5 - Obtendo uma visão geral da comunicação
- Gere com o Wireshark um diagrama da comunicação, ou diagrama de troca de mensagens, somente da conexão TCP estabelecida (não deve conter outras mensagens). Insira-o no relatório:
Statistics >> Flow Graph >> OK
- Analise esse diagrama, observando qual pacote contém os dados, ou seja, o texto que você digitou.
- Analise também o estabelecimento e fechamento de conexão, confere com o apresentado na teoria?
RECORTE A TELA e cole no relatório. Apresente a análise acima.
Desvendando o TCP - Número de Sequência, Controle de Erros e Funcionamento Full-Duplex
Objetivos
- Verificar alguns mecanismos do protocolo TCP:
- Controle de Erros: Significado de Número de Sequência, ACK
- Controle de Fluxo: Significado do campo Windows Size; Funcionamento do controle de fluxo;
- Comportamento Full-Duplex.
Configuração do Laboratório
- O roteiro será executado sobre máquinas virtuais, através do uso do Imunes.
- Abra um terminal e baixe o aquivo de configuração da rede a ser utilizada e um arquivo auxiliar dos experimentos:
cd ~ wget -4 http://docente.ifsc.edu.br/odilson/RED29004/TCP_Num_Seq_Erro.imn wget -4 http://docente.ifsc.edu.br/odilson/RED29004/arq30Bytes.txt
- Execute o Imunes, num terminal execute:
sudo imunes
- Carregue o arquivo:
File >> Open >> TCP_Num_Seq_Erro.imn
- Será apresentada uma simples rede a ser utilizada no experimento, composta de 2 PCs: Transmissor e Receptor.
PARTE 2 - Transmissão sem erros: Verificação de Número de Sequência e Reconhecimentos
- Inicie a simulação da rede no Imunes:
Experiment >> Execute
- Dica: para abrir um terminal de uma das máquinas da rede a ser simulada basta dar um duplo clique sobre a mesma.
- Copie o arquivo arq30Bytes.txt para a máquina Transmissor do Imunes. No terminal da máquina hospedeira (NÃO do Imunes) digite::
sudo hcp arq30Bytes.txt Transmissor:
- Execute o Wireshark no Receptor:
Clique direito do mouse sobre o ícone do Receptor >> Wireshark >> eth0..
- Execute o processo servidor no Receptor e prepare o mesmo para limitar a sua capacidade de recepção em cerca de 20 bytes (tamanho do buffer). Isto permitirá ver a quebra do arquivo de 30 bytes em alguns segmentos TCP:
sysctl -w net.ipv4.tcp_rmem='20 20 20' nc -vvnl -p 5555 > ArqRecebido.txt
- Dica: para copiar textos para o Imunes, copie normalmente o texto, por exemplo, da Wiki, com o < Ctrl > + < C > e cole com < Ctrl > + < Shift > + < V > ou clicando sobre a rodinha (scroll) do mouse.
- Envie o arquivo arq30Bytes.txt da máquina Transmissor:
nc -vvn 10.0.0.21 5555 < arq30Bytes.txt
- Pare os processos rodando nos terminais do Transmissor e Receptor com:
Ctrl + c
- Pare a captura de pacotes no Wireshark.
- Na tela do Wireshark você terá algo parecido com o apresentado na Figura 1.
- O comportamento padrão do Wireshark é redefinir o número de sequência para sempre iniciar em 0. Este comportamento pode ser alterado conforme nossas necessidades:
Edit >> Preferences >> Protocols >> TCP >> (Habilite/Desabilite) Relative sequence numbers >> OK
- O comportamento padrão do Wireshark é redefinir o número de sequência para sempre iniciar em 0. Este comportamento pode ser alterado conforme nossas necessidades:
- Analise como os dados foram transmitidos e reconhecidos.
- Perguntas
- Qual o número de sequência (normalizado pelo Wireshark) de cada segmento de dados transmitido (de PC1 para PC2) e qual o significado do número de reconhecimento em cada um deles?
- Como foi reconhecido cada segmento enviado?
- Relate esta análise por segmento usando os timestamps (coluna Time) como referência.
- Pare o experimento no Imunes:
Experiment >> Terminate
PARTE 2 - Transmissão com erros: retransmissões
- Inicie a simulação da rede no Imunes:
Experiment >> Execute
- Dica: para abrir um terminal de uma das máquinas da rede a ser simulada basta dar um duplo clique sobre a mesma.
- Copie o arquivo arq30Bytes.txt para a máquina Transmissor do Imunes. No terminal da máquina hospedeira (NÃO do Imunes) digite::
sudo hcp arq30Bytes.txt Transmissor:
- Execute o Wireshark no Receptor:
Clique direito do mouse sobre o ícone do Receptor >> Wireshark >> eth0..
- Execute o processo servidor no Receptor e prepare o mesmo para limitar a sua capacidade de recepção em cerca de 20 bytes (tamanho do buffer) e perda de dados em torno de 40%. Isto permitirá ver a quebra do arquivo de 30 bytes em alguns segmentos TCP:
sysctl -w net.ipv4.tcp_rmem='20 20 20' tc qdisc replace dev eth0 root netem loss 40% nc -vvnl -p 5555 > ArqRecebido.txt
- Dica: para copiar textos para o Imunes, copie normalmente o texto, por exemplo, da Wiki, com o < Ctrl > + < C > e cole com < Ctrl > + < Shift > + < V > ou clicando sobre a rodinha (scroll) do mouse.
- Envie o arquivo arq30Bytes.txt da máquina Transmissor:
nc -vvn 10.0.0.21 5555 < arq30Bytes.txt
- Obs: Caso receba uma mensagem "No route to host", repita o comando acima. O problema é gerado por perdas sucessivas de mensagens de estabelecimento de conexão do TCP, devido à perda de dados estabelecida em 40%.
- Pare os processos rodando nos terminais do Transmissor e Receptor com:
Ctrl + c
- Pare a captura de pacotes no Wireshark.
- Adicione o filtro tcp ao Wireshark, para limpar os dados apresentados.
- Analise como os dados foram transmitidos e reconhecidos.
- Perguntas:
- Houve perda de pacotes? Como você identificou isso?
- Os pacotes perdidos foram retransmitidos? Justifique.
- Pare o experimento no Imunes:
Experiment >> Terminate
PARTE 3 - Testando a capacidade do TCP de enviar dados de forma duplex
- Agora vamos fazer um pequeno teste de transmissão de arquivos entre dois colegas e observar o comportamento full-duplex.
- No experimento, o arquivo de uma máquina será transmitido para outra e vice-versa.
- Inicie a simulação da rede no Imunes:
Experiment >> Execute
- Num terminal da máquina do hospedeira/Linux (Não do Imunes) baixe os arquivos para o experimento e salve-os a pasta pessoal de seu usuário:
cd ~ wget -4 http://docente.ifsc.edu.br/odilson/RED29004/Servidor.tx -O Servidor.tx wget -4 http://docente.ifsc.edu.br/odilson/RED29004/Cliente.tx -O Cliente.tx
- Copie os arquivos para as máquinas do Imunes. No terminal da máquina hospedeira/Linux (NÃO do Imunes) digite:
sudo hcp Servidor.tx Transmissor: sudo hcp Cliente.tx Receptor:
- Execute o Wireshark no Receptor:
Clique direito do mouse sobre o ícone do Receptor >> Wireshark >> eth0..
- Limite o tamanho do buffer do TCP tanto no Transmissor quanto Receptor:
sysctl -w net.ipv4.tcp_rmem='10000 10000 10000' tc qdisc replace dev eth0 root netem loss 0%
- No Transmissor, que fará o papel de servidor por aguardar a conexão do cliente, execute o comando abaixo. Perceba que o Servidor vai enviar (o sinal < indica isso) um arquivo e vai receber e salvar (o sinal > indica isso) outro do Cliente.
nc -vvnl -p 5555 < Servidor.tx > Arq_recebido.rx
- No Receptor, que fará o papel de cliente, execute o comando abaixo. Perceba que ele também vai enviar e receber arquivo do servidor.
nc -vvn 10.0.0.20 5555 < Cliente.tx > Arq_recebido.rx
- Pare os processos rodando nos terminais do Transmissor e Receptor com:
Ctrl + c
- Confira o conteúdo dos arquivos recebidos no Transmissor e Receptor:
cat Arq_recebido.rx
- Pare a captura de pacotes no Wireshark.
- Adicione o filtro tcp ao Wireshark, para limpar os dados apresentados.
- Analise como os dados foram transmitidos e reconhecidos.
- Perguntas:
- Onde pode ser observado a comunicação full-duplex? Obs.: Foque a análise nos segmentos que contém [PSH, ACK].
- Como os ACKs são propagados, em pacotes exclusivos ou de carona (piggyback) com os dados?