Baixe o app para aproveitar ainda mais
Prévia do material em texto
Laboratório Wireshark: TCP v7.0 Suplemento para Rede de computadores: uma abordagem de cima para baixo, 7º ed., JF Kurose e KW Ross “Diga-me e eu esqueço. Mostre-me e eu lembro. Envolva-me e eu entendo. ”provérbio chinês © 2005-2016, JF Kurose e KW Ross, Todos os direitos reservados Neste laboratório, investigaremos o comportamento do famoso protocolo TCP em detalhes. Faremos isso analisando um traço dos segmentos TCP enviados e recebidos na transferência de um arquivo de 150 KB (contendo o texto de Lewis CarrolAlice no País das Maravilhas) do seu computador para um servidor remoto. Estudaremos o uso de números de sequência e confirmação para fornecer transferência de dados confiável; veremos o algoritmo de controle de congestionamento do TCP - início lento e prevenção de congestionamento - em ação; e veremos o mecanismo de controle de fluxo anunciado pelo receptor do TCP. Também consideraremos brevemente a configuração da conexão TCP e investigaremos o desempenho (taxa de transferência e tempo de ida e volta) da conexão TCP entre seu computador e o servidor. Antes de iniciar este laboratório, você provavelmente desejará revisar as seções 3.5 e 3.7 no texto1 1. Capturar uma transferência TCP em massa do seu computador para um servidor remoto Antes de começar nossa exploração do TCP, precisaremos usar o Wireshark para obter um rastreamento de pacote da transferência TCP de um arquivo de seu computador para um servidor remoto. Você fará isso acessando uma página da Web que permitirá inserir o nome de um arquivo armazenado em seu computador (que contém o texto ASCII deAlice no Pais das Maravilhas), e, em seguida, transfira o arquivo para um servidor Web usando o método HTTP POST (consulte a seção 2.2.3 no texto). Estamos usando o método POST em vez do método GET, pois gostaríamos de transferir uma grande quantidade de dadosa partir de seu computador para outro computador. Claro, estaremos executando o Wireshark durante este tempo para obter o rastreamento dos segmentos TCP enviados e recebidos de seu computador. 1 As referências às figuras e seções são para os 7º edição do nosso texto, Redes de computadores, uma abordagem de cima para baixo, 7º ed., JF Kurose e KW Ross, Addison-Wesley / Pearson, 2016. Faça o seguinte: • Inicie seu navegador da web. Vai ahttp://gaia.cs.umass.edu/wireshark- labs / alice.txt e recuperar uma cópia ASCII de Alice no Pais das Maravilhas. Armazene este arquivo em algum lugar do seu computador. • Próximo vá para http://gaia.cs.umass.edu/wireshark-labs/TCP-wireshark-file1.html. • Você deverá ver uma tela semelhante a: • Use o Navegar botão neste formulário para inserir o nome do arquivo (nome do caminho completo) em seu computador contendo Alice no Pais das Maravilhas (ou manualmente). Ainda não pressione o botão “Carregar arquivo alice.txt" botão. • Agora inicie o Wireshark e comece a captura de pacotes (Captura-> Iniciar) e então pressione OK na tela Wireshark Packet Capture Options (não precisaremos selecionar nenhuma opção aqui). • Voltando ao seu navegador, pressione o botão “Carregar arquivo alice.txt”Para enviar o arquivo para o servidor gaia.cs.umass.edu. Assim que o arquivo for carregado, uma breve mensagem de parabéns será exibida na janela do seu navegador. • Pare a captura de pacotes do Wireshark. A janela do Wireshark deve ser semelhante à janela mostrada abaixo. Se você não conseguir executar o Wireshark em uma conexão de rede ativa, você pode baixar um arquivo de rastreamento de pacote que foi capturado enquanto seguia as etapas acima em um dos computadores do autor2 Você pode achar valioso fazer o download deste rastreamento, mesmo se você tiver capturado seu próprio rastreamento e usá-lo, bem como seu próprio rastreamento, ao explorar as questões abaixo. 2. Uma primeira olhada no traço capturado Antes de analisar o comportamento da conexão TCP em detalhes, vamos dar uma visão de alto nível do rastreamento. • Primeiro, filtre os pacotes exibidos na janela do Wireshark inserindo “tcp” (letras minúsculas, sem aspas e não se esqueça de pressionar Enter após inserir!) Na janela de especificação do filtro de exibição na parte superior da janela do Wireshark. O que você deve ver é uma série de mensagens TCP e HTTP entre seu computador e gaia.cs.umass.edu. Você deve ver o handshake inicial de três vias contendo uma mensagem SYN. Você deve ver uma mensagem HTTP POST. Dependendo da versão do 2 Baixe o arquivo zip http://gaia.cs.umass.edu/wireshark-labs/wireshark-traces.zip e extraia o arquivo tcp- ethereal-trace-1. Os rastreamentos neste arquivo zip foram coletados pelo Wireshark em execução em um dos computadores do autor, ao executar as etapas indicadas no laboratório do Wireshark. Depois de fazer o download do rastreamento, você pode carregá-lo no Wireshark e visualizar o rastreamento usando oArquivo menu suspenso, escolhendo Abrir, e, em seguida, selecionando o arquivo de rastreamento tcp-ethereal-trace-1. O Wireshark que você está usando, pode ver uma série de mensagens de “Continuação HTTP” sendo enviadas de seu computador para gaia.cs.umass.edu. Lembre-se de nossa discussão no laboratório HTTP Wireshark anterior, que não é uma mensagem HTTP Continuation - essa é a maneira do Wireshark de indicar que há vários segmentos TCP sendo usados para transportar uma única mensagem HTTP. Em versões mais recentes do Wireshark, você verá “[segmento TCP de um PDU remontado]” na coluna Info da tela do Wireshark para indicar que este segmento TCP continha dados que pertenciam a uma mensagem de protocolo da camada superior (em nosso caso aqui , HTTP). Você também deve ver os segmentos TCP ACK sendo retornados de gaia.cs.umass.edu para o seu computador. Responda às seguintes perguntas, abrindo o arquivo de pacote capturado do Wireshark tcp- ethereal- trace-1 dentro http://gaia.cs.umass.edu/wireshark-labs/wireshark-traces.zip (isto é, baixe o rastreamento e abra-o no Wireshark; consulte a nota de rodapé 2). Sempre que possível, ao responder a uma pergunta, você deve entregar uma impressão do (s) pacote (s) dentro do rastreamento que você usou para responder à pergunta feita. Faça anotações na impressão3 para explicar sua resposta. Para imprimir um pacote, use Arquivo-> Imprimir, escolher Pacote selecionado apenas, escolher Linha de resumo do pacote, e selecione a quantidade mínima de detalhes do pacote de que você precisa para responder à pergunta. 1. Qual é o endereço IP e o número da porta TCP usados pelo computador cliente (origem) que está transferindo o arquivo para gaia.cs.umass.edu? Para responder a esta pergunta, provavelmente é mais fácil selecionar uma mensagem HTTP e explorar os detalhes do pacote TCP usado para transportar essa mensagem HTTP, usando os "detalhes da janela de cabeçalho do pacote selecionado" (consulte a Figura 2 em "Introdução Laboratório Wireshark ”se você não tiver certeza sobre as janelas do Wireshark. 2. Qual é o endereço IP de gaia.cs.umass.edu? Em que número de porta está enviando e recebendo segmentos TCP para esta conexão? Se você conseguiu criar seu próprio rastreamento, responda à seguinte pergunta: 3. Qual é o endereço IP e o número da porta TCP usados pelo computador cliente (origem) para transferir o arquivo para gaia.cs.umass.edu? Como este laboratório é sobre TCP em vez de HTTP, vamos mudar a janela “listagem de pacotes capturados” do Wireshark para que ela mostre informações sobre os segmentos TCP que contêm as mensagens HTTP, em vez das mensagens HTTP. Para que o Wireshark faça isso, selecioneAnalisar-> Protocolos ativados. Em seguida, desmarque a caixa HTTP e selecione OK. Agora você deve ver uma janela do Wireshark semelhante a: 3 O que queremos dizer com “anotar”? Se você entregar uma cópia em papel, destaque onde na impressão você encontrou a resposta e adicione algum texto (de preferência com uma caneta colorida), observando o que encontrou no que destacou. Se você entregar uma cópia eletrônica, seria ótimo se você tambémpudesse destacar e fazer anotações. Isso é o que estamos procurando - uma série de segmentos TCP enviados entre o seu computador e gaia.cs.umass.edu. Usaremos o rastreamento de pacote que você capturou (e / ou o rastreamento de pacote tcp-ethereal-trace-1 dentro http://gaia.cs.umass.edu/wireshark-labs/wireshark- traces.zip; veja a nota de rodapé anterior) para estudar o comportamento do TCP no restante deste laboratório. 3. Noções básicas de TCP Responda às seguintes perguntas para os segmentos TCP: 4. Qual é o número de seqüência do segmento TCP SYN usado para iniciar a conexão TCP entre o computador cliente e gaia.cs.umass.edu? O que há no segmento que identifica o segmento como um segmento SYN? 5. Qual é o número de sequência do segmento SYNACK enviado por gaia.cs.umass.edu ao computador cliente em resposta ao SYN? Qual é o valor do Campo de confirmação no segmento SYNACK? Como gaia.cs.umass.edu determinou esse valor? O que há no segmento que identifica o segmento como um segmento SYNACK? 6. Qual é o número de seqüência do segmento TCP que contém o comando HTTP POST? Observe que para encontrar o comando POST, você precisará cavar no campo de conteúdo do pacote na parte inferior da janela do Wireshark, procurando por um segmento com um “POST” dentro de seu campo DATA. 7. Considere o segmento TCP que contém o HTTP POST como o primeiro segmento na conexão TCP. Quais são os números de sequência dos primeiros seis segmentos no Conexão TCP (incluindo o segmento que contém o HTTP POST)? A que horas cada segmento foi enviado? Quando o ACK de cada segmento foi recebido? Dada a diferença entre quando cada segmento TCP foi enviado e quando sua confirmação foi recebida, qual é o valor RTT para cada um dos seis segmentos? O que éEstimatedRTT valor (consulte a seção 3.5.3, página 242 em texto) após o recebimento de cada ACK? Suponha que o valor do EstimatedRTT é igual ao RTT medido para o primeiro segmento, e então é calculado usando o EstimatedRTT equação na página 242 para todos os subseqüentes segmentos. Observação: O Wireshark tem um bom recurso que permite traçar o RTT para cada um dos segmentos TCP enviados. Selecione um segmento TCP na janela “listagem de pacotes capturados” que está sendo enviado do cliente para o servidor gaia.cs.umass.edu. Em seguida, selecione:Estatísticas-> TCP Stream Graph- > Gráfico de tempo de ida e volta. 8. Qual é o comprimento de cada um dos primeiros seis segmentos TCP?4 9. Qual é a quantidade mínima de espaço de buffer disponível anunciado no recebido para todo o rastreamento? A falta de espaço no buffer do receptor alguma vez estrangula o remetente? 10. Há algum segmento retransmitido no arquivo de rastreamento? O que você verificou (no rastreamento) para responder a essa pergunta? 11. Quantos dados o receptor normalmente reconhece em um ACK? Você pode identificar casos em que o receptor está fazendo ACKing todos os outros segmentos recebidos (consulte a Tabela 3.2 na página 250 no texto). 12. Qual é a taxa de transferência (bytes transferidos por unidade de tempo) para a conexão TCP? Explique como você calculou esse valor. 4 Os segmentos TCP no arquivo de rastreamento tcp-ethereal-trace-1 têm menos de 1460 bytes. Isso ocorre porque o computador no qual o rastreamento foi coletado possui uma placa Ethernet que limita o comprimento do pacote IP máximo a 1500 bytes (40 bytes de dados de cabeçalho TCP / IP e 1460 bytes de carga útil de TCP). Este valor de 1500 bytes é o comprimento máximo padrão permitido pela Ethernet. Se o seu rastreamento indicar um comprimento TCP maior que 1500 bytes, e seu computador estiver usando uma conexão Ethernet, então o Wireshark está relatando o comprimento do segmento TCP errado; provavelmente também mostrará apenas um grande segmento TCP em vez de vários segmentos menores. Provavelmente, seu computador está enviando vários segmentos menores, conforme indicado pelos ACKs que recebe. Essa inconsistência nos comprimentos de segmento relatados é devido à interação entre o driver Ethernet e o software Wireshark. Recomendamos que, se você tiver essa inconsistência, execute este laboratório usando o arquivo de rastreamento fornecido. 4. Controle de congestionamento TCP em ação Vamos agora examinar a quantidade de dados enviados por unidade de tempo do cliente para o servidor. Em vez de (tediosamente!) Calcular isso a partir dos dados brutos na janela do Wireshark, usaremos um dos utilitários gráficos TCP do Wireshark -Gráfico de sequência de tempo (Stevens) - para traçar os dados. • Selecione um segmento TCP na janela “listagem de pacotes capturados” do Wireshark. Em seguida, selecione o menu:Estatísticas-> TCP Stream Graph-> Time- Sequence- Graph (Stevens). Você deve ver um gráfico semelhante ao seguinte, que foi criado a partir dos pacotes capturados em o rastreamento do pacote tcp-etéreo- trace-1 dentro http://gaia.cs.umass.edu/wireshark-labs/wireshark-traces.zip (veja a nota de rodapé anterior): Aqui, cada ponto representa um segmento TCP enviado, traçando o número de sequência do segmento em relação à hora em que foi enviado. Observe que um conjunto de pontos empilhados um sobre o outro representa uma série de pacotes que foram enviados consecutivamente pelo remetente. Responda às seguintes perguntas para os segmentos TCP o rastreamento do pacote tcp-etéreo- trace-1 dentro http://gaia.cs.umass.edu/wireshark-labs/wireshark-traces.zip 13. Use o Gráfico de sequência de tempo (Stevens) ferramenta de plotagem para visualizar o número de sequência versus gráfico de tempo dos segmentos sendo enviados do cliente para o servidor gaia.cs.umass.edu. Você consegue identificar onde a fase de início lento do TCP começa e termina, e onde a prevenção de congestionamento assume? Comente sobre as maneiras pelas quais os dados medidos diferem do comportamento idealizado do TCP que estudamos no texto. 14. Responda a cada uma das duas perguntas acima para o rastreamento que você coletou quando transferiu um arquivo de seu computador para gaia.cs.umass.edu
Compartilhar