TCP frente a UDP

TCP entrega cada byte en orden sobre una conexión; UDP envía datagramas independientes sin garantías. Lo que cuesta cada uno y qué protocolos usan cuál.

Última revisión:

AdSense Placeholder
Slot: header_reference_page
En esta página

TCP ofrece a una aplicación un flujo de bytes fiable y ordenado: los paquetes perdidos se reenvían, los duplicados se descartan y todo llega en el orden en que se envió. UDP solo envía datagramas sueltos y no promete nada: pueden llegar tarde, desordenados, duplicados o no llegar. Elija TCP cuando cada byte deba llegar intacto (páginas web, transferencias de archivos, correo, SSH); elija UDP cuando un paquete tardío ya no sirve de nada (voz, videollamadas, juegos) o cuando la aplicación quiere construir su propia fiabilidad, como hace QUIC.

De un vistazo

Propiedad TCP UDP
Conexión Orientado a conexión: negociación en tres pasos (SYN, SYN-ACK, ACK) antes de los datos Sin conexión: el primer datagrama ya puede llevar datos
Entrega Garantizada: los segmentos perdidos se retransmiten Sin garantías: los datagramas perdidos desaparecen
Orden Los bytes se entregan en el orden de envío Sin orden; los datagramas pueden llegar en cualquier orden
Modelo de datos Un flujo continuo de bytes sin límites de mensaje Mensajes discretos; cada send es un datagrama
Tamaño de cabecera 20 bytes como mínimo, hasta 60 con opciones 8 bytes, siempre
Control de flujo y de congestión Sí: frena cuando el receptor o la red se saturan No integrado; la aplicación debe comportarse
Difusión y multidifusión No, solo uno a uno Sí
Bloqueo de cabeza de línea Sí: un segmento perdido detiene todo lo que viene detrás No
Usos típicos HTTP/1.1 y HTTP/2, TLS, SSH, SMTP, IMAP, FTP Consultas DNS, DHCP, NTP, SNMP, VoIP/RTP, juegos, QUIC (HTTP/3), WireGuard

Ambos protocolos usan números de puerto de 16 bits (de 0 a 65535), pero los dos espacios de puertos son independientes: el puerto TCP 53 y el puerto UDP 53 son extremos distintos. Consulte qué se ejecuta normalmente en un puerto con la búsqueda de números de puerto.

TCP

TCP convierte una red poco fiable en algo que se comporta como una tubería. Cada byte tiene un número de secuencia, el receptor confirma lo que recibe y todo lo que no se confirma a tiempo se envía de nuevo. Una ventana deslizante impide que un emisor rápido desborde a un receptor lento, y el control de congestión reduce el ritmo cuando la propia red pierde paquetes.

Esa fiabilidad tiene un precio. Una conexión nueva cuesta un viaje de ida y vuelta para la negociación antes de mover datos (más la negociación TLS en el caso de HTTPS), y un solo segmento perdido retiene todos los datos que vienen detrás hasta que llega la retransmisión. Con tiempos de ida y vuelta de 100 ms, se nota.

Elija TCP cuando:

  • Cada byte importa y el orden importa: páginas web, API, descargas, conexiones a bases de datos, correo, terminales remotos.
  • Quiere que el sistema operativo se encargue de la retransmisión, el ritmo y la congestión.
  • Cortafuegos y equipos intermedios deben dejar pasar el tráfico sin trato especial; TCP es la opción más segura por defecto.

UDP

UDP apenas añade nada a IP: puerto de origen, puerto de destino, longitud y suma de comprobación. Un datagrama llega entero o no llega; el protocolo nunca divide ni junta mensajes. Un datagrama UDP sobre IPv4 puede llevar como máximo 65.507 bytes de datos, pero lo que supere la MTU de la ruta (a menudo unos 1.500 bytes en Ethernet) lo fragmenta IP, y perder cualquier fragmento hace perder el datagrama entero, así que las aplicaciones reales usan datagramas pequeños.

Elija UDP cuando:

  • La actualidad pesa más que la integridad: en una llamada de voz o vídeo, un paquete que llega 300 ms tarde es inútil, así que reenviarlo solo añade retraso.
  • El intercambio es una petición pequeña y una respuesta pequeña (DNS, NTP), donde una negociación duplicaría el coste.
  • Necesita difusión o multidifusión, como DHCP para encontrar un servidor que aún no conoce.
  • Construye su propio transporte encima. QUIC, la base de HTTP/3, funciona sobre UDP para evitar el bloqueo de cabeza de línea entre flujos y evolucionar sin esperar a las pilas TCP de los sistemas operativos.

¿Cuál elegir?

  • Por defecto, TCP, salvo que tenga un motivo concreto para no usarlo.
  • Multimedia en tiempo real, juegos, telemetría donde los datos viejos no valen nada: UDP.
  • Consultas diminutas de petición y respuesta: UDP, con TCP como alternativa para respuestas grandes (justo lo que hace DNS).
  • Quiere el rendimiento web moderno sin diseñar un protocolo: use HTTP/3 o una biblioteca QUIC en lugar de UDP en bruto.
  • Al abrir reglas de cortafuegos: indique el protocolo además del puerto; permitir TCP 443 no permite UDP 443. El generador de rangos de puertos TCP/UDP escribe las reglas para ambos.

Para ver la diferencia en la red, capture algo de tráfico y ábralo en el análisis forense de PCAP: las conversaciones TCP muestran la negociación, las confirmaciones y las retransmisiones, mientras que los flujos UDP son solo una serie de datagramas independientes.

Pruebe estas herramientas

Véase también

  • Glosario TCP
    TCP (Transmission Control Protocol) es el protocolo de transporte que entrega los datos de forma fiable y en orden entre dos programas.
  • Glosario UDP
    UDP (User Datagram Protocol) es un protocolo de transporte rápido y sin conexión que envía datos sin garantizar la entrega ni el orden.
  • Glosario Puerto
    Un puerto es un número de 0 a 65535 que indica a un ordenador a qué programa o servicio va dirigida una conexión de red entrante.
  • Glosario Paquete
    Un paquete es una pequeña unidad de datos enviada por una red.
  • Glosario Latencia
    La latencia es el retardo entre enviar una petición y empezar a recibir la respuesta, normalmente medido en milisegundos.
  • Hoja de referencia Guía rápida de puertos de red habituales
    Los números de puerto de la web, el correo, SSH, DNS y las bases de datos, con TCP o UDP.

Preguntas frecuentes

UDP tiene menos sobrecarga: no hay negociación antes del primer byte, la cabecera ocupa 8 bytes en lugar de al menos 20 y no se espera a que se reenvíen los paquetes perdidos. En una red limpia el rendimiento bruto es parecido; la diferencia se nota en el tiempo de arranque y en cómo se comporta cada uno cuando se pierden paquetes.

Los dos, en el puerto 53. Las consultas normales van por UDP. Cuando una respuesta no cabe en la respuesta UDP, el servidor activa el indicador de truncamiento y el cliente repite la consulta por TCP; las transferencias de zona usan siempre TCP.

Sí. HTTP/3 funciona sobre QUIC, que viaja en datagramas UDP (normalmente en el puerto 443) y añade su propia fiabilidad, orden por flujo, control de congestión y cifrado TLS 1.3 integrado.

AdSense Placeholder
Slot: footer_leaderboard