Aperto de mão de 3 vias TCP (SYN, SYN-ACK,ACK)

⚡ Resumo Inteligente

O handshake TCP de três vias é o ritual de estabelecimento de conexão com o qual toda sessão TCP começa. Um cliente e um servidor trocam pacotes SYN, SYN-ACK e ACK para sincronizar os números de sequência e confirmar que ambos os lados estão prontos antes que um único byte de dados da aplicação seja enviado.

  • 📨 Conheça os quatro tipos de mensagens: SYN inicia, ACK confirma, SYN-ACK combina ambos e FIN encerra uma conexão TCP.
  • 🔁 Siga os três passos: cliente SYN → servidor SYN-ACK → cliente ACK; a sessão é estabelecida somente após a chegada do terceiro pacote.
  • 🔢 Os números de sequência importam: Cada lado escolhe um número de sequência inicial; o outro lado confirma adicionando um, o que mantém o fluxo de bytes ordenado.
  • 🚪 Plano de desmontagem: Após a transferência de dados, o TCP fecha a conexão com pares FIN/ACK para liberar o socket em ambas as extremidades.
  • 🤖 Utilize IA para análise de pacotes: Assistentes de IA explicam Wireshark Captura pacotes, sinaliza ACKs ausentes e destaca ataques de inundação SYN ou conexões semiabertas.

Aperto de mão TCP de 3 vias

O que é o handshake TCP de três vias?

As Aperto de mão triplo TCP é o procedimento que um cliente e um servidor utilizam em uma conexão. rede TCP/IP Para estabelecer uma conexão confiável antes da troca de quaisquer dados do aplicativo, o processo, como o nome indica, consiste em três etapas: ambas as partes trocam pacotes de sincronização (SYN) e de confirmação (ACK) e definem os números de sequência iniciais que utilizarão.

O handshake é projetado para que ambas as extremidades possam iniciar, negociar e encerrar sockets TCP simetricamente. Uma vez concluído o handshake, a conexão torna-se full-duplex — ambos os lados podem enviar e receber dados em paralelo até que um deles emita um sinal FIN para encerrar a sessão.

Tipos de mensagens TCP

Quatro bandeiras de controle aparecem repetidamente durante o aperto de mãos e o desmantelamento.

Mensagem Descrição
SYN Inicia uma conexão e sincroniza os números de sequência entre os dispositivos.
ACK Confirma à outra parte que o segmento anterior foi recebido.
SINCRONIZAR Uma mensagem combinada — um SYN do dispositivo local mais um ACK do SYN anterior do dispositivo parceiro.
FIM Utilizado para encerrar uma conexão de forma adequada.

Processo de handshake triplo TCP

O tráfego TCP sempre começa com um handshake de três vias. O cliente inicia a conversa solicitando uma sessão com o servidor.

Diagrama de handshake TCP de 3 vias

Diagrama de aperto de mãos de três vias.

  • Passo 1 — SIN: O cliente envia um segmento com o sinalizador SYN ativado. Ele informa ao servidor "Desejo iniciar a comunicação" e propõe um número de sequência inicial.
  • Etapa 2 — SYN-ACK: O servidor responde com um segmento no qual os sinalizadores SYN e ACK estão definidos. O ACK reconhece o SYN do cliente, e o SYN propõe o próprio número de sequência inicial do servidor.
  • Etapa 3 — ACK: O cliente reconhece o SYN-ACK do servidor com um ACK final. A conexão agora está estabelecida e ambos os lados podem iniciar a comunicação. transmitdados de aplicação de ting.

Exemplo do mundo real

Exemplo prático de handshake TCP de três vias

Aqui está um exemplo prático com números de sequência concretos.

  • O host X inicia a conexão enviando um pacote TCP SYN para o servidor. O pacote carrega um número de sequência inicial aleatório — por exemplo, 4321 — que marca o início do fluxo de bytes que o Host X enviará.
  • O servidor recebe o SYN e responde com um SYN-ACK. O número do ACK é o número de sequência do Host X incrementado em 1 (4322), e o SYN propõe o próprio número de sequência inicial do servidor.
  • O host X responde com um ACK final cujo número de confirmação é o número de sequência do servidor incrementado em 1.

