Wireshark TCP v8.1 PT-BR

Fazer download em docx, pdf ou txt
Fazer download em docx, pdf ou txt
Você está na página 1de 9

Laboratório Wireshark:

TCP v8.1
Material complementar do livro Computer
Networking: A Top-Down Approach, 8th ed., J.F.
Kurose and K.W. Ross
“Diga-me e eu esqueço. Mostre-me e eu me lembro. Envolva-
me e eu entendo.” Provérbio chinês

© 2005-2021, J.F Kurose and K.W. Ross, All Rights Reserved

Neste laboratório, investigaremos o comportamento do célebre protocolo TCP em


detalhes. Faremos isso analisando um rastreamento dos segmentos TCP enviados e
recebidos na transferência de um arquivo de 150 KB (contendo o texto de Alice no País
das Maravilhas, de Lewis Carrol) do seu computador para um servidor remoto.
Estudaremos o uso do TCP 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. Capturando 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 do 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 de
Alice no País das Maravilhas) e, em seguida, transferir o arquivo para um servidor da
Web usando o HTTP POST método (ver 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
1
As referências a figuras e seções referem-se à 8ª edição de nosso texto, Computer Networks, A Top-down
Approach, 8ª ed., J.F. Kurose e K.W. Ross, Addison-Wesley/Pearson, 2020. Nosso site para este livro é
http://gaia.cs.umass.edu/kurose_ross Você encontrará muito material aberto interessante lá.
dados do seu computador para outro computador. Claro, estaremos executando o
Wireshark durante este tempo para obter o rastreamento dos segmentos TCP enviados e
recebidos do seu computador.

Faça o seguinte:
● Inicie o seu navegador da web. Acesse
http://gaia.cs.umass.edu/wireshark-labs/alice.txt e recupere uma cópia ASCII de
Alice no País das Maravilhas. Armazene-o como um arquivo .txt em algum lugar
do seu computador.
● Em seguida, vá para http://gaia.cs.umass.edu/wireshark-labs/TCP-wireshark-
file1.html.
● Você deve ver uma tela que se parece com a Figura 1.

Figura 1: Página para carregar o arquivo alice.txt do seu computador para


gaia.cs.umass.edu

● Use o botão Procurar neste formulário para o arquivo em seu computador que
você acabou de criar contendo Alice no País das Maravilhas. Não pressione o
botão “Carregar arquivo alice.txt” ainda.
● Agora inicie o Wireshark e comece a captura de pacotes (consulte os laboratórios
anteriores do Wireshark se precisar de uma atualização sobre como fazer isso).
● Voltando ao seu navegador, pressione o botão “Upload arquivo alice.txt” para
enviar o arquivo para o servidor gaia.cs.umass.edu. Após o upload do arquivo,
uma breve mensagem de parabéns será exibida na janela do navegador.
● Pare a captura de pacotes do Wireshark. A janela do Wireshark deve ser
semelhante à janela mostrada na Figura 2.

Figura 2: Sucesso! Você carregou um arquivo para gaia.cs.umass.edu e


esperançosamente capturou um rastreamento de pacote Wireshark ao fazê-
lo.

Se você não conseguir executar o Wireshark em uma conexão de rede ao vivo, você pode
baixar um rastreamento de pacote que foi capturado seguindo as etapas acima em um dos
computadores do autor2. Além disso, você pode achar valioso fazer o download desse
rastreamento, mesmo que tenha capturado seu próprio rastreamento e usado, bem como
seu próprio rastreamento, ao explorar as questões abaixo.

2. Uma primeira olhada no trace capturado


Antes de analisar o comportamento da conexão TCP em detalhes, vamos dar uma olhada
em alto nível do rastreamento.

Vamos começar examinando a mensagem HTTP POST que carregou o arquivo alice.txt
para gaia.cs.umass.edu do seu computador. Encontre esse arquivo em seu rastreamento
do Wireshark e expanda a mensagem HTTP para que possamos dar uma olhada na
mensagem HTTP POST com mais cuidado. A tela do Wireshark deve se parecer com a
Figura 3.

2
Você pode baixar o arquivo zip http://gaia.cs.umass.edu/wireshark-labs/wireshark-traces-8.1.zip e extrair
o arquivo de rastreamento tcp-wireshark-trace1-1. Este arquivo de rastreamento pode ser usado para
responder a este laboratório do Wireshark sem realmente capturar pacotes por conta própria. Este
rastreamento foi feito usando o Wireshark rodando em um dos computadores do autor, durante a execução
das etapas indicadas neste laboratório do Wireshark. Depois de baixar um arquivo de rastreamento, você
pode carregá-lo no Wireshark e visualizar o rastreamento usando o menu suspenso Arquivo, escolhendo
Abrir e, em seguida, selecionando o nome do arquivo de rastreamento.
Figura 3: expandindo a mensagem HTTP POST que carregou alice.txt do seu computador
para gaia.cs.umass.edu

Há algumas coisas a serem observadas aqui:


● O corpo da mensagem HTTP POST da camada de aplicativo contém o conteúdo
do arquivo alice.txt, que é um arquivo grande com mais de 152 K bytes. OK - não
é tão grande, mas vai ser muito grande para esta mensagem HTTP POST estar
contida em apenas um segmento TCP!
● Na verdade, conforme mostrado na janela do Wireshark na Figura 3, vemos que a
mensagem HTTP POST foi espalhada por 106 segmentos TCP. Isso é mostrado
onde a seta vermelha é colocada na Figura 3 [Aparte: Wireshark não tem uma seta
vermelha como essa; nós o adicionamos à figura para ser útil ☺]. Se você olhar
com mais cuidado, verá que o Wireshark também está sendo muito útil para você,
informando que o primeiro segmento TCP contendo o início da mensagem POST
é o pacote nº 4 no rastreamento específico para o exemplo da Figura 3 , que é o
rastreamento tcp-wireshark-trace1-1 observado na nota de rodapé 2. O segundo
segmento TCP contendo a mensagem POST no pacote nº 5 no rastreamento e
assim por diante.

Vamos agora “colocar a mão na massa” examinando alguns segmentos TCP.


● Primeiro, filtre os pacotes exibidos na janela do Wireshark digitando “tcp”
(minúsculas, sem aspas, e não se esqueça de pressionar return depois de entrar!)
na janela de especificação do filtro de exibição na parte superior da janela do
Wireshark. A exibição do Wireshark deve se parecer com a Figura 4. Na Figura 4,
observamos o segmento TCP que tem seu bit SYN definido – esta é a primeira
mensagem TCP no handshake de três vias que configura a conexão TCP para
gaia.cs .umass.edu que eventualmente carregará a mensagem HTTP POST e o
arquivo alice.txt. Também observamos o segmento SYNACK (a segunda etapa do
handshake de três vias TCP), bem como o segmento TCP (pacote nº 4, conforme
discutido acima) que carrega a mensagem POST e o início do arquivo alice.txt.
Obviamente, se você estiver usando seu próprio arquivo de rastreamento, os
números dos pacotes serão diferentes, mas você verá um comportamento
semelhante ao mostrado nas Figuras 3 e 4.

Figura 4: Segmentos TCP envolvidos no envio da mensagem HTTP POST (incluindo o


arquivo alice.txt) para gaia.cs.umass.edu

Responda as seguintes questões3, a partir do seu próprio rastreamento ao vivo ou abrindo


o arquivo de pacote capturado pelo Wireshark tcp-wireshark-trace1-1 em
http://gaia.cs.umass.edu/wireshark-labs/wireshark-traces-8.1.zip

3
For the author’s class, when answering the following questions with hand-in assignments, students
sometimes need to print out specific packets (see the introductory Wireshark lab for an explanation of how
to do this) and indicate where in the packet they’ve found the information that answers a question.
1. Qual é o endereço IP e o número da porta TCP usado pelo computador cliente
(origem) que está transferindo o arquivo alice.txt para gaia.cs.umass.edu? Para
responder a essa 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 do cabeçalho do pacote
selecionado” (consulte a Figura 2 em “Introdução ao Wireshark” Lab se você não
tiver certeza sobre as janelas do Wireshark).
2. Qual é o endereço IP de gaia.cs.umass.edu? Em qual número de porta ele está
enviando e recebendo segmentos TCP para esta conexão?

Como este laboratório é sobre TCP em vez de HTTP, agora altere a janela “listing of
capture packets” do Wireshark para que ela mostre informações sobre os segmentos TCP
contendo as mensagens HTTP, em vez das mensagens HTTP, como na Figura 4 acima.
Isso é o que estamos procurando - uma série de segmentos TCP enviados entre seu
computador e gaia.cs.umass.edu!

3. Noções básicas de TCP


Responda às seguintes perguntas para os segmentos TCP:

3. Qual é o número de sequência do segmento TCP SYN usado para iniciar a


conexão TCP entre o computador cliente e gaia.cs.umass.edu? (Observação: este
é o número de sequência “bruto” transportado no próprio segmento TCP; NÃO é
o número do pacote na coluna “No.” na janela do Wireshark. Lembre-se de
que não existe um “número do pacote” no TCP ou UDP; como você sabe, existem
números de sequência no TCP e é isso que estamos procurando aqui. Observe
também que este não é o número de sequência relativo em relação ao número de
sequência inicial desta sessão TCP.). O que há neste segmento TCP que identifica
o segmento como um segmento SYN? O receptor TCP nesta sessão será capaz de
usar Reconhecimentos Seletivos (permitindo que o TCP funcione um pouco mais
como um receptor de “repetição seletiva”, consulte a seção 3.4.5 no texto)?
4. Qual é o número de sequência do segmento SYNACK enviado por
gaia.cs.umass.edu ao computador cliente em resposta ao SYN? O que há no
segmento que identifica o segmento como um segmento SYNACK? Qual é o
valor do campo Acknowledgement no segmento SYNACK? Como
gaia.cs.umass.edu determinou esse valor?
5. Qual é o número de sequência do segmento TCP que contém o cabeçalho do
comando HTTP POST? Observe que, para encontrar o cabeçalho da mensagem
POST, você precisará cavar no campo de conteúdo do pacote na parte inferior da
janela do Wireshark, procurando por um segmento com o texto ASCII “POST”
dentro de seu campo DATA4,5. Quantos bytes de dados estão contidos no campo

4
Dica: este segmento TCP é enviado pelo cliente logo (mas nem sempre imediatamente) após o segmento
SYNACK ser recebido do servidor.
5
Observe que se você filtrar para mostrar apenas mensagens “http”, verá que o segmento TCP que o
Wireshark associa à mensagem HTTP POST é o último segmento TCP na conexão (que contém o texto no
final de alice.txt: “THE END”) e não o primeiro segmento de transporte de dados na conexão. Alunos (e
de carga útil (dados) desse segmento TCP? Todos os dados no arquivo transferido
alice.txt couberam neste único segmento?
6. Considere o segmento TCP contendo o HTTP “POST” como o primeiro segmento
na parte de transferência de dados da conexão TCP.
● A que horas foi enviado o primeiro segmento (aquele que contém o HTTP
POST) na parte de transferência de dados da conexão TCP?
● A que horas foi recebido o ACK para este primeiro segmento contendo dados?

● Qual é o RTT para este primeiro segmento contendo dados?

● Qual é o valor RTT do segundo segmento TCP portador de dados e seu ACK?

● Qual é o valor EstimatedRTT (ver Seção 3.5.3, no texto) depois que o ACK
para o segundo segmento portador de dados é recebido? Suponha que, ao
fazer este cálculo após o recebimento do ACK para o segundo segmento, o
valor inicial de EstimatedRTT seja igual ao RTT medido para o primeiro
segmento e, em seguida, seja calculado usando a equação EstimatedRTT na
página 242 e um valor de α = 0,125.
Nota: O Wireshark possui um bom recurso que permite plotar 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->Round Trip Time Graph.
7. Qual é o comprimento (cabeçalho mais carga útil) de cada um dos primeiros
quatro segmentos TCP de transporte de dados?6
8. Qual é a quantidade mínima de espaço de buffer disponível anunciado ao cliente
por gaia.cs.umass.edu entre esses quatro primeiros segmentos TCP portadores de
dados? A falta de espaço no buffer do receptor alguma vez estrangulou o
transmissor para esses primeiros quatro segmentos de transporte de dados?
9. Há algum segmento retransmitido no arquivo de rastreamento? O que você
verificou (no rastreamento) para responder a esta pergunta?
10. Quantos dados o receptor normalmente reconhece em um ACK entre os dez
primeiros segmentos de transporte de dados enviados do cliente para
gaia.cs.umass.edu? Você pode identificar casos em que o receptor está
confirmando todos os outros segmentos recebidos (consulte a Tabela 3.2 no texto)
entre esses dez primeiros segmentos portadores de dados?
11. Qual é o throughput (bytes transferidos por unidade de tempo) para a conexão
TCP? Explique como você calculou esse valor.

professores!) geralmente acham isso inesperado e/ou confuso.


6
Os segmentos TCP no arquivo de rastreamento tcp-wireshark-trace1-1 têm menos de 1480 bytes. Isso
ocorre porque o computador no qual o rastreamento foi coletado possui uma placa de interface que limita o
comprimento do datagrama IP máximo a 1500 bytes e há um mínimo de 40 bytes de dados de cabeçalho
TCP/IP. Este valor de 1500 bytes é um comprimento máximo bastante típico para um datagrama IP da
Internet.
4. Controle de congestionamento TCP em ação (opcional)

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 - Time-
Sequence-Graph (Stevens) - para plotar os dados.
● Selecione um segmento TCP enviado pelo cliente na janela “listing of capture-
packets” do Wireshark correspondente à transferência de alice.txt do cliente para
gaia.cs.umass.edu. Em seguida, selecione o menu: Estatísticas->TCP Stream
Graph->Time-Sequence-Graph (Stevens7). Você deve ver um gráfico semelhante
ao gráfico da Figura 5, que foi criado a partir dos pacotes capturados no
rastreamento de pacote tcp-wireshark-trace1-1. Você pode ter que expandir,
encolher e mexer nos intervalos mostrados nos eixos para que seu gráfico fique
parecido com a Figura 5.

Figura 5: Um gráfico de número de sequência versus tempo (formato Stevens) de


segmentos TCP.

Aqui, cada ponto representa um segmento TCP enviado, plotando o número de


sequência do segmento versus o horário em que foi enviado. Observe que um
conjunto de pontos empilhados um sobre o outro representa uma série de pacotes
(às vezes chamados de “frota” de pacotes) que foram enviados lado a lado pelo
remetente.

7
William Stevens escreveu o livro “bíblico” sobre TCP, conhecido como TCP Illustrated.
Responda à seguinte pergunta para os segmentos TCP no rastreamento de pacote tcp-
wireshark-trace1-1 (consulte a nota de rodapé anterior2)
12. Use a ferramenta de plotagem Time-Sequence-Graph (Stevens) para visualizar o
número de sequência versus plotagem de tempo dos segmentos sendo enviados do
cliente para o servidor gaia.cs.umass.edu. Considere as “frotas” de pacotes
enviados em torno de t = 0,025, t = 0,053, t = 0,082 et = 0,1. Comente se isso
parece que o TCP está em sua fase de início lento, fase de prevenção de
congestionamento ou alguma outra fase. A Figura 6 mostra uma visão
ligeiramente diferente desses dados.
13. Estas “frotas” de segmentos parecem ter alguma periodicidade. O que você pode
dizer sobre o período?
14. Responda a cada uma das duas perguntas acima para o rastreamento que você
coletou quando transferiu um arquivo do seu computador para gaia.cs.umass.edu

Figura 6: Outra exibição dos mesmos dados da Figura 5.

Você também pode gostar