Entrambi sono protocolli del livello Transport, ma fanno compromessi opposti. Il TCP è orientato alla connessione e affidabile — garantisce che ogni byte arrivi, in ordine, esattamente una volta. L'UDP è senza connessione e "fire-and-forget" — si limita a inviare pacchetti (datagram) senza garanzie di consegna o di ordine. Baratti l'affidabilità del TCP per il basso overhead e la velocità dell'UDP.
TCP UDP
┌───────────────────────┐ ┌───────────────────────┐
│ connection (handshake)│ │ no connection │
│ reliable (retransmit) │ │ best-effort (no retry)│
│ ordered delivery │ │ unordered │
│ flow + congestion ctrl│ │ none │
│ higher overhead │ │ minimal overhead │
└───────────────────────┘ └───────────────────────┘