Assim que a troca de dados for concluída, o TCP encerra a conexão com uma sequência FIN/ACK de quatro vias, para que ambas as extremidades possam liberar o socket corretamente.

Por que o TCP precisa de um handshake de três vias?

O aperto de mãos não é apenas uma formalidade — ele resolve três problemas concretos que surgem com o transporte confiável de fluxos de bytes:

  • Sincronização de números de sequência: Ambos os pares aprendem o número de sequência inicial do outro lado, que é o que o TCP usa para detectar segmentos perdidos ou fora de ordem.
  • Acordo de estado de conexão: O terceiro ACK confirma que o SYN-ACK do servidor chegou, portanto, nenhum dos lados começa a enviar dados até que ambos estejam em conexão. ESTABELECIDO Estado.
  • Proteção contra pacotes duplicados: Números de sequência iniciais aleatórios e estados de handshake temporizados impedem que segmentos obsoletos de uma sessão anterior sejam aceitos por engano.

Problemas comuns com o handshake TCP

O handshake é robusto, mas apresenta falhas identificáveis. Engenheiros de rede geralmente observam um dos seguintes problemas:

  • Ataques de inundação SYN: Um cliente malicioso envia milhares de SYNs sem responder aos SYN-ACKs, esgotando a tabela de conexões do servidor. Os cookies SYN são a defesa padrão.
  • Conexões semiabertas: Quando o terceiro ACK é perdido, a conexão permanece semiaberta e eventualmente é encerrada por um tempo limite.
  • Perdas de pacotes durante o voo devido a firewall ou NAT: Dispositivos intermediários com estado que perdem o estado podem descartar pacotes SYN-ACK e fazer com que o cliente tente novamente.
  • Reinicializações RST: Se o servidor não estiver escutando na porta solicitada, ele responde a um SYN com um RST, o que encerra a tentativa imediatamente.

Perguntas Frequentes

Duas mensagens não comprovam que ambas as partes concordaram com os números de sequência iniciais e estão prontas para enviar. O terceiro ACK confirma que o SYN-ACK do servidor chegou, garantindo que ambos os pontos de extremidade alcancem o estado ESTABLISHED antes do fluxo de dados.

SYN é um único sinalizador que inicia a comunicação e propõe um número de sequência inicial. SYN-ACK combina um SYN com o reconhecimento do SYN anterior do par, concluindo a sincronização em um único pacote.

Um ataque de inundação SYN sobrecarrega um servidor enviando muitos pacotes SYN sem concluir o handshake. Conexões semiabertas preenchem a fila de espera e bloqueiam usuários legítimos. Os cookies SYN são a mitigação padrão.

O TCP encerra uma conexão com um handshake de quatro vias, composto por trocas de FIN e ACK. Cada direção é encerrada independentemente, o que permite que um lado termine de enviar dados mesmo depois que o outro lado já tenha encerrado sua metade.

O número de sequência inicial é um valor de 32 bits escolhido aleatoriamente por cada ponto de extremidade para seu próprio fluxo de bytes. Ele inicializa o contador usado para detectar segmentos ausentes ou duplicados e para se proteger contra pacotes falsificados.

Não. O UDP não possui conexão e envia datagramas sem qualquer handshake. Isso o torna mais rápido e leve que o TCP, mas os aplicativos precisam lidar com a confiabilidade, a ordenação e o controle de congestionamento por conta própria.

Assistentes de IA anotam capturas de pacotes, classificam retransmits e RSTs, e detectam inundações SYN. ​​Eles traduzem Wireshark Os filtros traduzem para uma linguagem simples e recomendam a próxima etapa de diagnóstico para problemas de conectividade.

Sim. Assistentes de codificação com IA transformam uma solicitação em linguagem simples em uma Python Scapy ou um script netcat que aciona e inspeciona o handshake de três vias e, em seguida, explica cada linha para que os engenheiros possam revisá-la antes de executá-la.

Resuma esta postagem com: