TCP y UDP: ¿en qué se diferencian y dónde se usan?

Publicado:

14 min de lectura

Acar Diveroli
Autor: Acar Diveroli
Dos carriles de datos: paquetes confirmados en el carril TCP y paquetes rápidos y espaciados en el carril UDP

En un juego online, tu personaje salta de golpe unos pasos hacia delante mientras un rival parece quedarse quieto. Al mismo tiempo, los mensajes que escribes en el chat del juego nunca llegan incompletos ni desordenados. Los dos viajan por la misma conexión, pero con reglas distintas. La posición de tu personaje se envía muy probablemente con UDP, y tus mensajes y datos de acceso, muy probablemente con TCP.

En este artículo explicamos, con un lenguaje informático sencillo, qué son TCP y UDP, cómo transportan los datos y en qué se diferencian. Después vemos qué usan las webs, el correo, los juegos, las videollamadas y los directos y por qué, qué relación tienen con el ping y la pérdida de paquetes en los juegos, por qué importa el soporte de UDP al elegir un proxy y qué significa «abrir un puerto».

¿Qué son TCP y UDP?

En internet, un dato como una página web o un mensaje de voz no se envía de una sola vez. Primero se divide en partes pequeñas. Esas partes se llaman paquetes. Cada paquete viaja por su cuenta, puede seguir una ruta distinta y se vuelve a juntar al otro lado.

Los conjuntos de reglas que deciden cómo se envían esas partes, qué pasa si se pierden y en qué orden se juntan se llaman protocolos. TCP y UDP son los dos protocolos más comunes para este trabajo:

  • TCP (Transmission Control Protocol): se centra en entregar los datos completos y en orden. Su definición actual está en el RFC 9293 de la IETF.
  • UDP (User Datagram Protocol): se centra en enviar los datos esperando lo menos posible. Su definición está en el RFC 768, un texto breve de tres páginas.

Los dos funcionan sobre el mismo internet, los mismos cables y el mismo router. La diferencia está en cómo se envían los paquetes.

¿Cómo funciona TCP?

La regla básica de TCP es: no sigue adelante hasta estar seguro de que todo lo enviado ha llegado. Lo hace en cuatro pasos.

  1. Primero se establece la conexión. Antes de enviar datos, los dos ordenadores intercambian tres mensajes cortos: «quiero conectarme», «vale, estoy listo», «yo también». Esto se llama saludo en tres pasos. Los datos reales no salen hasta que terminan esos mensajes.
  2. Los paquetes se numeran. Cada paquete recibe un número de secuencia. Aunque el otro lado reciba los paquetes desordenados, los ordena con esos números.
  3. Se espera confirmación de cada paquete. El otro lado envía una confirmación del tipo «he recibido todo hasta este número». El emisor espera esa confirmación.
  4. Se reenvía el paquete sin confirmar. Si no llega confirmación en un tiempo determinado, TCP da el paquete por perdido y lo envía otra vez. Si la red está saturada, también reduce la velocidad de envío.

Por eso, un archivo enviado con TCP llega completo o no llega. No recibes media página web ni un correo al que le faltan letras. El precio es el tiempo: cada espera de confirmación y cada reenvío suman unos milisegundos.

¿Cómo funciona UDP?

La regla de UDP es mucho más simple: envía el paquete y pasa al siguiente.

  1. No se establece conexión. No hay saludo; el primer paquete sale al instante.
  2. No se espera confirmación. Que el otro lado haya recibido el paquete no le importa a UDP.
  3. Los paquetes perdidos no se reenvían. Lo que se pierde por el camino se queda perdido.
  4. El orden no está garantizado. Los paquetes pueden llegar en otro orden; UDP no los reordena.

Con tan pocas reglas, UDP es rápido y ligero. Como el emisor no espera nada, los datos salen en cuanto se generan. Si hace falta ocuparse de la pérdida y el orden, lo hace la propia aplicación. Por ejemplo, un juego descarta una posición antigua que llega tarde y usa la más reciente.

Comparación entre TCP y UDP

CaracterísticaTCPUDP
Establecer conexiónSaludo antes de enviar datosEmpieza a enviar directamente
Confirmación de entregaComprueba que llegó cada paqueteNo lo comprueba
Paquete perdidoLo reenvíaNo lo reenvía
Orden de los paquetesEntrega en el orden correctoNo garantiza el orden
RetrasoMayor por las confirmaciones y reenvíosMenor
Con la red saturadaReduce su velocidadSigue enviando igual
Información extra por paqueteMásMenos
Adecuado paraTodo lo que exige exactitudComunicación en tiempo real, consultas cortas
Ejemplos cotidianosWebs, correo, descargas, mensajeríaJuegos online, videollamadas, directos, DNS

La conclusión de la tabla: TCP no es simplemente «lento» ni UDP simplemente «rápido». Responden a preguntas distintas. TCP sirve para tareas que responden sí a «¿los datos deben llegar completos?», y UDP para las que responden no a «¿sirven los datos que llegan tarde?».

