1. Orientado a la conexión: Antes de que comience la transmisión de datos, TCP establece una conexión entre el remitente y el receptor. Esto implica un apretón de manos de tres vías para garantizar que ambos extremos estén listos y acuerde los parámetros como el tamaño de la ventana. Esto contrasta con UDP (protocolo de datagrama de usuario), que no tiene conexión.
2. Confiable: TCP garantiza una entrega de datos confiable. Esto significa que todos los datos enviados llegarán al destino en el orden correcto y sin errores. Logra esto a través de:
* Reconocimiento (ACK): El receptor envía ACK para confirmar la recepción de paquetes de datos. Si no se recibe un ACK dentro de un cierto período de tiempo, el remitente retransmite el paquete.
* Números de secuencia: A cada paquete se le asigna un número de secuencia, lo que permite que el receptor reordene los paquetes si llegan fuera de servicio y detectan los paquetes faltantes.
* SUMAS DE CHECKS: TCP utiliza suma de verificación para detectar errores en los datos durante la transmisión. Los paquetes corruptos se descartan y se retransmiten.
* Control de flujo: TCP utiliza un mecanismo de ventana deslizante para controlar la velocidad de transmisión de datos para evitar que el remitente abrume el receptor. El receptor anuncia la cantidad de datos que puede amortiguar, y el remitente ajusta su tasa de transmisión en consecuencia.
* Control de congestión: TCP incorpora algoritmos (como arranque lento, evitación de congestión, retransmisión rápida y recuperación rápida) para administrar la congestión de la red y evitar la sobrecarga de la red. Estos algoritmos ajustan dinámicamente la velocidad de transmisión en función de las condiciones de la red.
3. Entrega ordenada: TCP garantiza que los paquetes de datos lleguen en el mismo orden que fueron enviados. Los números de secuencia juegan un papel crucial en el logro de esto.
4. Comunicación Full-Duplex: Tanto el remitente como el receptor pueden transmitir datos simultáneamente.
5. Peso pesado: Debido a sus características como detección y corrección de errores, establecimiento de conexión, flujo y control de congestión, TCP tiene una sobrecarga más alta que UDP. Esto significa que consume más recursos del sistema y es más lento que UDP.
6. Procesamiento más pesado: Debido a los pasos adicionales involucrados en el establecimiento de conexiones, la gestión de los reconocimientos y la verificación de errores, TCP requiere más potencia de procesamiento del remitente y receptor.
En resumen, TCP proporciona un mecanismo de entrega de datos confiable y ordenado, pero a costa de mayores requisitos de sobrecarga y procesamiento. Es adecuado para aplicaciones donde la transferencia de datos confiable es crítica, como la navegación web, el correo electrónico y la transferencia de archivos. UDP, por otro lado, es más eficiente pero menos confiable, lo que lo hace más adecuado para aplicaciones como la transmisión de video o juegos en línea donde se acepta alguna pérdida de datos.