¿Cómo funciona un TCP?

TCP funciona estableciendo una comunicación confiable y orientada a la conexión entre dos nodos. A continuación se ofrece una descripción general de alto nivel de cómo funciona TCP:

Resolución de dirección:

- Cuando una aplicación cliente quiere enviar datos a otra aplicación, el primer paso consiste en obtener la dirección IP del servidor de destino. Esto se logra mediante el Protocolo de resolución de direcciones (ARP).

Establecimiento de conexión TCP (apretón de manos de tres vías):

- Durante el establecimiento de la conexión, TCP sigue un proceso de protocolo de enlace de tres vías.

1. El cliente envía un paquete SYN (Sincronizar) al servidor. Este paquete contiene el número de secuencia inicial que el cliente utilizará para sus segmentos de datos.

2. El servidor responde con un paquete SYN-ACK (Sincronización-Reconocimiento). Esto reconoce el SYN del cliente y también incluye el número de secuencia inicial del servidor.

3. El cliente reconoce la respuesta del servidor enviando un paquete ACK (Reconocimiento).

Transmisión y reconocimiento de datos:

- Una vez establecida la conexión TCP, el cliente y el servidor pueden comenzar a intercambiar datos.

- TCP garantiza una transmisión de datos confiable al dividir los datos en segmentos de tamaño apropiado y asignar números de secuencia a cada segmento.

- El receptor envía un paquete de confirmación (ACK) al remitente por cada segmento de datos recibido. El remitente mantiene un búfer de datos no reconocidos y continúa enviando más segmentos hasta que se reconocen todos.

- Si no se recibe una confirmación dentro de un período de tiempo de espera específico, el remitente retransmite el segmento. Este mecanismo ayuda a garantizar la entrega confiable de datos.

Control de flujo (Protocolo de ventana deslizante):

- Para evitar que el remitente abrume al receptor, TCP emplea un mecanismo llamado control de flujo.

- Utiliza un protocolo de ventana deslizante, que define la cantidad máxima de datos que pueden no ser reconocidos en un momento dado. Esto evita el desbordamiento del buffer en el lado del receptor.

Control de congestión (arranque lento y prevención de congestión):

- TCP implementa mecanismos de control de congestión para adaptar su velocidad de transmisión en función de los recursos de red disponibles.

1. Inicio lento:Esto evita que el remitente introduzca congestión en la red de forma abrupta. Comienza enviando una pequeña cantidad de datos y luego aumenta gradualmente la velocidad de transmisión a medida que se reciben los acuses de recibo.

2. Evitación de congestión:una vez que el remitente alcanza la capacidad de la red, ingresa a la fase de evitación de congestión. En esta fase se controla el crecimiento de la velocidad de transmisión para evitar sobrecargar la red.

Terminación de la conexión (apretón de manos de cuatro vías):

- Cuando se completa el intercambio de datos, la conexión TCP finaliza mediante un proceso de protocolo de enlace de cuatro vías.

1. El cliente envía un paquete FIN (Finalizar) al servidor.

2. El servidor reconoce el FIN e indica que tiene más datos para enviar con un paquete FIN-ACK.

3. El cliente reconoce el FIN-ACK del servidor con un paquete ACK.

4. El servidor envía un ACK final al cliente y ambos extremos cierran la conexión.

A lo largo de la conexión, TCP garantiza una comunicación confiable y controlada entre el cliente y el servidor mediante la gestión de segmentos de datos, reconocimientos, control de flujo y control de congestión. Esto permite que las aplicaciones intercambien datos de manera eficiente y confiable a través de la red.