TCP (Protocolo de Control de Transmisión) es un protocolo de la Capa de Transporte (Capa 4) orientado a la conexión. Esto significa que antes de enviar un solo dato, el emisor y el receptor deben "ponerse de acuerdo" y establecer un canal de comunicación. Es uno de los pilares fundamentales de Internet y está diseñado para garantizar que los datos viajen de forma fiable, ordenada y sin pérdidas entre sistemas.
El Saludo de Tres Vías (Three-Way Handshake)
Es el proceso que usa TCP para iniciar la sesión. Imagina una llamada telefónica:
SYN (Synchronize): El emisor dice: "¿Podemos hablar?".
SYN-ACK (Synchronize + Acknowledge): El receptor responde: "Sí, estoy listo, ¿tú?".
ACK (Acknowledgement): El emisor confirma: "¡Perfecto, empezamos!".
Características Principales
Fiabilidad (Confirmación): Por cada paquete enviado, el receptor devuelve un ACK (acuse de recibo). Si el emisor no recibe el ACK en un tiempo determinado, vuelve a enviar el paquete automáticamente.
Segmentación y Reensamblado: TCP divide los datos grandes en trozos llamados segmentos. Cada segmento tiene un número de secuencia.
Control de Errores: Utiliza un sistema llamado Checksum para verificar que los datos no se han corrompido por el camino.
Control de Flujo: Si el receptor es más lento que el emisor (por ejemplo, un servidor potente enviando datos a un móvil viejo), TCP ajusta la velocidad para no saturar al receptor.
La Cabecera TCP: ¿Qué información añade?
Cuando los datos de la aplicación llegan a la Capa 4, se les pone una "carátula" (cabecera) que suele ocupar 20 bytes. Los campos más importantes son:
Puerto de Origen y Destino: Para saber a qué aplicación va el dato (ej: Puerto 443 para navegación segura).
Número de Secuencia: Para poder ordenar los segmentos al llegar.
Checksum: Para la detección de errores.
¿Cuándo usamos TCP?
Usamos TCP siempre que no podamos permitirnos perder ni un solo bit. Si descargas un archivo .exe y falta un bit, el programa no funcionará.
HTTP / HTTPS: Navegación por páginas web.
SMTP / IMAP: Envío y recepción de correos electrónicos.
FTP: Transferencia de archivos.
SSH: Administración remota de servidores.
Resumen:
"TCP es como una empresa de mensajería premium: es un poco más lenta porque tiene que firmar albaranes y comprobar el contenido, pero te garantiza que el paquete llega perfecto y en su orden."
Preguntas de Reflexión:
Responde a las siguientes cuestiones tras visualizar el vídeo y consultar los apuntes de clase:
- ¿Qué es el protocolo TCP y cuál es su característica principal frente a otros protocolos de transporte?
- ¿Cómo funciona el proceso de establecimiento de conexión o "Handshake de 3 vías"?
- ¿Por qué son necesarios exactamente 3 mensajes y no bastan con 2 para abrir una conexión?
- ¿Qué es la ventana deslizante y cómo gestiona el control de flujo?
- ¿Qué diferencia principal existe entre TCP y UDP en escenarios reales?
Haz clic aquí para ver las soluciones y explicaciones
1. ¿Qué es el protocolo TCP y cuál es su característica principal?
TCP (Transmission Control Protocol) es un protocolo fundamental de la capa de transporte orientado a conexión. Su característica principal es que garantiza una entrega de datos fiable, ordenada y sin errores entre aplicaciones, encargándose de retransmitir paquetes perdidos y ordenar los segmentos que llegan desordenados.
2. ¿Cómo funciona el proceso de establecimiento de conexión o "Handshake de 3 vías"?
Antes de que comience la transferencia real de datos, las dos máquinas realizan un intercambio de tres mensajes para sincronizar los números de secuencia y confirmar la accesibilidad mutua:
- SYN: El cliente envía un mensaje inicial indicando que quiere conectar y aportando su número de secuencia inicial aleatorio ($X$).
- SYN-ACK: El servidor responde aceptando la conexión (ACK de $X+1$) y enviando su propio número de secuencia inicial aleatorio ($Y$).
- ACK: El cliente confirma el número del servidor enviando un último acuse de recibo ($Y+1$). A partir de este momento, la conexión se considera establecida en ambos lados.
3. ¿Por qué son necesarios exactamente 3 mensajes y no bastan con 2?
Se necesitan 3 mensajes para evitar que el servidor abra conexiones basadas en peticiones antiguas o perdidas en la red (problema de paquetes zombis o desincronizados). Si fueran solo dos mensajes, el servidor daría la conexión por abierta sin saber si el cliente realmente recibió su respuesta ($SYN-ACK$), pudiendo generar estados fantasma o conexiones colgadas en el servidor.
4. ¿Qué es la ventana deslizante y cómo gestiona el control de flujo?
La ventana deslizante es el mecanismo que utiliza TCP para el control de flujo. Permite que el emisor envíe múltiples bytes de manera consecutiva sin tener que esperar una confirmación (ACK) individual para cada uno de ellos, adaptando dinámicamente la velocidad de transmisión a la capacidad real de procesamiento y almacenamiento temporal del receptor.
5. ¿Qué diferencia principal existe entre TCP y UDP?
- TCP: Está orientado a conexión, garantiza la entrega ordenada y sin pérdidas de los datos, incluye control de flujo y congestión, pero introduce algo más de sobrecarga y latencia. Ideal para web (HTTP/HTTPS), correo (SMTP) o transferencia de archivos.
- UDP: Es un protocolo no orientado a conexión y sin garantías de entrega (los paquetes pueden perderse o llegar desordenados), pero es sumamente rápido y ligero. Ideal para streaming en tiempo real, videollamadas o juegos online.