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.