TCP 3 Way HandShake! Que Magia é Essa!??
- #Java
Muito importante na vida de um desenvolvedor web, quer seja ele um
desenvolvedor Frontend ou Backend, é entender como as coisas acontecem
por baixo dos panos.
Numa estrutura de comunicação to tipo Cliente-Servidor, existe a necessidade
do cliente se conectar ao servidor de forma confiável para haver a troca das informações necessárias, quer seja o envio ou o recebimento de informações.
Para isso existe um protocolo de comunicação de Camada 4 (camada de Transporte)
conhecido como TCP (Transmission Control Protocol) e na intenção de porporcionar essa conexão entre Cliente e Servidor, temos o conhecido TCP Three Way Handshake, ou
mais simplesmente falando.... "aperto de mãos em 3 vias" que significa
que o Cliente e o Servidor irão negociar a conexão e ocorrendo tudo bem,
estrão conectados! (conexão estabelecida).
Mas como isso ocorre?
Quais são as 3 etapas para que a conexão seja estabelecida?
A figura abaixo mostra as 3 etapas da conexão Cliente-Servidor.
O TCP usa o Three Way Handshake para estabelecer uma conexão confiável.
A conexão estabelecida é full-duplex (Tx e Rx ao mesmo tempo), e ambos os lados sincronizam (SYN) e reconhecem (ACK) um ao outro.
A troca desses flags é executada em 3 etapas, conforme descrito abaixo:
Passo 1 (SYN):- O Cliente deseja estabelecer uma conexão com o servidor,
então envia um segmento de dados com um SYN (Synchronize Sequence Number)
que informa ao servidor que o cliente deseja iniciar a comunicação e
qual é o numero de inicio dos segmentos de dados (seq = m).
Passo 2 (SYN + ACK):- O servidor responde ao cliente com os
bits SYN-ACK "setados". O ACK(Acknowledgement) significa uma resposta
ao recebimentodo do segmento de dados e o novo SYN significa o
inicio do segmento de dados que será enviado na resposta pelo servidor (seq = n).
Passo 3 (SYN):- Na parte final, e por parte do cliente, ele reconhece
o recebimento da sequencia de dados (seq = n) e o estabelecimento da conexão confiável e assim iniciam a transferência de informações.
Por agora isso é tudo!
Chegou até aqui? Gostou?
Me ajude suportando esse post dando um up-vote.
Obrigado!