¿Qué significa apretón de manos a tres bandas?
Un apretón de manos a tres bandas 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 comunicantes inicien y negocien los parámetros de la conexión de socket TCP de 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 apretón de manos a tres bandas también se conoce como apretón de manos TCP o SYN-SYN-ACK, y requiere que tanto el cliente como el servidor intercambien paquetes SYN (sincronización) y ACK (acuse de recibo) antes de que comience la comunicación real de datos.
De hecho, su nombre tiene su origen en los tres mensajes transmitidos por TCP antes de que se inicie una sesión entre los dos extremos.
Definición apretón de manos a tres bandas
Un apretón de manos a tres bandas o tripartito se utiliza principalmente para crear una conexión de socket TCP para transmitir datos de forma fiable entre dispositivos.
Por ejemplo, permite 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 saludo tripartito inicia el tráfico TCP siguiendo tres pasos.
Los tres pasos de un apretón de manos a tres bandas
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 (Número de Secuencia de Sincronización) 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 desea utilizar para la comunicación (por ejemplo, X). El objetivo de este paquete es preguntar/inferir si el servidor está abierto a 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, 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 que también sea reconocido.
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.
Una vez completado 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 ambas partes, garantizando la estabilidad de la conexión.
Dado que ambos anfitriones deben confirmar los parámetros de conexión de la otra parte, se puede detectar rápidamente un segmento que falte o que esté fuera de servicio antes de iniciar el proceso real de transferencia de datos.