Lección 3 de 4 · 7 min
El protocolo de enlace TCP y la vida de una conexión
Cómo dos computadoras acuerdan hablar antes de que cualquiera de ellas envíe datos reales, cómo finalizan la conversación y qué ve realmente un firewall que observa en el medio.
Antes de que su Mac envíe un solo byte de una solicitud de página web, ya ha intercambiado tres mensajes cortos con el servidor. Ese intercambio, el protocolo de enlace de tres vías de TCP, es lo que convierte las promesas de confiabilidad de TCP de la lección anterior en una conexión real y rastreable entre dos máquinas.
Tres mensajes antes de la primera palabra.
RFC 9293, la especificación TCP actual, describe el proceso como un intercambio sincronizado: "la sincronización requiere que cada lado envíe su propio número de secuencia inicial y reciba una confirmación del mismo como reconocimiento del par TCP remoto".
- SINC. El dispositivo que abre la conexión envía un segmento con el indicador SYN configurado, que lleva un número de secuencia inicial.
- SINCRONIZACIÓN. La otra parte responde con su propio SYN, más un reconocimiento del primer número.
- ACK. El primer dispositivo reconoce esa respuesta. RFC 9293 señala que "debido a que los pasos 2 y 3 se pueden combinar en un solo mensaje, esto se denomina protocolo de enlace de tres vías (o tres mensajes)". Una vez que se completa, ambas partes cuentan la conexión como ESTABLECIDA y comienzan a enviar datos reales.
El Centro de aprendizaje de Cloudflare ofrece una versión en lenguaje sencillo de la misma idea, utilizando un correo electrónico como ejemplo: "primero, la fuente envía un paquete SYN de 'solicitud inicial' al servidor de destino para iniciar el diálogo. Luego, el servidor de destino envía un paquete SYN-ACK para aceptar el proceso. Por último, la fuente envía un paquete ACK al destino para confirmar el proceso, después de lo cual se puede enviar el contenido del mensaje".
Finalizar una conexión limpiamente
Cerrar es más deliberado que abrir. RFC 9293 explica que "la secuencia normal de cierre de TCP entrega datos almacenados en el búfer de manera confiable en ambas direcciones" antes de que finalice la conexión: cada lado envía un segmento FIN una vez que no tiene más datos para enviar, el otro lado lo reconoce y solo una vez que ambas direcciones han finalizado la conexión se cierra por completo. Sigue un breve período de espera (TIME-WAIT), de modo que cualquier paquete perdido o retrasado de la conexión anterior no pueda confundirse con parte de una nueva.
Lo que ve un firewall en el medio
Un firewall con estado, del tipo integrado en la mayoría de los enrutadores y en el propio macOS, no necesita inspeccionar cada paquete para tomar una decisión. La explicación de Cloudflare sobre los firewalls lo describe de esta manera: "guarda información sobre las conexiones abiertas y utiliza esta información para analizar el tráfico entrante y saliente, en lugar de inspeccionar cada paquete". En la práctica, eso significa que busca el SYN que abre una conexión, recuerda que esta aplicación solicitó una respuesta y luego permite silenciosamente que vuelva a ingresar el SYN-ACK coincidente; se descarta una respuesta que no coincide con ningún SYN saliente. Así es también como un firewall puede distinguir una respuesta normal de un intento de conexión no solicitado que llega de la nada, que es la base para bloquear el tráfico entrante no deseado.
Ninguno de estos intercambios está cifrado por el propio TCP; SYN, SYN-ACK y ACK son visibles en forma simple para cualquier cosa que observe la ruta de la red, incluido su enrutador Wi-Fi. Lo que está oculto o no depende de la capa por encima de TCP, como TLS para un sitio HTTPS, que el curso sobre cómo funciona Internet cubre por separado.
Lo esencial
- Las conexiones TCP se abren con un protocolo de enlace de tres vías: SYN, luego SYN-ACK, luego ACK, según RFC 9293.
- Sólo después de que se completa el apretón de manos las dos partes comienzan a intercambiar datos reales.
- Cerrar una conexión es un intercambio bidireccional de segmentos FIN, por lo que los datos almacenados en el búfer se entregan antes de que finalice la conexión.
- Un firewall con estado rastrea qué SYN se desconectaron para poder reconocer y permitir las respuestas coincidentes y descartar las no solicitadas.
- El apretón de manos en sí no está cifrado; es visible para cualquier cosa en la ruta de la red.
Ponte a prueba
1. ¿Cuál es el orden correcto del protocolo de enlace de tres vías TCP?
- ACK, SYN, SYN-ACK
- SYN, SYN-ACK, ACK — Correcto.
- SYN-ACK, SYN, ACK
- FIN, SINC, ACK
RFC 9293 describe que el lado de conexión envía SYN primero, el otro lado responde con SYN-ACK y el lado de conexión confirma con ACK.
2. ¿Cuándo comienzan a fluir datos de aplicaciones reales a través de una conexión TCP?
- Antes de enviar el SYN
- Solo después de que se complete el protocolo de enlace de tres vías — Correcto.
- Durante el paso SYN-ACK
- Los datos fluyen continuamente sin apretón de manos
El protocolo de enlace existe para sincronizar números de secuencia antes de que cualquiera de las partes confíe en la conexión lo suficiente como para enviar datos reales.
3. ¿Cómo decide un firewall con estado permitir un paquete de respuesta entrante?
- Permite todos los paquetes entrantes por defecto.
- Comprueba si el paquete coincide con una conexión que abrió este dispositivo, recordada del SYN saliente anterior. — Correcto.
- Inspecciona el contenido del paquete en busca de palabras clave.
- Solo mira el puerto de destino, nunca el estado de la conexión.
Cloudflare describe un firewall con estado como uno que "guarda información sobre conexiones abiertas" para reconocer respuestas legítimas en lugar de inspeccionar cada paquete desde cero.
4. ¿Está cifrado el protocolo de enlace TCP?
- si, siempre
- No, es sencillo y visible para cualquier cosa en la ruta de la red. — Correcto.
- Sólo el SYN está cifrado
- Sólo en conexiones HTTPS
TCP proporciona orden y confiabilidad, no confidencialidad. El cifrado, cuando está presente, proviene de una capa superior a TCP, como TLS.
Ponlo en práctica con FireAI
Pon esta lección en práctica en tu propia computadora.
- Descubre a dónde envía datos una app, en el Mapa mundial — Ve exactamente con qué empresa y país está hablando en silencio una app.
- Reglas: app, sitio web, dominio, IP o un rango, para siempre o hasta que reinicies — Escribe una regla tan precisa como una sola dirección o tan amplia como un dominio entero.
- Inspección profunda, sin descifrar nada — Obtén detalle real sobre una conexión segura sin que FireAI lea nunca lo que hay dentro.
Fuentes
- RFC 9293: Transmission Control Protocol (TCP)
- Cloudflare Learning: What is TCP/IP?
- Cloudflare Learning: What is a Firewall?
Ponlo en práctica en tu Mac
Prueba todas las funciones gratis durante 17 días, sin tarjeta.