둘 다 Transport 계층 프로토콜이지만, 정반대의 트레이드오프를 한다. TCP는 연결 지향적이고 신뢰할 수 있다 — 모든 바이트가 순서대로, 정확히 한 번 도착함을 보장한다. UDP는 비연결형이며 "쏘고 잊는(fire-and-forget)" 방식이다 — 전달이나 순서 보장 없이 그냥 패킷(datagram)을 보낸다. TCP의 신뢰성을 UDP의 낮은 오버헤드와 속도와 맞바꾸는 것이다.
TCP UDP
┌───────────────────────┐ ┌───────────────────────┐
│ connection (handshake)│ │ no connection │
│ reliable (retransmit) │ │ best-effort (no retry)│
│ ordered delivery │ │ unordered │
│ flow + congestion ctrl│ │ none │
│ higher overhead │ │ minimal overhead │
└───────────────────────┘ └───────────────────────┘
