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.

  • 📨 Conozca los cuatro tipos de mensajes: SYN inicia la conexión, ACK la confirma, SYN-ACK combina ambas y FIN finaliza la conexión TCP.
  • 🔁 Sigue estos tres pasos: SYN del cliente → SYN-ACK del servidor → ACK del cliente; la sesión se establece solo después de que llega el tercer paquete.
  • 🔢 Los números de secuencia importan: Cada parte elige un número de secuencia inicial; la otra parte lo confirma sumando uno, lo que mantiene ordenado el flujo de bytes.
  • 🚪 Plan de desmantelamiento: Tras la transferencia de datos, TCP cierra la conexión con pares FIN/ACK para liberar el socket en ambos extremos.
  • 🤖 Utilice la IA para el análisis de paquetes: Los asistentes de IA explican Wireshark captura, marca los ACK faltantes y resalta las inundaciones SYN o las conexiones semiabiertas.

Protocolo de enlace de 3 vías TCP

¿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 protocolo de enlace TCP de tres vías

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

Ejemplo práctico del protocolo de enlace TCP de tres vías

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.

Preguntas Frecuentes

Dos mensajes no bastan para demostrar que ambas partes acordaron los números de secuencia iniciales y están listas para enviar. El tercer ACK confirma que el SYN-ACK del servidor llegó, lo que garantiza que ambos extremos alcancen el estado ESTABLISHED antes de que fluyan los datos.

SYN es una bandera única que inicia la conversación y propone un número de secuencia inicial. SYN-ACK combina un SYN con una confirmación del SYN anterior del interlocutor, completando la sincronización en un solo paquete.

Un ataque de inundación SYN satura un servidor enviando muchos paquetes SYN sin completar el protocolo de enlace. Las conexiones semiabiertas llenan la cola de espera y bloquean a los usuarios legítimos. Las cookies SYN son la solución estándar.

TCP cierra una conexión mediante un protocolo de enlace de cuatro vías con intercambios FIN y ACK. Cada dirección se cierra de forma independiente, lo que permite que una de las partes termine de enviar datos incluso después de que la otra haya cerrado su parte.

El número de secuencia inicial es un valor de 32 bits elegido aleatoriamente por cada extremo para su propio flujo de bytes. Este valor inicializa el contador que se utiliza para detectar segmentos faltantes o duplicados y para protegerse contra paquetes falsificados.

No. UDP no requiere conexión y envía datagramas sin ningún tipo de establecimiento de conexión. Esto lo hace más rápido y ligero que TCP, pero las aplicaciones deben gestionar por sí mismas la fiabilidad, el ordenamiento y el control de la congestión.

Los asistentes de IA anotan capturas de paquetes, clasifican retransmits y RST, y detectan inundaciones SYN. ​​Traducen Wireshark Los filtros se traducen a un lenguaje sencillo y se recomienda el siguiente paso de diagnóstico para los problemas de conectividad.

Sí. Los asistentes de codificación de IA convierten una solicitud en lenguaje sencillo en una Python Scapy o un script de netcat que active e inspeccione el protocolo de enlace de tres vías, y luego explique cada línea para que los ingenieros puedan revisarla antes de ejecutarla.

Resumir este post con: