Protocolo TCP: qué es y cómo funciona en redes

11min

El protocolo TCP es un elemento fundamental en las redes informáticas de comunicación. Lo usas, quizás sin saberlo, en una innumerable cantidad de actividades de tu día a día. Si quieres saber más, te vamos a ofrecer una excelente guía para poder entenderlo.

Índice

¿Qué es el protocolo TCP?

El protocolo TCP es uno de los más extendidos a nivel mundial. De hecho, es fundamental en las redes de datos actuales y, por supuesto, en Internet. Forma parte del conjunto de protocolos TCP/IP, que constituye la base sobre la que están construidas la mayoría de las redes informáticas modernas.

Sus siglas corresponden a Transmission Control Protocol en inglés, lo que traduciríamos por Protocolo de Control de Transmisión. Como su nombre indica, TCP es el mecanismo que controla las transmisiones y se asegura que los datos enviados entre los dispositivos lleguen completos y sin cambios.

¿Cómo funciona el protocolo TCP?

Para entender mejor cómo funciona TCP antes tenemos que hablar de protocolos en general. Un protocolo es justamente lo que se entiende de manera literal: un plan de acción que está compuesto por una serie de pasos que se tienen que dar en un orden determinado.

Por tanto, puedes pensar en TCP como un plan bien organizado que se tendrá que cumplir de manera estricta para conseguir dar por buena una transmisión de datos. Ese plan de acción tendrá una serie de componentes y pasos que vamos a resumir en los siguientes puntos.

El modelo cliente-servidor en TCP

Toda transmisión debe darse entre un cliente y un servidor. Es como cuando navegas por un sitio web, lo haces con un cliente web (el navegador) y te conectas con un servidor que te entrega la página que quieres visualizar.

Pues en TCP funciona igual, pero a un nivel más general. Tendremos un dispositivo que hace las veces de cliente y otro que hace las veces de servidor. Uno pide y el otro responde.

Segmentación y reensamblaje de datos

Entre otros mecanismos TCP se encarga de dividir las transmisiones en pequeños segmentos o paquetes, que puedan ser transferidos de manera sencilla por las redes. 

Imagina que tienes que traerte un vídeo o un archivo grande. Por supuesto no te va a llegar todo de golpe, en realidad vendrá troceado para que pueda transferirse mediante un flujo de datos durante un tiempo. Pues bien, TCP es el protocolo que se encarga de dividirlo en pequeños paquetes formando ese flujo de transmisión.

Esos pequeños segmentos luego se tendrán que volver a juntar para que tengan sentido de nuevo, una vez que el cliente los ha recibido, tarea que también corresponde a TCP.

Establecimiento de la conexión (el proceso de three-way handshake)

Después de conocer los componentes principales de la transmisión y entender el concepto de paquete vamos a entrar ya en los pasos del protocolo.

El primero es el famoso three-way handshake. Es un proceso que hace las veces de aludo» entre el cliente y el servidor. No es más que una serie de señales que se van a intercambiar, que les permite entender a ambos que están preparados para realizar una transmisión.

  • Primero, el cliente dice «¿Estás ahí?» (envía un SYN). 
  • El servidor responde «¡Sí, estoy aquí!» (entonces envía un SYN-ACK) 
  • Finalmente el cliente confirma que ha recibido la respuesta del servidor (ACK).

Control de flujo y gestión de errores en TCP

Una vez comienza la comunicación, el protocolo TCP se encarga de controlar el flujo de datos entre cliente y servidor, realizando el empaquetado y ensamblaje y comprobando que no hay errores en los datos. Si los hubiera se encarga de volver a transmitir los paquetes para corregirlos.

Finalización de la conexión TCP

El proceso termina cuando la transferencia de datos ha finalizado y entonces el protocolo todavía tiene un par de pasos que realizar. En este proceso tanto cliente como servidor intercambian mensajes de FIN y ACK y con ellos dan las comunicaciones por cerradas… hasta la próxima.

Principales características del protocolo TCP

