Skip to content

Explícame el saludo de tres vías de TCP.

Respuesta breve

TCP abre una conexión en tres pasos. El cliente envía un SYN con un número de secuencia inicial, el servidor responde con SYN-ACK (confirmando el número del cliente y enviando el suyo), y el cliente devuelve un ACK. Tras este intercambio ambos lados han acordado los números de secuencia de inicio y la conexión queda establecida para una entrega de bytes fiable y ordenada.

El saludo de tres vías existe porque TCP promete algo que UDP no: una entrega fiable y ordenada de un flujo de bytes. Para cumplir esa promesa, ambos extremos deben acordar dónde empieza el flujo antes de que se mueva cualquier dato de aplicación. Ese acuerdo es el saludo.

Los tres pasos

  1. SYN. El cliente elige un número de secuencia inicial (ISN) aleatorio y envía un segmento con la bandera SYN activada, anunciando ese ISN. Es el cliente diciendo «quiero hablar, y mis bytes se numerarán a partir de aquí».
  2. SYN-ACK. El servidor responde con su propio SYN (su propio ISN) y un ACK que confirma el ISN del cliente + 1. En un solo segmento, el servidor acepta la conexión y anuncia su propia numeración.
  3. ACK. El cliente confirma el ISN del servidor + 1. Ahora ambos lados conocen el número de secuencia de inicio del otro, y la conexión pasa al estado ESTABLISHED.

Por qué importan los números de secuencia

Los números de secuencia permiten a TCP detectar pérdidas, reordenar segmentos desordenados y descartar duplicados. Aleatorizar el ISN también hace mucho más difícil que un atacante fuera de la ruta falsifique o inyecte segmentos en el flujo, ya que tendría que adivinar los números.

El ángulo de seguridad

El saludo es también una superficie de ataque. Una inundación SYN envía muchos SYN y nunca completa el tercer paso, agotando la tabla de conexiones semiabiertas del servidor. Las SYN cookies se defienden de esto codificando el estado de la conexión en el ISN del servidor, de modo que no se reserva memoria hasta que llega el ACK final.

Los entrevistadores quieren oír los nombres de los tres paquetes en orden, que se sincronizan los números de secuencia (no que se envían datos), e idealmente un guiño a las inundaciones SYN.

Posibles preguntas de seguimiento

  • ¿Qué es una inundación SYN y cómo defiende una SYN cookie contra ella?
  • ¿Cómo cierra TCP una conexión, y cuál es el papel de TIME_WAIT?
  • ¿Por qué TCP aleatoriza el número de secuencia inicial?

Fuentes

Certificaciones

Consigue 100 preguntas de entrevista de ciberseguridad + respuestas

Déjanos tu correo y te enviaremos el pack en PDF gratuito y el mazo de flashcards.

Sin spam. Cancela tu suscripción cuando quieras.