Protocolo de Control de Transmisión (TCP): Funcionamiento, Confiabilidad y Establecimiento de Sesiones
Clasificado en Informática
Escrito el en
español con un tamaño de 4,81 KB
Protocolo de Control de Transmisión (TCP): Fundamentos y Operación
El Protocolo de Control de Transmisión (TCP) es fundamental en la capa de transporte de Internet. Su función principal es asegurar la entrega de datos de manera confiable, gestionando el envío de paquetes (segmentos) con un estricto seguimiento desde el origen hasta el destino.
Si un envío se divide en múltiples paquetes, TCP permite revisar en línea el orden de entrega para garantizar la integridad del mensaje completo.
Operaciones Básicas de Confiabilidad de TCP
TCP implementa mecanismos robustos para asegurar que los datos lleguen correctamente. Estas operaciones incluyen:
- Numeración y seguimiento de los segmentos de datos transmitidos a un host específico desde una aplicación específica.
- Reconocimiento (ACK) de los datos recibidos por el destino.
- Retransmisión de los datos que no han sido reconocidos después de un tiempo determinado (timeout).
Propiedades Clave de TCP
Las características inherentes a TCP lo definen como un protocolo orientado a la conexión y altamente fiable:
- Confiable: Reconoce los datos recibidos y reenvía los datos perdidos.
- Entrega en orden secuencial: Asegura que los datos se reensamblen en el orden correcto en el destino.
Características Operacionales
Para mantener la fiabilidad y el orden, TCP se basa en las siguientes características:
- Establecimiento de una sesión: Garantiza que la aplicación de destino esté lista para recibir los datos antes de iniciar la transferencia.
- Entrega en el mismo orden: Asegura que los segmentos se rearmen en el orden correcto.
- Entrega confiable: Los segmentos perdidos se reenvían para garantizar que todos los datos se reciban completamente.
- Control del flujo: Garantiza que el receptor pueda procesar los datos recibidos sin sobrecargarse.
Establecimiento de Conexiones TCP (Three-Way Handshake)
La conexión TCP se establece mediante un proceso de tres pasos conocido como el Three-Way Handshake:
Paso 1: Solicitud de Sincronización
El cliente de origen solicita una sesión de comunicación con el servidor. El Origen envía una solicitud SYN (Synchronize) al destino.
Paso 2: Reconocimiento y Solicitud de Retorno
El servidor reconoce la sesión de comunicación de cliente a servidor y, a su vez, solicita una sesión de comunicación de servidor a cliente. El Destino envía una respuesta ACK (Acknowledgment) y la solicitud SYN al Origen.
Paso 3: Reconocimiento Final
El cliente de origen reconoce la sesión de comunicación de servidor a cliente. El Origen envía la respuesta ACK al Destino, estableciendo la conexión bidireccional.
Finalización de la Sesión TCP (Four-Way Handshake)
La terminación de la conexión también sigue un protocolo definido, generalmente en cuatro pasos:
Paso 1: Solicitud de Terminación del Cliente
Cuando el cliente no tiene más datos para enviar en la transmisión, envía un segmento con el marcador FIN (Finish) establecido.
Paso 2: Reconocimiento del Servidor
El servidor envía un ACK para reconocer el marcador FIN y terminar la sesión de cliente a servidor (el servidor puede seguir enviando datos si los tiene pendientes).
Paso 3: Solicitud de Terminación del Servidor
El servidor envía un FIN al cliente para terminar formalmente la sesión de servidor a cliente.
Paso 4: Reconocimiento Final del Cliente
El cliente responde con un ACK para reconocer el recibo del FIN desde el servidor, cerrando completamente la conexión.
Control del Flujo: El Tamaño de Ventana
El Tamaño de Ventana es el mecanismo principal de TCP para el control de flujo, previniendo que un emisor rápido sature a un receptor lento.
El Equipo A (emisor) envía una cantidad de bytes al Equipo B (receptor). La ventana de envío no se desliza (no se permite enviar más datos) hasta que el Equipo A recibe la confirmación (ACK) de que todos los bytes enviados han llegado correctamente.
El Equipo B determina el tamaño máximo de la ventana que puede manejar. Cuando devuelve los bytes al Equipo A, le indica el nuevo tamaño de ventana disponible, y el proceso continúa de esta manera, ajustando dinámicamente la tasa de transferencia.