Las características del protocolo TCP nos ayudan a desentendernos de muchos aspectos complejos de las comunicaciones. Es como dejar en buenas manos el trabajo duro y simplemente confiar que las cosas van a ir bien, lo que es muy de agradecer cuando estás desarrollando cualquier sistema que debe comunicar datos.

Confiabilidad en la transmisión de datos

TCP garantiza que los datos lleguen sin errores y en el orden correcto, resolviendo los posibles fallos que pueda haber por el camino. Por ejemplo, si un paquete se pierde y no llega al destino, TCP se encargará de enviarlo de nuevo.

Orientación a conexión

TCP se encarga del proceso de la conexión entre los integrantes de la transmisión. Es decir, antes de transferir datos, TCP establece una conexión, tal como hemos descrito.

Control de congestión en la red

Las redes también pueden estar congestionadas. En esos casos TCP es capaz de ajustar la velocidad de transmisión según las condiciones de la red, evitando fallos debidos a saturaciones de la red.

Garantía de entrega de datos en el orden correcto

Otro de los aspectos que nos asegura el protocolo es que los datos llegan en el orden que deben llegar. Gracias a ello es viable recomponerlos una vez están en el cliente.

Compatibilidad con otros protocolos de la capa de transporte

TCP es un protocolo sencillo, capaz de servir como base de muchos otros protocolos más especializados. TCP se encarga del trabajo del tránsito de las comunicaciones con protocolos tan conocidos como HTTP, FTP y SMTP, SSH y muchos otros que usamos en el día a día.

Diferencias entre TCP y UDP

Ahora que has entendido las características de TCP vamos a compararlo con otro protocolo usado igualmente para la capa de transporte de datos: UDP.

¿Qué es UDP y cómo se compara con TCP?

UDP es un protocolo que tiene similitudes con TCP porque ambos se encargan de la capa de transporte de datos en las redes de comunicaciones informáticas. Es por eso que a menudo se establece una comparación entre ambos. 

Sin embargo, los dos protocolos tienen diferencias fundamentales, aunque básicamente lo más importante es que TCP es capaz de garantizar que los datos llegan completos, en el orden correcto y sin errores, algo que no hace UDP.

Ventajas de TCP frente a UDP

Las ventajas de TCP son la confiabilidad y su capacidad para corregir los errores en las transmisiones, como la pérdida de paquetes. UDP, por su parte, se preocupa más de que las conexiones sean rápidas y sencillas.

Casos de uso de TCP vs. UDP

En general, la mayoría de los servicios de red usan TCP para funcionar. Por ejemplo, HTTP, FTP, SSH y muchos otros donde se necesita asegurar que los datos llegan correctamente.

Sin embargo UDP también tiene usos destacables en la industria como las videoconferencias o juegos en línea. Un ejemplo de aplicación que usa UDP es Zoom. También se usa en juegos como Fortnite o League of Legends.

Casos de uso del protocolo TCP

Ya hemos mencionado varios casos de uso de TCP, pero hay muchos otros.

TCP en la navegación web (HTTP/HTTPS)

Como dijimos, el protocolo sobre el que se sustenta la web, HTTP, usa TCP. Además HTTPS (el mismo HTTP pero seguro, o cifrado) funciona también bajo TCP.

Transferencia de archivos mediante FTP

La transferencia de archivos mediante FTP está construida mediante TCP. Algo fundamental porque es muy importante garantizar que los archivos hayan podido transmitirse correctamente.

Envío de correos electrónicos (SMTP, IMAP y POP3)

Todos los protocolos sobre los que se construye el correo electrónico también funcionan sobre TCP. Igualmente, es necesario el uso de este protocolo para garantizar que los mensajes lleguen a su destino tal como se enviaron en origen.

Aplicaciones de streaming en redes TCP

Aunque UDP es ideal para el streaming, porque prioriza la velocidad, TCP también se usa mucho para transmisiones de vídeo. Por ejemplo YouTube usa TCP para poder transmitir los multimedia. TCP será más adecuado cuando se requiere garantizar un nivel de calidad y seguridad elevado.

