Un handshake de tres vías se utiliza principalmente para crear una conexión de socket TCP para transmitir datos de forma fiable entre dispositivos. Por ejemplo, soporta la comunicación entre un navegador web en el lado del cliente y un servidor cada vez que un usuario navega por Internet.

En cuanto un cliente solicita una sesión de comunicación con el servidor, un proceso de handshake de tres vías inicia el tráfico TCP siguiendo tres pasos.

Los tres pasos de un handshake de tres vías

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

En primer lugar, 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 de la misma red o de una red externa.

Este paquete SYN es un número de secuencia aleatorio que el cliente quiere 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 acuse de recibo: el paquete ACK (Acknowledgement Sequence Number) o paquete SYN/ACK. Este paquete incluye dos números de secuencia.

El primero es el 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 ha reconocido correctamente el paquete del cliente, y que está enviando el suyo para ser reconocido también.

Paso 3: El nodo 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 parte debe acusar recibo del número de secuencia recibido incrementándolo en uno.

Así que ahora le toca al cliente acusar recibo del paquete del servidor añadiendo uno al número de secuencia (en este caso, Y+1), y reenviarlo al servidor.

Al finalizar este proceso, la conexión se crea 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, un segmento faltante o fuera de orden puede ser rápidamente detectado antes de que se inicie el proceso de transferencia de datos real.

Categorías: Articles

0 comentarios

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *