El handshaking de 3 vías, también conocido como three way handshake, es el proceso que permite establecer una conexión confiable entre dos dispositivos antes de iniciar el intercambio de datos en una red TCP.
Cada vez que abres una página web, envías un correo electrónico o te conectas a un servidor remoto, ocurre primero este proceso invisible que garantiza que cliente y servidor estén listos para comunicarse.
En términos simples, el 3 way handshake en TCP funciona como una conversación inicial entre dos sistemas para confirmar que ambos están disponibles, sincronizar información importante y preparar el canal de comunicación.
Sin este mecanismo, las redes no podrían asegurar que los datos se entreguen correctamente, en orden y sin pérdidas.
Al final del artículo encontrarás un pequeño test que te permitirá evaluar los conocimientos adquiridos en esta lectura
Qué es el protocolo TCP
El Transmission Control Protocol (TCP) es uno de los protocolos fundamentales de Internet y forma parte del modelo TCP/IP. Su función principal es garantizar que los datos enviados entre dispositivos lleguen correctamente al destino.
A diferencia de otros protocolos más simples, TCP proporciona:
Entrega confiable de datos
Control de errores
Control de flujo
Orden correcto de los paquetes
TCP opera en la capa de transporte, gestionando la comunicación entre aplicaciones que se encuentran en distintos dispositivos dentro de una red.
Antes de que cualquier dato pueda enviarse mediante TCP, debe establecerse primero una conexión. Aquí es donde entra en juego el handshaking de 3 vías.
Qué es el handshaking de 3 vías
El handshaking de 3 vías es el procedimiento utilizado por TCP para establecer una conexión entre un cliente y un servidor antes de que se transmitan datos.
Este proceso implica el intercambio de tres mensajes entre ambas partes:
SYN
SYN-ACK
ACK
Cada uno cumple una función específica dentro del establecimiento de la conexión.
El objetivo principal es:
sincronizar los números de secuencia
confirmar que ambos dispositivos están disponibles
establecer parámetros de comunicación
Una vez completado este proceso, la conexión pasa al estado establecido y los datos pueden comenzar a transmitirse.
Cómo funciona el Three Way Handshake paso a paso
El proceso del TCP three way handshake se compone de tres pasos bien definidos.
Paso 1: SYN (Synchronize)
El proceso comienza cuando el cliente quiere iniciar una conexión con un servidor.
Para ello envía un paquete TCP con el flag SYN activado.
Este paquete contiene:
un número de secuencia inicial
información sobre las capacidades del cliente
parámetros de comunicación
Con este mensaje el cliente básicamente dice:
“Quiero iniciar una conexión”.
Paso 2: SYN-ACK (Synchronize Acknowledge)
Cuando el servidor recibe el paquete SYN, responde con un mensaje que contiene dos flags activados:
SYN
ACK
Este paquete se conoce como SYN-ACK.
Su función es:
confirmar la recepción del SYN del cliente
enviar el número de secuencia inicial del servidor
En otras palabras, el servidor responde:
“Recibí tu solicitud y estoy listo para comunicarme”.
Paso 3: ACK (Acknowledge)
Finalmente, el cliente envía un tercer mensaje con el flag ACK activado.
Este mensaje confirma que el cliente recibió correctamente la respuesta del servidor.
Una vez que este paso se completa, la conexión TCP queda establecida.
El intercambio de datos puede comenzar inmediatamente después.
Diagrama del three way handshake
El proceso suele representarse de forma simple:
Cliente Servidor
SYN ----------------->
<--------------- SYN-ACK
ACK ----------------->
Tras este intercambio, ambos sistemas entran en el estado:
ESTABLISHED
Esto significa que la comunicación está lista para comenzar.
Ejemplo práctico del Three Way Handshake
Un ejemplo cotidiano ayuda a entender mejor este proceso.
Supongamos que escribes una dirección web en tu navegador.
Antes de que aparezca la página, ocurre lo siguiente:
Tu computadora envía un SYN al servidor web.
El servidor responde con SYN-ACK.
Tu computadora envía ACK confirmando la conexión.
Solo después de este intercambio el navegador envía la solicitud HTTP para cargar la página.
Esto sucede en milisegundos, por lo que normalmente el usuario no percibe el proceso.
Ventajas del Three Way Handshake
El handshaking de 3 vías ofrece varias ventajas importantes para las comunicaciones en red.
1. Confiabilidad
El proceso garantiza que ambos dispositivos estén listos para intercambiar datos antes de comenzar la transmisión.
Esto evita errores de comunicación y pérdida de información.
2. Sincronización de datos
Durante el handshake se establecen los números de secuencia, lo que permite que los paquetes lleguen en el orden correcto.
Esto es esencial para aplicaciones como:
navegación web
transferencia de archivos
correo electrónico
3. Control de flujo
El handshake permite definir parámetros que ayudan a controlar la velocidad de transmisión de datos, evitando saturar el receptor.
4. Establecimiento seguro de la conexión
Aunque TCP no cifra datos por sí mismo, el handshake permite iniciar posteriormente protocolos de seguridad como:
TLS
HTTPS
Desventajas del Three Way Handshake
A pesar de sus ventajas, este proceso también tiene algunas limitaciones.
1. Latencia adicional
El intercambio de tres mensajes introduce un pequeño retraso antes de comenzar la transmisión de datos.
Este retraso depende del tiempo de ida y vuelta (RTT) entre cliente y servidor.
2. Consumo de recursos
Cada intento de conexión requiere memoria y recursos del sistema para mantener el estado de la conexión.
3. Vulnerabilidad a ataques
Algunos ataques informáticos aprovechan el proceso de handshake para saturar servidores.
Ataques comunes contra el Three Way Handshake
El proceso de establecimiento de conexión TCP puede ser explotado por atacantes si no se implementan medidas de seguridad adecuadas.
SYN Flood
El SYN Flood es uno de los ataques más conocidos contra el handshake TCP.
En este ataque, el atacante envía una gran cantidad de solicitudes SYN al servidor, pero nunca completa el proceso con el ACK final.
Esto provoca que el servidor mantenga muchas conexiones semiabiertas, agotando sus recursos.
TCP Session Hijacking
En este ataque, un atacante intercepta una conexión TCP activa y falsifica paquetes para hacerse pasar por uno de los participantes.
Esto puede permitir:
modificar datos
inyectar información maliciosa
tomar control de la sesión.
TCP Reset Attack
En un TCP Reset Attack, el atacante envía paquetes RST falsificados que obligan a cerrar la conexión TCP.
Este tipo de ataque puede interrumpir comunicaciones importantes como conexiones VPN.
Aplicaciones que utilizan el Three Way Handshake
El three way handshake es utilizado por prácticamente todas las aplicaciones que funcionan sobre TCP.
Algunos ejemplos incluyen:
| Aplicación | Uso del Handshake |
|---|---|
| Navegadores web | Conexiones HTTP y HTTPS |
| Correo electrónico | SMTP, POP3, IMAP |
| Transferencia de archivos | FTP, SFTP |
| Acceso remoto | SSH |
| Conexiones VPN | Establecimiento de túneles |
Cada vez que una de estas aplicaciones inicia una conexión, primero se realiza el proceso de handshake TCP.
Conclusión
El handshaking de 3 vías es uno de los mecanismos más importantes en el funcionamiento de Internet. Este proceso permite que dos dispositivos establezcan una conexión confiable antes de intercambiar información.
Gracias al three way handshake, TCP puede garantizar que los datos se transmitan de forma ordenada, confiable y sin pérdidas.
Aunque introduce una pequeña latencia adicional y puede ser objetivo de algunos ataques, sigue siendo un elemento fundamental en las redes modernas y en la mayoría de los servicios que utilizamos diariamente en Internet.
Comprender cómo funciona este proceso es esencial para cualquier persona que estudie redes, ciberseguridad o infraestructura de Internet.
Preguntas Frecuentes
¿Qué significa SYN en el three way handshake?
SYN significa Synchronize y se utiliza para iniciar una conexión TCP y sincronizar los números de secuencia entre cliente y servidor.
¿Por qué TCP utiliza un three way handshake?
TCP utiliza este proceso para confirmar que ambos dispositivos están disponibles, sincronizar parámetros de comunicación y garantizar una transmisión confiable de datos.
¿Cuál es la diferencia entre TCP y UDP?
TCP establece una conexión mediante handshake y garantiza la entrega de datos, mientras que UDP envía paquetes sin establecer conexión previa ni confirmar su recepción.
¿Cuánto tiempo tarda un three way handshake?
Normalmente solo toma unos pocos milisegundos, dependiendo de la distancia entre el cliente y el servidor y de la latencia de la red.
Breve cuestionario de conocimientos
¿Qué te pareció este artículo?
¿Te atreves a evaluar tus conocimientos aprendidos?
Libros recomendados para éste artículo
(Book) Networking with MikroTik RouterOS: A Practical Approach to Understanding and Implementing RouterOS
Study material for the MTCNA Certification Course, updated to RouterOS v7
Libro Conceptos Fundamentales de MikroTik, RouterOS v7
Material de estudio para el Curso de Certificación MTCNA, actualizado a RouterOS v7