Conexiones seguras en redes empresariales

Si necesitamos conexiones seguras, TCP es el protocolo más deseable. Por ejemplo, cuando se abre una conexión con una VPN se usa también TCP.

¿Cómo configurar el protocolo TCP en tu red?

Afortunadamente, el protocolo TCP forma parte de los sistemas de transmisión de datos y de los sistemas operativos, por lo que generalmente no tenemos que hacer nada en particular para poder usarlo.

Configuración básica de TCP en sistemas operativos

Los sistemas modernos configuran TCP automáticamente y vienen totalmente preparados para trabajar con él. Sin embargo, siempre hay algunas opciones de configuración en la sección de redes, aunque no se suelen tocar.

Optimización de parámetros de TCP para mejorar el rendimiento

Si alguna vez tienes que optimizar el protocolo puedes activar TCP Window Scaling para conseguir que las ventanas de recepción sean mucho más grandes, algo que puede ser adecuado para las redes actuales de alta capacidad.

También puedes ajustar los tiempos de retransmisión y usar algoritmos modernos de control de descongestión como BBR. Otra posibilidad sería ajustar el MTU (Maximum Transmission Unit). Todo esto son estrategias válidas pero sería recomendable cambiarlas solo si sabemos lo que estamos haciendo.

Diagnóstico y resolución de problemas comunes en TCP

Cuando experimentamos problemas de red puede deberse a muchos motivos. Si alguna vez nos encontramos ante conexiones interrumpidas podemos usar herramientas de línea de comandos como ping y traceroute, que nos pueden ayudar a comprobar si las señales están saliendo desde nuestro ordenador hacia fuera. pueden ayudarte a identificar el problema.

El comando ping se usa indicando el servidor al que quieres hacer el ping. Por ejemplo:

ping google.com

Entonces en tu línea de comandos empezarán a aparecer una secuencia de llamadas de ping al servidor, con sus tiempos de respuesta. Esta operación es ideal para saber si un servidor está caído o si tenemos conexión a Internet en un momento dado.

El comando traceroute se usa exactamente igual, pero la salida es más avanzada, ya que nos muestra todos los servidores por los que va saltando nuestra señal hasta llegar al destino.

Herramientas para monitorear conexiones TCP

Otras herramientas más avanzadas para monitorizar TCP son Wireshark, tcpdump y Netcat. Puedes encontrar más información sobre ellas en Internet.

Preguntas frecuentes sobre el protocolo TCP

Terminamos respondiendo algunas preguntas que los usuarios más nuevos pueden realizarse sobre el protocolo TCP.

¿El TCP sigue siendo relevante en las redes actuales?

Claro que sí! Como hemos dicho, es la base sobre la que se sustenta la mayoría de las redes de datos modernas, incluida Internet.

¿Qué tipos de dispositivos utilizan el protocolo TCP?

Actualmente es difícil encontrar un dispositivo que se conecte en red y que no soporte TCP. De hecho ya no son sólo los ordenadores o móviles, actualmente los televisores, relojes y hasta las neveras soportan TCP.

¿TCP es más seguro que UDP?

Sí, se podría decir que TCP es más seguro, aunque técnicamente nos vamos a quedar en afirmar que es más confiable, ya que simplemente nos permite garantizar la integridad de los datos. En realidad TCP no tiene cifrado nativo sino que se tiene que apoyar en otros protocolos como TLS para poder cifrar las comunicaciones.

¿Cómo afecta la latencia al rendimiento de TCP?

La latencia podría ralentizar TCP, pero opciones como TCP Fast Open ayudan a mitigar este problema.

¿Qué herramientas puedo usar para analizar conexiones TCP?

Herramientas ya mencionadas en este post, como Wireshark, tcpdump y Netcat son ideales para inspeccionar y solucionar problemas en TCP.

Fernán García de Zúñiga

Productos relacionados: