Ambos son protocolos de la capa Transport, pero hacen compromisos opuestos. TCP es orientado a conexión y fiable: garantiza que cada byte llega, en orden, exactamente una vez. UDP es sin conexión y de tipo "fire-and-forget": simplemente envía paquetes (datagramas) sin garantías de entrega ni de orden. Cambias la fiabilidad de TCP por el bajo overhead y la velocidad de UDP.
TCP UDP
┌───────────────────────┐ ┌───────────────────────┐
│ connection (handshake)│ │ no connection │
│ reliable (retransmit) │ │ best-effort (no retry)│
│ ordered delivery │ │ unordered │
│ flow + congestion ctrl│ │ none │
│ higher overhead │ │ minimal overhead │
└───────────────────────┘ └───────────────────────┘