¿Cuál se usa en el día a día?

Tareas que usan TCP:

  • Páginas web. Cuando el navegador abre una web, cada letra e imagen deben llegar completas. HTTP, el protocolo de comunicación de la web, funcionó durante mucho tiempo solo sobre TCP.
  • Correo electrónico. No es aceptable que a un correo le falte una frase.
  • Descargas y actualizaciones. Un archivo al que le falta un solo byte no se abre.
  • Mensajes escritos en apps de mensajería. Un mensaje puede llegar tarde, pero no incompleto.
  • Acceso, compras y chat en los juegos. Los datos de la cuenta y los mensajes deben llegar correctamente.

Tareas que usan UDP:

  • Movimiento y posición en juegos online. Si se pierde una de las posiciones que se envían decenas de veces por segundo, la siguiente ya está en camino. Esperar a la perdida congelaría el juego.
  • Videollamadas y llamadas de voz. Un trozo de audio que llega medio segundo tarde ya no sirve; saltarlo en lugar de esperar mantiene fluida la conversación.
  • Directos. Se toleran pequeñas pérdidas para ofrecer la emisión lo más cerca posible del tiempo real.
  • Consultas DNS. La consulta que traduce el nombre de una web a una dirección es muy corta; si no llega respuesta, volver a preguntar es más rápido que establecer una conexión.

Conexiones web más nuevas: HTTP/3, la versión más reciente del protocolo web, funciona sobre un protocolo llamado QUIC, y los paquetes de QUIC viajan con UDP. El RFC 9000 de la IETF describe QUIC como un protocolo de transporte «basado en UDP». QUIC se encarga por sí mismo del orden y los reenvíos que ofrece TCP. Así que algunas webs que abres hoy llegan por UDP y aun así llegan completas.

¿Por qué los juegos usan UDP?

En un juego online, el servidor actualiza la posición de los jugadores muchas veces por segundo. Enviar esa información con TCP da un problema: cuando se pierde un paquete, TCP espera para reenviarlo y todos los paquetes de detrás esperan también. En pantalla el juego se congela un instante y luego los movimientos acumulados se reproducen de golpe.

Con UDP no se espera al paquete perdido. El juego usa la siguiente posición. En el peor caso tu personaje se salta un paso, así que ves un breve «teletransporte», pero el juego no se detiene.

Tres términos que oyes a menudo en los juegos están directamente relacionados con esta diferencia:

  • Ping: el tiempo que tarda un paquete en llegar al servidor y volver la respuesta, en milisegundos (ms). Un ping bajo significa que tus acciones llegan rápido al servidor.
  • Pérdida de paquetes: la proporción de paquetes que se pierden por el camino. En los juegos con UDP se nota como teletransportes y tirones.
  • Jitter: que el ping cambie todo el rato. Cuando los paquetes llegan a intervalos irregulares, el juego pierde fluidez.

Explicamos las causas y soluciones de estos problemas en Cómo solucionar el ping y la pérdida de paquetes. Tienes un ejemplo de por qué los jugadores usan proxies en Por qué los jugadores de Knight Online usan proxy.

Proxies y UDP: ¿qué proxies llevan UDP?

Un proxy hace pasar tu tráfico por un servidor intermediario. Pero no todos los tipos de proxy pueden llevar todos los protocolos.

Tipo de proxyTCPUDPAdecuado para
Proxy HTTP / HTTPSNoWebs, navegadores, la mayoría de apps
Proxy SOCKS5Sí (si el servidor y la app admiten UDP)Juegos, videollamadas, apps de comunicación en tiempo real

Los proxies HTTP están pensados para el tráfico web y solo llevan TCP. Si intentas pasar por un proxy HTTP un juego que usa UDP, puede abrirse la pantalla de acceso, pero la conexión se corta al entrar en la partida. SOCKS5 es un tipo de proxy que también puede llevar UDP. Por eso se prefiere un Proxies SOCKS5 para juegos y apps de comunicación en tiempo real. Eso sí, para que UDP funcione, tanto el servidor proxy como la app que uses deben admitir UDP en SOCKS5.

Explicamos la diferencia entre los dos tipos en Diferencia entre SOCKS y HTTP: ¿cuál elegir? y los detalles de SOCKS5 en Proxies SOCKS5: cómo funcionan y en qué se diferencian. Tienes opciones pensadas para juegos en nuestra página de proxy para juegos y para directos en nuestra página de proxy para streaming.

¿Qué es un puerto y qué significa «abrir un puerto TCP/UDP»?

Un ordenador se conecta a internet con muchos programas a la vez: navegador, juego, app de mensajería. Para saber a qué programa pertenece un paquete entrante se usan unos números llamados puertos. La dirección lleva el paquete al ordenador correcto y el puerto, al programa correcto dentro de ese ordenador.

