Definição – o que significa o handshake de três vias?
Um handshake de três vias é um método usado em uma rede TCP / IP para criar uma conexão entre um host / cliente local e um servidor.
É um método de três etapas projetado para permitir que ambas as extremidades de comunicação iniciem e negociem os parâmetros da conexão do soquete TCP da rede ao mesmo tempo, antes que dados como HTTP e SSH sejam transmitidos.
Várias conexões de soquete TCP podem ser transmitidas em ambas as direções simultaneamente. Um handshake de três vias também é conhecido como handshake TCP ou SYN-SYN-ACK e requer que o cliente e o servidor troquem pacotes SYN (sincronização) e ACK (confirmação) antes que a comunicação de dados real comece.
Na verdade, seu nome se origina das três mensagens transmitidas pelo TCP antes do início de uma sessão entre as duas extremidades.
Definirtec explica o handshake de três vias
Um handshake de três vias é usado principalmente para criar uma conexão de soquete TCP para transmitir dados entre dispositivos de maneira confiável. Por exemplo, ele suporta a comunicação entre um navegador da Web no lado do cliente e um servidor sempre que um usuário navega na Internet.
Assim que um cliente solicita uma sessão de comunicação com o servidor, um processo de handshake de três vias inicia o tráfego TCP seguindo três etapas.
As três etapas de um aperto de mão de três vias
Etapa 1: uma conexão entre o servidor e o cliente é estabelecida
Primeiro, uma conexão entre o servidor e o cliente é estabelecida, portanto, o servidor de destino deve ter portas abertas que possam aceitar e iniciar novas conexões. O nó cliente envia um pacote de dados SYN (Synchronize Sequence Number) por uma rede IP para um servidor na mesma rede ou em uma rede externa.
Este pacote SYN é um número de sequência aleatório que o cliente deseja usar para a comunicação (por exemplo, X). O objetivo deste pacote é perguntar / inferir se o servidor está aberto para novas conexões.
Etapa 2: O servidor recebe o pacote SYN do nó cliente
Quando o servidor recebe o pacote SYN do nó cliente, ele responde e retorna um recibo de confirmação – o pacote ACK (Acknowledgement Sequence Number) ou pacote SYN / ACK. Este pacote inclui dois números de sequência.
O primeiro é ACK one, que é definido pelo servidor como um a mais do que o número de sequência recebido do cliente (por exemplo, X + 1).
O segundo é o SYN enviado pelo servidor, que é outro número de sequência aleatória (por exemplo, Y).
Essa sequência indica que o servidor reconheceu corretamente o pacote do cliente e que está enviando o seu próprio para ser reconhecido também.
Etapa 3: o nó cliente recebe o SYN / ACK do servidor e responde com um pacote ACK
O nó cliente recebe o SYN / ACK do servidor e responde com um pacote ACK. Mais uma vez, cada lado deve reconhecer o número de sequência recebido, incrementando-o em um.
Portanto, agora é a vez de o cliente reconhecer o pacote do servidor adicionando um ao número de sequência (neste caso, Y + 1) e reenviá-lo ao servidor.
Após a conclusão deste processo, a conexão é criada e o host e o servidor podem se comunicar.
Todas essas etapas são necessárias para verificar os números de série originados por ambos os lados, garantindo a estabilidade da conexão.
Como os dois hosts devem reconhecer os parâmetros de conexão do outro lado, um segmento ausente ou fora de serviço pode ser detectado rapidamente antes que o processo real de transferência de dados seja iniciado.