Qué es TCP y cómo transmite los datos

Autor: Publicado

En breve: TCP es un protocolo de transporte, es decir, un conjunto de reglas para transmitir datos entre aplicaciones que funcionan en una red. Permite entregar los datos en el orden correcto, detecta los que faltan y retransmite los fragmentos perdidos. Sin embargo, no garantiza que todas las conexiones terminen con éxito ni cifra por sí mismo la información transmitida.

¿Qué función cumple TCP en internet?

TCP, del inglés Transmission Control Protocol, funciona entre las aplicaciones y la capa encargada de transmitir paquetes por la red. Lo utilizan, entre otros, el correo electrónico, el acceso remoto mediante SSH y muchas conexiones con sitios web. Gracias a TCP, la aplicación no tiene que ocuparse por sí misma de ordenar los fragmentos de datos ni de volver a enviarlos cuando se pierden.

TCP suele aparecer junto a la sigla IP, pero estos protocolos tienen funciones distintas. IP se encarga del direccionamiento y del envío de paquetes entre dispositivos; no garantiza su entrega ni su orden. TCP añade los mecanismos necesarios para transmitir de forma fiable un flujo ordenado de bytes, es decir, una secuencia de datos que lee la aplicación.

Puede compararse con el envío de las partes numeradas de un documento. IP ayuda a dirigir los envíos al destinatario, mientras que TCP se ocupa de la numeración, los acuses de recibo y el reenvío de las partes que faltan. Es una simplificación: en realidad, TCP numera bytes, no páginas de un documento.

¿Cómo establece TCP una conexión y transmite datos?

Antes de iniciar el intercambio habitual de datos, TCP establece una conexión. El procedimiento básico consta de tres pasos y se conoce como three-way handshake, o negociación de tres pasos:

  1. El cliente envía un mensaje SYN, en el que propone iniciar la conexión.
  2. El servidor responde con SYN-ACK, confirmando la propuesta y comunicando sus propios parámetros iniciales.
  3. El cliente envía ACK, que confirma la recepción de la respuesta del servidor.

Durante esta negociación, ambas partes acuerdan, entre otras cosas, los números de secuencia iniciales, que permiten seguir la posición de los datos dentro del flujo. Establecer la conexión no significa que el usuario haya iniciado sesión ni que se haya verificado la identidad del servidor.

A continuación, los datos se transmiten en segmentos, unidades que contienen un fragmento de datos e información de control de TCP. El receptor confirma los datos recibidos y el emisor detecta posibles pérdidas a partir de esas confirmaciones o del tiempo transcurrido. Los datos que faltan se vuelven a enviar: esto se denomina retransmisión.

Si los segmentos llegan en un orden distinto, TCP los ordena antes de entregarlos a la aplicación. También elimina los efectos de la duplicación para que la aplicación no lea los mismos bytes dos veces. Si un fallo se prolonga demasiado, la conexión puede interrumpirse sin haber entregado todos los datos.

¿Qué ofrece TCP y qué no hace?

Además de mantener el orden, TCP regula el ritmo de transmisión. El control de flujo evita que el receptor reciba más datos de los que puede aceptar en ese momento. El control de congestión adapta el envío a las condiciones de la red y reduce la carga sobre los enlaces congestionados.

TCP también incluye una suma de comprobación que ayuda a detectar daños accidentales en los segmentos. Sin embargo, no es una protección criptográfica frente a modificaciones deliberadas. El cifrado y la autenticación dependen de otros mecanismos, como TLS, utilizado en HTTPS.

Hay otras dos limitaciones importantes:

Por ejemplo, si la conexión se interrumpe mientras se realiza un pedido, el error de TCP por sí solo no permite determinar si el pedido se ha creado. Antes de repetir la operación, hay que comprobar su estado en la tienda, en lugar de suponer que los datos no llegaron.

¿En qué se diferencia TCP de UDP?

UDP es otro protocolo de transporte. Transmite mensajes independientes, llamados datagramas, sin mecanismos integrados de confirmación de recepción, retransmisión ni ordenación. La aplicación puede añadir estos mecanismos, pero UDP no los proporciona por sí mismo.

CaracterísticaTCPUDP
Forma de transmisiónFlujo ordenado de bytesDatagramas independientes
Retransmisión de datos perdidosIntegradaDepende de la aplicación
Establecimiento de la conexiónNecesarioUDP no tiene este procedimiento
Prioridad habitual de usoIntegridad y orden de los datosControl de la aplicación sobre el retardo y las pérdidas

Al descargar un archivo, es necesario recuperar cualquier fragmento que falte, por lo que los mecanismos de TCP resultan útiles. Durante una conversación de voz, un fragmento de audio que llega tarde puede ser menos útil que continuar tras una breve interrupción. Por eso, las soluciones en tiempo real suelen utilizar UDP.

Esto no significa que UDP sea siempre más rápido ni que todos los sitios web utilicen TCP. HTTP/1.1 y HTTP/2 suelen funcionar sobre TCP, mientras que HTTP/3 utiliza QUIC, basado en UDP. QUIC proporciona por sí mismo, entre otras funciones, la transmisión fiable de flujos y el cifrado.

¿Qué significa un puerto TCP en la configuración de red?

Un puerto es un número que ayuda al sistema a dirigir el tráfico al servicio adecuado. La dirección IP identifica un punto de la red, mientras que el puerto permite distinguir los servicios disponibles en esa dirección. Un ejemplo habitual es el puerto TCP 443, utilizado por HTTPS cuando funciona sobre TCP.

TCP y UDP tienen espacios de puertos separados. Una regla del cortafuegos que permite TCP 443 no permite automáticamente UDP 443, que suele utilizar HTTP/3. Que un puerto esté abierto tampoco demuestra que la aplicación funcione correctamente o de forma segura.

Si configuras un cortafuegos, consulta en la documentación del servicio concreto qué protocolo, número de puerto y dirección del tráfico requiere. Así podrás crear una regla precisa, en lugar de permitir innecesariamente todo el tráfico TCP y UDP.

Consulta también: ¿Qué significa www?

Lee también

Descubre cómo PHP-FPM atiende peticiones PHP, en qué se diferencia de un servidor web y cómo ajustar sus procesos al tráfico y los recursos.
Conoce BIND, el software abierto de servidor DNS: sus funciones, cómo gestiona dominios y cuándo conviene instalarlo por tu cuenta.
Descubre qué son el registro REGON de Polonia y su número, en qué se diferencian de NIP y KRS y cómo verificar los datos de una empresa.