Protocolo de enlace de 3 vías TCP (SYN, SYN-ACK, ACK)
⚡ Resumen inteligente
El protocolo de enlace TCP de tres vías es el ritual de establecimiento de conexión con el que comienza cada sesión TCP. Un cliente y un servidor intercambian paquetes SYN, SYN-ACK y ACK para sincronizar los números de secuencia y confirmar que ambas partes están listas antes de que se envíe un solo byte de datos de la aplicación.

¿Qué es el protocolo de enlace de tres vías TCP?
El Protocolo de enlace de tres vías TCP es el procedimiento que un cliente y un servidor utilizan en un Red TCP/IP para establecer una conexión fiable antes de que se intercambien datos de la aplicación. Como su nombre indica, consta de tres pasos en los que ambas partes intercambian paquetes de sincronización (SYN) y acuse de recibo (ACK) y acuerdan los números de secuencia iniciales que utilizarán.
El protocolo de enlace está diseñado para que ambos extremos puedan iniciar, negociar y cerrar sockets TCP de forma simétrica. Una vez completado el protocolo de enlace, la conexión es dúplex completo: ambos lados pueden enviar y recibir en paralelo hasta que alguno emita un FIN para cerrar la sesión.
Tipos de mensajes TCP
Durante el proceso de establecimiento de la conexión y desconexión, aparecen repetidamente cuatro indicadores de control.
| Mensaje | Descripción |
|---|---|
| SYN | Inicia una conexión y sincroniza los números de secuencia entre los dispositivos. |
| ACK | Confirma a la otra parte que se recibió el segmento anterior. |
| SINCRONIZACIÓN | Un mensaje combinado: un SYN del dispositivo local más un ACK del SYN anterior del otro extremo. |
| ALETA | Se utiliza para finalizar una conexión de forma segura. |
Proceso de protocolo de enlace de tres vías TCP
El tráfico TCP siempre comienza con un protocolo de enlace de tres vías. El cliente inicia la conversación solicitando una sesión con el servidor.
Diagrama de apretón de manos de tres vías.
- Paso 1 — SIN: El cliente envía un segmento con el indicador SYN activado. Le indica al servidor que desea iniciar la comunicación y propone un número de secuencia inicial.
- Paso 2 — SYN-ACK: El servidor responde con un segmento en el que se activan los indicadores SYN y ACK. El ACK confirma la recepción del SYN del cliente, y el SYN propone el número de secuencia inicial del servidor.
- Paso 3 — ACK: El cliente confirma la recepción del SYN-ACK del servidor con un ACK final. La conexión ya está establecida y ambas partes pueden comenzar. transmitdatos de la aplicación.
Ejemplo del mundo real
Aquí tenéis un ejemplo resuelto con números de secuencia concretos.
- El host X inicia la conexión enviando un paquete TCP SYN al servidor. El paquete lleva un número de secuencia inicial aleatorio; por ejemplo,
4321— eso marca el comienzo del flujo de bytes que enviará el Host X. - El servidor recibe el SYN y responde con un SYN-ACK. El número ACK es el número de secuencia del Host X incrementado en 1 (
4322), y el SYN propone el número de secuencia inicial del propio servidor. - El host X responde con un ACK final cuyo número de acuse de recibo es el número de secuencia del servidor incrementado en 1.
Una vez finalizado el intercambio de datos, TCP cierra la conexión mediante una secuencia FIN/ACK de cuatro vías para que ambos extremos puedan liberar el socket correctamente.
¿Por qué TCP necesita un protocolo de enlace de tres vías?
El apretón de manos no es solo una formalidad, sino que resuelve tres problemas concretos que surgen con el transporte fiable de flujo de bytes:
- Sincronización del número de secuencia: Ambos interlocutores aprenden el número de secuencia inicial del otro extremo, que es lo que TCP utiliza para detectar segmentos perdidos o fuera de orden.
- Acuerdo de estado de conexión: El tercer ACK confirma que el SYN-ACK del servidor llegó, por lo que ninguna de las partes comienza a enviar datos hasta que ambas estén en el estado ESTABLECIDO estado.
- Protección contra paquetes duplicados: Los números de secuencia iniciales aleatorios y los estados de protocolo de enlace temporizados impiden que se acepten por error segmentos obsoletos de una sesión anterior.
Problemas comunes con el protocolo de enlace TCP
El protocolo de enlace es robusto, pero falla de maneras identificables. Los ingenieros de red suelen observar uno de los siguientes problemas:
- Ataques de inundación SYN: Un cliente malicioso envía miles de mensajes SYN sin responder a los SYN-ACK, agotando así la tabla de conexiones del servidor. Las cookies SYN son la defensa estándar.
- Conexiones semiabiertas: Cuando se pierde el tercer ACK, la conexión permanece semiabierta y finalmente se cierra debido a un tiempo de espera agotado.
- Caídas de paquetes en pleno vuelo causadas por cortafuegos o NAT: Los dispositivos intermedios con estado que pierden su estado pueden descartar paquetes SYN-ACK y obligar al cliente a reintentar la conexión.
- Reinicios RST: Si el servidor no está escuchando en el puerto solicitado, responde a un SYN con un RST, lo que cierra el intento inmediatamente.


