Apretón de manos de tres vías

Definición: ¿Qué significa Apretón de manos de tres vías?

Un protocolo de enlace de tres vías es un método utilizado en una red TCP / IP para crear una conexión entre un host / cliente local y un servidor.

Es un método de tres pasos diseñado para permitir que ambos extremos de la comunicación inicien y negocien los parámetros de la conexión del socket TCP de la red al mismo tiempo antes de que se transmitan datos como HTTP y SSH.

Se pueden transmitir múltiples conexiones de socket TCP en ambas direcciones simultáneamente. Un protocolo de enlace de tres vías también se conoce como protocolo de enlace TCP o SYN-SYN-ACK, y requiere que el cliente y el servidor intercambien paquetes SYN (sincronización) y ACK (reconocimiento) antes de que comience la comunicación de datos real.

De hecho, su nombre se origina en los tres mensajes transmitidos por TCP antes de que se inicie una sesión entre los dos extremos.

Techinfo explica el apretón de manos de tres vías

Un protocolo de enlace de tres vías se usa principalmente para crear una conexión de socket TCP para transmitir datos de manera confiable entre dispositivos. Por ejemplo, admite la comunicación entre un navegador web en el lado del cliente y un servidor cada vez que un usuario navega por Internet.

Tan pronto como un cliente solicita una sesión de comunicación con el servidor, un proceso de protocolo de enlace de tres vías inicia el tráfico TCP siguiendo tres pasos.

Los tres pasos de un apretón de manos de tres vías

Paso 1: se establece una conexión entre el servidor y el cliente

Primero, se establece una conexión entre el servidor y el cliente, por lo que el servidor de destino debe tener puertos abiertos que puedan aceptar e iniciar nuevas conexiones. El nodo cliente envía un paquete de datos SYN (Synchronize Sequence Number) a través de una red IP a un servidor en la misma red o en una externa.

Este paquete SYN es un número de secuencia aleatorio que el cliente desea utilizar para la comunicación (por ejemplo, X). El objetivo de este paquete es preguntar / inferir si el servidor está abierto para nuevas conexiones.

Paso 2: el servidor recibe el paquete SYN del nodo cliente

Cuando el servidor recibe el paquete SYN del nodo cliente, responde y devuelve un recibo de confirmación: el paquete ACK (Número de secuencia de acuse de recibo) o el paquete SYN / ACK. Este paquete incluye dos números de secuencia.

El primero es ACK one, que el servidor establece en uno más que el número de secuencia que recibió del cliente (por ejemplo, X + 1).

El segundo es el SYN enviado por el servidor, que es otro número de secuencia aleatorio (por ejemplo, Y).

Esta secuencia indica que el servidor reconoció correctamente el paquete del cliente y que también está enviando el suyo para ser reconocido.

Paso 3: el nodo del cliente recibe el SYN / ACK del servidor y responde con un paquete ACK

El nodo cliente recibe el SYN / ACK del servidor y responde con un paquete ACK. Una vez más, cada lado debe reconocer el número de secuencia recibido incrementándolo en uno.

Así que ahora es el turno del cliente de reconocer el paquete del servidor agregando uno al número de secuencia (en este caso, Y + 1) y reenviarlo al servidor.

Una vez finalizado este proceso, se crea la conexión y el host y el servidor pueden comunicarse.

Todos estos pasos son necesarios para verificar los números de serie originados por ambos lados, garantizando la estabilidad de la conexión.

Dado que ambos hosts deben reconocer los parámetros de conexión del otro lado, se puede detectar rápidamente un segmento faltante o desordenado antes de que se inicie el proceso de transferencia de datos real.