Article image
MARCELO MORAES
MARCELO MORAES26/10/2022 09:22
Compartilhe

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.

image

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!

Compartilhe
Comentários (1)
Giovani Correa
Giovani Correa - 26/10/2022 09:53

Importantíssima essa informação.

Parabéns, acho que todos deveriam conhecer ao menos como se estabelecem as conexões.

E para quem usa o principal protocolo, http, acho que deveria ler um pouco sobre o seus rfcs RFC1945, RFC2616, RFC7540.