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.

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 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
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.


