TCP — надёжный, с установлением соединения. Гарантирует доставку, порядок и целостность данных. Используется для HTTP, gRPC, базы данных. Цена — overhead на handshake, подтверждения и ретрансмиссии.
UDP — ненадёжный, без соединения. Не гарантирует доставку и порядок, но быстрее и легче. Используется для DNS, видеостриминга, онлайн-игр, VoIP.
Выбор: нужна надёжность — TCP, нужна скорость и допустима потеря пакетов — UDP. Многие современные протоколы строят надёжность поверх UDP (QUIC/HTTP3) — получают контроль над ретрансмиссией без блокировки TCP head-of-line.