Um aperto de mão de três vias é usado principalmente para criar uma ligação de tomada TCP para transmitir dados de forma fiável entre dispositivos. Por exemplo, suporta a comunicação entre um web browser do lado do cliente e um servidor sempre que um utilizador navega na Internet.
Assim que um cliente solicita uma sessão de comunicação com o servidor, um processo de aperto de mão de três vias inicia o tráfego TCP seguindo três passos.
Os Três Passos de um Aperto de Mãos de Três Vias
Passo 1: É estabelecida uma ligação entre servidor e cliente
Primeiro, é estabelecida uma ligação entre servidor e cliente, pelo que o servidor alvo deve ter portas abertas que possam aceitar e iniciar novas ligações. O nó cliente envia um pacote de dados SYN (Synchronize Sequence Number) através de uma rede IP para um servidor na mesma ou numa rede externa.
Este pacote SYN é um número de sequência aleatório que o cliente quer utilizar para a comunicação (por exemplo, X). O objectivo deste pacote é perguntar/inferir se o servidor está aberto para novas ligações.
Passo 2: O servidor recebe o pacote SYN do nó cliente
Quando o servidor recebe o pacote SYN do nó cliente, responde e devolve um recibo de confirmação – o pacote ACK (Acknowledgement Sequence Number) ou pacote SYN/ACK. Este pacote inclui dois números sequenciais.
O primeiro é o ACK, que é definido pelo servidor para mais um do que o número sequencial que recebeu do cliente (por exemplo, X+1).
O segundo é o SYN enviado pelo servidor, que é outro número sequencial aleatório (por exemplo, Y).
Esta sequência indica que o servidor reconheceu correctamente o pacote do cliente, e que está a enviar o seu próprio para ser reconhecido também.
Passo 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.
P>Então agora é a vez do cliente reconhecer o pacote do servidor, adicionando um ao número de sequência (neste caso, Y+1), e reenviá-lo novamente ao servidor.
Completar o processo, a ligação é criada e o anfitrião e o servidor podem comunicar.
Todos estes passos são necessários para verificar os números de série originados por ambos os lados, garantindo a estabilidade da ligação.
Desde que ambos os anfitriões tenham de reconhecer os parâmetros de ligação do outro lado, um segmento em falta ou fora de ordem pode ser rapidamente detectado antes de se iniciar o processo real de transferência de dados.
0 comentários