TCP gives you a reliable, ordered stream, while UDP gives you fast, best-effort messages. TCP sets up a connection, tracks every byte and resends lost data. It delivers bytes in order, so what you send arrives whole.
UDP just fires packets with no handshake and no retries. Packets can arrive late, out of order, or not at all. In exchange it has almost no overhead and lower latency.
Reach for TCP when correctness matters, as in web pages and APIs. File transfers and databases need it too. Reach for UDP when speed beats completeness, as in live video and voice calls. Games and DNS lookups use it for the same reason. Losing one frame of video beats stalling the whole stream.
This answer doesn't lend itself to a diagram - it reads best . No credits were charged.
Why there's no diagram: “”
The interactive diagram is below the answer - jump to diagram ↓ · Below it, the related concept . Jump to it ↓
The diagram below the answer is the concept . Jump to it ↓