Handshake
No mundo real, um handshake é uma saudação habitual entre duas pessoas. Da mesma forma, um handshake de computador funciona como uma saudação entre dois sistemas computadores. Ele é comumente usado para inicializar uma conexão de rede entre dois hosts.
Um handshake de computador pode ser concluído entre dois sistemas quaisquer que se comuniquem usando o mesmo protocolo. Os dois sistemas podem ser um cliente e um servidor ou simplesmente dois computadores em uma rede P2P. O handshake confirma as identidades dos sistemas que estão se conectando e permite que uma comunicação adicional ocorra.
O handshaking em uma rede é comumente chamado de handshake de três vias ou "SYN-SYN-ACK". Um handshake bem-sucedido envolve sete etapas:
- O Host A envia um pacote de sincronização (SYN) ao Host B.
- O Host B recebe a solicitação SYN do Host A.
- O Host B envia uma mensagem de confirmação de sincronização (SYN-ACK) ao Host A.
- O Host A recebe a mensagem SYN-ACK do Host B.
- O Host A envia uma mensagem de confirmação (ACK) ao Host B.
- O Host B recebe a mensagem ACK do Host A.
- A conexão entre os dois sistemas é estabelecida.
Quando um sistema inicia um handshake, há três resultados possíveis:
- Nenhuma resposta – Se o sistema que recebe o handshake não estiver disponível ou não for compatível com o protocolo usado pelo sistema que o inicia, ele poderá não responder à solicitação.
- Conexão recusada – O sistema que recebe o handshake está disponível e entende a solicitação, mas nega a conexão.
- Conexão aceita – O sistema que recebe o handshake está disponível, recebe a solicitação e aceita a conexão.
O terceiro resultado listado acima é o único em que o handshake é concluído. Se um handshake for bem-sucedido, os dois sistemas poderão começar a se comunicar e transferir (dados) usando o protocolo estabelecido. Exemplos de protocolos que usam handshaking incluem TCP, TLS e SSL.
Teste seus conhecimentos