Protocolo de Control de Transmisión (TCP) es uno de los principales protocolos del conjunto de protocolos de Internet. TCP forma parte de la combinación conocida como "TCP/IP", que se utiliza para comunicar dispositivos a través de la Internet. El Protocolo de Internet (IP) se encarga de encaminar los paquetes hasta el destino; TCP, que opera encima de IP, proporciona un servicio fiable y orientado a la conexión que asegura que los datos lleguen completos y en el orden correcto. Estos protocolos permiten que cualquier ordenador y cualquier aplicación (por ejemplo, un navegador web o un cliente de correo electrónico) transmitan información de forma interoperable.

Funciones principales

  • Transmisión fiable: detección de errores y retransmisión de datos perdidos.
  • Entrega ordenada: reensamblaje de bytes en el orden en que fueron enviados.
  • Control de flujo: evita que un receptor lento se vea desbordado por un emisor rápido.
  • Control de congestión: adapta la velocidad de envío para reducir la congestión de la red.
  • Multiplexación mediante puertos: permite que varios servicios usen la misma dirección IP.

Funcionamiento básico

TCP es un protocolo orientado a la conexión. Antes de transferir datos se establece una conexión mediante un proceso de tres fases conocido como "three-way handshake" (SYN, SYN‑ACK, ACK). Los datos se envían como un flujo de bytes divididos en segmentos, cada uno identificado por números de secuencia. El receptor confirma la recepción con acuses de recibo (ACK). Si el emisor no recibe confirmación en un tiempo determinado, retransmite los segmentos.

Encabezado y opciones

Cada segmento TCP incluye un encabezado con campos importantes: puerto de origen y destino, número de secuencia, número de acuse, indicadores de control (por ejemplo, SYN, ACK, FIN, RST), tamaño de ventana, suma de comprobación y puntero urgente. TCP admite opciones que amplían su comportamiento, como la negociación del tamaño máximo de segmento (MSS), marcas de tiempo y mecanismos de selección de confirmaciones (SACK) para mejorar la eficiencia.

Control de congestión y algoritmos

Para evitar colapsos en la red, TCP incorpora algoritmos de control de congestión que ajustan dinámicamente la tasa de envío. A lo largo de su evolución se han propuesto y desplegado variantes como Tahoe, Reno, NewReno, Cubic y BBR, entre otras, cada una con estrategias distintas para equilibrar rendimiento y estabilidad.

Usos y compatibilidad

TCP es el transporte habitual para protocolos de aplicación que requieren fiabilidad y entrega ordenada, como HTTP (la base de la navegación web), FTP, SMTP (correo electrónico), SSH y muchos otros. Se usa junto con IP en redes IPv4 e IPv6 y es compatible con mecanismos de traducción de direcciones, cortafuegos y otros dispositivos intermedios que pueden modificar o filtrar el tráfico TCP.

Limitaciones y alternativas

La naturaleza orientada a la conexión y al orden de TCP puede introducir retrasos, especialmente cuando hay pérdidas de paquetes (problema conocido como head‑of‑line blocking). Para aplicaciones que toleran pérdida o que priorizan la latencia sobre la fiabilidad (por ejemplo, transmisión de voz en tiempo real o juegos), se utilizan alternativas como UDP o protocolos de transporte basados en UDP que implementan sus propias estrategias de fiabilidad y control de congestión.

Historia y estandarización

TCP fue definido originalmente en la década de 1970 y publicado en 1981 en el Request for Comments RFC 793; desde entonces se ha modificado y ampliado mediante RFC posteriores para mejorar la seguridad, el rendimiento y la interoperabilidad. Las implementaciones modernas de TCP aparecen en sistemas operativos y dispositivos de red como parte del conjunto de protocolos estándar.