
MediaPrincipianteDevOps
¿Cuál es la principal diferencia entre los protocolos TCP y UDP?
Respuesta breve
TCP es un protocolo orientado a la conexión y fiable que garantiza la entrega, el orden y la comprobación de errores a costa de sobrecarga. UDP es un protocolo simple sin conexión, sin garantías de entrega ni de orden, pero es más rápido y ligero.
TCP y UDP son los dos principales protocolos de la capa de transporte que funcionan sobre IP. La diferencia central: TCP está orientado a la conexión y es fiable, mientras que UDP no tiene conexión y funciona sobre la base de "enviar y olvidar".
TCP (RFC 9293)
- Orientado a la conexión. Antes de enviar datos, los extremos realizan un intercambio de tres pasos (3WHS): SYN → SYN-ACK → ACK, sincronizando los números de secuencia iniciales.
- Fiable y ordenado. Cada byte recibe un número de secuencia; el receptor envía acuses de recibo (ACK), los segmentos perdidos se retransmiten y los datos se reensamblan en el orden original. La integridad se verifica con una suma de verificación. El RFC 9293 establece que TCP "proporciona un servicio fiable y ordenado de flujo de bytes."
- Flujo de bytes, sin límites de mensajes. TCP entrega un flujo de bytes no estructurado: los límites de los mensajes no se conservan (la aplicación debe delimitar sus propios mensajes). UDP, en cambio, está orientado a mensajes: cada datagrama se entrega como una unidad discreta y completa, o no se entrega en absoluto (un sendto = un recvfrom).
- Control de flujo y de congestión. TCP regula su velocidad de envío para no saturar ni al receptor ni a la red.
- Compensación: más sobrecarga y latencia, y un encabezado mayor: 20–60 bytes (20 sin opciones, ampliable mediante opciones como MSS, escalado de ventana, SACK).
UDP (RFC 768)
- Sin conexión. No hay handshake; cada datagrama es independiente.
- Sin garantías. El RFC dice explícitamente que "la entrega y la protección contra duplicados no están garantizadas" — UDP no recupera paquetes perdidos, duplicados o fuera de orden.
- Encabezado fijo de 8 bytes con solo cuatro campos: puerto de origen, puerto de destino, longitud y suma de verificación.
- Ventajas: baja latencia y sobrecarga, además de compatibilidad con broadcast/multicast.
Cuándo usar cada uno
- TCP: web (HTTP/HTTPS sobre TCP), correo electrónico, transferencia de archivos, SSH — en cualquier caso en que la integridad de los datos importe.
- UDP: consultas DNS, juegos en línea, VoIP, transmisión de vídeo en directo — cuando la velocidad importa más que un único paquete perdido.
Puntos comunes de seguimiento
- UDP por sí mismo no ordena los datos, pero una aplicación puede superponer su propia lógica (QUIC hace esto sobre UDP).
- HTTP/3 se ejecuta sobre QUIC encima de UDP, mientras que HTTP/1.1 y HTTP/2 se ejecutan sobre TCP.
- La suma de verificación de UDP es técnicamente opcional en IPv4 (un valor cero significa "no calculada") pero obligatoria en IPv6.