Los puertos se cuentan por separado para TCP y UDP. Por eso las guías de configuración de juegos dicen cosas como «abre el puerto TCP X y el puerto UDP Y». Significa lo siguiente: tu router no deja entrar conexiones de fuera por defecto, pero algunos juegos y apps quieren aceptarlas. «Abrir un puerto» es decirle al router «envía a este ordenador los paquetes que lleguen a este número». En la interfaz del router este ajuste suele llamarse reenvío de puertos.

Al abrir un puerto, ten en cuenta:

  • Abre solo el puerto que necesitas. Usa el puerto y el protocolo que indica la página de soporte oficial del juego.
  • Elige el protocolo correcto. Si la guía dice UDP, abrir TCP no sirve; si dice «ambos», añade dos reglas.
  • Borra los reenvíos que no uses. Los puertos abiertos sin motivo son un riesgo innecesario.
  • No desactives el firewall. En lugar de apagar el firewall entero para arreglar un problema, permite solo ese programa. Explicamos qué hace un firewall en Proxy o firewall: ¿en qué se diferencian?

Ideas equivocadas frecuentes

  • «UDP siempre es más rápido». UDP espera menos, pero la velocidad de descarga depende de la capacidad de tu conexión. Enviar un archivo grande por UDP no lo descarga más rápido; la app tiene que recoger ella misma las partes que falten.
  • «TCP es más seguro». TCP garantiza que los datos lleguen completos, pero no los cifra. El cifrado es tarea de capas superiores como HTTPS. QUIC, que funciona sobre UDP, también va cifrado.
  • «UDP no es fiable y no debería usarse». Que UDP acepte pérdidas no es un defecto, sino una decisión deliberada. En videollamadas y juegos es la decisión correcta.
  • «Si el ping es alto en un juego, hay que cambiar de protocolo». El jugador no decide qué protocolo usa un juego. El ping depende de la distancia al servidor, la saturación de la red y la calidad de la conexión.

Guía de decisión

Lo que necesitasQué protocolo y qué hacer
Navegar por webs, descargar archivosTCP (o QUIC con HTTP/3); basta con un proxy HTTP o HTTPS
Jugar onlineEl movimiento del juego va por UDP; proxy SOCKS5 con UDP o proxy para juegos
Hacer videollamadasUDP; si vas a usar proxy, comprueba que admita UDP
Teletransportes y tirones en el juegoMide la pérdida de paquetes y el ping, elige una conexión cercana al servidor
El juego pide «abrir un puerto»Reenvía en el router el puerto y el protocolo de la página oficial, solo para ese ordenador
Con proxy se abre el acceso pero la partida se cortaEl proxy HTTP no lleva UDP; cambia a SOCKS5

Preguntas frecuentes

¿Qué es mejor, TCP o UDP?

Están pensados para tareas distintas. TCP es mejor cuando los datos deben llegar completos, y UDP para tareas en tiempo real donde el retraso importa más que la pérdida. La mayoría de las aplicaciones usan los dos.

¿Cómo sé si una app usa TCP o UDP?

Lo más fácil es mirar la página de soporte oficial de la app; los juegos y las apps de comunicación suelen indicar qué puertos y protocolos usan. Como regla general, las webs y las transferencias de archivos usan TCP, y el movimiento en juegos y las videollamadas, UDP.

¿Qué pasa si se pierden datos en una app que usa UDP?

El paquete perdido no vuelve. La app lo compensa a su manera: un juego usa la siguiente posición y una videollamada se salta un trozo corto de audio o vídeo. Si la pérdida es alta, esos saltos se notan.

¿Puedo jugar con un proxy HTTP?

Si el acceso y el chat del juego usan TCP, esas partes pueden funcionar. Pero si el movimiento y la posición viajan por UDP, un proxy HTTP no puede pasar ese tráfico. Para jugar, usa un proxy SOCKS5 con UDP o un proxy para juegos.

¿Es seguro abrir un puerto?

Si solo abres el puerto necesario, con el protocolo correcto y para el ordenador correcto, el riesgo es bajo. Abrir puertos innecesarios o rangos amplios deja la puerta abierta a conexiones no deseadas desde fuera. Borra los reenvíos que no uses.

¿Por qué DNS usa UDP?

La consulta DNS que traduce el nombre de una web a una dirección es muy corta, y su respuesta también. Establecer una conexión llevaría más tiempo que la propia consulta. Si no llega respuesta, repetir la consulta es más rápido. Con respuestas grandes, DNS también puede pasar a TCP.

En resumen

TCP y UDP son dos protocolos que transportan los datos por internet en paquetes. TCP establece primero una conexión, espera la confirmación de cada paquete, reenvía los perdidos y entrega en orden. UDP envía sin esperar y no vuelve a pedir los paquetes perdidos. Las webs, el correo y los archivos van por TCP; el movimiento en los juegos, las videollamadas y los directos, por UDP. Esta diferencia importa al elegir un proxy: un proxy HTTP solo lleva TCP, mientras que SOCKS5 también puede llevar UDP. Encontrarás tipos de proxy adecuados para juegos y comunicación en tiempo real en nuestros servicios de proxy.