Обе — протоколы транспортного уровня, но они делают противоположные компромиссы. TCP ориентирован на соединение и надёжен — он гарантирует, что каждый байт прибудет, по порядку, ровно один раз. UDP без соединения и работает по принципу «выстрелил и забыл» — он просто отправляет пакеты (datagrams) без гарантий доставки или порядка. Вы обмениваете надёжность 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 │
└───────────────────────┘ └───────────────────────┘
