Wireshark

Análise de captura de pacotes TCP

Análise de captura de pacotes TCP

O que é TCP?

TCP (Transmission Control Protocol) é um protocolo de camada de transporte orientado para conexão.

Intenção deste artigo:

Para entender todo o TCP não é uma tarefa fácil. Neste artigo, tentaremos entender as trocas de pacotes básicos do TCP através do Wireshark. A teoria pode ser lida pela internet. Vamos nos concentrar mais na análise de captura de pacotes.

Por que o TCP é famoso?

Existem vários motivos pelos quais o TCP é tão famoso:

  1. TCP é um protocolo orientado para conexão, então a confiabilidade é muito alta.
  2. TCP pode controlar o congestionamento por si mesmo.
  3. TCP pode detectar erros.
  4. TCP usa protocolo de controle de fluxo.
  5. TCP tem recursos de atraso ACK.
  6. TCP tem recurso ACK seletivo.
  7. TCP tem recurso de chamada de janela para melhoria de taxa de transferência.

Existem tantos outros recursos que tornam o TCP tão famoso.

Análise do TCP:

Seguiremos alguns passos para gerar quadros TCP.

Passo 1: A maneira simples de gerar pacotes TCP é acessando qualquer site HTTP. A razão é que o HTTP é um protocolo da camada de aplicativo e usa o TCP como protocolo da camada de transporte subjacente.

Para saber mais sobre HTTP siga o link abaixo

https: // linuxhint.com / http_wireshark /

Passo 2: Iniciar Wireshark.

Etapa 3: Abra o link abaixo em qualquer navegador.

http: // gaia.cs.umass.edu / wirehark-labs / alice.TXT

Passo 4: Pare o Wireshark e coloque o TCP como filtro.

Etapa 5: ANÁLISE

Agora devemos ver os pacotes de handshake TCP de 3 vias. Aqui está o diagrama simples.

Quadro 1: SYN [Sincronização]

SYN é o primeiro pacote que vem do cliente para o servidor. No nosso caso 192.168.1.6 é o cliente [o sistema onde abrimos o navegador] e gaia.cs.umass.edu é o servidor.

Aqui estão alguns campos importantes no quadro SYN

O quadro SYN é necessário para enviar os recursos do cliente para o servidor.

Quadro 2: SYN + ACK [Sincronização + Confirmação]

SYN, ACK é o segundo pacote que vem do servidor para o cliente.

Aqui estão alguns campos importantes em SYN, quadro ACK

O quadro SYN, ACK é necessário para enviar os recursos do servidor para o cliente.

Agora o cliente e o servidor compartilharam seus recursos.

Frame 3: ACK [Confirmação]

ACK é o terceiro pacote que vem do cliente para o servidor. Isso é basicamente uma confirmação do cliente para o servidor e também é uma aceitação dos recursos enviados pelo servidor.

Aqui estão os campos importantes para ACK.

Vamos verificar as informações importantes compartilhadas entre cliente e servidor:

ClienteServidor

Tamanho da janela de recepção: 64240 bytes                          Tamanho da janela de recepção: 29200 bytes

Tamanho máximo do segmento: 1460 bytes                         Tamanho máximo do segmento: 1412 bytes

SACK permitido: sim                                                 SACK permitido: sim

Escala da janela: 8 (multiplique por 256)                          Escala da janela: 7 (multiplique por 128)

Percebemos que existem diferenças de valores. Se o cliente ou servidor aceitar os recursos de outros, o handshake de 3 vias foi bem-sucedido.

Cabeçalho TCP:

Aqui estão os campos importantes do cabeçalho TCP:

  1. Porta de origem (16 bits): Esta é a porta de envio.
Exemplo: Porta de origem: 50026 (50026)
  1. Porta de destino (16 bits): Esta é a porta de recepção.
Exemplo: Porta de Destino: http (80)
  1. Número de sequência (32 bits):
Exemplo: número de sequência: 0 (número de sequência relativa)
  1. Número de confirmação (32 bits): Se o sinalizador ACK estiver definido, o valor deste campo é o próximo número de sequência que o remetente do ACK está esperando.
Exemplo: Número de confirmação: 0
  1. Comprimento do cabeçalho: O tamanho do cabeçalho pode variar de 20 bytes e máximo de 60 bytes.
Exemplo: 1000… = Comprimento do cabeçalho: 32 bytes (8)
  1. Sinalizadores (9 bits):
Exemplo:
… = Reservado: Não definido
… 0… = Nonce: Não definido
… 0… = Janela de congestionamento reduzida (CWR): Não definido
… 0… = ECN-Echo: Não definido
… 0… = Urgente: Não definido
… 0… = Reconhecimento: Não definido
… 0… = Push: Não definido
… 0… = Reiniciar: Não definido
… 1. = Syn: Set
… 0 = Fin: Não definido
  1. Tamanho da janela (16 bits): Este é o tamanho da janela de recepção em bytes.
Exemplo: valor do tamanho da janela: 64240
  1. Soma de verificação (16 bits):

É usada a verificação de erros do cabeçalho.

Exemplo: soma de verificação: 0x436f
  1. Ponteiro urgente (16 bits):

Este é um deslocamento do número de sequência que indica o último byte de dados urgente.

Exemplo: Ponteiro urgente: 0
  1. Opções:
Exemplo:
Opção TCP - tamanho máximo do segmento: 1460 bytes
Opção TCP - Sem operação (NOP)
Opção TCP - escala da janela: 8 (multiplique por 256)
Opção TCP - SACK permitido

Observação:

O tamanho do cabeçalho TCP de SYN é de 32 bytes.

Tamanho do cabeçalho TCP de SYN, ACK é de 32 bytes.

O tamanho do cabeçalho TCP do ACK é de 20 bytes, pois não tem campos de opção.

Dados TCP:

Aqui está a captura de tela com explicação para dados TCP e TCP ACK. Aqui podemos ver o recurso de atraso de TCP ACK. O servidor enviou três pacotes de dados TCP para o cliente e o cliente enviou um atraso ACK para dizer ao servidor que recebeu todos os três pacotes de dados TCP. É por isso que em TCP ACK [Pacote número 96 na imagem] vemos ACK = 14121, o que significa que o cliente recebeu até 14121 bytes.

Referência:

Para a teoria básica do TCP, consulte

https: // en.wikipedia.org / wiki / Transmission_Control_Protocol

5 melhores jogos de arcade para Linux
Hoje em dia, os computadores são máquinas sérias usadas para jogos. Se você não pode obter a nova pontuação máxima, você saberá o que quero dizer. Nes...
Batalha por Wesnoth 1.13.6 Desenvolvimento lançado
Batalha por Wesnoth 1.13.6 lançado no mês passado, é o sexto lançamento de desenvolvimento no 1.13.série x e oferece uma série de melhorias, principal...
Como instalar o League Of Legends no Ubuntu 14.04
Se você é fã de League of Legends, esta é uma oportunidade para testar o funcionamento de League of Legends. Observe que LOL é suportado no PlayOnLinu...